@clickview/lite 0.52.1 → 0.52.2-dev.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bundles.json +1 -1
- package/dist/css/{1329-lite-ec64553644.chunk.css → 1329-lite-55772b1036.chunk.css} +2 -2
- package/dist/css/{986-lite-6bdd43b250.chunk.css → 3532-lite-a3c7435ba4.chunk.css} +1 -1
- package/dist/css/{3969-lite-cb4c4824f6.chunk.css → 3969-lite-94ca677007.chunk.css} +1 -1
- package/dist/css/{4489-lite-e971ca8ab6.chunk.css → 4489-lite-49c28410f9.chunk.css} +1 -1
- package/dist/css/4690-lite-e1f88a6b47.chunk.css +4 -0
- package/dist/css/{537-lite-53bb989a96.chunk.css → 537-lite-390b70028c.chunk.css} +1 -1
- package/dist/css/{6489-lite-5ffcd32447.chunk.css → 6489-lite-a917e953c8.chunk.css} +1 -1
- package/dist/css/{8192-lite-cf3253f7b8.chunk.css → 8192-lite-282a716c03.chunk.css} +1 -1
- package/dist/css/{841-lite-93cc5f2469.chunk.css → 841-lite-4a007cd7be.chunk.css} +1 -1
- package/dist/css/{1820-lite-eaf5a9db1c.chunk.css → 999-lite-02c517e917.chunk.css} +1 -1
- package/dist/languages/en.json +1 -1
- package/dist/scripts/{1080-5b00242a31-lite.chunk.js → 1080-d24c9657ec-lite.chunk.js} +2 -2
- package/dist/scripts/{1080-5b00242a31-lite.chunk.js.map → 1080-d24c9657ec-lite.chunk.js.map} +1 -1
- 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-55dc0a4586-lite.chunk.js} +2 -2
- package/dist/scripts/1125-55dc0a4586-lite.chunk.js.map +1 -0
- package/dist/scripts/1169-3de585be6a-lite.chunk.js +2 -0
- package/dist/scripts/1169-3de585be6a-lite.chunk.js.map +1 -0
- package/dist/scripts/1329-850346e6e6-lite.chunk.js +3 -0
- package/dist/scripts/1329-850346e6e6-lite.chunk.js.map +1 -0
- package/dist/scripts/{1379-082bbab71a-lite.chunk.js → 1379-976d20185f-lite.chunk.js} +3 -3
- package/dist/scripts/{1379-082bbab71a-lite.chunk.js.map → 1379-976d20185f-lite.chunk.js.map} +1 -1
- package/dist/scripts/1672-60a3ab42f5-lite.chunk.js +3 -0
- package/dist/scripts/1672-60a3ab42f5-lite.chunk.js.map +1 -0
- package/dist/scripts/1725-1e864ba78a-lite.chunk.js +2 -0
- package/dist/scripts/1725-1e864ba78a-lite.chunk.js.map +1 -0
- package/dist/scripts/1891-109e674486-lite.chunk.js +2 -0
- package/dist/scripts/1891-109e674486-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/2004-7d1bf8b246-lite.chunk.js +3 -0
- package/dist/scripts/2004-7d1bf8b246-lite.chunk.js.map +1 -0
- package/dist/scripts/209-d2e6b93965-lite.chunk.js +2 -0
- package/dist/scripts/209-d2e6b93965-lite.chunk.js.map +1 -0
- package/dist/scripts/2134-b9145f8ce8-lite.chunk.js +2 -0
- package/dist/scripts/2134-b9145f8ce8-lite.chunk.js.map +1 -0
- package/dist/scripts/2952-6a32a90314-lite.chunk.js +2 -0
- package/dist/scripts/2952-6a32a90314-lite.chunk.js.map +1 -0
- package/dist/scripts/3003-7685240aed-lite.chunk.js +2 -0
- package/dist/scripts/3003-7685240aed-lite.chunk.js.map +1 -0
- package/dist/scripts/3020-6c9c7d2176-lite.chunk.js +2 -0
- package/dist/scripts/3020-6c9c7d2176-lite.chunk.js.map +1 -0
- package/dist/scripts/338-e21a3cd6fe-lite.chunk.js +3 -0
- package/dist/scripts/338-e21a3cd6fe-lite.chunk.js.map +1 -0
- package/dist/scripts/3532-2fed0eb7a4-lite.chunk.js +3 -0
- package/dist/scripts/3532-2fed0eb7a4-lite.chunk.js.map +1 -0
- package/dist/scripts/3633-025f418c19-lite.chunk.js +2 -0
- package/dist/scripts/3633-025f418c19-lite.chunk.js.map +1 -0
- package/dist/scripts/3640-694d1d6d2a-lite.chunk.js +2 -0
- package/dist/scripts/3640-694d1d6d2a-lite.chunk.js.map +1 -0
- package/dist/scripts/3728-2c71d3021e-lite.chunk.js +2 -0
- package/dist/scripts/3728-2c71d3021e-lite.chunk.js.map +1 -0
- package/dist/scripts/3966-0e3c4f329e-lite.chunk.js +2 -0
- package/dist/scripts/3966-0e3c4f329e-lite.chunk.js.map +1 -0
- package/dist/scripts/{3969-6d5f2f272f-lite.chunk.js → 3969-e36f1922eb-lite.chunk.js} +1 -1
- package/dist/scripts/{3969-6d5f2f272f-lite.chunk.js.map → 3969-e36f1922eb-lite.chunk.js.map} +1 -1
- 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-7ae9edf4a5-lite.chunk.js +2 -0
- package/dist/scripts/4182-7ae9edf4a5-lite.chunk.js.map +1 -0
- package/dist/scripts/4395-37537617e2-lite.chunk.js +2 -0
- package/dist/scripts/4395-37537617e2-lite.chunk.js.map +1 -0
- package/dist/scripts/4502-83e4017e54-lite.chunk.js +2 -0
- package/dist/scripts/4502-83e4017e54-lite.chunk.js.map +1 -0
- package/dist/scripts/4690-d64efe8020-lite.chunk.js +2 -0
- package/dist/scripts/4690-d64efe8020-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/5143-d46f032e9e-lite.chunk.js +2 -0
- package/dist/scripts/5143-d46f032e9e-lite.chunk.js.map +1 -0
- package/dist/scripts/5157-855821ccce-lite.chunk.js +2 -0
- package/dist/scripts/5157-855821ccce-lite.chunk.js.map +1 -0
- package/dist/scripts/537-f63ad5863e-lite.chunk.js +3 -0
- package/dist/scripts/537-f63ad5863e-lite.chunk.js.map +1 -0
- package/dist/scripts/5549-bb01b24470-lite.chunk.js +2 -0
- package/dist/scripts/5549-bb01b24470-lite.chunk.js.map +1 -0
- package/dist/scripts/5573-304fea77a6-lite.chunk.js +2 -0
- package/dist/scripts/5573-304fea77a6-lite.chunk.js.map +1 -0
- package/dist/scripts/5595-842c05064c-lite.chunk.js +2 -0
- package/dist/scripts/5595-842c05064c-lite.chunk.js.map +1 -0
- package/dist/scripts/5606-680582b817-lite.chunk.js +2 -0
- package/dist/scripts/5606-680582b817-lite.chunk.js.map +1 -0
- package/dist/scripts/5877-e75dcce0ef-lite.chunk.js +2 -0
- package/dist/scripts/5877-e75dcce0ef-lite.chunk.js.map +1 -0
- package/dist/scripts/5936-b509535ec7-lite.chunk.js +2 -0
- package/dist/scripts/5936-b509535ec7-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/6094-6c1e95073a-lite.chunk.js +2 -0
- package/dist/scripts/6094-6c1e95073a-lite.chunk.js.map +1 -0
- package/dist/scripts/6138-5791b93cc1-lite.chunk.js +2 -0
- package/dist/scripts/6138-5791b93cc1-lite.chunk.js.map +1 -0
- package/dist/scripts/{624-7ab5fb3f3b-lite.chunk.js → 624-bf0ff6257f-lite.chunk.js} +3 -3
- package/dist/scripts/{624-7ab5fb3f3b-lite.chunk.js.map → 624-bf0ff6257f-lite.chunk.js.map} +1 -1
- package/dist/scripts/6263-cfd4ebfe8b-lite.chunk.js +2 -0
- package/dist/scripts/6263-cfd4ebfe8b-lite.chunk.js.map +1 -0
- package/dist/scripts/6290-eb223883fe-lite.chunk.js +2 -0
- package/dist/scripts/6290-eb223883fe-lite.chunk.js.map +1 -0
- package/dist/scripts/6470-1012a7889c-lite.chunk.js +2 -0
- package/dist/scripts/6470-1012a7889c-lite.chunk.js.map +1 -0
- package/dist/scripts/6481-39b72a58ef-lite.chunk.js +2 -0
- package/dist/scripts/6481-39b72a58ef-lite.chunk.js.map +1 -0
- package/dist/scripts/6489-9287613d14-lite.chunk.js +3 -0
- package/dist/scripts/6489-9287613d14-lite.chunk.js.map +1 -0
- package/dist/scripts/6532-9edab80cc6-lite.chunk.js +2 -0
- package/dist/scripts/6532-9edab80cc6-lite.chunk.js.map +1 -0
- package/dist/scripts/6604-2353daa8c0-lite.chunk.js +2 -0
- package/dist/scripts/6604-2353daa8c0-lite.chunk.js.map +1 -0
- package/dist/scripts/6741-572db2d1e9-lite.chunk.js +3 -0
- package/dist/scripts/6741-572db2d1e9-lite.chunk.js.map +1 -0
- package/dist/scripts/6746-72d35335ba-lite.chunk.js +2 -0
- package/dist/scripts/6746-72d35335ba-lite.chunk.js.map +1 -0
- package/dist/scripts/6852-f49f6f19d3-lite.chunk.js +2 -0
- package/dist/scripts/6852-f49f6f19d3-lite.chunk.js.map +1 -0
- package/dist/scripts/714-67adeb44da-lite.chunk.js +2 -0
- package/dist/scripts/714-67adeb44da-lite.chunk.js.map +1 -0
- package/dist/scripts/7163-8b5ab059b6-lite.chunk.js +2 -0
- package/dist/scripts/7163-8b5ab059b6-lite.chunk.js.map +1 -0
- package/dist/scripts/7178-4b9c33a63e-lite.chunk.js +2 -0
- package/dist/scripts/7178-4b9c33a63e-lite.chunk.js.map +1 -0
- package/dist/scripts/7223-e2f8a43b89-lite.chunk.js +2 -0
- package/dist/scripts/7223-e2f8a43b89-lite.chunk.js.map +1 -0
- package/dist/scripts/7234-595d44446f-lite.chunk.js +2 -0
- package/dist/scripts/7234-595d44446f-lite.chunk.js.map +1 -0
- package/dist/scripts/7267-dac72aeb98-lite.chunk.js +2 -0
- package/dist/scripts/7267-dac72aeb98-lite.chunk.js.map +1 -0
- package/dist/scripts/{7293-687e60dba2-lite.chunk.js → 7293-1ad518e385-lite.chunk.js} +2 -2
- package/dist/scripts/7293-1ad518e385-lite.chunk.js.map +1 -0
- package/dist/scripts/7679-f43777e02e-lite.chunk.js +2 -0
- package/dist/scripts/7679-f43777e02e-lite.chunk.js.map +1 -0
- package/dist/scripts/7757-2785d666ad-lite.chunk.js +2 -0
- package/dist/scripts/7757-2785d666ad-lite.chunk.js.map +1 -0
- package/dist/scripts/7795-b641104969-lite.chunk.js +2 -0
- package/dist/scripts/7795-b641104969-lite.chunk.js.map +1 -0
- package/dist/scripts/7818-cff0f2276c-lite.chunk.js +2 -0
- package/dist/scripts/7818-cff0f2276c-lite.chunk.js.map +1 -0
- package/dist/scripts/{8192-f26370c5a6-lite.chunk.js → 8192-ea5cee15d7-lite.chunk.js} +1 -1
- package/dist/scripts/{8192-f26370c5a6-lite.chunk.js.map → 8192-ea5cee15d7-lite.chunk.js.map} +1 -1
- package/dist/scripts/8200-1e4518c5d8-lite.chunk.js +3 -0
- package/dist/scripts/8200-1e4518c5d8-lite.chunk.js.map +1 -0
- package/dist/scripts/8323-fb330a8f47-lite.chunk.js +3 -0
- package/dist/scripts/8323-fb330a8f47-lite.chunk.js.map +1 -0
- package/dist/scripts/841-d69c7f4b4d-lite.chunk.js +3 -0
- package/dist/scripts/841-d69c7f4b4d-lite.chunk.js.map +1 -0
- package/dist/scripts/8709-f360baa021-lite.chunk.js +2 -0
- package/dist/scripts/8709-f360baa021-lite.chunk.js.map +1 -0
- package/dist/scripts/8722-00d7443d09-lite.chunk.js +2 -0
- package/dist/scripts/8722-00d7443d09-lite.chunk.js.map +1 -0
- package/dist/scripts/8982-6848480133-lite.chunk.js +2 -0
- package/dist/scripts/8982-6848480133-lite.chunk.js.map +1 -0
- package/dist/scripts/9016-e17da8b633-lite.chunk.js +3 -0
- package/dist/scripts/9016-e17da8b633-lite.chunk.js.map +1 -0
- package/dist/scripts/9173-a0c6c7be25-lite.chunk.js +2 -0
- package/dist/scripts/9173-a0c6c7be25-lite.chunk.js.map +1 -0
- package/dist/scripts/9226-a7c61f9129-lite.chunk.js +2 -0
- package/dist/scripts/9226-a7c61f9129-lite.chunk.js.map +1 -0
- package/dist/scripts/9230-537f1fcc38-lite.chunk.js +3 -0
- package/dist/scripts/9230-537f1fcc38-lite.chunk.js.map +1 -0
- package/dist/scripts/9359-deb452cb10-lite.chunk.js +2 -0
- package/dist/scripts/9359-deb452cb10-lite.chunk.js.map +1 -0
- package/dist/scripts/{9395-90b87097fa-lite.chunk.js → 9395-e9b5cdbdce-lite.chunk.js} +3 -3
- package/dist/scripts/{9395-90b87097fa-lite.chunk.js.map → 9395-e9b5cdbdce-lite.chunk.js.map} +1 -1
- package/dist/scripts/9399-721a368168-lite.chunk.js +2 -0
- package/dist/scripts/9399-721a368168-lite.chunk.js.map +1 -0
- package/dist/scripts/{9478-99486906b9-lite.chunk.js → 9478-abfa7ed3cc-lite.chunk.js} +3 -3
- package/dist/scripts/{9478-99486906b9-lite.chunk.js.map → 9478-abfa7ed3cc-lite.chunk.js.map} +1 -1
- package/dist/scripts/{953-cbc7f0571e-lite.chunk.js → 953-bf3d621a33-lite.chunk.js} +3 -3
- package/dist/scripts/{953-cbc7f0571e-lite.chunk.js.map → 953-bf3d621a33-lite.chunk.js.map} +1 -1
- package/dist/scripts/9719-ed1956607c-lite.chunk.js +3 -0
- package/dist/scripts/9719-ed1956607c-lite.chunk.js.map +1 -0
- package/dist/scripts/999-d7e93dac12-lite.chunk.js +2 -0
- package/dist/scripts/999-d7e93dac12-lite.chunk.js.map +1 -0
- package/dist/scripts/bundle-9a72d04e7d.min.js +3 -0
- package/dist/scripts/bundle-9a72d04e7d.min.js.map +1 -0
- package/package.json +1 -2
- package/dist/css/4690-lite-a4fdd7e61e.chunk.css +0 -4
- package/dist/scripts/1125-aac132b88f-lite.chunk.js.map +0 -1
- package/dist/scripts/1169-5a0d974a94-lite.chunk.js +0 -2
- package/dist/scripts/1169-5a0d974a94-lite.chunk.js.map +0 -1
- package/dist/scripts/1329-7064e95200-lite.chunk.js +0 -3
- package/dist/scripts/1329-7064e95200-lite.chunk.js.map +0 -1
- package/dist/scripts/1466-735d7dad48-lite.chunk.js +0 -3
- package/dist/scripts/1466-735d7dad48-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-4949c9b748-lite.chunk.js +0 -2
- package/dist/scripts/1818-4949c9b748-lite.chunk.js.map +0 -1
- package/dist/scripts/1820-345bf53a3c-lite.chunk.js +0 -2
- package/dist/scripts/1820-345bf53a3c-lite.chunk.js.map +0 -1
- package/dist/scripts/1867-6f801de383-lite.chunk.js +0 -2
- package/dist/scripts/1867-6f801de383-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/193-f08b054631-lite.chunk.js +0 -2
- package/dist/scripts/193-f08b054631-lite.chunk.js.map +0 -1
- package/dist/scripts/2004-d891104ed4-lite.chunk.js +0 -3
- package/dist/scripts/2004-d891104ed4-lite.chunk.js.map +0 -1
- package/dist/scripts/209-57b05f6c83-lite.chunk.js +0 -2
- package/dist/scripts/209-57b05f6c83-lite.chunk.js.map +0 -1
- package/dist/scripts/2134-bca2f4697e-lite.chunk.js +0 -2
- package/dist/scripts/2134-bca2f4697e-lite.chunk.js.map +0 -1
- package/dist/scripts/2703-591ccf069c-lite.chunk.js +0 -2
- package/dist/scripts/2703-591ccf069c-lite.chunk.js.map +0 -1
- package/dist/scripts/3020-dbc723b098-lite.chunk.js +0 -2
- package/dist/scripts/3020-dbc723b098-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/3966-a3bb0e0161-lite.chunk.js +0 -2
- package/dist/scripts/3966-a3bb0e0161-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/4690-03372d68ac-lite.chunk.js +0 -2
- package/dist/scripts/4690-03372d68ac-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/5157-54aeb51bdf-lite.chunk.js +0 -2
- package/dist/scripts/5157-54aeb51bdf-lite.chunk.js.map +0 -1
- package/dist/scripts/537-536e52ef91-lite.chunk.js +0 -3
- package/dist/scripts/537-536e52ef91-lite.chunk.js.map +0 -1
- package/dist/scripts/5562-e011962a62-lite.chunk.js +0 -3
- package/dist/scripts/5562-e011962a62-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-96a0649af0-lite.chunk.js +0 -2
- package/dist/scripts/5595-96a0649af0-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-f0177219db-lite.chunk.js +0 -2
- package/dist/scripts/5936-f0177219db-lite.chunk.js.map +0 -1
- package/dist/scripts/6054-14d4ceeae3-lite.chunk.js +0 -2
- package/dist/scripts/6054-14d4ceeae3-lite.chunk.js.map +0 -1
- package/dist/scripts/6094-7ec9341357-lite.chunk.js +0 -2
- package/dist/scripts/6094-7ec9341357-lite.chunk.js.map +0 -1
- package/dist/scripts/6138-d419f62f77-lite.chunk.js +0 -2
- package/dist/scripts/6138-d419f62f77-lite.chunk.js.map +0 -1
- package/dist/scripts/6263-af99de5a35-lite.chunk.js +0 -2
- package/dist/scripts/6263-af99de5a35-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-8b354a10c7-lite.chunk.js +0 -2
- package/dist/scripts/6415-8b354a10c7-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-03a4f1082e-lite.chunk.js +0 -2
- package/dist/scripts/6481-03a4f1082e-lite.chunk.js.map +0 -1
- package/dist/scripts/6489-953bb87f64-lite.chunk.js +0 -3
- package/dist/scripts/6489-953bb87f64-lite.chunk.js.map +0 -1
- package/dist/scripts/6532-a6b65c91a7-lite.chunk.js +0 -2
- package/dist/scripts/6532-a6b65c91a7-lite.chunk.js.map +0 -1
- package/dist/scripts/6546-bc3a8099ba-lite.chunk.js +0 -2
- package/dist/scripts/6546-bc3a8099ba-lite.chunk.js.map +0 -1
- package/dist/scripts/6587-23e7b1d196-lite.chunk.js +0 -2
- package/dist/scripts/6587-23e7b1d196-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/6741-ff3e4a33a5-lite.chunk.js +0 -3
- package/dist/scripts/6741-ff3e4a33a5-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-92bb80f478-lite.chunk.js +0 -2
- package/dist/scripts/679-92bb80f478-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/7293-687e60dba2-lite.chunk.js.map +0 -1
- package/dist/scripts/7679-81c2a40df4-lite.chunk.js +0 -2
- package/dist/scripts/7679-81c2a40df4-lite.chunk.js.map +0 -1
- package/dist/scripts/7757-b149c4c215-lite.chunk.js +0 -2
- package/dist/scripts/7757-b149c4c215-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/8200-8a55f1631f-lite.chunk.js +0 -3
- package/dist/scripts/8200-8a55f1631f-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/841-0c50273ad2-lite.chunk.js +0 -3
- package/dist/scripts/841-0c50273ad2-lite.chunk.js.map +0 -1
- package/dist/scripts/8722-c5f95553f2-lite.chunk.js +0 -2
- package/dist/scripts/8722-c5f95553f2-lite.chunk.js.map +0 -1
- package/dist/scripts/8766-9605550480-lite.chunk.js +0 -2
- package/dist/scripts/8766-9605550480-lite.chunk.js.map +0 -1
- package/dist/scripts/8800-c88fefeace-lite.chunk.js +0 -2
- package/dist/scripts/8800-c88fefeace-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/9359-fa72fcdedc-lite.chunk.js +0 -2
- package/dist/scripts/9359-fa72fcdedc-lite.chunk.js.map +0 -1
- package/dist/scripts/9399-b724e4fb06-lite.chunk.js +0 -2
- package/dist/scripts/9399-b724e4fb06-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/986-e9379d557d-lite.chunk.js +0 -3
- package/dist/scripts/986-e9379d557d-lite.chunk.js.LICENSE.txt +0 -1
- package/dist/scripts/986-e9379d557d-lite.chunk.js.map +0 -1
- package/dist/scripts/bundle-d646383f3e.min.js +0 -3
- package/dist/scripts/bundle-d646383f3e.min.js.map +0 -1
- /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/{1867-lite-ae7bb51ed6.chunk.css → 3640-lite-ae7bb51ed6.chunk.css} +0 -0
- /package/dist/css/{4860-lite-93d7fad455.chunk.css → 4063-lite-93d7fad455.chunk.css} +0 -0
- /package/dist/css/{729-lite-93d7fad455.chunk.css → 4850-lite-93d7fad455.chunk.css} +0 -0
- /package/dist/css/{6546-lite-ae7bb51ed6.chunk.css → 5549-lite-ae7bb51ed6.chunk.css} +0 -0
- /package/dist/css/{8766-lite-8c5d7658ec.chunk.css → 7163-lite-8c5d7658ec.chunk.css} +0 -0
- /package/dist/css/{1818-lite-5ef1706d69.chunk.css → 7234-lite-5ef1706d69.chunk.css} +0 -0
- /package/dist/css/{6415-lite-707657102b.chunk.css → 9173-lite-707657102b.chunk.css} +0 -0
- /package/dist/scripts/{1329-7064e95200-lite.chunk.js.LICENSE.txt → 1104-f057c6dea1-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{1379-082bbab71a-lite.chunk.js.LICENSE.txt → 1329-850346e6e6-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{1466-735d7dad48-lite.chunk.js.LICENSE.txt → 1379-976d20185f-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{1672-672f298d82-lite.chunk.js.LICENSE.txt → 1672-60a3ab42f5-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{2004-d891104ed4-lite.chunk.js.LICENSE.txt → 2004-7d1bf8b246-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{537-536e52ef91-lite.chunk.js.LICENSE.txt → 338-e21a3cd6fe-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{5562-e011962a62-lite.chunk.js.LICENSE.txt → 3532-2fed0eb7a4-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{624-7ab5fb3f3b-lite.chunk.js.LICENSE.txt → 537-f63ad5863e-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{6489-953bb87f64-lite.chunk.js.LICENSE.txt → 624-bf0ff6257f-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{6741-ff3e4a33a5-lite.chunk.js.LICENSE.txt → 6489-9287613d14-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{8200-8a55f1631f-lite.chunk.js.LICENSE.txt → 6741-572db2d1e9-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{8323-99cb03891e-lite.chunk.js.LICENSE.txt → 8200-1e4518c5d8-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{841-0c50273ad2-lite.chunk.js.LICENSE.txt → 8323-fb330a8f47-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{9173-2392d447a6-lite.chunk.js.LICENSE.txt → 841-d69c7f4b4d-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{9016-0c078a39cb-lite.chunk.js.LICENSE.txt → 9016-e17da8b633-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{9230-6dee40b1fb-lite.chunk.js.LICENSE.txt → 9230-537f1fcc38-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{9395-90b87097fa-lite.chunk.js.LICENSE.txt → 9395-e9b5cdbdce-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{9478-99486906b9-lite.chunk.js.LICENSE.txt → 9478-abfa7ed3cc-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{953-cbc7f0571e-lite.chunk.js.LICENSE.txt → 953-bf3d621a33-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{9719-cf7d4172b6-lite.chunk.js.LICENSE.txt → 9719-ed1956607c-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{bundle-d646383f3e.min.js.LICENSE.txt → bundle-9a72d04e7d.min.js.LICENSE.txt} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scripts/5595-842c05064c-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/common/src/react/utils/PortalHelper.ts","file:///app/packages/libs/shared/src/apps/calendar/components/coming-soon-tag/coming-soon-tag.scss","file:///app/packages/libs/shared/src/apps/calendar/components/coming-soon-tag/ComingSoonTag.tsx","file:///app/packages/libs/shared/src/apps/calendar/components/generic-calendar-date/generic-calendar-date.scss","file:///app/packages/libs/shared/src/apps/calendar/components/generic-calendar-date/GenericCalendarDate.tsx","file:///app/packages/libs/shared/src/components/actions/Actions.tsx","file:///app/packages/libs/shared/src/components/actions/actions.scss","file:///app/packages/libs/shared/src/components/actions/ActionsDropdown.tsx","file:///app/packages/libs/shared/src/components/back-button/BackButton.tsx","file:///app/packages/libs/shared/src/components/banner-header/banner-header.scss","file:///app/packages/libs/shared/src/components/banner-header/BannerHeader.tsx","file:///app/packages/libs/shared/src/components/caret/Caret.tsx","file:///app/packages/libs/shared/src/components/caret/caret.scss","file:///app/packages/libs/shared/src/components/drag-drop-move/DragDropMoveWrapper.tsx","file:///app/packages/libs/shared/src/components/library-folder/library-folder.scss","file:///app/packages/libs/shared/src/components/library-folder/LibraryFolder.tsx","file:///app/packages/libs/shared/src/components/folder-list/FolderList.tsx","file:///app/packages/libs/shared/src/components/folder-list/partial-loading/partial-folder-list.scss","file:///app/packages/libs/shared/src/components/folder-list/partial-loading/PartialFolderList.tsx","file:///app/packages/libs/shared/src/errors/handlers/HttpErrorHandlers.ts","file:///app/packages/libs/shared/src/hooks/UseHandleObjectError.ts","file:///app/packages/projects/lite/src/apps/libraries/hooks/UseFetchAllChildFolders.ts","file:///app/packages/projects/lite/src/apps/libraries/hooks/UseHandleLibraryType.ts","file:///app/packages/projects/lite/src/apps/libraries/views/library-folder/LibraryFolderViewUtils.ts","file:///app/packages/projects/lite/src/apps/libraries/views/library/LibraryView.tsx"],"sourcesContent":["import React from 'react';\nimport { createPortal } from 'react-dom';\n\nexport const PortalHelper = {\n renderInPortalIfExists(component: React.ReactElement, portalContainer: Element | null): React.ReactElement {\n if (portalContainer)\n return createPortal(component, portalContainer);\n\n return component;\n }\n};","// extracted by mini-css-extract-plugin\nexport default {\"tag\":\"XRj8d\",\"tooltip\":\"X6mLk\"};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport styles from './coming-soon-tag.scss';\n\nconst namespace = 'specialEventCalendar.comingSoonTag';\n\ninterface ComingSoonProps {\n className?: string;\n onlyIcon?: boolean;\n}\n\nexport function ComingSoonTag(props: ComingSoonProps): JSX.Element {\n return (\n <Tooltip title={LanguageService.getPhrase(namespace, 'tooltip')} spanHackClassName={`d-block ${styles.tooltip}`} spanHack>\n <div className={`d-flex text-dark align-items-center ${styles.tag} ${props.className}`}>\n <SvgContainer svgName={cvSvgLibrary.Timer} />\n {!props.onlyIcon && LanguageService.getPhrase(namespace, 'comingSoon')}\n </div>\n </Tooltip>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"dateItem\":\"I3SBm\",\"label\":\"PRORs\",\"body\":\"RfiM_\",\"bodyDay\":\"ZOVny\",\"bodyRange\":\"vYhXN\",\"bodyMonth\":\"mYslO\",\"month\":\"EPkkQ\"};","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsOptions } from 'libs/analytics/interfaces';\n\nimport { CalendarTheme } from 'libs/shared/apps/calendar/interfaces/CalendarTheme';\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\n\nimport styles from './generic-calendar-date.scss';\n\nexport interface GenericCalendarDateProps {\n label?: string;\n body: {\n type: 'month' | 'range' | 'day';\n text: string;\n };\n month?: string;\n getAppLink?: () => Core.AppLink;\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n className?: string;\n theme?: CalendarTheme;\n}\n\nexport function GenericCalendarDate(props: GenericCalendarDateProps): JSX.Element {\n function getBodyClass(): string {\n switch (props.body.type) {\n case 'range':\n return styles.bodyRange;\n case 'day':\n return styles.bodyDay;\n case 'month':\n return styles.bodyMonth;\n }\n }\n\n return (\n <AppLink\n appLink={props.getAppLink?.()}\n className={`text-decoration-none text-center bg-white text-dark border border-3 ${props.theme?.border} rounded-3 d-block fw-semibold ${props.className}`}\n analyticsData={props.analyticsData}\n analyticsOptions={props.analyticsOptions}\n >\n <div className={`position-relative ${styles.dateItem}`}>\n <div className={`${props.theme?.background} py-1 ${styles.label} d-flex align-items-center justify-content-center`}>\n {props.label ? props.label : <> </>}\n </div>\n <div className={`${getBodyClass()} ${styles.body} my-2`}>\n {props.body.text}\n </div>\n <div className={`mb-0 ${styles.month}`}>\n {props.month}\n </div>\n </div>\n </AppLink>\n );\n}","import * as React from 'react';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { Core } from 'libs/common/core';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsOptions } from 'libs/analytics/interfaces';\n\nimport { IconButton } from 'libs/shared/components/icon-button/IconButton';\nimport { SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { BaseObject } from 'libs/shared/interfaces';\n\nimport { ActionButton } from './ActionButton';\nimport { ActionsDropdown } from './ActionsDropdown';\n\nexport interface ActionOptions {\n order?: number;\n label?: string | (() => JSX.Element);\n appLink?: Core.AppLink;\n href?: string;\n onClick?: () => void;\n svgName?: string;\n className?: string;\n button?: boolean; // If true, a button will be rendered. Otherwise the action will be rendered in the dropdown.\n tooltip?: string;\n showSpinner?: boolean;\n showBorder?: boolean; // only works for button without text label\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n disabled?: boolean;\n openInNewTab?: boolean; // Only used if appLink or href is provided\n group?: string;\n lazyPlaceholder?: boolean;\n}\n\nexport type ActionGenerator = (obj: BaseObject) => ActionOptions[];\n\ninterface ActionsProps {\n actions: ActionOptions[];\n className?: string;\n actionsDropdownClassName?: string;\n dropdownToggleSvgSize?: SvgContainerSize;\n sortComponent?: JSX.Element;\n customSize?: boolean;\n fetchMore?: () => void;\n}\n\nexport function Actions(props: ActionsProps): JSX.Element {\n const orderedActions = React.useMemo(() => props.actions.sort((a, b) => a.order - b.order), [props.actions]);\n\n const buttonActions: ActionOptions[] = [];\n const moreActions: ActionOptions[] = [];\n\n orderedActions.forEach(a => {\n if (a.button)\n buttonActions.push(a);\n else\n moreActions.push(a);\n });\n\n let className = 'd-flex';\n\n if (props.className)\n className += ` ${props.className}`;\n\n if (!buttonActions.length && !moreActions.length)\n return <></>;\n\n return (\n <div className={className}>\n {buttonActions.length ? buttonActions.map((a, idx) => (\n <React.Fragment key={idx}>\n {(() => {\n if (a.label) {\n const label = FunctionHelper.isFunction(a.label)\n ? a.label\n : () => <>{a.label}</>;\n\n return (\n <ActionButton\n appLink={a.appLink}\n href={a.href}\n onClick={a.onClick}\n svgName={a.svgName}\n svgSize={props.dropdownToggleSvgSize}\n className={a.className}\n tooltip={a.tooltip}\n showSpinner={a.showSpinner}\n analyticsData={a.analyticsData}\n analyticsOptions={a.analyticsOptions}\n openInNewTab={a.openInNewTab}\n disabled={a.disabled}\n >\n {label()}\n </ActionButton>\n );\n }\n\n const iconButton = (\n <IconButton\n appLink={a.appLink}\n href={a.href}\n onClick={a.onClick}\n svgName={a.svgName}\n className={a.className}\n analyticsData={a.analyticsData}\n analyticsOptions={a.analyticsOptions}\n openInNewTab={a.openInNewTab}\n disabled={a.disabled}\n showBorder={a.showBorder}\n customSize={props.customSize}\n />\n );\n\n return a.tooltip\n ? <Tooltip title={a.tooltip} spanHack>{iconButton}</Tooltip>\n : iconButton;\n })()}\n </React.Fragment>\n )) : <></>}\n {props.sortComponent && props.sortComponent}\n {moreActions.length ? (\n <ActionsDropdown\n actions={moreActions}\n dropdownToggleClassName={props.actionsDropdownClassName}\n dropdownToggleSvgSize={props.dropdownToggleSvgSize}\n fetchMore={props.fetchMore}\n />\n ) : <></>}\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"dropdownToggle\":\"UCAnJ\"};","import * as React from 'react';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { Core } from 'libs/common/core';\nimport { RandomHelper } from 'libs/common/react/utils/RandomHelper';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { ActionOptions } from './Actions';\n\nimport styles from './actions.scss';\n\nfunction LazyDropdownItems(): JSX.Element {\n return (\n <>\n <div style={{ padding: '0.53125rem 1rem' }}>\n <div className='partial-loading-background' style={{ height: '1.0625rem', width: '8rem' }}></div>\n </div>\n <div style={{ padding: '0.53125rem 1rem' }}>\n <div className='partial-loading-background' style={{ height: '1.0625rem', width: '12rem' }}></div>\n </div>\n <div style={{ padding: '0.53125rem 1rem' }}>\n <div className='partial-loading-background' style={{ height: '1.0625rem', width: '11rem' }}></div>\n </div>\n <div style={{ padding: '0.53125rem 1rem' }}>\n <div className='partial-loading-background' style={{ height: '1.0625rem', width: '9rem' }}></div>\n </div>\n </>\n );\n}\n\nfunction getDropdownItemClassName(actionClassName?: string): string {\n let className = 'dropdown-item';\n\n if (actionClassName)\n className += ` ${actionClassName}`;\n\n return className;\n}\n\nexport type DropdownActionOptions = Omit<ActionOptions, 'button'>;\n\ninterface ActionsDropdownItemProps {\n action: DropdownActionOptions;\n}\n\nfunction ActionsDropdownItem(props: ActionsDropdownItemProps): React.ReactElement {\n const label = FunctionHelper.isFunction(props.action.label)\n ? props.action.label\n : () => <>{props.action.label}</>;\n\n if (props.action.appLink)\n return (\n <AppLink\n appLink={props.action.appLink}\n onClick={props.action.onClick}\n className={getDropdownItemClassName(props.action.className)}\n analyticsData={props.action.analyticsData}\n analyticsOptions={props.action.analyticsOptions}\n openInNewTab={props.action.openInNewTab}\n disabled={props.action.disabled}\n >\n {props.action.svgName && <SvgContainer svgName={props.action.svgName} className='d-inline-block svg-container me-2 align-middle' />}\n <span className='align-middle'>{label()}</span>\n </AppLink>\n );\n\n function onClick(e: React.MouseEvent | React.KeyboardEvent): void {\n e.preventDefault();\n\n if (props.action.analyticsData && props.action.analyticsOptions)\n AnalyticsHelper.logUserAction(props.action.analyticsData, props.action.analyticsOptions);\n\n if (FunctionHelper.isFunction(props.action.onClick))\n props.action.onClick();\n\n if (props.action.href)\n Core.LocationUtils.PageLoad(props.action.href, props.action.openInNewTab);\n }\n\n if (props.action.href) {\n return (\n <a\n className={getDropdownItemClassName(props.action.className)}\n onClick={onClick}\n href={props.action.href}\n >\n {props.action.svgName && <SvgContainer svgName={props.action.svgName} className='d-inline-block svg-container me-2 align-middle' />}\n <span className='align-middle'>{label()}</span>\n </a>\n );\n }\n\n return (\n <span\n className={`cursor-pointer ${getDropdownItemClassName(props.action.className)}`}\n onClick={onClick}\n role='button'\n tabIndex={0}\n onKeyDown={(e: React.KeyboardEvent) => e.key === 'Enter' && onClick(e)}\n >\n {props.action.svgName && <SvgContainer svgName={props.action.svgName} className='d-inline-block svg-container me-2' />}\n {label()}\n </span>\n );\n}\n\ninterface ActionsDropdownProps {\n actions: DropdownActionOptions[];\n className?: string;\n dropdownToggleClassName?: string;\n dropdownToggleSvgSize?: SvgContainerSize;\n fetchMore?: () => void;\n}\n\nActionsDropdown.defaultProps = {\n dropdownToggleClassName: 'btn btn-light',\n dropdownToggleSvgSize: SvgContainerSize.Small\n};\n\nexport function ActionsDropdown(props: ActionsDropdownProps): React.ReactElement {\n if (!props.actions || !props.actions.length)\n return <></>;\n\n const isLazy = props.actions.some(a => a.lazyPlaceholder);\n\n let className = 'dropdown';\n\n if (props.className)\n className += ` ${props.className}`;\n\n // Generate unique id to avoid collisions.\n const dropdownToggleId = `actions-dropdown-${RandomHelper.getRandomInt()}`;\n\n let dropdownToggleClassName = `dropdown-toggle px-0 ${styles.dropdownToggle}`;\n\n if (props.dropdownToggleClassName)\n dropdownToggleClassName += ` ${props.dropdownToggleClassName}`;\n\n let currentGroup: string;\n\n return (\n <div className={className}>\n <button\n className={dropdownToggleClassName}\n type='button'\n id={dropdownToggleId}\n data-bs-toggle='dropdown'\n data-toggle='dropdown'\n aria-haspopup='true'\n aria-expanded='false'\n aria-label={'More actions dropdown'}\n onClick={isLazy ? props.fetchMore : null}\n >\n <SvgContainer svgName={cvSvgLibrary.More} size={props.dropdownToggleSvgSize} />\n </button>\n <ul className='dropdown-menu dropdown-menu-end dropdown-menu-right font-size-normal' aria-labelledby={dropdownToggleId}>\n {isLazy ?\n <LazyDropdownItems /> :\n props.actions.map((a, idx) => {\n const showDivider = currentGroup !== undefined && currentGroup !== a.group;\n currentGroup = a.group;\n \n if (a.tooltip) {\n return (\n <li key={idx}>\n {showDivider && <hr className='dropdown-divider' role='separator'></hr>}\n <Tooltip title={a.tooltip} spanHack>\n <ActionsDropdownItem action={a} />\n </Tooltip>\n \n </li>\n );\n }\n \n return (\n <li key={idx}>\n {showDivider && <hr className='dropdown-divider' role='separator'></hr>}\n <ActionsDropdownItem action={a} />\n </li>\n );\n })\n }\n </ul>\n </div>\n );\n}","import * as React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nconst namespace = 'shared.backButton';\n\ninterface BackButtonProps {\n appLink: Core.AppLink;\n backToName?: string;\n color?: 'black' | 'white';\n extraClasses?: string;\n /**\n * Whether or not the button text has a text shadow. Defaults to true\n */\n textShadow?: boolean;\n}\n\nBackButton.defaultProps = {\n color: 'black',\n extraClasses: ''\n};\n\nexport function BackButton(props: BackButtonProps): React.ReactElement {\n const { backToName, appLink, color, extraClasses, textShadow } = {\n textShadow: true,\n ...props\n };\n\n const backPhrase = backToName\n ? LanguageService.getPhrase(namespace, 'backTo', { backToName })\n : LanguageService.getPhrase(namespace, 'back');\n\n const colorClass = color === 'black' ? '' : 'text-white';\n const textShadowClass = textShadow ? 'text-shadow' : '';\n\n return (\n <AppLink\n appLink={appLink}\n className={`d-inline-flex align-items-center h5 mb-0 ${extraClasses} ${colorClass} ${textShadowClass}`}\n >\n <SvgContainer svgName={cvSvgLibrary.ChevronLeft} size={SvgContainerSize.Medium} />\n <span className='ms-1'>{backPhrase}</span>\n </AppLink>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"bannerContent\":\"sSCTB\",\"actionsContainer\":\"Z5WI2\",\"bannerContentWithLogo\":\"rgs7Q\",\"container\":\"M51HJ\",\"logoContainer\":\"vkeJk\",\"logoContainerLeft\":\"M3U9B\",\"logoHeading\":\"EtRwC\",\"specialEventContainer\":\"rOxDc\",\"headingLarge\":\"_8pnV\",\"heading\":\"JXVBH\"};","import * as React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\nimport { PortalHelper } from 'libs/common/react/utils/PortalHelper';\n\nimport { ComingSoonTag } from 'libs/shared/apps/calendar/components/coming-soon-tag/ComingSoonTag';\nimport { GenericCalendarDate } from 'libs/shared/apps/calendar/components/generic-calendar-date/GenericCalendarDate';\nimport { CalendarTheme } from 'libs/shared/apps/calendar/interfaces/CalendarTheme';\nimport { ActionOptions, Actions } from 'libs/shared/components/actions/Actions';\nimport { BackButton } from 'libs/shared/components/back-button/BackButton';\nimport { LazyImage } from 'libs/shared/components/lazy-image/LazyImage';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { ImageMinDimensions } from 'libs/shared/constants/ImageSizes';\nimport { BannerPortalContext } from 'libs/shared/context/BannerPortalContext';\nimport { ImageSize, ImageType, ResizeType } from 'libs/shared/enums/Images';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { Banner, CalendarEvent, Logo } from 'libs/shared/interfaces';\nimport { ImageHelper, ImageOptions } from 'libs/shared/utils/ImageHelper';\n\nimport styles from './banner-header.scss';\n\nconst RATIO = `${ImageMinDimensions[ImageType.Banners].width}:${ImageMinDimensions[ImageType.Banners].height}`;\nconst DEFAULT_WIDTH = 1200; // This is ImageSize.Large for a Banner.\nconst LARGE_SCREEN_WIDTH = 1920;\n\nfunction useGetImageWidth(): number {\n const breakpoints = useBreakpoints();\n\n if (breakpoints.xxl)\n return LARGE_SCREEN_WIDTH;\n\n return DEFAULT_WIDTH;\n}\n\nfunction getSizeClass(heading: string): string {\n if (heading.length < 160)\n return 'h1';\n\n return styles.headingLarge;\n}\n\ninterface BannerHeaderProps {\n heading: string;\n banner?: Banner;\n bannerClassName?: string;\n imageCdnUrl?: string;\n logo?: Logo;\n actions?: ActionOptions[];\n specialEvent?: CalendarEvent;\n backButtonAppLink?: Core.AppLink;\n backButtonText?: string;\n backButtonClasses?: string;\n sortComponent?: JSX.Element;\n blockColourClass?: string;\n actionsDropdownClassName?: string;\n detailsComponent?: () => React.ReactElement;\n imageOptions?: ImageOptions;\n showComingSoon?: boolean;\n alignLogoLeft?: boolean;\n calendarTheme?: CalendarTheme;\n}\n\nconst namespace = 'shared.bannerHeader';\n\nexport const BannerHeader = React.memo(function(props: React.PropsWithChildren<BannerHeaderProps>): React.ReactElement {\n const { heading, banner, imageCdnUrl, actions, sortComponent, blockColourClass, specialEvent } = props;\n\n const portalContainerContext = React.useContext(BannerPortalContext);\n\n const imageWidth = useGetImageWidth();\n\n const specialEventIsToday = React.useMemo(() => {\n if (!specialEvent || props.showComingSoon)\n return false;\n\n const today = DateHelper.format(new Date(), 'YYYY-MM-DD');\n\n if (!specialEvent.endDate)\n return specialEvent.startDate === today;\n\n return specialEvent.startDate <= today && specialEvent.endDate >= today;\n }, [specialEvent]);\n\n const imageOptions = props.imageOptions || {\n width: imageWidth,\n ratio: RATIO,\n resizeType: ResizeType.Cover\n };\n\n const url = !!banner && !!imageCdnUrl && ImageHelper.createBannerUrl(banner, {\n fallbackBaseUrl: imageCdnUrl,\n fallbackCategoryName: heading,\n type: ImageType.Banners\n }, imageOptions);\n\n const containerProps: React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement> = {\n className: `banner banner-header ${props.bannerClassName}`,\n style: url ? { backgroundImage: `url('${url}')` } : {}\n };\n\n if (!banner && blockColourClass) {\n delete containerProps.style;\n containerProps.className += ` ${blockColourClass}`;\n }\n\n const DetailsComponent = props.detailsComponent;\n\n return PortalHelper.renderInPortalIfExists(\n // \"banner\" is used in playlists in Online. banner-header is used by all other projects\n <header {...containerProps}>\n <div className={`container ${styles.container} position-relative inner-banner`}>\n {props.backButtonAppLink && (\n <div className='pt-3'>\n <BackButton\n appLink={props.backButtonAppLink}\n backToName={props.backButtonText}\n extraClasses={props.backButtonClasses}\n color='white'\n />\n </div>\n )}\n \n <div className={`${props.alignLogoLeft ? 'position-absolute top-50 start-0 translate-middle-y w-100 ps-4' : `${styles.bannerContent} px-2 ${props.logo?.url ? styles.bannerContentWithLogo : ''}`}`}>\n {!!specialEvent && (\n <div className={`position-relative ${styles.specialEventContainer}`}>\n <GenericCalendarDate\n body={{\n type: specialEvent.endDate ? 'range' : 'day',\n text: specialEvent.endDate\n ? `${DateHelper.format(specialEvent.startDate, 'DD')}-${DateHelper.format(specialEvent.endDate, 'DD')}`\n : DateHelper.format(specialEvent.startDate, 'DD')\n }}\n month={DateHelper.format(specialEvent.startDate, 'MMMM')}\n theme={props.calendarTheme}\n />\n </div>\n )}\n <div>\n {specialEventIsToday && (\n <div className='rounded-pill py-1 px-2 my-1 me-1 fw-semibold bg-light-blue lh-1 d-inline-block'>\n <Text namespace={namespace} phrase='onToday' />\n </div>\n )}\n {props.showComingSoon && (\n <ComingSoonTag className='pe-2 fw-semibold mb-1 rounded-pill justify-content-start text-nowrap' />\n )}\n <div className='d-flex align-items-center'>\n {props.alignLogoLeft &&\n <div className={`${styles.logoContainerLeft} d-none d-md-block partial-loading-background rounded-circle overflow-hidden me-3`}>\n {props.logo?.url &&\n <LazyImage src={ImageHelper.createUrl(props.logo?.url, { size: ImageSize.Medium })} />}\n </div>\n }\n <h1 className={`text-white text-shadow pe-3 position-static ${styles.heading} ${getSizeClass(heading)} ${props.alignLogoLeft ? 'w-50' : ''}`}>\n {heading}\n {DetailsComponent && <DetailsComponent />}\n </h1>\n </div>\n </div>\n {!!actions && (\n <div className={styles.actionsContainer}>\n <Actions\n actions={actions}\n sortComponent={sortComponent}\n actionsDropdownClassName={props.actionsDropdownClassName}\n />\n </div>\n )}\n </div>\n {!props.alignLogoLeft && !!props.logo?.url &&\n <div className={styles.logoContainer}>\n <img\n src={ImageHelper.createUrl(props.logo.url, { size: ImageSize.Small })}\n className='rounded-circle'\n />\n </div>\n }\n </div>\n </header>,\n portalContainerContext?.container\n );\n}, (prevProps, nextProps): boolean => (\n prevProps.actions === nextProps.actions\n && prevProps.heading === nextProps.heading\n && prevProps.logo?.url === nextProps.logo?.url\n));\n\nexport function PartialBannerHeader(): JSX.Element {\n const portalContainerContext = React.useContext(BannerPortalContext);\n\n return PortalHelper.renderInPortalIfExists(\n <div className={`partial-banner partial-loading-background ${styles.banner}`} />,\n portalContainerContext?.container\n );\n}","import React from 'react';\n\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { SvgContainer } from '../svg-container/SvgContainer';\n\nimport styles from './caret.scss';\n\ntype CaretDirection = 'left' | 'right' | 'up' | 'down';\n\n\nconst getDirectionClass = (direction: CaretDirection) => {\n switch (direction) {\n case 'up':\n return styles.up;\n case 'down':\n return styles.down;\n case 'right':\n return styles.right;\n case 'left':\n return styles.left;\n }\n};\n\ninterface CaretProps {\n direction?: CaretDirection;\n className?: string;\n}\n\nCaret.defaultProps = {\n direction: 'right'\n};\n\nexport function Caret(props: CaretProps): JSX.Element {\n return (\n <SvgContainer\n svgName={cvSvgLibrary.Caret}\n className={`${getDirectionClass(props.direction)} svg-container d-inline-block ${props.className}`}\n />\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"up\":\"JAT0R\",\"down\":\"ld41u\",\"left\":\"jZTRR\",\"right\":\"HHkPe\"};","import React from 'react';\nimport { useDraggable, UseDraggableArguments, useDroppable, UseDroppableArguments } from '@dnd-kit/core';\n\ninterface DragDropMoveWrapperProps extends React.PropsWithChildren {\n droppable?: UseDroppableArguments,\n draggable?: UseDraggableArguments\n dragStyle?: string;\n dropStye?: string;\n setIsDragging?: React.Dispatch<React.SetStateAction<boolean>>\n isDragging?: boolean;\n}\n\nexport function DragDropMoveWrapper(props: DragDropMoveWrapperProps) {\n const {\n active: dragActive,\n isDragging,\n attributes,\n listeners,\n setNodeRef: draggableRef\n } = useDraggable({ ...props.draggable, disabled: !props.draggable, attributes: { role: 'drag', tabIndex: -1 } });\n const {\n isOver,\n over,\n active: dropActive,\n setNodeRef: droppableRef\n } = useDroppable({ ...props.droppable, disabled: !props.droppable });\n\n React.useEffect(() => {\n const data = props.draggable?.data;\n if (Array.isArray(data) && data?.includes(dragActive?.id.toString())) {\n props.setIsDragging?.(isDragging);\n } else {\n props.setIsDragging?.(false);\n }\n }, [isDragging]);\n\n function isSelected() {\n const data = props.draggable?.data;\n return Array.isArray(data) && data.includes(props.draggable.id.toString());\n }\n\n return (\n <div\n ref={draggableRef}\n {...listeners}\n {...attributes}\n className={`${props.draggable ? 'cursor-grab' : 'cursor-default'} ${(isDragging && dragActive) || (props.isDragging && isSelected()) ? props.dragStyle : null}`}\n >\n <div\n ref={droppableRef}\n className={(dropActive && isOver && dragActive?.id !== over?.id) ? props.dropStye : null}\n >\n {props.children}\n </div>\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"actions\":\"cN3nB\",\"actionsContainer\":\"xM37V\",\"dropStyle\":\"kvCLS\",\"dragStyle\":\"md9Na\"};","import React from 'react';\n\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Core } from 'libs/common/core';\n\nimport { ActionOptions, Actions } from 'libs/shared/components/actions/Actions';\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { DragDropMoveWrapper } from 'libs/shared/components/drag-drop-move/DragDropMoveWrapper';\nimport { BaseImage } from 'libs/shared/components/image/BaseImage';\nimport { ImageFallback, ImageFallbackType } from 'libs/shared/components/image/ImageFallback';\nimport { ImageSize, ImageType } from 'libs/shared/enums/Images';\nimport { Folder } from 'libs/shared/interfaces';\n\nimport styles from './library-folder.scss';\n\ninterface LibraryFolderProps {\n folder: Folder;\n drag?: boolean;\n drop?: boolean;\n getAppLink: (f: Folder) => Core.AppLink;\n getFolderActions?: (f: Folder) => ActionOptions[];\n}\n\nexport function LibraryFolder(props: LibraryFolderProps): JSX.Element {\n const thumbnailUrl = props.folder.thumbnail\n ? UrlHelper.urlBuilder(props.folder.thumbnail.url, { size: ImageSize.Small })\n : null;\n\n const actions = props.getFolderActions?.(props.folder);\n\n return (\n <DragDropMoveWrapper\n draggable={props.drag && { id: props.folder.id, data: props.folder }}\n droppable={props.drop && { id: props.folder.id, data: props.folder }}\n dropStye={styles.dropStyle}\n dragStyle={styles.dragStyle}\n >\n <div className='position-relative'>\n <AppLink\n className='rounded-3 d-block text-decoration-none'\n appLink={props.getAppLink(props.folder)}\n title={props.folder.name}\n >\n <BaseImage\n data={thumbnailUrl}\n imageType={ImageType.Thumbnails}\n imageClassName='rounded-top-lg'\n >\n <ImageFallback\n name={props.folder.name}\n type={ImageFallbackType.Folder}\n extraClasses='rounded-top-lg'\n />\n </BaseImage>\n <h3 className='bg-white border-start border-end border-bottom rounded-bottom-lg font-size-normal fw-semibold mb-0 p-2'>\n <span className='text-truncate d-block'>{props.folder.name}</span>\n </h3>\n </AppLink>\n {actions?.length &&\n <Actions\n actions={actions}\n className={styles.actionsContainer}\n actionsDropdownClassName={styles.actions}\n // Intentionally setting to the default SVG size\n dropdownToggleSvgSize={null}\n />\n }\n </div>\n </DragDropMoveWrapper>\n );\n}","import React from 'react';\n\nimport { LocalStorageHelper } from 'libs/common/backbone/utils/LocalStorageHelper';\nimport { Core } from 'libs/common/core';\n\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\nimport { Caret } from 'libs/shared/components/caret/Caret';\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { LibraryFolder } from 'libs/shared/components/library-folder/LibraryFolder';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { Folder } from 'libs/shared/interfaces';\n\nconst namespace = 'libraries.folderList';\n\nconst EXPANDED_FOLDERS_KEY = 'has:expanded:library:folders';\n\nfunction useGetFolderLimit(): number {\n const breakpoints = useBreakpoints();\n\n if (breakpoints.xxl || breakpoints.xl || breakpoints.lg)\n return 6;\n\n if (breakpoints.md)\n return 4;\n\n return 3;\n}\n\ninterface FolderListProps {\n folders: Folder[];\n getAppLink: (folder: Folder) => Core.AppLink;\n expandFolders?: boolean;\n showHeading?: boolean;\n getFolderActions?: (f: Folder) => ActionOptions[];\n drag?: boolean;\n drop?: boolean;\n extraButtons?: JSX.Element;\n}\n\nFolderList.defaultProps = {\n showHeading: true\n};\n\nexport function FolderList(props: FolderListProps): JSX.Element {\n const [ _hasExpandedFolders, setHasExpandedFolders ] = React.useState(\n LocalStorageHelper.get(EXPANDED_FOLDERS_KEY) || false\n );\n\n const hasExpandedFolders = props.expandFolders || _hasExpandedFolders;\n\n const folderLimit = useGetFolderLimit();\n\n function onToggleFolderView(): void {\n setHasExpandedFolders(!hasExpandedFolders);\n LocalStorageHelper.set(EXPANDED_FOLDERS_KEY, !hasExpandedFolders);\n }\n\n const displayableFolders = hasExpandedFolders ? props.folders : props.folders.slice(0, folderLimit);\n\n const canToggleCollapsedView = props.folders.length > folderLimit && !props.expandFolders;\n\n return (\n <>\n <div className='d-flex justify-content-between align-items-center'>\n {props.showHeading &&\n <DivButton\n className={`d-inline-flex align-items-center mb-2 px-2 ${!canToggleCollapsedView ? 'cursor-default' : ''}`}\n onClick={onToggleFolderView}\n >\n {canToggleCollapsedView && (\n <Caret direction={hasExpandedFolders ? 'down' : 'right'} />\n )}\n <h2 className='h4 mb-0'>\n <Text namespace={namespace} phrase='folders' options={{ count: props.folders.length }} />\n </h2>\n </DivButton>\n }\n\n {!!(!hasExpandedFolders && canToggleCollapsedView) && (\n <div className='d-flex justify-content-end justify-self-end px-2'>\n <DivButton onClick={onToggleFolderView} className='text-dark hover-text-underline d-inline-block'>\n <Text namespace={namespace} phrase='seeAll' options={{ count: props.folders.length }} />\n </DivButton>\n </div>\n )}\n {!!(hasExpandedFolders && canToggleCollapsedView) && (\n <div className='d-flex justify-content-end justify-self-end px-2'>\n <DivButton onClick={onToggleFolderView} className='text-dark hover-text-underline d-inline-block'>\n <Text namespace={namespace} phrase='seeLess' />\n </DivButton>\n </div>\n )}\n\n {props.extraButtons ? props.extraButtons : <></>}\n </div>\n\n <div className='row mx-1'>\n {displayableFolders.map(f => (\n <div key={f.id} className='col-4 col-md-3 col-lg-2 px-1 pb-3'>\n <LibraryFolder\n folder={f}\n getAppLink={props.getAppLink}\n getFolderActions={props.getFolderActions}\n drag={props.drag}\n drop={props.drop}\n />\n </div>\n ))}\n </div>\n </>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"partialFolderHeading\":\"dhbsL\",\"partialFolderThumbnail\":\"CI9vk\",\"partialFolderName\":\"l0Nll\"};","import React from 'react';\n\nimport styles from './partial-folder-list.scss';\n\nconst PartialFolder = () => (\n <div className='col-4 col-md-3 col-lg-2 px-1 pb-3'>\n <div className={`${styles.partialFolderThumbnail} partial-loading-background rounded-top-lg`} />\n <div className={`${styles.partialFolderName} partial-loading-background border-bottom rounded-bottom-lg font-size-normal mb-0 p-2`}>\n \n </div>\n </div>\n);\n\nexport function PartialFolderList({ count = 3 }: { count?: number; }): JSX.Element {\n return (\n <>\n <div className={`${styles.partialFolderHeading} h4 mb-2 partial-loading-background`}> </div>\n <div className='row mx-n1'>\n {Array(count).fill(null).map((_, i) => <PartialFolder key={i} />)}\n </div>\n </>\n );\n}","import { BaseError } from 'libs/common/backbone/core/BaseError';\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\nimport { Xhr } from 'libs/common/backbone/interfaces';\nimport { Core } from 'libs/common/core';\n\nimport { NotFoundError } from 'libs/shared/errors/general/not-found/NotFoundError';\nimport { PrivateResourceError } from 'libs/shared/errors/general/private-resource/PrivateResourceError';\nimport { RegionLockedResourceError } from 'libs/shared/errors/general/region-locked-resource/RegionLockedResourceError';\nimport { UnspecifiedError } from 'libs/shared/errors/general/unspecified-error/UnspecifiedError';\nimport { VideoTypes } from 'libs/shared/interfaces';\n\nexport interface HttpErrorMap {\n notFound?: new () => BaseError;\n forbidden?: {\n rating?: new (description: string) => BaseError;\n yearLevel?: new (description: string) => BaseError;\n region?: new () => BaseError;\n privacy?: new (video?: VideoTypes) => BaseError;\n };\n badRequest?: new () => BaseError;\n}\n\nexport type IgnoreHttpErrorMap = {\n [key in keyof HttpErrorMap]: boolean;\n};\n\nconst defaultErrors: HttpErrorMap = {\n notFound: NotFoundError,\n forbidden: {\n rating: PrivateResourceError,\n yearLevel: PrivateResourceError,\n region: RegionLockedResourceError,\n privacy: PrivateResourceError\n },\n badRequest: UnspecifiedError\n};\n\nexport function handleHttpError(\n info: HttpStatus | Xhr,\n customErrorMap: HttpErrorMap = {},\n /**\n * Prevent certain errors in the errorMap from being thrown\n * so that you may implement your own handler\n */\n ignoreMap: IgnoreHttpErrorMap = {}\n): void {\n if (!info)\n return;\n\n let statusCode: HttpStatus;\n\n if (typeof(info) === 'number') {\n statusCode = info;\n } else {\n statusCode = info.status;\n }\n\n const errorMap = {\n ...defaultErrors,\n ...customErrorMap\n };\n\n if (!statusCode)\n return;\n\n if (!Core.ErrorHelper.isStatusCodeError(statusCode))\n return;\n\n if (statusCode === HttpStatus.NotFound) {\n if (!ignoreMap.notFound)\n Core.ErrorHelper.throw(new errorMap.notFound());\n return;\n }\n\n if (statusCode === HttpStatus.Forbidden) {\n /**\n * TODO: Work out how to go about handling all forbidden errors, such as region locking, year levels,\n * ratings, and privacy.\n */\n if (!ignoreMap.forbidden)\n Core.ErrorHelper.throw(new errorMap.forbidden.privacy());\n return;\n }\n\n if (!ignoreMap.badRequest)\n Core.ErrorHelper.throw(new errorMap.badRequest());\n}\n\nexport function handleXhrError(xhr: Xhr, customErrorMap?: HttpErrorMap): void {\n handleHttpError(xhr.status, customErrorMap);\n}","import { useEffect } from 'react';\n\nimport { Flight } from 'libs/common/flight';\n\nimport { handleHttpError, HttpErrorMap, IgnoreHttpErrorMap } from 'libs/shared/errors/handlers/HttpErrorHandlers';\n\nfunction generateCacheKey(flightObjs: Array<Flight.Response<any>>): string {\n return flightObjs.map(obj => obj.statusCode).join(':');\n}\n\n// TODO: Change this to just `useHandleHttpError` and only accept a status code.\nexport function useHandleObjectError(\n _flightObjs: Flight.Response<any> | Array<Flight.Response<any>>,\n customErrors?: HttpErrorMap,\n ignoreErrors?: IgnoreHttpErrorMap\n): void {\n const flightObjs = Array.isArray(_flightObjs) ? _flightObjs : [_flightObjs];\n\n useEffect(() => {\n flightObjs.forEach(obj => {\n handleHttpError(obj.statusCode, customErrors, ignoreErrors);\n });\n }, [ generateCacheKey(flightObjs), customErrors, ignoreErrors ]);\n}","import { Flight } from 'libs/common/flight';\n\nimport { LibraryRequests } from 'libs/shared/flight-requests/LibraryRequests';\nimport { useFetchAll } from 'libs/shared/hooks/UseFetchAll';\nimport { SelectAllPagesResult, useSelectAllPages } from 'libs/shared/hooks/UseSelectAllPages';\nimport { Folder } from 'libs/shared/interfaces';\n\nexport function useFetchAllChildFolders(parentId?: string): SelectAllPagesResult<Folder> {\n const fetch = Flight.useGetFetch();\n\n function getRequest(cursor?: string): Flight.Request {\n return LibraryRequests.childFolders(parentId, cursor);\n }\n \n function fetchNext(cursor?: string): void {\n fetch(getRequest(cursor));\n }\n\n useFetchAll(!!parentId && getRequest, !!parentId && fetchNext);\n\n return (useSelectAllPages<Folder>(!!parentId && ((cursor?: string) => getRequest(cursor).key)));\n}","import React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { Flight } from 'libs/common/flight';\n\nimport { MasterObjectTypes } from 'libs/shared/enums/MasterObjectTypes';\nimport { NotFoundError } from 'libs/shared/errors/general/not-found/NotFoundError';\nimport { Library } from 'libs/shared/interfaces';\n\n/**\n * This hook prevents the libraries UI to be used for anything \n * other than customer libraries i.e Hosted, Exchange, Workspace etc\n */\nexport function useHandleLibraryType(request: Flight.Response<Library>): void {\n React.useEffect(() => {\n if (!request.hasCompleted || request.hasError)\n return;\n\n if (request.data.type !== MasterObjectTypes.CustomLibrary)\n Core.ErrorHelper.throw(new NotFoundError());\n }, [request.hasCompleted]);\n}","import { Core } from 'libs/common/core';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { BG_COLOUR_CLASS_NAMES } from 'libs/shared/constants/ColourClassNames';\nimport { Folder, Library } from 'libs/shared/interfaces';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nexport function getFolderAppLink(libraryId: string, folder: Folder, sort: string): Core.AppLink {\n if (!libraryId || !folder)\n return null;\n\n return {\n application: AppChannels.LIBRARIES,\n action: Actions.Libraries.FOLDER,\n args: [ libraryId, folder.id, TextHelper.slugify(folder.name) ],\n params: {\n sort\n }\n };\n}\n\nexport function getFolderBgColourClass(folder: Folder | Library): string {\n let charCode = 0;\n\n for (let i = 0; i < folder.name?.length ?? 0; i++) {\n charCode += folder.name.charCodeAt(i);\n }\n\n return BG_COLOUR_CLASS_NAMES[charCode % BG_COLOUR_CLASS_NAMES.length];\n}","import React from 'react';\n\nimport { Flight } from 'libs/common/flight';\n\nimport { EntityType, LocationContext, SearchSourceDescriptor, UserAction } from 'libs/analytics/interfaces';\n\nimport { SourceFilterOptions } from 'libs/shared/apps/search/interfaces';\nimport { BannerHeader, PartialBannerHeader } from 'libs/shared/components/banner-header/BannerHeader';\nimport { FolderList } from 'libs/shared/components/folder-list/FolderList';\nimport { PartialFolderList } from 'libs/shared/components/folder-list/partial-loading/PartialFolderList';\nimport { IconButton } from 'libs/shared/components/icon-button/IconButton';\nimport { useFocusSearchBar } from 'libs/shared/components/search-bar/SearchUtils';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { VideoSortType } from 'libs/shared/enums/VideoSortType';\nimport { LibraryRequests } from 'libs/shared/flight-requests/LibraryRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { CurrentUser, Folder, Library } from 'libs/shared/interfaces';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\nimport { VideoSortHelper } from 'libs/shared/utils/VideoSortHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nimport { useFetchAllChildFolders } from 'apps/libraries/hooks/UseFetchAllChildFolders';\nimport { useHandleLibraryType } from 'apps/libraries/hooks/UseHandleLibraryType';\nimport { getFolderAppLink, getFolderBgColourClass } from 'apps/libraries/views/library-folder/LibraryFolderViewUtils';\n\nconst namespace = 'libraries.library';\n\ninterface LibraryViewProps {\n id: string;\n sort?: VideoSortType;\n}\n\nexport function LibraryView(props: LibraryViewProps): JSX.Element {\n const { focusSearchBar } = useFocusSearchBar();\n\n const libraries = Flight.useBasicFetch<Library[]>(LibraryRequests.domainLibraries([ 'customLibrary', 'sharedLibrary' ]));\n const library = Flight.useBasicFetch<Library>(LibraryRequests.library(props.id));\n const libraryFolders = useFetchAllChildFolders(library.data?.categoryTree?.id);\n const user = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n\n const sort = !!user.data && VideoSortHelper.getOrSetSortType(user.data.id, props.sort);\n\n useSetPageMetadata({ title: library.data?.name });\n useHandleObjectError(library);\n useHandleLibraryType(library);\n\n return (\n <>\n {library.data\n ? (\n <BannerHeader\n heading={library.data.name}\n blockColourClass={getFolderBgColourClass(library.data)}\n logo={library.data.owner?.logo}\n />\n ) : <PartialBannerHeader />\n }\n\n {(() => {\n if (!libraryFolders?.items)\n return <div className='mt-3 px-3'><PartialFolderList count={10} /></div>;\n\n if (!libraryFolders.items.length)\n return <></>;\n\n return (\n <div className='mt-3 px-2'>\n <FolderList\n folders={libraryFolders.items}\n getAppLink={(f: Folder) => getFolderAppLink(props.id, f, sort)}\n expandFolders\n extraButtons={\n <IconButton\n svgName={cvSvgLibrary.Search}\n appLink={{\n application: AppChannels.SEARCH,\n action: Actions.Search.HOME,\n params: {\n source: SourceFilterOptions.School\n }\n }}\n className='btn btn-outline-dark mb-3 me-2 d-none d-sm-inline-block'\n onClick={focusSearchBar}\n analyticsData={{}}\n analyticsOptions={{\n entity: EntityType.SearchResults,\n location: LocationContext.Libraries,\n actionType: UserAction.Click,\n descriptor: SearchSourceDescriptor.School\n }}\n >\n <Text namespace={namespace} phrase='searchLibrary' options={{ smartCount: libraries.data?.length ?? 1 }} />\n </IconButton>\n }\n />\n </div>\n );\n })()}\n </>\n );\n}\n"],"names":["PortalHelper","renderInPortalIfExists","component","portalContainer","createPortal","namespace","ComingSoonTag","props","Tooltip","title","LanguageService","spanHackClassName","spanHack","className","SvgContainer","svgName","onlyIcon","GenericCalendarDate","AppLink","appLink","getAppLink","theme","border","analyticsData","analyticsOptions","background","label","body","type","getBodyClass","text","month","Actions","orderedActions","actions","sort","a","b","order","buttonActions","moreActions","forEach","button","push","length","map","idx","key","href","onClick","svgSize","dropdownToggleSvgSize","tooltip","showSpinner","openInNewTab","disabled","iconButton","showBorder","customSize","sortComponent","dropdownToggleClassName","actionsDropdownClassName","fetchMore","LazyDropdownItems","style","padding","height","width","getDropdownItemClassName","actionClassName","ActionsDropdownItem","FunctionHelper","action","e","preventDefault","AnalyticsHelper","role","tabIndex","onKeyDown","ActionsDropdown","isLazy","some","lazyPlaceholder","currentGroup","dropdownToggleId","RandomHelper","id","size","showDivider","undefined","group","defaultProps","S","BackButton","textShadow","backToName","color","extraClasses","backPhrase","colorClass","textShadowClass","RATIO","getSizeClass","heading","BannerHeader","banner","imageCdnUrl","blockColourClass","specialEvent","portalContainerContext","BannerPortalContext","imageWidth","useBreakpoints","xxl","specialEventIsToday","showComingSoon","today","DateHelper","Date","endDate","startDate","imageOptions","ratio","resizeType","url","ImageHelper","fallbackBaseUrl","fallbackCategoryName","containerProps","bannerClassName","backgroundImage","DetailsComponent","detailsComponent","backButtonAppLink","backButtonText","backButtonClasses","alignLogoLeft","logo","calendarTheme","Text","phrase","LazyImage","src","container","prevProps","nextProps","PartialBannerHeader","getDirectionClass","direction","Caret","DragDropMoveWrapper","data","draggable","attributes","dragActive","active","isDragging","listeners","draggableRef","setNodeRef","droppable","isOver","over","dropActive","droppableRef","Array","isArray","includes","toString","setIsDragging","ref","dragStyle","dropStye","children","LibraryFolder","thumbnailUrl","folder","thumbnail","UrlHelper","getFolderActions","drag","drop","name","BaseImage","imageType","imageClassName","ImageFallback","EXPANDED_FOLDERS_KEY","FolderList","breakpoints","LocalStorageHelper","_hasExpandedFolders","setHasExpandedFolders","hasExpandedFolders","expandFolders","folderLimit","xl","lg","md","onToggleFolderView","displayableFolders","folders","slice","canToggleCollapsedView","showHeading","DivButton","options","count","extraButtons","f","PartialFolder","PartialFolderList","fill","_","i","defaultErrors","notFound","forbidden","rating","yearLevel","region","privacy","badRequest","handleHttpError","info","customErrorMap","ignoreMap","statusCode","status","errorMap","generateCacheKey","flightObjs","obj","join","useHandleObjectError","_flightObjs","customErrors","ignoreErrors","useEffect","useFetchAllChildFolders","parentId","fetch","getRequest","cursor","useHandleLibraryType","request","hasCompleted","hasError","getFolderAppLink","libraryId","application","args","params","getFolderBgColourClass","charCode","charCodeAt","LibraryView","focusSearchBar","libraries","library","libraryFolders","categoryTree","user","owner","items","source","entity","location","actionType","descriptor","smartCount"],"sourceRoot":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[5606],{49935:(e,t,a)=>{a.d(t,{Oo:()=>d,b2:()=>b});var n=a(32735),r=a(36848),l=a(86764),i=a(3747),c=a(5859),u=a(35223),o=a(83914);function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=Array(t);a<t;a++)n[a]=e[a];return n}var m=function(e){var t=e.breadcrumb,a=t.name,l=t.appLink,i=t.active,c=e.withBackIcon;return n.createElement("li",{className:"breadcrumb-item".concat(i?" active":"")},i?n.createElement("strong",null,a):n.createElement(r.F,{appLink:l},c&&n.createElement(o.x,{svgName:u.vn.ChevronLeft,size:o.S.Small}),n.createElement("span",{className:c?"ms-2":""},a)))},d=function(e){var t,a,r=e.breadcrumbs,c=(0,i.a)(l.r.XS),u=(null==r?void 0:r.length)||0,o=(t=n.useState(!1),a=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var n,r,l,i,c=[],u=!0,o=!1;try{if(l=(a=a.call(e)).next,0===t){if(Object(a)!==a)return;u=!1}else for(;!(u=(n=l.call(a)).done)&&(c.push(n.value),c.length!==t);u=!0);}catch(e){o=!0,r=e}finally{try{if(!u&&null!=a.return&&(i=a.return(),Object(i)!==i))return}finally{if(o)throw r}}return c}}(t,a)||function(e,t){if(e){if("string"==typeof e)return s(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)?s(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.")}()),d=o[0],b=o[1];if(n.useEffect((function(){var e,t=null!==(e=null==r?void 0:r.reduce((function(e,t){return e+t.name.length}),0))&&void 0!==e?e:0;u>3&&t>56&&b(!0)}),[null==r?void 0:r.length]),!u||c&&u<2)return n.createElement(n.Fragment,null);if(c)return n.createElement("nav",{"aria-label":"breadcrumb"},n.createElement("ol",{className:"breadcrumb m-0 p-0"},n.createElement(m,{breadcrumb:r[u-2],withBackIcon:!0})));var f=n.createElement(m,{breadcrumb:r[0]}),p=u>2?n.createElement(m,{breadcrumb:r[u-2]}):n.createElement(n.Fragment,null),v=n.createElement(m,{breadcrumb:r[u-1]}),y=r.slice(1,u-2);return n.createElement("nav",{"aria-label":"breadcrumb"},n.createElement("ol",{className:"breadcrumb m-0 p-0"},f,d?n.createElement("li",{className:"breadcrumb-item"},n.createElement("button",{className:"btn-link",onClick:function(){return b(!1)}},"...")):y.map((function(e,t){return n.createElement(m,{key:t,breadcrumb:e})})),p,v))},b=n.memo((function(e){var t=e.numItems,a=void 0===t?3:t;return(0,i.a)(l.r.XS)?n.createElement("div",{className:"partial-loading-background",style:{height:"1.3125rem",width:"6rem"}}):n.createElement("nav",{"aria-label":"breadcrumb"},n.createElement("ol",{className:"breadcrumb m-0 p-0"},c.u.getPartialLoadingItems({numItems:a}).map((function(e,t){var a=e.width;return n.createElement("li",{key:t,className:"breadcrumb-item"},n.createElement("span",{className:"d-inline-block partial-loading-background",style:{width:a},dangerouslySetInnerHTML:{__html:" "}}))}))))}))},23201:(e,t,a)=>{a.d(t,{A:()=>o});var n=a(32735),r=a(92802),l=a(2102),i=a(83345),c=a(33936),u="shared.formButtons";function o(e){var t=(0,r.u6)(),a=(0,c.l)(t);return n.createElement(l.m,{variant:e.variant||"primary",type:"submit",disabled:!a,size:e.size,className:e.className?e.className:"",showSpinner:t.isSubmitting},e.submitText?n.createElement(n.Fragment,null,e.submitText):n.createElement(i.x,{namespace:u,phrase:e.isNew?"create":"save"}))}},82644:(e,t,a)=>{a.d(t,{b:()=>s,n:()=>o});var n=a(32735),r=a(92802),l=a(91967),i=a(1048);function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=Array(t);a<t;a++)n[a]=e[a];return n}var u=function(e,t){var a={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(a[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(n=Object.getOwnPropertySymbols(e);r<n.length;r++)t.indexOf(n[r])<0&&Object.prototype.propertyIsEnumerable.call(e,n[r])&&(a[n[r]]=e[n[r]])}return a};function o(e){var t=e.castInitialValues,a=e.castValuesOnSubmit,o=e.initialValues,s=e.onSubmit,m=u(e,["castInitialValues","castValuesOnSubmit","initialValues","onSubmit"]),d=t&&e.validationSchema?e.validationSchema.cast(function(e){if(!e)return{};var t=i.t.deepClone(e);return function e(a){Object.keys(t).forEach((function(n){t.hasOwnProperty(n)&&(i.t.isObject(a[n])?e(a[n]):null===t[n]&&delete t[n])}))}(t),t}(o)):o,b={allowInitialSubmit:e.allowInitialSubmit};return n.createElement(r.J9,Object.assign({enableReinitialize:!0},m,{initialValues:d,onSubmit:function(t,n){var r=n.setSubmitting,l=n.resetForm,i=n.setFieldError,u=a&&e.validationSchema?e.validationSchema.cast(t):t;s(u,(function(){var e,t,a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(a.reset&&l(),a.errors)for(var n=0,u=Object.entries(a.errors);n<u.length;n++){var o=(e=u[n],t=2,function(e){if(Array.isArray(e))return e}(e)||function(e,t){var a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var n,r,l,i,c=[],u=!0,o=!1;try{if(l=(a=a.call(e)).next,0===t){if(Object(a)!==a)return;u=!1}else for(;!(u=(n=l.call(a)).done)&&(c.push(n.value),c.length!==t);u=!0);}catch(e){o=!0,r=e}finally{try{if(!u&&null!=a.return&&(i=a.return(),Object(i)!==i))return}finally{if(o)throw r}}return c}}(e,t)||function(e,t){if(e){if("string"==typeof e)return c(e,t);var a={}.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?c(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),s=o[0],m=o[1];i(s,m)}r(!1)}))},initialStatus:b}),l.q.isFunction(e.children)?function(t){return e.children(t)}:n.Children.count(e.children)?e.children:null)}function s(){return(0,r.u6)()}o.defaultProps={castInitialValues:!0,castValuesOnSubmit:!0}},5859:(e,t,a)=>{function n(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=Array(t);a<t;a++)n[a]=e[a];return n}a.d(t,{u:()=>l});var r={numItems:5,minWidth:50,maxWidth:100},l={getPartialLoadingItems:function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},a=Object.assign(Object.assign({},r),t);return(e=Array(a.numItems),function(e){if(Array.isArray(e))return n(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return n(e,t);var a={}.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?n(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()).map((function(){return{width:"".concat(Math.max(Math.floor(Math.random()*a.maxWidth),a.minWidth),"px")}}))}}},81803:(e,t,a)=>{a.d(t,{d:()=>f});var n=a(32735),r=a(81886),l=a(23481),i=a(49935),c=a(22902),u=a(14070),o=a(97291),s=a(96368);function m(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=Array(t);a<t;a++)n[a]=e[a];return n}var d="settings.settingsLayout",b=function(e){var t=(0,c.T)().hasPermissions,a=(0,s.e)();if(e)return t(e);var n=r.Q.C$.getCurrentAppLink();return n.application!==o.O.SETTINGS||a.some((function(e){return e.modules.some((function(e){return"appLink"in e&&e.appLink.action===n.action}))}))};function f(e){var t,a=b(e.requiredPermissions);if(n.useEffect((function(){a||r.Q.C$.trigger({application:o.O.SETTINGS,action:u.e.Settings.HOME},{replace:!0})}),[a]),!a)return n.createElement(n.Fragment,null);var c,s=e.breadcrumbs.map((function(t,a){return{name:t,appLink:{application:o.O.SETTINGS,action:u.e.Settings.HOME},active:a===e.breadcrumbs.length-1}}));return n.createElement("div",{className:"px-3"},n.createElement("div",{className:"d-flex align-items-center justify-content-between"},n.createElement("h1",{className:"h2"},e.heading),null===(t=e.headingButton)||void 0===t?void 0:t.call(e)),n.createElement("div",{className:"pb-3"},n.createElement(i.Oo,{breadcrumbs:[{name:l.T.getPhrase(d,"settingsBreadcrumb"),appLink:{application:o.O.SETTINGS,action:u.e.Settings.HOME}}].concat((c=s,function(e){if(Array.isArray(e))return m(e)}(c)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(c)||function(e,t){if(e){if("string"==typeof e)return m(e,t);var a={}.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?m(e,t):void 0}}(c)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()))})),e.description&&n.createElement(n.Fragment,null,n.createElement("p",null,e.description),n.createElement("hr",null)),e.children)}},55606:(e,t,a)=>{a.r(t),a.d(t,{VideoPlaybackSettingsView:()=>D});var n=a(32735),r=a(23481),l=a(20354),i=a(65858),c=a(77963),u=a(65728),o=a(31949),s=a(69883),m=a(37802),d=a(81803),b=a(92802),f=a(23201),p=a(82644),v=a(83345),y=a(80130);const g={radioButton:"JKFf9",description:"aVBqv"};function h(e){return n.createElement("div",null,n.createElement(y.Z.Check,{type:"radio",id:e.id,label:e.name,value:e.value,onChange:function(){return e.onSelect(e.value)},checked:e.selected,className:g.radioButton}),n.createElement("p",{className:g.description},e.description))}var E="settings.localCacheQualitySettings",S=r.T.encloseNamespace(E);function N(){var e=(0,b.u6)();function t(t){e.setFieldValue("quality",t)}return n.createElement(b.l0,null,n.createElement(h,{id:"local-cache-480",name:S("lowName"),description:S("lowDescription"),value:480,selected:480===e.values.quality,onSelect:t}),n.createElement(h,{id:"local-cache-720",name:S("standardName"),description:S("standardDescription"),value:720,selected:720===e.values.quality,onSelect:t}),n.createElement(h,{id:"local-cache-1080",name:S("highName"),description:S("highDescription"),value:1080,selected:1080===e.values.quality,onSelect:t}),n.createElement(f.A,{isNew:!1,variant:"outline-dark"}))}function k(e){return n.createElement(n.Fragment,null,n.createElement("h2",{className:"h4"},n.createElement(v.x,{namespace:E,phrase:"heading"})),n.createElement("p",null,n.createElement(v.x,{namespace:E,phrase:"description"})),n.createElement(p.n,{initialValues:{quality:e.initialValue},onSubmit:e.onSubmit},n.createElement(N,null)))}var w="settings.playbackQualitySettings",O=r.T.encloseNamespace(w);function A(){var e=(0,b.u6)();function t(t){e.setFieldValue("quality",t)}return n.createElement(b.l0,null,n.createElement(h,{id:"playback-480",name:O("lowName"),description:O("lowDescription"),value:480,selected:480===e.values.quality,onSelect:t}),n.createElement(h,{id:"playback-720",name:O("standardName"),description:O("standardDescription"),value:720,selected:720===e.values.quality,onSelect:t}),n.createElement(h,{id:"playback-1080",name:O("highName"),description:O("highDescription"),value:1080,selected:1080===e.values.quality,onSelect:t}),n.createElement(f.A,{isNew:!1,variant:"outline-dark"}))}function I(e){return n.createElement(n.Fragment,null,n.createElement("h2",{className:"h4"},n.createElement(v.x,{namespace:w,phrase:"heading"})),n.createElement("p",null,n.createElement(v.x,{namespace:w,phrase:"description"})),n.createElement(p.n,{initialValues:{quality:e.initialValue},onSubmit:e.onSubmit},n.createElement(A,null)))}var j=a(83523);function x(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=Array(t);a<t;a++)n[a]=e[a];return n}var C="settings.subtitleSettings";function T(e){var t,a,r=(t=n.useState(e.initialValue),a=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var n,r,l,i,c=[],u=!0,o=!1;try{if(l=(a=a.call(e)).next,0===t){if(Object(a)!==a)return;u=!1}else for(;!(u=(n=l.call(a)).done)&&(c.push(n.value),c.length!==t);u=!0);}catch(e){o=!0,r=e}finally{try{if(!u&&null!=a.return&&(i=a.return(),Object(i)!==i))return}finally{if(o)throw r}}return c}}(t,a)||function(e,t){if(e){if("string"==typeof e)return x(e,t);var a={}.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?x(e,t):void 0}}(t,a)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),l=r[0],i=r[1];return n.createElement(n.Fragment,null,n.createElement("h2",{className:"h4"},n.createElement(v.x,{namespace:C,phrase:"heading"})),n.createElement("div",{className:"d-flex"},n.createElement("p",{className:"fw-semibold me-3"},n.createElement(v.x,{namespace:C,phrase:"alwaysShowCaptions"})),n.createElement(j.Z,{on:l,onClick:function(){var t=!l;e.onChange(t),i(t)}})))}const V={partialHeading:"p1Wlx",partialDescription:"BUF8M",partialQualityOption:"vKxI0",partialLabel:"ZPM9b",partialSaveButton:"bS4wu",partialToggle:"mVsyW"};function P(){return n.createElement("div",{className:V.partialQualityOption},n.createElement("div",{className:"".concat(V.partialLabel," mb-1 partial-loading-background")}),n.createElement("div",{className:"".concat(V.partialDescription," partial-loading-background")}))}function F(){return n.createElement(n.Fragment,null,n.createElement("div",{className:"".concat(V.partialHeading," mb-2 partial-loading-background")}),n.createElement("div",{className:"".concat(V.partialDescription," partial-loading-background")}),n.createElement(P,null),n.createElement(P,null),n.createElement(P,null),n.createElement("div",{className:"".concat(V.partialSaveButton," partial-loading-background")}),n.createElement("hr",{className:"my-4"}),n.createElement("div",{className:"".concat(V.partialHeading," mb-2 partial-loading-background")}),n.createElement("div",{className:"".concat(V.partialDescription," partial-loading-background")}),n.createElement(P,null),n.createElement(P,null),n.createElement(P,null),n.createElement("div",{className:"".concat(V.partialSaveButton," partial-loading-background")}),n.createElement("hr",{className:"my-4"}),n.createElement("div",{className:"".concat(V.partialHeading," mb-2 partial-loading-background")}),n.createElement("div",{className:"".concat(V.partialToggle," partial-loading-background")}))}const L={container:"oqAZz"};var q=r.T.encloseNamespace("settings.videoPlayback");function D(){var e=(0,s.Z)(),t=l.a.useBasicFetch(o.N.currentUser()),a=(0,m.r)(i.LZ.Settings),r=a.defaultPlaybackQuality,b=a.defaultLocalCachePlaybackQuality,f=a.enableSubtitlesDefault,p=a.isLoadingSettings,v=a.updateSetting;return n.createElement(d.d,{heading:q("heading"),breadcrumbs:[q("breadcrumb")]},p?n.createElement(F,null):n.createElement("div",{className:L.container},n.createElement(I,{initialValue:r,onSubmit:function(a,n){var l=a.quality;if(l!==r){var i={name:u.E.DefaultPlaybackQuality,value:l,kind:c.g.Permanent};v(t.data.customerId,i,(function(){return e.success(q("playbackSuccess"))}),(function(){return e.error(q("playbackError"))}),n)}}}),n.createElement("hr",{className:"my-4"}),n.createElement(k,{initialValue:b,onSubmit:function(a,n){var r=a.quality;if(r!==b){var l={name:u.E.DefaultLocalCachePlaybackQuality,value:r,kind:c.g.Permanent};v(t.data.customerId,l,(function(){return e.success(q("lcSuccess"))}),(function(){return e.error(q("lcError"))}),n)}}}),n.createElement("hr",{className:"my-4"}),n.createElement(T,{initialValue:f,onChange:function(a){var n={name:u.E.EnableSubtitlesDefault,value:a,kind:c.g.Permanent};v(t.data.customerId,n,(function(){return e.success(q(a?"subtitleEnableSuccess":"subtitleDisableSuccess"))}),(function(){return e.error(q("subtitleError"))}))}})))}}}]);
|
|
2
|
+
//# sourceMappingURL=5606-680582b817-lite.chunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scripts/5606-680582b817-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/components/breadcrumbs/Breadcrumbs.tsx","file:///app/packages/libs/shared/src/components/forms/form-buttons/FormButtons.tsx","file:///app/packages/libs/shared/src/components/forms/form-wrapper/FormWrapper.tsx","file:///app/packages/libs/shared/src/utils/PartialLoadingHelper.ts","file:///app/packages/projects/lite/src/apps/settings/components/settings-layout/SettingsLayout.tsx","file:///app/packages/projects/lite/src/apps/settings/components/video-playback/default-video-quality-selector/default-video-quality-selector.scss","file:///app/packages/projects/lite/src/apps/settings/components/video-playback/default-video-quality-selector/DefaultVideoQualitySelector.tsx","file:///app/packages/projects/lite/src/apps/settings/components/video-playback/local-cache-quality-settings/LocalCacheQualitySettings.tsx","file:///app/packages/projects/lite/src/apps/settings/components/video-playback/playback-quality-settings/PlaybackQualitySettings.tsx","file:///app/packages/projects/lite/src/apps/settings/components/video-playback/subtitle-settings/SubtitleSettings.tsx","file:///app/packages/projects/lite/src/apps/settings/views/video-playback/partial-loading/partial-video-playback-settings.scss","file:///app/packages/projects/lite/src/apps/settings/views/video-playback/partial-loading/PartialVideoPlaybackSettings.tsx","file:///app/packages/projects/lite/src/apps/settings/views/video-playback/video-playback-settings.scss","file:///app/packages/projects/lite/src/apps/settings/views/video-playback/VideoPlaybackSettingsView.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Core } from 'libs/common/core';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { MediaQueryStrings } from 'libs/shared/enums/MediaQueries';\nimport { useMediaQuery } from 'libs/shared/hooks/UseMediaQuery';\nimport { PartialLoadingHelper } from 'libs/shared/utils/PartialLoadingHelper';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { SvgContainer, SvgContainerSize } from '../svg-container/SvgContainer';\n\nconst COLLAPSE_CHARACTER_COUNT = 56;\n\nexport interface Breadcrumb {\n name: string;\n appLink?: Core.AppLink;\n active?: boolean;\n}\n\ninterface BreadcrumbItemProps {\n breadcrumb: Breadcrumb;\n withBackIcon?: boolean;\n}\n\nexport const BreadcrumbItem = ({ 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 || 0;\n \n const [ collapse, setCollapse ] = React.useState(false);\n\n React.useEffect(() => {\n const characterLength = breadcrumbs?.reduce((prev, next) => prev + next.name.length, 0) ?? 0;\n\n if (length > 3 && characterLength > COLLAPSE_CHARACTER_COUNT)\n setCollapse(true);\n }, [breadcrumbs?.length]);\n\n if (!length || (isMobile && length < 2))\n return <></>;\n\n if (isMobile)\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n <BreadcrumbItem breadcrumb={breadcrumbs[length - 2]} withBackIcon />\n </ol>\n </nav>\n );\n\n const first = <BreadcrumbItem breadcrumb={breadcrumbs[0]} />;\n const secondLast = length > 2 ? <BreadcrumbItem breadcrumb={breadcrumbs[length - 2]} /> : <></>;\n const last = <BreadcrumbItem breadcrumb={breadcrumbs[length - 1]} />;\n const rest = breadcrumbs.slice(1, length - 2);\n\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n {first}\n {collapse ?\n <li className='breadcrumb-item'>\n <button className='btn-link' onClick={() => setCollapse(false)}>\n ...\n </button>\n </li> :\n rest.map((breadcrumb, idx) => <BreadcrumbItem key={idx} breadcrumb={breadcrumb} />)\n }\n {secondLast}\n {last}\n </ol>\n </nav>\n );\n};\n\nexport const PartialBreadcrumbs = React.memo(function({ numItems = 3 }: { numItems?: number; }) {\n const isMobile = useMediaQuery(MediaQueryStrings.XS);\n\n if (isMobile) {\n return (\n <div className='partial-loading-background' style={{ height: '1.3125rem', width: '6rem' }} />\n );\n }\n\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n {PartialLoadingHelper.getPartialLoadingItems({ numItems }).map(({ width }, idx) => (\n <li key={idx} className='breadcrumb-item'>\n <span className='d-inline-block partial-loading-background' style={{ width }} dangerouslySetInnerHTML={{ __html: ' ' }} />\n </li>\n ))}\n </ol>\n </nav>\n );\n});","import * as React from 'react';\nimport { ButtonProps } from 'react-bootstrap';\nimport { useFormikContext } from 'formik';\n\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { FormSize } from 'libs/shared/components/forms/form-field/FormField';\nimport { SpinnerButton } from 'libs/shared/components/spinner-button/SpinnerButton';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { useCanSubmitForm } from 'libs/shared/hooks/UseCanSubmitForm';\n\nconst namespace = 'shared.formButtons';\n\ninterface FormButtonsProps {\n isNew?: boolean;\n submitText?: string;\n variant?: ButtonProps['variant'];\n size?: FormSize;\n className?: string;\n}\n\nexport function FormButtons<Values extends HashObject>(props: FormButtonsProps): JSX.Element {\n const formikProps = useFormikContext<Values>();\n\n const canSubmit = useCanSubmitForm(formikProps);\n\n return (\n <SpinnerButton\n variant={props.variant || 'primary'}\n type='submit'\n disabled={!canSubmit}\n size={props.size}\n className={props.className ? props.className : ''}\n showSpinner={formikProps.isSubmitting}\n >\n {props.submitText\n ? <>{props.submitText}</>\n : <Text namespace={namespace} phrase={props.isNew ? 'create' : 'save'} />}\n </SpinnerButton>\n );\n}\n","import * as React from 'react';\nimport { Formik, FormikConfig, FormikContextType, FormikErrors, FormikHelpers, FormikProps, FormikValues, useFormikContext } from 'formik';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\n/**\n * Note: This currently doesn't support arrays, but the need for arrays as initial\n * form data has not yet come up\n */\nfunction omitNullInitialValues<Values extends FormikValues>(initialValues: Values): Values {\n if (!initialValues)\n return {} as Values;\n\n const values = ObjectHelper.deepClone(initialValues);\n\n function omitChildValues(child: Values): void {\n Object.keys(values).forEach((key: keyof Values) => {\n if (!values.hasOwnProperty(key))\n return;\n \n if (ObjectHelper.isObject(child[key]))\n omitChildValues(child[key]);\n else if (values[key] === null)\n delete values[key];\n });\n }\n\n omitChildValues(values);\n return values;\n}\n\n// Omit attributes from FormikConfig that are defined in FormWrapperProps.\ntype ModifiedFormikConfig<Values extends FormikValues> = Omit<FormikConfig<Values>, 'initialValues' | 'onSubmit'>;\n\ninterface InitialStatus {\n allowInitialSubmit: boolean;\n}\n\nexport type FormSubmissionOptions<FormValues = FormikValues> = {\n reset?: boolean;\n errors?: FormikErrors<FormValues>;\n};\n\ninterface FormWrapperProps<FormValues extends FormikValues, ApiValues extends FormikValues> {\n initialValues: Partial<FormValues | ApiValues>;\n onSubmit: (data: FormValues, onDone: (options?: FormSubmissionOptions<FormValues>) => void) => void;\n castInitialValues?: boolean; // cast to validationSchema\n castValuesOnSubmit?: boolean; // cast to validationSchema\n allowInitialSubmit?: boolean; // if true, useCanSubmitForm will allow submit without any user changes.\n}\n\nFormWrapper.defaultProps = {\n castInitialValues: true,\n castValuesOnSubmit: true\n};\n\nexport function FormWrapper<\n FormValues extends FormikValues = FormikValues,\n ApiValues extends FormikValues = FormValues,\n ExtraProps = HashObject\n>(props: ModifiedFormikConfig<FormValues> & ExtraProps & FormWrapperProps<FormValues, ApiValues>): JSX.Element {\n const { castInitialValues, castValuesOnSubmit, initialValues, onSubmit, ...formikProps } = props;\n\n /**\n * If castInitialValues is true, cast initialValues to the validationSchema.\n * This will ensure that any data fetched from the api conforms to the expected form data shape.\n */\n const formattedInitialValues: FormValues = castInitialValues && props.validationSchema\n ? props.validationSchema.cast(omitNullInitialValues(initialValues))\n : initialValues;\n\n const onSubmitHandler = (\n values: FormValues,\n { setSubmitting, resetForm, setFieldError }: FormikHelpers<FormValues>\n ) => {\n /**\n * validationSchema.cast will coerce the values to the types defined in validationSchema.\n * This is useful for trimming inputs:\n * e.g. if a value field has type Yup.string().trim(), it will be automatically trimmed.\n */\n const formattedData = castValuesOnSubmit && props.validationSchema\n ? props.validationSchema.cast(values)\n : values;\n\n onSubmit(formattedData, (options: FormSubmissionOptions<FormValues> = {}) => {\n options.reset && resetForm();\n\n if (options.errors) {\n for (const [ key, value ] of Object.entries(options.errors)) {\n setFieldError(key, value);\n }\n }\n\n setSubmitting(false);\n });\n };\n\n const initialStatus: InitialStatus = {\n allowInitialSubmit: props.allowInitialSubmit\n };\n\n return (\n <Formik<FormValues, ExtraProps>\n enableReinitialize\n {...(formikProps as ModifiedFormikConfig<FormValues> & ExtraProps)}\n initialValues={formattedInitialValues}\n onSubmit={onSubmitHandler}\n initialStatus={initialStatus}\n >\n {FunctionHelper.isFunction(props.children)\n ? (f: FormikProps<FormValues>) => (props.children as (f: FormikProps<FormValues>) => React.ReactNode)(f)\n : React.Children.count(props.children) ? props.children : null\n }\n </Formik>\n );\n}\n\nexport function useFormikContextWrapper<T>(): FormikContextType<T> {\n return useFormikContext<T>();\n}","const DEFAULT_PARTIAL_LOADING_OPTIONS: PartialLoadingOptions = {\n numItems: 5,\n minWidth: 50, // px\n maxWidth: 100 // px\n};\n\nexport interface PartialLoadingOptions {\n numItems?: number;\n minWidth?: number;\n maxWidth?: number;\n}\n\ninterface PartialLoadingItem {\n width: string;\n}\n\nexport const PartialLoadingHelper = {\n getPartialLoadingItems(options: PartialLoadingOptions = {}): PartialLoadingItem[] {\n const opts = {\n ...DEFAULT_PARTIAL_LOADING_OPTIONS,\n ...options\n };\n\n const getRandomFilterWidth = () => Math.max(Math.floor(Math.random() * opts.maxWidth), opts.minWidth);\n\n return [...Array(opts.numItems)].map(() => ({ width: `${getRandomFilterWidth()}px` }));\n }\n};","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { Breadcrumbs } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nimport { useGetSettingsGroups } from 'apps/settings/hooks/useGetSettingsGroups';\n\nconst namespace = 'settings.settingsLayout';\n\n/**\n * Checks if the current user has permission to access the settings module\n */\nexport const useCanAccessSettings = (requiredPermissions: PermissionName | PermissionName[]): boolean => {\n const { hasPermissions } = usePermissions();\n const settingsGroups = useGetSettingsGroups();\n\n /**\n * TODO: Update all settings pages to pasas required permissions, because checking the \n * `useGetSettingsGroups()` values clearly doesnt work for settings pages with multiple\n * applinks inside of them. - Sha\n */\n if (requiredPermissions)\n return hasPermissions(requiredPermissions);\n\n const currentRoute = Core.AppLinkHelper.getCurrentAppLink();\n\n /**\n * Allows us to have popups sitting in other locations be used\n * by our settings pages. For example the manage video access popup\n * in the \"videos with restricted access\" page - Sha\n */\n if (currentRoute.application !== AppChannels.SETTINGS)\n return true;\n\n return settingsGroups.some(group => {\n return group.modules.some(settingsModule => {\n if ('appLink' in settingsModule) {\n return settingsModule.appLink.action === currentRoute.action;\n }\n\n return false;\n });\n });\n};\n\ninterface SettingsLayoutProps {\n heading: string;\n breadcrumbs: string[];\n description?: string;\n requiredPermissions?: PermissionName | PermissionName[];\n headingButton?: () => JSX.Element;\n}\n\nexport function SettingsLayout(props: React.PropsWithChildren<SettingsLayoutProps>): JSX.Element {\n const canAccess = useCanAccessSettings(props.requiredPermissions);\n\n React.useEffect(() => {\n if (!canAccess) {\n Core.AppLinkHelper.trigger({\n application: AppChannels.SETTINGS,\n action: Actions.Settings.HOME\n }, { replace: true });\n }\n }, [canAccess]);\n\n if (!canAccess)\n return <></>;\n\n const breadcrumbs = props.breadcrumbs.map((name, i) => ({\n name,\n appLink: {\n application: AppChannels.SETTINGS,\n action: Actions.Settings.HOME\n },\n active: i === props.breadcrumbs.length - 1\n }));\n\n return (\n <div className='px-3'>\n <div className='d-flex align-items-center justify-content-between'>\n <h1 className='h2'>{props.heading}</h1>\n {props.headingButton?.()}\n </div>\n <div className='pb-3'>\n <Breadcrumbs\n breadcrumbs={[\n {\n name: LanguageService.getPhrase(namespace, 'settingsBreadcrumb'),\n appLink: {\n application: AppChannels.SETTINGS,\n action: Actions.Settings.HOME\n }\n },\n ...breadcrumbs\n ]}\n />\n </div>\n {props.description &&\n <>\n <p>{props.description}</p>\n <hr />\n </>\n }\n\n {props.children}\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"radioButton\":\"JKFf9\",\"description\":\"aVBqv\"};","import React from 'react';\nimport { Form } from 'react-bootstrap';\n\nimport { DefaultPlaybackQuality } from 'libs/shared/interfaces';\n\nimport styles from './default-video-quality-selector.scss';\n\ninterface VideoQualityOptionProps {\n id: string;\n name: string;\n description: string;\n selected: boolean;\n value: DefaultPlaybackQuality;\n onSelect: (quality: DefaultPlaybackQuality) => void;\n}\n\nexport function VideoQualityOption(props: VideoQualityOptionProps): JSX.Element {\n return (\n <div>\n <Form.Check\n type='radio'\n id={props.id}\n label={props.name}\n value={props.value}\n onChange={() => props.onSelect(props.value)}\n checked={props.selected}\n className={styles.radioButton}\n />\n <p className={styles.description}>{props.description}</p>\n </div>\n );\n}","import React from 'react';\nimport { Form, useFormikContext } from 'formik';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { FormButtons } from 'libs/shared/components/forms/form-buttons/FormButtons';\nimport { FormWrapper } from 'libs/shared/components/forms/form-wrapper/FormWrapper';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { DefaultPlaybackQuality } from 'libs/shared/interfaces';\n\nimport { VideoQualityOption } from 'apps/settings/components/video-playback/default-video-quality-selector/DefaultVideoQualitySelector';\n\ninterface QualityModel {\n quality: DefaultPlaybackQuality;\n}\n\nconst namespace = 'settings.localCacheQualitySettings';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nfunction LocalCacheQualityForm(): JSX.Element {\n const formikProps = useFormikContext<QualityModel>();\n\n function onSelectValue(value: DefaultPlaybackQuality): void {\n formikProps.setFieldValue('quality', value);\n }\n\n return (\n <Form>\n <VideoQualityOption\n id='local-cache-480'\n name={getPhrase('lowName')}\n description={getPhrase('lowDescription')}\n value={480}\n selected={formikProps.values.quality === 480}\n onSelect={onSelectValue}\n />\n <VideoQualityOption\n id='local-cache-720'\n name={getPhrase('standardName')}\n description={getPhrase('standardDescription')}\n value={720}\n selected={formikProps.values.quality === 720}\n onSelect={onSelectValue}\n />\n <VideoQualityOption\n id='local-cache-1080'\n name={getPhrase('highName')}\n description={getPhrase('highDescription')}\n value={1080}\n selected={formikProps.values.quality === 1080}\n onSelect={onSelectValue}\n />\n\n <FormButtons\n isNew={false}\n variant='outline-dark'\n />\n </Form>\n );\n}\n\ninterface LocalCacheQualitySettingsProps {\n initialValue: DefaultPlaybackQuality;\n onSubmit: (data: QualityModel, onDone: () => void) => void;\n}\n\nexport function LocalCacheQualitySettings(props: LocalCacheQualitySettingsProps): JSX.Element {\n return (\n <>\n <h2 className='h4'><Text namespace={namespace} phrase='heading' /></h2>\n <p><Text namespace={namespace} phrase='description' /></p>\n\n <FormWrapper<QualityModel>\n initialValues={{ quality: props.initialValue }}\n onSubmit={props.onSubmit}\n >\n <LocalCacheQualityForm />\n </FormWrapper>\n </>\n );\n}","import React from 'react';\nimport { Form, useFormikContext } from 'formik';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { FormButtons } from 'libs/shared/components/forms/form-buttons/FormButtons';\nimport { FormWrapper } from 'libs/shared/components/forms/form-wrapper/FormWrapper';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { DefaultPlaybackQuality } from 'libs/shared/interfaces';\n\nimport { VideoQualityOption } from 'apps/settings/components/video-playback/default-video-quality-selector/DefaultVideoQualitySelector';\n\ninterface QualityModel {\n quality: DefaultPlaybackQuality;\n}\n\nconst namespace = 'settings.playbackQualitySettings';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nfunction PlaybackQualityForm(): JSX.Element {\n const formikProps = useFormikContext<QualityModel>();\n\n function onSelectValue(value: DefaultPlaybackQuality): void {\n formikProps.setFieldValue('quality', value);\n }\n\n return (\n <Form>\n <VideoQualityOption\n id='playback-480'\n name={getPhrase('lowName')}\n description={getPhrase('lowDescription')}\n value={480}\n selected={formikProps.values.quality === 480}\n onSelect={onSelectValue}\n />\n <VideoQualityOption\n id='playback-720'\n name={getPhrase('standardName')}\n description={getPhrase('standardDescription')}\n value={720}\n selected={formikProps.values.quality === 720}\n onSelect={onSelectValue}\n />\n <VideoQualityOption\n id='playback-1080'\n name={getPhrase('highName')}\n description={getPhrase('highDescription')}\n value={1080}\n selected={formikProps.values.quality === 1080}\n onSelect={onSelectValue}\n />\n\n <FormButtons<QualityModel>\n isNew={false}\n variant='outline-dark'\n />\n </Form>\n );\n}\n\ninterface PlaybackQualitySettingsProps {\n initialValue: DefaultPlaybackQuality;\n onSubmit: (data: QualityModel, onDone: () => void) => void;\n}\n\nexport function PlaybackQualitySettings(props: PlaybackQualitySettingsProps): JSX.Element {\n return (\n <>\n <h2 className='h4'><Text namespace={namespace} phrase='heading' /></h2>\n <p><Text namespace={namespace} phrase='description' /></p>\n\n <FormWrapper<QualityModel>\n initialValues={{ quality: props.initialValue }}\n onSubmit={props.onSubmit}\n >\n <PlaybackQualityForm />\n </FormWrapper>\n </>\n );\n}","import React from 'react';\n\nimport { Text } from 'libs/shared/components/text/Text';\nimport { ToggleSwitch } from 'libs/shared/components/toggle-switch/ToggleSwitch';\n\nconst namespace = 'settings.subtitleSettings';\n\ninterface SubtitleSettingsProps {\n initialValue: boolean;\n onChange: (value: boolean) => void;\n}\n\nexport function SubtitleSettings(props: SubtitleSettingsProps): JSX.Element {\n const [ enabled, setEnabled ] = React.useState(props.initialValue);\n\n function onChange(): void {\n const newValue = !enabled;\n\n props.onChange(newValue);\n setEnabled(newValue);\n }\n \n return (\n <>\n <h2 className='h4'><Text namespace={namespace} phrase='heading' /></h2>\n <div className='d-flex'>\n <p className='fw-semibold me-3'>\n <Text namespace={namespace} phrase='alwaysShowCaptions' />\n </p>\n <ToggleSwitch on={enabled} onClick={onChange} />\n </div>\n </>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"partialHeading\":\"p1Wlx\",\"partialDescription\":\"BUF8M\",\"partialQualityOption\":\"vKxI0\",\"partialLabel\":\"ZPM9b\",\"partialSaveButton\":\"bS4wu\",\"partialToggle\":\"mVsyW\"};","import React from 'react';\n\nimport styles from './partial-video-playback-settings.scss';\n\nfunction PartialQualityOption(): JSX.Element {\n return (\n <div className={styles.partialQualityOption}>\n <div className={`${styles.partialLabel} mb-1 partial-loading-background`} />\n <div className={`${styles.partialDescription} partial-loading-background`} />\n </div>\n );\n}\n\nexport function PartialVideoPlaybackSettings(): JSX.Element {\n return (\n <>\n <div className={`${styles.partialHeading} mb-2 partial-loading-background`} />\n <div className={`${styles.partialDescription} partial-loading-background`} />\n\n <PartialQualityOption />\n <PartialQualityOption />\n <PartialQualityOption />\n\n <div className={`${styles.partialSaveButton} partial-loading-background`} />\n \n <hr className='my-4' />\n\n <div className={`${styles.partialHeading} mb-2 partial-loading-background`} />\n <div className={`${styles.partialDescription} partial-loading-background`} />\n\n <PartialQualityOption />\n <PartialQualityOption />\n <PartialQualityOption />\n \n <div className={`${styles.partialSaveButton} partial-loading-background`} />\n\n <hr className='my-4' />\n\n <div className={`${styles.partialHeading} mb-2 partial-loading-background`} />\n <div className={`${styles.partialToggle} partial-loading-background`} />\n </>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"oqAZz\"};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { SettingKind } from 'libs/shared/enums/SettingKind';\nimport { SettingName } from 'libs/shared/enums/SettingName';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { CurrentUser } from 'libs/shared/interfaces';\n\nimport { SettingsLayout } from 'apps/settings/components/settings-layout/SettingsLayout';\nimport { LocalCacheQualitySettings } from 'apps/settings/components/video-playback/local-cache-quality-settings/LocalCacheQualitySettings';\nimport { PlaybackQualitySettings } from 'apps/settings/components/video-playback/playback-quality-settings/PlaybackQualitySettings';\nimport { SubtitleSettings } from 'apps/settings/components/video-playback/subtitle-settings/SubtitleSettings';\n\nimport { PartialVideoPlaybackSettings } from './partial-loading/PartialVideoPlaybackSettings';\n\nimport styles from './video-playback-settings.scss';\n\nconst namespace = 'settings.videoPlayback';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function VideoPlaybackSettingsView(): JSX.Element {\n const alerts = useAlerts();\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n\n const {\n defaultPlaybackQuality,\n defaultLocalCachePlaybackQuality,\n enableSubtitlesDefault,\n isLoadingSettings,\n updateSetting\n } = useSettings(LocationContext.Settings);\n\n function onSavePlaybackQuality({ quality }: HashObject, onDone: () => void): void {\n if (quality === defaultPlaybackQuality)\n return;\n\n const newSetting = {\n name: SettingName.DefaultPlaybackQuality,\n value: quality,\n kind: SettingKind.Permanent\n };\n\n updateSetting(\n currentUser.data.customerId,\n newSetting,\n () => alerts.success(getPhrase('playbackSuccess')),\n () => alerts.error(getPhrase('playbackError')),\n onDone\n );\n }\n\n function onSaveLocalCacheQuality({ quality }: HashObject, onDone: () => void): void {\n if (quality === defaultLocalCachePlaybackQuality)\n return;\n\n const newSetting = {\n name: SettingName.DefaultLocalCachePlaybackQuality,\n value: quality,\n kind: SettingKind.Permanent\n };\n\n updateSetting(\n currentUser.data.customerId,\n newSetting,\n () => alerts.success(getPhrase('lcSuccess')),\n () => alerts.error(getPhrase('lcError')),\n onDone\n );\n }\n\n function onSaveDefaultSubtitleState(value: boolean): void {\n const newSetting = {\n name: SettingName.EnableSubtitlesDefault,\n value,\n kind: SettingKind.Permanent\n };\n\n updateSetting(\n currentUser.data.customerId,\n newSetting,\n () => alerts.success(getPhrase(value ? 'subtitleEnableSuccess' : 'subtitleDisableSuccess')),\n () => alerts.error(getPhrase('subtitleError'))\n );\n }\n\n return (\n <SettingsLayout\n heading={getPhrase('heading')}\n breadcrumbs={[getPhrase('breadcrumb')]}\n >\n {!isLoadingSettings\n ? (\n <div className={styles.container}>\n <PlaybackQualitySettings\n initialValue={defaultPlaybackQuality}\n onSubmit={onSavePlaybackQuality}\n />\n\n <hr className='my-4' />\n\n <LocalCacheQualitySettings\n initialValue={defaultLocalCachePlaybackQuality}\n onSubmit={onSaveLocalCacheQuality}\n />\n\n <hr className='my-4' />\n\n <SubtitleSettings\n initialValue={enableSubtitlesDefault}\n onChange={onSaveDefaultSubtitleState}\n />\n </div>\n ) : (\n <PartialVideoPlaybackSettings />\n )\n }\n </SettingsLayout>\n );\n}"],"names":["BreadcrumbItem","breadcrumb","name","appLink","active","withBackIcon","className","svgName","size","S","Breadcrumbs","breadcrumbs","isMobile","length","collapse","setCollapse","characterLength","reduce","prev","next","first","secondLast","last","rest","slice","onClick","map","idx","key","PartialBreadcrumbs","numItems","style","height","width","dangerouslySetInnerHTML","__html","namespace","FormButtons","props","formikProps","canSubmit","variant","type","disabled","showSpinner","isSubmitting","submitText","phrase","isNew","FormWrapper","castInitialValues","castValuesOnSubmit","initialValues","onSubmit","formattedInitialValues","validationSchema","cast","values","omitChildValues","child","Object","keys","forEach","hasOwnProperty","omitNullInitialValues","initialStatus","allowInitialSubmit","enableReinitialize","setSubmitting","resetForm","setFieldError","formattedData","options","reset","errors","entries","value","children","f","useFormikContextWrapper","defaultProps","DEFAULT_PARTIAL_LOADING_OPTIONS","minWidth","maxWidth","PartialLoadingHelper","getPartialLoadingItems","opts","Array","Math","max","floor","random","useCanAccessSettings","requiredPermissions","hasPermissions","settingsGroups","currentRoute","application","some","group","modules","settingsModule","action","SettingsLayout","canAccess","replace","i","heading","headingButton","description","VideoQualityOption","Form","id","label","onChange","onSelect","checked","selected","getPhrase","LanguageService","LocalCacheQualityForm","onSelectValue","setFieldValue","quality","LocalCacheQualitySettings","Text","initialValue","PlaybackQualityForm","PlaybackQualitySettings","SubtitleSettings","enabled","setEnabled","ToggleSwitch","on","newValue","PartialQualityOption","PartialVideoPlaybackSettings","VideoPlaybackSettingsView","alerts","currentUser","UserRequests","useSettings","defaultPlaybackQuality","defaultLocalCachePlaybackQuality","enableSubtitlesDefault","isLoadingSettings","updateSetting","onDone","newSetting","SettingName","kind","SettingKind","data","customerId","success","error"],"sourceRoot":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[5877],{49935:(e,t,n)=>{n.d(t,{Oo:()=>d,b2:()=>f});var r=n(32735),a=n(36848),i=n(86764),u=n(3747),l=n(5859),c=n(35223),s=n(83914);function o(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var m=function(e){var t=e.breadcrumb,n=t.name,i=t.appLink,u=t.active,l=e.withBackIcon;return r.createElement("li",{className:"breadcrumb-item".concat(u?" active":"")},u?r.createElement("strong",null,n):r.createElement(a.F,{appLink:i},l&&r.createElement(s.x,{svgName:c.vn.ChevronLeft,size:s.S.Small}),r.createElement("span",{className:l?"ms-2":""},n)))},d=function(e){var t,n,a=e.breadcrumbs,l=(0,u.a)(i.r.XS),c=(null==a?void 0:a.length)||0,s=(t=r.useState(!1),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i,u,l=[],c=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=i.call(n)).done)&&(l.push(r.value),l.length!==t);c=!0);}catch(e){s=!0,a=e}finally{try{if(!c&&null!=n.return&&(u=n.return(),Object(u)!==u))return}finally{if(s)throw a}}return l}}(t,n)||function(e,t){if(e){if("string"==typeof e)return o(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?o(e,t):void 0}}(t,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),d=s[0],f=s[1];if(r.useEffect((function(){var e,t=null!==(e=null==a?void 0:a.reduce((function(e,t){return e+t.name.length}),0))&&void 0!==e?e:0;c>3&&t>56&&f(!0)}),[null==a?void 0:a.length]),!c||l&&c<2)return r.createElement(r.Fragment,null);if(l)return r.createElement("nav",{"aria-label":"breadcrumb"},r.createElement("ol",{className:"breadcrumb m-0 p-0"},r.createElement(m,{breadcrumb:a[c-2],withBackIcon:!0})));var g=r.createElement(m,{breadcrumb:a[0]}),h=c>2?r.createElement(m,{breadcrumb:a[c-2]}):r.createElement(r.Fragment,null),b=r.createElement(m,{breadcrumb:a[c-1]}),y=a.slice(1,c-2);return r.createElement("nav",{"aria-label":"breadcrumb"},r.createElement("ol",{className:"breadcrumb m-0 p-0"},g,d?r.createElement("li",{className:"breadcrumb-item"},r.createElement("button",{className:"btn-link",onClick:function(){return f(!1)}},"...")):y.map((function(e,t){return r.createElement(m,{key:t,breadcrumb:e})})),h,b))},f=r.memo((function(e){var t=e.numItems,n=void 0===t?3:t;return(0,u.a)(i.r.XS)?r.createElement("div",{className:"partial-loading-background",style:{height:"1.3125rem",width:"6rem"}}):r.createElement("nav",{"aria-label":"breadcrumb"},r.createElement("ol",{className:"breadcrumb m-0 p-0"},l.u.getPartialLoadingItems({numItems:n}).map((function(e,t){var n=e.width;return r.createElement("li",{key:t,className:"breadcrumb-item"},r.createElement("span",{className:"d-inline-block partial-loading-background",style:{width:n},dangerouslySetInnerHTML:{__html:" "}}))}))))}))},82644:(e,t,n)=>{n.d(t,{b:()=>o,n:()=>s});var r=n(32735),a=n(92802),i=n(91967),u=n(1048);function l(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var c=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]])}return n};function s(e){var t=e.castInitialValues,n=e.castValuesOnSubmit,s=e.initialValues,o=e.onSubmit,m=c(e,["castInitialValues","castValuesOnSubmit","initialValues","onSubmit"]),d=t&&e.validationSchema?e.validationSchema.cast(function(e){if(!e)return{};var t=u.t.deepClone(e);return function e(n){Object.keys(t).forEach((function(r){t.hasOwnProperty(r)&&(u.t.isObject(n[r])?e(n[r]):null===t[r]&&delete t[r])}))}(t),t}(s)):s,f={allowInitialSubmit:e.allowInitialSubmit};return r.createElement(a.J9,Object.assign({enableReinitialize:!0},m,{initialValues:d,onSubmit:function(t,r){var a=r.setSubmitting,i=r.resetForm,u=r.setFieldError,c=n&&e.validationSchema?e.validationSchema.cast(t):t;o(c,(function(){var e,t,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(n.reset&&i(),n.errors)for(var r=0,c=Object.entries(n.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 n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i,u,l=[],c=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=i.call(n)).done)&&(l.push(r.value),l.length!==t);c=!0);}catch(e){s=!0,a=e}finally{try{if(!c&&null!=n.return&&(u=n.return(),Object(u)!==u))return}finally{if(s)throw a}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return l(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?l(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),o=s[0],m=s[1];u(o,m)}a(!1)}))},initialStatus:f}),i.q.isFunction(e.children)?function(t){return e.children(t)}:r.Children.count(e.children)?e.children:null)}function o(){return(0,a.u6)()}s.defaultProps={castInitialValues:!0,castValuesOnSubmit:!0}},5859:(e,t,n)=>{function r(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}n.d(t,{u:()=>i});var a={numItems:5,minWidth:50,maxWidth:100},i={getPartialLoadingItems:function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=Object.assign(Object.assign({},a),t);return(e=Array(n.numItems),function(e){if(Array.isArray(e))return r(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return r(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?r(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()).map((function(){return{width:"".concat(Math.max(Math.floor(Math.random()*n.maxWidth),n.minWidth),"px")}}))}}},81803:(e,t,n)=>{n.d(t,{d:()=>g});var r=n(32735),a=n(81886),i=n(23481),u=n(49935),l=n(22902),c=n(14070),s=n(97291),o=n(96368);function m(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var d="settings.settingsLayout",f=function(e){var t=(0,l.T)().hasPermissions,n=(0,o.e)();if(e)return t(e);var r=a.Q.C$.getCurrentAppLink();return r.application!==s.O.SETTINGS||n.some((function(e){return e.modules.some((function(e){return"appLink"in e&&e.appLink.action===r.action}))}))};function g(e){var t,n=f(e.requiredPermissions);if(r.useEffect((function(){n||a.Q.C$.trigger({application:s.O.SETTINGS,action:c.e.Settings.HOME},{replace:!0})}),[n]),!n)return r.createElement(r.Fragment,null);var l,o=e.breadcrumbs.map((function(t,n){return{name:t,appLink:{application:s.O.SETTINGS,action:c.e.Settings.HOME},active:n===e.breadcrumbs.length-1}}));return r.createElement("div",{className:"px-3"},r.createElement("div",{className:"d-flex align-items-center justify-content-between"},r.createElement("h1",{className:"h2"},e.heading),null===(t=e.headingButton)||void 0===t?void 0:t.call(e)),r.createElement("div",{className:"pb-3"},r.createElement(u.Oo,{breadcrumbs:[{name:i.T.getPhrase(d,"settingsBreadcrumb"),appLink:{application:s.O.SETTINGS,action:c.e.Settings.HOME}}].concat((l=o,function(e){if(Array.isArray(e))return m(e)}(l)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(l)||function(e,t){if(e){if("string"==typeof e)return m(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?m(e,t):void 0}}(l)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()))})),e.description&&r.createElement(r.Fragment,null,r.createElement("p",null,e.description),r.createElement("hr",null)),e.children)}},706:(e,t,n)=>{n.d(t,{F:()=>a});var r=n(99940),a={getCustomerSecuritySettings:function(e,t,n){return{url:"{gateway}/v1/customers/".concat(e,"/settings/security"),key:"customers:security:settings",normalize:!1,success:t,error:n}},setCustomerSecuritySettings:function(e,t,n,a){return{url:"{gateway}/v1/customers/".concat(e,"/settings/security"),key:"update:security:settings",invalidationKeys:"customers:security:settings",type:r.k.PUT,normalize:!1,data:t,success:n,error:a}}}},55877:(e,t,n)=>{n.r(t),n.d(t,{SecuritySettingsView:()=>T});var r=n(32735),a=n(70680),i=n(23481),u=n(20354),l=n(39739),c=n(82644),s=n(76881),o=n(86613),m=n(31949),d=n(69883),f=n(92802),g=n(2102),h=n(33936),b=[5,6,7,8,9,10,11,12];function y(e){function t(t){var n="btn border";return t===e.currentValue?n+=" btn-dark":n+=" btn-outline-dark",t<e.minLength&&(n+=" disabled"),n}return r.createElement("div",{className:"pb-2"},r.createElement("h3",{className:"h6"},e.headingText),r.createElement("div",{className:"btn-group mb-1"},b.map((function(n){return r.createElement("button",{key:n,className:t(n),onClick:function(t){return function(t,n){t.preventDefault(),n<e.minLength||e.setMinimumPasswordLength(n)}(t,n)},type:"button"},n)}))),r.createElement("p",{dangerouslySetInnerHTML:{__html:e.minPasswordLengthText}}))}var p=i.T.encloseNamespace("settings.passwordSecuritySettings"),v=5,S=8,E=8;function L(){var e=(0,f.u6)(),t=(0,h.l)(e);return r.createElement(f.l0,null,r.createElement("h2",{className:"h4"},p("heading")),r.createElement(y,{currentValue:e.values.minStudentLength,headingText:p("studentSubheading"),minLength:v,minPasswordLengthText:p("minimumStudentLength",{length:e.values.minStudentLength}),setMinimumPasswordLength:function(t){return e.setFieldValue("minStudentLength",t)}}),r.createElement(y,{currentValue:e.values.minStaffLength,headingText:p("staffSubheading"),minLength:S,minPasswordLengthText:p("minimumStaffLength",{length:e.values.minStaffLength}),setMinimumPasswordLength:function(t){return e.setFieldValue("minStaffLength",t)}}),r.createElement(y,{currentValue:e.values.minAdminLength,headingText:p("adminSubheading"),minLength:E,minPasswordLengthText:p("minimumAdminLength",{length:e.values.minAdminLength}),setMinimumPasswordLength:function(t){return e.setFieldValue("minAdminLength",t)}}),r.createElement("div",{className:"d-flex"},r.createElement(g.m,{type:"submit",variant:"dark",disabled:!t,showSpinner:e.isSubmitting},p("saveChanges"))))}var w=n(81803),A=n(706),O=n(5173),I=(0,O.Ry)().shape({minStudentLength:(0,O.Rx)().required(),minStaffLength:(0,O.Rx)().required(),minAdminLength:(0,O.Rx)().required()}).noUnknown(),k=i.T.encloseNamespace("settings.securitySettings");function T(){var e=(0,a.I0)(),t=(0,d.Z)(),n=u.a.useBasicFetch(m.N.currentUser()),i=u.a.useBasicFetch(n.data&&A.F.getCustomerSecuritySettings(n.data.customerId)),f=l.P.getMinimumPasswordLength,g=f(i.data,s.Y.Learner,o.i.User),h=f(i.data,s.Y.Staff,o.i.User),b=f(i.data,s.Y.Staff,o.i.Admin);return n.data&&i.data?r.createElement(w.d,{heading:k("heading"),breadcrumbs:[k("breadcrumb")]},r.createElement(c.n,{initialValues:{minStudentLength:g,minStaffLength:h,minAdminLength:b},validationSchema:I,onSubmit:function(r,a){var i={securitySettings:[]};g!==r.minStudentLength&&i.securitySettings.push({userType:s.Y.Learner,userRole:o.i.User,minPasswordLength:r.minStudentLength}),h!==r.minStaffLength&&i.securitySettings.push({userType:s.Y.Staff,userRole:o.i.User,minPasswordLength:r.minStaffLength}),b!==r.minAdminLength&&i.securitySettings.push({userType:s.Y.Staff,userRole:o.i.Admin,minPasswordLength:r.minAdminLength}),u.a.fetch(e,A.F.setCustomerSecuritySettings(n.data.customerId,i,(function(){t.success(k("success"))}),(function(){t.error(k("error")),a({reset:!0})})))}},r.createElement(L,null))):r.createElement(r.Fragment,null)}}}]);
|
|
2
|
+
//# sourceMappingURL=5877-e75dcce0ef-lite.chunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scripts/5877-e75dcce0ef-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/components/breadcrumbs/Breadcrumbs.tsx","file:///app/packages/libs/shared/src/components/forms/form-wrapper/FormWrapper.tsx","file:///app/packages/libs/shared/src/utils/PartialLoadingHelper.ts","file:///app/packages/projects/lite/src/apps/settings/components/settings-layout/SettingsLayout.tsx","file:///app/packages/projects/lite/src/apps/settings/flight-request/SecuritySettingsRequests.ts","file:///app/packages/projects/lite/src/apps/settings/components/edit-password-length/EditPasswordLength.tsx","file:///app/packages/projects/lite/src/apps/settings/components/password-security-settings/PasswordSecuritySettingsForm.tsx","file:///app/packages/projects/lite/src/apps/settings/utils/validation/EditPasswordSecuritySettingsValidationSchema.ts","file:///app/packages/projects/lite/src/apps/settings/views/security-settings/SecuritySettingsView.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Core } from 'libs/common/core';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { MediaQueryStrings } from 'libs/shared/enums/MediaQueries';\nimport { useMediaQuery } from 'libs/shared/hooks/UseMediaQuery';\nimport { PartialLoadingHelper } from 'libs/shared/utils/PartialLoadingHelper';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { SvgContainer, SvgContainerSize } from '../svg-container/SvgContainer';\n\nconst COLLAPSE_CHARACTER_COUNT = 56;\n\nexport interface Breadcrumb {\n name: string;\n appLink?: Core.AppLink;\n active?: boolean;\n}\n\ninterface BreadcrumbItemProps {\n breadcrumb: Breadcrumb;\n withBackIcon?: boolean;\n}\n\nexport const BreadcrumbItem = ({ 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 || 0;\n \n const [ collapse, setCollapse ] = React.useState(false);\n\n React.useEffect(() => {\n const characterLength = breadcrumbs?.reduce((prev, next) => prev + next.name.length, 0) ?? 0;\n\n if (length > 3 && characterLength > COLLAPSE_CHARACTER_COUNT)\n setCollapse(true);\n }, [breadcrumbs?.length]);\n\n if (!length || (isMobile && length < 2))\n return <></>;\n\n if (isMobile)\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n <BreadcrumbItem breadcrumb={breadcrumbs[length - 2]} withBackIcon />\n </ol>\n </nav>\n );\n\n const first = <BreadcrumbItem breadcrumb={breadcrumbs[0]} />;\n const secondLast = length > 2 ? <BreadcrumbItem breadcrumb={breadcrumbs[length - 2]} /> : <></>;\n const last = <BreadcrumbItem breadcrumb={breadcrumbs[length - 1]} />;\n const rest = breadcrumbs.slice(1, length - 2);\n\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n {first}\n {collapse ?\n <li className='breadcrumb-item'>\n <button className='btn-link' onClick={() => setCollapse(false)}>\n ...\n </button>\n </li> :\n rest.map((breadcrumb, idx) => <BreadcrumbItem key={idx} breadcrumb={breadcrumb} />)\n }\n {secondLast}\n {last}\n </ol>\n </nav>\n );\n};\n\nexport const PartialBreadcrumbs = React.memo(function({ numItems = 3 }: { numItems?: number; }) {\n const isMobile = useMediaQuery(MediaQueryStrings.XS);\n\n if (isMobile) {\n return (\n <div className='partial-loading-background' style={{ height: '1.3125rem', width: '6rem' }} />\n );\n }\n\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n {PartialLoadingHelper.getPartialLoadingItems({ numItems }).map(({ width }, idx) => (\n <li key={idx} className='breadcrumb-item'>\n <span className='d-inline-block partial-loading-background' style={{ width }} dangerouslySetInnerHTML={{ __html: ' ' }} />\n </li>\n ))}\n </ol>\n </nav>\n );\n});","import * as React from 'react';\nimport { Formik, FormikConfig, FormikContextType, FormikErrors, FormikHelpers, FormikProps, FormikValues, useFormikContext } from 'formik';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\n/**\n * Note: This currently doesn't support arrays, but the need for arrays as initial\n * form data has not yet come up\n */\nfunction omitNullInitialValues<Values extends FormikValues>(initialValues: Values): Values {\n if (!initialValues)\n return {} as Values;\n\n const values = ObjectHelper.deepClone(initialValues);\n\n function omitChildValues(child: Values): void {\n Object.keys(values).forEach((key: keyof Values) => {\n if (!values.hasOwnProperty(key))\n return;\n \n if (ObjectHelper.isObject(child[key]))\n omitChildValues(child[key]);\n else if (values[key] === null)\n delete values[key];\n });\n }\n\n omitChildValues(values);\n return values;\n}\n\n// Omit attributes from FormikConfig that are defined in FormWrapperProps.\ntype ModifiedFormikConfig<Values extends FormikValues> = Omit<FormikConfig<Values>, 'initialValues' | 'onSubmit'>;\n\ninterface InitialStatus {\n allowInitialSubmit: boolean;\n}\n\nexport type FormSubmissionOptions<FormValues = FormikValues> = {\n reset?: boolean;\n errors?: FormikErrors<FormValues>;\n};\n\ninterface FormWrapperProps<FormValues extends FormikValues, ApiValues extends FormikValues> {\n initialValues: Partial<FormValues | ApiValues>;\n onSubmit: (data: FormValues, onDone: (options?: FormSubmissionOptions<FormValues>) => void) => void;\n castInitialValues?: boolean; // cast to validationSchema\n castValuesOnSubmit?: boolean; // cast to validationSchema\n allowInitialSubmit?: boolean; // if true, useCanSubmitForm will allow submit without any user changes.\n}\n\nFormWrapper.defaultProps = {\n castInitialValues: true,\n castValuesOnSubmit: true\n};\n\nexport function FormWrapper<\n FormValues extends FormikValues = FormikValues,\n ApiValues extends FormikValues = FormValues,\n ExtraProps = HashObject\n>(props: ModifiedFormikConfig<FormValues> & ExtraProps & FormWrapperProps<FormValues, ApiValues>): JSX.Element {\n const { castInitialValues, castValuesOnSubmit, initialValues, onSubmit, ...formikProps } = props;\n\n /**\n * If castInitialValues is true, cast initialValues to the validationSchema.\n * This will ensure that any data fetched from the api conforms to the expected form data shape.\n */\n const formattedInitialValues: FormValues = castInitialValues && props.validationSchema\n ? props.validationSchema.cast(omitNullInitialValues(initialValues))\n : initialValues;\n\n const onSubmitHandler = (\n values: FormValues,\n { setSubmitting, resetForm, setFieldError }: FormikHelpers<FormValues>\n ) => {\n /**\n * validationSchema.cast will coerce the values to the types defined in validationSchema.\n * This is useful for trimming inputs:\n * e.g. if a value field has type Yup.string().trim(), it will be automatically trimmed.\n */\n const formattedData = castValuesOnSubmit && props.validationSchema\n ? props.validationSchema.cast(values)\n : values;\n\n onSubmit(formattedData, (options: FormSubmissionOptions<FormValues> = {}) => {\n options.reset && resetForm();\n\n if (options.errors) {\n for (const [ key, value ] of Object.entries(options.errors)) {\n setFieldError(key, value);\n }\n }\n\n setSubmitting(false);\n });\n };\n\n const initialStatus: InitialStatus = {\n allowInitialSubmit: props.allowInitialSubmit\n };\n\n return (\n <Formik<FormValues, ExtraProps>\n enableReinitialize\n {...(formikProps as ModifiedFormikConfig<FormValues> & ExtraProps)}\n initialValues={formattedInitialValues}\n onSubmit={onSubmitHandler}\n initialStatus={initialStatus}\n >\n {FunctionHelper.isFunction(props.children)\n ? (f: FormikProps<FormValues>) => (props.children as (f: FormikProps<FormValues>) => React.ReactNode)(f)\n : React.Children.count(props.children) ? props.children : null\n }\n </Formik>\n );\n}\n\nexport function useFormikContextWrapper<T>(): FormikContextType<T> {\n return useFormikContext<T>();\n}","const DEFAULT_PARTIAL_LOADING_OPTIONS: PartialLoadingOptions = {\n numItems: 5,\n minWidth: 50, // px\n maxWidth: 100 // px\n};\n\nexport interface PartialLoadingOptions {\n numItems?: number;\n minWidth?: number;\n maxWidth?: number;\n}\n\ninterface PartialLoadingItem {\n width: string;\n}\n\nexport const PartialLoadingHelper = {\n getPartialLoadingItems(options: PartialLoadingOptions = {}): PartialLoadingItem[] {\n const opts = {\n ...DEFAULT_PARTIAL_LOADING_OPTIONS,\n ...options\n };\n\n const getRandomFilterWidth = () => Math.max(Math.floor(Math.random() * opts.maxWidth), opts.minWidth);\n\n return [...Array(opts.numItems)].map(() => ({ width: `${getRandomFilterWidth()}px` }));\n }\n};","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { Breadcrumbs } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nimport { useGetSettingsGroups } from 'apps/settings/hooks/useGetSettingsGroups';\n\nconst namespace = 'settings.settingsLayout';\n\n/**\n * Checks if the current user has permission to access the settings module\n */\nexport const useCanAccessSettings = (requiredPermissions: PermissionName | PermissionName[]): boolean => {\n const { hasPermissions } = usePermissions();\n const settingsGroups = useGetSettingsGroups();\n\n /**\n * TODO: Update all settings pages to pasas required permissions, because checking the \n * `useGetSettingsGroups()` values clearly doesnt work for settings pages with multiple\n * applinks inside of them. - Sha\n */\n if (requiredPermissions)\n return hasPermissions(requiredPermissions);\n\n const currentRoute = Core.AppLinkHelper.getCurrentAppLink();\n\n /**\n * Allows us to have popups sitting in other locations be used\n * by our settings pages. For example the manage video access popup\n * in the \"videos with restricted access\" page - Sha\n */\n if (currentRoute.application !== AppChannels.SETTINGS)\n return true;\n\n return settingsGroups.some(group => {\n return group.modules.some(settingsModule => {\n if ('appLink' in settingsModule) {\n return settingsModule.appLink.action === currentRoute.action;\n }\n\n return false;\n });\n });\n};\n\ninterface SettingsLayoutProps {\n heading: string;\n breadcrumbs: string[];\n description?: string;\n requiredPermissions?: PermissionName | PermissionName[];\n headingButton?: () => JSX.Element;\n}\n\nexport function SettingsLayout(props: React.PropsWithChildren<SettingsLayoutProps>): JSX.Element {\n const canAccess = useCanAccessSettings(props.requiredPermissions);\n\n React.useEffect(() => {\n if (!canAccess) {\n Core.AppLinkHelper.trigger({\n application: AppChannels.SETTINGS,\n action: Actions.Settings.HOME\n }, { replace: true });\n }\n }, [canAccess]);\n\n if (!canAccess)\n return <></>;\n\n const breadcrumbs = props.breadcrumbs.map((name, i) => ({\n name,\n appLink: {\n application: AppChannels.SETTINGS,\n action: Actions.Settings.HOME\n },\n active: i === props.breadcrumbs.length - 1\n }));\n\n return (\n <div className='px-3'>\n <div className='d-flex align-items-center justify-content-between'>\n <h1 className='h2'>{props.heading}</h1>\n {props.headingButton?.()}\n </div>\n <div className='pb-3'>\n <Breadcrumbs\n breadcrumbs={[\n {\n name: LanguageService.getPhrase(namespace, 'settingsBreadcrumb'),\n appLink: {\n application: AppChannels.SETTINGS,\n action: Actions.Settings.HOME\n }\n },\n ...breadcrumbs\n ]}\n />\n </div>\n {props.description &&\n <>\n <p>{props.description}</p>\n <hr />\n </>\n }\n\n {props.children}\n </div>\n );\n}","import { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\nimport { Flight } from 'libs/common/flight';\n\nimport { UpdateSecuritySettingsRequest } from 'apps/settings/interfaces/security/requests/UpdateSecuritySettingsRequest';\n\nexport const SecuritySettingsRequests = {\n getCustomerSecuritySettings(\n customerId: string,\n success?: () => void,\n error?: () => void\n ): Flight.Request {\n return {\n url: `{gateway}/v1/customers/${customerId}/settings/security`,\n key: `customers:security:settings`,\n normalize: false,\n success,\n error\n };\n },\n\n setCustomerSecuritySettings(\n customerId: string,\n data: UpdateSecuritySettingsRequest,\n success?: () => void,\n error?: () => void\n ): Flight.Request {\n return {\n url: `{gateway}/v1/customers/${customerId}/settings/security`,\n key: `update:security:settings`,\n invalidationKeys: `customers:security:settings`,\n type: HttpVerbs.PUT,\n normalize: false,\n data,\n success,\n error\n };\n }\n};","import React from 'react';\n\nconst PASSWORD_LENGTHS = [ 5, 6, 7, 8, 9, 10, 11, 12 ];\n\ninterface EditPasswordLengthProps {\n currentValue: number;\n setMinimumPasswordLength: (length: number) => void;\n minLength: number;\n\n headingText: string;\n minPasswordLengthText: string;\n}\n\nexport function EditPasswordLength(props: EditPasswordLengthProps): JSX.Element {\n function onClick(e: React.MouseEvent, option: number): void {\n e.preventDefault();\n\n if (option < props.minLength)\n return;\n\n props.setMinimumPasswordLength(option);\n }\n\n function getButtonClassName(option: number): string {\n let className = 'btn border';\n\n if (option === props.currentValue)\n className += ' btn-dark';\n else\n className += ' btn-outline-dark';\n\n if (option < props.minLength)\n className += ' disabled';\n\n return className;\n }\n\n return (\n <div className='pb-2'>\n <h3 className='h6'>{props.headingText}</h3>\n <div className='btn-group mb-1'>\n {PASSWORD_LENGTHS.map(option => (\n <button\n key={option}\n className={getButtonClassName(option)}\n onClick={e => onClick(e, option)}\n type='button'\n >\n {option}\n </button>\n ))}\n </div>\n <p dangerouslySetInnerHTML={{ __html: props.minPasswordLengthText }}/>\n </div>\n );\n}","import React from 'react';\nimport { Form, useFormikContext } from 'formik';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { SpinnerButton } from 'libs/shared/components/spinner-button/SpinnerButton';\nimport { useCanSubmitForm } from 'libs/shared/hooks/UseCanSubmitForm';\n\nimport { EditPasswordLength } from 'apps/settings/components/edit-password-length/EditPasswordLength';\nimport { EditSecuritySettings } from 'apps/settings/interfaces/security/EditSecuritySettings';\n\nconst namespace = 'settings.passwordSecuritySettings';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst MINIMUM_ALLOWED_STUDENT_LENGTH = 5;\nconst MINIMUM_ALLOWED_STAFF_LENGTH = 8;\nconst MINIMUM_ALLOWED_ADMIN_LENGTH = 8;\n\nexport function PasswordSecuritySettingsForm(): JSX.Element {\n const formikProps = useFormikContext<EditSecuritySettings>();\n const canSubmit = useCanSubmitForm(formikProps);\n\n return (\n <Form>\n <h2 className='h4'>{getPhrase('heading')}</h2>\n <EditPasswordLength\n currentValue={formikProps.values.minStudentLength}\n headingText={getPhrase('studentSubheading')}\n minLength={MINIMUM_ALLOWED_STUDENT_LENGTH}\n minPasswordLengthText={getPhrase('minimumStudentLength', { length: formikProps.values.minStudentLength })}\n setMinimumPasswordLength={(length: number) => formikProps.setFieldValue('minStudentLength', length)}\n />\n\n <EditPasswordLength\n currentValue={formikProps.values.minStaffLength}\n headingText={getPhrase('staffSubheading')}\n minLength={MINIMUM_ALLOWED_STAFF_LENGTH}\n minPasswordLengthText={getPhrase('minimumStaffLength', { length: formikProps.values.minStaffLength })}\n setMinimumPasswordLength={(length: number) => formikProps.setFieldValue('minStaffLength', length)}\n />\n\n <EditPasswordLength\n currentValue={formikProps.values.minAdminLength}\n headingText={getPhrase('adminSubheading')}\n minLength={MINIMUM_ALLOWED_ADMIN_LENGTH}\n minPasswordLengthText={getPhrase('minimumAdminLength', { length: formikProps.values.minAdminLength })}\n setMinimumPasswordLength={(length: number) => formikProps.setFieldValue('minAdminLength', length)}\n />\n\n <div className='d-flex'>\n <SpinnerButton\n type='submit'\n variant='dark'\n disabled={!canSubmit}\n showSpinner={formikProps.isSubmitting}\n >\n {getPhrase('saveChanges')}\n </SpinnerButton>\n </div>\n </Form>\n );\n}","import { number, object } from 'yup';\n\nimport { EditSecuritySettings } from 'apps/settings/interfaces/security/EditSecuritySettings';\n\nexport const EditPasswordSecuritySettingsValidationSchema = object().shape<EditSecuritySettings>({\n minStudentLength: number()\n .required(),\n \n minStaffLength: number()\n .required(),\n \n minAdminLength: number()\n .required()\n \n}).noUnknown();","import React from 'react';\nimport { useDispatch } from 'react-redux';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\n\nimport { SecuritySettingsResponse } from 'libs/shared/apps/user-manager/interfaces/SecuritySettingsResponse';\nimport { UserManagerHelper } from 'libs/shared/apps/user-manager/utils/UserManagerHelper';\nimport { FormSubmissionOptions, FormWrapper } from 'libs/shared/components/forms/form-wrapper/FormWrapper';\nimport { UserGroup } from 'libs/shared/enums/UserGroup';\nimport { UserRole } from 'libs/shared/enums/UserRole';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { CurrentUser } from 'libs/shared/interfaces';\n\nimport { PasswordSecuritySettingsForm } from 'apps/settings/components/password-security-settings/PasswordSecuritySettingsForm';\nimport { SettingsLayout } from 'apps/settings/components/settings-layout/SettingsLayout';\nimport { SecuritySettingsRequests } from 'apps/settings/flight-request/SecuritySettingsRequests';\nimport { EditSecuritySettings } from 'apps/settings/interfaces/security/EditSecuritySettings';\nimport { UpdateSecuritySettingsRequest } from 'apps/settings/interfaces/security/requests/UpdateSecuritySettingsRequest';\nimport { EditPasswordSecuritySettingsValidationSchema } from 'apps/settings/utils/validation/EditPasswordSecuritySettingsValidationSchema';\n\nconst namespace = 'settings.securitySettings';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function SecuritySettingsView(): JSX.Element {\n const dispatch = useDispatch();\n const alerts = useAlerts();\n \n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const securitySettings = Flight.useBasicFetch<SecuritySettingsResponse>(\n currentUser.data && SecuritySettingsRequests.getCustomerSecuritySettings(currentUser.data.customerId)\n );\n\n const { getMinimumPasswordLength } = UserManagerHelper;\n const initialStudentLength = getMinimumPasswordLength(securitySettings.data, UserGroup.Learner, UserRole.User);\n const initialStaffLength = getMinimumPasswordLength(securitySettings.data, UserGroup.Staff, UserRole.User);\n const initialAdminLength = getMinimumPasswordLength(securitySettings.data, UserGroup.Staff, UserRole.Admin);\n\n function saveSettings(data: EditSecuritySettings, onDone: (options: FormSubmissionOptions) => void): void {\n const updatedSecuritySettings: UpdateSecuritySettingsRequest = {\n securitySettings: []\n };\n\n if (initialStudentLength !== data.minStudentLength) {\n updatedSecuritySettings.securitySettings.push({\n userType: UserGroup.Learner,\n userRole: UserRole.User,\n minPasswordLength: data.minStudentLength\n });\n }\n\n if (initialStaffLength !== data.minStaffLength) {\n updatedSecuritySettings.securitySettings.push({\n userType: UserGroup.Staff,\n userRole: UserRole.User,\n minPasswordLength: data.minStaffLength\n });\n }\n\n if (initialAdminLength !== data.minAdminLength) {\n updatedSecuritySettings.securitySettings.push({\n userType: UserGroup.Staff,\n userRole: UserRole.Admin,\n minPasswordLength: data.minAdminLength\n });\n }\n\n Flight.fetch(dispatch, SecuritySettingsRequests.setCustomerSecuritySettings(\n currentUser.data.customerId,\n updatedSecuritySettings,\n () => {\n alerts.success(getPhrase('success'));\n },\n () => {\n alerts.error(getPhrase('error'));\n onDone({ reset: true });\n }\n ));\n }\n\n const dataLoaded = !!currentUser.data && !!securitySettings.data;\n\n if (!dataLoaded)\n return <></>;\n\n return (\n <SettingsLayout\n heading={getPhrase('heading')}\n breadcrumbs={[getPhrase('breadcrumb')]}\n >\n <FormWrapper<EditSecuritySettings>\n initialValues={{\n minStudentLength: initialStudentLength,\n minStaffLength: initialStaffLength,\n minAdminLength: initialAdminLength\n }}\n validationSchema={EditPasswordSecuritySettingsValidationSchema}\n onSubmit={saveSettings}\n >\n <PasswordSecuritySettingsForm />\n </FormWrapper>\n </SettingsLayout>\n );\n}"],"names":["BreadcrumbItem","breadcrumb","name","appLink","active","withBackIcon","className","svgName","size","S","Breadcrumbs","breadcrumbs","isMobile","length","collapse","setCollapse","characterLength","reduce","prev","next","first","secondLast","last","rest","slice","onClick","map","idx","key","PartialBreadcrumbs","numItems","style","height","width","dangerouslySetInnerHTML","__html","FormWrapper","props","castInitialValues","castValuesOnSubmit","initialValues","onSubmit","formikProps","formattedInitialValues","validationSchema","cast","values","omitChildValues","child","Object","keys","forEach","hasOwnProperty","omitNullInitialValues","initialStatus","allowInitialSubmit","enableReinitialize","setSubmitting","resetForm","setFieldError","formattedData","options","reset","errors","entries","value","children","f","useFormikContextWrapper","defaultProps","DEFAULT_PARTIAL_LOADING_OPTIONS","minWidth","maxWidth","PartialLoadingHelper","getPartialLoadingItems","opts","Array","Math","max","floor","random","namespace","useCanAccessSettings","requiredPermissions","hasPermissions","settingsGroups","currentRoute","application","some","group","modules","settingsModule","action","SettingsLayout","canAccess","replace","i","heading","headingButton","description","SecuritySettingsRequests","getCustomerSecuritySettings","customerId","success","error","url","normalize","setCustomerSecuritySettings","data","invalidationKeys","type","PASSWORD_LENGTHS","EditPasswordLength","getButtonClassName","option","currentValue","minLength","headingText","e","preventDefault","setMinimumPasswordLength","minPasswordLengthText","getPhrase","LanguageService","MINIMUM_ALLOWED_STUDENT_LENGTH","MINIMUM_ALLOWED_STAFF_LENGTH","MINIMUM_ALLOWED_ADMIN_LENGTH","PasswordSecuritySettingsForm","canSubmit","minStudentLength","setFieldValue","minStaffLength","minAdminLength","SpinnerButton","variant","disabled","showSpinner","isSubmitting","EditPasswordSecuritySettingsValidationSchema","shape","required","noUnknown","SecuritySettingsView","dispatch","alerts","currentUser","UserRequests","securitySettings","getMinimumPasswordLength","UserManagerHelper","initialStudentLength","UserGroup","UserRole","User","initialStaffLength","initialAdminLength","onDone","updatedSecuritySettings","push","userType","userRole","minPasswordLength"],"sourceRoot":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[5936],{49935:(e,t,r)=>{r.d(t,{Oo:()=>d,b2:()=>v});var n=r(32735),a=r(36848),i=r(86764),l=r(3747),c=r(5859),o=r(35223),s=r(83914);function u(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}var m=function(e){var t=e.breadcrumb,r=t.name,i=t.appLink,l=t.active,c=e.withBackIcon;return n.createElement("li",{className:"breadcrumb-item".concat(l?" active":"")},l?n.createElement("strong",null,r):n.createElement(a.F,{appLink:i},c&&n.createElement(s.x,{svgName:o.vn.ChevronLeft,size:s.S.Small}),n.createElement("span",{className:c?"ms-2":""},r)))},d=function(e){var t,r,a=e.breadcrumbs,c=(0,l.a)(i.r.XS),o=(null==a?void 0:a.length)||0,s=(t=n.useState(!1),r=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,a,i,l,c=[],o=!0,s=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;o=!1}else for(;!(o=(n=i.call(r)).done)&&(c.push(n.value),c.length!==t);o=!0);}catch(e){s=!0,a=e}finally{try{if(!o&&null!=r.return&&(l=r.return(),Object(l)!==l))return}finally{if(s)throw a}}return c}}(t,r)||function(e,t){if(e){if("string"==typeof e)return u(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?u(e,t):void 0}}(t,r)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),d=s[0],v=s[1];if(n.useEffect((function(){var e,t=null!==(e=null==a?void 0:a.reduce((function(e,t){return e+t.name.length}),0))&&void 0!==e?e:0;o>3&&t>56&&v(!0)}),[null==a?void 0:a.length]),!o||c&&o<2)return n.createElement(n.Fragment,null);if(c)return n.createElement("nav",{"aria-label":"breadcrumb"},n.createElement("ol",{className:"breadcrumb m-0 p-0"},n.createElement(m,{breadcrumb:a[o-2],withBackIcon:!0})));var p=n.createElement(m,{breadcrumb:a[0]}),f=o>2?n.createElement(m,{breadcrumb:a[o-2]}):n.createElement(n.Fragment,null),g=n.createElement(m,{breadcrumb:a[o-1]}),b=a.slice(1,o-2);return n.createElement("nav",{"aria-label":"breadcrumb"},n.createElement("ol",{className:"breadcrumb m-0 p-0"},p,d?n.createElement("li",{className:"breadcrumb-item"},n.createElement("button",{className:"btn-link",onClick:function(){return v(!1)}},"...")):b.map((function(e,t){return n.createElement(m,{key:t,breadcrumb:e})})),f,g))},v=n.memo((function(e){var t=e.numItems,r=void 0===t?3:t;return(0,l.a)(i.r.XS)?n.createElement("div",{className:"partial-loading-background",style:{height:"1.3125rem",width:"6rem"}}):n.createElement("nav",{"aria-label":"breadcrumb"},n.createElement("ol",{className:"breadcrumb m-0 p-0"},c.u.getPartialLoadingItems({numItems:r}).map((function(e,t){var r=e.width;return n.createElement("li",{key:t,className:"breadcrumb-item"},n.createElement("span",{className:"d-inline-block partial-loading-background",style:{width:r},dangerouslySetInnerHTML:{__html:" "}}))}))))}))},71020:(e,t,r)=>{r.d(t,{_:()=>u});var n=r(32735),a=r(80247),i=r(34152),l=r(83914),c=r(35223);const o={container:"VwD1b",spinner:"eJ85e"};function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function u(e){var t,r,u=(t=(0,i.YD)(),r=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,a,i,l,c=[],o=!0,s=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;o=!1}else for(;!(o=(n=i.call(r)).done)&&(c.push(n.value),c.length!==t);o=!0);}catch(e){s=!0,a=e}finally{try{if(!o&&null!=r.return&&(l=r.return(),Object(l)!==l))return}finally{if(s)throw a}}return c}}(t,r)||function(e,t){if(e){if("string"==typeof e)return s(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?s(e,t):void 0}}(t,r)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),m=u[0],d=u[1];return n.useEffect((function(){var t;e.fetchOnScroll&&d&&!e.isFetching&&(null===(t=e.fetchNext)||void 0===t||t.call(e,e.nextCursor))}),[d,e.isFetching]),n.createElement("div",{className:"p-3 text-center ".concat(o.container),ref:m},e.isFetching?n.createElement(a.Z,{as:"span",animation:"border",role:"status",className:o.spinner}):n.createElement(l.x,{svgName:c.vn.ChevronDown,className:"svg-container cursor-pointer",size:l.S.Large,onClick:function(){var t;return null===(t=e.fetchNext)||void 0===t?void 0:t.call(e,e.nextCursor)}}))}u.defaultProps={fetchOnScroll:!1}},17997:(e,t,r)=>{r.d(t,{H:()=>s});var n=r(32735),a=r(36848),i=r(83345),l=r(22843),c=r(84591),o=r(68626),s=n.memo((function(e){var t,r,s=e.data,u=e.thumbnailSize,m=e.preloadImage,d=Object.assign(Object.assign({},e.questionsAppLink),{args:[e.data.id]}),v=null===(r=null===(t=s._timepoints)||void 0===t?void 0:t.value)||void 0===r?void 0:r.length;return n.createElement("div",{className:"flex-shrink-0 px-1 col-6 col-sm-4"},n.createElement(c.u,{type:"static",textPosition:o.z.Independent,video:s,appLink:e.getAppLink(s),imageOptions:{size:u},preload:m,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions,setFavourite:e.setFavourite,canFavourite:e.canFavourite,hideDuration:!1,imageCdnUrl:e.imageCdnUrl,isPlugin:e.isPlugin,showOwner:e.showOwner}),n.createElement("div",{className:"mt-2"},n.createElement(l.h,Object.assign({},e,{video:s,appLink:e.getAppLink(s)}))),n.createElement("div",{className:"mt-1"},n.createElement(a.F,{appLink:d,className:"cursor-pointer"},n.createElement(i.x,{namespace:"shared.interactiveWidgetItemV2",phrase:"previewQuestions",options:{count:v,smartCount:v}}))))}))},74696:(e,t,r)=>{r.d(t,{S:()=>s});var n=r(32735),a=r(68050),i=r(69111),l=r(9977),c=r(79967);const o={partialOptions:"Gufgq",partialName:"SicQQ",partialDescription:"dPGMq",partialThumbnail:"vZrnb",partialDragHandle:"iq73R"};function s(e){return n.createElement("div",{className:"mx-2"},Array(e.numVideos).fill(null).map((function(t,r){return n.createElement("div",{className:"d-flex",key:r},e.allowBulkActions&&n.createElement("div",{className:"form-check pe-3 pe-sm-2 mx-0 mx-md-2"}),n.createElement(u,Object.assign({},e)))})))}function u(e){var t=(0,c.k)(),r="sm"===l.O.getSize(t,"md"),s=e.withReordering&&!t.xs;return n.createElement(a.Z,{className:"".concat(r?"":"py-2"," flex-grow-1")},n.createElement(i.Z,Object.assign({},l.O.getThumbnailColumns(),{className:"flex-column align-items-flex-start ".concat(r?"pb-2 pe-1":"mb-1 pe-3 pe-md-2")}),n.createElement(a.Z,null,!!s&&n.createElement("div",{className:"d-flex align-items-center justify-content-center col-2"},n.createElement("div",{className:"partial-loading-background ".concat(o.partialDragHandle)})),n.createElement(i.Z,{xs:l.O.getThumbnailColSize(s)},n.createElement("div",{className:"partial-loading-background ".concat(r?"rounded":"rounded-3"," ").concat(o.partialThumbnail)})))),n.createElement(i.Z,Object.assign({},l.O.getDetailsColumns(),{className:r?"pb-2":"px-2"}),n.createElement("div",{className:"partial-loading-background mb-1 ".concat(o.partialName)}),n.createElement("div",{className:"partial-loading-background ".concat(o.partialDescription)})))}s.defaultProps={numVideos:15}},3133:(e,t,r)=>{r.d(t,{R:()=>s});var n=r(32735),a=r(20789),i=r(86794),l=r(2786),c=r(64818);const o={avatarContainer:"kd18L",cvIcon:"smUBc"};function s(e){var t;if(!e.owner&&!e.isClickViewCurated)return n.createElement(n.Fragment,null);if(e.isClickViewCurated)return n.createElement("div",{className:"clamp-1 d-flex align-items-center"},n.createElement("div",{className:"".concat(o.avatarContainer," me-1 border rounded-circle position-relative")},n.createElement(i.b,{className:"me-1 ".concat(o.cvIcon)},n.createElement(l.Sd,null))),"ClickView");var r=c.l.getCommunityName(e.owner);return r?n.createElement("div",{className:"d-flex align-items-center"},n.createElement("div",{className:"".concat(o.avatarContainer," me-1")},n.createElement(a.q,{imageCdnUrl:e.imageCdnUrl,initials:c.l.getInitials(e.owner.name,e.owner.surname),imageUrl:null===(t=e.owner.avatar)||void 0===t?void 0:t.url})),n.createElement("div",{className:"clamp-1"},r)):n.createElement(n.Fragment,null)}},47862:(e,t,r)=>{r.d(t,{K:()=>m});var n=r(32735),a=r(65858),i=r(36848),l=r(83345),c=r(84591),o=r(3133),s=r(54610),u=r(68626);var m=n.memo((function(e){var t,r=Object.assign(Object.assign({},e.questionsAppLink),{args:[e.data.id]});return n.createElement("div",{className:"flex-shrink-0 px-1 ".concat("rXatl")},n.createElement("div",{className:"row m-0 border rounded p-2 h-100"},n.createElement("div",{className:"col-6 p-0"},n.createElement(c.u,{video:e.data,appLink:e.getAppLink(e.data),type:"cosmetic",imageOptions:{size:s.h2.Small},textPosition:u.z.Independent,preload:!0,analyticsOptions:{location:a.LZ.SlidingListItem}})),n.createElement("div",{className:"col-6 p-0"},n.createElement("div",{className:"ps-2"},n.createElement(i.F,{appLink:e.getAppLink(e.data)},n.createElement("h3",{className:"h6 mb-1"},n.createElement("span",{className:"clamp-2"},e.data.name))),n.createElement(o.R,{owner:e.data.owner,isClickViewCurated:null===(t=e.data._isClickViewCurated)||void 0===t?void 0:t.value,imageCdnUrl:e.imageCdnUrl}),n.createElement(i.F,{className:"info-link",appLink:r},n.createElement(l.x,{namespace:"shared.interactiveWidgetItem",phrase:"previewQuestions"}))))))}))},94644:(e,t,r)=>{r.d(t,{r:()=>u});var n=r(50242),a=r(81886),i=r(67058),l=r(14553),c=r(49267),o=r(49075),s={notFound:i.d,forbidden:{rating:l.q,yearLevel:l.q,region:c.a,privacy:l.q},badRequest:o._};function u(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e){var i;i="number"==typeof e?e:e.status;var l=Object.assign(Object.assign({},s),t);i&&a.Q.Ry.isStatusCodeError(i)&&(i!==n.o.NotFound?i!==n.o.Forbidden?r.badRequest||a.Q.Ry.throw(new l.badRequest):r.forbidden||a.Q.Ry.throw(new l.forbidden.privacy):r.notFound||a.Q.Ry.throw(new l.notFound))}}},91286:(e,t,r)=>{r.d(t,{v:()=>l});var n=r(32735),a=r(94644);function i(e){return e.map((function(e){return e.statusCode})).join(":")}function l(e,t,r){var l=Array.isArray(e)?e:[e];(0,n.useEffect)((function(){l.forEach((function(e){(0,a.r)(e.statusCode,t,r)}))}),[i(l),t,r])}},59598:(e,t,r)=>{var n;r.d(t,{K:()=>n}),function(e){e.Resources="resources",e.Interactives="interactives",e.Video="video",e.Clips="clips",e.CurriculumLinks="curriculum-links",e.VideoDetails="video-details",e.RelatedVideos="related-videos",e.ClippedFrom="clipped-from"}(n||(n={}))},5859:(e,t,r)=>{function n(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}r.d(t,{u:()=>i});var a={numItems:5,minWidth:50,maxWidth:100},i={getPartialLoadingItems:function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=Object.assign(Object.assign({},a),t);return(e=Array(r.numItems),function(e){if(Array.isArray(e))return n(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return n(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?n(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()).map((function(){return{width:"".concat(Math.max(Math.floor(Math.random()*r.maxWidth),r.minWidth),"px")}}))}}},84062:(e,t,r)=>{r.d(t,{M:()=>g});var n=r(32735),a=r(17082),i=r(65858),l=r(38647),c=r(16714),o=r(22902),s=r(31908),u=r(26492),m=r(78166),d=r(27638),v=r(22490),p=r(57245);function f(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function g(e){var t,r,g=e.shareLink?i.LZ.PlaySharedInteractive:i.LZ.PlayInteractive,b=(t=n.useState(!0),r=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,a,i,l,c=[],o=!0,s=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;o=!1}else for(;!(o=(n=i.call(r)).done)&&(c.push(n.value),c.length!==t);o=!0);}catch(e){s=!0,a=e}finally{try{if(!o&&null!=r.return&&(l=r.return(),Object(l)!==l))return}finally{if(s)throw a}}return c}}(t,r)||function(e,t){if(e){if("string"==typeof e)return f(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?f(e,t):void 0}}(t,r)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),h=b[0],y=b[1],E=s.M.isVideoTypeArchived(e.interactive),N=n.useMemo((function(){return(0,a.oD)()}),[]),I=(0,d.u)(g),A=I.setFavourite,w=I.canFavourite,S=(0,o.T)().hasPermissions;return n.createElement("div",{className:"px-3"},E&&n.createElement(u.T,{typeId:e.interactive.typeId,hasStudentExperience:!0}),n.createElement("div",{className:"mb-3"},n.createElement(p._,{config:e.config,video:e.interactive,currentUser:e.currentUser,shareLink:e.shareLink,viewKey:e.viewKey,startTime:e.startTime,onShowSummary:function(e){y(!e)},summaryPortalNode:N})),n.createElement("div",null,h&&n.createElement("h1",{className:"h3 d-flex"},e.interactive.name,n.createElement(l.m,{tooltipPlacement:"right",className:"ps-1",video:e.interactive,yearGroups:e.yearGroups}))),n.createElement(a.t0,{node:N}),!S(c.C.StudentExperience)&&n.createElement(m.Z,{currentVideo:e.interactive,yearGroups:e.yearGroups,currentUser:e.currentUser,setFavourite:A,canFavourite:w,relatedVideos:e.relatedVideos,audiences:e.audiences,getVideoAppLink:function(t,r){var n;return v.W.getAppLink(t,Object.assign(Object.assign({},r),{context:e.queryParams.context,contextId:e.queryParams.contextId,playNext:e.queryParams.playNext,shareId:null===(n=e.shareLink)||void 0===n?void 0:n.id,moviesAndTv:e.queryParams.mtv}))},moviesAndTv:e.queryParams.mtv,isPlugin:e.isPlugin}))}},25758:(e,t,r)=>{r.d(t,{x:()=>q});var n=r(32735),a=r(17082),i=r(23481),l=r(28400),c=r(65858),o=r(83657),s=r(36848),u=r(49935),m=r(17997),d=r(83345),v=r(38647),p=r(11518),f=r(47862),g=r(10439),b=r(35429),h=r(5960),y=r(4594),E=r(58704),N=r(37802),I=r(31908),A=r(47938),w=r(78166),S=r(14070),x=r(97291),k=r(10671),C=r(27638),P=r(22490),V=r(83914),O=r(83523),L=r(76177),j=r(35223),T=i.T.encloseNamespace("interactives.previewInteractive");function F(e){return n.createElement("div",{className:"alert text-dark bg-light-blue px-2 rounded d-flex flex-column flex-lg-row justify-content-between mb-3 align-items-center",role:"alert"},e.isArchived?n.createElement("div",{className:"d-flex align-items-center"},n.createElement(V.x,{svgName:j.vn.Archive,size:V.S.Standard,className:"me-2 svg-container"}),n.createElement("div",{className:"w-100"},n.createElement("p",{className:"fw-semibold mb-0"},T("archivedInfoTitle")),n.createElement("p",{className:"mb-1"},T("archivedInfo")))):n.createElement(d.x,{phrase:"alert"}),e.isPreviewPreventScrubbingEnabled&&n.createElement(L.u,{title:T("previewPreventScrubbingExplain"),trigger:"hover",spanHack:!0},n.createElement("div",{className:"d-flex mt-1 mt-lg-0"},n.createElement("div",{className:"me-2"},n.createElement(d.x,{phrase:"previewPreventScrubbing"})),n.createElement(O.Z,{on:e.isPreviewingPreventScrubbing,onClick:e.toggleStudentMode}))))}function R(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}var M="interactives.previewInteractive",U=i.T.encloseNamespace(M);function q(e){var t,r,i,V,O,L,j,T,q,G,_=e.shareId?c.LZ.PreviewSharedInteractive:c.LZ.PreviewInteractive,D=(0,b.g)(),W=(q=n.useState(!1),G=2,function(e){if(Array.isArray(e))return e}(q)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,a,i,l,c=[],o=!0,s=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;o=!1}else for(;!(o=(n=i.call(r)).done)&&(c.push(n.value),c.length!==t);o=!0);}catch(e){s=!0,a=e}finally{try{if(!o&&null!=r.return&&(l=r.return(),Object(l)!==l))return}finally{if(s)throw a}}return c}}(q,G)||function(e,t){if(e){if("string"==typeof e)return R(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?R(e,t):void 0}}(q,G)||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.")}()),Z=W[0],z=W[1],Q=I.M.getCanBeConsumed(e.interactive).canConsume,$=(0,k._)({location:k.i.PlayPage,shareId:e.shareId}),B=(0,C.u)(_),K=B.setFavourite,H=B.canFavourite,X=(0,N.r)(null).hasPlayPageV2;j=Z,T=function(){var e,t,r;null===(r=null===(t=null===(e=D.playerRef)||void 0===e?void 0:e.current)||void 0===t?void 0:t.togglePreviewPreventScrubbing)||void 0===r||r.call(t)},n.useEffect((function(){T()}),[j]);var Y,J,ee,te,re=(Y=e.interactive)._parentClip||Y._parentVideo;I.M.isClip(re)?(J=null===(r=null===(t=re.interactives)||void 0===t?void 0:t.data)||void 0===r?void 0:r.filter((function(t){return t.id.toString()!==e.interactive.id.toString()})),ee=re.name,te={application:x.O.CLIPS,action:S.e.Clips.PLAY_CLIP,args:[re.id,l.m.slugify(re.name)]}):(J=null===(V=null===(i=re.interactives)||void 0===i?void 0:i.data)||void 0===V?void 0:V.filter((function(t){return t.id.toString()!==e.interactive.id.toString()})),ee=re.name,te={application:x.O.VIDEOS,action:S.e.Videos.PLAY_VIDEO,args:[re.id,l.m.slugify(re.name)]});var ne=e.interactive.status===h.X.Draft;return n.createElement(d.D.Provider,{value:M},n.createElement("div",{className:"px-4"},(null===(O=e.breadcrumbs)||void 0===O?void 0:O.length)&&n.createElement("div",{className:"mb-2"},n.createElement(u.Oo,{breadcrumbs:e.breadcrumbs})),n.createElement(A.W,{restrictions:e.interactive._restrictions,yearGroups:e.yearGroups,objectId:e.interactive.id,objectTypeId:y.E.Interactive,canManageVideoAccess:e.canManageVideoAccess}),n.createElement(F,{isPreviewPreventScrubbingEnabled:e.isPreviewPreventScrubbingEnabled,isPreviewingPreventScrubbing:Z,toggleStudentMode:function(){z(!Z)},isArchived:I.M.isVideoTypeArchived(e.interactive)}),n.createElement("div",{className:"mb-3"},Q&&n.createElement(g.r,{key:e.interactive.id,objectId:e.interactive.id,objectTypeId:e.interactive.typeId,shareId:e.shareId,startTime:null!==(L=e.queryParams.t)&&void 0!==L?L:e.queryParams.startTime,mode:"default",location:"play-page"})),n.createElement("div",{className:"d-flex justify-content-between align-items-center"},n.createElement("div",{className:"inline-block w-100"},n.createElement("div",{className:"ms-2 float-end"},n.createElement(o.e,{actions:$.getVideoActions(e.interactive),actionsDropdownClassName:"btn btn-outline-dark",fetchMore:function(){return $.fetchMoreActions(e.interactive)}})),n.createElement("h1",{className:"h3 mb-2"},ne&&n.createElement("div",{className:"badge draft-badge me-2 align-bottom flex-shrink-0 h-auto lh-base"},n.createElement(d.x,{phrase:"draft"})),e.interactive.name,n.createElement(v.m,{tooltipPlacement:"right",className:"ps-1",video:e.interactive,yearGroups:e.yearGroups})),I.M.canViewOriginalVideo(e.interactive)&&n.createElement("div",{className:"mb-1 me-3 clamp-1"},n.createElement(d.x,{phrase:"viewOriginal"})," ",n.createElement(s.F,{appLink:te,className:"text-info"},ee)))),e.interactive.description&&n.createElement("p",null,e.interactive.description),n.createElement("div",{className:"mb-3"},n.createElement(a.t0,{node:D.questionListPortalNode})),!!(null==J?void 0:J.length)&&n.createElement("div",{className:"pb-3"},X?n.createElement(p.kM,{name:U("otherInteractives",{count:J.length}),contents:E.z.Interactives,collection:J,prefetched:!0,getChildAppLink:function(e){return{application:x.O.INTERACTIVES,action:S.e.Interactives.VIEW_INTERACTIVE,args:[e.id,l.m.slugify(e.name)]}},childComponent:m.H,extraChildComponentProps:{yearGroups:e.yearGroups,questionsAppLink:{application:x.O.INTERACTIVES,action:S.e.Interactives.PREVIEW_QUESTIONS},imageCdnUrl:e.config.imageCdnUrl,isPlugin:e.isPlugin},analyticsData:{widgetId:"interactives"}}):n.createElement(p.kM,{name:U("otherInteractives",{count:J.length}),contents:E.z.Interactives,collection:J,prefetched:!0,getChildAppLink:function(e){return{application:x.O.INTERACTIVES,action:S.e.Interactives.VIEW_INTERACTIVE,args:[e.id,l.m.slugify(e.name)]}},childComponent:f.K,extraChildComponentProps:{video:re,questionsAppLink:{application:x.O.INTERACTIVES,action:S.e.Interactives.PREVIEW_QUESTIONS},imageCdnUrl:e.config.imageCdnUrl},analyticsData:{widgetId:"interactives"}})),n.createElement(w.Z,{currentVideo:e.interactive,yearGroups:e.yearGroups,setFavourite:K,canFavourite:H,currentUser:e.currentUser,audiences:e.audiences,relatedVideos:e.relatedVideos,getVideoAppLink:function(t,r){return P.W.getAppLink(t,Object.assign(Object.assign({},r),{context:e.queryParams.context,contextId:e.queryParams.contextId,playNext:e.queryParams.playNext,shareId:e.shareId,moviesAndTv:e.queryParams.mtv}))},moviesAndTv:e.queryParams.mtv,isPlugin:e.isPlugin})))}},26492:(e,t,r)=>{r.d(t,{T:()=>u});var n=r(32735),a=r(23481),i=r(65858),l=r(83914),c=r(4594),o=r(35223),s="shared.playPage";function u(e){var t=a.T.encloseNamespace(s),r=function(e){switch(e){case c.E.Video:return"video";case c.E.Clip:return"clip";case c.E.Interactive:return"interactive";default:return""}}(e.typeId);return n.createElement("div",{className:"alert bg-light-blue p-3 rounded-3 d-flex justify-content-between align-items-center"},n.createElement(l.x,{svgName:o.vn.Archive,size:l.S.Standard,className:"me-2 svg-container"}),n.createElement("div",{className:"w-100"},n.createElement("p",{className:"fw-semibold mb-0"},t("archivedInfoTitle",{type:r})),(!e.hasStudentExperience||r===i.py.Video)&&n.createElement("p",{className:"mb-1"},t("archivedInfo",{type:"".concat(r,"s")}))))}},47938:(e,t,r)=>{r.d(t,{W:()=>d});var n=r(32735),a=r(36848),i=r(83914),l=r(83345),c=r(5345),o=r(26361),s=r(14070),u=r(97291),m="shared.playPage";function d(e){var t,r;if(!(null===(r=null===(t=e.restrictions)||void 0===t?void 0:t.value)||void 0===r?void 0:r.length)||!e.yearGroups||!e.canManageVideoAccess)return n.createElement(n.Fragment,null);if(o.l.getWeightedRestriction(e.restrictions.value).type!==c.c.Custom)return n.createElement(n.Fragment,null);var d=o.l.mapRestrictionToClass(e.restrictions),v="".concat(d," fw-semibold p-2 rounded mb-3 d-flex justify-content-between align-items-center");return n.createElement("div",{className:v},n.createElement("div",{className:"d-flex align-items-center"},n.createElement(i.x,{svgName:o.l.mapRestrictionToSvg(e.restrictions),size:i.S.Large}),n.createElement("span",{className:"ps-1"},o.l.mapRestrictionToText(e.restrictions,e.yearGroups))),n.createElement(a.F,{appLink:{application:u.O.DEFAULT,action:s.e.Default.APPROVE_VIDEO,params:{objectId:e.objectId,objectTypeId:e.objectTypeId}},className:"btn btn-outline-dark"},n.createElement(l.x,{namespace:m,phrase:"approve"})))}},78166:(e,t,r)=>{r.d(t,{Z:()=>b});var n=r(32735),a=r(71020),i=r(83345),l=r(74696),c=r(13231),o=r(51365),s=r(22902),u=r(59598),m=r(31908),d=r(10671),v=r(10741),p=r(22490),f=r(82431),g="shared.relatedVideos";function b(e){var t,r,b=(0,d._)({location:d.i.VideoItem}),h=(0,s.T)().hasPermissions;if(!(null===(t=e.currentUser)||void 0===t?void 0:t.isAuthenticated))return n.createElement(n.Fragment,null);if(e.relatedVideos.hasError)return n.createElement(n.Fragment,null);if(e.relatedVideos.hasCompleted&&!(null===(r=e.relatedVideos.videos)||void 0===r?void 0:r.length))return n.createElement(n.Fragment,null);if(!e.relatedVideos.isFetching&&!e.relatedVideos.hasCompleted)return n.createElement(n.Fragment,null);var y=!m.M.isInteractive(e.currentVideo);return n.createElement("section",{id:u.K.RelatedVideos,className:"play-page-section",ref:function(t){var r,n;t&&(null===(r=e.headingRef)||void 0===r?void 0:r.current)&&(null===(n=e.relatedVideos.videos)||void 0===n?void 0:n.length)&&e.headingRef.current.set(u.K.RelatedVideos,t)}},n.createElement(o.M.Provider,{value:b},n.createElement("h2",{className:"h4 mb-0"},n.createElement(i.x,{namespace:g,phrase:y?"upNext":"relatedVideos"})),e.relatedVideos.hasCompleted?n.createElement(c.E4,{videos:e.relatedVideos.videos,yearGroups:e.yearGroups,getSubTextAppLink:function(t){return f.j.getSeriesAppLink(t.series,e.moviesAndTv?{mtv:!0}:null)},getVideoAppLink:e.getVideoAppLink,hasPermissions:h,setFavourite:e.setFavourite,canFavourite:e.canFavourite,presentationAudiences:e.audiences,getPreviewQuestionsAppLink:function(e){return v.j.getPreviewQuestionsAppLink(e)},isPlugin:e.isPlugin,getClassroomGuideAppLink:p.W.getClassroomGuideAppLink,getInteractiveGuidanceAppLink:p.W.getInteractiveGuidanceAppLink,getResourceGuidanceAppLink:p.W.getResourceGuidanceAppLink}):n.createElement(l.S,null),e.relatedVideos.hasMore&&n.createElement(a._,{isFetching:e.relatedVideos.isFetching,fetchNext:e.relatedVideos.fetchNext})))}},44110:(e,t,r)=>{r.d(t,{i:()=>l});var n=r(20354),a=r(89454),i=r(86698),l=function(){var e=(0,i.y)({redirectOnError:!0}),t=e.activePresentation,r=e.getFallbackPresentation,l=t||r();return n.a.useBasicFetch(!!l&&a.O.presentationAudiences(l.id))}},53073:(e,t,r)=>{r.d(t,{f:()=>s});var n=r(20354),a=r(16714),i=r(12754),l=r(31949),c=r(22902),o=r(15311);function s(){var e=(0,c.T)().hasPermissions,t=(0,o.r)().hasProduct,r=n.a.useBasicFetch(l.N.currentUser());return!e(a.C.StudentExperience)&&t(i.x.Primary)&&r.data.isAuthenticated}},97816:(e,t,r)=>{r.d(t,{V:()=>m});var n=r(32735),a=r(20354),i=r(21750),l=r(31949),c=r(1575),o=r(31908);function s(e,t){if(e){if("string"==typeof e)return u(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?u(e,t):void 0}}function u(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function m(e){var t,r,m=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},d=a.a.useBasicFetch(l.N.currentUser()),v=n.useRef(new Set),p=function(e){return e?Array.isArray(e)?e.filter((function(e){return!!e&&(o.M.isVideo(e)||o.M.isClip(e))})):"data"in e?e.data.filter((function(e){return!!e&&(o.M.isVideo(e)||o.M.isClip(e))})):[]:[]}(e),f=p.map((function(e){return e.id})),g=(t=n.useState([]),r=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,a,i,l,c=[],o=!0,s=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;o=!1}else for(;!(o=(n=i.call(r)).done)&&(c.push(n.value),c.length!==t);o=!0);}catch(e){s=!0,a=e}finally{try{if(!o&&null!=r.return&&(l=r.return(),Object(l)!==l))return}finally{if(s)throw a}}return c}}(t,r)||s(t,r)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),b=g[0],h=g[1];n.useEffect((function(){if((null==f?void 0:f.length)&&d.hasCompleted){var e=[];f.forEach((function(t){v.current.has(t)||(e.push(t),v.current.add(t))})),e.length&&h((function(t){var r,n=[].concat(function(e){return function(e){if(Array.isArray(e))return u(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||s(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}(t),[c.R.videoMixinAssocs(e,m.flightNamespace)]);return(null===(r=d.data)||void 0===r?void 0:r.isAuthenticated)&&n.push(i.x.hasCurriculumLinks(e,null,m.flightNamespace)),n}))}}),[null==f?void 0:f.length,d.hasCompleted]),a.a.useBasicFetchAll(b)}},68050:(e,t,r)=>{r.d(t,{Z:()=>s});var n=r(95685),a=r.n(n),i=r(32735),l=r(46304),c=r(74512);const o=i.forwardRef((({bsPrefix:e,className:t,as:r="div",...n},i)=>{const o=(0,l.vE)(e,"row"),s=(0,l.pi)(),u=(0,l.zG)(),m=`${o}-cols`,d=[];return s.forEach((e=>{const t=n[e];let r;delete n[e],null!=t&&"object"==typeof t?({cols:r}=t):r=t;const a=e!==u?`-${e}`:"";null!=r&&d.push(`${m}${a}-${r}`)})),(0,c.jsx)(r,{ref:i,...n,className:a()(t,o,...d)})}));o.displayName="Row";const s=o}}]);
|
|
2
|
+
//# sourceMappingURL=5936-b509535ec7-lite.chunk.js.map
|