@clickview/lite 0.52.3-dev.1 → 0.52.3-dev.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bundles.json +1 -1
- package/dist/languages/en.json +1 -1
- package/dist/scripts/1063-5a732288dc-lite.chunk.js +2 -0
- package/dist/scripts/1063-5a732288dc-lite.chunk.js.map +1 -0
- package/dist/scripts/{9173-2392d447a6-lite.chunk.js → 1104-f057c6dea1-lite.chunk.js} +3 -3
- package/dist/scripts/{9173-2392d447a6-lite.chunk.js.map → 1104-f057c6dea1-lite.chunk.js.map} +1 -1
- package/dist/scripts/{1125-aac132b88f-lite.chunk.js → 1125-c5138ef662-lite.chunk.js} +2 -2
- package/dist/scripts/1125-c5138ef662-lite.chunk.js.map +1 -0
- package/dist/scripts/1169-9b7d850bab-lite.chunk.js +2 -0
- package/dist/scripts/1169-9b7d850bab-lite.chunk.js.map +1 -0
- package/dist/scripts/{1379-6f35e2e9bb-lite.chunk.js → 1379-ca519ec56b-lite.chunk.js} +3 -3
- package/dist/scripts/{1379-6f35e2e9bb-lite.chunk.js.map → 1379-ca519ec56b-lite.chunk.js.map} +1 -1
- package/dist/scripts/1672-0d1fc90529-lite.chunk.js +3 -0
- package/dist/scripts/1672-0d1fc90529-lite.chunk.js.map +1 -0
- package/dist/scripts/1725-99450ed637-lite.chunk.js +2 -0
- package/dist/scripts/1725-99450ed637-lite.chunk.js.map +1 -0
- package/dist/scripts/1891-5914c54eca-lite.chunk.js +2 -0
- package/dist/scripts/1891-5914c54eca-lite.chunk.js.map +1 -0
- package/dist/scripts/1896-399a91d18c-lite.chunk.js +2 -0
- package/dist/scripts/1896-399a91d18c-lite.chunk.js.map +1 -0
- package/dist/scripts/193-797b89797a-lite.chunk.js +2 -0
- package/dist/scripts/193-797b89797a-lite.chunk.js.map +1 -0
- package/dist/scripts/209-fe96739cb5-lite.chunk.js +2 -0
- package/dist/scripts/209-fe96739cb5-lite.chunk.js.map +1 -0
- package/dist/scripts/2134-b8d5c46887-lite.chunk.js +2 -0
- package/dist/scripts/2134-b8d5c46887-lite.chunk.js.map +1 -0
- package/dist/scripts/2142-f71cf5c71f-lite.chunk.js +2 -0
- package/dist/scripts/2142-f71cf5c71f-lite.chunk.js.map +1 -0
- package/dist/scripts/2402-ff1b4adf1a-lite.chunk.js +2 -0
- package/dist/scripts/2402-ff1b4adf1a-lite.chunk.js.map +1 -0
- package/dist/scripts/2548-c5dd2899df-lite.chunk.js +2 -0
- package/dist/scripts/2548-c5dd2899df-lite.chunk.js.map +1 -0
- package/dist/scripts/2952-c3a826b714-lite.chunk.js +2 -0
- package/dist/scripts/2952-c3a826b714-lite.chunk.js.map +1 -0
- package/dist/scripts/3404-23125f10ea-lite.chunk.js +2 -0
- package/dist/scripts/3404-23125f10ea-lite.chunk.js.map +1 -0
- package/dist/scripts/3633-f3609526a5-lite.chunk.js +2 -0
- package/dist/scripts/3633-f3609526a5-lite.chunk.js.map +1 -0
- package/dist/scripts/3728-eed9e78985-lite.chunk.js +2 -0
- package/dist/scripts/3728-eed9e78985-lite.chunk.js.map +1 -0
- package/dist/scripts/4063-5fa157657f-lite.chunk.js +2 -0
- package/dist/scripts/4063-5fa157657f-lite.chunk.js.map +1 -0
- package/dist/scripts/4182-ba03f3ce3c-lite.chunk.js +2 -0
- package/dist/scripts/4182-ba03f3ce3c-lite.chunk.js.map +1 -0
- package/dist/scripts/4273-e42f763f00-lite.chunk.js +3 -0
- package/dist/scripts/4273-e42f763f00-lite.chunk.js.map +1 -0
- package/dist/scripts/4395-d0815835c8-lite.chunk.js +2 -0
- package/dist/scripts/4395-d0815835c8-lite.chunk.js.map +1 -0
- package/dist/scripts/4502-af4903784e-lite.chunk.js +2 -0
- package/dist/scripts/4502-af4903784e-lite.chunk.js.map +1 -0
- package/dist/scripts/4850-bb9541d3ed-lite.chunk.js +2 -0
- package/dist/scripts/4850-bb9541d3ed-lite.chunk.js.map +1 -0
- package/dist/scripts/5573-4352a3537e-lite.chunk.js +2 -0
- package/dist/scripts/5573-4352a3537e-lite.chunk.js.map +1 -0
- package/dist/scripts/5595-3acc9593bf-lite.chunk.js +2 -0
- package/dist/scripts/5595-3acc9593bf-lite.chunk.js.map +1 -0
- package/dist/scripts/5606-69c0ca2b97-lite.chunk.js +2 -0
- package/dist/scripts/5606-69c0ca2b97-lite.chunk.js.map +1 -0
- package/dist/scripts/5877-628732da21-lite.chunk.js +2 -0
- package/dist/scripts/5877-628732da21-lite.chunk.js.map +1 -0
- package/dist/scripts/5936-cd98109a7b-lite.chunk.js +2 -0
- package/dist/scripts/5936-cd98109a7b-lite.chunk.js.map +1 -0
- package/dist/scripts/{5940-f335f8c290-lite.chunk.js → 5940-2767b40c40-lite.chunk.js} +2 -2
- package/dist/scripts/5940-2767b40c40-lite.chunk.js.map +1 -0
- package/dist/scripts/6054-1e9b86d631-lite.chunk.js +2 -0
- package/dist/scripts/6054-1e9b86d631-lite.chunk.js.map +1 -0
- package/dist/scripts/6138-2ef7ee071a-lite.chunk.js +2 -0
- package/dist/scripts/6138-2ef7ee071a-lite.chunk.js.map +1 -0
- package/dist/scripts/{624-575b07d922-lite.chunk.js → 624-09b51a9d32-lite.chunk.js} +3 -3
- package/dist/scripts/{624-575b07d922-lite.chunk.js.map → 624-09b51a9d32-lite.chunk.js.map} +1 -1
- package/dist/scripts/6263-8a7931bf51-lite.chunk.js +2 -0
- package/dist/scripts/6263-8a7931bf51-lite.chunk.js.map +1 -0
- package/dist/scripts/6290-28ae0e8a60-lite.chunk.js +2 -0
- package/dist/scripts/6290-28ae0e8a60-lite.chunk.js.map +1 -0
- package/dist/scripts/6470-9a700cabce-lite.chunk.js +2 -0
- package/dist/scripts/6470-9a700cabce-lite.chunk.js.map +1 -0
- package/dist/scripts/6481-035d218a77-lite.chunk.js +2 -0
- package/dist/scripts/6481-035d218a77-lite.chunk.js.map +1 -0
- package/dist/scripts/6532-59e9abf69d-lite.chunk.js +2 -0
- package/dist/scripts/6532-59e9abf69d-lite.chunk.js.map +1 -0
- package/dist/scripts/6596-f75129c039-lite.chunk.js +2 -0
- package/dist/scripts/6596-f75129c039-lite.chunk.js.map +1 -0
- package/dist/scripts/6604-9adec889c7-lite.chunk.js +2 -0
- package/dist/scripts/6604-9adec889c7-lite.chunk.js.map +1 -0
- package/dist/scripts/6746-3f501b95cf-lite.chunk.js +2 -0
- package/dist/scripts/6746-3f501b95cf-lite.chunk.js.map +1 -0
- package/dist/scripts/714-c00ad56229-lite.chunk.js +2 -0
- package/dist/scripts/714-c00ad56229-lite.chunk.js.map +1 -0
- package/dist/scripts/7163-84c2b15394-lite.chunk.js +2 -0
- package/dist/scripts/7163-84c2b15394-lite.chunk.js.map +1 -0
- package/dist/scripts/7178-ed74c33056-lite.chunk.js +2 -0
- package/dist/scripts/7178-ed74c33056-lite.chunk.js.map +1 -0
- package/dist/scripts/7223-0bfab7e57a-lite.chunk.js +2 -0
- package/dist/scripts/7223-0bfab7e57a-lite.chunk.js.map +1 -0
- package/dist/scripts/7234-84c087600e-lite.chunk.js +2 -0
- package/dist/scripts/7234-84c087600e-lite.chunk.js.map +1 -0
- package/dist/scripts/7267-fd5085f5c9-lite.chunk.js +2 -0
- package/dist/scripts/7267-fd5085f5c9-lite.chunk.js.map +1 -0
- package/dist/scripts/7633-6c1ffdd082-lite.chunk.js +2 -0
- package/dist/scripts/7633-6c1ffdd082-lite.chunk.js.map +1 -0
- package/dist/scripts/7679-8f2d6a3487-lite.chunk.js +2 -0
- package/dist/scripts/7679-8f2d6a3487-lite.chunk.js.map +1 -0
- package/dist/scripts/7757-7e293be936-lite.chunk.js +2 -0
- package/dist/scripts/7757-7e293be936-lite.chunk.js.map +1 -0
- package/dist/scripts/7795-c6d38bc3e5-lite.chunk.js +2 -0
- package/dist/scripts/7795-c6d38bc3e5-lite.chunk.js.map +1 -0
- package/dist/scripts/7818-230982fc27-lite.chunk.js +2 -0
- package/dist/scripts/7818-230982fc27-lite.chunk.js.map +1 -0
- package/dist/scripts/8323-360541a2a8-lite.chunk.js +3 -0
- package/dist/scripts/8323-360541a2a8-lite.chunk.js.map +1 -0
- package/dist/scripts/8709-c4f1068232-lite.chunk.js +2 -0
- package/dist/scripts/8709-c4f1068232-lite.chunk.js.map +1 -0
- package/dist/scripts/8982-a3dc4a6b3c-lite.chunk.js +2 -0
- package/dist/scripts/8982-a3dc4a6b3c-lite.chunk.js.map +1 -0
- package/dist/scripts/9010-024dcc8f9a-lite.chunk.js +2 -0
- package/dist/scripts/9010-024dcc8f9a-lite.chunk.js.map +1 -0
- package/dist/scripts/9016-82d7e0afb9-lite.chunk.js +3 -0
- package/dist/scripts/9016-82d7e0afb9-lite.chunk.js.map +1 -0
- package/dist/scripts/9173-f9708ec0de-lite.chunk.js +2 -0
- package/dist/scripts/9173-f9708ec0de-lite.chunk.js.map +1 -0
- package/dist/scripts/9230-ae200d2bd3-lite.chunk.js +3 -0
- package/dist/scripts/9230-ae200d2bd3-lite.chunk.js.map +1 -0
- package/dist/scripts/9359-1fb4413e0d-lite.chunk.js +2 -0
- package/dist/scripts/9359-1fb4413e0d-lite.chunk.js.map +1 -0
- package/dist/scripts/{9395-4cf6f3948e-lite.chunk.js → 9395-e1a02b01ce-lite.chunk.js} +3 -3
- package/dist/scripts/{9395-4cf6f3948e-lite.chunk.js.map → 9395-e1a02b01ce-lite.chunk.js.map} +1 -1
- package/dist/scripts/9399-d7a92ce84a-lite.chunk.js +2 -0
- package/dist/scripts/9399-d7a92ce84a-lite.chunk.js.map +1 -0
- package/dist/scripts/{9478-99486906b9-lite.chunk.js → 9478-abfa7ed3cc-lite.chunk.js} +3 -3
- package/dist/scripts/{9478-99486906b9-lite.chunk.js.map → 9478-abfa7ed3cc-lite.chunk.js.map} +1 -1
- package/dist/scripts/{953-fd31f9f016-lite.chunk.js → 953-225db845ab-lite.chunk.js} +3 -3
- package/dist/scripts/{953-fd31f9f016-lite.chunk.js.map → 953-225db845ab-lite.chunk.js.map} +1 -1
- package/dist/scripts/9719-9736913451-lite.chunk.js +3 -0
- package/dist/scripts/9719-9736913451-lite.chunk.js.map +1 -0
- package/dist/scripts/999-bdc7956050-lite.chunk.js +2 -0
- package/dist/scripts/999-bdc7956050-lite.chunk.js.map +1 -0
- package/dist/scripts/bundle-9f8729bedb.min.js +3 -0
- package/dist/scripts/bundle-9f8729bedb.min.js.map +1 -0
- package/package.json +1 -1
- package/dist/scripts/1076-10e5ee6c22-lite.chunk.js +0 -2
- package/dist/scripts/1076-10e5ee6c22-lite.chunk.js.map +0 -1
- package/dist/scripts/1125-aac132b88f-lite.chunk.js.map +0 -1
- package/dist/scripts/1169-9b1c04fd85-lite.chunk.js +0 -2
- package/dist/scripts/1169-9b1c04fd85-lite.chunk.js.map +0 -1
- package/dist/scripts/1672-672f298d82-lite.chunk.js +0 -3
- package/dist/scripts/1672-672f298d82-lite.chunk.js.map +0 -1
- package/dist/scripts/1725-075015497e-lite.chunk.js +0 -2
- package/dist/scripts/1725-075015497e-lite.chunk.js.map +0 -1
- package/dist/scripts/1818-64a145c5fe-lite.chunk.js +0 -2
- package/dist/scripts/1818-64a145c5fe-lite.chunk.js.map +0 -1
- package/dist/scripts/1820-993521951d-lite.chunk.js +0 -2
- package/dist/scripts/1820-993521951d-lite.chunk.js.map +0 -1
- package/dist/scripts/1891-e80f9f17ee-lite.chunk.js +0 -2
- package/dist/scripts/1891-e80f9f17ee-lite.chunk.js.map +0 -1
- package/dist/scripts/1896-32a6eeda5c-lite.chunk.js +0 -2
- package/dist/scripts/1896-32a6eeda5c-lite.chunk.js.map +0 -1
- package/dist/scripts/193-f08b054631-lite.chunk.js +0 -2
- package/dist/scripts/193-f08b054631-lite.chunk.js.map +0 -1
- package/dist/scripts/209-de1729d1b1-lite.chunk.js +0 -2
- package/dist/scripts/209-de1729d1b1-lite.chunk.js.map +0 -1
- package/dist/scripts/2134-bca2f4697e-lite.chunk.js +0 -2
- package/dist/scripts/2134-bca2f4697e-lite.chunk.js.map +0 -1
- package/dist/scripts/2548-b81ae38f1f-lite.chunk.js +0 -2
- package/dist/scripts/2548-b81ae38f1f-lite.chunk.js.map +0 -1
- package/dist/scripts/2703-591ccf069c-lite.chunk.js +0 -2
- package/dist/scripts/2703-591ccf069c-lite.chunk.js.map +0 -1
- package/dist/scripts/3404-171fdee802-lite.chunk.js +0 -2
- package/dist/scripts/3404-171fdee802-lite.chunk.js.map +0 -1
- package/dist/scripts/3633-66d28be6f8-lite.chunk.js +0 -2
- package/dist/scripts/3633-66d28be6f8-lite.chunk.js.map +0 -1
- package/dist/scripts/3728-d7ecfc6667-lite.chunk.js +0 -2
- package/dist/scripts/3728-d7ecfc6667-lite.chunk.js.map +0 -1
- package/dist/scripts/3922-d40b0ce5aa-lite.chunk.js +0 -2
- package/dist/scripts/3922-d40b0ce5aa-lite.chunk.js.map +0 -1
- package/dist/scripts/4182-7aecc28a6f-lite.chunk.js +0 -2
- package/dist/scripts/4182-7aecc28a6f-lite.chunk.js.map +0 -1
- package/dist/scripts/4395-64da004753-lite.chunk.js +0 -2
- package/dist/scripts/4395-64da004753-lite.chunk.js.map +0 -1
- package/dist/scripts/4502-2e30d86385-lite.chunk.js +0 -2
- package/dist/scripts/4502-2e30d86385-lite.chunk.js.map +0 -1
- package/dist/scripts/5143-b6896dad98-lite.chunk.js +0 -2
- package/dist/scripts/5143-b6896dad98-lite.chunk.js.map +0 -1
- package/dist/scripts/5573-6cd98b69f2-lite.chunk.js +0 -2
- package/dist/scripts/5573-6cd98b69f2-lite.chunk.js.map +0 -1
- package/dist/scripts/5595-c4397e12a8-lite.chunk.js +0 -2
- package/dist/scripts/5595-c4397e12a8-lite.chunk.js.map +0 -1
- package/dist/scripts/5606-6c25caedc4-lite.chunk.js +0 -2
- package/dist/scripts/5606-6c25caedc4-lite.chunk.js.map +0 -1
- package/dist/scripts/5877-ddfaf6a7f5-lite.chunk.js +0 -2
- package/dist/scripts/5877-ddfaf6a7f5-lite.chunk.js.map +0 -1
- package/dist/scripts/5936-6fe810d3cb-lite.chunk.js +0 -2
- package/dist/scripts/5936-6fe810d3cb-lite.chunk.js.map +0 -1
- package/dist/scripts/5940-f335f8c290-lite.chunk.js.map +0 -1
- package/dist/scripts/6054-14d4ceeae3-lite.chunk.js +0 -2
- package/dist/scripts/6054-14d4ceeae3-lite.chunk.js.map +0 -1
- package/dist/scripts/6138-21ae042a7b-lite.chunk.js +0 -2
- package/dist/scripts/6138-21ae042a7b-lite.chunk.js.map +0 -1
- package/dist/scripts/6263-3455286798-lite.chunk.js +0 -2
- package/dist/scripts/6263-3455286798-lite.chunk.js.map +0 -1
- package/dist/scripts/6290-56412c6663-lite.chunk.js +0 -2
- package/dist/scripts/6290-56412c6663-lite.chunk.js.map +0 -1
- package/dist/scripts/6415-b29029aa1b-lite.chunk.js +0 -2
- package/dist/scripts/6415-b29029aa1b-lite.chunk.js.map +0 -1
- package/dist/scripts/6470-6216086d63-lite.chunk.js +0 -2
- package/dist/scripts/6470-6216086d63-lite.chunk.js.map +0 -1
- package/dist/scripts/6481-899eba8b3d-lite.chunk.js +0 -2
- package/dist/scripts/6481-899eba8b3d-lite.chunk.js.map +0 -1
- package/dist/scripts/6532-a6b65c91a7-lite.chunk.js +0 -2
- package/dist/scripts/6532-a6b65c91a7-lite.chunk.js.map +0 -1
- package/dist/scripts/6604-92193d6d68-lite.chunk.js +0 -2
- package/dist/scripts/6604-92193d6d68-lite.chunk.js.map +0 -1
- package/dist/scripts/6746-b5b2739944-lite.chunk.js +0 -2
- package/dist/scripts/6746-b5b2739944-lite.chunk.js.map +0 -1
- package/dist/scripts/679-e18e7956d0-lite.chunk.js +0 -2
- package/dist/scripts/679-e18e7956d0-lite.chunk.js.map +0 -1
- package/dist/scripts/714-432082f4fa-lite.chunk.js +0 -2
- package/dist/scripts/714-432082f4fa-lite.chunk.js.map +0 -1
- package/dist/scripts/7178-e603ea6b58-lite.chunk.js +0 -2
- package/dist/scripts/7178-e603ea6b58-lite.chunk.js.map +0 -1
- package/dist/scripts/7223-135cc7d675-lite.chunk.js +0 -2
- package/dist/scripts/7223-135cc7d675-lite.chunk.js.map +0 -1
- package/dist/scripts/729-c704d587d3-lite.chunk.js +0 -2
- package/dist/scripts/729-c704d587d3-lite.chunk.js.map +0 -1
- package/dist/scripts/7679-b01da2c09d-lite.chunk.js +0 -2
- package/dist/scripts/7679-b01da2c09d-lite.chunk.js.map +0 -1
- package/dist/scripts/7757-320e868e90-lite.chunk.js +0 -2
- package/dist/scripts/7757-320e868e90-lite.chunk.js.map +0 -1
- package/dist/scripts/7795-3ca0855d3a-lite.chunk.js +0 -2
- package/dist/scripts/7795-3ca0855d3a-lite.chunk.js.map +0 -1
- package/dist/scripts/7818-2eafc5f812-lite.chunk.js +0 -2
- package/dist/scripts/7818-2eafc5f812-lite.chunk.js.map +0 -1
- package/dist/scripts/8323-99cb03891e-lite.chunk.js +0 -3
- package/dist/scripts/8323-99cb03891e-lite.chunk.js.map +0 -1
- package/dist/scripts/8478-0292f02489-lite.chunk.js +0 -2
- package/dist/scripts/8478-0292f02489-lite.chunk.js.map +0 -1
- package/dist/scripts/8766-bcc7f11eac-lite.chunk.js +0 -2
- package/dist/scripts/8766-bcc7f11eac-lite.chunk.js.map +0 -1
- package/dist/scripts/8800-335154fe11-lite.chunk.js +0 -2
- package/dist/scripts/8800-335154fe11-lite.chunk.js.map +0 -1
- package/dist/scripts/8982-63c31685bf-lite.chunk.js +0 -2
- package/dist/scripts/8982-63c31685bf-lite.chunk.js.map +0 -1
- package/dist/scripts/9016-0c078a39cb-lite.chunk.js +0 -3
- package/dist/scripts/9016-0c078a39cb-lite.chunk.js.map +0 -1
- package/dist/scripts/9226-c236c0eeb1-lite.chunk.js +0 -2
- package/dist/scripts/9226-c236c0eeb1-lite.chunk.js.map +0 -1
- package/dist/scripts/9230-6dee40b1fb-lite.chunk.js +0 -3
- package/dist/scripts/9230-6dee40b1fb-lite.chunk.js.map +0 -1
- package/dist/scripts/9308-362f86711f-lite.chunk.js +0 -3
- package/dist/scripts/9308-362f86711f-lite.chunk.js.map +0 -1
- package/dist/scripts/9359-cc085d48a4-lite.chunk.js +0 -2
- package/dist/scripts/9359-cc085d48a4-lite.chunk.js.map +0 -1
- package/dist/scripts/9399-2a314327ac-lite.chunk.js +0 -2
- package/dist/scripts/9399-2a314327ac-lite.chunk.js.map +0 -1
- package/dist/scripts/9719-cf7d4172b6-lite.chunk.js +0 -3
- package/dist/scripts/9719-cf7d4172b6-lite.chunk.js.map +0 -1
- package/dist/scripts/bundle-fcc536bb54.min.js +0 -3
- package/dist/scripts/bundle-fcc536bb54.min.js.map +0 -1
- /package/dist/css/{5143-lite-676baa8218.chunk.css → 1063-lite-676baa8218.chunk.css} +0 -0
- /package/dist/css/{9173-lite-b361d438f6.chunk.css → 1104-lite-b361d438f6.chunk.css} +0 -0
- /package/dist/css/{679-lite-00eb7dadb2.chunk.css → 2952-lite-00eb7dadb2.chunk.css} +0 -0
- /package/dist/css/{4860-lite-93d7fad455.chunk.css → 4063-lite-93d7fad455.chunk.css} +0 -0
- /package/dist/css/{9308-lite-a3c7435ba4.chunk.css → 4273-lite-a3c7435ba4.chunk.css} +0 -0
- /package/dist/css/{729-lite-93d7fad455.chunk.css → 4850-lite-93d7fad455.chunk.css} +0 -0
- /package/dist/css/{3922-lite-e22262b911.chunk.css → 6596-lite-e22262b911.chunk.css} +0 -0
- /package/dist/css/{8766-lite-8c5d7658ec.chunk.css → 7163-lite-8c5d7658ec.chunk.css} +0 -0
- /package/dist/css/{1818-lite-5ef1706d69.chunk.css → 7234-lite-5ef1706d69.chunk.css} +0 -0
- /package/dist/css/{8478-lite-e22262b911.chunk.css → 9010-lite-e22262b911.chunk.css} +0 -0
- /package/dist/css/{6415-lite-707657102b.chunk.css → 9173-lite-707657102b.chunk.css} +0 -0
- /package/dist/css/{1820-lite-c88eb54bee.chunk.css → 999-lite-c88eb54bee.chunk.css} +0 -0
- /package/dist/scripts/{1379-6f35e2e9bb-lite.chunk.js.LICENSE.txt → 1104-f057c6dea1-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{1672-672f298d82-lite.chunk.js.LICENSE.txt → 1379-ca519ec56b-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{624-575b07d922-lite.chunk.js.LICENSE.txt → 1672-0d1fc90529-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{8323-99cb03891e-lite.chunk.js.LICENSE.txt → 4273-e42f763f00-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{9173-2392d447a6-lite.chunk.js.LICENSE.txt → 624-09b51a9d32-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{9230-6dee40b1fb-lite.chunk.js.LICENSE.txt → 8323-360541a2a8-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{9016-0c078a39cb-lite.chunk.js.LICENSE.txt → 9016-82d7e0afb9-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{9308-362f86711f-lite.chunk.js.LICENSE.txt → 9230-ae200d2bd3-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{9395-4cf6f3948e-lite.chunk.js.LICENSE.txt → 9395-e1a02b01ce-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{9478-99486906b9-lite.chunk.js.LICENSE.txt → 9478-abfa7ed3cc-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{953-fd31f9f016-lite.chunk.js.LICENSE.txt → 953-225db845ab-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{9719-cf7d4172b6-lite.chunk.js.LICENSE.txt → 9719-9736913451-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{bundle-fcc536bb54.min.js.LICENSE.txt → bundle-9f8729bedb.min.js.LICENSE.txt} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scripts/1672-672f298d82-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/pill-tab-selector/PillTabSelector.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/restricted-videos-tabs/RestrictedVideosTabs.tsx","file:///app/packages/projects/lite/src/apps/settings/components/settings-layout/SettingsLayout.tsx","file:///app/packages/projects/lite/src/apps/settings/flight-request/ContentReviewSettingsRequests.ts","file:///app/packages/projects/lite/src/apps/settings/views/content-review-settings/ReviewPeriodSetting.tsx","file:///app/packages/projects/lite/src/apps/settings/views/content-review-settings/ReviewVideosToggle.tsx","file:///app/packages/projects/lite/src/apps/settings/views/content-review-settings/ContentReviewSettingsForm.tsx","file:///app/packages/projects/lite/src/apps/settings/views/content-review-settings/partial-loading/partial-content-review-settings.scss","file:///app/packages/projects/lite/src/apps/settings/views/content-review-settings/partial-loading/PartialContentReviewSettings.tsx","file:///app/packages/projects/lite/src/apps/settings/views/content-review-settings/ContentReviewSettingsView.tsx","file:///app/packages/libs/shared/src/components/pill-tab-selector/pill-tab-selector.scss"],"sourcesContent":["import * as React from 'react';\n\nimport { Core } from 'libs/common/core';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { MediaQueryStrings } from 'libs/shared/enums/MediaQueries';\nimport { useMediaQuery } from 'libs/shared/hooks/UseMediaQuery';\nimport { PartialLoadingHelper } from 'libs/shared/utils/PartialLoadingHelper';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { SvgContainer, SvgContainerSize } from '../svg-container/SvgContainer';\n\nexport interface Breadcrumb {\n name: string;\n appLink?: Core.AppLink;\n active?: boolean;\n}\n\ninterface BreadcrumbItemProps {\n breadcrumb: Breadcrumb;\n withBackIcon?: boolean;\n}\n\nexport const BreadcrumbItem = ({ breadcrumb: { name, appLink, active }, withBackIcon }: BreadcrumbItemProps) => (\n <li className={`breadcrumb-item${active ? ' active' : ''}`}>\n {active\n ? <strong>{name}</strong>\n : <AppLink appLink={appLink}>\n {withBackIcon && <SvgContainer svgName={cvSvgLibrary.ChevronLeft} size={SvgContainerSize.Small} />}\n <span className={withBackIcon ? 'ms-2' : ''}>{name}</span>\n </AppLink>\n }\n </li>\n);\n\ninterface BreadcrumbsProps {\n breadcrumbs: Breadcrumb[];\n}\n\nexport const Breadcrumbs = ({ breadcrumbs }: BreadcrumbsProps) => {\n const isMobile = useMediaQuery(MediaQueryStrings.XS);\n\n const length = breadcrumbs?.length;\n\n if (!length || (isMobile && length < 2))\n return <></>;\n\n if (isMobile)\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n <BreadcrumbItem breadcrumb={breadcrumbs[length - 2]} withBackIcon />\n </ol>\n </nav>\n );\n\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n {breadcrumbs.map((b, idx) => <BreadcrumbItem key={idx} breadcrumb={b} />)}\n </ol>\n </nav>\n );\n};\n\nexport const PartialBreadcrumbs = React.memo(function({ numItems = 3 }: { numItems?: number; }) {\n const isMobile = useMediaQuery(MediaQueryStrings.XS);\n\n if (isMobile) {\n return (\n <div className='partial-loading-background' style={{ height: '1.3125rem', width: '6rem' }} />\n );\n }\n\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n {PartialLoadingHelper.getPartialLoadingItems({ numItems }).map(({ width }, idx) => (\n <li key={idx} className='breadcrumb-item'>\n <span className='d-inline-block partial-loading-background' style={{ width }} dangerouslySetInnerHTML={{ __html: ' ' }} />\n </li>\n ))}\n </ol>\n </nav>\n );\n});","import React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { AnalyticsOptions } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Badge, BadgeType } from 'libs/shared/components/badges/Badge';\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\n\nimport { SvgContainer } from '../svg-container/SvgContainer';\n\nimport styles from './pill-tab-selector.scss';\n\ninterface TabContentsProps {\n tab: PillTab;\n}\n\nfunction TabContents(props: TabContentsProps): JSX.Element {\n return (\n <>\n {!!props.tab.svgName && (\n <div className={props.tab.name ? 'pe-1' : ''}>\n <SvgContainer svgName={props.tab.svgName} />\n </div>\n )}\n\n {props.tab.name}\n\n {typeof (props.tab.count) === 'number' && (\n <div className='ps-2'>\n <Badge type={BadgeType.Count} data={props.tab.count} />\n </div>\n )}\n </>\n );\n}\n\nexport interface PillTab {\n name: string;\n active: boolean;\n svgName?: string;\n\n className?: string;\n\n appLink?: Core.AppLink;\n onSelect?: () => void;\n\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n\n count?: number;\n}\n\ninterface PillTabSelectorProps {\n tabs: PillTab[];\n containerRef?: (el: HTMLElement) => void;\n listClassName?: string;\n className?: string;\n borderRadius?: 'sm' | 'lg'\n}\n\nPillTabSelector.defaultProps = {\n borderRadius: 'lg'\n};\n\nexport function PillTabSelector(props: PillTabSelectorProps): JSX.Element {\n function onSelectTab(tab: PillTab): void {\n if (tab.active || !tab.onSelect)\n return;\n\n tab.onSelect();\n\n if (tab.analyticsData && tab.analyticsOptions)\n AnalyticsHelper.logUserAction(tab.analyticsData, tab.analyticsOptions);\n }\n\n return (\n <nav className={props.className ?? ''} ref={props.containerRef}>\n <ul className={`\n list-unstyled d-inline-block m-0 ${styles.pillTabSelector}\n ${props.borderRadius ? styles.radiusSmall : ''}\n ${props.listClassName}\n `}>\n {props.tabs.map((tab, index) => {\n return (\n <li\n className={`\n p-0 ${styles.tab} ${tab.active ? 'btn btn-dark' : 'btn btn-outline-dark'}\n ${tab.name ? styles.minWidth : ''} ${tab.className}\n `}\n key={index}\n >\n {tab.appLink ? (\n <AppLink\n appLink={tab.appLink}\n analyticsData={tab.analyticsData}\n analyticsOptions={tab.analyticsOptions}\n className={`\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ${styles.tabLink}\n `}\n >\n <TabContents tab={tab} />\n </AppLink>\n ) : (\n <DivButton\n className={`\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset p-2 text-nowrap ${styles.tabLink}\n `}\n onClick={() => onSelectTab(tab)}\n >\n <TabContents tab={tab} />\n </DivButton>\n )}\n </li>\n );\n })}\n </ul>\n </nav>\n );\n}\n","// 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 { AppLinkHelper } from 'libs/common/backbone/core';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EntityType, LocationContext, UserAction } from 'libs/analytics/interfaces';\n\nimport { PillTabSelector } from 'libs/shared/components/pill-tab-selector/PillTabSelector';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nconst namespace = 'settings.restrictedVideosTabs';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst APPLINKS = {\n restrictedVideos: {\n application: AppChannels.SETTINGS,\n action: Actions.Settings.VIDEO_RESTRICTIONS\n },\n contentReview: {\n application: AppChannels.SETTINGS,\n action: Actions.Settings.CONTENT_REVIEW\n },\n contentReviewSettings: {\n application: AppChannels.SETTINGS,\n action: Actions.Settings.CONTENT_REVIEW_SETTINGS\n }\n};\n\ninterface RestrictionTabsProps {\n active: 'restricted-videos' | 'content-review' | 'content-review-settings'\n}\n\nexport function RestrictionTabs(props: RestrictionTabsProps): JSX.Element {\n return (\n <div className='mb-3'>\n <PillTabSelector\n tabs={[{\n name: getPhrase('restrictedVideos'),\n appLink: APPLINKS.restrictedVideos,\n active: props.active === 'restricted-videos',\n analyticsData: {\n name: getPhrase('restrictedVideos'),\n url: AppLinkHelper.getHref(APPLINKS.restrictedVideos)\n },\n analyticsOptions: {\n actionType: UserAction.Click,\n entity: EntityType.Url,\n location: LocationContext.MagicTabs\n }\n }, {\n name: getPhrase('contentReview'),\n appLink: APPLINKS.contentReview,\n active: props.active === 'content-review',\n analyticsData: {\n name: LanguageService.getPhrase(namespace, 'contentReview'),\n url: AppLinkHelper.getHref(APPLINKS.contentReview)\n },\n analyticsOptions: {\n actionType: UserAction.Click,\n entity: EntityType.Url,\n location: LocationContext.MagicTabs\n }\n }, {\n name: getPhrase('contentReviewSettings'),\n appLink: APPLINKS.contentReviewSettings,\n active: props.active === 'content-review-settings',\n analyticsData: {\n name: LanguageService.getPhrase(namespace, 'contentReviewSettings'),\n url: AppLinkHelper.getHref(APPLINKS.contentReviewSettings)\n },\n analyticsOptions: {\n actionType: UserAction.Click,\n entity: EntityType.Url,\n location: LocationContext.MagicTabs\n }\n }]}\n />\n </div>\n );\n}","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { Breadcrumbs } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nimport { useGetSettingsGroups } from 'apps/settings/hooks/useGetSettingsGroups';\n\nconst namespace = 'settings.settingsLayout';\n\n/**\n * Checks if the current user has permission to access the settings module\n */\nexport const useCanAccessSettings = (requiredPermissions: PermissionName | PermissionName[]): boolean => {\n const { hasPermissions } = usePermissions();\n const settingsGroups = useGetSettingsGroups();\n\n /**\n * TODO: Update all settings pages to pasas required permissions, because checking the \n * `useGetSettingsGroups()` values clearly doesnt work for settings pages with multiple\n * applinks inside of them. - Sha\n */\n if (requiredPermissions)\n return hasPermissions(requiredPermissions);\n\n const currentRoute = Core.AppLinkHelper.getCurrentAppLink();\n\n /**\n * Allows us to have popups sitting in other locations be used\n * by our settings pages. For example the manage video access popup\n * in the \"videos with restricted access\" page - Sha\n */\n if (currentRoute.application !== AppChannels.SETTINGS)\n return true;\n\n return settingsGroups.some(group => {\n return group.modules.some(settingsModule => {\n if ('appLink' in settingsModule) {\n return settingsModule.appLink.action === currentRoute.action;\n }\n\n return false;\n });\n });\n};\n\ninterface SettingsLayoutProps {\n heading: string;\n breadcrumbs: string[];\n description?: string;\n requiredPermissions?: PermissionName | PermissionName[];\n headingButton?: () => JSX.Element;\n}\n\nexport function SettingsLayout(props: React.PropsWithChildren<SettingsLayoutProps>): JSX.Element {\n const canAccess = useCanAccessSettings(props.requiredPermissions);\n\n React.useEffect(() => {\n if (!canAccess) {\n Core.AppLinkHelper.trigger({\n application: AppChannels.SETTINGS,\n action: Actions.Settings.HOME\n }, { replace: true });\n }\n }, [canAccess]);\n\n if (!canAccess)\n return <></>;\n\n const breadcrumbs = props.breadcrumbs.map((name, i) => ({\n name,\n appLink: {\n application: AppChannels.SETTINGS,\n action: Actions.Settings.HOME\n },\n active: i === props.breadcrumbs.length - 1\n }));\n\n return (\n <div className='px-3'>\n <div className='d-flex align-items-center justify-content-between'>\n <h1 className='h2'>{props.heading}</h1>\n {props.headingButton?.()}\n </div>\n <div className='pb-3'>\n <Breadcrumbs\n breadcrumbs={[\n {\n name: LanguageService.getPhrase(namespace, 'settingsBreadcrumb'),\n appLink: {\n application: AppChannels.SETTINGS,\n action: Actions.Settings.HOME\n }\n },\n ...breadcrumbs\n ]}\n />\n </div>\n {props.description &&\n <>\n <p>{props.description}</p>\n <hr />\n </>\n }\n\n {props.children}\n </div>\n );\n}","import { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\nimport { Flight } from 'libs/common/flight';\n\nexport const ContentReviewSettingsRequests = {\n getLibraryReviewPeriod(): Flight.Request {\n return {\n url: `{gateway}/v1/library-reviews`,\n key: `coming:soon:settings`,\n normalize: false\n };\n },\n\n setLibraryReviewPeriod(\n period: number\n ): Flight.Request {\n return {\n url: `{gateway}/v1/library-reviews`,\n key: `update:coming:soon:settings`,\n invalidationKeys: 'coming:soon:settings',\n type: HttpVerbs.POST,\n data: {\n reviewPeriod: period\n },\n normalize: false\n };\n },\n\n deleteLibraryReviewPeriod(): Flight.Request {\n return {\n url: `{gateway}/v1/library-reviews`,\n key: `delete:coming:soon:settings`,\n invalidationKeys: 'coming:soon:settings',\n type: HttpVerbs.DELETE,\n normalize: false\n };\n }\n};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { Text } from 'libs/shared/components/text/Text';\n\nconst namespace = 'settings.contentReviewSettings';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface ReviewPeriodSettingProps {\n selected: number;\n onChange: (value: number) => void;\n isSettingEnabled: boolean;\n disabled?: boolean;\n}\n\ninterface ReviewDayType {\n phrase: string;\n value: number;\n}\n\nconst REVIEW_DAYS_OPTIONS: ReviewDayType[] = [\n { phrase: '14days', value: 14 },\n { phrase: '21days', value: 21 },\n { phrase: '30days', value: 30 }\n];\n\nexport function ReviewPeriodSetting(props: ReviewPeriodSettingProps): JSX.Element {\n function onChangeReviewDays(event: React.ChangeEvent<HTMLSelectElement>): void {\n props.onChange(parseInt(event.target.value));\n }\n\n function getHeadingClassName() {\n const baseClassName = 'fw-bold mb-1';\n\n if (!props.isSettingEnabled) {\n return `${baseClassName} text-secondary`;\n }\n\n return baseClassName;\n }\n \n return (\n <div className='mb-3 d-flex'>\n <div>\n <p className={getHeadingClassName()}>\n <Text namespace={namespace} phrase='reviewHeading' />\n </p>\n <p className='mb-1 text-secondary'>\n <Text namespace={namespace} phrase='reviewDescription' options={{ days: props.selected }} />\n </p>\n </div>\n <div className='flex-shrink-0 ms-2'>\n <select\n id='review-days'\n name='review-days'\n autoComplete='off'\n className='form-select'\n value={props.selected || ''}\n disabled={!props.isSettingEnabled || props.disabled}\n onChange={onChangeReviewDays}\n >\n {REVIEW_DAYS_OPTIONS.map((item, index) => (\n <option value={item.value} key={index}>{getPhrase(item.phrase)}</option>\n ))}\n </select>\n </div>\n </div>\n );\n}","import React from 'react';\n\nimport { ExternalLink } from 'libs/shared/components/external-link/ExternalLink';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { ToggleSwitch } from 'libs/shared/components/toggle-switch/ToggleSwitch';\nimport { LiteSupportArticle } from 'libs/shared/enums/SupportArticle';\nimport { ArticleHelper } from 'libs/shared/utils/ArticleHelper';\n\nconst namespace = 'settings.contentReviewSettings';\n\ninterface ReviewVideosToggleProps {\n isEnabled: boolean;\n toggleSwitch: () => void;\n disabled: boolean;\n}\n\nexport function ReviewVideosToggle(props: ReviewVideosToggleProps): JSX.Element {\n const href = ArticleHelper.getLiteArticle(LiteSupportArticle.ContentReview);\n return (\n <div className='row mb-3'>\n <div className='col-10'>\n <p className='fw-bold mb-1'>\n <Text namespace={namespace} phrase='subHeading' />\n </p>\n <p className='mb-1 text-secondary'>\n <Text namespace={namespace} phrase='description' />\n </p>\n <p className='mb-0'>\n <ExternalLink\n href={href}\n className='info-link'\n >\n <Text namespace={namespace} phrase='learnMore' />\n </ExternalLink>\n </p>\n </div>\n <div className='col'>\n <ToggleSwitch\n on={props.isEnabled}\n onClick={props.toggleSwitch}\n disabled={props.disabled}\n showStateWhenDisabled\n />\n </div>\n </div>\n );\n}","import React from 'react';\n\nimport { SpinnerButton } from 'libs/shared/components/spinner-button/SpinnerButton';\nimport { Text } from 'libs/shared/components/text/Text';\n\nimport { ReviewPeriodSetting } from 'apps/settings/views/content-review-settings/ReviewPeriodSetting';\nimport { ReviewVideosToggle } from 'apps/settings/views/content-review-settings/ReviewVideosToggle';\n\nconst namespace = 'settings.contentReviewSettings';\n\ninterface ContentReviewSettingsFormProps {\n isLoading: boolean;\n isEnabled: boolean;\n reviewDays: number;\n handleOnSave: (isEnabled: boolean, reviewDays: number) => void;\n}\n\nexport function ContentReviewSettingsForm(props: ContentReviewSettingsFormProps): JSX.Element {\n const [ isEnabled, setIsEnabled ] = React.useState(props.isEnabled);\n const [ reviewDays, setReviewDays ] = React.useState(props.reviewDays);\n\n function toggleSetting(): void {\n if (!isEnabled && !reviewDays)\n setReviewDays(14);\n\n setIsEnabled(isEnabled => !isEnabled);\n }\n\n function handleOnSave() {\n if (!hasChanges) return;\n\n props.handleOnSave(isEnabled, reviewDays);\n }\n\n const hasChanges = (\n props.reviewDays !== reviewDays ||\n props.isEnabled !== isEnabled\n );\n\n return (\n <div className='row'>\n <div className='col col-md-8 col-lg-6'>\n <ReviewVideosToggle\n disabled={props.isLoading}\n isEnabled={isEnabled}\n toggleSwitch={toggleSetting}\n />\n <ReviewPeriodSetting\n disabled={props.isLoading}\n selected={reviewDays}\n isSettingEnabled={isEnabled}\n onChange={value => setReviewDays(value)}\n />\n <SpinnerButton\n onClick={handleOnSave}\n showSpinner={props.isLoading}\n variant='dark'\n disabled={props.isLoading || !hasChanges}\n >\n <Text namespace={namespace} phrase='saveButton' />\n </SpinnerButton>\n </div>\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"oneLine\":\"BlwYh\",\"twoLine\":\"xfqid\"};","import React from 'react';\n\nimport styles from './partial-content-review-settings.scss';\n\nexport function PartialContentReviewSettings(): JSX.Element {\n return (\n <div className='row g-0'>\n <div className='col col-md-7 col-lg-5'>\n <div className='row mb-3'>\n <div className='col-10'>\n <div className={`partial-loading-background w-50 mb-1 ${styles.oneLine}`} />\n <div className={`partial-loading-background w-100 mb-1 ${styles.twoLine}`} />\n <div className={`partial-loading-background w-100 ${styles.oneLine}`} />\n </div>\n <div className='col'>\n <div className={`partial-loading-background w-100 ${styles.oneLine}`} />\n </div>\n </div>\n <div className='row mb-2'>\n <div className='col-9'>\n <div className={`partial-loading-background w-50 mb-1 ${styles.oneLine}`} />\n <div className={`partial-loading-background w-100 mb-1 ${styles.twoLine}`} />\n </div>\n <div className='col'>\n <div className={`partial-loading-background w-100 ${styles.twoLine}`} />\n </div>\n </div>\n <div className={`partial-loading-background w-25 ${styles.twoLine}`} />\n </div>\n </div>\n );\n}","import React from 'react';\n\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\nimport { Flight } from 'libs/common/flight';\n\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nimport { RestrictionTabs } from 'apps/settings/components/restricted-videos-tabs/RestrictedVideosTabs';\nimport { SettingsLayout } from 'apps/settings/components/settings-layout/SettingsLayout';\nimport { ContentReviewSettingsRequests } from 'apps/settings/flight-request/ContentReviewSettingsRequests';\nimport { LibraryReviewPeriodResponse } from 'apps/settings/interfaces/coming-soon/responses/LibraryReviewPeriodResponse';\nimport { ContentReviewSettingsForm } from 'apps/settings/views/content-review-settings/ContentReviewSettingsForm';\nimport { PartialContentReviewSettings } from 'apps/settings/views/content-review-settings/partial-loading/PartialContentReviewSettings';\n\nconst namespace = 'settings.contentReviewSettings';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function ContentReviewSettingsView(): JSX.Element {\n const fetchAsync = Flight.useGetFetchAsync();\n const alerts = useAlerts();\n const [ isLoading, setIsLoading ] = React.useState(false);\n\n const libraryReview = Flight.useBasicFetch<LibraryReviewPeriodResponse>(\n ContentReviewSettingsRequests.getLibraryReviewPeriod()\n );\n\n async function handleOnSave(isEnabled: boolean, reviewDays: number) {\n if (!isEnabled) {\n Core.AppLinkHelper.trigger({\n application: AppChannels.SETTINGS,\n action: Actions.Settings.TURN_OFF_CONTENT_REVIEW\n });\n return;\n }\n\n setIsLoading(true);\n try {\n await fetchAsync(ContentReviewSettingsRequests.setLibraryReviewPeriod(reviewDays));\n alerts.success(getPhrase('success'));\n } catch {\n alerts.error(getPhrase('error'));\n }\n\n setIsLoading(false);\n }\n\n const isEnabled = !(libraryReview.hasError || libraryReview.statusCode === HttpStatus.NotFound);\n\n return (\n <SettingsLayout\n heading={getPhrase('heading')}\n breadcrumbs={[getPhrase('heading')]}\n requiredPermissions={PermissionName.ManageVideoAccess}\n >\n <RestrictionTabs active='content-review-settings' />\n {libraryReview.hasCompleted ?\n <ContentReviewSettingsForm\n isLoading={isLoading}\n isEnabled={isEnabled}\n reviewDays={libraryReview.data?.reviewPeriod}\n handleOnSave={handleOnSave}\n />\n :\n <PartialContentReviewSettings />\n }\n </SettingsLayout>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"pillTabSelector\":\"Hdi6o\",\"tab\":\"RvNxr\",\"minWidth\":\"GHSz9\",\"radiusSmall\":\"VhJJa\",\"tabLink\":\"WFyvo\"};"],"names":["BreadcrumbItem","breadcrumb","name","appLink","active","withBackIcon","className","svgName","size","S","Breadcrumbs","breadcrumbs","isMobile","length","map","b","idx","key","PartialBreadcrumbs","numItems","style","height","width","dangerouslySetInnerHTML","__html","TabContents","props","tab","count","type","data","PillTabSelector","ref","containerRef","borderRadius","listClassName","tabs","index","analyticsData","analyticsOptions","onClick","onSelect","onSelectTab","defaultProps","OnlineSupportArticle","LiteSupportArticle","DEFAULT_PARTIAL_LOADING_OPTIONS","minWidth","maxWidth","PartialLoadingHelper","getPartialLoadingItems","options","opts","Array","Math","max","floor","random","namespace","getPhrase","APPLINKS","restrictedVideos","application","action","contentReview","contentReviewSettings","RestrictionTabs","url","actionType","entity","location","useCanAccessSettings","requiredPermissions","hasPermissions","settingsGroups","currentRoute","some","group","modules","settingsModule","SettingsLayout","canAccess","replace","i","heading","headingButton","description","children","ContentReviewSettingsRequests","getLibraryReviewPeriod","normalize","setLibraryReviewPeriod","period","invalidationKeys","reviewPeriod","deleteLibraryReviewPeriod","LanguageService","REVIEW_DAYS_OPTIONS","phrase","value","ReviewPeriodSetting","baseClassName","isSettingEnabled","Text","days","selected","id","autoComplete","disabled","onChange","event","parseInt","target","item","ReviewVideosToggle","href","ArticleHelper","ExternalLink","ToggleSwitch","on","isEnabled","toggleSwitch","showStateWhenDisabled","ContentReviewSettingsForm","setIsEnabled","reviewDays","setReviewDays","hasChanges","isLoading","SpinnerButton","handleOnSave","showSpinner","variant","PartialContentReviewSettings","ContentReviewSettingsView","fetchAsync","alerts","setIsLoading","libraryReview","hasError","statusCode","HttpStatus","PermissionName","hasCompleted","success","error"],"sourceRoot":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[1725],{49935:(e,t,a)=>{a.d(t,{Oo:()=>m,b2:()=>d});var r=a(32735),n=a(36848),l=a(86764),i=a(3747),o=a(5859),c=a(35223),s=a(83914),u=function(e){var t=e.breadcrumb,a=t.name,l=t.appLink,i=t.active,o=e.withBackIcon;return r.createElement("li",{className:"breadcrumb-item".concat(i?" active":"")},i?r.createElement("strong",null,a):r.createElement(n.F,{appLink:l},o&&r.createElement(s.x,{svgName:c.vn.ChevronLeft,size:s.S.Small}),r.createElement("span",{className:o?"ms-2":""},a)))},m=function(e){var t=e.breadcrumbs,a=(0,i.a)(l.r.XS),n=null==t?void 0:t.length;return!n||a&&n<2?r.createElement(r.Fragment,null):a?r.createElement("nav",{"aria-label":"breadcrumb"},r.createElement("ol",{className:"breadcrumb m-0 p-0"},r.createElement(u,{breadcrumb:t[n-2],withBackIcon:!0}))):r.createElement("nav",{"aria-label":"breadcrumb"},r.createElement("ol",{className:"breadcrumb m-0 p-0"},t.map((function(e,t){return r.createElement(u,{key:t,breadcrumb:e})}))))},d=r.memo((function(e){var t=e.numItems,a=void 0===t?3:t;return(0,i.a)(l.r.XS)?r.createElement("div",{className:"partial-loading-background",style:{height:"1.3125rem",width:"6rem"}}):r.createElement("nav",{"aria-label":"breadcrumb"},r.createElement("ol",{className:"breadcrumb m-0 p-0"},o.u.getPartialLoadingItems({numItems:a}).map((function(e,t){var a=e.width;return r.createElement("li",{key:t,className:"breadcrumb-item"},r.createElement("span",{className:"d-inline-block partial-loading-background",style:{width:a},dangerouslySetInnerHTML:{__html:" "}}))}))))}))},23201:(e,t,a)=>{a.d(t,{A:()=>s});var r=a(32735),n=a(92802),l=a(2102),i=a(83345),o=a(33936),c="shared.formButtons";function s(e){var t=(0,n.u6)(),a=(0,o.l)(t);return r.createElement(l.m,{variant:e.variant||"primary",type:"submit",disabled:!a,size:e.size,className:e.className?e.className:"",showSpinner:t.isSubmitting},e.submitText?r.createElement(r.Fragment,null,e.submitText):r.createElement(i.x,{namespace:c,phrase:e.isNew?"create":"save"}))}},38365:(e,t,a)=>{a.d(t,{n:()=>N,W:()=>S});var r=a(32735),n=a(80247),l=a(80130),i=a(92802),o=a(91967),c=a(1048),s=a(36848),u=function(e,t){var a={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(a[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var n=0;for(r=Object.getOwnPropertySymbols(e);n<r.length;n++)t.indexOf(r[n])<0&&Object.prototype.propertyIsEnumerable.call(e,r[n])&&(a[r[n]]=e[r[n]])}return a};function m(e){var t=e.label,a=e.checkboxLabelClassName,n=e.checkboxLabelFontWeight,i=e.className,o=u(e,["label","checkboxLabelClassName","checkboxLabelFontWeight","className"]);return r.createElement(l.Z.Group,{className:"form-group"},r.createElement("div",{className:"form-check ".concat(i||"")},r.createElement(N,Object.assign({className:"form-check-input"},o)),r.createElement(l.Z.Label,{className:"form-check-label cursor-pointer ".concat("normal"===n?"fw-normal":""," \n ").concat(a),htmlFor:o.id},t),e.checkboxAppLink&&e.checkboxAppLinkText&&r.createElement(r.Fragment,null,r.createElement("span",null," "),r.createElement(s.F,{appLink:e.checkboxAppLink,className:"info-link"},e.checkboxAppLinkText))))}var d=a(83914),p=a(83345),f=a(73814),b=a(35223);function v(e){var t=(0,i.u6)().values[e.fieldName];return"string"!=typeof t?r.createElement(r.Fragment,null):r.createElement("div",{className:"float-end text-secondary fw-normal"},t.length,"/",e.limit," characters")}const g={revealPassword:"jCfI0",passwordInput:"RBJnf",passwordContainer:"d78lK",passwordContainerDisabled:"asbVo",infoTooltip:"wzyOG",spinner:"CycFx"};function h(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,r=Array(t);a<t;a++)r[a]=e[a];return r}var y=function(e,t){var a={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(a[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var n=0;for(r=Object.getOwnPropertySymbols(e);n<r.length;n++)t.indexOf(r[n])<0&&Object.prototype.propertyIsEnumerable.call(e,r[n])&&(a[r[n]]=e[r[n]])}return a},E="shared.formField";function N(e){var t,a,l=e.children,s=e.showLoadingSpinner,u=y(e,["children","showLoadingSpinner"]),m=(t=r.useState(e.type),a=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var r,n,l,i,o=[],c=!0,s=!1;try{if(l=(a=a.call(e)).next,0===t){if(Object(a)!==a)return;c=!1}else for(;!(c=(r=l.call(a)).done)&&(o.push(r.value),o.length!==t);c=!0);}catch(e){s=!0,n=e}finally{try{if(!c&&null!=a.return&&(i=a.return(),Object(i)!==i))return}finally{if(s)throw n}}return o}}(t,a)||function(e,t){if(e){if("string"==typeof e)return h(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)?h(e,t):void 0}}(t,a)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),p=m[0],f=m[1],v=o.q.isFunction(l)?function(e){return l(e)}:r.Children.count(l)?l:null;if("password"!==u.type)return s?r.createElement("div",{className:"position-relative"},r.createElement(i.gN,Object.assign({},c.t.omit(u,["formSize"])),v),r.createElement("div",{className:g.spinner},r.createElement(n.Z,{animation:"border",size:"sm"}))):r.createElement(i.gN,Object.assign({},c.t.omit(u,["formSize"])),v);var E="position-relative ".concat(g.passwordContainer);return u.className&&(E+=" ".concat(u.className)),u.disabled&&(E+=" ".concat(g.passwordContainerDisabled)),r.createElement("div",{className:E},r.createElement(i.gN,Object.assign({},c.t.omit(u,["formSize","type","className"]),{type:p,className:"".concat(g.passwordInput," border-0 w-100 h-100 outline-none rounded")}),v),"password"===u.type&&r.createElement(d.x,{svgName:"password"===p?b.vn.VisibleOn:b.vn.VisibleOff,className:"svg-container cursor-pointer ".concat(g.revealPassword),onClick:function(){f("password"===p?"text":"password")}}))}function S(e){var t=e.label,a=e.className,n=e.showCharacterCounter,o=e.showRequiredStar,s=e.infoTooltip,u=e.infoTooltipPlacement,h=e.infoText,S=e.formSize,w=e.showOptionalLabel,k=y(e,["label","className","showCharacterCounter","showRequiredStar","infoTooltip","infoTooltipPlacement","infoText","formSize","showOptionalLabel"]),x=(0,i.u6)(),O=x.errors,C=x.touched,I=function(){};if("checkbox"===k.type){var A=c.t.omit(e,["formSize","infoTooltipPlacement"]);return e.disabled&&(A.onChange=I),r.createElement(m,Object.assign({},A))}var j=Object.assign(Object.assign({},k),{className:f.w.getCustomFormControlClassName(O,C,k.name,S,a,"string"==typeof e.as?e.as:null)});return e.disabled&&(j.onChange=I),r.createElement(l.Z.Group,{className:"form-group"},!!t&&r.createElement(l.Z.Label,{htmlFor:k.id,className:"d-flex align-items-center"},t,o&&r.createElement("span",{className:"text-danger"},"*"),s&&r.createElement(d.x,{className:"svg-container text-secondary ".concat(g.infoTooltip),svgName:b.vn.Info,title:s,tooltipPlacement:u,tooltipSpanHack:!0}),w&&r.createElement("span",{className:"text-secondary"}," ",r.createElement(p.x,{namespace:E,phrase:"optional"})),!!n&&!!k.maxLength&&r.createElement("div",{className:"ms-auto"},r.createElement(v,{fieldName:k.name,limit:k.maxLength}))),r.createElement(N,Object.assign({},j)),!!h&&r.createElement(l.Z.Text,{className:"text-secondary"},h),r.createElement(i.Bc,{name:k.name},(function(e){return r.createElement(l.Z.Control.Feedback,{type:"invalid"},e)})))}N.defaultProps={autoComplete:"off"},S.defaultProps={autoComplete:"off",infoTooltipPlacement:"top"}},82644:(e,t,a)=>{a.d(t,{b:()=>u,n:()=>s});var r=a(32735),n=a(92802),l=a(91967),i=a(1048);function o(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,r=Array(t);a<t;a++)r[a]=e[a];return r}var c=function(e,t){var a={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(a[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var n=0;for(r=Object.getOwnPropertySymbols(e);n<r.length;n++)t.indexOf(r[n])<0&&Object.prototype.propertyIsEnumerable.call(e,r[n])&&(a[r[n]]=e[r[n]])}return a};function s(e){var t=e.castInitialValues,a=e.castValuesOnSubmit,s=e.initialValues,u=e.onSubmit,m=c(e,["castInitialValues","castValuesOnSubmit","initialValues","onSubmit"]),d=t&&e.validationSchema?e.validationSchema.cast(function(e){if(!e)return{};var t=i.t.deepClone(e);return function e(a){Object.keys(t).forEach((function(r){t.hasOwnProperty(r)&&(i.t.isObject(a[r])?e(a[r]):null===t[r]&&delete t[r])}))}(t),t}(s)):s,p={allowInitialSubmit:e.allowInitialSubmit};return r.createElement(n.J9,Object.assign({enableReinitialize:!0},m,{initialValues:d,onSubmit:function(t,r){var n=r.setSubmitting,l=r.resetForm,i=r.setFieldError,c=a&&e.validationSchema?e.validationSchema.cast(t):t;u(c,(function(){var e,t,a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(a.reset&&l(),a.errors)for(var r=0,c=Object.entries(a.errors);r<c.length;r++){var s=(e=c[r],t=2,function(e){if(Array.isArray(e))return e}(e)||function(e,t){var a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var r,n,l,i,o=[],c=!0,s=!1;try{if(l=(a=a.call(e)).next,0===t){if(Object(a)!==a)return;c=!1}else for(;!(c=(r=l.call(a)).done)&&(o.push(r.value),o.length!==t);c=!0);}catch(e){s=!0,n=e}finally{try{if(!c&&null!=a.return&&(i=a.return(),Object(i)!==i))return}finally{if(s)throw n}}return o}}(e,t)||function(e,t){if(e){if("string"==typeof e)return o(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)?o(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),u=s[0],m=s[1];i(u,m)}n(!1)}))},initialStatus:p}),l.q.isFunction(e.children)?function(t){return e.children(t)}:r.Children.count(e.children)?e.children:null)}function u(){return(0,n.u6)()}s.defaultProps={castInitialValues:!0,castValuesOnSubmit:!0}},34479:(e,t,a)=>{a.d(t,{j:()=>v});var r=a(32735),n=a(44645),l=a(51934),i=a.n(l),o=a(23481),c=a(9111),s=a(13876),u=a(10587);function m(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 r,n,l,i,o=[],c=!0,s=!1;try{if(l=(a=a.call(e)).next,0===t){if(Object(a)!==a)return;c=!1}else for(;!(c=(r=l.call(a)).done)&&(o.push(r.value),o.length!==t);c=!0);}catch(e){s=!0,n=e}finally{try{if(!c&&null!=a.return&&(i=a.return(),Object(i)!==i))return}finally{if(s)throw n}}return o}}(e,t)||function(e,t){if(e){if("string"==typeof e)return d(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)?d(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function d(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,r=Array(t);a<t;a++)r[a]=e[a];return r}a(89789);var p=o.T.encloseNamespace("shared.imageCropper"),f=/data:([a-zA-Z0-9]+\/[a-zA-Z0-9-.+]+).*,.*/;function b(e){var t=m(r.useState(!1),2),a=t[0],n=t[1],l=m(r.useState(!1),2),o=l[0],d=l[1],b=r.useRef(),v=r.useRef();return r.useEffect((function(){var t=new Image;t.src=e.src;var a=b.current.offsetWidth/t.width,r=u.y[e.imageType],l={viewMode:2,autoCropArea:1,ready:function(){return n(!0)}};return r&&(l.minCropBoxWidth=r.width*a,l.minCropBoxHeight=r.height*a,l.aspectRatio=r.width/r.height),v.current=new(i())(b.current,l),function(){v.current.destroy()}}),[]),r.createElement(c.G,{title:p("title"),closePopup:e.closePopup,size:e.popupSize},r.createElement("div",null,r.createElement("img",{src:e.src,alt:e.alt,ref:b,className:"img img-fluid"})),r.createElement(s.u,null,r.createElement(s.u.Cancel,{onClick:e.closePopup}),r.createElement(s.u.Submit,{onClick:function(){if(a){var t=v.current.getCroppedCanvas().toDataURL(function(e){var t=e.match(f);if(t)return t[1]}(e.src));d(!0),e.onClickCrop(t,e.closePopup)}},text:p("crop"),variant:"dark",showSpinner:o})))}b.defaultProps={popupSize:"lg"};var v={renderCropper:function(e){var t=(0,n.s)(document.getElementById("dialog-region"));t.render(r.createElement(b,Object.assign({},e,{closePopup:function(){return t.unmount()}})))}}},73814:(e,t,a)=>{a.d(t,{w:()=>n});var r=a(92802),n={getCustomFormControlClassName:function(e,t,a,n,l,i){var o="";return o=function(e,t){var a="";return a="select"===e?"form-select":"form-control","sm"===t&&(a+=" ".concat(a,"-sm")),"lg"===t&&(a+=" ".concat(a,"-lg")),a}(i,n),(0,r.u9)(t,a)&&(0,r.u9)(e,a)&&(o+=" is-invalid"),l&&(o+=" ".concat(l)),o}}},5859:(e,t,a)=>{function r(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,r=Array(t);a<t;a++)r[a]=e[a];return r}a.d(t,{u:()=>l});var n={numItems:5,minWidth:50,maxWidth:100},l={getPartialLoadingItems:function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},a=Object.assign(Object.assign({},n),t);return(e=Array(a.numItems),function(e){if(Array.isArray(e))return r(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return r(e,t);var 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)||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 r=a(32735),n=a(81886),l=a(23481),i=a(49935),o=a(22902),c=a(14070),s=a(97291),u=a(96368);function m(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,r=Array(t);a<t;a++)r[a]=e[a];return r}var d="settings.settingsLayout",p=function(e){var t=(0,o.T)().hasPermissions,a=(0,u.e)();if(e)return t(e);var r=n.Q.C$.getCurrentAppLink();return r.application!==s.O.SETTINGS||a.some((function(e){return e.modules.some((function(e){return"appLink"in e&&e.appLink.action===r.action}))}))};function f(e){var t,a=p(e.requiredPermissions);if(r.useEffect((function(){a||n.Q.C$.trigger({application:s.O.SETTINGS,action:c.e.Settings.HOME},{replace:!0})}),[a]),!a)return r.createElement(r.Fragment,null);var o,u=e.breadcrumbs.map((function(t,a){return{name:t,appLink:{application:s.O.SETTINGS,action:c.e.Settings.HOME},active:a===e.breadcrumbs.length-1}}));return r.createElement("div",{className:"px-3"},r.createElement("div",{className:"d-flex align-items-center justify-content-between"},r.createElement("h1",{className:"h2"},e.heading),null===(t=e.headingButton)||void 0===t?void 0:t.call(e)),r.createElement("div",{className:"pb-3"},r.createElement(i.Oo,{breadcrumbs:[{name:l.T.getPhrase(d,"settingsBreadcrumb"),appLink:{application:s.O.SETTINGS,action:c.e.Settings.HOME}}].concat((o=u,function(e){if(Array.isArray(e))return m(e)}(o)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(o)||function(e,t){if(e){if("string"==typeof e)return m(e,t);var 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}}(o)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()))})),e.description&&r.createElement(r.Fragment,null,r.createElement("p",null,e.description),r.createElement("hr",null)),e.children)}},51725:(e,t,a)=>{a.r(t),a.d(t,{ProfileDetailsView:()=>z});var r=a(32735),n=a(70680),l=a(23481),i=a(20354),o=a(49985),c=a(65858),s=a(54610),u=a(39151),m=a(31949),d=a(69883),p=a(93543),f=a(97395),b=a(83345),v=a(34479),g=a(67453),h=a(79483),y=a(64818);const E={profileImage:"e1vsK"};var N="settings.editAvatar";function S(e){var t,a,n,l,i=r.useRef(null),o=(null===(t=e.user.avatar)||void 0===t?void 0:t.url)?e.user.avatar.url:(n=e.imageCdnUrl,l=y.l.getInitials(e.user.name,e.user.surname),g.j.createUrl(f._.safeUrlConcat(n,"/v1/profile-images?initials=".concat(l)),{size:s.h2.Medium}));return r.createElement(b.D.Provider,{value:N},r.createElement("div",{className:"col-auto form-group d-flex flex-column align-items-center ps-4"},r.createElement("label",{className:"align-self-start"},r.createElement(b.x,{phrase:"profileImage"})),r.createElement("img",{className:"img img-fluid rounded ".concat(E.profileImage," mb-2"),alt:"User avatar",src:o}),r.createElement("button",{className:"btn btn-outline-dark px-3 text-center",onClick:function(){i.current.value=null,i.current.click(null)}},r.createElement(b.x,{phrase:"uploadImage"})),r.createElement("input",{type:"file",className:"file-select d-none",multiple:!1,accept:"image/jpg,image/jpeg,image/png",ref:i,onChange:function(t){var a;(a=t.target.files)&&a[0]&&h.J.onFileSelect(s.__.Avatars,a,(function(t){v.j.renderCropper({src:t.src,alt:"",onClickCrop:function(t,a){return e.onSelectImage(function(e){return e.split(",")[1]}(t),a)},imageType:s.__.Avatars})}))}}),!!(null===(a=e.user.avatar)||void 0===a?void 0:a.url)&&r.createElement("button",{className:"btn btn-link text-center",onClick:e.onClickRemoveImage},r.createElement(b.x,{phrase:"removeImage"}))))}var w=a(92802),k=a(23201),x=a(38365),O=a(82644),C=a(5173),I=l.T.encloseNamespace("settings.editProfileDetailsForm"),A=(0,C.Ry)().shape({firstName:(0,C.Z_)().max(255,(function(){return I("nameExceeds")})).required((function(){return I("nameRequired")})).default("").trim(),surname:(0,C.Z_)().max(255,(function(){return I("surnameExceeds")})).required((function(){return I("surnameRequired")})).default("").trim(),username:(0,C.Z_)().max(255,(function(){return I("usernameExceeds")})).default("").trim(),displayName:(0,C.Z_)().max(255,(function(){return I("displayNameExceeds")})).default("").trim()}),j=l.T.encloseNamespace("settings.editProfileDetailsForm");function T(e){var t,a;return r.createElement(O.n,{initialValues:{firstName:e.user.name,surname:e.user.surname,username:e.user.username,displayName:null!==(a=null===(t=e.user.metadata)||void 0===t?void 0:t.displayName)&&void 0!==a?a:""},validationSchema:A,onSubmit:e.onClickSave},r.createElement(w.l0,null,r.createElement(x.W,{label:j("firstName"),type:"text",name:"firstName",id:"firstName",placeholder:j("firstNamePlaceholder"),autoFocus:!0,showRequiredStar:!0}),r.createElement(x.W,{label:j("lastName"),type:"text",name:"surname",id:"surname",placeholder:j("lastNamePlaceholder"),showRequiredStar:!0}),r.createElement(x.W,{label:j("displayName"),type:"text",name:"displayName",id:"displayName",placeholder:j("displayNamePlaceholder"),infoTooltip:j("displayNameTooltip")}),r.createElement(x.W,{label:j("username"),type:"text",name:"username",id:"username",placeholder:j("usernamePlaceholder"),showRequiredStar:!0,disabled:!0,infoTooltip:j("usernameTooltip")}),r.createElement(k.A,{variant:"dark",submitText:j("saveChanges"),isNew:!1})))}var P=a(81803),L=a(47288);const F={partialLabel:"Z_3rS",partialInput:"B0iyg",partialSubmit:"MZM6I",partialAvatar:"iqthe",partialUploadImage:"qmeIF"};function U(){return r.createElement("div",{className:"row g-0"},r.createElement("div",{className:"col-4"},r.createElement("div",{className:"form-group"},r.createElement("div",{className:"partial-loading-background ".concat(F.partialLabel)}),r.createElement("div",{className:"partial-loading-background w-100 ".concat(F.partialInput)})),r.createElement("div",{className:"form-group"},r.createElement("div",{className:"partial-loading-background ".concat(F.partialLabel)}),r.createElement("div",{className:"partial-loading-background w-100 ".concat(F.partialInput)})),r.createElement("div",{className:"form-group"},r.createElement("div",{className:"partial-loading-background ".concat(F.partialLabel)}),r.createElement("div",{className:"partial-loading-background w-100 ".concat(F.partialInput)})),r.createElement("div",{className:"form-group"},r.createElement("div",{className:"partial-loading-background ".concat(F.partialLabel)}),r.createElement("div",{className:"partial-loading-background w-100 ".concat(F.partialInput)})),r.createElement("div",{className:"partial-loading-background ".concat(F.partialSubmit)})),r.createElement("div",{className:"col form-group d-flex flex-column ps-4"},r.createElement("div",{className:"partial-loading-background ".concat(F.partialLabel)}),r.createElement("div",{className:"partial-loading-background mb-2 ".concat(F.partialAvatar)}),r.createElement("div",{className:"partial-loading-background mx-3 ".concat(F.partialUploadImage)})))}var Z=l.T.encloseNamespace("settings.profileDetails");function z(){var e=(0,n.I0)(),t=(0,d.Z)(),a=i.a.useBasicFetch(m.N.currentUser()),l=i.a.useBasicFetch(a.data&&L.N.getUser(a.data.id)),f=i.a.useBasicFetch(u.L.config());return r.createElement(P.d,{heading:Z("heading"),breadcrumbs:[Z("breadcrumb")]},a.data&&l.data&&f.data?r.createElement("div",{className:"row g-0"},r.createElement("div",{className:"col-4"},r.createElement(T,{user:l.data,onClickSave:function(r,n){var s=Object.assign(Object.assign({},r),{customerId:a.data.customerId,masterRole:l.data.userProfile.role,userId:l.data.id,userType:l.data.userType,masterYearGroup:l.data.masterYearGroup,displayName:r.displayName||null,username:l.data.username});i.a.fetch(e,L.N.updateUser(s,a.data.id,(function(){o.k.logUserAction(s,{location:c.LZ.Settings,actionType:c.Vw.Edit,workflowPhase:c.eu.Complete,entity:c.py.User}),t.success(Z("success"))}),(function(){t.error(Z("error"))}),n))}})),r.createElement(S,{user:l.data,onSelectImage:function(r,n){i.a.fetch(e,p.A.uploadBase64Image(s.__.Avatars,r,(function(r){!function(r,n){i.a.fetch(e,L.N.updateAvatar(r.id,a.data.id,(function(){o.k.logUserAction({id:a.data.id,avatarId:r.id,avatarUrl:r.location},{actionType:c.Vw.Associate,workflowPhase:c.eu.Complete,location:c.LZ.Settings,entity:c.py.User,descriptor:c.iF.Avatar}),n(),t.success(Z("avatarUploadSuccess"))}),(function(){t.error(Z("avatarUploadError"))})))}(r,n)}),(function(){t.error(Z("avatarUploadError"))})))},onClickRemoveImage:function(){i.a.fetch(e,L.N.deleteAvatar(l.data.avatar.id,a.data.id,(function(){o.k.logUserAction({id:a.data.id,avatarId:l.data.avatar.id},{actionType:c.Vw.Dissociate,workflowPhase:c.eu.Complete,location:c.LZ.Settings,entity:c.py.User,descriptor:c.iF.Avatar}),t.success(Z("avatarDeleteSuccess"))}),(function(){t.error(Z("avatarDeleteError"))})))},imageCdnUrl:f.data.imageCdnUrl})):r.createElement(U,null))}},89789:()=>{}}]);
|
|
2
|
-
//# sourceMappingURL=1725-075015497e-lite.chunk.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scripts/1725-075015497e-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/components/breadcrumbs/Breadcrumbs.tsx","file:///app/packages/libs/shared/src/components/forms/form-buttons/FormButtons.tsx","file:///app/packages/libs/shared/src/components/forms/form-checkbox/FormCheckbox.tsx","file:///app/packages/libs/shared/src/components/forms/form-field/CharacterCounter.tsx","file:///app/packages/libs/shared/src/components/forms/form-field/form-field.scss","file:///app/packages/libs/shared/src/components/forms/form-field/FormField.tsx","file:///app/packages/libs/shared/src/components/forms/form-wrapper/FormWrapper.tsx","file:///app/packages/libs/shared/src/components/image-cropper/SimpleCropper.tsx","file:///app/packages/libs/shared/src/utils/CropperHelper.tsx","file:///app/packages/libs/shared/src/utils/FormHelper.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/components/edit-avatar/edit-avatar.scss","file:///app/packages/projects/lite/src/apps/settings/components/edit-avatar/EditAvatar.tsx","file:///app/packages/projects/lite/src/apps/settings/components/edit-profile-details-form/ProfileDetailsValidationSchema.ts","file:///app/packages/projects/lite/src/apps/settings/components/edit-profile-details-form/EditProfileDetailsForm.tsx","file:///app/packages/projects/lite/src/apps/settings/views/profile-details/partial-loading/partial-profile-details.scss","file:///app/packages/projects/lite/src/apps/settings/views/profile-details/partial-loading/PartialProfileDetails.tsx","file:///app/packages/projects/lite/src/apps/settings/views/profile-details/ProfileDetailsView.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Core } from 'libs/common/core';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { MediaQueryStrings } from 'libs/shared/enums/MediaQueries';\nimport { useMediaQuery } from 'libs/shared/hooks/UseMediaQuery';\nimport { PartialLoadingHelper } from 'libs/shared/utils/PartialLoadingHelper';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { SvgContainer, SvgContainerSize } from '../svg-container/SvgContainer';\n\nexport interface Breadcrumb {\n name: string;\n appLink?: Core.AppLink;\n active?: boolean;\n}\n\ninterface BreadcrumbItemProps {\n breadcrumb: Breadcrumb;\n withBackIcon?: boolean;\n}\n\nexport const BreadcrumbItem = ({ breadcrumb: { name, appLink, active }, withBackIcon }: BreadcrumbItemProps) => (\n <li className={`breadcrumb-item${active ? ' active' : ''}`}>\n {active\n ? <strong>{name}</strong>\n : <AppLink appLink={appLink}>\n {withBackIcon && <SvgContainer svgName={cvSvgLibrary.ChevronLeft} size={SvgContainerSize.Small} />}\n <span className={withBackIcon ? 'ms-2' : ''}>{name}</span>\n </AppLink>\n }\n </li>\n);\n\ninterface BreadcrumbsProps {\n breadcrumbs: Breadcrumb[];\n}\n\nexport const Breadcrumbs = ({ breadcrumbs }: BreadcrumbsProps) => {\n const isMobile = useMediaQuery(MediaQueryStrings.XS);\n\n const length = breadcrumbs?.length;\n\n if (!length || (isMobile && length < 2))\n return <></>;\n\n if (isMobile)\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n <BreadcrumbItem breadcrumb={breadcrumbs[length - 2]} withBackIcon />\n </ol>\n </nav>\n );\n\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n {breadcrumbs.map((b, idx) => <BreadcrumbItem key={idx} breadcrumb={b} />)}\n </ol>\n </nav>\n );\n};\n\nexport const PartialBreadcrumbs = React.memo(function({ numItems = 3 }: { numItems?: number; }) {\n const isMobile = useMediaQuery(MediaQueryStrings.XS);\n\n if (isMobile) {\n return (\n <div className='partial-loading-background' style={{ height: '1.3125rem', width: '6rem' }} />\n );\n }\n\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n {PartialLoadingHelper.getPartialLoadingItems({ numItems }).map(({ width }, idx) => (\n <li key={idx} className='breadcrumb-item'>\n <span className='d-inline-block partial-loading-background' style={{ width }} dangerouslySetInnerHTML={{ __html: ' ' }} />\n </li>\n ))}\n </ol>\n </nav>\n );\n});","import * as React from 'react';\nimport { ButtonProps } from 'react-bootstrap';\nimport { useFormikContext } from 'formik';\n\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { FormSize } from 'libs/shared/components/forms/form-field/FormField';\nimport { SpinnerButton } from 'libs/shared/components/spinner-button/SpinnerButton';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { useCanSubmitForm } from 'libs/shared/hooks/UseCanSubmitForm';\n\nconst namespace = 'shared.formButtons';\n\ninterface FormButtonsProps {\n isNew?: boolean;\n submitText?: string;\n variant?: ButtonProps['variant'];\n size?: FormSize;\n className?: string;\n}\n\nexport function FormButtons<Values extends HashObject>(props: FormButtonsProps): JSX.Element {\n const formikProps = useFormikContext<Values>();\n\n const canSubmit = useCanSubmitForm(formikProps);\n\n return (\n <SpinnerButton\n variant={props.variant || 'primary'}\n type='submit'\n disabled={!canSubmit}\n size={props.size}\n className={props.className ? props.className : ''}\n showSpinner={formikProps.isSubmitting}\n >\n {props.submitText\n ? <>{props.submitText}</>\n : <Text namespace={namespace} phrase={props.isNew ? 'create' : 'save'} />}\n </SpinnerButton>\n );\n}\n","import * as React from 'react';\nimport { Form } from 'react-bootstrap';\nimport { FieldAttributes } from 'formik';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\n\nimport { FieldWrapper, FormFieldProps } from '../form-field/FormField';\n\n/**\n * Use this checkbox within Formik contexts\n */\nexport function FormCheckbox(props: FieldAttributes<FormFieldProps>): JSX.Element {\n const { label, checkboxLabelClassName, checkboxLabelFontWeight, className, ...fieldProps } = props;\n\n return (\n <Form.Group className='form-group'>\n <div className={`form-check ${className || ''}`}>\n <FieldWrapper className='form-check-input' {...fieldProps} />\n <Form.Label\n className={`form-check-label cursor-pointer ${checkboxLabelFontWeight === 'normal' ? 'fw-normal' : ''} \n ${checkboxLabelClassName}`}\n htmlFor={fieldProps.id}\n >\n {label}\n </Form.Label>\n {props.checkboxAppLink && props.checkboxAppLinkText && (\n <>\n <span> </span>\n <AppLink appLink={props.checkboxAppLink} className='info-link'>\n {props.checkboxAppLinkText}\n </AppLink>\n </>\n )}\n </div>\n </Form.Group>\n );\n}\n\n","import * as React from 'react';\nimport { useFormikContext } from 'formik';\n\nimport { HashObject } from 'libs/common/react/interfaces';\n\ninterface CharacterCounterProps<Values extends HashObject> {\n fieldName: keyof Values;\n limit: number;\n}\n\nexport function CharacterCounter<Values extends HashObject>(props: CharacterCounterProps<Values>): JSX.Element {\n const { values } = useFormikContext<Values>();\n\n const field = values[props.fieldName];\n\n if (typeof field !== 'string')\n return <></>;\n\n return (\n <div className='float-end text-secondary fw-normal'>\n {field.length}/{props.limit} characters\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"revealPassword\":\"jCfI0\",\"passwordInput\":\"RBJnf\",\"passwordContainer\":\"d78lK\",\"passwordContainerDisabled\":\"asbVo\",\"infoTooltip\":\"wzyOG\",\"spinner\":\"CycFx\"};","import * as React from 'react';\nimport { Form, Spinner } from 'react-bootstrap';\nimport { Placement } from 'react-bootstrap/esm/types';\nimport { ErrorMessage, Field, FieldAttributes, FieldProps, useFormikContext } from 'formik';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\nimport { FormCheckbox } from 'libs/shared/components/forms/form-checkbox/FormCheckbox';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { FormHelper } from 'libs/shared/utils/FormHelper';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { CharacterCounter } from './CharacterCounter';\n\nimport styles from './form-field.scss';\n\nconst namespace = 'shared.formField';\n\nexport type FormSize = 'lg' | 'sm';\n\n// If checkboxLabelFontWeight is not specified, it will be bold by default\nexport type CheckboxLabelFontWeight = 'normal' | 'bold'\n\nexport interface FormFieldProps {\n /**\n * The name prop MUST be the same as the attribute\n * name of the value that the field is bound to.\n */\n name: string;\n label?: string;\n children?: any;\n showCharacterCounter?: boolean;\n showRequiredStar?: boolean;\n checkboxAppLink?: Core.AppLink;\n checkboxAppLinkText?: string;\n checkboxLabelClassName?: string;\n checkboxLabelFontWeight?: CheckboxLabelFontWeight\n infoTooltip?: string;\n infoTooltipPlacement?: Placement;\n infoText?: string;\n formSize?: FormSize;\n showOptionalLabel?: boolean;\n showLoadingSpinner?: boolean;\n}\n\nFieldWrapper.defaultProps = {\n autoComplete: 'off'\n};\n\nexport function FieldWrapper(\n props: FieldAttributes<FormFieldProps> & { className: string }\n): React.ReactElement {\n const { children, showLoadingSpinner, ...fieldProps } = props;\n\n const [ type, setType ] = React.useState(props.type);\n\n function onClickTogglePassword(): void {\n if (type === 'password')\n setType('text');\n else\n setType('password');\n }\n\n const resolvedChildren = FunctionHelper.isFunction(children)\n ? (f: FieldProps) => children(f)\n : React.Children.count(children) ? children : null;\n\n if (fieldProps.type !== 'password') {\n if (showLoadingSpinner) {\n return (\n <div className='position-relative'>\n <Field {...(ObjectHelper.omit(fieldProps, ['formSize']))}>\n {resolvedChildren}\n </Field>\n\n <div className={styles.spinner}>\n <Spinner animation='border' size='sm' />\n </div>\n </div>\n );\n }\n\n return (\n <Field {...(ObjectHelper.omit(fieldProps, ['formSize']))}>\n {resolvedChildren}\n </Field>\n );\n }\n\n let containerClassName = `position-relative ${styles.passwordContainer}`;\n\n if (fieldProps.className)\n containerClassName += ` ${fieldProps.className}`;\n\n if (fieldProps.disabled)\n containerClassName += ` ${styles.passwordContainerDisabled}`;\n\n /**\n * We need to wrap out input with a relatively positioned element in order to absolutely\n * position our visibility icon to reveal the password - Sha\n */\n return (\n <div className={containerClassName}>\n <Field\n {...(ObjectHelper.omit(fieldProps, [ 'formSize', 'type', 'className' ]))}\n type={type}\n className={`${styles.passwordInput} border-0 w-100 h-100 outline-none rounded`}\n >\n {resolvedChildren}\n </Field>\n {fieldProps.type === 'password' &&\n <SvgContainer\n svgName={type === 'password' ? cvSvgLibrary.VisibleOn : cvSvgLibrary.VisibleOff}\n className={`svg-container cursor-pointer ${styles.revealPassword}`}\n onClick={onClickTogglePassword}\n />\n }\n </div>\n );\n}\n\nFormField.defaultProps = {\n autoComplete: 'off',\n infoTooltipPlacement: 'top'\n};\n\nexport function FormField<Values extends HashObject>(props: FieldAttributes<FormFieldProps>): React.ReactElement {\n const {\n label,\n className,\n showCharacterCounter,\n showRequiredStar,\n infoTooltip,\n infoTooltipPlacement,\n infoText,\n formSize,\n showOptionalLabel,\n ...fieldProps\n } = props;\n\n const { errors, touched } = useFormikContext<Values>();\n\n // This function overwrites the default `onChange` function whenever `props.disabled` is set.\n // This prevents users from \"undisabling\" form fields via inspect element, then editing the field.\n const disabledOnChange = () => {};\n\n if (fieldProps.type === 'checkbox') {\n const _props = ObjectHelper.omit(props, [ 'formSize', 'infoTooltipPlacement' ]);\n\n if (props.disabled)\n _props.onChange = disabledOnChange;\n\n return <FormCheckbox {..._props} />;\n }\n\n const fieldWrapperProps = {\n ...fieldProps,\n className: FormHelper.getCustomFormControlClassName(\n errors,\n touched,\n fieldProps.name,\n formSize,\n className,\n typeof props.as === 'string' ? props.as : null\n )\n };\n\n if (props.disabled)\n fieldWrapperProps.onChange = disabledOnChange;\n\n return (\n <Form.Group className='form-group'>\n {!!label && (\n <Form.Label htmlFor={fieldProps.id} className='d-flex align-items-center'>\n {label}\n {showRequiredStar && <span className='text-danger'>*</span>}\n {infoTooltip && (\n <SvgContainer\n className={`svg-container text-secondary ${styles.infoTooltip}`}\n svgName={cvSvgLibrary.Info}\n title={infoTooltip}\n tooltipPlacement={infoTooltipPlacement}\n tooltipSpanHack\n />\n )}\n {showOptionalLabel && <span className='text-secondary'> <Text namespace={namespace} phrase='optional' /></span>}\n \n {!!showCharacterCounter && !!(fieldProps as React.HTMLProps<HTMLInputElement>).maxLength &&\n <div className='ms-auto'>\n <CharacterCounter\n fieldName={(fieldProps.name as keyof Values)}\n limit={(fieldProps as React.HTMLProps<HTMLInputElement>).maxLength}\n />\n </div>\n }\n </Form.Label>\n )}\n\n <FieldWrapper {...fieldWrapperProps} />\n\n {!!infoText &&\n <Form.Text className='text-secondary'>\n {infoText}\n </Form.Text>\n }\n\n <ErrorMessage name={fieldProps.name}>\n {(errorMessage: string) => <Form.Control.Feedback type='invalid'>{errorMessage}</Form.Control.Feedback>}\n </ErrorMessage>\n </Form.Group>\n );\n}","import * as React from 'react';\nimport { Formik, FormikConfig, FormikContextType, FormikErrors, FormikHelpers, FormikProps, FormikValues, useFormikContext } from 'formik';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\n/**\n * Note: This currently doesn't support arrays, but the need for arrays as initial\n * form data has not yet come up\n */\nfunction omitNullInitialValues<Values extends FormikValues>(initialValues: Values): Values {\n if (!initialValues)\n return {} as Values;\n\n const values = ObjectHelper.deepClone(initialValues);\n\n function omitChildValues(child: Values): void {\n Object.keys(values).forEach((key: keyof Values) => {\n if (!values.hasOwnProperty(key))\n return;\n \n if (ObjectHelper.isObject(child[key]))\n omitChildValues(child[key]);\n else if (values[key] === null)\n delete values[key];\n });\n }\n\n omitChildValues(values);\n return values;\n}\n\n// Omit attributes from FormikConfig that are defined in FormWrapperProps.\ntype ModifiedFormikConfig<Values extends FormikValues> = Omit<FormikConfig<Values>, 'initialValues' | 'onSubmit'>;\n\ninterface InitialStatus {\n allowInitialSubmit: boolean;\n}\n\nexport type FormSubmissionOptions<FormValues = FormikValues> = {\n reset?: boolean;\n errors?: FormikErrors<FormValues>;\n};\n\ninterface FormWrapperProps<FormValues extends FormikValues, ApiValues extends FormikValues> {\n initialValues: Partial<FormValues | ApiValues>;\n onSubmit: (data: FormValues, onDone: (options?: FormSubmissionOptions<FormValues>) => void) => void;\n castInitialValues?: boolean; // cast to validationSchema\n castValuesOnSubmit?: boolean; // cast to validationSchema\n allowInitialSubmit?: boolean; // if true, useCanSubmitForm will allow submit without any user changes.\n}\n\nFormWrapper.defaultProps = {\n castInitialValues: true,\n castValuesOnSubmit: true\n};\n\nexport function FormWrapper<\n FormValues extends FormikValues = FormikValues,\n ApiValues extends FormikValues = FormValues,\n ExtraProps = HashObject\n>(props: ModifiedFormikConfig<FormValues> & ExtraProps & FormWrapperProps<FormValues, ApiValues>): JSX.Element {\n const { castInitialValues, castValuesOnSubmit, initialValues, onSubmit, ...formikProps } = props;\n\n /**\n * If castInitialValues is true, cast initialValues to the validationSchema.\n * This will ensure that any data fetched from the api conforms to the expected form data shape.\n */\n const formattedInitialValues: FormValues = castInitialValues && props.validationSchema\n ? props.validationSchema.cast(omitNullInitialValues(initialValues))\n : initialValues;\n\n const onSubmitHandler = (\n values: FormValues,\n { setSubmitting, resetForm, setFieldError }: FormikHelpers<FormValues>\n ) => {\n /**\n * validationSchema.cast will coerce the values to the types defined in validationSchema.\n * This is useful for trimming inputs:\n * e.g. if a value field has type Yup.string().trim(), it will be automatically trimmed.\n */\n const formattedData = castValuesOnSubmit && props.validationSchema\n ? props.validationSchema.cast(values)\n : values;\n\n onSubmit(formattedData, (options: FormSubmissionOptions<FormValues> = {}) => {\n options.reset && resetForm();\n\n if (options.errors) {\n for (const [ key, value ] of Object.entries(options.errors)) {\n setFieldError(key, value);\n }\n }\n\n setSubmitting(false);\n });\n };\n\n const initialStatus: InitialStatus = {\n allowInitialSubmit: props.allowInitialSubmit\n };\n\n return (\n <Formik<FormValues, ExtraProps>\n enableReinitialize\n {...(formikProps as ModifiedFormikConfig<FormValues> & ExtraProps)}\n initialValues={formattedInitialValues}\n onSubmit={onSubmitHandler}\n initialStatus={initialStatus}\n >\n {FunctionHelper.isFunction(props.children)\n ? (f: FormikProps<FormValues>) => (props.children as (f: FormikProps<FormValues>) => React.ReactNode)(f)\n : React.Children.count(props.children) ? props.children : null\n }\n </Formik>\n );\n}\n\nexport function useFormikContextWrapper<T>(): FormikContextType<T> {\n return useFormikContext<T>();\n}","import React from 'react';\nimport Cropper from 'cropperjs';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\nimport { ImageMinDimensions } from 'libs/shared/constants/ImageSizes';\nimport { ImageType } from 'libs/shared/enums/Images';\n\nimport './image-cropper.scss';\n\nconst namespace = 'shared.imageCropper';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst MIME_REGEX = /data:([a-zA-Z0-9]+\\/[a-zA-Z0-9-.+]+).*,.*/;\n\nconst getImageMimeType = (dataUrl: string) => {\n const mime = dataUrl.match(MIME_REGEX);\n\n if (!mime)\n return;\n\n return mime[1];\n};\n\nexport interface SimpleCropperProps {\n src: string;\n alt: string;\n onClickCrop: (dataUrl: string, closePopup: () => void) => void;\n closePopup: () => void;\n popupSize?: 'sm' | 'md' |'lg' | 'xl';\n\n /**\n * If an imageType isn't provide the aspect ratio\n * and min sizes won'd be locked\n */\n imageType?: ImageType;\n}\n\nSimpleCropper.defaultProps = {\n popupSize: 'lg'\n};\n\nexport function SimpleCropper(props: SimpleCropperProps): JSX.Element {\n const [ imageLoaded, setImageLoaded ] = React.useState(false);\n const [ showSpinner, setShowSpinner ] = React.useState(false);\n\n const imageRef = React.useRef<HTMLImageElement>();\n const cropperRef = React.useRef<Cropper>();\n\n const crop = () => {\n if (!imageLoaded)\n return;\n\n const croppedDataUrl = cropperRef.current.getCroppedCanvas().toDataURL(getImageMimeType(props.src));\n\n setShowSpinner(true);\n props.onClickCrop(croppedDataUrl, props.closePopup);\n };\n\n React.useEffect(() => {\n const image = new Image();\n image.src = props.src;\n\n const viewPortToImageRatio = imageRef.current.offsetWidth / image.width;\n const dimensions = ImageMinDimensions[props.imageType];\n\n const options: Cropper.Options = {\n viewMode: 2,\n autoCropArea: 1, // Number between 0 and 1 that defines the initial cropper area as a percentage of the image.\n ready: () => setImageLoaded(true)\n };\n\n if (dimensions) {\n options.minCropBoxWidth = dimensions.width * viewPortToImageRatio;\n options.minCropBoxHeight = dimensions.height * viewPortToImageRatio;\n options.aspectRatio = dimensions.width / dimensions.height;\n }\n\n cropperRef.current = new Cropper(imageRef.current, options);\n\n return () => { cropperRef.current.destroy(); };\n }, []);\n\n return (\n <Popup\n title={getPhrase('title')}\n closePopup={props.closePopup}\n size={props.popupSize}\n >\n <div>\n <img\n src={props.src}\n alt={props.alt}\n ref={imageRef}\n className='img img-fluid'\n />\n </div>\n\n <PopupButtons>\n <PopupButtons.Cancel onClick={props.closePopup} />\n <PopupButtons.Submit\n onClick={crop}\n text={getPhrase('crop')}\n variant='dark'\n showSpinner={showSpinner}\n />\n </PopupButtons>\n </Popup>\n );\n}","import React from 'react';\nimport { createRoot } from 'react-dom/client';\n\nimport { SimpleCropper, SimpleCropperProps } from 'libs/shared/components/image-cropper/SimpleCropper';\n\nexport const CropperHelper = {\n renderCropper(props: Omit<SimpleCropperProps, 'closePopup'>): void {\n const root = createRoot(document.getElementById('dialog-region'));\n\n root.render(\n <SimpleCropper\n {...props}\n closePopup={() => root.unmount()}\n />\n );\n }\n};","import { FormikErrors, FormikTouched, getIn } from 'formik';\n\nimport { FormSize } from 'libs/shared/components/forms/form-field/FormField';\n\nfunction getTypeSize(type: string, size: FormSize) {\n let className = '';\n\n switch (type) {\n case 'select':\n className = 'form-select';\n break;\n default:\n className = 'form-control';\n }\n\n if (size === 'sm')\n className += ` ${className}-sm`;\n\n if (size === 'lg')\n className += ` ${className}-lg`;\n\n return className;\n}\n\nexport const FormHelper = {\n getCustomFormControlClassName<T>(\n errors: FormikErrors<T>,\n touched: FormikTouched<T>,\n attribute: string,\n size?: FormSize,\n additionalClassName?: string,\n type?: string\n ): string {\n let className = '';\n\n className = getTypeSize(type, size);\n\n // Using getIn as it supports dot notation\n if (getIn(touched, attribute) && getIn(errors, attribute))\n className += ' is-invalid';\n\n if (additionalClassName)\n className += ` ${additionalClassName}`;\n\n return className;\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 {\"profileImage\":\"e1vsK\"};","import React from 'react';\n\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\n\nimport { LanguageNamespaceContext, Text } from 'libs/shared/components/text/Text';\nimport { ImageSize, ImageType } from 'libs/shared/enums/Images';\nimport { User } from 'libs/shared/interfaces';\nimport { CropperHelper } from 'libs/shared/utils/CropperHelper';\nimport { ImageHelper } from 'libs/shared/utils/ImageHelper';\nimport { ImageSelectHelper } from 'libs/shared/utils/ImageSelectHelper';\nimport { UserHelper } from 'libs/shared/utils/UserHelper';\n\nimport styles from './edit-avatar.scss';\n\nconst namespace = 'settings.editAvatar';\n\nfunction getFallBackImageUrl(imageCdnUrl: string, initials: string): string {\n return ImageHelper.createUrl(\n UrlHelper.safeUrlConcat(imageCdnUrl, `/v1/profile-images?initials=${initials}`),\n { size: ImageSize.Medium }\n );\n}\n\nfunction getDataUrl(imageUrl: string): string {\n return imageUrl.split(',')[1];\n}\n\ninterface EditAvatarProps {\n user: User;\n onSelectImage: (dataUrl: string, closePopup: () => void) => void;\n onClickRemoveImage: () => void;\n imageCdnUrl: string;\n}\n\nexport function EditAvatar(props: EditAvatarProps): JSX.Element {\n const imageInputRef = React.useRef(null);\n\n const avatar = props.user.avatar?.url\n ? props.user.avatar.url\n : getFallBackImageUrl(props.imageCdnUrl, UserHelper.getInitials(props.user.name, props.user.surname));\n\n function onClickUploadImage(): void {\n imageInputRef.current.value = null;\n imageInputRef.current.click(null);\n }\n\n function onImageSelect(files: FileList): void {\n if (!files || !files[0])\n return;\n\n ImageSelectHelper.onFileSelect(ImageType.Avatars, files, image => {\n CropperHelper.renderCropper({\n src: image.src,\n alt: '',\n onClickCrop: (imageUrl, closePopup) => props.onSelectImage(getDataUrl(imageUrl), closePopup),\n imageType: ImageType.Avatars\n });\n });\n }\n\n return (\n <LanguageNamespaceContext.Provider value={namespace}>\n <div className='col-auto form-group d-flex flex-column align-items-center ps-4'>\n <label className='align-self-start'><Text phrase='profileImage' /></label>\n <img\n className={`img img-fluid rounded ${styles.profileImage} mb-2`}\n alt='User avatar'\n src={avatar}\n />\n <button className='btn btn-outline-dark px-3 text-center' onClick={onClickUploadImage}>\n <Text phrase='uploadImage' />\n </button>\n <input\n type='file'\n className='file-select d-none'\n multiple={false}\n accept='image/jpg,image/jpeg,image/png'\n ref={imageInputRef}\n onChange={e => onImageSelect(e.target.files)}\n />\n\n {!!props.user.avatar?.url && (\n <button className='btn btn-link text-center' onClick={props.onClickRemoveImage}>\n <Text phrase='removeImage' />\n </button>\n )}\n </div>\n </LanguageNamespaceContext.Provider>\n );\n}","import { object, string } from 'yup';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nconst namespace = 'settings.editProfileDetailsForm';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport const ProfileDetailsValidationSchema = object().shape({\n firstName: string()\n .max(255, () => getPhrase('nameExceeds'))\n .required(() => getPhrase('nameRequired'))\n .default('')\n .trim(),\n surname: string()\n .max(255, () => getPhrase('surnameExceeds'))\n .required(() => getPhrase('surnameRequired'))\n .default('')\n .trim(),\n username: string()\n .max(255, () => getPhrase('usernameExceeds'))\n .default('')\n .trim(),\n displayName: string()\n .max(255, () => getPhrase('displayNameExceeds'))\n .default('')\n .trim()\n});","import React from 'react';\nimport { Form } from 'formik';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EditUserRequest } from 'libs/shared/apps/user-manager/interfaces';\nimport { FormButtons } from 'libs/shared/components/forms/form-buttons/FormButtons';\nimport { FormField } from 'libs/shared/components/forms/form-field/FormField';\nimport { FormWrapper } from 'libs/shared/components/forms/form-wrapper/FormWrapper';\nimport { User } from 'libs/shared/interfaces';\n\nimport { ProfileDetailsValidationSchema } from './ProfileDetailsValidationSchema';\n\nconst namespace = 'settings.editProfileDetailsForm';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface EditProfileDetailsProps {\n user: User;\n onClickSave: (data: EditUserRequest) => void;\n}\n\nexport function EditProfileDetails(props: EditProfileDetailsProps): JSX.Element {\n return (\n <FormWrapper<EditUserRequest>\n initialValues={{\n firstName: props.user.name,\n surname: props.user.surname,\n username: props.user.username,\n displayName: props.user.metadata?.displayName ?? ''\n }}\n validationSchema={ProfileDetailsValidationSchema}\n onSubmit={props.onClickSave}\n >\n <Form>\n <FormField\n label={getPhrase('firstName')}\n type='text'\n name='firstName'\n id='firstName'\n placeholder={getPhrase('firstNamePlaceholder')}\n autoFocus\n showRequiredStar\n />\n <FormField\n label={getPhrase('lastName')}\n type='text'\n name='surname'\n id='surname'\n placeholder={getPhrase('lastNamePlaceholder')}\n showRequiredStar\n />\n <FormField\n label={getPhrase('displayName')}\n type='text'\n name='displayName'\n id='displayName'\n placeholder={getPhrase('displayNamePlaceholder')}\n infoTooltip={getPhrase('displayNameTooltip')}\n />\n <FormField\n label={getPhrase('username')}\n type='text'\n name='username'\n id='username'\n placeholder={getPhrase('usernamePlaceholder')}\n showRequiredStar\n // TODO: Remove when we support modifying usernames\n disabled\n infoTooltip={getPhrase('usernameTooltip')}\n />\n <FormButtons variant='dark' submitText={getPhrase('saveChanges')} isNew={false} />\n </Form>\n </FormWrapper>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"partialLabel\":\"Z_3rS\",\"partialInput\":\"B0iyg\",\"partialSubmit\":\"MZM6I\",\"partialAvatar\":\"iqthe\",\"partialUploadImage\":\"qmeIF\"};","import React from 'react';\n\nimport styles from './partial-profile-details.scss';\n\nexport function PartialProfileDetails(): JSX.Element {\n return (\n <div className='row g-0'>\n <div className='col-4'>\n <div className='form-group'>\n <div className={`partial-loading-background ${styles.partialLabel}`} />\n <div className={`partial-loading-background w-100 ${styles.partialInput}`} />\n </div>\n\n <div className='form-group'>\n <div className={`partial-loading-background ${styles.partialLabel}`} />\n <div className={`partial-loading-background w-100 ${styles.partialInput}`} />\n </div>\n\n <div className='form-group'>\n <div className={`partial-loading-background ${styles.partialLabel}`} />\n <div className={`partial-loading-background w-100 ${styles.partialInput}`} />\n </div>\n\n <div className='form-group'>\n <div className={`partial-loading-background ${styles.partialLabel}`} />\n <div className={`partial-loading-background w-100 ${styles.partialInput}`} />\n </div>\n\n <div className={`partial-loading-background ${styles.partialSubmit}`} />\n </div>\n\n <div className='col form-group d-flex flex-column ps-4'>\n <div className={`partial-loading-background ${styles.partialLabel}`} />\n <div className={`partial-loading-background mb-2 ${styles.partialAvatar}`} />\n <div className={`partial-loading-background mx-3 ${styles.partialUploadImage}`} />\n </div>\n </div>\n );\n}","import React from 'react';\nimport { useDispatch } from 'react-redux';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { AssocDescriptor, EntityType, LocationContext, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { EditUserRequest } from 'libs/shared/apps/user-manager/interfaces';\nimport { ImageType } from 'libs/shared/enums/Images';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { Config, CurrentUser, User } from 'libs/shared/interfaces';\n\nimport { ImageRequests } from 'shared/flight-requests/ImageRequests';\n\nimport { EditAvatar } from 'apps/settings/components/edit-avatar/EditAvatar';\nimport { EditProfileDetails } from 'apps/settings/components/edit-profile-details-form/EditProfileDetailsForm';\nimport { SettingsLayout } from 'apps/settings/components/settings-layout/SettingsLayout';\nimport { UserManagerRequests } from 'apps/user-manager/flight-requests/UserManagerRequests';\n\nimport { PartialProfileDetails } from './partial-loading/PartialProfileDetails';\n\nconst namespace = 'settings.profileDetails';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function ProfileDetailsView(): JSX.Element {\n const dispatch = useDispatch();\n const alerts = useAlerts();\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const user = Flight.useBasicFetch<User>(currentUser.data && UserManagerRequests.getUser(currentUser.data.id));\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n\n function onClickSaveProfileDetails(_updatedUser: EditUserRequest, onDone?: () => void): void {\n const updatedUser = {\n ..._updatedUser,\n // Add other details that are unchanges from this view\n customerId: currentUser.data.customerId,\n masterRole: user.data.userProfile.role,\n userId: user.data.id,\n userType: user.data.userType,\n masterYearGroup: user.data.masterYearGroup,\n displayName: _updatedUser.displayName || null,\n // TODO: Remove when we support modifying usernames\n username: user.data.username\n };\n\n Flight.fetch(dispatch, UserManagerRequests.updateUser(updatedUser, currentUser.data.id, () => {\n AnalyticsHelper.logUserAction(updatedUser, {\n location: LocationContext.Settings,\n actionType: UserAction.Edit,\n workflowPhase: WorkflowPhase.Complete,\n entity: EntityType.User\n });\n\n alerts.success(getPhrase('success'));\n }, () => {\n alerts.error(getPhrase('error'));\n }, onDone));\n }\n\n function onSelectImage(dataUrl: string, closePopup: () => void): void {\n Flight.fetch(dispatch, ImageRequests.uploadBase64Image(ImageType.Avatars, dataUrl, data => {\n onImageUploaded(data, closePopup);\n }, () => {\n alerts.error(getPhrase('avatarUploadError'));\n }));\n }\n\n function onImageUploaded(uploadedAvatarModel: HashObject, closePopup: () => void): void {\n Flight.fetch(dispatch, UserManagerRequests.updateAvatar(uploadedAvatarModel.id, currentUser.data.id, () => {\n AnalyticsHelper.logUserAction({\n id: currentUser.data.id,\n avatarId: uploadedAvatarModel.id,\n avatarUrl: uploadedAvatarModel.location\n }, {\n actionType: UserAction.Associate,\n workflowPhase: WorkflowPhase.Complete,\n location: LocationContext.Settings,\n entity: EntityType.User,\n descriptor: AssocDescriptor.Avatar\n });\n \n closePopup();\n alerts.success(getPhrase('avatarUploadSuccess'));\n }, () => {\n alerts.error(getPhrase('avatarUploadError'));\n }));\n }\n\n function onClickRemoveImage(): void {\n Flight.fetch(dispatch, UserManagerRequests.deleteAvatar(user.data.avatar.id, currentUser.data.id, () => {\n AnalyticsHelper.logUserAction({\n id: currentUser.data.id,\n avatarId: user.data.avatar.id\n }, {\n actionType: UserAction.Dissociate,\n workflowPhase: WorkflowPhase.Complete,\n location: LocationContext.Settings,\n entity: EntityType.User,\n descriptor: AssocDescriptor.Avatar\n });\n\n alerts.success(getPhrase('avatarDeleteSuccess'));\n }, () => {\n alerts.error(getPhrase('avatarDeleteError'));\n }));\n }\n\n return (\n <SettingsLayout\n heading={getPhrase('heading')}\n breadcrumbs={[getPhrase('breadcrumb')]}\n >\n {(currentUser.data && user.data && config.data)\n ? (\n <div className='row g-0'>\n <div className='col-4'>\n <EditProfileDetails\n user={user.data}\n onClickSave={onClickSaveProfileDetails}\n />\n </div>\n\n <EditAvatar\n user={user.data}\n onSelectImage={onSelectImage}\n onClickRemoveImage={onClickRemoveImage}\n imageCdnUrl={config.data.imageCdnUrl}\n />\n </div>\n ) : <PartialProfileDetails />\n }\n </SettingsLayout>\n );\n}"],"names":["BreadcrumbItem","breadcrumb","name","appLink","active","withBackIcon","className","svgName","size","S","Breadcrumbs","breadcrumbs","isMobile","length","map","b","idx","key","PartialBreadcrumbs","numItems","style","height","width","dangerouslySetInnerHTML","__html","namespace","FormButtons","props","formikProps","canSubmit","variant","type","disabled","showSpinner","isSubmitting","submitText","phrase","isNew","FormCheckbox","label","checkboxLabelClassName","checkboxLabelFontWeight","fieldProps","Form","FieldWrapper","htmlFor","id","checkboxAppLink","checkboxAppLinkText","AppLink","CharacterCounter","field","values","fieldName","limit","children","showLoadingSpinner","setType","resolvedChildren","FunctionHelper","f","ObjectHelper","Spinner","animation","containerClassName","SvgContainer","onClick","FormField","showCharacterCounter","showRequiredStar","infoTooltip","infoTooltipPlacement","infoText","formSize","showOptionalLabel","errors","touched","disabledOnChange","_props","onChange","fieldWrapperProps","FormHelper","as","title","tooltipPlacement","tooltipSpanHack","Text","maxLength","errorMessage","defaultProps","autoComplete","FormWrapper","castInitialValues","castValuesOnSubmit","initialValues","onSubmit","formattedInitialValues","validationSchema","cast","omitChildValues","child","Object","keys","forEach","hasOwnProperty","omitNullInitialValues","initialStatus","allowInitialSubmit","enableReinitialize","setSubmitting","resetForm","setFieldError","formattedData","options","reset","entries","value","useFormikContextWrapper","getPhrase","LanguageService","MIME_REGEX","SimpleCropper","imageLoaded","setImageLoaded","setShowSpinner","imageRef","cropperRef","image","Image","src","viewPortToImageRatio","current","offsetWidth","dimensions","imageType","viewMode","autoCropArea","ready","minCropBoxWidth","minCropBoxHeight","aspectRatio","destroy","Popup","closePopup","popupSize","alt","ref","PopupButtons","croppedDataUrl","getCroppedCanvas","toDataURL","dataUrl","mime","match","getImageMimeType","onClickCrop","text","CropperHelper","renderCropper","root","document","getElementById","render","unmount","getCustomFormControlClassName","attribute","additionalClassName","getTypeSize","DEFAULT_PARTIAL_LOADING_OPTIONS","minWidth","maxWidth","PartialLoadingHelper","getPartialLoadingItems","opts","Array","Math","max","floor","random","useCanAccessSettings","requiredPermissions","hasPermissions","settingsGroups","currentRoute","application","some","group","modules","settingsModule","action","SettingsLayout","canAccess","replace","i","heading","headingButton","description","EditAvatar","imageCdnUrl","initials","imageInputRef","avatar","user","url","UserHelper","surname","ImageHelper","UrlHelper","click","multiple","accept","e","files","target","ImageSelectHelper","imageUrl","onSelectImage","split","getDataUrl","onClickRemoveImage","ProfileDetailsValidationSchema","shape","firstName","required","trim","username","displayName","EditProfileDetails","metadata","onClickSave","placeholder","autoFocus","PartialProfileDetails","ProfileDetailsView","dispatch","alerts","currentUser","UserRequests","data","UserManagerRequests","config","ConfigRequests","_updatedUser","onDone","updatedUser","customerId","masterRole","userProfile","role","userId","userType","masterYearGroup","AnalyticsHelper","location","actionType","workflowPhase","entity","success","error","ImageRequests","uploadedAvatarModel","avatarId","avatarUrl","descriptor","onImageUploaded"],"sourceRoot":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[1818],{50690:(e,a,t)=>{t.d(a,{b:()=>r});var n=t(12788),r={renderInPortalIfExists:function(e,a){return a?(0,n.createPortal)(e,a):e}}},14875:(e,a,t)=>{t.d(a,{a:()=>f});var n=t(32735),r=t(23481),i=t(75902),o=t(35223);function s(e){return s="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},s(e)}function c(e,a,t){return(a=function(e){var a=function(e,a){if("object"!=s(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=s(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==s(a)?a:a+""}(a))in e?Object.defineProperty(e,a,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[a]=t,e}var l=c(c(c({},i.GL.Archived,{svgName:o.vn.Archive,svgColorClassName:"text-secondary",actionName:"Archive",statusName:"Archived"}),i.GL.Draft,{svgName:o.vn.Edit,svgColorClassName:"",actionName:"Draft",statusName:"Draft"}),i.GL.Published,{svgName:o.vn.VisibleOn,svgColorClassName:"text-success",actionName:"Publish",statusName:"Published"}),d=t(83914),m=t(40424);const u={badge:"ciO47",draftLight:"A6Yi7",draftDark:"fkXBX",published:"Ovzwy",archived:"r_dco"};function p(e){var a="rounded-pill d-flex align-items-center ps-2 py-1 fw-semibold ms-2 ".concat(u.badge);switch(e.status){case m.GL.Published:a+=" ".concat(u.published);break;case m.GL.Archived:a+=" ".concat(u.archived);break;case m.GL.Draft:a+=" ".concat(e.darkMode?u.draftDark:u.draftLight)}return e.wrapperClassName&&(a+=" ".concat(e.wrapperClassName)),a}function v(e){var a=l[e.status],t=a.statusName,r=a.svgName;return n.createElement("div",{className:p(e)},n.createElement(d.x,{svgName:r}),n.createElement("div",null,t))}var g=t(98364);const b={stickyWrapper:"zhw6K",badgeWrapper:"NOvn1",badge:"pxQSR"};var h=r.T.encloseNamespace("shared.classificationPreviewBanner");function f(e){return n.createElement("div",{className:"".concat(b.stickyWrapper," py-2 d-flex justify-content-space-between bg-dark text-white mx-2 rounded")},n.createElement("div",{className:"position-absolute d-flex ".concat(b.badgeWrapper)},n.createElement(v,{status:e.status,wrapperClassName:"".concat(b.badge),darkMode:!0})),n.createElement("div",{className:"flex-grow-1"},n.createElement("h1",{className:"text-center my-3 h5"},n.createElement(g.V,{emoji:"👀"}),h("topic"===e.type?"topicTitle":"companyTitle"))))}},44522:(e,a,t)=>{t.d(a,{p:()=>w,v:()=>x});var n=t(32735),r=t(110),i=t(50690),o=t(84963),s=t(73679),c=t(83657),l=t(23481),d=t(36848),m=t(83914),u=t(35223),p="shared.backButton";function v(e){var a=Object.assign({textShadow:!0},e),t=a.backToName,r=a.appLink,i=a.color,o=a.extraClasses,s=a.textShadow,c=t?l.T.getPhrase(p,"backTo",{backToName:t}):l.T.getPhrase(p,"back"),v="black"===i?"":"text-white",g=s?"text-shadow":"";return n.createElement(d.F,{appLink:r,className:"d-inline-flex align-items-center h5 mb-0 ".concat(o," ").concat(v," ").concat(g)},n.createElement(m.x,{svgName:u.vn.ChevronLeft,size:m.S.Medium}),n.createElement("span",{className:"ms-1"},c))}v.defaultProps={color:"black",extraClasses:""};var g=t(36518),b=t(83345),h=t(10587),f=t(94232),y=t(54610),E=t(79967),C=t(67453);const k={bannerContent:"sSCTB",actionsContainer:"Z5WI2",bannerContentWithLogo:"rgs7Q",container:"M51HJ",logoContainer:"vkeJk",logoContainerLeft:"M3U9B",logoHeading:"EtRwC",specialEventContainer:"rOxDc",headingLarge:"_8pnV",heading:"JXVBH"};var N="".concat(h.y[y.__.Banners].width,":").concat(h.y[y.__.Banners].height);function L(e){return e.length<160?"h1":k.headingLarge}var w=n.memo((function(e){var a,t,l,d,m=e.heading,u=e.banner,p=e.imageCdnUrl,h=e.actions,w=e.sortComponent,x=e.blockColourClass,T=e.specialEvent,P=n.useContext(f.n),I=(0,E.k)().xxl?1920:1200,S=n.useMemo((function(){if(!T||e.showComingSoon)return!1;var a=r.O.format(new Date,"YYYY-MM-DD");return T.endDate?T.startDate<=a&&T.endDate>=a:T.startDate===a}),[T]),D=e.imageOptions||{width:I,ratio:N,resizeType:y.Nq.Cover},A=!!u&&!!p&&C.j.createBannerUrl(u,{fallbackBaseUrl:p,fallbackCategoryName:m,type:y.__.Banners},D),B={className:"banner banner-header ".concat(e.bannerClassName),style:A?{backgroundImage:"url('".concat(A,"')")}:{}};!u&&x&&(delete B.style,B.className+=" ".concat(x));var U=e.detailsComponent;return i.b.renderInPortalIfExists(n.createElement("header",Object.assign({},B),n.createElement("div",{className:"container ".concat(k.container," position-relative inner-banner")},e.backButtonAppLink&&n.createElement("div",{className:"pt-3"},n.createElement(v,{appLink:e.backButtonAppLink,backToName:e.backButtonText,extraClasses:e.backButtonClasses,color:"white"})),n.createElement("div",{className:"".concat(e.alignLogoLeft?"position-absolute top-50 start-0 translate-middle-y w-100 ps-4":"".concat(k.bannerContent," px-2 ").concat((null===(a=e.logo)||void 0===a?void 0:a.url)?k.bannerContentWithLogo:""))},!!T&&n.createElement("div",{className:"position-relative ".concat(k.specialEventContainer)},n.createElement(s.s,{body:{type:T.endDate?"range":"day",text:T.endDate?"".concat(r.O.format(T.startDate,"DD"),"-").concat(r.O.format(T.endDate,"DD")):r.O.format(T.startDate,"DD")},month:r.O.format(T.startDate,"MMMM"),theme:e.calendarTheme})),n.createElement("div",null,S&&n.createElement("div",{className:"rounded-pill py-1 px-2 my-1 me-1 fw-semibold bg-light-blue lh-1 d-inline-block"},n.createElement(b.x,{namespace:"shared.bannerHeader",phrase:"onToday"})),e.showComingSoon&&n.createElement(o.r,{className:"pe-2 fw-semibold mb-1 rounded-pill justify-content-start text-nowrap"}),n.createElement("div",{className:"d-flex align-items-center"},e.alignLogoLeft&&n.createElement("div",{className:"".concat(k.logoContainerLeft," d-none d-md-block partial-loading-background rounded-circle overflow-hidden me-3")},(null===(t=e.logo)||void 0===t?void 0:t.url)&&n.createElement(g.w,{src:C.j.createUrl(null===(l=e.logo)||void 0===l?void 0:l.url,{size:y.h2.Medium})})),n.createElement("h1",{className:"text-white text-shadow pe-3 position-static ".concat(k.heading," ").concat(L(m)," ").concat(e.alignLogoLeft?"w-50":"")},m,U&&n.createElement(U,null)))),!!h&&n.createElement("div",{className:k.actionsContainer},n.createElement(c.e,{actions:h,sortComponent:w,actionsDropdownClassName:e.actionsDropdownClassName}))),!e.alignLogoLeft&&!!(null===(d=e.logo)||void 0===d?void 0:d.url)&&n.createElement("div",{className:k.logoContainer},n.createElement("img",{src:C.j.createUrl(e.logo.url,{size:y.h2.Small}),className:"rounded-circle"})))),null==P?void 0:P.container)}),(function(e,a){var t,n;return e.actions===a.actions&&e.heading===a.heading&&(null===(t=e.logo)||void 0===t?void 0:t.url)===(null===(n=a.logo)||void 0===n?void 0:n.url)}));function x(){var e=n.useContext(f.n);return i.b.renderInPortalIfExists(n.createElement("div",{className:"partial-banner partial-loading-background ".concat(k.banner)}),null==e?void 0:e.container)}},49935:(e,a,t)=>{t.d(a,{Oo:()=>m,b2:()=>u});var n=t(32735),r=t(36848),i=t(86764),o=t(3747),s=t(5859),c=t(35223),l=t(83914),d=function(e){var a=e.breadcrumb,t=a.name,i=a.appLink,o=a.active,s=e.withBackIcon;return n.createElement("li",{className:"breadcrumb-item".concat(o?" active":"")},o?n.createElement("strong",null,t):n.createElement(r.F,{appLink:i},s&&n.createElement(l.x,{svgName:c.vn.ChevronLeft,size:l.S.Small}),n.createElement("span",{className:s?"ms-2":""},t)))},m=function(e){var a=e.breadcrumbs,t=(0,o.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(d,{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(d,{key:a,breadcrumb:e})}))))},u=n.memo((function(e){var a=e.numItems,t=void 0===a?3:a;return(0,o.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:" "}}))}))))}))},56520:(e,a,t)=>{t.d(a,{R0:()=>p,_N:()=>m,eR:()=>u});var n=t(23481),r=t(97395),i=t(20354),o=t(42617),s=t(4594),c=t(39151),l=t(31949),d=n.T.encloseNamespace("shared.hooks");function m(e,a,t,n){var i=r._.safeUrlConcat(e,"manage"),o=r._.safeUrlConcat(e,"exchange"),c=function(e,a,t){return r._.safeUrlConcat(e,"".concat(a,"/").concat(t))};switch(a){case s.E.Subject:return r._.safeUrlConcat(i,"subjects/presentations/".concat(n,"/classifications/").concat(t,"/edit"));case s.E.Video:return c(i,"videos",t);case s.E.Playlist:return c(i,"playlists",t);case s.E.Series:return c(i,"series",t);case s.E.Company:return c(i,"companies",t);case s.E.Interactive:return c(i,"interactives",t);case s.E.Clip:return c(i,"clips",t);case s.E.Category:return c(o,"categories",t)}}function u(){return d("openInCurationStudio")}function p(){var e,a,t=i.a.useBasicFetch(l.N.currentUser()),n=i.a.useBasicFetch((null===(e=t.data)||void 0===e?void 0:e.id)&&l.N.groups(null===(a=t.data)||void 0===a?void 0:a.id)).data,r=i.a.useBasicFetch(c.L.config()),s=[o.j.Curator,o.j.Content,o.j.Developer];return{openInCurationStudioLabel:u(),isUserCurator:s.some((function(e){return null==n?void 0:n.data.find((function(a){return a.name===e}))})),getOpenInCurationStudioLink:function(e,a,t){var n;return m(null===(n=r.data)||void 0===n?void 0:n.curatorUrl,e,a,t)}}}},41818:(e,a,t)=>{t.r(a),t.d(a,{CompanyDashboardView:()=>X});var n=t(32735),r=t(23481),i=t(81886),o=t(20354),s=t(28400),c=t(65858),l=t(75896),d=t(23232),m=t(83345),u=t(76177),p=t(40424),v=t(35223),g="moviesAndTv.companyDashboardEmptyState",b=r.T.encloseNamespace(g);function h(e){var a,t,i=(null===(a=e.dashboard)||void 0===a?void 0:a.status)===p.GL.Archived;return n.createElement(d.u,null,n.createElement(d.u.Image,{src:e.imageUrl,altText:b("info")}),n.createElement(d.u.Heading,null,n.createElement(m.x,{namespace:g,phrase:"heading"})),n.createElement(d.u.Info,null,n.createElement(m.x,{namespace:g,phrase:"info"})),n.createElement(u.u,{title:i?r.T.getPhrase(g,"archivedCtaTooltip"):"",spanHack:!0},n.createElement(d.u.Cta,{text:r.T.getPhrase(g,"add"),appLink:null===(t=e.addWidgetApplink)||void 0===t?void 0:t.call(e),className:"btn btn-dark",icon:v.vn.Plus,disabled:i})))}var f=t(44522),y=t(49935),E=t(32624),C=t(7733),k=t(77843),N=t(9085);function L(e){var a,t,r,i=l.m.sortBy(null===(a=e.dashboard)||void 0===a?void 0:a.widgets,"index");function o(a,t,n){var r=k.S.getWidgetParams(t,n,k.S.getDashboardTargetType(e.dashboard));return e.getWidgetContentRequest(a,r,n)}var s=e.isReadonly&&!(null==i?void 0:i.length);return n.createElement(n.Fragment,null,!!i.length&&n.createElement(n.Fragment,null,e.company?n.createElement(f.p,{heading:e.company.name,banner:e.company.banner,imageCdnUrl:e.imageCdnUrl,blockColourClass:(0,N.x)(e.company.name,C.o),actions:null===(t=e.getBannerActions)||void 0===t?void 0:t.call(e),actionsDropdownClassName:"btn btn-outline-dark"}):n.createElement(f.v,null),n.createElement("div",{className:"py-3 mb-3 border-bottom"},n.createElement(y.Oo,{breadcrumbs:null===(r=e.getBreadcrumbs)||void 0===r?void 0:r.call(e)})),n.createElement("div",{className:"mt-3"},i.map((function(a){return n.createElement(E.L,{key:a.id,id:a.id,imageCdnUrl:e.imageCdnUrl,getContentRequest:o,audiences:e.audiences,name:a.name,description:a.description,templateId:a.templateId,metadata:a.metadata,presentation:e.presentation,setFavourite:e.setFavourite,canFavourite:e.canFavourite,appLinks:e.widgetAppLinks,isScrollToTargetWidget:(null==e?void 0:e.scrollToWidgetId)===a.id,widgetTypeId:a.widgetId,yearGroups:e.yearGroups,hasPermissions:e.hasPermissions,hasLocalPermissions:e.hasLocalPermissions,isPreviewing:e.isReadonly,companyLogoFallbackUrl:e.companyLogoFallbackUrl,subTextType:e.subTextType,resourceThumbnailFallbackImageUrl:e.resourceThumbnailFallbackImageUrl,preferences:a.preferences,isPlugin:e.isPlugin})})))),s&&n.createElement(h,{dashboard:e.dashboard,isReadonly:e.isReadonly,imageUrl:e.emptyImageUrl,addWidgetApplink:e.widgetAppLinks.widgetWizard}))}var w=t(14875),x=t(183),T=t(67058),P=t(39151),I=t(80889),S=t(56520),D=t(22902),A=t(79612),B=t(37802),U=t(76753),O=t(99742),_=t(14070),F=t(97291),j=t(97395),M={company:function(e){var a={query:"banner"};return{url:j._.urlBuilder("{gateway}/v1/objects/".concat(e),a),publicUrl:j._.urlBuilder("/api/objects/".concat(e),a),key:"company:".concat(e)}}},W=t(51855),G=t(7179),R=t(27638),H=t(23737),V=t(33192),z=t(22490),q=t(82431),Y=r.T.encloseNamespace("moviesAndTv.companyDashboard"),Q={videoType:function(e,a){return z.W.getAppLink(e,Object.assign(Object.assign({},a),{moviesAndTv:!0,context:x.Q.Widget}))},series:q.j.getSeriesAppLink,subText:function(e){return q.j.getSeriesAppLink(e.series)},playlist:function(e){return{application:F.O.PLAYLISTS,action:_.e.Playlists.PLAYLIST,args:[e.id,s.m.slugify(e.name)]}},classroomGuide:z.W.getClassroomGuideAppLink,interactiveGuidance:z.W.getInteractiveGuidanceAppLink,resourceGuidance:z.W.getResourceGuidanceAppLink};function X(e){var a,t,r=o.a.useBasicFetch(P.L.config()),s=o.a.useBasicFetch(M.company(e.companyId)),l=(0,S.R0)(),d=l.openInCurationStudioLabel,m=l.isUserCurator,u=l.getOpenInCurationStudioLink,v=(0,B.r)(null),g=v.hasNewMoviesAndTv,b=v.isLoadingSettings,h=(0,R.u)(c.LZ.ExpandableVideoThumbnail),f=h.setFavourite,y=h.canFavourite,E=(0,D.T)(),C=E.hasPermissions,k=E.hasLocalPermissions,N=(0,W.G)().isPlugin,x=(0,H.y)({targetType:p.ku.Company,queryParams:e.queryParams,presentationSlug:e.presentationSlug,companyId:e.companyId}),j=x.dashboard,z=x.presentation,q=x.isPreviewing;return(0,A.M)(U.CG.getDefaultMetadata({title:null===(a=s.data)||void 0===a?void 0:a.name,phraseContext:{phraseHandler:Y,titlePhrase:"pageTitle",descriptionPhrase:"pageDescription"},canonicalLink:V.f.getCanonicalLink({stripPresentationSlug:!0}),allowIndexing:!1})),(0,G.P)({id:e.companyId,app:"studios"}),n.useEffect((function(){!b&&j.hasCompleted&&(g&&j.data||i.Q.C$.trigger({application:F.O.DASHBOARD,action:_.e.Dashboard.HOME},{replace:!0}))}),[g,b,j.data,j.hasCompleted]),n.useEffect((function(){j.hasCompleted&&!j.data&&i.Q.Ry.throw(new T.d)}),[j.data,j.hasCompleted]),n.createElement("div",{className:"position-relative px-4"},!(!q||!j.data)&&n.createElement(w.a,{status:j.data.status,type:"company"}),n.createElement(L,{company:s.data,dashboard:j.data,getWidgetContentRequest:I._.dashboardWidgetContent,getBannerActions:function(){var e,a;return m?[{label:d,href:u(null===(e=s.data)||void 0===e?void 0:e.typeId,null===(a=s.data)||void 0===a?void 0:a.id),openInNewTab:!0}]:[]},imageCdnUrl:null===(t=r.data)||void 0===t?void 0:t.imageCdnUrl,resourceThumbnailFallbackImageUrl:O.W.Fallbacks.RESOURCE_THUMBNAIL,presentation:z,widgetAppLinks:Q,setFavourite:f,canFavourite:y,getBreadcrumbs:function(){return s.hasCompleted?[{name:Y("moviesAndTv"),appLink:{application:F.O.MOVIES_AND_TV,action:_.e.MoviesAndTv.HOME}},{name:s.data.name,active:!0}]:[]},hasPermissions:C,hasLocalPermissions:k,isPlugin:N}))}}}]);
|
|
2
|
-
//# sourceMappingURL=1818-64a145c5fe-lite.chunk.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scripts/1818-64a145c5fe-lite.chunk.js","mappings":"mJAGaA,EAAe,CAC1BC,uBAAsB,SAACC,EAA+BC,GACpD,OAAIA,GACK,IAAAC,cAAaF,EAAWC,GAE1BD,CACT,E,wsBCEK,IAAMG,EAAqB,SAC/BC,EAAA,YAA2B,CAC1BC,QAAS,aACTC,kBAAmB,iBACnBC,WAAY,UACZC,WAAY,aAEbJ,EAAA,SAAwB,CACvBC,QAAS,UACTC,kBAAmB,GACnBC,WAAY,QACZC,WAAY,UAEbJ,EAAA,aAA4B,CAC3BC,QAAS,eACTC,kBAAmB,eACnBC,WAAY,UACZC,WAAY,c,sBC3BhB,SAAgB,MAAQ,QAAQ,WAAa,QAAQ,UAAY,QAAQ,UAAY,QAAQ,SAAW,SCOxG,SAASC,EAAaC,GACpB,IAAIC,EAAY,qEAAH,OAAwE,SAErF,OAAQD,EAAME,QACZ,KAAK,eACHD,GAAa,IAAJ,OAAQ,aACjB,MACF,KAAK,cACHA,GAAa,IAAJ,OAAQ,YACjB,MACF,KAAK,WACHA,GAAa,IAAJ,OAAQD,EAAMG,SAAW,YAAmB,cAOzD,OAHIH,EAAMI,mBACRH,GAAa,IAAJ,OAAQD,EAAMI,mBAElBH,CACT,CAQM,SAAUI,EAAqBL,GACnC,MAAgCP,EAAsBO,EAAME,QAApDJ,EAAU,EAAVA,WAAYH,EAAO,EAAPA,QAEpB,OACE,uBAAKM,UAAWF,EAAaC,IAC3B,gBAACM,EAAA,EAAY,CAACX,QAASA,IACvB,2BAAMG,GAGZ,C,eC3CA,SAAgB,cAAgB,QAAQ,aAAe,QAAQ,MAAQ,SCSvE,IACMS,EAAYC,EAAA,mBADA,sCAQZ,SAAUC,EAAcT,GAC5B,OACE,uBAAKC,UAAS,UAAK,gBAAoB,+EACrC,uBAAKA,UAAS,oCAA+B,iBAC3C,gBAACI,EAAoB,CAACH,OAAQF,EAAME,OAAQE,iBAAgB,UAAK,SAAgBD,UAAQ,KAE3F,uBAAKF,UAAU,eACb,sBAAIA,UAAU,uBACZ,gBAACS,EAAA,EAAS,CAACC,MAAM,OAChBJ,EAAyB,UAAfP,EAAMY,KAAmB,aAAe,kBAK7D,C,2JCvBMC,EAAY,oBAkBZ,SAAUC,EAAWd,GACzB,MAA8D,eAC5De,YAAY,GACTf,GAFGgB,EAAU,EAAVA,WAAYC,EAAO,EAAPA,QAASC,EAAK,EAALA,MAAOC,EAAY,EAAZA,aAAcJ,EAAU,EAAVA,WAK5CK,EAAaJ,EACfR,EAAA,YAA0BK,EAAW,SAAU,CAAEG,WAAAA,IACjDR,EAAA,YAA0BK,EAAW,QAEnCQ,EAAuB,UAAVH,EAAoB,GAAK,aACtCI,EAAkBP,EAAa,cAAgB,GAErD,OACE,gBAACQ,EAAA,EAAO,CACNN,QAASA,EACThB,UAAS,mDAA8CkB,EAAY,YAAIE,EAAU,YAAIC,IAErF,gBAAChB,EAAA,EAAY,CAACX,QAAS,iBAA0B6B,KAAMlB,EAAAmB,EAAA,SACvD,wBAAMxB,UAAU,QAAQmB,GAG9B,CA3BAN,EAAWY,aAAe,CACxBR,MAAO,QACPC,aAAc,I,iFCvBhB,SAAgB,cAAgB,QAAQ,iBAAmB,QAAQ,sBAAwB,QAAQ,UAAY,QAAQ,cAAgB,QAAQ,kBAAoB,QAAQ,YAAc,QAAQ,sBAAwB,QAAQ,aAAe,QAAQ,QAAU,SCqBlQ,IAAMQ,EAAQ,GAAH,OAAM,IAAmB,cAAmBC,MAAK,YAAI,IAAmB,cAAmBC,QAatG,SAASC,EAAaC,GACpB,OAAIA,EAAQC,OAAS,IACZ,KAEF,cACT,CAuBA,IAEaC,EAAe,QAAW,SAASjC,G,YACtC+B,EAAyF/B,EAAzF+B,QAASG,EAAgFlC,EAAhFkC,OAAQC,EAAwEnC,EAAxEmC,YAAaC,EAA2DpC,EAA3DoC,QAASC,EAAkDrC,EAAlDqC,cAAeC,EAAmCtC,EAAnCsC,iBAAkBC,EAAiBvC,EAAjBuC,aAE1EC,EAAyB,aAAiBC,EAAA,GAE1CC,GA3Cc,EAAAC,EAAA,KAEJC,IALS,KADL,KAiDdC,EAAsB,WAAc,WACxC,IAAKN,GAAgBvC,EAAM8C,eACzB,OAAO,EAET,IAAMC,EAAQC,EAAA,SAAkB,IAAIC,KAAQ,cAE5C,OAAKV,EAAaW,QAGXX,EAAaY,WAAaJ,GAASR,EAAaW,SAAWH,EAFzDR,EAAaY,YAAcJ,CAGtC,GAAG,CAACR,IAEEa,EAAepD,EAAMoD,cAAgB,CACzCxB,MAAOc,EACPW,MAAO1B,EACP2B,WAAY,YAGRC,IAAQrB,KAAYC,GAAeqB,EAAA,kBAA4BtB,EAAQ,CAC3EuB,gBAAiBtB,EACjBuB,qBAAsB3B,EACtBnB,KAAM,cACLwC,GAEGO,EAAgG,CACpG1D,UAAW,wBAAF,OAA0BD,EAAM4D,iBACzCC,MAAON,EAAM,CAAEO,gBAAiB,QAAF,OAAUP,EAAG,OAAS,CAAC,IAGlDrB,GAAUI,WACNqB,EAAeE,MACtBF,EAAe1D,WAAa,IAAJ,OAAQqC,IAGlC,IAAMyB,EAAmB/D,EAAMgE,iBAE/B,OAAO5E,EAAA,yBAEL,0CAAYuE,GACV,uBAAK1D,UAAS,oBAAe,YAAgB,oCAC1CD,EAAMiE,mBACL,uBAAKhE,UAAU,QACb,gBAACa,EAAU,CACTG,QAASjB,EAAMiE,kBACfjD,WAAYhB,EAAMkE,eAClB/C,aAAcnB,EAAMmE,kBACpBjD,MAAM,WAKZ,uBAAKjB,UAAS,UAAKD,EAAMoE,cAAgB,iEAAmE,GAAH,OAAM,gBAAoB,kBAAmB,QAAV,EAAApE,EAAMqE,YAAI,eAAEd,KAAM,wBAA+B,QACxLhB,GACD,uBAAKtC,UAAS,4BAAuB,0BACnC,gBAACqE,EAAA,EAAmB,CAClBC,KAAM,CACJ3D,KAAM2B,EAAaW,QAAU,QAAU,MACvCsB,KAAMjC,EAAaW,QAAO,UACnBF,EAAA,SAAkBT,EAAaY,UAAW,MAAK,YAAIH,EAAA,SAAkBT,EAAaW,QAAS,OAC9FF,EAAA,SAAkBT,EAAaY,UAAW,OAEhDsB,MAAOzB,EAAA,SAAkBT,EAAaY,UAAW,QACjDuB,MAAO1E,EAAM2E,iBAInB,2BACG9B,GACC,uBAAK5C,UAAU,kFACb,gBAAC2E,EAAA,EAAI,CAAC/D,UA9EJ,sBA8E0BgE,OAAO,aAGtC7E,EAAM8C,gBACL,gBAACgC,EAAA,EAAa,CAAC7E,UAAU,yEAE3B,uBAAKA,UAAU,6BACZD,EAAMoE,eACL,uBAAKnE,UAAS,UAAK,oBAAwB,uFAC9B,QAAV,EAAAD,EAAMqE,YAAI,eAAEd,MACX,gBAACwB,EAAA,EAAS,CAACC,IAAKxB,EAAA,YAAgC,QAAV,EAAAxD,EAAMqE,YAAI,eAAEd,IAAK,CAAE/B,KAAM,iBAGrE,sBAAIvB,UAAS,sDAAiD,UAAc,YAAI6B,EAAaC,GAAQ,YAAI/B,EAAMoE,cAAgB,OAAS,KACrIrC,EACAgC,GAAoB,gBAACA,EAAgB,WAIzC3B,GACD,uBAAKnC,UAAW,oBACd,gBAACgF,EAAA,EAAO,CACN7C,QAASA,EACTC,cAAeA,EACf6C,yBAA0BlF,EAAMkF,8BAKtClF,EAAMoE,kBAA6B,QAAV,EAAApE,EAAMqE,YAAI,eAAEd,MACrC,uBAAKtD,UAAW,iBACd,uBACE+E,IAAKxB,EAAA,YAAsBxD,EAAMqE,KAAKd,IAAK,CAAE/B,KAAM,aACnDvB,UAAU,sBAMpBuC,aAAsB,EAAtBA,EAAwB2C,UAE5B,IAAG,SAACC,EAAWC,G,QAAuB,OACpCD,EAAUhD,UAAYiD,EAAUjD,SAC7BgD,EAAUrD,UAAYsD,EAAUtD,UAClB,QAAd,EAAAqD,EAAUf,YAAI,eAAEd,QAAsB,QAAd,EAAA8B,EAAUhB,YAAI,eAAEd,I,IAGvC,SAAU+B,IACd,IAAM9C,EAAyB,aAAiBC,EAAA,GAEhD,OAAOrD,EAAA,yBACL,uBAAKa,UAAS,oDAA+C,YAC7DuC,aAAsB,EAAtBA,EAAwB2C,UAE5B,C,4HC5KaI,EAAiB,SAAH,WAAMC,WAAcC,EAAI,EAAJA,KAAMxE,EAAO,EAAPA,QAASyE,EAAM,EAANA,OAAUC,EAAY,EAAZA,aAAY,OAClF,sBAAI1F,UAAS,yBAAoByF,EAAS,UAAY,KACnDA,EACG,8BAASD,GACT,gBAAC,IAAO,CAACxE,QAASA,GACjB0E,GAAgB,gBAAC,IAAY,CAAChG,QAAS,iBAA0B6B,KAAM,EAAAC,EAAA,QACxE,wBAAMxB,UAAW0F,EAAe,OAAS,IAAKF,IAG/C,EAOMG,EAAc,SAAH,GAAyC,IAAnCC,EAAW,EAAXA,YACtBC,GAAW,OAAc,QAEzB9D,EAAS6D,aAAW,EAAXA,EAAa7D,OAE5B,OAAKA,GAAW8D,GAAY9D,EAAS,EAC5B,iCAEL8D,EAEA,oCAAgB,cACd,sBAAI7F,UAAU,sBACZ,gBAACsF,EAAc,CAACC,WAAYK,EAAY7D,EAAS,GAAI2D,cAAY,MAMvE,oCAAgB,cACd,sBAAI1F,UAAU,sBACX4F,EAAYE,KAAI,SAACC,EAAGC,GAAG,OAAK,gBAACV,EAAc,CAACW,IAAKD,EAAKT,WAAYQ,GAAK,KAIhF,EAEaG,EAAqB,QAAW,YAAiD,QAAtCC,SAAAA,OAAQ,IAAG,IAAC,EAGlE,OAFiB,OAAc,QAI3B,uBAAKnG,UAAU,6BAA6B4D,MAAO,CAAEhC,OAAQ,YAAaD,MAAO,UAKnF,oCAAgB,cACd,sBAAI3B,UAAU,sBACX,2BAA4C,CAAEmG,SAAAA,IAAYL,KAAI,WAAYE,GAAG,IAAZrE,EAAK,EAALA,MAAK,OACrE,sBAAIsE,IAAKD,EAAKhG,UAAU,mBACtB,wBAAMA,UAAU,4CAA4C4D,MAAO,CAAEjC,MAAAA,GAASyE,wBAAyB,CAAEC,OAAQ,WAC9G,KAKf,G,sIC1EM/F,EAAY,qBADA,gBAGZ,SAAU,EACdgG,EACAC,EACAC,EACAC,GAEA,IAAMC,EAAgB,kBAAwBJ,EAAS,UACjDK,EAAkB,kBAAwBL,EAAS,YACnDM,EAAO,SAACN,EAAiBC,EAAoBC,GAAU,OAAK,kBAAwBF,EAAS,GAAF,OAAKC,EAAU,YAAIC,GAAK,EAEzH,OAAQD,GACN,KAAK,YACH,OAAO,kBAAwBG,EAAe,0BAAF,OAA4BD,EAAc,4BAAoBD,EAAE,UAC9G,KAAK,UACH,OAAOI,EAAKF,EAAe,SAAUF,GACvC,KAAK,aACH,OAAOI,EAAKF,EAAe,YAAaF,GAC1C,KAAK,WACH,OAAOI,EAAKF,EAAe,SAAUF,GACvC,KAAK,YACH,OAAOI,EAAKF,EAAe,YAAaF,GAC1C,KAAK,gBACH,OAAOI,EAAKF,EAAe,eAAgBF,GAC7C,KAAK,SACH,OAAOI,EAAKF,EAAe,QAASF,GACtC,KAAK,aACH,OAAOI,EAAKD,EAAiB,aAAcH,GAEjD,CAEM,SAAUK,IACd,OAAOvG,EAAU,uBACnB,CAEM,SAAUwG,I,QACRC,EAAc,kBAAkC,mBACxCC,EAAe,mBACV,QAAhB,EAAAD,EAAYE,YAAI,eAAET,KAAO,WAAoC,QAAhB,EAAAO,EAAYE,YAAI,eAAET,KAD1DS,KAGFC,EAAS,kBAA6B,cAEtCC,EAAgB,CAAE,IAAAC,QAAsB,YAAsB,eAMpE,MAAO,CACLC,0BAA2BR,IAC3BS,cALOH,EAAcI,MAAK,SAAAC,GAAK,OAAIR,aAAU,EAAVA,EAAYC,KAAKQ,MAAK,SAAAC,GAAS,OAAIA,EAAUlC,OAASgC,CAAK,GAAC,IAM/FG,4BAA6B,SAACpB,EAAiCC,EAAYC,GAA2B,MACpG,SAAuC,QAAX,EAAAS,EAAOD,YAAI,eAAEW,WAAYrB,EAAYC,EAAIC,EAAe,EAE1F,C,qMCvDM7F,EAAY,yCACZN,EAAYC,EAAA,mBAAiCK,GAS7C,SAAUiH,EAA2B9H,G,QACnC+H,GAA4B,QAAf,EAAA/H,EAAMgI,iBAAS,eAAE9H,UAAW,cAE/C,OACE,gBAAC+H,EAAA,EAAU,KACT,gBAACA,EAAA,QAAgB,CAACjD,IAAKhF,EAAMkI,SAAUC,QAAS5H,EAAU,UAC1D,gBAAC0H,EAAA,UAAkB,KACjB,gBAACrD,EAAA,EAAI,CAAC/D,UAAWA,EAAWgE,OAAO,aAErC,gBAACoD,EAAA,OAAe,KACd,gBAACrD,EAAA,EAAI,CAAC/D,UAAWA,EAAWgE,OAAO,UAErC,gBAACuD,EAAA,EAAO,CAACC,MAAON,EAAavH,EAAA,YAA0BK,EAAW,sBAAwB,GAAIyH,UAAQ,GACpG,gBAACL,EAAA,MAAc,CACbzD,KAAMhE,EAAA,YAA0BK,EAAW,OAC3CI,QAA+B,QAAtB,EAAAjB,EAAMuI,wBAAgB,uBAC/BtI,UAAU,eACVuI,KAAM,UACNC,SAAUV,KAKpB,C,oECIM,SAAUW,EAAiB1I,G,UACzB2I,EAAUC,EAAA,SAAkC,QAAf,EAAA5I,EAAMgI,iBAAS,eAAEW,QAAS,SAE7D,SAASE,EAAwBpC,EAAYqC,EAA4BC,GACvE,IAAMC,EAAS,oBACbF,EACAC,EACA,2BAA8C/I,EAAMgI,YAGtD,OAAOhI,EAAM6I,wBAAwBpC,EAAIuC,EAAQD,EACnD,CAEA,IAAME,EAAiBjJ,EAAMkJ,cAAeP,aAAO,EAAPA,EAAS3G,QAErD,OACE,kCACK2G,EAAQ3G,QACT,gCACGhC,EAAMmJ,QAEH,gBAAClH,EAAA,EAAY,CACXF,QAAS/B,EAAMmJ,QAAQ1D,KACvBvD,OAAQlC,EAAMmJ,QAAQjH,OACtBC,YAAanC,EAAMmC,YACnBG,kBAAkB,EAAA8G,EAAA,GAAgBpJ,EAAMmJ,QAAQ1D,KAAM,KACtDrD,QAA+B,QAAtB,EAAApC,EAAMqJ,wBAAgB,uBAC/BnE,yBAAyB,yBAEzB,gBAAC,IAAmB,MAG1B,uBAAKjF,UAAU,2BACb,gBAAC2F,EAAA,GAAW,CAACC,YAAiC,QAApB,EAAA7F,EAAMsJ,sBAAc,0BAGhD,uBAAKrJ,UAAU,QACZ0I,EAAQ5C,KAAI,SAAAwD,GACX,OACE,gBAACC,EAAA,EAAmB,CAClBtD,IAAKqD,EAAO9C,GACZA,GAAI8C,EAAO9C,GACXtE,YAAanC,EAAMmC,YACnBsH,kBAAmBZ,EACnBa,UAAW1J,EAAM0J,UACjBjE,KAAM8D,EAAO9D,KACbkE,YAAaJ,EAAOI,YACpBC,WAAYL,EAAOK,WACnBC,SAAUN,EAAOM,SACjBC,aAAc9J,EAAM8J,aACpBC,aAAc/J,EAAM+J,aACpBC,aAAchK,EAAMgK,aACpBC,SAAUjK,EAAMkK,eAChBC,wBAAwBnK,aAAK,EAALA,EAAOoK,oBAAqBb,EAAO9C,GAC3DqC,aAAcS,EAAOc,SACrBC,WAAYtK,EAAMsK,WAClBC,eAAgBvK,EAAMuK,eACtBC,oBAAqBxK,EAAMwK,oBAC3BC,aAAczK,EAAMkJ,WACpBwB,uBAAwB1K,EAAM0K,uBAC9BC,YAAa3K,EAAM2K,YACnBC,kCAAmC5K,EAAM4K,kCACzCC,YAAatB,EAAOsB,YACpBC,SAAU9K,EAAM8K,UAGtB,MAKL7B,GACC,gBAACnB,EAA0B,CACzBE,UAAWhI,EAAMgI,UACjBkB,WAAYlJ,EAAMkJ,WAClBhB,SAAUlI,EAAM+K,cAChBxC,iBAAkBvI,EAAMkK,eAAec,eAKjD,C,4JC9HaC,EAAkB,CAC7B9B,QAAO,SAAC1C,GACN,IAAMuC,EAAS,CAAEkC,MAAO,UAExB,MAAO,CACL3H,IAAK4H,EAAA,aAAqB,wBAAD,OAAyB1E,GAAMuC,GACxDoC,UAAWD,EAAA,aAAqB,gBAAD,OAAiB1E,GAAMuC,GACtD9C,IAAK,WAAF,OAAaO,GAEpB,G,4EC6BI,EAAYjG,EAAA,mBADA,gCAGZ6K,EAAkC,CACtCC,UAAW,SAACC,EAAmBC,GAA4B,OACzDC,EAAA,aAA8BF,EAAO,OAAF,wBAC9BC,GAAI,CACPE,aAAa,EACbC,QAASC,EAAA,WACT,EAGJC,OAAQC,EAAA,mBAERC,QAAS,SAACR,GAAY,OAAKO,EAAA,mBAAqCP,EAAMM,OAAO,EAE7EG,SAAU,SAAC,GAAkB,MAAM,CACjCC,YAAa,cACbC,OAAQ,uBACRC,KAAM,CAAE,EAAS1F,GAAI2F,EAAA,UAAmB,EAAS3G,OAClD,EAED4G,eAAgBZ,EAAA,2BAChBa,oBAAqBb,EAAA,gCACrBc,iBAAkBd,EAAA,8BASd,SAAUe,EAAqBxM,G,QAC7BmH,EAAS,kBAA6BsF,EAAA,YACtCtD,EAAU,kBAA8B8B,EAAgB9B,QAAQnJ,EAAM0M,YAC5E,GAAkF,EAAA3F,EAAA,MAA1EO,EAAyB,EAAzBA,0BAA2BC,EAAa,EAAbA,cAAeK,EAA2B,EAA3BA,4BAClD,GAAiD,EAAA+E,EAAA,GAAY,MAArDC,EAAiB,EAAjBA,kBAAmBC,EAAiB,EAAjBA,kBAE3B,GAAuC,EAAAC,EAAAC,GAAkB,+BAAjDhD,EAAY,EAAZA,aAAcC,EAAY,EAAZA,aACtB,GAAgD,EAAAgD,EAAA,KAAxCzC,EAAc,EAAdA,eAAgBC,EAAmB,EAAnBA,oBAChBM,GAAa,EAAAmC,EAAA,KAAbnC,SAER,GAII,OAAyB,CAC3BoC,WAAY,aACZC,YAAanN,EAAMmN,YACnBC,iBAAkBpN,EAAMoN,iBACxBV,UAAW1M,EAAM0M,YAPjB1E,EAAS,EAATA,UACA8B,EAAY,EAAZA,aACAW,EAAY,EAAZA,aAoEF,OA5DA,EAAA4C,EAAA,GAAmBC,EAAA,sBAAsC,CACvDjF,MAAmB,QAAZ,EAAAc,EAAQjC,YAAI,eAAEzB,KACrB8H,cAAe,CACbC,cAAe,EACfC,YAAa,YACbC,kBAAmB,mBAErBC,cAAeC,EAAA,mBAA2B,CAAEC,uBAAuB,IACnEC,eAAe,MAGjB,EAAAC,EAAA,GAAa,CAAEtH,GAAIzG,EAAM0M,UAAWsB,IAAK,YAEzC,aAAgB,YACVnB,GAAsB7E,EAAUiG,eAGhCrB,GAAqB5E,EAAUd,MAGnC,eACE,CAAE+E,YAAa,cAAuBC,OAAQ,oBAC9C,CAAEgC,SAAS,IAEf,GAAG,CAAEtB,EAAmBC,EAAmB7E,EAAUd,KAAMc,EAAUiG,eA6BrE,aAAgB,WACTjG,EAAUiG,eAAgBjG,EAAUd,MAGzC,aAAuB,IAAIiH,EAAA,EAC7B,GAAG,CAAEnG,EAAUd,KAAMc,EAAUiG,eAG7B,uBAAKhO,UAAU,6BACTwK,IAAgBzC,EAAUd,OAAS,gBAACzG,EAAA,EAAa,CAACP,OAAQ8H,EAAUd,KAAKhH,OAAQU,KAAK,YAC1F,gBAAC8H,EAAgB,CACfS,QAASA,EAAQjC,KACjBc,UAAWA,EAAUd,KACrB2B,wBAAyBuF,EAAA,yBACzB/E,iBAzBN,W,QACE,OAAK9B,EAGE,CAAC,CACN8G,MAAO/G,EACPT,KAAMe,EAAwC,QAAZ,EAAAuB,EAAQjC,YAAI,eAAEoH,OAAoB,QAAZ,EAAAnF,EAAQjC,YAAI,eAAET,IACtE8H,cAAc,IALP,EAOX,EAiBMpM,YAAwB,QAAX,EAAAgF,EAAOD,YAAI,eAAE/E,YAC1ByI,kCAAmC4D,EAAA,+BACnC1E,aAAcA,EACdI,eAAgBmB,EAChBtB,aAAcA,EACdC,aAAcA,EACdV,eAhDN,WACE,OAAKH,EAAQ8E,aAGN,CAAC,CACNxI,KAAM,EAAU,eAChBxE,QAAS,CACPgL,YAAa,kBACbC,OAAQ,uBAET,CACDzG,KAAM0D,EAAQjC,KAAKzB,KACnBC,QAAQ,IAVD,EAYX,EAmCM6E,eAAgBA,EAChBC,oBAAqBA,EACrBM,SAAUA,IAIlB,C","sources":["file:///app/packages/libs/common/src/react/utils/PortalHelper.ts","file:///app/packages/libs/shared/src/apps/subjects/constants/DashboardStatusConfig.ts","file:///app/packages/libs/shared/src/apps/subjects/components/classification-dashboard/dashboard-status-badge/dashboard-status-badge.scss","file:///app/packages/libs/shared/src/apps/subjects/components/classification-dashboard/dashboard-status-badge/DashboardStatusBadge.tsx","file:///app/packages/libs/shared/src/apps/subjects/components/preview-banner/preview-banner.scss","file:///app/packages/libs/shared/src/apps/subjects/components/preview-banner/PreviewBanner.tsx","file:///app/packages/libs/shared/src/components/back-button/BackButton.tsx","file:///app/packages/libs/shared/src/components/banner-header/banner-header.scss","file:///app/packages/libs/shared/src/components/banner-header/BannerHeader.tsx","file:///app/packages/libs/shared/src/components/breadcrumbs/Breadcrumbs.tsx","file:///app/packages/libs/shared/src/hooks/useCurationStudio.ts","file:///app/packages/libs/shared/src/apps/movies-and-tv/components/company-dashboard/empty-state/CompanyDashboardEmptyState.tsx","file:///app/packages/libs/shared/src/apps/movies-and-tv/components/company-dashboard/CompanyDashboard.tsx","file:///app/packages/projects/lite/src/shared/flight-requests/CompanyRequests.ts","file:///app/packages/projects/lite/src/apps/movies-and-tv/views/company-dashboard/CompanyDashboardView.tsx"],"sourcesContent":["import React from 'react';\nimport { createPortal } from 'react-dom';\n\nexport const PortalHelper = {\n renderInPortalIfExists(component: React.ReactElement, portalContainer: Element | null): React.ReactElement {\n if (portalContainer)\n return createPortal(component, portalContainer);\n\n return component;\n }\n};","import { localSvgs } from 'libs/shared/images/svg';\nimport { DashboardStatus } from 'libs/shared/interfaces/models/Dashboard';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\ninterface DashboardStatusConfigType {\n statusName: string;\n actionName: string;\n svgName: localSvgs;\n svgColorClassName: string;\n}\n\nexport const DashboardStatusConfig: Record<DashboardStatus, DashboardStatusConfigType> = {\n [DashboardStatus.Archived]: {\n svgName: cvSvgLibrary.Archive,\n svgColorClassName: 'text-secondary',\n actionName: 'Archive',\n statusName: 'Archived'\n },\n [DashboardStatus.Draft]: {\n svgName: cvSvgLibrary.Edit,\n svgColorClassName: '',\n actionName: 'Draft',\n statusName: 'Draft'\n },\n [DashboardStatus.Published]: {\n svgName: cvSvgLibrary.VisibleOn,\n svgColorClassName: 'text-success',\n actionName: 'Publish',\n statusName: 'Published'\n }\n};","// extracted by mini-css-extract-plugin\nexport default {\"badge\":\"ciO47\",\"draftLight\":\"A6Yi7\",\"draftDark\":\"fkXBX\",\"published\":\"Ovzwy\",\"archived\":\"r_dco\"};","import React from 'react';\n\nimport { DashboardStatusConfig } from 'libs/shared/apps/subjects/constants/DashboardStatusConfig';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { DashboardStatus } from 'libs/shared/interfaces';\n\nimport styles from './dashboard-status-badge.scss';\n\nfunction getClassName(props: DashboardStatusBadgeProps): string {\n let className = `rounded-pill d-flex align-items-center ps-2 py-1 fw-semibold ms-2 ${styles.badge}`;\n\n switch (props.status) {\n case DashboardStatus.Published:\n className += ` ${styles.published}`;\n break;\n case DashboardStatus.Archived:\n className += ` ${styles.archived}`;\n break;\n case DashboardStatus.Draft:\n className += ` ${props.darkMode ? styles.draftDark : styles.draftLight}`;\n break;\n }\n\n if (props.wrapperClassName)\n className += ` ${props.wrapperClassName}`;\n\n return className;\n}\n\ninterface DashboardStatusBadgeProps {\n status: DashboardStatus;\n darkMode?: boolean;\n wrapperClassName?: string;\n}\n\nexport function DashboardStatusBadge(props: DashboardStatusBadgeProps): JSX.Element {\n const { statusName, svgName } = DashboardStatusConfig[props.status];\n\n return (\n <div className={getClassName(props)}>\n <SvgContainer svgName={svgName} />\n <div>{statusName}</div>\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"stickyWrapper\":\"zhw6K\",\"badgeWrapper\":\"NOvn1\",\"badge\":\"pxQSR\"};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { DashboardStatusBadge } from 'libs/shared/apps/subjects/components/classification-dashboard/dashboard-status-badge/DashboardStatusBadge';\nimport { EmojiText } from 'libs/shared/components/emoji-text/EmojiText';\nimport { DashboardStatus } from 'libs/shared/interfaces';\n\nimport styles from './preview-banner.scss';\n\nconst namespace = 'shared.classificationPreviewBanner';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface PreviewBannerProps {\n status: DashboardStatus;\n type: 'company' | 'topic';\n}\n\nexport function PreviewBanner(props: PreviewBannerProps): JSX.Element {\n return (\n <div className={`${styles.stickyWrapper} py-2 d-flex justify-content-space-between bg-dark text-white mx-2 rounded`}>\n <div className={`position-absolute d-flex ${styles.badgeWrapper}`}>\n <DashboardStatusBadge status={props.status} wrapperClassName={`${styles.badge}`} darkMode />\n </div>\n <div className='flex-grow-1'>\n <h1 className='text-center my-3 h5'>\n <EmojiText emoji='👀' />\n {getPhrase(props.type === 'topic' ? 'topicTitle' : 'companyTitle')}\n </h1>\n </div>\n </div>\n );\n}\n","import * as React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nconst namespace = 'shared.backButton';\n\ninterface BackButtonProps {\n appLink: Core.AppLink;\n backToName?: string;\n color?: 'black' | 'white';\n extraClasses?: string;\n /**\n * Whether or not the button text has a text shadow. Defaults to true\n */\n textShadow?: boolean;\n}\n\nBackButton.defaultProps = {\n color: 'black',\n extraClasses: ''\n};\n\nexport function BackButton(props: BackButtonProps): React.ReactElement {\n const { backToName, appLink, color, extraClasses, textShadow } = {\n textShadow: true,\n ...props\n };\n\n const backPhrase = backToName\n ? LanguageService.getPhrase(namespace, 'backTo', { backToName })\n : LanguageService.getPhrase(namespace, 'back');\n\n const colorClass = color === 'black' ? '' : 'text-white';\n const textShadowClass = textShadow ? 'text-shadow' : '';\n\n return (\n <AppLink\n appLink={appLink}\n className={`d-inline-flex align-items-center h5 mb-0 ${extraClasses} ${colorClass} ${textShadowClass}`}\n >\n <SvgContainer svgName={cvSvgLibrary.ChevronLeft} size={SvgContainerSize.Medium} />\n <span className='ms-1'>{backPhrase}</span>\n </AppLink>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"bannerContent\":\"sSCTB\",\"actionsContainer\":\"Z5WI2\",\"bannerContentWithLogo\":\"rgs7Q\",\"container\":\"M51HJ\",\"logoContainer\":\"vkeJk\",\"logoContainerLeft\":\"M3U9B\",\"logoHeading\":\"EtRwC\",\"specialEventContainer\":\"rOxDc\",\"headingLarge\":\"_8pnV\",\"heading\":\"JXVBH\"};","import * as React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\nimport { PortalHelper } from 'libs/common/react/utils/PortalHelper';\n\nimport { ComingSoonTag } from 'libs/shared/apps/calendar/components/coming-soon-tag/ComingSoonTag';\nimport { GenericCalendarDate } from 'libs/shared/apps/calendar/components/generic-calendar-date/GenericCalendarDate';\nimport { CalendarTheme } from 'libs/shared/apps/calendar/interfaces/CalendarTheme';\nimport { ActionOptions, Actions } from 'libs/shared/components/actions/Actions';\nimport { BackButton } from 'libs/shared/components/back-button/BackButton';\nimport { LazyImage } from 'libs/shared/components/lazy-image/LazyImage';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { ImageMinDimensions } from 'libs/shared/constants/ImageSizes';\nimport { BannerPortalContext } from 'libs/shared/context/BannerPortalContext';\nimport { ImageSize, ImageType, ResizeType } from 'libs/shared/enums/Images';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { Banner, CalendarEvent, Logo } from 'libs/shared/interfaces';\nimport { ImageHelper, ImageOptions } from 'libs/shared/utils/ImageHelper';\n\nimport styles from './banner-header.scss';\n\nconst RATIO = `${ImageMinDimensions[ImageType.Banners].width}:${ImageMinDimensions[ImageType.Banners].height}`;\nconst DEFAULT_WIDTH = 1200; // This is ImageSize.Large for a Banner.\nconst LARGE_SCREEN_WIDTH = 1920;\n\nfunction useGetImageWidth(): number {\n const breakpoints = useBreakpoints();\n\n if (breakpoints.xxl)\n return LARGE_SCREEN_WIDTH;\n\n return DEFAULT_WIDTH;\n}\n\nfunction getSizeClass(heading: string): string {\n if (heading.length < 160)\n return 'h1';\n\n return styles.headingLarge;\n}\n\ninterface BannerHeaderProps {\n heading: string;\n banner?: Banner;\n bannerClassName?: string;\n imageCdnUrl?: string;\n logo?: Logo;\n actions?: ActionOptions[];\n specialEvent?: CalendarEvent;\n backButtonAppLink?: Core.AppLink;\n backButtonText?: string;\n backButtonClasses?: string;\n sortComponent?: JSX.Element;\n blockColourClass?: string;\n actionsDropdownClassName?: string;\n detailsComponent?: () => React.ReactElement;\n imageOptions?: ImageOptions;\n showComingSoon?: boolean;\n alignLogoLeft?: boolean;\n calendarTheme?: CalendarTheme;\n}\n\nconst namespace = 'shared.bannerHeader';\n\nexport const BannerHeader = React.memo(function(props: React.PropsWithChildren<BannerHeaderProps>): React.ReactElement {\n const { heading, banner, imageCdnUrl, actions, sortComponent, blockColourClass, specialEvent } = props;\n\n const portalContainerContext = React.useContext(BannerPortalContext);\n\n const imageWidth = useGetImageWidth();\n\n const specialEventIsToday = React.useMemo(() => {\n if (!specialEvent || props.showComingSoon)\n return false;\n\n const today = DateHelper.format(new Date(), 'YYYY-MM-DD');\n\n if (!specialEvent.endDate)\n return specialEvent.startDate === today;\n\n return specialEvent.startDate <= today && specialEvent.endDate >= today;\n }, [specialEvent]);\n\n const imageOptions = props.imageOptions || {\n width: imageWidth,\n ratio: RATIO,\n resizeType: ResizeType.Cover\n };\n\n const url = !!banner && !!imageCdnUrl && ImageHelper.createBannerUrl(banner, {\n fallbackBaseUrl: imageCdnUrl,\n fallbackCategoryName: heading,\n type: ImageType.Banners\n }, imageOptions);\n\n const containerProps: React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement> = {\n className: `banner banner-header ${props.bannerClassName}`,\n style: url ? { backgroundImage: `url('${url}')` } : {}\n };\n\n if (!banner && blockColourClass) {\n delete containerProps.style;\n containerProps.className += ` ${blockColourClass}`;\n }\n\n const DetailsComponent = props.detailsComponent;\n\n return PortalHelper.renderInPortalIfExists(\n // \"banner\" is used in playlists in Online. banner-header is used by all other projects\n <header {...containerProps}>\n <div className={`container ${styles.container} position-relative inner-banner`}>\n {props.backButtonAppLink && (\n <div className='pt-3'>\n <BackButton\n appLink={props.backButtonAppLink}\n backToName={props.backButtonText}\n extraClasses={props.backButtonClasses}\n color='white'\n />\n </div>\n )}\n \n <div className={`${props.alignLogoLeft ? 'position-absolute top-50 start-0 translate-middle-y w-100 ps-4' : `${styles.bannerContent} px-2 ${props.logo?.url ? styles.bannerContentWithLogo : ''}`}`}>\n {!!specialEvent && (\n <div className={`position-relative ${styles.specialEventContainer}`}>\n <GenericCalendarDate\n body={{\n type: specialEvent.endDate ? 'range' : 'day',\n text: specialEvent.endDate\n ? `${DateHelper.format(specialEvent.startDate, 'DD')}-${DateHelper.format(specialEvent.endDate, 'DD')}`\n : DateHelper.format(specialEvent.startDate, 'DD')\n }}\n month={DateHelper.format(specialEvent.startDate, 'MMMM')}\n theme={props.calendarTheme}\n />\n </div>\n )}\n <div>\n {specialEventIsToday && (\n <div className='rounded-pill py-1 px-2 my-1 me-1 fw-semibold bg-light-blue lh-1 d-inline-block'>\n <Text namespace={namespace} phrase='onToday' />\n </div>\n )}\n {props.showComingSoon && (\n <ComingSoonTag className='pe-2 fw-semibold mb-1 rounded-pill justify-content-start text-nowrap' />\n )}\n <div className='d-flex align-items-center'>\n {props.alignLogoLeft &&\n <div className={`${styles.logoContainerLeft} d-none d-md-block partial-loading-background rounded-circle overflow-hidden me-3`}>\n {props.logo?.url &&\n <LazyImage src={ImageHelper.createUrl(props.logo?.url, { size: ImageSize.Medium })} />}\n </div>\n }\n <h1 className={`text-white text-shadow pe-3 position-static ${styles.heading} ${getSizeClass(heading)} ${props.alignLogoLeft ? 'w-50' : ''}`}>\n {heading}\n {DetailsComponent && <DetailsComponent />}\n </h1>\n </div>\n </div>\n {!!actions && (\n <div className={styles.actionsContainer}>\n <Actions\n actions={actions}\n sortComponent={sortComponent}\n actionsDropdownClassName={props.actionsDropdownClassName}\n />\n </div>\n )}\n </div>\n {!props.alignLogoLeft && !!props.logo?.url &&\n <div className={styles.logoContainer}>\n <img\n src={ImageHelper.createUrl(props.logo.url, { size: ImageSize.Small })}\n className='rounded-circle'\n />\n </div>\n }\n </div>\n </header>,\n portalContainerContext?.container\n );\n}, (prevProps, nextProps): boolean => (\n prevProps.actions === nextProps.actions\n && prevProps.heading === nextProps.heading\n && prevProps.logo?.url === nextProps.logo?.url\n));\n\nexport function PartialBannerHeader(): JSX.Element {\n const portalContainerContext = React.useContext(BannerPortalContext);\n\n return PortalHelper.renderInPortalIfExists(\n <div className={`partial-banner partial-loading-background ${styles.banner}`} />,\n portalContainerContext?.container\n );\n}","import * as React from 'react';\n\nimport { Core } from 'libs/common/core';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { MediaQueryStrings } from 'libs/shared/enums/MediaQueries';\nimport { useMediaQuery } from 'libs/shared/hooks/UseMediaQuery';\nimport { PartialLoadingHelper } from 'libs/shared/utils/PartialLoadingHelper';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { SvgContainer, SvgContainerSize } from '../svg-container/SvgContainer';\n\nexport interface Breadcrumb {\n name: string;\n appLink?: Core.AppLink;\n active?: boolean;\n}\n\ninterface BreadcrumbItemProps {\n breadcrumb: Breadcrumb;\n withBackIcon?: boolean;\n}\n\nexport const BreadcrumbItem = ({ breadcrumb: { name, appLink, active }, withBackIcon }: BreadcrumbItemProps) => (\n <li className={`breadcrumb-item${active ? ' active' : ''}`}>\n {active\n ? <strong>{name}</strong>\n : <AppLink appLink={appLink}>\n {withBackIcon && <SvgContainer svgName={cvSvgLibrary.ChevronLeft} size={SvgContainerSize.Small} />}\n <span className={withBackIcon ? 'ms-2' : ''}>{name}</span>\n </AppLink>\n }\n </li>\n);\n\ninterface BreadcrumbsProps {\n breadcrumbs: Breadcrumb[];\n}\n\nexport const Breadcrumbs = ({ breadcrumbs }: BreadcrumbsProps) => {\n const isMobile = useMediaQuery(MediaQueryStrings.XS);\n\n const length = breadcrumbs?.length;\n\n if (!length || (isMobile && length < 2))\n return <></>;\n\n if (isMobile)\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n <BreadcrumbItem breadcrumb={breadcrumbs[length - 2]} withBackIcon />\n </ol>\n </nav>\n );\n\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n {breadcrumbs.map((b, idx) => <BreadcrumbItem key={idx} breadcrumb={b} />)}\n </ol>\n </nav>\n );\n};\n\nexport const PartialBreadcrumbs = React.memo(function({ numItems = 3 }: { numItems?: number; }) {\n const isMobile = useMediaQuery(MediaQueryStrings.XS);\n\n if (isMobile) {\n return (\n <div className='partial-loading-background' style={{ height: '1.3125rem', width: '6rem' }} />\n );\n }\n\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n {PartialLoadingHelper.getPartialLoadingItems({ numItems }).map(({ width }, idx) => (\n <li key={idx} className='breadcrumb-item'>\n <span className='d-inline-block partial-loading-background' style={{ width }} dangerouslySetInnerHTML={{ __html: ' ' }} />\n </li>\n ))}\n </ol>\n </nav>\n );\n});","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/react/index';\n\nimport { CuratorGroup } from 'libs/shared/enums/CuratorGroup';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { Config, CuratorUserGroupCollection, CurrentUser } from 'libs/shared/interfaces';\n\nconst namespace = 'shared.hooks';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function getOpenInCurationStudioLink(\n baseUrl: string,\n objectType: MasterType | string,\n id: string,\n presentationId?: string\n) {\n const baseManageUrl = UrlHelper.safeUrlConcat(baseUrl, 'manage');\n const baseExchangeUrl = UrlHelper.safeUrlConcat(baseUrl, 'exchange');\n const href = (baseUrl: string, objectType: string, id: string) => UrlHelper.safeUrlConcat(baseUrl, `${objectType}/${id}`);\n\n switch (objectType) {\n case MasterType.Subject:\n return UrlHelper.safeUrlConcat(baseManageUrl, `subjects/presentations/${presentationId}/classifications/${id}/edit`);\n case MasterType.Video:\n return href(baseManageUrl, 'videos', id);\n case MasterType.Playlist:\n return href(baseManageUrl, 'playlists', id);\n case MasterType.Series:\n return href(baseManageUrl, 'series', id);\n case MasterType.Company:\n return href(baseManageUrl, 'companies', id);\n case MasterType.Interactive:\n return href(baseManageUrl, 'interactives', id);\n case MasterType.Clip:\n return href(baseManageUrl, 'clips', id);\n case MasterType.Category:\n return href(baseExchangeUrl, 'categories', id);\n }\n}\n\nexport function getOpenInCurationStudioLabel(): string {\n return getPhrase('openInCurationStudio');\n}\n\nexport function useCurationStudio() {\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const { data: userGroups } = Flight.useBasicFetch<CuratorUserGroupCollection>(\n (currentUser.data?.id) && UserRequests.groups(currentUser.data?.id)\n );\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n \n const curatorGroups = [ CuratorGroup.Curator, CuratorGroup.Content, CuratorGroup.Developer ];\n\n function isUserCurator(): boolean {\n return curatorGroups.some(group => userGroups?.data.find(userGroup => userGroup.name === group));\n }\n\n return {\n openInCurationStudioLabel: getOpenInCurationStudioLabel(),\n isUserCurator: isUserCurator(),\n getOpenInCurationStudioLink: (objectType: MasterType | string, id: string, presentationId?: string) =>\n getOpenInCurationStudioLink(config.data?.curatorUrl, objectType, id, presentationId)\n };\n}\n","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { CuratedDashboard, DashboardStatus } from 'libs/shared/interfaces';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nconst namespace = 'moviesAndTv.companyDashboardEmptyState';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface CompanyDashboardEmptyStateProps {\n dashboard: CuratedDashboard;\n imageUrl: string;\n isReadonly: boolean;\n addWidgetApplink?: () => Core.AppLink;\n}\n\nexport function CompanyDashboardEmptyState(props: CompanyDashboardEmptyStateProps): JSX.Element {\n const isArchived = props.dashboard?.status === DashboardStatus.Archived;\n\n return (\n <EmptyState>\n <EmptyState.Image src={props.imageUrl} altText={getPhrase('info')} />\n <EmptyState.Heading>\n <Text namespace={namespace} phrase='heading' />\n </EmptyState.Heading>\n <EmptyState.Info>\n <Text namespace={namespace} phrase='info' />\n </EmptyState.Info>\n <Tooltip title={isArchived ? LanguageService.getPhrase(namespace, 'archivedCtaTooltip') : ''} spanHack>\n <EmptyState.Cta\n text={LanguageService.getPhrase(namespace, 'add')}\n appLink={props.addWidgetApplink?.()}\n className='btn btn-dark'\n icon={cvSvgLibrary.Plus}\n disabled={isArchived}\n />\n </Tooltip>\n </EmptyState>\n );\n}","import React from 'react';\n\nimport { Flight } from 'libs/common/flight';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { CompanyDashboardEmptyState } from 'libs/shared/apps/movies-and-tv/components/company-dashboard/empty-state/CompanyDashboardEmptyState';\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\nimport { BannerHeader, PartialBannerHeader } from 'libs/shared/components/banner-header/BannerHeader';\nimport { Breadcrumb, Breadcrumbs } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { VideoSubTextType } from 'libs/shared/components/video-sub-text/VideoSubText';\nimport { WidgetContainerView } from 'libs/shared/components/widgets/curated-widgets/WidgetContainerView';\nimport { WidgetAppLinks } from 'libs/shared/components/widgets/curated-widgets/WidgetProps';\nimport { BG_COLOUR_CLASS_NAMES } from 'libs/shared/constants/ColourClassNames';\nimport { WidgetTemplate } from 'libs/shared/enums/WidgetTemplate';\nimport { WidgetTypeId } from 'libs/shared/enums/WidgetTypeId';\nimport { HasLocalPermissionsFunc, HasPermissionsFunc } from 'libs/shared/hooks/usePermissions';\nimport { CanFavouriteFunc, Company, CuratedDashboard, CuratedWidgetQueryParams, FavouriteFunc, Presentation, PresentationAudience, YearGroup } from 'libs/shared/interfaces';\nimport { CuratedDashboardHelper } from 'libs/shared/utils/DashboardHelper';\nimport { getBgColorClass } from 'libs/shared/utils/getBgColorClass';\n\ninterface CompanyDashboardProps {\n dashboard: CuratedDashboard;\n company: Company;\n getWidgetContentRequest: (\n id: string,\n params: CuratedWidgetQueryParams,\n widgetTemplate: WidgetTemplate\n ) => Flight.Request;\n imageCdnUrl: string;\n hasPermissions: HasPermissionsFunc;\n hasLocalPermissions: HasLocalPermissionsFunc;\n resourceThumbnailFallbackImageUrl: string;\n audiences?: PresentationAudience[];\n emptyImageUrl?: string;\n presentation: Presentation;\n setFavourite?: FavouriteFunc;\n canFavourite?: CanFavouriteFunc;\n widgetAppLinks?: WidgetAppLinks;\n scrollToWidgetId?: string;\n isReadonly?: boolean;\n yearGroups?: YearGroup[];\n getBreadcrumbs?: () => Breadcrumb[];\n getBannerActions?: () => ActionOptions[];\n companyLogoFallbackUrl?: string;\n subTextType?: VideoSubTextType;\n isPlugin: boolean;\n}\n\nexport function CompanyDashboard(props: CompanyDashboardProps): JSX.Element {\n const widgets = ArrayHelper.sortBy(props.dashboard?.widgets, 'index');\n\n function getWidgetContentRequest(id: string, widgetTypeId: WidgetTypeId, template: WidgetTemplate): Flight.Request {\n const params = CuratedDashboardHelper.getWidgetParams(\n widgetTypeId,\n template,\n CuratedDashboardHelper.getDashboardTargetType(props.dashboard)\n );\n\n return props.getWidgetContentRequest(id, params, template);\n }\n\n const showEmptyState = props.isReadonly && !widgets?.length;\n\n return (\n <>\n {!!widgets.length &&\n <>\n {props.company\n ? (\n <BannerHeader\n heading={props.company.name}\n banner={props.company.banner}\n imageCdnUrl={props.imageCdnUrl}\n blockColourClass={getBgColorClass(props.company.name, BG_COLOUR_CLASS_NAMES)}\n actions={props.getBannerActions?.()}\n actionsDropdownClassName='btn btn-outline-dark'\n />\n ) : <PartialBannerHeader />\n }\n\n <div className='py-3 mb-3 border-bottom'>\n <Breadcrumbs breadcrumbs={props.getBreadcrumbs?.()} />\n </div>\n\n <div className='mt-3'>\n {widgets.map(widget => {\n return (\n <WidgetContainerView\n key={widget.id}\n id={widget.id}\n imageCdnUrl={props.imageCdnUrl}\n getContentRequest={getWidgetContentRequest}\n audiences={props.audiences}\n name={widget.name}\n description={widget.description}\n templateId={widget.templateId}\n metadata={widget.metadata}\n presentation={props.presentation}\n setFavourite={props.setFavourite}\n canFavourite={props.canFavourite}\n appLinks={props.widgetAppLinks}\n isScrollToTargetWidget={props?.scrollToWidgetId === widget.id}\n widgetTypeId={widget.widgetId}\n yearGroups={props.yearGroups}\n hasPermissions={props.hasPermissions}\n hasLocalPermissions={props.hasLocalPermissions}\n isPreviewing={props.isReadonly}\n companyLogoFallbackUrl={props.companyLogoFallbackUrl}\n subTextType={props.subTextType}\n resourceThumbnailFallbackImageUrl={props.resourceThumbnailFallbackImageUrl}\n preferences={widget.preferences}\n isPlugin={props.isPlugin}\n />\n );\n })}\n </div>\n </>\n }\n\n {showEmptyState && (\n <CompanyDashboardEmptyState\n dashboard={props.dashboard}\n isReadonly={props.isReadonly}\n imageUrl={props.emptyImageUrl}\n addWidgetApplink={props.widgetAppLinks.widgetWizard}\n />\n )}\n </>\n );\n}","import { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/flight';\n\nexport const CompanyRequests = {\n company(id: string): Flight.PublicRequest {\n const params = { query: 'banner' };\n\n return {\n url: UrlHelper.urlBuilder(`{gateway}/v1/objects/${id}`, params),\n publicUrl: UrlHelper.urlBuilder(`/api/objects/${id}`, params),\n key: `company:${id}`\n };\n }\n};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\nimport { Flight } from 'libs/common/flight';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { CompanyDashboard } from 'libs/shared/apps/movies-and-tv/components/company-dashboard/CompanyDashboard';\nimport { PreviewBanner } from 'libs/shared/apps/subjects/components/preview-banner/PreviewBanner';\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\nimport { Breadcrumb } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { WidgetAppLinks } from 'libs/shared/components/widgets/curated-widgets/WidgetProps';\nimport { RelatedVideosContext } from 'libs/shared/enums/RelatedVideosContext';\nimport { NotFoundError } from 'libs/shared/errors/general/not-found/NotFoundError';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { DashboardRequests } from 'libs/shared/flight-requests/DashboardRequests';\nimport { useCurationStudio } from 'libs/shared/hooks/useCurationStudio';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { Company, Config, DashboardTargetType, Playlist, Video, VideoTypes } from 'libs/shared/interfaces';\nimport { GetVideoAppLinkOptions } from 'libs/shared/interfaces/VideoAppLinkOptions';\nimport { PageMetadataHelper } from 'libs/shared/utils/PageMetadataHelper';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { CompanyRequests } from 'shared/flight-requests/CompanyRequests';\nimport { usePluginHelper } from 'shared/hooks/use-plugin-helper/usePluginHelper';\nimport { useDeepLinks } from 'shared/hooks/useDeepLinks';\nimport { useLiteFavourites } from 'shared/hooks/useLiteFavourites';\nimport { DashboardViewQueryParams } from 'shared/interfaces/query-params/DashboardViewQueryParams';\nimport { useFetchCuratedDashboard } from 'shared/utils/DashboardHelper';\nimport { SeoHelper } from 'shared/utils/SeoHelper';\nimport { VideoAppLinkHelper } from 'shared/utils/VideoAppLinkHelper';\n\nimport { SeriesAppLinkHelper } from 'apps/series/SeriesAppLinkHelper';\n\nconst namespace = 'moviesAndTv.companyDashboard';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst companyAppLinks: WidgetAppLinks = {\n videoType: (video: VideoTypes, opts: GetVideoAppLinkOptions) => (\n VideoAppLinkHelper.getAppLink(video, {\n ...opts,\n moviesAndTv: true,\n context: RelatedVideosContext.Widget\n })\n ),\n\n series: SeriesAppLinkHelper.getSeriesAppLink,\n\n subText: (video: Video) => SeriesAppLinkHelper.getSeriesAppLink(video.series),\n\n playlist: (playlist: Playlist) => ({\n application: AppChannels.PLAYLISTS,\n action: Actions.Playlists.PLAYLIST,\n args: [ playlist.id, TextHelper.slugify(playlist.name) ]\n }),\n\n classroomGuide: VideoAppLinkHelper.getClassroomGuideAppLink,\n interactiveGuidance: VideoAppLinkHelper.getInteractiveGuidanceAppLink,\n resourceGuidance: VideoAppLinkHelper.getResourceGuidanceAppLink\n};\n\ninterface CompanyDashboardViewProps {\n presentationSlug: string;\n companyId: string;\n queryParams?: DashboardViewQueryParams;\n}\n\nexport function CompanyDashboardView(props: CompanyDashboardViewProps): JSX.Element {\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const company = Flight.useBasicFetch<Company>(CompanyRequests.company(props.companyId));\n const { openInCurationStudioLabel, isUserCurator, getOpenInCurationStudioLink } = useCurationStudio();\n const { hasNewMoviesAndTv, isLoadingSettings } = useSettings(null);\n\n const { setFavourite, canFavourite } = useLiteFavourites(LocationContext.ExpandableVideoThumbnail);\n const { hasPermissions, hasLocalPermissions } = usePermissions();\n const { isPlugin } = usePluginHelper();\n\n const {\n dashboard,\n presentation,\n isPreviewing\n } = useFetchCuratedDashboard({\n targetType: DashboardTargetType.Company,\n queryParams: props.queryParams,\n presentationSlug: props.presentationSlug,\n companyId: props.companyId\n });\n\n useSetPageMetadata(PageMetadataHelper.getDefaultMetadata({\n title: company.data?.name,\n phraseContext: {\n phraseHandler: getPhrase,\n titlePhrase: 'pageTitle',\n descriptionPhrase: 'pageDescription'\n },\n canonicalLink: SeoHelper.getCanonicalLink({ stripPresentationSlug: true }),\n allowIndexing: false\n }));\n\n useDeepLinks({ id: props.companyId, app: 'studios' });\n\n React.useEffect(() => {\n if (isLoadingSettings || !dashboard.hasCompleted)\n return;\n\n if (hasNewMoviesAndTv && dashboard.data)\n return;\n\n Core.AppLinkHelper.trigger(\n { application: AppChannels.DASHBOARD, action: Actions.Dashboard.HOME },\n { replace: true }\n );\n }, [ hasNewMoviesAndTv, isLoadingSettings, dashboard.data, dashboard.hasCompleted ]);\n\n function getBreadcrumbs(): Breadcrumb[] {\n if (!company.hasCompleted)\n return [];\n\n return [{\n name: getPhrase('moviesAndTv'),\n appLink: {\n application: AppChannels.MOVIES_AND_TV,\n action: Actions.MoviesAndTv.HOME\n }\n }, {\n name: company.data.name,\n active: true\n }];\n }\n\n function getBannerActions(): ActionOptions[] {\n if (!isUserCurator)\n return [];\n\n return [{\n label: openInCurationStudioLabel,\n href: getOpenInCurationStudioLink(company.data?.typeId, company.data?.id),\n openInNewTab: true\n }];\n }\n\n React.useEffect(() => {\n if (!dashboard.hasCompleted || dashboard.data)\n return;\n\n Core.ErrorHelper.throw(new NotFoundError());\n }, [ dashboard.data, dashboard.hasCompleted ]);\n\n return (\n <div className='position-relative px-4'>\n {!!(isPreviewing && dashboard.data) && <PreviewBanner status={dashboard.data.status} type='company' />}\n <CompanyDashboard\n company={company.data}\n dashboard={dashboard.data}\n getWidgetContentRequest={DashboardRequests.dashboardWidgetContent}\n getBannerActions={getBannerActions}\n imageCdnUrl={config.data?.imageCdnUrl}\n resourceThumbnailFallbackImageUrl={ImageUrls.Fallbacks.RESOURCE_THUMBNAIL}\n presentation={presentation}\n widgetAppLinks={companyAppLinks}\n setFavourite={setFavourite}\n canFavourite={canFavourite}\n getBreadcrumbs={getBreadcrumbs}\n hasPermissions={hasPermissions}\n hasLocalPermissions={hasLocalPermissions}\n isPlugin={isPlugin}\n />\n </div>\n );\n}"],"names":["PortalHelper","renderInPortalIfExists","component","portalContainer","createPortal","DashboardStatusConfig","Dashboard","svgName","svgColorClassName","actionName","statusName","getClassName","props","className","status","darkMode","wrapperClassName","DashboardStatusBadge","SvgContainer","getPhrase","LanguageService","PreviewBanner","EmojiText","emoji","type","namespace","BackButton","textShadow","backToName","appLink","color","extraClasses","backPhrase","colorClass","textShadowClass","AppLink","size","S","defaultProps","RATIO","width","height","getSizeClass","heading","length","BannerHeader","banner","imageCdnUrl","actions","sortComponent","blockColourClass","specialEvent","portalContainerContext","BannerPortalContext","imageWidth","useBreakpoints","xxl","specialEventIsToday","showComingSoon","today","DateHelper","Date","endDate","startDate","imageOptions","ratio","resizeType","url","ImageHelper","fallbackBaseUrl","fallbackCategoryName","containerProps","bannerClassName","style","backgroundImage","DetailsComponent","detailsComponent","backButtonAppLink","backButtonText","backButtonClasses","alignLogoLeft","logo","GenericCalendarDate","body","text","month","theme","calendarTheme","Text","phrase","ComingSoonTag","LazyImage","src","Actions","actionsDropdownClassName","container","prevProps","nextProps","PartialBannerHeader","BreadcrumbItem","breadcrumb","name","active","withBackIcon","Breadcrumbs","breadcrumbs","isMobile","map","b","idx","key","PartialBreadcrumbs","numItems","dangerouslySetInnerHTML","__html","baseUrl","objectType","id","presentationId","baseManageUrl","baseExchangeUrl","href","getOpenInCurationStudioLabel","useCurationStudio","currentUser","userGroups","data","config","curatorGroups","Curator","openInCurationStudioLabel","isUserCurator","some","group","find","userGroup","getOpenInCurationStudioLink","curatorUrl","CompanyDashboardEmptyState","isArchived","dashboard","EmptyState","imageUrl","altText","Tooltip","title","spanHack","addWidgetApplink","icon","disabled","CompanyDashboard","widgets","ArrayHelper","getWidgetContentRequest","widgetTypeId","template","params","showEmptyState","isReadonly","company","getBgColorClass","getBannerActions","getBreadcrumbs","widget","WidgetContainerView","getContentRequest","audiences","description","templateId","metadata","presentation","setFavourite","canFavourite","appLinks","widgetAppLinks","isScrollToTargetWidget","scrollToWidgetId","widgetId","yearGroups","hasPermissions","hasLocalPermissions","isPreviewing","companyLogoFallbackUrl","subTextType","resourceThumbnailFallbackImageUrl","preferences","isPlugin","emptyImageUrl","widgetWizard","CompanyRequests","query","UrlHelper","publicUrl","companyAppLinks","videoType","video","opts","VideoAppLinkHelper","moviesAndTv","context","RelatedVideosContext","series","SeriesAppLinkHelper","subText","playlist","application","action","args","TextHelper","classroomGuide","interactiveGuidance","resourceGuidance","CompanyDashboardView","ConfigRequests","companyId","useSettings","hasNewMoviesAndTv","isLoadingSettings","useLiteFavourites","u","usePermissions","usePluginHelper","targetType","queryParams","presentationSlug","useSetPageMetadata","PageMetadataHelper","phraseContext","phraseHandler","titlePhrase","descriptionPhrase","canonicalLink","SeoHelper","stripPresentationSlug","allowIndexing","useDeepLinks","app","hasCompleted","replace","NotFoundError","DashboardRequests","label","typeId","openInNewTab","ImageUrls"],"sourceRoot":""}
|