@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
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[5573],{54644:(e,t,n)=>{n.d(t,{v:()=>r});var a=n(97395),r={getContentUpdates:function(e,t,n,r){return{url:a._.urlBuilder("".concat(r||"{gateway}","/v1/discover/content-updates"),{from:t,to:n,limit:6,query:"(videoCollection)"}),publicUrl:a._.urlBuilder("/api/discover/presentations/".concat(e,"/content-updates"),{from:t,to:n,limit:6,query:"(videoCollection)"}),key:"content:updates",normalizeOptions:{namespace:"contentupdates"},formatData:function(e){return e.map((function(e){return{id:e.classificationId,videos:e.videos}}))}}},getClassifications:function(e){return{url:a._.urlBuilder("/api/domain/v1/subjects",{id:e,query:"banner"}),publicUrl:a._.urlBuilder("/api/subjects/classifications",{id:e,query:"banner"}),key:"classifications:".concat(e.join(","))}},getClassification:function(e){return{url:"/api/domain/v1/subjects/".concat(e,"?query=banner"),publicUrl:"/api/subjects/classifications/".concat(e,"?query=banner"),key:"classification:".concat(e)}},getClassificationUpdates:function(e,t,n){return{url:a._.urlBuilder("/api/domain/v1/subjects/".concat(e,"/content-updates"),{from:t,to:n,query:"(videoCollection)"}),publicUrl:a._.urlBuilder("/api/subjects/classifications/".concat(e,"/content-updates"),{from:t,to:n,query:"(videoCollection)"}),key:"classification:update:".concat(e,":").concat(t,":").concat(n)}},getContentUpdateVideos:function(e,t){return{url:a._.urlBuilder("/api/domain/v1/subjects/content-updates/videos",{from:e,to:t,query:"(videoCollection)"}),publicUrl:a._.urlBuilder("/api/subjects/content-updates/videos",{from:e,to:t,query:"(videoCollection)"}),key:"content:update:videos:".concat(e,":").concat(t)}},videos:function(e,t){return{url:"/api/domain/v1/videos?ids=".concat(e.join(","),"&with=(videoCollection)"),key:"videos:by:id:".concat(e.join(",")),success:t}}}},49935:(e,t,n)=>{n.d(t,{Oo:()=>d,b2:()=>m});var a=n(32735),r=n(36848),i=n(86764),o=n(3747),l=n(5859),c=n(35223),s=n(83914),u=function(e){var t=e.breadcrumb,n=t.name,i=t.appLink,o=t.active,l=e.withBackIcon;return a.createElement("li",{className:"breadcrumb-item".concat(o?" active":"")},o?a.createElement("strong",null,n):a.createElement(r.F,{appLink:i},l&&a.createElement(s.x,{svgName:c.vn.ChevronLeft,size:s.S.Small}),a.createElement("span",{className:l?"ms-2":""},n)))},d=function(e){var t=e.breadcrumbs,n=(0,o.a)(i.r.XS),r=null==t?void 0:t.length;return!r||n&&r<2?a.createElement(a.Fragment,null):n?a.createElement("nav",{"aria-label":"breadcrumb"},a.createElement("ol",{className:"breadcrumb m-0 p-0"},a.createElement(u,{breadcrumb:t[r-2],withBackIcon:!0}))):a.createElement("nav",{"aria-label":"breadcrumb"},a.createElement("ol",{className:"breadcrumb m-0 p-0"},t.map((function(e,t){return a.createElement(u,{key:t,breadcrumb:e})}))))},m=a.memo((function(e){var t=e.numItems,n=void 0===t?3:t;return(0,o.a)(i.r.XS)?a.createElement("div",{className:"partial-loading-background",style:{height:"1.3125rem",width:"6rem"}}):a.createElement("nav",{"aria-label":"breadcrumb"},a.createElement("ol",{className:"breadcrumb m-0 p-0"},l.u.getPartialLoadingItems({numItems:n}).map((function(e,t){var n=e.width;return a.createElement("li",{key:t,className:"breadcrumb-item"},a.createElement("span",{className:"d-inline-block partial-loading-background",style:{width:n},dangerouslySetInnerHTML:{__html:" "}}))}))))}))},74696:(e,t,n)=>{n.d(t,{S:()=>s});var a=n(32735),r=n(68050),i=n(69111),o=n(9977),l=n(79967);const c={partialOptions:"Gufgq",partialName:"SicQQ",partialDescription:"dPGMq",partialThumbnail:"vZrnb",partialDragHandle:"iq73R"};function s(e){return a.createElement("div",{className:"mx-2"},Array(e.numVideos).fill(null).map((function(t,n){return a.createElement("div",{className:"d-flex",key:n},e.allowBulkActions&&a.createElement("div",{className:"form-check pe-3 pe-sm-2 mx-0 mx-md-2"}),a.createElement(u,Object.assign({},e)))})))}function u(e){var t=(0,l.k)(),n="sm"===o.O.getSize(t,"md"),s=e.withReordering&&!t.xs;return a.createElement(r.Z,{className:"".concat(n?"":"py-2"," flex-grow-1")},a.createElement(i.Z,Object.assign({},o.O.getThumbnailColumns(),{className:"flex-column align-items-flex-start ".concat(n?"pb-2 pe-1":"mb-1 pe-3 pe-md-2")}),a.createElement(r.Z,null,!!s&&a.createElement("div",{className:"d-flex align-items-center justify-content-center col-2"},a.createElement("div",{className:"partial-loading-background ".concat(c.partialDragHandle)})),a.createElement(i.Z,{xs:o.O.getThumbnailColSize(s)},a.createElement("div",{className:"partial-loading-background ".concat(n?"rounded":"rounded-3"," ").concat(c.partialThumbnail)})))),a.createElement(i.Z,Object.assign({},o.O.getDetailsColumns(),{className:n?"pb-2":"px-2"}),a.createElement("div",{className:"partial-loading-background mb-1 ".concat(c.partialName)}),a.createElement("div",{className:"partial-loading-background ".concat(c.partialDescription)})))}s.defaultProps={numVideos:15}},5859:(e,t,n)=>{function a(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}n.d(t,{u:()=>i});var r={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({},r),t);return(e=Array(n.numItems),function(e){if(Array.isArray(e))return a(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return a(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?a(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()).map((function(){return{width:"".concat(Math.max(Math.floor(Math.random()*n.maxWidth),n.minWidth),"px")}}))}}},37808:(e,t,n)=>{n.d(t,{aq:()=>b,YW:()=>h});var a=n(32735),r=n(36848),i=n(83345),o=n(80247),l=n(57900),c=n(2948),s=n(10874),u=n(38143),d=n(35223);const m={banner:"B7jhq"};function p(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}var f="contentUpdates.classificationBanner";function b(e){var t,n,b=e.classification,v=e.backgroundUrl,h=e.followed,g=e.follow,y=e.showFollowSpinner,w=(t=(0,c.D)(u.g.AUDIENCE_FILTER,void 0,{storage:l.Z1.SessionStorage}),n=1,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,i,o,l=[],c=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(a=i.call(n)).done)&&(l.push(a.value),l.length!==t);c=!0);}catch(e){s=!0,r=e}finally{try{if(!c&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(s)throw r}}return l}}(t,n)||function(e,t){if(e){if("string"==typeof e)return p(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)?p(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.")}())[0];return a.createElement("div",{className:"banner mb-2 d-flex justify-content-between align-items-center rounded ".concat(m.banner),style:{backgroundImage:"url('".concat(v,"')")}},a.createElement(r.F,{className:"text-white text-shadow",appLink:e.getClassificationAppLink(b,w)},a.createElement("h2",{className:"h3 mb-0"},b.name)),e.canFollow&&a.createElement(s.h,{className:"btn follow-btn ".concat(h?"btn-outline-dark":"btn-dark"),svgName:h?d.vn.BellFilled:d.vn.Bell,onClick:function(){return g(b.id,b.name,!h)}},y?a.createElement(o.Z,{as:"span",animation:"border",role:"status",size:"sm"}):a.createElement(i.x,{namespace:f,phrase:h?"following":"follow"})))}var v="playlists.liteClassificationUpdateBreadcrumbs";function h(e){var t=e.classification;return a.createElement(a.Fragment,null,a.createElement("nav",{"aria-label":"breadcrumb"},a.createElement("ol",{className:"breadcrumb p-0 mb-0"},a.createElement("li",{className:"breadcrumb-item"},a.createElement(r.F,{appLink:e.dashboardAppLink},a.createElement(i.x,{namespace:v,phrase:"dashboard"}))),a.createElement("li",{className:"breadcrumb-item"},a.createElement(r.F,{appLink:e.contentUpdatesAppLink},a.createElement(i.x,{namespace:v,phrase:"whatsNew"}))),a.createElement("li",{className:"breadcrumb-item active","aria-current":"page"},t.name))))}},19595:(e,t,n)=>{n.r(t),n.d(t,{ClassificationUpdateView:()=>D});var a=n(32735),r=n(70680),i=n(23481),o=n(20354),l=n(110),c=n(65858),s=n(54644),u=n(13231),d=n(51365),m=n(16714),p=n(1666),f=n(61699),b=n(31949),v=n(69883),h=n(22902),g=n(79612),y=n(76753),w=n(51855),k=n(10671),E=n(27638),A=n(44110),S=n(97816),C=n(10741),N=n(33192),L=n(22490),j=n(37808),x=n(49935),I=n(74696);const O={partialBanner:"DKukI"};function F(){return a.createElement("div",{className:"bg-white px-3"},a.createElement("div",{className:"partial-loading-background mb-2 ".concat(O.partialBanner," rounded")}),a.createElement("div",{className:"mb-1"},a.createElement(x.b2,null)),a.createElement(I.S,null))}var U=n(49985),B="contentUpdates.classificationUpdate",M=i.T.encloseNamespace(B);function T(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}var P=i.T.encloseNamespace("contentUpdates.classificationUpdate");function D(e){var t,n,x,I,O,D,q,_,G,V,Z=e.classificationId,Y=(0,w.G)().isPlugin,R=(0,r.I0)(),W=(0,v.Z)(),$=(0,E.u)(c.LZ.VideoThumbnail),z=$.setFavourite,H=$.canFavourite,Q=o.a.useBasicFetch(b.N.currentUser()),X=o.a.useBasicFetch((null===(t=Q.data)||void 0===t?void 0:t.isAuthenticated)&&p.h.yearGroups(Q.data.customerId)),K=(G=a.useState(!1),V=2,function(e){if(Array.isArray(e))return e}(G)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,i,o,l=[],c=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(a=i.call(n)).done)&&(l.push(a.value),l.length!==t);c=!0);}catch(e){s=!0,r=e}finally{try{if(!c&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(s)throw r}}return l}}(G,V)||function(e,t){if(e){if("string"==typeof e)return T(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)?T(e,t):void 0}}(G,V)||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.")}()),J=K[0],ee=function(e){var t=e.dispatch,n=e.alerts,a=e.setShowFollowSpinner;return{onFollow:function(e,r,l){a(!0);var s=function(){a(!1),U.k.logUserAction({id:e,name:r},{location:c.LZ.ContentUpdatesClassificationBanner,workflowPhase:c.eu.Complete,descriptor:l?c.DL.On:c.DL.Off,actionType:c.Vw.Follow,entity:c.py.Classification}),n.success(M(l?"followed":"unfollowed",{name:r,escapeText:!0}))},u=function(){a(!1),n.error(i.T.getPhrase(B,"error"))},d=l?f.o.followSubjects([e],s,u):f.o.unfollowSubjects([e],s,u);o.a.fetch(t,d)}}}({dispatch:R,alerts:W,setShowFollowSpinner:K[1],currentUser:null==Q?void 0:Q.data}),te=new Date,ne=l.O.format(l.O.endOf(l.O.subtract(te,1,"year"),"day"),"YYYY-MM-DD"),ae=l.O.format(l.O.endOf(te,"day"),"YYYY-MM-DD"),re=(0,h.T)().hasPermissions,ie=re(m.C.FollowSubjects),oe=o.a.useBasicFetch(s.v.getClassification(Z)),le=o.a.useBasicFetch(Q.data&&s.v.getClassificationUpdates(Z,ne,ae)),ce=o.a.useBasicFetch(ie&&f.o.mySubjectPreferences()),se=(0,A.i)();(0,g.M)(y.CG.getDefaultMetadata({title:null===(n=oe.data)||void 0===n?void 0:n.name,phraseContext:{phraseHandler:P,titlePhrase:"pageTitle",descriptionPhrase:"pageDescription"},canonicalLink:N.f.getCanonicalLink(),allowIndexing:N.f.allowIndexing()}));var ue=(0,k._)({location:k.i.VideoItem});(0,S.V)(null!==(I=null===(x=le.data)||void 0===x?void 0:x.videos)&&void 0!==I?I:[]);var de=ce.hasCompleted||!ie;if(!(le.data&&oe.data&&de&&Q.data))return a.createElement(F,null);var me=null!==(D=null===(O=ce.data)||void 0===O?void 0:O.map((function(e){return e.id})))&&void 0!==D?D:[];return a.createElement(d.M.Provider,{value:ue},a.createElement("div",{className:"bg-white px-3"},a.createElement(j.aq,{classification:oe.data,backgroundUrl:null!==(_=null===(q=oe.data.banner)||void 0===q?void 0:q.url)&&void 0!==_?_:"",getClassificationAppLink:e.appLinks.getClassificationAppLink,followed:!!me.find((function(e){return e.toString()===oe.data.id.toString()})),follow:ee.onFollow,showFollowSpinner:J,canFollow:ie}),a.createElement(j.YW,{classification:oe.data,dashboardAppLink:e.appLinks.dashboardAppLink,contentUpdatesAppLink:e.appLinks.whatsNewAppLink}),a.createElement(u.E4,{videos:le.data.videos,yearGroups:X.data,getVideoAppLink:e.appLinks.getVideoAppLink,getSubTextAppLink:function(t){return e.appLinks.getSeriesAppLink(t.series)},setFavourite:z,canFavourite:H,hasPermissions:re,presentationAudiences:se.data,getPreviewQuestionsAppLink:function(e){return C.j.getPreviewQuestionsAppLink(e)},isPlugin:Y,getClassroomGuideAppLink:L.W.getClassroomGuideAppLink,getInteractiveGuidanceAppLink:L.W.getInteractiveGuidanceAppLink,getResourceGuidanceAppLink:L.W.getResourceGuidanceAppLink})))}},44110:(e,t,n)=>{n.d(t,{i:()=>o});var a=n(20354),r=n(89454),i=n(86698),o=function(){var e=(0,i.y)({redirectOnError:!0}),t=e.activePresentation,n=e.getFallbackPresentation,o=t||n();return a.a.useBasicFetch(!!o&&r.O.presentationAudiences(o.id))}},97816:(e,t,n)=>{n.d(t,{V:()=>d});var a=n(32735),r=n(20354),i=n(21750),o=n(31949),l=n(1575),c=n(31908);function s(e,t){if(e){if("string"==typeof e)return u(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?u(e,t):void 0}}function u(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}function d(e){var t,n,d=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},m=r.a.useBasicFetch(o.N.currentUser()),p=a.useRef(new Set),f=function(e){return e?Array.isArray(e)?e.filter((function(e){return!!e&&(c.M.isVideo(e)||c.M.isClip(e))})):"data"in e?e.data.filter((function(e){return!!e&&(c.M.isVideo(e)||c.M.isClip(e))})):[]:[]}(e),b=f.map((function(e){return e.id})),v=(t=a.useState([]),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,i,o,l=[],c=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(a=i.call(n)).done)&&(l.push(a.value),l.length!==t);c=!0);}catch(e){s=!0,r=e}finally{try{if(!c&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(s)throw r}}return l}}(t,n)||s(t,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),h=v[0],g=v[1];a.useEffect((function(){if((null==b?void 0:b.length)&&m.hasCompleted){var e=[];b.forEach((function(t){p.current.has(t)||(e.push(t),p.current.add(t))})),e.length&&g((function(t){var n,a=[].concat(function(e){return function(e){if(Array.isArray(e))return u(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||s(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}(t),[l.R.videoMixinAssocs(e,d.flightNamespace)]);return(null===(n=m.data)||void 0===n?void 0:n.isAuthenticated)&&a.push(i.x.hasCurriculumLinks(e,null,d.flightNamespace)),a}))}}),[null==b?void 0:b.length,m.hasCompleted]),r.a.useBasicFetchAll(h)}},68050:(e,t,n)=>{n.d(t,{Z:()=>s});var a=n(95685),r=n.n(a),i=n(32735),o=n(46304),l=n(74512);const c=i.forwardRef((({bsPrefix:e,className:t,as:n="div",...a},i)=>{const c=(0,o.vE)(e,"row"),s=(0,o.pi)(),u=(0,o.zG)(),d=`${c}-cols`,m=[];return s.forEach((e=>{const t=a[e];let n;delete a[e],null!=t&&"object"==typeof t?({cols:n}=t):n=t;const r=e!==u?`-${e}`:"";null!=n&&m.push(`${d}${r}-${n}`)})),(0,l.jsx)(n,{ref:i,...a,className:r()(t,c,...m)})}));c.displayName="Row";const s=c}}]);
|
|
2
|
-
//# sourceMappingURL=5573-6cd98b69f2-lite.chunk.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scripts/5573-6cd98b69f2-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/apps/content-updates/flight-requests/ContentUpdateRequests.ts","file:///app/packages/libs/shared/src/components/breadcrumbs/Breadcrumbs.tsx","file:///app/packages/libs/shared/src/components/video-list/partial-loading/partial-video-list.scss","file:///app/packages/libs/shared/src/components/video-list/partial-loading/PartialVideoList.tsx","file:///app/packages/libs/shared/src/utils/PartialLoadingHelper.ts","file:///app/packages/projects/lite/src/apps/content-updates/components/classification-banner/classification-banner.scss","file:///app/packages/projects/lite/src/apps/content-updates/components/classification-banner/ClassificationBanner.tsx","file:///app/packages/projects/lite/src/apps/content-updates/components/classification-update-breadcrumbs/ClassificationUpdateBreadcrumbs.tsx","file:///app/packages/projects/lite/src/apps/content-updates/views/classification-update/partial-loading/partial-classification-update.scss","file:///app/packages/projects/lite/src/apps/content-updates/views/classification-update/partial-loading/PartialClassificationUpdate.tsx","file:///app/packages/projects/lite/src/apps/content-updates/views/classification-update/ClassificationUpdateViewCallbacks.tsx","file:///app/packages/projects/lite/src/apps/content-updates/views/classification-update/ClassificationUpdateView.tsx","file:///app/packages/projects/lite/src/shared/hooks/usePresentationAudiences.ts","file:///app/packages/projects/lite/src/shared/hooks/useVideoMixin.ts","file:///app/node_modules/react-bootstrap/esm/Row.js"],"sourcesContent":["import { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/flight';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { Video } from 'libs/shared/interfaces';\n\n// Why 6 you ask? Well, we display 5, then we also display a link to \"see all updates for classification\"\n// if there are more than 5. By fetching 6, we can tell if there are more than 5 (api doesn't tell us).\nconst CONTENT_UPDATES_VIDEO_LIMIT = 6;\n\nexport const ContentUpdateRequests = {\n getContentUpdates(presentationId: string, from: string, to: string, gatewayApiUrl?: string): Flight.PublicRequest {\n const url = UrlHelper.urlBuilder(`${gatewayApiUrl || '{gateway}'}/v1/discover/content-updates`, {\n from,\n to,\n limit: CONTENT_UPDATES_VIDEO_LIMIT,\n query: '(videoCollection)'\n });\n\n const publicUrl = UrlHelper.urlBuilder(`/api/discover/presentations/${presentationId}/content-updates`, {\n from,\n to,\n limit: CONTENT_UPDATES_VIDEO_LIMIT,\n query: '(videoCollection)'\n });\n\n return {\n url,\n publicUrl,\n key: 'content:updates',\n /**\n * The namespace here is required so that flight's normaliser doesn't override\n * fully fetched classification objects matching the IDs here.\n * \n * Without this, navigating from content updates to one of the topics in the content updates\n * list, then back to content updates will cause the page to break.\n */\n normalizeOptions: {\n namespace: 'contentupdates'\n },\n formatData: (contentUpdates: HashObject[]) => {\n return contentUpdates.map(contentUpdate => {\n // Change id field here to make normalization in Flight easier\n return {\n id: contentUpdate.classificationId,\n videos: contentUpdate.videos\n };\n });\n }\n };\n },\n\n getClassifications(ids: string[]): Flight.PublicRequest {\n const url = UrlHelper.urlBuilder('/api/domain/v1/subjects', {\n id: ids,\n query: 'banner'\n });\n\n const publicUrl = UrlHelper.urlBuilder('/api/subjects/classifications', {\n id: ids,\n query: 'banner'\n });\n\n return {\n url,\n publicUrl,\n key: `classifications:${ids.join(',')}`\n };\n },\n\n getClassification(id: string): Flight.PublicRequest {\n return {\n url: `/api/domain/v1/subjects/${id}?query=banner`,\n publicUrl: `/api/subjects/classifications/${id}?query=banner`,\n key: `classification:${id}`\n };\n },\n\n getClassificationUpdates(id: string, from: string, to: string): Flight.PublicRequest {\n const url = UrlHelper.urlBuilder(`/api/domain/v1/subjects/${id}/content-updates`, {\n from,\n to,\n query: '(videoCollection)'\n });\n\n const publicUrl = UrlHelper.urlBuilder(`/api/subjects/classifications/${id}/content-updates`, {\n from,\n to,\n query: '(videoCollection)'\n });\n\n return {\n url,\n publicUrl,\n key: `classification:update:${id}:${from}:${to}`\n };\n },\n\n getContentUpdateVideos(from: string, to: string): Flight.PublicRequest {\n return {\n url: UrlHelper.urlBuilder(`/api/domain/v1/subjects/content-updates/videos`, {\n from,\n to,\n query: '(videoCollection)'\n }),\n publicUrl: UrlHelper.urlBuilder(`/api/subjects/content-updates/videos`, {\n from,\n to,\n query: '(videoCollection)'\n }),\n key: `content:update:videos:${from}:${to}`\n };\n },\n\n /**\n * TODO: Delete thise and use the shared video requests\n */\n videos(ids: string[], success?: (data: Video[]) => void): Flight.Request {\n const url = `/api/domain/v1/videos?ids=${ids.join(',')}&with=(videoCollection)`;\n\n return {\n url,\n key: `videos:by:id:${ids.join(',')}`,\n success\n };\n }\n};","import * as React from 'react';\n\nimport { Core } from 'libs/common/core';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { MediaQueryStrings } from 'libs/shared/enums/MediaQueries';\nimport { useMediaQuery } from 'libs/shared/hooks/UseMediaQuery';\nimport { PartialLoadingHelper } from 'libs/shared/utils/PartialLoadingHelper';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { SvgContainer, SvgContainerSize } from '../svg-container/SvgContainer';\n\nexport interface Breadcrumb {\n name: string;\n appLink?: Core.AppLink;\n active?: boolean;\n}\n\ninterface BreadcrumbItemProps {\n breadcrumb: Breadcrumb;\n withBackIcon?: boolean;\n}\n\nexport const BreadcrumbItem = ({ breadcrumb: { name, appLink, active }, withBackIcon }: BreadcrumbItemProps) => (\n <li className={`breadcrumb-item${active ? ' active' : ''}`}>\n {active\n ? <strong>{name}</strong>\n : <AppLink appLink={appLink}>\n {withBackIcon && <SvgContainer svgName={cvSvgLibrary.ChevronLeft} size={SvgContainerSize.Small} />}\n <span className={withBackIcon ? 'ms-2' : ''}>{name}</span>\n </AppLink>\n }\n </li>\n);\n\ninterface BreadcrumbsProps {\n breadcrumbs: Breadcrumb[];\n}\n\nexport const Breadcrumbs = ({ breadcrumbs }: BreadcrumbsProps) => {\n const isMobile = useMediaQuery(MediaQueryStrings.XS);\n\n const length = breadcrumbs?.length;\n\n if (!length || (isMobile && length < 2))\n return <></>;\n\n if (isMobile)\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n <BreadcrumbItem breadcrumb={breadcrumbs[length - 2]} withBackIcon />\n </ol>\n </nav>\n );\n\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n {breadcrumbs.map((b, idx) => <BreadcrumbItem key={idx} breadcrumb={b} />)}\n </ol>\n </nav>\n );\n};\n\nexport const PartialBreadcrumbs = React.memo(function({ numItems = 3 }: { numItems?: number; }) {\n const isMobile = useMediaQuery(MediaQueryStrings.XS);\n\n if (isMobile) {\n return (\n <div className='partial-loading-background' style={{ height: '1.3125rem', width: '6rem' }} />\n );\n }\n\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n {PartialLoadingHelper.getPartialLoadingItems({ numItems }).map(({ width }, idx) => (\n <li key={idx} className='breadcrumb-item'>\n <span className='d-inline-block partial-loading-background' style={{ width }} dangerouslySetInnerHTML={{ __html: ' ' }} />\n </li>\n ))}\n </ol>\n </nav>\n );\n});","// extracted by mini-css-extract-plugin\nexport default {\"partialOptions\":\"Gufgq\",\"partialName\":\"SicQQ\",\"partialDescription\":\"dPGMq\",\"partialThumbnail\":\"vZrnb\",\"partialDragHandle\":\"iq73R\"};","import React from 'react';\nimport { Col, Row } from 'react-bootstrap';\n\nimport { VideoListHelper } from 'libs/shared/components/video-list/VideoListHelper';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\n\nimport styles from './partial-video-list.scss';\n\ninterface PartialVideoListProps {\n withReordering?: boolean;\n numVideos?: number;\n allowBulkActions?: boolean;\n}\n\nPartialVideoList.defaultProps = {\n numVideos: 15\n};\n\nexport function PartialVideoList(props: PartialVideoListProps): JSX.Element {\n return (\n <div className='mx-2'>\n {Array(props.numVideos).fill(null).map((_, i) => (\n <div className='d-flex' key={i}>\n {props.allowBulkActions && <div className='form-check pe-3 pe-sm-2 mx-0 mx-md-2' />}\n <PartialVideoItem {...props} />\n </div>\n ))}\n </div>\n );\n}\n\nexport function PartialVideoItem(props: PartialVideoListProps): JSX.Element {\n const breakpoints = useBreakpoints();\n\n const size = VideoListHelper.getSize(breakpoints, 'md');\n const isSmall = size === 'sm';\n\n const withDragHandle = props.withReordering && !breakpoints.xs;\n\n return (\n <Row className={`${isSmall ? '' : 'py-2'} flex-grow-1`}>\n <Col {...VideoListHelper.getThumbnailColumns()} className={`flex-column align-items-flex-start ${isSmall ? `pb-2 pe-1` : 'mb-1 pe-3 pe-md-2'}`}>\n <Row>\n {!!withDragHandle && (\n <div className='d-flex align-items-center justify-content-center col-2'>\n <div className={`partial-loading-background ${styles.partialDragHandle}`} />\n </div>\n )}\n <Col xs={VideoListHelper.getThumbnailColSize(withDragHandle)}>\n <div className={`partial-loading-background ${isSmall ? 'rounded' : 'rounded-3'} ${styles.partialThumbnail}`} />\n </Col>\n </Row>\n </Col>\n <Col {...VideoListHelper.getDetailsColumns()} className={isSmall ? 'pb-2' : 'px-2'}>\n <div className={`partial-loading-background mb-1 ${styles.partialName}`} />\n <div className={`partial-loading-background ${styles.partialDescription}`} />\n </Col>\n </Row>\n );\n}\n\n","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};","// extracted by mini-css-extract-plugin\nexport default {\"banner\":\"B7jhq\"};","import * as React from 'react';\nimport { Spinner } from 'react-bootstrap';\n\nimport { StorageType } from 'libs/common/backbone/utils/LocalStorageHelper';\nimport { Core } from 'libs/common/core';\nimport { useViewModel } from 'libs/common/react/hooks/UseViewModel';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { IconButton } from 'libs/shared/components/icon-button/IconButton';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { SharedViewModelKeys } from 'libs/shared/constants/SharedViewModelKeys';\nimport { Classification, PresentationAudience } from 'libs/shared/interfaces';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport styles from './classification-banner.scss';\n\nconst namespace = 'contentUpdates.classificationBanner';\n\ninterface ClassificationBannerProps {\n classification: Classification;\n backgroundUrl: string;\n getClassificationAppLink: (classification: Classification, activeAudiences: PresentationAudience[]) => Core.AppLink;\n followed: boolean;\n follow: (classificationId: string, classificationName: string, follow: boolean) => void;\n showFollowSpinner: boolean;\n canFollow: boolean;\n}\n\nexport function ClassificationBanner(props: ClassificationBannerProps): JSX.Element {\n const { classification, backgroundUrl, followed, follow, showFollowSpinner } = props;\n\n const [activeAudiences] = useViewModel<PresentationAudience[]>(\n SharedViewModelKeys.AUDIENCE_FILTER,\n undefined,\n { storage: StorageType.SessionStorage }\n );\n\n return (\n <div\n className={`banner mb-2 d-flex justify-content-between align-items-center rounded ${styles.banner}`}\n style={{ backgroundImage: `url('${backgroundUrl}')` }}\n >\n <AppLink className='text-white text-shadow' appLink={props.getClassificationAppLink(classification, activeAudiences)}>\n <h2 className='h3 mb-0'>{classification.name}</h2>\n </AppLink>\n\n {props.canFollow && (\n <IconButton\n className={`btn follow-btn ${followed ? 'btn-outline-dark' : 'btn-dark'}`}\n svgName={followed ? cvSvgLibrary.BellFilled : cvSvgLibrary.Bell}\n onClick={() => follow(classification.id, classification.name, !followed)}\n >\n {showFollowSpinner\n ? <Spinner as='span' animation='border' role='status' size='sm' />\n : <Text namespace={namespace} phrase={followed ? 'following' : 'follow'} />\n }\n </IconButton>\n )}\n </div>\n );\n}\n","import * as React from 'react';\n\nimport { Core } from 'libs/common/core';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { Classification } from 'libs/shared/interfaces';\n\nconst namespace = 'playlists.liteClassificationUpdateBreadcrumbs';\n\ninterface ClassificationUpdateBreadcrumbsProps {\n classification: Classification;\n contentUpdatesAppLink: Core.AppLink;\n dashboardAppLink: Core.AppLink;\n}\n\nexport function ClassificationUpdateBreadcrumbs(\n props: ClassificationUpdateBreadcrumbsProps\n): JSX.Element {\n const { classification } = props;\n\n return (\n <>\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb p-0 mb-0'>\n <li className='breadcrumb-item'>\n <AppLink appLink={props.dashboardAppLink}><Text namespace={namespace} phrase='dashboard' /></AppLink>\n </li>\n <li className='breadcrumb-item'>\n <AppLink appLink={props.contentUpdatesAppLink}><Text namespace={namespace} phrase='whatsNew' /></AppLink>\n </li>\n <li className='breadcrumb-item active' aria-current='page'>{classification.name}</li>\n </ol>\n </nav>\n </>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"partialBanner\":\"DKukI\"};","import React from 'react';\n\nimport { PartialBreadcrumbs } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { PartialVideoList } from 'libs/shared/components/video-list/partial-loading/PartialVideoList';\n\nimport styles from './partial-classification-update.scss';\n\nexport function PartialClassificationUpdate(): JSX.Element {\n return (\n <div className='bg-white px-3'>\n <div className={`partial-loading-background mb-2 ${styles.partialBanner} rounded`} />\n\n <div className='mb-1'>\n <PartialBreadcrumbs />\n </div>\n\n <PartialVideoList />\n </div>\n );\n}","\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { EntityType, LocationContext, ToggleDescriptor, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { PreferenceRequests } from 'libs/shared/flight-requests/PreferenceRequests';\nimport { Alerts } from 'libs/shared/hooks/UseAlerts';\nimport { CurrentUser } from 'libs/shared/interfaces';\n\nconst namespace = 'contentUpdates.classificationUpdate';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface ClassificationViewCallbackManager {\n dispatch: React.Dispatch<Flight.RequestAction>;\n alerts: Alerts;\n setShowFollowSpinner: React.Dispatch<React.SetStateAction<boolean>>;\n currentUser: CurrentUser;\n}\n\nexport function getClassificationCallbacks(\n options: ClassificationViewCallbackManager\n) {\n const { dispatch, alerts, setShowFollowSpinner } = options;\n\n function onFollow(classificationId: string, classificationName: string, follow: boolean): void {\n setShowFollowSpinner(true);\n\n const onSuccess = () => {\n setShowFollowSpinner(false);\n\n AnalyticsHelper.logUserAction({\n id: classificationId,\n name: classificationName\n }, {\n location: LocationContext.ContentUpdatesClassificationBanner,\n workflowPhase: WorkflowPhase.Complete,\n descriptor: follow ? ToggleDescriptor.On : ToggleDescriptor.Off,\n actionType: UserAction.Follow,\n entity: EntityType.Classification\n });\n\n alerts.success(getPhrase(follow ? 'followed' : 'unfollowed', { name: classificationName, escapeText: true }));\n };\n\n const onError = () => {\n setShowFollowSpinner(false);\n alerts.error(LanguageService.getPhrase(namespace, 'error'));\n };\n\n const request = follow ?\n PreferenceRequests.followSubjects([classificationId], onSuccess, onError) :\n PreferenceRequests.unfollowSubjects([classificationId], onSuccess, onError);\n\n Flight.fetch(dispatch, request);\n }\n\n return {\n onFollow\n };\n}\n","import * as React from 'react';\nimport { useDispatch } from 'react-redux';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { ContentUpdateRequests } from 'libs/shared/apps/content-updates/flight-requests/ContentUpdateRequests';\nimport { ClassificationVideosGrouping, ContentUpdateAppLinks } from 'libs/shared/apps/content-updates/interfaces';\nimport { VideoList } from 'libs/shared/components/video-list/VideoList';\nimport { VideoActionsContext } from 'libs/shared/context/VideoActionsContext';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { CustomerRequests } from 'libs/shared/flight-requests/CustomerRequests';\nimport { PreferenceRequests } from 'libs/shared/flight-requests/PreferenceRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { Classification, CurrentUser, YearGroup } from 'libs/shared/interfaces';\nimport { PageMetadataHelper } from 'libs/shared/utils/PageMetadataHelper';\n\nimport { usePluginHelper } from 'shared/hooks/use-plugin-helper/usePluginHelper';\nimport { useVideoActions, VideoActionsLocation } from 'shared/hooks/use-video-actions/useVideoActions';\nimport { useLiteFavourites } from 'shared/hooks/useLiteFavourites';\nimport { usePresentationAudiences } from 'shared/hooks/usePresentationAudiences';\nimport { useVideoMixin } from 'shared/hooks/useVideoMixin';\nimport { InteractiveHelpers } from 'shared/utils/InteractiveHelper';\nimport { SeoHelper } from 'shared/utils/SeoHelper';\nimport { VideoAppLinkHelper } from 'shared/utils/VideoAppLinkHelper';\n\nimport { ClassificationBanner, ClassificationUpdateBreadcrumbs } from 'apps/content-updates/components';\n\nimport { PartialClassificationUpdate } from './partial-loading/PartialClassificationUpdate';\nimport { getClassificationCallbacks } from './ClassificationUpdateViewCallbacks';\n\nconst namespace = 'contentUpdates.classificationUpdate';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface ClassificationUpdateViewProps {\n classificationId: string;\n appLinks: ContentUpdateAppLinks;\n presentationSlug?: string;\n}\n\nexport function ClassificationUpdateView(props: ClassificationUpdateViewProps): JSX.Element {\n const { classificationId } = props;\n\n const { isPlugin } = usePluginHelper();\n\n const dispatch = useDispatch();\n const alerts = useAlerts();\n const { setFavourite, canFavourite } = useLiteFavourites(LocationContext.VideoThumbnail);\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const yearGroups = Flight.useBasicFetch<YearGroup[]>(\n currentUser.data?.isAuthenticated && CustomerRequests.yearGroups(currentUser.data.customerId)\n );\n\n const [ showFollowSpinner, setShowFollowSpinner ] = React.useState(false);\n\n const callbacks = getClassificationCallbacks({\n dispatch,\n alerts,\n setShowFollowSpinner,\n currentUser: currentUser?.data\n });\n\n const date = new Date();\n // Retrieve the past 1 year from today\n const from = DateHelper.format(DateHelper.endOf(DateHelper.subtract(date, 1, 'year'), 'day'), 'YYYY-MM-DD');\n const to = DateHelper.format(DateHelper.endOf(date, 'day'), 'YYYY-MM-DD');\n\n const { hasPermissions } = usePermissions();\n const canFollowSubjects = hasPermissions(PermissionName.FollowSubjects);\n\n const classification = Flight.useBasicFetch<Classification>(\n ContentUpdateRequests.getClassification(classificationId)\n );\n\n const contentUpdates = Flight.useBasicFetch<ClassificationVideosGrouping>(currentUser.data &&\n ContentUpdateRequests.getClassificationUpdates(classificationId, from, to));\n\n const subjectPreferences = Flight.useBasicFetch<Classification[]>(canFollowSubjects &&\n PreferenceRequests.mySubjectPreferences());\n\n const audiences = usePresentationAudiences();\n\n useSetPageMetadata(PageMetadataHelper.getDefaultMetadata({\n title: classification.data?.name,\n phraseContext: {\n phraseHandler: getPhrase,\n titlePhrase: 'pageTitle',\n descriptionPhrase: 'pageDescription'\n },\n canonicalLink: SeoHelper.getCanonicalLink(),\n allowIndexing: SeoHelper.allowIndexing()\n }));\n\n const videoActions = useVideoActions({ location: VideoActionsLocation.VideoItem });\n\n useVideoMixin(contentUpdates.data?.videos ?? []);\n\n const hasLoadedPreferences = subjectPreferences.hasCompleted || !canFollowSubjects;\n\n const dataLoaded = (\n contentUpdates.data && classification.data &&\n hasLoadedPreferences && currentUser.data\n );\n\n if (!dataLoaded)\n return <PartialClassificationUpdate />;\n\n const preferredSubjectIds = subjectPreferences.data?.map(subject => subject.id) ?? [];\n\n return (\n <VideoActionsContext.Provider value={videoActions}>\n <div className='bg-white px-3'>\n <ClassificationBanner\n classification={classification.data}\n backgroundUrl={classification.data.banner?.url ?? ''}\n getClassificationAppLink={props.appLinks.getClassificationAppLink}\n followed={!!preferredSubjectIds.find(id => id.toString() === classification.data.id.toString())}\n follow={callbacks.onFollow}\n showFollowSpinner={showFollowSpinner}\n canFollow={canFollowSubjects}\n />\n <ClassificationUpdateBreadcrumbs\n classification={classification.data}\n dashboardAppLink={props.appLinks.dashboardAppLink}\n contentUpdatesAppLink={props.appLinks.whatsNewAppLink}\n />\n\n <VideoList\n videos={contentUpdates.data.videos}\n yearGroups={yearGroups.data}\n getVideoAppLink={props.appLinks.getVideoAppLink}\n getSubTextAppLink={video => props.appLinks.getSeriesAppLink(video.series)}\n setFavourite={setFavourite}\n canFavourite={canFavourite}\n hasPermissions={hasPermissions}\n presentationAudiences={audiences.data}\n getPreviewQuestionsAppLink={interactive => InteractiveHelpers.getPreviewQuestionsAppLink(interactive)}\n isPlugin={isPlugin}\n getClassroomGuideAppLink={VideoAppLinkHelper.getClassroomGuideAppLink}\n getInteractiveGuidanceAppLink={VideoAppLinkHelper.getInteractiveGuidanceAppLink}\n getResourceGuidanceAppLink={VideoAppLinkHelper.getResourceGuidanceAppLink}\n />\n </div>\n </VideoActionsContext.Provider>\n );\n}","import { Flight } from 'libs/common/react/index';\n\nimport { AudienceRequests } from 'libs/shared/flight-requests/AudienceRequests';\nimport { PresentationAudience } from 'libs/shared/interfaces';\n\nimport { usePresentation } from 'shared/hooks/usePresentation';\n\nexport const usePresentationAudiences = () => {\n const { activePresentation, getFallbackPresentation } = usePresentation({ redirectOnError: true });\n\n const presentation = activePresentation || getFallbackPresentation();\n\n const audiences = Flight.useBasicFetch<PresentationAudience[]>(\n !!presentation &&\n AudienceRequests.presentationAudiences(presentation.id)\n );\n\n return audiences;\n};","import React from 'react';\n\nimport { Flight } from 'libs/common/flight';\n\nimport { ClassificationRequests } from 'libs/shared/flight-requests/ClassificationRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\nimport { Clip, ClipCollection, CurrentUser, Video, VideoCollection } from 'libs/shared/interfaces';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\ntype Types = Video[] | VideoCollection | Clip[] | ClipCollection;\n\nfunction getValidObjects(objects: Types): (Video | Clip)[] {\n if (!objects)\n return [];\n\n if (Array.isArray(objects))\n return objects.filter(o => !!o && (VideoHelper.isVideo(o) || VideoHelper.isClip(o)));\n\n if ('data' in objects)\n return objects.data.filter(o => !!o && (VideoHelper.isVideo(o) || VideoHelper.isClip(o)));\n\n return [];\n}\n\ninterface VideoMixinOptions {\n /**\n * If the videos that are having new data mixed into are sitting on an explicit Flight namespace,\n * providing that namespace here is required\n */\n flightNamespace?: string;\n}\n\nexport function useVideoMixin(objects: Types, options: VideoMixinOptions = {}): void {\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n\n const hydratedVideos = React.useRef<Set<string>>(new Set<string>());\n\n const videos = getValidObjects(objects);\n\n const videoIds = videos.map(v => v.id);\n\n const [ request, setRequest ] = React.useState<Flight.Request[]>([]);\n\n React.useEffect(() => {\n if (!videoIds?.length || !currentUser.hasCompleted)\n return;\n\n const unhydratedVideos: string[] = [];\n\n videoIds.forEach(id => {\n if (!hydratedVideos.current.has(id)) {\n unhydratedVideos.push(id);\n hydratedVideos.current.add(id);\n }\n });\n \n if (!unhydratedVideos.length)\n return;\n\n setRequest(r => {\n const newRequests = [\n ...r,\n VideoRequests.videoMixinAssocs(unhydratedVideos, options.flightNamespace)\n ];\n\n if (currentUser.data?.isAuthenticated)\n newRequests.push(ClassificationRequests.hasCurriculumLinks(unhydratedVideos, null, options.flightNamespace));\n\n return newRequests;\n });\n }, [ videoIds?.length, currentUser.hasCompleted ]);\n\n Flight.useBasicFetchAll(request);\n}","\"use client\";\n\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix, useBootstrapBreakpoints, useBootstrapMinBreakpoint } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst Row = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'div',\n ...props\n}, ref) => {\n const decoratedBsPrefix = useBootstrapPrefix(bsPrefix, 'row');\n const breakpoints = useBootstrapBreakpoints();\n const minBreakpoint = useBootstrapMinBreakpoint();\n const sizePrefix = `${decoratedBsPrefix}-cols`;\n const classes = [];\n breakpoints.forEach(brkPoint => {\n const propValue = props[brkPoint];\n delete props[brkPoint];\n let cols;\n if (propValue != null && typeof propValue === 'object') {\n ({\n cols\n } = propValue);\n } else {\n cols = propValue;\n }\n const infix = brkPoint !== minBreakpoint ? `-${brkPoint}` : '';\n if (cols != null) classes.push(`${sizePrefix}${infix}-${cols}`);\n });\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n ...props,\n className: classNames(className, decoratedBsPrefix, ...classes)\n });\n});\nRow.displayName = 'Row';\nexport default Row;"],"names":["ContentUpdateRequests","getContentUpdates","presentationId","from","to","gatewayApiUrl","url","limit","query","publicUrl","key","normalizeOptions","namespace","formatData","contentUpdates","map","contentUpdate","id","classificationId","videos","getClassifications","ids","join","getClassification","getClassificationUpdates","getContentUpdateVideos","success","BreadcrumbItem","breadcrumb","name","appLink","active","withBackIcon","className","svgName","size","S","Breadcrumbs","breadcrumbs","isMobile","length","b","idx","PartialBreadcrumbs","numItems","style","height","width","dangerouslySetInnerHTML","__html","PartialVideoList","props","Array","numVideos","fill","_","i","allowBulkActions","PartialVideoItem","breakpoints","useBreakpoints","isSmall","VideoListHelper","withDragHandle","withReordering","xs","Row","Col","defaultProps","DEFAULT_PARTIAL_LOADING_OPTIONS","minWidth","maxWidth","PartialLoadingHelper","getPartialLoadingItems","options","opts","Math","max","floor","random","ClassificationBanner","classification","backgroundUrl","followed","follow","showFollowSpinner","activeAudiences","SharedViewModelKeys","undefined","storage","backgroundImage","getClassificationAppLink","canFollow","IconButton","onClick","Spinner","as","animation","role","phrase","ClassificationUpdateBreadcrumbs","dashboardAppLink","contentUpdatesAppLink","PartialClassificationUpdate","getPhrase","LanguageService","ClassificationUpdateView","isPlugin","usePluginHelper","dispatch","alerts","useLiteFavourites","u","setFavourite","canFavourite","currentUser","UserRequests","yearGroups","data","isAuthenticated","CustomerRequests","customerId","callbacks","setShowFollowSpinner","onFollow","classificationName","onSuccess","AnalyticsHelper","location","workflowPhase","descriptor","actionType","entity","escapeText","onError","error","request","PreferenceRequests","getClassificationCallbacks","date","Date","DateHelper","hasPermissions","usePermissions","canFollowSubjects","PermissionName","subjectPreferences","audiences","usePresentationAudiences","useSetPageMetadata","PageMetadataHelper","title","phraseContext","phraseHandler","titlePhrase","descriptionPhrase","canonicalLink","SeoHelper","allowIndexing","videoActions","useVideoActions","useVideoMixin","hasLoadedPreferences","hasCompleted","preferredSubjectIds","subject","VideoActionsContext","value","banner","appLinks","find","toString","whatsNewAppLink","VideoList","getVideoAppLink","getSubTextAppLink","video","getSeriesAppLink","series","presentationAudiences","getPreviewQuestionsAppLink","interactive","InteractiveHelper","getClassroomGuideAppLink","VideoAppLinkHelper","getInteractiveGuidanceAppLink","getResourceGuidanceAppLink","redirectOnError","activePresentation","getFallbackPresentation","presentation","objects","hydratedVideos","Set","isArray","filter","o","getValidObjects","videoIds","v","setRequest","unhydratedVideos","forEach","current","has","push","add","r","newRequests","flightNamespace","bsPrefix","Component","ref","decoratedBsPrefix","minBreakpoint","sizePrefix","classes","brkPoint","propValue","cols","infix","displayName"],"sourceRoot":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[5595],{50690:(e,t,a)=>{a.d(t,{b:()=>r});var n=a(12788),r={renderInPortalIfExists:function(e,t){return t?(0,n.createPortal)(e,t):e}}},84963:(e,t,a)=>{a.d(t,{r:()=>d});var n=a(32735),r=a(23481),o=a(83914),l=a(76177),i=a(35223);const c={tag:"XRj8d",tooltip:"X6mLk"};var s="specialEventCalendar.comingSoonTag";function d(e){return n.createElement(l.u,{title:r.T.getPhrase(s,"tooltip"),spanHackClassName:"d-block ".concat(c.tooltip),spanHack:!0},n.createElement("div",{className:"d-flex text-dark align-items-center ".concat(c.tag," ").concat(e.className)},n.createElement(o.x,{svgName:i.vn.Timer}),!e.onlyIcon&&r.T.getPhrase(s,"comingSoon")))}},73679:(e,t,a)=>{a.d(t,{s:()=>l});var n=a(32735),r=a(36848);const o={dateItem:"I3SBm",label:"PRORs",body:"RfiM_",bodyDay:"ZOVny",bodyRange:"vYhXN",bodyMonth:"mYslO",month:"EPkkQ"};function l(e){var t,a,l;return n.createElement(r.F,{appLink:null===(t=e.getAppLink)||void 0===t?void 0:t.call(e),className:"text-decoration-none text-center bg-white text-dark border border-3 ".concat(null===(a=e.theme)||void 0===a?void 0:a.border," rounded-3 d-block fw-semibold ").concat(e.className),analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions},n.createElement("div",{className:"position-relative ".concat(o.dateItem)},n.createElement("div",{className:"".concat(null===(l=e.theme)||void 0===l?void 0:l.background," py-1 ").concat(o.label," d-flex align-items-center justify-content-center")},e.label?e.label:n.createElement(n.Fragment,null," ")),n.createElement("div",{className:"".concat(function(){switch(e.body.type){case"range":return o.bodyRange;case"day":return o.bodyDay;case"month":return o.bodyMonth}}()," ").concat(o.body," my-2")},e.body.text),n.createElement("div",{className:"mb-0 ".concat(o.month)},e.month)))}},83657:(e,t,a)=>{a.d(t,{e:()=>s});var n=a(32735),r=a(91967),o=a(10874),l=a(76177),i=a(42735),c=a(86509);function s(e){var t=n.useMemo((function(){return e.actions.sort((function(e,t){return e.order-t.order}))}),[e.actions]),a=[],s=[];t.forEach((function(e){e.button?a.push(e):s.push(e)}));var d="d-flex";return e.className&&(d+=" ".concat(e.className)),a.length||s.length?n.createElement("div",{className:d},a.length?a.map((function(t,a){return n.createElement(n.Fragment,{key:a},function(){if(t.label){var a=r.q.isFunction(t.label)?t.label:function(){return n.createElement(n.Fragment,null,t.label)};return n.createElement(i.K,{appLink:t.appLink,href:t.href,onClick:t.onClick,svgName:t.svgName,svgSize:e.dropdownToggleSvgSize,className:t.className,tooltip:t.tooltip,showSpinner:t.showSpinner,analyticsData:t.analyticsData,analyticsOptions:t.analyticsOptions,openInNewTab:t.openInNewTab,disabled:t.disabled},a())}var c=n.createElement(o.h,{appLink:t.appLink,href:t.href,onClick:t.onClick,svgName:t.svgName,className:t.className,analyticsData:t.analyticsData,analyticsOptions:t.analyticsOptions,openInNewTab:t.openInNewTab,disabled:t.disabled,showBorder:t.showBorder,customSize:e.customSize});return t.tooltip?n.createElement(l.u,{title:t.tooltip,spanHack:!0},c):c}())})):n.createElement(n.Fragment,null),e.sortComponent&&e.sortComponent,s.length?n.createElement(c.m,{actions:s,dropdownToggleClassName:e.actionsDropdownClassName,dropdownToggleSvgSize:e.dropdownToggleSvgSize,fetchMore:e.fetchMore}):n.createElement(n.Fragment,null)):n.createElement(n.Fragment,null)}},86509:(e,t,a)=>{a.d(t,{m:()=>f});var n=a(32735),r=a(91967),o=a(81886),l=a(45157),i=a(49985),c=a(36848),s=a(83914),d=a(76177),m=a(35223);const u={dropdownToggle:"UCAnJ"};function g(){return n.createElement(n.Fragment,null,n.createElement("div",{style:{padding:"0.53125rem 1rem"}},n.createElement("div",{className:"partial-loading-background",style:{height:"1.0625rem",width:"8rem"}})),n.createElement("div",{style:{padding:"0.53125rem 1rem"}},n.createElement("div",{className:"partial-loading-background",style:{height:"1.0625rem",width:"12rem"}})),n.createElement("div",{style:{padding:"0.53125rem 1rem"}},n.createElement("div",{className:"partial-loading-background",style:{height:"1.0625rem",width:"11rem"}})),n.createElement("div",{style:{padding:"0.53125rem 1rem"}},n.createElement("div",{className:"partial-loading-background",style:{height:"1.0625rem",width:"9rem"}})))}function p(e){var t="dropdown-item";return e&&(t+=" ".concat(e)),t}function v(e){var t=r.q.isFunction(e.action.label)?e.action.label:function(){return n.createElement(n.Fragment,null,e.action.label)};if(e.action.appLink)return n.createElement(c.F,{appLink:e.action.appLink,onClick:e.action.onClick,className:p(e.action.className),analyticsData:e.action.analyticsData,analyticsOptions:e.action.analyticsOptions,openInNewTab:e.action.openInNewTab,disabled:e.action.disabled},e.action.svgName&&n.createElement(s.x,{svgName:e.action.svgName,className:"d-inline-block svg-container me-2 align-middle"}),n.createElement("span",{className:"align-middle"},t()));function a(t){t.preventDefault(),e.action.analyticsData&&e.action.analyticsOptions&&i.k.logUserAction(e.action.analyticsData,e.action.analyticsOptions),r.q.isFunction(e.action.onClick)&&e.action.onClick(),e.action.href&&o.Q.Ab.PageLoad(e.action.href,e.action.openInNewTab)}return e.action.href?n.createElement("a",{className:p(e.action.className),onClick:a,href:e.action.href},e.action.svgName&&n.createElement(s.x,{svgName:e.action.svgName,className:"d-inline-block svg-container me-2 align-middle"}),n.createElement("span",{className:"align-middle"},t())):n.createElement("span",{className:"cursor-pointer ".concat(p(e.action.className)),onClick:a,role:"button",tabIndex:0,onKeyDown:function(e){return"Enter"===e.key&&a(e)}},e.action.svgName&&n.createElement(s.x,{svgName:e.action.svgName,className:"d-inline-block svg-container me-2"}),t())}function f(e){if(!e.actions||!e.actions.length)return n.createElement(n.Fragment,null);var t=e.actions.some((function(e){return e.lazyPlaceholder})),a="dropdown";e.className&&(a+=" ".concat(e.className));var r,o="actions-dropdown-".concat(l.Y.getRandomInt()),i="dropdown-toggle px-0 ".concat(u.dropdownToggle);return e.dropdownToggleClassName&&(i+=" ".concat(e.dropdownToggleClassName)),n.createElement("div",{className:a},n.createElement("button",{className:i,type:"button",id:o,"data-bs-toggle":"dropdown","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false","aria-label":"More actions dropdown",onClick:t?e.fetchMore:null},n.createElement(s.x,{svgName:m.vn.More,size:e.dropdownToggleSvgSize})),n.createElement("ul",{className:"dropdown-menu dropdown-menu-end dropdown-menu-right font-size-normal","aria-labelledby":o},t?n.createElement(g,null):e.actions.map((function(e,t){var a=void 0!==r&&r!==e.group;return r=e.group,e.tooltip?n.createElement("li",{key:t},a&&n.createElement("hr",{className:"dropdown-divider",role:"separator"}),n.createElement(d.u,{title:e.tooltip,spanHack:!0},n.createElement(v,{action:e}))):n.createElement("li",{key:t},a&&n.createElement("hr",{className:"dropdown-divider",role:"separator"}),n.createElement(v,{action:e}))}))))}f.defaultProps={dropdownToggleClassName:"btn btn-light",dropdownToggleSvgSize:s.S.Small}},44522:(e,t,a)=>{a.d(t,{p:()=>x,v:()=>S});var n=a(32735),r=a(110),o=a(50690),l=a(84963),i=a(73679),c=a(83657),s=a(23481),d=a(36848),m=a(83914),u=a(35223),g="shared.backButton";function p(e){var t=Object.assign({textShadow:!0},e),a=t.backToName,r=t.appLink,o=t.color,l=t.extraClasses,i=t.textShadow,c=a?s.T.getPhrase(g,"backTo",{backToName:a}):s.T.getPhrase(g,"back"),p="black"===o?"":"text-white",v=i?"text-shadow":"";return n.createElement(d.F,{appLink:r,className:"d-inline-flex align-items-center h5 mb-0 ".concat(l," ").concat(p," ").concat(v)},n.createElement(m.x,{svgName:u.vn.ChevronLeft,size:m.S.Medium}),n.createElement("span",{className:"ms-1"},c))}p.defaultProps={color:"black",extraClasses:""};var v=a(36518),f=a(83345),b=a(10587),h=a(94232),y=a(54610),E=a(79967),N=a(67453);const k={bannerContent:"sSCTB",actionsContainer:"Z5WI2",bannerContentWithLogo:"rgs7Q",container:"M51HJ",logoContainer:"vkeJk",logoContainerLeft:"M3U9B",logoHeading:"EtRwC",specialEventContainer:"rOxDc",headingLarge:"_8pnV",heading:"JXVBH"};var w="".concat(b.y[y.__.Banners].width,":").concat(b.y[y.__.Banners].height);function C(e){return e.length<160?"h1":k.headingLarge}var x=n.memo((function(e){var t,a,s,d,m=e.heading,u=e.banner,g=e.imageCdnUrl,b=e.actions,x=e.sortComponent,S=e.blockColourClass,L=e.specialEvent,D=n.useContext(h.n),F=(0,E.k)().xxl?1920:1200,T=n.useMemo((function(){if(!L||e.showComingSoon)return!1;var t=r.O.format(new Date,"YYYY-MM-DD");return L.endDate?L.startDate<=t&&L.endDate>=t:L.startDate===t}),[L]),O=e.imageOptions||{width:F,ratio:w,resizeType:y.Nq.Cover},A=!!u&&!!g&&N.j.createBannerUrl(u,{fallbackBaseUrl:g,fallbackCategoryName:m,type:y.__.Banners},O),I={className:"banner banner-header ".concat(e.bannerClassName),style:A?{backgroundImage:"url('".concat(A,"')")}:{}};!u&&S&&(delete I.style,I.className+=" ".concat(S));var j=e.detailsComponent;return o.b.renderInPortalIfExists(n.createElement("header",Object.assign({},I),n.createElement("div",{className:"container ".concat(k.container," position-relative inner-banner")},e.backButtonAppLink&&n.createElement("div",{className:"pt-3"},n.createElement(p,{appLink:e.backButtonAppLink,backToName:e.backButtonText,extraClasses:e.backButtonClasses,color:"white"})),n.createElement("div",{className:"".concat(e.alignLogoLeft?"position-absolute top-50 start-0 translate-middle-y w-100 ps-4":"".concat(k.bannerContent," px-2 ").concat((null===(t=e.logo)||void 0===t?void 0:t.url)?k.bannerContentWithLogo:""))},!!L&&n.createElement("div",{className:"position-relative ".concat(k.specialEventContainer)},n.createElement(i.s,{body:{type:L.endDate?"range":"day",text:L.endDate?"".concat(r.O.format(L.startDate,"DD"),"-").concat(r.O.format(L.endDate,"DD")):r.O.format(L.startDate,"DD")},month:r.O.format(L.startDate,"MMMM"),theme:e.calendarTheme})),n.createElement("div",null,T&&n.createElement("div",{className:"rounded-pill py-1 px-2 my-1 me-1 fw-semibold bg-light-blue lh-1 d-inline-block"},n.createElement(f.x,{namespace:"shared.bannerHeader",phrase:"onToday"})),e.showComingSoon&&n.createElement(l.r,{className:"pe-2 fw-semibold mb-1 rounded-pill justify-content-start text-nowrap"}),n.createElement("div",{className:"d-flex align-items-center"},e.alignLogoLeft&&n.createElement("div",{className:"".concat(k.logoContainerLeft," d-none d-md-block partial-loading-background rounded-circle overflow-hidden me-3")},(null===(a=e.logo)||void 0===a?void 0:a.url)&&n.createElement(v.w,{src:N.j.createUrl(null===(s=e.logo)||void 0===s?void 0:s.url,{size:y.h2.Medium})})),n.createElement("h1",{className:"text-white text-shadow pe-3 position-static ".concat(k.heading," ").concat(C(m)," ").concat(e.alignLogoLeft?"w-50":"")},m,j&&n.createElement(j,null)))),!!b&&n.createElement("div",{className:k.actionsContainer},n.createElement(c.e,{actions:b,sortComponent:x,actionsDropdownClassName:e.actionsDropdownClassName}))),!e.alignLogoLeft&&!!(null===(d=e.logo)||void 0===d?void 0:d.url)&&n.createElement("div",{className:k.logoContainer},n.createElement("img",{src:N.j.createUrl(e.logo.url,{size:y.h2.Small}),className:"rounded-circle"})))),null==D?void 0:D.container)}),(function(e,t){var a,n;return e.actions===t.actions&&e.heading===t.heading&&(null===(a=e.logo)||void 0===a?void 0:a.url)===(null===(n=t.logo)||void 0===n?void 0:n.url)}));function S(){var e=n.useContext(h.n);return o.b.renderInPortalIfExists(n.createElement("div",{className:"partial-banner partial-loading-background ".concat(k.banner)}),null==e?void 0:e.container)}},11921:(e,t,a)=>{a.d(t,{F:()=>i});var n=a(32735),r=a(35223),o=a(83914);var l=function(e){switch(e){case"up":return"JAT0R";case"down":return"ld41u";case"right":return"HHkPe";case"left":return"jZTRR"}};function i(e){return n.createElement(o.x,{svgName:r.vn.Caret,className:"".concat(l(e.direction)," svg-container d-inline-block ").concat(e.className)})}i.defaultProps={direction:"right"}},88711:(e,t,a)=>{a.d(t,{j:()=>o});var n=a(32735),r=a(20455);function o(e){var t,a,o=(0,r.O1)(Object.assign(Object.assign({},e.draggable),{disabled:!e.draggable,attributes:{role:"drag",tabIndex:-1}})),l=o.active,i=o.isDragging,c=o.attributes,s=o.listeners,d=o.setNodeRef,m=(0,r.Zj)(Object.assign(Object.assign({},e.droppable),{disabled:!e.droppable})),u=m.isOver,g=m.over,p=m.active,v=m.setNodeRef;return n.useEffect((function(){var t,a,n,r=null===(t=e.draggable)||void 0===t?void 0:t.data;Array.isArray(r)&&(null==r?void 0:r.includes(null==l?void 0:l.id.toString()))?null===(a=e.setIsDragging)||void 0===a||a.call(e,i):null===(n=e.setIsDragging)||void 0===n||n.call(e,!1)}),[i]),n.createElement("div",Object.assign({ref:d},s,c,{className:"".concat(e.draggable?"cursor-grab":"cursor-default"," ").concat(i&&l||e.isDragging&&(a=null===(t=e.draggable)||void 0===t?void 0:t.data,Array.isArray(a)&&a.includes(e.draggable.id.toString()))?e.dragStyle:null)}),n.createElement("div",{ref:v,className:p&&u&&(null==l?void 0:l.id)!==(null==g?void 0:g.id)?e.dropStye:null},e.children))}},83834:(e,t,a)=>{a.d(t,{$:()=>N});var n=a(32735),r=a(57900),o=a(11921),l=a(11607),i=a(97395),c=a(83657),s=a(36848),d=a(88711),m=a(75163),u=a(5465),g=a(54610);const p={actions:"cN3nB",actionsContainer:"xM37V",dropStyle:"kvCLS",dragStyle:"md9Na"};function v(e){var t,a=e.folder.thumbnail?i._.urlBuilder(e.folder.thumbnail.url,{size:g.h2.Small}):null,r=null===(t=e.getFolderActions)||void 0===t?void 0:t.call(e,e.folder);return n.createElement(d.j,{draggable:e.drag&&{id:e.folder.id,data:e.folder},droppable:e.drop&&{id:e.folder.id,data:e.folder},dropStye:p.dropStyle,dragStyle:p.dragStyle},n.createElement("div",{className:"position-relative"},n.createElement(s.F,{className:"rounded-3 d-block text-decoration-none",appLink:e.getAppLink(e.folder),title:e.folder.name},n.createElement(m.Z,{data:a,imageType:g.__.Thumbnails,imageClassName:"rounded-top-lg"},n.createElement(u.oy,{name:e.folder.name,type:u.mS.Folder,extraClasses:"rounded-top-lg"})),n.createElement("h3",{className:"bg-white border-start border-end border-bottom rounded-bottom-lg font-size-normal fw-semibold mb-0 p-2"},n.createElement("span",{className:"text-truncate d-block"},e.folder.name))),(null==r?void 0:r.length)&&n.createElement(c.e,{actions:r,className:p.actionsContainer,actionsDropdownClassName:p.actions,dropdownToggleSvgSize:null})))}var f=a(83345),b=a(79967);function h(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 y="libraries.folderList",E="has:expanded:library:folders";function N(e){var t,a,i,c=(a=n.useState(r.SG.get(E)||!1),i=2,function(e){if(Array.isArray(e))return e}(a)||function(e,t){var a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var n,r,o,l,i=[],c=!0,s=!1;try{if(o=(a=a.call(e)).next,0===t){if(Object(a)!==a)return;c=!1}else for(;!(c=(n=o.call(a)).done)&&(i.push(n.value),i.length!==t);c=!0);}catch(e){s=!0,r=e}finally{try{if(!c&&null!=a.return&&(l=a.return(),Object(l)!==l))return}finally{if(s)throw r}}return i}}(a,i)||function(e,t){if(e){if("string"==typeof e)return h(e,t);var a={}.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?h(e,t):void 0}}(a,i)||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=c[0],d=c[1],m=e.expandFolders||s,u=(t=(0,b.k)()).xxl||t.xl||t.lg?6:t.md?4:3;function g(){d(!m),r.SG.set(E,!m)}var p=m?e.folders:e.folders.slice(0,u),N=e.folders.length>u&&!e.expandFolders;return n.createElement(n.Fragment,null,n.createElement("div",{className:"d-flex justify-content-between align-items-center"},e.showHeading&&n.createElement(l.L,{className:"d-inline-flex align-items-center mb-2 px-2 ".concat(N?"":"cursor-default"),onClick:g},N&&n.createElement(o.F,{direction:m?"down":"right"}),n.createElement("h2",{className:"h4 mb-0"},n.createElement(f.x,{namespace:y,phrase:"folders",options:{count:e.folders.length}}))),!(m||!N)&&n.createElement("div",{className:"d-flex justify-content-end justify-self-end px-2"},n.createElement(l.L,{onClick:g,className:"text-dark hover-text-underline d-inline-block"},n.createElement(f.x,{namespace:y,phrase:"seeAll",options:{count:e.folders.length}}))),!(!m||!N)&&n.createElement("div",{className:"d-flex justify-content-end justify-self-end px-2"},n.createElement(l.L,{onClick:g,className:"text-dark hover-text-underline d-inline-block"},n.createElement(f.x,{namespace:y,phrase:"seeLess"}))),e.extraButtons?e.extraButtons:n.createElement(n.Fragment,null)),n.createElement("div",{className:"row mx-1"},p.map((function(t){return n.createElement("div",{key:t.id,className:"col-4 col-md-3 col-lg-2 px-1 pb-3"},n.createElement(v,{folder:t,getAppLink:e.getAppLink,getFolderActions:e.getFolderActions,drag:e.drag,drop:e.drop}))}))))}N.defaultProps={showHeading:!0}},65403:(e,t,a)=>{a.d(t,{i:()=>l});var n=a(32735);const r={partialFolderHeading:"dhbsL",partialFolderThumbnail:"CI9vk",partialFolderName:"l0Nll"};var o=function(){return n.createElement("div",{className:"col-4 col-md-3 col-lg-2 px-1 pb-3"},n.createElement("div",{className:"".concat(r.partialFolderThumbnail," partial-loading-background rounded-top-lg")}),n.createElement("div",{className:"".concat(r.partialFolderName," partial-loading-background border-bottom rounded-bottom-lg font-size-normal mb-0 p-2")}," "))};function l(e){var t=e.count,a=void 0===t?3:t;return n.createElement(n.Fragment,null,n.createElement("div",{className:"".concat(r.partialFolderHeading," h4 mb-2 partial-loading-background")}," "),n.createElement("div",{className:"row mx-n1"},Array(a).fill(null).map((function(e,t){return n.createElement(o,{key:t})}))))}},94644:(e,t,a)=>{a.d(t,{r:()=>d});var n=a(50242),r=a(81886),o=a(67058),l=a(14553),i=a(49267),c=a(49075),s={notFound:o.d,forbidden:{rating:l.q,yearLevel:l.q,region:i.a,privacy:l.q},badRequest:c._};function d(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e){var o;o="number"==typeof e?e:e.status;var l=Object.assign(Object.assign({},s),t);o&&r.Q.Ry.isStatusCodeError(o)&&(o!==n.o.NotFound?o!==n.o.Forbidden?a.badRequest||r.Q.Ry.throw(new l.badRequest):a.forbidden||r.Q.Ry.throw(new l.forbidden.privacy):a.notFound||r.Q.Ry.throw(new l.notFound))}}},91286:(e,t,a)=>{a.d(t,{v:()=>l});var n=a(32735),r=a(94644);function o(e){return e.map((function(e){return e.statusCode})).join(":")}function l(e,t,a){var l=Array.isArray(e)?e:[e];(0,n.useEffect)((function(){l.forEach((function(e){(0,r.r)(e.statusCode,t,a)}))}),[o(l),t,a])}},17087:(e,t,a)=>{a.d(t,{T:()=>i});var n=a(20354),r=a(98064);function o(e){return function(e){if(Array.isArray(e))return l(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 l(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)?l(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.")}()}function l(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}function i(e){var t,a,l=e.folderId,i=e.firstItem,c=e.lastItem,s=e.getAppLink,d=n.a.useBasicFetch(r.D.folderParentTree(l));if(!(null===(a=null===(t=d.data)||void 0===t?void 0:t.children)||void 0===a?void 0:a.length))return[];for(var m=d.data.children.map((function(e){return{node:e,path:[e]}})),u=[],g=function(){var e=m.pop(),t=e.node,a=e.path;t.data.id.toString()===l.toString()&&(u=a.map((function(e){return{name:e.data.name,appLink:s(e)}}))),t.children&&m.push.apply(m,o(t.children.map((function(e){return{node:e,path:[].concat(o(a),[e])}}))))};m.length;)g();return i&&u.unshift(i),c&&u.push(c),u[u.length-1].active=!0,u}},98860:(e,t,a)=>{a.d(t,{P:()=>i});var n=a(20354),r=a(98064),o=a(3010),l=a(45719);function i(e){var t=n.a.useGetFetch();function a(t){return r.D.childFolders(e,t)}return(0,o.i)(!!e&&a,!!e&&function(e){t(a(e))}),(0,l.P)(!!e&&function(e){return a(e).key})}},21325:(e,t,a)=>{a.d(t,{o:()=>i});var n=a(32735),r=a(81886),o=a(96560),l=a(67058);function i(e){n.useEffect((function(){e.hasCompleted&&!e.hasError&&e.data.type!==o.r.CustomLibrary&&r.Q.Ry.throw(new l.d)}),[e.hasCompleted])}},8406:(e,t,a)=>{a.d(t,{Bf:()=>d,WO:()=>s,a5:()=>c});var n=a(28400),r=a(7733),o=a(17087),l=a(14070),i=a(97291);function c(e,t,a){return e&&t?{application:i.O.LIBRARIES,action:l.e.Libraries.FOLDER,args:[e,t.id,n.m.slugify(t.name)],params:{sort:a}}:null}function s(e){for(var t,a,n=0,o=0;null!==(a=o<(null===(t=e.name)||void 0===t?void 0:t.length))&&void 0!==a&&a;o++)n+=e.name.charCodeAt(o);return r.o[n%r.o.length]}function d(e,t,a){return(0,o.T)({folderId:t&&e,getAppLink:function(e){return c(t.id,e.data,a)},firstItem:{name:null==t?void 0:t.name,appLink:{application:i.O.LIBRARIES,action:l.e.Libraries.LIBRARY,args:[null==t?void 0:t.id,n.m.slugify(null==t?void 0:t.name)]}}})}},55595:(e,t,a)=>{a.r(t),a.d(t,{LibraryView:()=>x});var n=a(32735),r=a(20354),o=a(65858),l=a(43500),i=a(44522),c=a(83834),s=a(65403),d=a(10874),m=a(4201),u=a(83345),g=a(98064),p=a(31949),v=a(91286),f=a(79612),b=a(35223),h=a(68140),y=a(14070),E=a(97291),N=a(98860),k=a(21325),w=a(8406),C="libraries.library";function x(e){var t,a,x,S,L=(0,m.of)().focusSearchBar,D=r.a.useBasicFetch(g.D.domainLibraries(["customLibrary","sharedLibrary"])),F=r.a.useBasicFetch(g.D.library(e.id)),T=(0,N.P)(null===(a=null===(t=F.data)||void 0===t?void 0:t.categoryTree)||void 0===a?void 0:a.id),O=r.a.useBasicFetch(p.N.currentUser()),A=!!O.data&&h.d.getOrSetSortType(O.data.id,e.sort);return(0,f.M)({title:null===(x=F.data)||void 0===x?void 0:x.name}),(0,v.v)(F),(0,k.o)(F),n.createElement(n.Fragment,null,F.data?n.createElement(i.p,{heading:F.data.name,blockColourClass:(0,w.WO)(F.data),logo:null===(S=F.data.owner)||void 0===S?void 0:S.logo}):n.createElement(i.v,null),function(){var t,a;return(null==T?void 0:T.items)?T.items.length?n.createElement("div",{className:"mt-3 px-2"},n.createElement(c.$,{folders:T.items,getAppLink:function(t){return(0,w.a5)(e.id,t,A)},expandFolders:!0,extraButtons:n.createElement(d.h,{svgName:b.vn.Search,appLink:{application:E.O.SEARCH,action:y.e.Search.HOME,params:{source:l.fi.School}},className:"btn btn-outline-dark mb-3 me-2 d-none d-sm-inline-block",onClick:L,analyticsData:{},analyticsOptions:{entity:o.py.SearchResults,location:o.LZ.Libraries,actionType:o.Vw.Click,descriptor:o.Bk.School}},n.createElement(u.x,{namespace:C,phrase:"searchLibrary",options:{smartCount:null!==(a=null===(t=D.data)||void 0===t?void 0:t.length)&&void 0!==a?a:1}}))})):n.createElement(n.Fragment,null):n.createElement("div",{className:"mt-3 px-3"},n.createElement(s.i,{count:10}))}())}}}]);
|
|
2
|
-
//# sourceMappingURL=5595-96a0649af0-lite.chunk.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scripts/5595-96a0649af0-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/common/src/react/utils/PortalHelper.ts","file:///app/packages/libs/shared/src/apps/calendar/components/coming-soon-tag/coming-soon-tag.scss","file:///app/packages/libs/shared/src/apps/calendar/components/coming-soon-tag/ComingSoonTag.tsx","file:///app/packages/libs/shared/src/apps/calendar/components/generic-calendar-date/generic-calendar-date.scss","file:///app/packages/libs/shared/src/apps/calendar/components/generic-calendar-date/GenericCalendarDate.tsx","file:///app/packages/libs/shared/src/components/actions/Actions.tsx","file:///app/packages/libs/shared/src/components/actions/actions.scss","file:///app/packages/libs/shared/src/components/actions/ActionsDropdown.tsx","file:///app/packages/libs/shared/src/components/back-button/BackButton.tsx","file:///app/packages/libs/shared/src/components/banner-header/banner-header.scss","file:///app/packages/libs/shared/src/components/banner-header/BannerHeader.tsx","file:///app/packages/libs/shared/src/components/caret/Caret.tsx","file:///app/packages/libs/shared/src/components/caret/caret.scss","file:///app/packages/libs/shared/src/components/drag-drop-move/DragDropMoveWrapper.tsx","file:///app/packages/libs/shared/src/components/library-folder/library-folder.scss","file:///app/packages/libs/shared/src/components/library-folder/LibraryFolder.tsx","file:///app/packages/libs/shared/src/components/folder-list/FolderList.tsx","file:///app/packages/libs/shared/src/components/folder-list/partial-loading/partial-folder-list.scss","file:///app/packages/libs/shared/src/components/folder-list/partial-loading/PartialFolderList.tsx","file:///app/packages/libs/shared/src/errors/handlers/HttpErrorHandlers.ts","file:///app/packages/libs/shared/src/hooks/UseHandleObjectError.ts","file:///app/packages/libs/shared/src/hooks/useBuildBreadcrumbs.ts","file:///app/packages/projects/lite/src/apps/libraries/hooks/UseFetchAllChildFolders.ts","file:///app/packages/projects/lite/src/apps/libraries/hooks/UseHandleLibraryType.ts","file:///app/packages/projects/lite/src/apps/libraries/views/library-folder/LibraryFolderViewUtils.ts","file:///app/packages/projects/lite/src/apps/libraries/views/library/LibraryView.tsx"],"sourcesContent":["import React from 'react';\nimport { createPortal } from 'react-dom';\n\nexport const PortalHelper = {\n renderInPortalIfExists(component: React.ReactElement, portalContainer: Element | null): React.ReactElement {\n if (portalContainer)\n return createPortal(component, portalContainer);\n\n return component;\n }\n};","// extracted by mini-css-extract-plugin\nexport default {\"tag\":\"XRj8d\",\"tooltip\":\"X6mLk\"};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport styles from './coming-soon-tag.scss';\n\nconst namespace = 'specialEventCalendar.comingSoonTag';\n\ninterface ComingSoonProps {\n className?: string;\n onlyIcon?: boolean;\n}\n\nexport function ComingSoonTag(props: ComingSoonProps): JSX.Element {\n return (\n <Tooltip title={LanguageService.getPhrase(namespace, 'tooltip')} spanHackClassName={`d-block ${styles.tooltip}`} spanHack>\n <div className={`d-flex text-dark align-items-center ${styles.tag} ${props.className}`}>\n <SvgContainer svgName={cvSvgLibrary.Timer} />\n {!props.onlyIcon && LanguageService.getPhrase(namespace, 'comingSoon')}\n </div>\n </Tooltip>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"dateItem\":\"I3SBm\",\"label\":\"PRORs\",\"body\":\"RfiM_\",\"bodyDay\":\"ZOVny\",\"bodyRange\":\"vYhXN\",\"bodyMonth\":\"mYslO\",\"month\":\"EPkkQ\"};","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsOptions } from 'libs/analytics/interfaces';\n\nimport { CalendarTheme } from 'libs/shared/apps/calendar/interfaces/CalendarTheme';\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\n\nimport styles from './generic-calendar-date.scss';\n\nexport interface GenericCalendarDateProps {\n label?: string;\n body: {\n type: 'month' | 'range' | 'day';\n text: string;\n };\n month?: string;\n getAppLink?: () => Core.AppLink;\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n className?: string;\n theme?: CalendarTheme;\n}\n\nexport function GenericCalendarDate(props: GenericCalendarDateProps): JSX.Element {\n function getBodyClass(): string {\n switch (props.body.type) {\n case 'range':\n return styles.bodyRange;\n case 'day':\n return styles.bodyDay;\n case 'month':\n return styles.bodyMonth;\n }\n }\n\n return (\n <AppLink\n appLink={props.getAppLink?.()}\n className={`text-decoration-none text-center bg-white text-dark border border-3 ${props.theme?.border} rounded-3 d-block fw-semibold ${props.className}`}\n analyticsData={props.analyticsData}\n analyticsOptions={props.analyticsOptions}\n >\n <div className={`position-relative ${styles.dateItem}`}>\n <div className={`${props.theme?.background} py-1 ${styles.label} d-flex align-items-center justify-content-center`}>\n {props.label ? props.label : <> </>}\n </div>\n <div className={`${getBodyClass()} ${styles.body} my-2`}>\n {props.body.text}\n </div>\n <div className={`mb-0 ${styles.month}`}>\n {props.month}\n </div>\n </div>\n </AppLink>\n );\n}","import * as React from 'react';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { Core } from 'libs/common/core';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsOptions } from 'libs/analytics/interfaces';\n\nimport { IconButton } from 'libs/shared/components/icon-button/IconButton';\nimport { SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { BaseObject } from 'libs/shared/interfaces';\n\nimport { ActionButton } from './ActionButton';\nimport { ActionsDropdown } from './ActionsDropdown';\n\nexport interface ActionOptions {\n order?: number;\n label?: string | (() => JSX.Element);\n appLink?: Core.AppLink;\n href?: string;\n onClick?: () => void;\n svgName?: string;\n className?: string;\n button?: boolean; // If true, a button will be rendered. Otherwise the action will be rendered in the dropdown.\n tooltip?: string;\n showSpinner?: boolean;\n showBorder?: boolean; // only works for button without text label\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n disabled?: boolean;\n openInNewTab?: boolean; // Only used if appLink or href is provided\n group?: string;\n lazyPlaceholder?: boolean;\n}\n\nexport type ActionGenerator = (obj: BaseObject) => ActionOptions[];\n\ninterface ActionsProps {\n actions: ActionOptions[];\n className?: string;\n actionsDropdownClassName?: string;\n dropdownToggleSvgSize?: SvgContainerSize;\n sortComponent?: JSX.Element;\n customSize?: boolean;\n fetchMore?: () => void;\n}\n\nexport function Actions(props: ActionsProps): JSX.Element {\n const orderedActions = React.useMemo(() => props.actions.sort((a, b) => a.order - b.order), [props.actions]);\n\n const buttonActions: ActionOptions[] = [];\n const moreActions: ActionOptions[] = [];\n\n orderedActions.forEach(a => {\n if (a.button)\n buttonActions.push(a);\n else\n moreActions.push(a);\n });\n\n let className = 'd-flex';\n\n if (props.className)\n className += ` ${props.className}`;\n\n if (!buttonActions.length && !moreActions.length)\n return <></>;\n\n return (\n <div className={className}>\n {buttonActions.length ? buttonActions.map((a, idx) => (\n <React.Fragment key={idx}>\n {(() => {\n if (a.label) {\n const label = FunctionHelper.isFunction(a.label)\n ? a.label\n : () => <>{a.label}</>;\n\n return (\n <ActionButton\n appLink={a.appLink}\n href={a.href}\n onClick={a.onClick}\n svgName={a.svgName}\n svgSize={props.dropdownToggleSvgSize}\n className={a.className}\n tooltip={a.tooltip}\n showSpinner={a.showSpinner}\n analyticsData={a.analyticsData}\n analyticsOptions={a.analyticsOptions}\n openInNewTab={a.openInNewTab}\n disabled={a.disabled}\n >\n {label()}\n </ActionButton>\n );\n }\n\n const iconButton = (\n <IconButton\n appLink={a.appLink}\n href={a.href}\n onClick={a.onClick}\n svgName={a.svgName}\n className={a.className}\n analyticsData={a.analyticsData}\n analyticsOptions={a.analyticsOptions}\n openInNewTab={a.openInNewTab}\n disabled={a.disabled}\n showBorder={a.showBorder}\n customSize={props.customSize}\n />\n );\n\n return a.tooltip\n ? <Tooltip title={a.tooltip} spanHack>{iconButton}</Tooltip>\n : iconButton;\n })()}\n </React.Fragment>\n )) : <></>}\n {props.sortComponent && props.sortComponent}\n {moreActions.length ? (\n <ActionsDropdown\n actions={moreActions}\n dropdownToggleClassName={props.actionsDropdownClassName}\n dropdownToggleSvgSize={props.dropdownToggleSvgSize}\n fetchMore={props.fetchMore}\n />\n ) : <></>}\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"dropdownToggle\":\"UCAnJ\"};","import * as React from 'react';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { Core } from 'libs/common/core';\nimport { RandomHelper } from 'libs/common/react/utils/RandomHelper';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { ActionOptions } from './Actions';\n\nimport styles from './actions.scss';\n\nfunction LazyDropdownItems(): JSX.Element {\n return (\n <>\n <div style={{ padding: '0.53125rem 1rem' }}>\n <div className='partial-loading-background' style={{ height: '1.0625rem', width: '8rem' }}></div>\n </div>\n <div style={{ padding: '0.53125rem 1rem' }}>\n <div className='partial-loading-background' style={{ height: '1.0625rem', width: '12rem' }}></div>\n </div>\n <div style={{ padding: '0.53125rem 1rem' }}>\n <div className='partial-loading-background' style={{ height: '1.0625rem', width: '11rem' }}></div>\n </div>\n <div style={{ padding: '0.53125rem 1rem' }}>\n <div className='partial-loading-background' style={{ height: '1.0625rem', width: '9rem' }}></div>\n </div>\n </>\n );\n}\n\nfunction getDropdownItemClassName(actionClassName?: string): string {\n let className = 'dropdown-item';\n\n if (actionClassName)\n className += ` ${actionClassName}`;\n\n return className;\n}\n\nexport type DropdownActionOptions = Omit<ActionOptions, 'button'>;\n\ninterface ActionsDropdownItemProps {\n action: DropdownActionOptions;\n}\n\nfunction ActionsDropdownItem(props: ActionsDropdownItemProps): React.ReactElement {\n const label = FunctionHelper.isFunction(props.action.label)\n ? props.action.label\n : () => <>{props.action.label}</>;\n\n if (props.action.appLink)\n return (\n <AppLink\n appLink={props.action.appLink}\n onClick={props.action.onClick}\n className={getDropdownItemClassName(props.action.className)}\n analyticsData={props.action.analyticsData}\n analyticsOptions={props.action.analyticsOptions}\n openInNewTab={props.action.openInNewTab}\n disabled={props.action.disabled}\n >\n {props.action.svgName && <SvgContainer svgName={props.action.svgName} className='d-inline-block svg-container me-2 align-middle' />}\n <span className='align-middle'>{label()}</span>\n </AppLink>\n );\n\n function onClick(e: React.MouseEvent | React.KeyboardEvent): void {\n e.preventDefault();\n\n if (props.action.analyticsData && props.action.analyticsOptions)\n AnalyticsHelper.logUserAction(props.action.analyticsData, props.action.analyticsOptions);\n\n if (FunctionHelper.isFunction(props.action.onClick))\n props.action.onClick();\n\n if (props.action.href)\n Core.LocationUtils.PageLoad(props.action.href, props.action.openInNewTab);\n }\n\n if (props.action.href) {\n return (\n <a\n className={getDropdownItemClassName(props.action.className)}\n onClick={onClick}\n href={props.action.href}\n >\n {props.action.svgName && <SvgContainer svgName={props.action.svgName} className='d-inline-block svg-container me-2 align-middle' />}\n <span className='align-middle'>{label()}</span>\n </a>\n );\n }\n\n return (\n <span\n className={`cursor-pointer ${getDropdownItemClassName(props.action.className)}`}\n onClick={onClick}\n role='button'\n tabIndex={0}\n onKeyDown={(e: React.KeyboardEvent) => e.key === 'Enter' && onClick(e)}\n >\n {props.action.svgName && <SvgContainer svgName={props.action.svgName} className='d-inline-block svg-container me-2' />}\n {label()}\n </span>\n );\n}\n\ninterface ActionsDropdownProps {\n actions: DropdownActionOptions[];\n className?: string;\n dropdownToggleClassName?: string;\n dropdownToggleSvgSize?: SvgContainerSize;\n fetchMore?: () => void;\n}\n\nActionsDropdown.defaultProps = {\n dropdownToggleClassName: 'btn btn-light',\n dropdownToggleSvgSize: SvgContainerSize.Small\n};\n\nexport function ActionsDropdown(props: ActionsDropdownProps): React.ReactElement {\n if (!props.actions || !props.actions.length)\n return <></>;\n\n const isLazy = props.actions.some(a => a.lazyPlaceholder);\n\n let className = 'dropdown';\n\n if (props.className)\n className += ` ${props.className}`;\n\n // Generate unique id to avoid collisions.\n const dropdownToggleId = `actions-dropdown-${RandomHelper.getRandomInt()}`;\n\n let dropdownToggleClassName = `dropdown-toggle px-0 ${styles.dropdownToggle}`;\n\n if (props.dropdownToggleClassName)\n dropdownToggleClassName += ` ${props.dropdownToggleClassName}`;\n\n let currentGroup: string;\n\n return (\n <div className={className}>\n <button\n className={dropdownToggleClassName}\n type='button'\n id={dropdownToggleId}\n data-bs-toggle='dropdown'\n data-toggle='dropdown'\n aria-haspopup='true'\n aria-expanded='false'\n aria-label={'More actions dropdown'}\n onClick={isLazy ? props.fetchMore : null}\n >\n <SvgContainer svgName={cvSvgLibrary.More} size={props.dropdownToggleSvgSize} />\n </button>\n <ul className='dropdown-menu dropdown-menu-end dropdown-menu-right font-size-normal' aria-labelledby={dropdownToggleId}>\n {isLazy ?\n <LazyDropdownItems /> :\n props.actions.map((a, idx) => {\n const showDivider = currentGroup !== undefined && currentGroup !== a.group;\n currentGroup = a.group;\n \n if (a.tooltip) {\n return (\n <li key={idx}>\n {showDivider && <hr className='dropdown-divider' role='separator'></hr>}\n <Tooltip title={a.tooltip} spanHack>\n <ActionsDropdownItem action={a} />\n </Tooltip>\n \n </li>\n );\n }\n \n return (\n <li key={idx}>\n {showDivider && <hr className='dropdown-divider' role='separator'></hr>}\n <ActionsDropdownItem action={a} />\n </li>\n );\n })\n }\n </ul>\n </div>\n );\n}","import * as React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nconst namespace = 'shared.backButton';\n\ninterface BackButtonProps {\n appLink: Core.AppLink;\n backToName?: string;\n color?: 'black' | 'white';\n extraClasses?: string;\n /**\n * Whether or not the button text has a text shadow. Defaults to true\n */\n textShadow?: boolean;\n}\n\nBackButton.defaultProps = {\n color: 'black',\n extraClasses: ''\n};\n\nexport function BackButton(props: BackButtonProps): React.ReactElement {\n const { backToName, appLink, color, extraClasses, textShadow } = {\n textShadow: true,\n ...props\n };\n\n const backPhrase = backToName\n ? LanguageService.getPhrase(namespace, 'backTo', { backToName })\n : LanguageService.getPhrase(namespace, 'back');\n\n const colorClass = color === 'black' ? '' : 'text-white';\n const textShadowClass = textShadow ? 'text-shadow' : '';\n\n return (\n <AppLink\n appLink={appLink}\n className={`d-inline-flex align-items-center h5 mb-0 ${extraClasses} ${colorClass} ${textShadowClass}`}\n >\n <SvgContainer svgName={cvSvgLibrary.ChevronLeft} size={SvgContainerSize.Medium} />\n <span className='ms-1'>{backPhrase}</span>\n </AppLink>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"bannerContent\":\"sSCTB\",\"actionsContainer\":\"Z5WI2\",\"bannerContentWithLogo\":\"rgs7Q\",\"container\":\"M51HJ\",\"logoContainer\":\"vkeJk\",\"logoContainerLeft\":\"M3U9B\",\"logoHeading\":\"EtRwC\",\"specialEventContainer\":\"rOxDc\",\"headingLarge\":\"_8pnV\",\"heading\":\"JXVBH\"};","import * as React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\nimport { PortalHelper } from 'libs/common/react/utils/PortalHelper';\n\nimport { ComingSoonTag } from 'libs/shared/apps/calendar/components/coming-soon-tag/ComingSoonTag';\nimport { GenericCalendarDate } from 'libs/shared/apps/calendar/components/generic-calendar-date/GenericCalendarDate';\nimport { CalendarTheme } from 'libs/shared/apps/calendar/interfaces/CalendarTheme';\nimport { ActionOptions, Actions } from 'libs/shared/components/actions/Actions';\nimport { BackButton } from 'libs/shared/components/back-button/BackButton';\nimport { LazyImage } from 'libs/shared/components/lazy-image/LazyImage';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { ImageMinDimensions } from 'libs/shared/constants/ImageSizes';\nimport { BannerPortalContext } from 'libs/shared/context/BannerPortalContext';\nimport { ImageSize, ImageType, ResizeType } from 'libs/shared/enums/Images';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { Banner, CalendarEvent, Logo } from 'libs/shared/interfaces';\nimport { ImageHelper, ImageOptions } from 'libs/shared/utils/ImageHelper';\n\nimport styles from './banner-header.scss';\n\nconst RATIO = `${ImageMinDimensions[ImageType.Banners].width}:${ImageMinDimensions[ImageType.Banners].height}`;\nconst DEFAULT_WIDTH = 1200; // This is ImageSize.Large for a Banner.\nconst LARGE_SCREEN_WIDTH = 1920;\n\nfunction useGetImageWidth(): number {\n const breakpoints = useBreakpoints();\n\n if (breakpoints.xxl)\n return LARGE_SCREEN_WIDTH;\n\n return DEFAULT_WIDTH;\n}\n\nfunction getSizeClass(heading: string): string {\n if (heading.length < 160)\n return 'h1';\n\n return styles.headingLarge;\n}\n\ninterface BannerHeaderProps {\n heading: string;\n banner?: Banner;\n bannerClassName?: string;\n imageCdnUrl?: string;\n logo?: Logo;\n actions?: ActionOptions[];\n specialEvent?: CalendarEvent;\n backButtonAppLink?: Core.AppLink;\n backButtonText?: string;\n backButtonClasses?: string;\n sortComponent?: JSX.Element;\n blockColourClass?: string;\n actionsDropdownClassName?: string;\n detailsComponent?: () => React.ReactElement;\n imageOptions?: ImageOptions;\n showComingSoon?: boolean;\n alignLogoLeft?: boolean;\n calendarTheme?: CalendarTheme;\n}\n\nconst namespace = 'shared.bannerHeader';\n\nexport const BannerHeader = React.memo(function(props: React.PropsWithChildren<BannerHeaderProps>): React.ReactElement {\n const { heading, banner, imageCdnUrl, actions, sortComponent, blockColourClass, specialEvent } = props;\n\n const portalContainerContext = React.useContext(BannerPortalContext);\n\n const imageWidth = useGetImageWidth();\n\n const specialEventIsToday = React.useMemo(() => {\n if (!specialEvent || props.showComingSoon)\n return false;\n\n const today = DateHelper.format(new Date(), 'YYYY-MM-DD');\n\n if (!specialEvent.endDate)\n return specialEvent.startDate === today;\n\n return specialEvent.startDate <= today && specialEvent.endDate >= today;\n }, [specialEvent]);\n\n const imageOptions = props.imageOptions || {\n width: imageWidth,\n ratio: RATIO,\n resizeType: ResizeType.Cover\n };\n\n const url = !!banner && !!imageCdnUrl && ImageHelper.createBannerUrl(banner, {\n fallbackBaseUrl: imageCdnUrl,\n fallbackCategoryName: heading,\n type: ImageType.Banners\n }, imageOptions);\n\n const containerProps: React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement> = {\n className: `banner banner-header ${props.bannerClassName}`,\n style: url ? { backgroundImage: `url('${url}')` } : {}\n };\n\n if (!banner && blockColourClass) {\n delete containerProps.style;\n containerProps.className += ` ${blockColourClass}`;\n }\n\n const DetailsComponent = props.detailsComponent;\n\n return PortalHelper.renderInPortalIfExists(\n // \"banner\" is used in playlists in Online. banner-header is used by all other projects\n <header {...containerProps}>\n <div className={`container ${styles.container} position-relative inner-banner`}>\n {props.backButtonAppLink && (\n <div className='pt-3'>\n <BackButton\n appLink={props.backButtonAppLink}\n backToName={props.backButtonText}\n extraClasses={props.backButtonClasses}\n color='white'\n />\n </div>\n )}\n \n <div className={`${props.alignLogoLeft ? 'position-absolute top-50 start-0 translate-middle-y w-100 ps-4' : `${styles.bannerContent} px-2 ${props.logo?.url ? styles.bannerContentWithLogo : ''}`}`}>\n {!!specialEvent && (\n <div className={`position-relative ${styles.specialEventContainer}`}>\n <GenericCalendarDate\n body={{\n type: specialEvent.endDate ? 'range' : 'day',\n text: specialEvent.endDate\n ? `${DateHelper.format(specialEvent.startDate, 'DD')}-${DateHelper.format(specialEvent.endDate, 'DD')}`\n : DateHelper.format(specialEvent.startDate, 'DD')\n }}\n month={DateHelper.format(specialEvent.startDate, 'MMMM')}\n theme={props.calendarTheme}\n />\n </div>\n )}\n <div>\n {specialEventIsToday && (\n <div className='rounded-pill py-1 px-2 my-1 me-1 fw-semibold bg-light-blue lh-1 d-inline-block'>\n <Text namespace={namespace} phrase='onToday' />\n </div>\n )}\n {props.showComingSoon && (\n <ComingSoonTag className='pe-2 fw-semibold mb-1 rounded-pill justify-content-start text-nowrap' />\n )}\n <div className='d-flex align-items-center'>\n {props.alignLogoLeft &&\n <div className={`${styles.logoContainerLeft} d-none d-md-block partial-loading-background rounded-circle overflow-hidden me-3`}>\n {props.logo?.url &&\n <LazyImage src={ImageHelper.createUrl(props.logo?.url, { size: ImageSize.Medium })} />}\n </div>\n }\n <h1 className={`text-white text-shadow pe-3 position-static ${styles.heading} ${getSizeClass(heading)} ${props.alignLogoLeft ? 'w-50' : ''}`}>\n {heading}\n {DetailsComponent && <DetailsComponent />}\n </h1>\n </div>\n </div>\n {!!actions && (\n <div className={styles.actionsContainer}>\n <Actions\n actions={actions}\n sortComponent={sortComponent}\n actionsDropdownClassName={props.actionsDropdownClassName}\n />\n </div>\n )}\n </div>\n {!props.alignLogoLeft && !!props.logo?.url &&\n <div className={styles.logoContainer}>\n <img\n src={ImageHelper.createUrl(props.logo.url, { size: ImageSize.Small })}\n className='rounded-circle'\n />\n </div>\n }\n </div>\n </header>,\n portalContainerContext?.container\n );\n}, (prevProps, nextProps): boolean => (\n prevProps.actions === nextProps.actions\n && prevProps.heading === nextProps.heading\n && prevProps.logo?.url === nextProps.logo?.url\n));\n\nexport function PartialBannerHeader(): JSX.Element {\n const portalContainerContext = React.useContext(BannerPortalContext);\n\n return PortalHelper.renderInPortalIfExists(\n <div className={`partial-banner partial-loading-background ${styles.banner}`} />,\n portalContainerContext?.container\n );\n}","import React from 'react';\n\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { SvgContainer } from '../svg-container/SvgContainer';\n\nimport styles from './caret.scss';\n\ntype CaretDirection = 'left' | 'right' | 'up' | 'down';\n\n\nconst getDirectionClass = (direction: CaretDirection) => {\n switch (direction) {\n case 'up':\n return styles.up;\n case 'down':\n return styles.down;\n case 'right':\n return styles.right;\n case 'left':\n return styles.left;\n }\n};\n\ninterface CaretProps {\n direction?: CaretDirection;\n className?: string;\n}\n\nCaret.defaultProps = {\n direction: 'right'\n};\n\nexport function Caret(props: CaretProps): JSX.Element {\n return (\n <SvgContainer\n svgName={cvSvgLibrary.Caret}\n className={`${getDirectionClass(props.direction)} svg-container d-inline-block ${props.className}`}\n />\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"up\":\"JAT0R\",\"down\":\"ld41u\",\"left\":\"jZTRR\",\"right\":\"HHkPe\"};","import React from 'react';\nimport { useDraggable, UseDraggableArguments, useDroppable, UseDroppableArguments } from '@dnd-kit/core';\n\ninterface DragDropMoveWrapperProps extends React.PropsWithChildren {\n droppable?: UseDroppableArguments,\n draggable?: UseDraggableArguments\n dragStyle?: string;\n dropStye?: string;\n setIsDragging?: React.Dispatch<React.SetStateAction<boolean>>\n isDragging?: boolean;\n}\n\nexport function DragDropMoveWrapper(props: DragDropMoveWrapperProps) {\n const {\n active: dragActive,\n isDragging,\n attributes,\n listeners,\n setNodeRef: draggableRef\n } = useDraggable({ ...props.draggable, disabled: !props.draggable, attributes: { role: 'drag', tabIndex: -1 } });\n const {\n isOver,\n over,\n active: dropActive,\n setNodeRef: droppableRef\n } = useDroppable({ ...props.droppable, disabled: !props.droppable });\n\n React.useEffect(() => {\n const data = props.draggable?.data;\n if (Array.isArray(data) && data?.includes(dragActive?.id.toString())) {\n props.setIsDragging?.(isDragging);\n } else {\n props.setIsDragging?.(false);\n }\n }, [isDragging]);\n\n function isSelected() {\n const data = props.draggable?.data;\n return Array.isArray(data) && data.includes(props.draggable.id.toString());\n }\n\n return (\n <div\n ref={draggableRef}\n {...listeners}\n {...attributes}\n className={`${props.draggable ? 'cursor-grab' : 'cursor-default'} ${(isDragging && dragActive) || (props.isDragging && isSelected()) ? props.dragStyle : null}`}\n >\n <div\n ref={droppableRef}\n className={(dropActive && isOver && dragActive?.id !== over?.id) ? props.dropStye : null}\n >\n {props.children}\n </div>\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"actions\":\"cN3nB\",\"actionsContainer\":\"xM37V\",\"dropStyle\":\"kvCLS\",\"dragStyle\":\"md9Na\"};","import React from 'react';\n\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Core } from 'libs/common/core';\n\nimport { ActionOptions, Actions } from 'libs/shared/components/actions/Actions';\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { DragDropMoveWrapper } from 'libs/shared/components/drag-drop-move/DragDropMoveWrapper';\nimport { BaseImage } from 'libs/shared/components/image/BaseImage';\nimport { ImageFallback, ImageFallbackType } from 'libs/shared/components/image/ImageFallback';\nimport { ImageSize, ImageType } from 'libs/shared/enums/Images';\nimport { Folder } from 'libs/shared/interfaces';\n\nimport styles from './library-folder.scss';\n\ninterface LibraryFolderProps {\n folder: Folder;\n drag?: boolean;\n drop?: boolean;\n getAppLink: (f: Folder) => Core.AppLink;\n getFolderActions?: (f: Folder) => ActionOptions[];\n}\n\nexport function LibraryFolder(props: LibraryFolderProps): JSX.Element {\n const thumbnailUrl = props.folder.thumbnail\n ? UrlHelper.urlBuilder(props.folder.thumbnail.url, { size: ImageSize.Small })\n : null;\n\n const actions = props.getFolderActions?.(props.folder);\n\n return (\n <DragDropMoveWrapper\n draggable={props.drag && { id: props.folder.id, data: props.folder }}\n droppable={props.drop && { id: props.folder.id, data: props.folder }}\n dropStye={styles.dropStyle}\n dragStyle={styles.dragStyle}\n >\n <div className='position-relative'>\n <AppLink\n className='rounded-3 d-block text-decoration-none'\n appLink={props.getAppLink(props.folder)}\n title={props.folder.name}\n >\n <BaseImage\n data={thumbnailUrl}\n imageType={ImageType.Thumbnails}\n imageClassName='rounded-top-lg'\n >\n <ImageFallback\n name={props.folder.name}\n type={ImageFallbackType.Folder}\n extraClasses='rounded-top-lg'\n />\n </BaseImage>\n <h3 className='bg-white border-start border-end border-bottom rounded-bottom-lg font-size-normal fw-semibold mb-0 p-2'>\n <span className='text-truncate d-block'>{props.folder.name}</span>\n </h3>\n </AppLink>\n {actions?.length &&\n <Actions\n actions={actions}\n className={styles.actionsContainer}\n actionsDropdownClassName={styles.actions}\n // Intentionally setting to the default SVG size\n dropdownToggleSvgSize={null}\n />\n }\n </div>\n </DragDropMoveWrapper>\n );\n}","import React from 'react';\n\nimport { LocalStorageHelper } from 'libs/common/backbone/utils/LocalStorageHelper';\nimport { Core } from 'libs/common/core';\n\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\nimport { Caret } from 'libs/shared/components/caret/Caret';\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { LibraryFolder } from 'libs/shared/components/library-folder/LibraryFolder';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { Folder } from 'libs/shared/interfaces';\n\nconst namespace = 'libraries.folderList';\n\nconst EXPANDED_FOLDERS_KEY = 'has:expanded:library:folders';\n\nfunction useGetFolderLimit(): number {\n const breakpoints = useBreakpoints();\n\n if (breakpoints.xxl || breakpoints.xl || breakpoints.lg)\n return 6;\n\n if (breakpoints.md)\n return 4;\n\n return 3;\n}\n\ninterface FolderListProps {\n folders: Folder[];\n getAppLink: (folder: Folder) => Core.AppLink;\n expandFolders?: boolean;\n showHeading?: boolean;\n getFolderActions?: (f: Folder) => ActionOptions[];\n drag?: boolean;\n drop?: boolean;\n extraButtons?: JSX.Element;\n}\n\nFolderList.defaultProps = {\n showHeading: true\n};\n\nexport function FolderList(props: FolderListProps): JSX.Element {\n const [ _hasExpandedFolders, setHasExpandedFolders ] = React.useState(\n LocalStorageHelper.get(EXPANDED_FOLDERS_KEY) || false\n );\n\n const hasExpandedFolders = props.expandFolders || _hasExpandedFolders;\n\n const folderLimit = useGetFolderLimit();\n\n function onToggleFolderView(): void {\n setHasExpandedFolders(!hasExpandedFolders);\n LocalStorageHelper.set(EXPANDED_FOLDERS_KEY, !hasExpandedFolders);\n }\n\n const displayableFolders = hasExpandedFolders ? props.folders : props.folders.slice(0, folderLimit);\n\n const canToggleCollapsedView = props.folders.length > folderLimit && !props.expandFolders;\n\n return (\n <>\n <div className='d-flex justify-content-between align-items-center'>\n {props.showHeading &&\n <DivButton\n className={`d-inline-flex align-items-center mb-2 px-2 ${!canToggleCollapsedView ? 'cursor-default' : ''}`}\n onClick={onToggleFolderView}\n >\n {canToggleCollapsedView && (\n <Caret direction={hasExpandedFolders ? 'down' : 'right'} />\n )}\n <h2 className='h4 mb-0'>\n <Text namespace={namespace} phrase='folders' options={{ count: props.folders.length }} />\n </h2>\n </DivButton>\n }\n\n {!!(!hasExpandedFolders && canToggleCollapsedView) && (\n <div className='d-flex justify-content-end justify-self-end px-2'>\n <DivButton onClick={onToggleFolderView} className='text-dark hover-text-underline d-inline-block'>\n <Text namespace={namespace} phrase='seeAll' options={{ count: props.folders.length }} />\n </DivButton>\n </div>\n )}\n {!!(hasExpandedFolders && canToggleCollapsedView) && (\n <div className='d-flex justify-content-end justify-self-end px-2'>\n <DivButton onClick={onToggleFolderView} className='text-dark hover-text-underline d-inline-block'>\n <Text namespace={namespace} phrase='seeLess' />\n </DivButton>\n </div>\n )}\n\n {props.extraButtons ? props.extraButtons : <></>}\n </div>\n\n <div className='row mx-1'>\n {displayableFolders.map(f => (\n <div key={f.id} className='col-4 col-md-3 col-lg-2 px-1 pb-3'>\n <LibraryFolder\n folder={f}\n getAppLink={props.getAppLink}\n getFolderActions={props.getFolderActions}\n drag={props.drag}\n drop={props.drop}\n />\n </div>\n ))}\n </div>\n </>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"partialFolderHeading\":\"dhbsL\",\"partialFolderThumbnail\":\"CI9vk\",\"partialFolderName\":\"l0Nll\"};","import React from 'react';\n\nimport styles from './partial-folder-list.scss';\n\nconst PartialFolder = () => (\n <div className='col-4 col-md-3 col-lg-2 px-1 pb-3'>\n <div className={`${styles.partialFolderThumbnail} partial-loading-background rounded-top-lg`} />\n <div className={`${styles.partialFolderName} partial-loading-background border-bottom rounded-bottom-lg font-size-normal mb-0 p-2`}>\n \n </div>\n </div>\n);\n\nexport function PartialFolderList({ count = 3 }: { count?: number; }): JSX.Element {\n return (\n <>\n <div className={`${styles.partialFolderHeading} h4 mb-2 partial-loading-background`}> </div>\n <div className='row mx-n1'>\n {Array(count).fill(null).map((_, i) => <PartialFolder key={i} />)}\n </div>\n </>\n );\n}","import { BaseError } from 'libs/common/backbone/core/BaseError';\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\nimport { Xhr } from 'libs/common/backbone/interfaces';\nimport { Core } from 'libs/common/core';\n\nimport { NotFoundError } from 'libs/shared/errors/general/not-found/NotFoundError';\nimport { PrivateResourceError } from 'libs/shared/errors/general/private-resource/PrivateResourceError';\nimport { RegionLockedResourceError } from 'libs/shared/errors/general/region-locked-resource/RegionLockedResourceError';\nimport { UnspecifiedError } from 'libs/shared/errors/general/unspecified-error/UnspecifiedError';\nimport { VideoTypes } from 'libs/shared/interfaces';\n\nexport interface HttpErrorMap {\n notFound?: new () => BaseError;\n forbidden?: {\n rating?: new (description: string) => BaseError;\n yearLevel?: new (description: string) => BaseError;\n region?: new () => BaseError;\n privacy?: new (video?: VideoTypes) => BaseError;\n };\n badRequest?: new () => BaseError;\n}\n\nexport type IgnoreHttpErrorMap = {\n [key in keyof HttpErrorMap]: boolean;\n};\n\nconst defaultErrors: HttpErrorMap = {\n notFound: NotFoundError,\n forbidden: {\n rating: PrivateResourceError,\n yearLevel: PrivateResourceError,\n region: RegionLockedResourceError,\n privacy: PrivateResourceError\n },\n badRequest: UnspecifiedError\n};\n\nexport function handleHttpError(\n info: HttpStatus | Xhr,\n customErrorMap: HttpErrorMap = {},\n /**\n * Prevent certain errors in the errorMap from being thrown\n * so that you may implement your own handler\n */\n ignoreMap: IgnoreHttpErrorMap = {}\n): void {\n if (!info)\n return;\n\n let statusCode: HttpStatus;\n\n if (typeof(info) === 'number') {\n statusCode = info;\n } else {\n statusCode = info.status;\n }\n\n const errorMap = {\n ...defaultErrors,\n ...customErrorMap\n };\n\n if (!statusCode)\n return;\n\n if (!Core.ErrorHelper.isStatusCodeError(statusCode))\n return;\n\n if (statusCode === HttpStatus.NotFound) {\n if (!ignoreMap.notFound)\n Core.ErrorHelper.throw(new errorMap.notFound());\n return;\n }\n\n if (statusCode === HttpStatus.Forbidden) {\n /**\n * TODO: Work out how to go about handling all forbidden errors, such as region locking, year levels,\n * ratings, and privacy.\n */\n if (!ignoreMap.forbidden)\n Core.ErrorHelper.throw(new errorMap.forbidden.privacy());\n return;\n }\n\n if (!ignoreMap.badRequest)\n Core.ErrorHelper.throw(new errorMap.badRequest());\n}\n\nexport function handleXhrError(xhr: Xhr, customErrorMap?: HttpErrorMap): void {\n handleHttpError(xhr.status, customErrorMap);\n}","import { useEffect } from 'react';\n\nimport { Flight } from 'libs/common/flight';\n\nimport { handleHttpError, HttpErrorMap, IgnoreHttpErrorMap } from 'libs/shared/errors/handlers/HttpErrorHandlers';\n\nfunction generateCacheKey(flightObjs: Array<Flight.Response<any>>): string {\n return flightObjs.map(obj => obj.statusCode).join(':');\n}\n\n// TODO: Change this to just `useHandleHttpError` and only accept a status code.\nexport function useHandleObjectError(\n _flightObjs: Flight.Response<any> | Array<Flight.Response<any>>,\n customErrors?: HttpErrorMap,\n ignoreErrors?: IgnoreHttpErrorMap\n): void {\n const flightObjs = Array.isArray(_flightObjs) ? _flightObjs : [_flightObjs];\n\n useEffect(() => {\n flightObjs.forEach(obj => {\n handleHttpError(obj.statusCode, customErrors, ignoreErrors);\n });\n }, [ generateCacheKey(flightObjs), customErrors, ignoreErrors ]);\n}","import { Core } from 'libs/common/core';\nimport { Flight } from 'libs/common/flight';\n\nimport { Breadcrumb } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { LibraryRequests } from 'libs/shared/flight-requests/LibraryRequests';\nimport { Folder, MasterNestedObject } from 'libs/shared/interfaces';\n\ninterface BuildOptions {\n folderId: string;\n firstItem?: Breadcrumb;\n lastItem?: Breadcrumb;\n getAppLink: (folder: MasterNestedObject<Folder>) => Core.AppLink;\n}\n\nexport function useBuildBreadcrumbs(options: BuildOptions): Breadcrumb[] {\n const { folderId, firstItem, lastItem, getAppLink } = options;\n\n const parentTree = Flight.useBasicFetch<MasterNestedObject<Folder>>(LibraryRequests.folderParentTree(folderId));\n\n if (!parentTree.data?.children?.length)\n return [];\n\n const searchStack: {\n node: MasterNestedObject<Folder>,\n path: MasterNestedObject<Folder>[]\n }[] = parentTree.data.children.map(c => ({ node: c, path: [c]}));\n\n let breadcrumbs: Breadcrumb[] = [];\n\n while (searchStack.length) {\n const { node, path } = searchStack.pop();\n \n if (node.data.id.toString() === folderId.toString())\n breadcrumbs = path.map(object => ({\n name: object.data.name,\n appLink: getAppLink(object)\n }));\n\n if (node.children)\n searchStack.push(...node.children.map(c => ({ node: c, path: [ ...path, c ]})));\n }\n\n if (firstItem) breadcrumbs.unshift(firstItem);\n if (lastItem) breadcrumbs.push(lastItem);\n\n breadcrumbs[breadcrumbs.length - 1].active = true;\n\n return breadcrumbs;\n}\n ","import { Flight } from 'libs/common/flight';\n\nimport { LibraryRequests } from 'libs/shared/flight-requests/LibraryRequests';\nimport { useFetchAll } from 'libs/shared/hooks/UseFetchAll';\nimport { SelectAllPagesResult, useSelectAllPages } from 'libs/shared/hooks/UseSelectAllPages';\nimport { Folder } from 'libs/shared/interfaces';\n\nexport function useFetchAllChildFolders(parentId?: string): SelectAllPagesResult<Folder> {\n const fetch = Flight.useGetFetch();\n\n function getRequest(cursor?: string): Flight.Request {\n return LibraryRequests.childFolders(parentId, cursor);\n }\n \n function fetchNext(cursor?: string): void {\n fetch(getRequest(cursor));\n }\n\n useFetchAll(!!parentId && getRequest, !!parentId && fetchNext);\n\n return (useSelectAllPages<Folder>(!!parentId && ((cursor?: string) => getRequest(cursor).key)));\n}","import React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { Flight } from 'libs/common/flight';\n\nimport { MasterObjectTypes } from 'libs/shared/enums/MasterObjectTypes';\nimport { NotFoundError } from 'libs/shared/errors/general/not-found/NotFoundError';\nimport { Library } from 'libs/shared/interfaces';\n\n/**\n * This hook prevents the libraries UI to be used for anything \n * other than customer libraries i.e Hosted, Exchange, Workspace etc\n */\nexport function useHandleLibraryType(request: Flight.Response<Library>): void {\n React.useEffect(() => {\n if (!request.hasCompleted || request.hasError)\n return;\n\n if (request.data.type !== MasterObjectTypes.CustomLibrary)\n Core.ErrorHelper.throw(new NotFoundError());\n }, [request.hasCompleted]);\n}","import { Core } from 'libs/common/core';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { Breadcrumb } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { BG_COLOUR_CLASS_NAMES } from 'libs/shared/constants/ColourClassNames';\nimport { VideoSortType } from 'libs/shared/enums/VideoSortType';\nimport { useBuildBreadcrumbs } from 'libs/shared/hooks/useBuildBreadcrumbs';\nimport { Folder, Library } from 'libs/shared/interfaces';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nexport function getFolderAppLink(libraryId: string, folder: Folder, sort: string): Core.AppLink {\n if (!libraryId || !folder)\n return null;\n\n return {\n application: AppChannels.LIBRARIES,\n action: Actions.Libraries.FOLDER,\n args: [ libraryId, folder.id, TextHelper.slugify(folder.name) ],\n params: {\n sort\n }\n };\n}\n\nexport function getFolderBgColourClass(folder: Folder | Library): string {\n let charCode = 0;\n\n for (let i = 0; i < folder.name?.length ?? 0; i++) {\n charCode += folder.name.charCodeAt(i);\n }\n\n return BG_COLOUR_CLASS_NAMES[charCode % BG_COLOUR_CLASS_NAMES.length];\n}\n\nexport function useGetFolderBreadcrumbs(folderId: string, library: Library, sort: VideoSortType): Breadcrumb[] {\n return useBuildBreadcrumbs({\n folderId: library && folderId,\n getAppLink: object => getFolderAppLink(library.id, object.data, sort),\n firstItem: {\n name: library?.name,\n appLink: {\n application: AppChannels.LIBRARIES,\n action: Actions.Libraries.LIBRARY,\n args: [ library?.id, TextHelper.slugify(library?.name) ]\n }\n }\n });\n}","import React from 'react';\n\nimport { Flight } from 'libs/common/flight';\n\nimport { EntityType, LocationContext, SearchSourceDescriptor, UserAction } from 'libs/analytics/interfaces';\n\nimport { SourceFilterOptions } from 'libs/shared/apps/search/interfaces';\nimport { BannerHeader, PartialBannerHeader } from 'libs/shared/components/banner-header/BannerHeader';\nimport { FolderList } from 'libs/shared/components/folder-list/FolderList';\nimport { PartialFolderList } from 'libs/shared/components/folder-list/partial-loading/PartialFolderList';\nimport { IconButton } from 'libs/shared/components/icon-button/IconButton';\nimport { useFocusSearchBar } from 'libs/shared/components/search-bar/SearchUtils';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { VideoSortType } from 'libs/shared/enums/VideoSortType';\nimport { LibraryRequests } from 'libs/shared/flight-requests/LibraryRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { CurrentUser, Folder, Library } from 'libs/shared/interfaces';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\nimport { VideoSortHelper } from 'libs/shared/utils/VideoSortHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nimport { useFetchAllChildFolders } from 'apps/libraries/hooks/UseFetchAllChildFolders';\nimport { useHandleLibraryType } from 'apps/libraries/hooks/UseHandleLibraryType';\nimport { getFolderAppLink, getFolderBgColourClass } from 'apps/libraries/views/library-folder/LibraryFolderViewUtils';\n\nconst namespace = 'libraries.library';\n\ninterface LibraryViewProps {\n id: string;\n sort?: VideoSortType;\n}\n\nexport function LibraryView(props: LibraryViewProps): JSX.Element {\n const { focusSearchBar } = useFocusSearchBar();\n\n const libraries = Flight.useBasicFetch<Library[]>(LibraryRequests.domainLibraries([ 'customLibrary', 'sharedLibrary' ]));\n const library = Flight.useBasicFetch<Library>(LibraryRequests.library(props.id));\n const libraryFolders = useFetchAllChildFolders(library.data?.categoryTree?.id);\n const user = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n\n const sort = !!user.data && VideoSortHelper.getOrSetSortType(user.data.id, props.sort);\n\n useSetPageMetadata({ title: library.data?.name });\n useHandleObjectError(library);\n useHandleLibraryType(library);\n\n return (\n <>\n {library.data\n ? (\n <BannerHeader\n heading={library.data.name}\n blockColourClass={getFolderBgColourClass(library.data)}\n logo={library.data.owner?.logo}\n />\n ) : <PartialBannerHeader />\n }\n\n {(() => {\n if (!libraryFolders?.items)\n return <div className='mt-3 px-3'><PartialFolderList count={10} /></div>;\n\n if (!libraryFolders.items.length)\n return <></>;\n\n return (\n <div className='mt-3 px-2'>\n <FolderList\n folders={libraryFolders.items}\n getAppLink={(f: Folder) => getFolderAppLink(props.id, f, sort)}\n expandFolders\n extraButtons={\n <IconButton\n svgName={cvSvgLibrary.Search}\n appLink={{\n application: AppChannels.SEARCH,\n action: Actions.Search.HOME,\n params: {\n source: SourceFilterOptions.School\n }\n }}\n className='btn btn-outline-dark mb-3 me-2 d-none d-sm-inline-block'\n onClick={focusSearchBar}\n analyticsData={{}}\n analyticsOptions={{\n entity: EntityType.SearchResults,\n location: LocationContext.Libraries,\n actionType: UserAction.Click,\n descriptor: SearchSourceDescriptor.School\n }}\n >\n <Text namespace={namespace} phrase='searchLibrary' options={{ smartCount: libraries.data?.length ?? 1 }} />\n </IconButton>\n }\n />\n </div>\n );\n })()}\n </>\n );\n}\n"],"names":["PortalHelper","renderInPortalIfExists","component","portalContainer","createPortal","namespace","ComingSoonTag","props","Tooltip","title","LanguageService","spanHackClassName","spanHack","className","SvgContainer","svgName","onlyIcon","GenericCalendarDate","AppLink","appLink","getAppLink","theme","border","analyticsData","analyticsOptions","background","label","body","type","getBodyClass","text","month","Actions","orderedActions","actions","sort","a","b","order","buttonActions","moreActions","forEach","button","push","length","map","idx","key","href","onClick","svgSize","dropdownToggleSvgSize","tooltip","showSpinner","openInNewTab","disabled","iconButton","showBorder","customSize","sortComponent","dropdownToggleClassName","actionsDropdownClassName","fetchMore","LazyDropdownItems","style","padding","height","width","getDropdownItemClassName","actionClassName","ActionsDropdownItem","FunctionHelper","action","e","preventDefault","AnalyticsHelper","role","tabIndex","onKeyDown","ActionsDropdown","isLazy","some","lazyPlaceholder","currentGroup","dropdownToggleId","RandomHelper","id","size","showDivider","undefined","group","defaultProps","S","BackButton","textShadow","backToName","color","extraClasses","backPhrase","colorClass","textShadowClass","RATIO","getSizeClass","heading","BannerHeader","banner","imageCdnUrl","blockColourClass","specialEvent","portalContainerContext","BannerPortalContext","imageWidth","useBreakpoints","xxl","specialEventIsToday","showComingSoon","today","DateHelper","Date","endDate","startDate","imageOptions","ratio","resizeType","url","ImageHelper","fallbackBaseUrl","fallbackCategoryName","containerProps","bannerClassName","backgroundImage","DetailsComponent","detailsComponent","backButtonAppLink","backButtonText","backButtonClasses","alignLogoLeft","logo","calendarTheme","Text","phrase","LazyImage","src","container","prevProps","nextProps","PartialBannerHeader","getDirectionClass","direction","Caret","DragDropMoveWrapper","data","draggable","attributes","dragActive","active","isDragging","listeners","draggableRef","setNodeRef","droppable","isOver","over","dropActive","droppableRef","Array","isArray","includes","toString","setIsDragging","ref","dragStyle","dropStye","children","LibraryFolder","thumbnailUrl","folder","thumbnail","UrlHelper","getFolderActions","drag","drop","name","BaseImage","imageType","imageClassName","ImageFallback","EXPANDED_FOLDERS_KEY","FolderList","breakpoints","LocalStorageHelper","_hasExpandedFolders","setHasExpandedFolders","hasExpandedFolders","expandFolders","folderLimit","xl","lg","md","onToggleFolderView","displayableFolders","folders","slice","canToggleCollapsedView","showHeading","DivButton","options","count","extraButtons","f","PartialFolder","PartialFolderList","fill","_","i","defaultErrors","notFound","forbidden","rating","yearLevel","region","privacy","badRequest","handleHttpError","info","customErrorMap","ignoreMap","statusCode","status","errorMap","generateCacheKey","flightObjs","obj","join","useHandleObjectError","_flightObjs","customErrors","ignoreErrors","useEffect","useBuildBreadcrumbs","folderId","firstItem","lastItem","parentTree","searchStack","c","node","path","breadcrumbs","pop","object","unshift","useFetchAllChildFolders","parentId","fetch","getRequest","cursor","useHandleLibraryType","request","hasCompleted","hasError","getFolderAppLink","libraryId","application","args","params","getFolderBgColourClass","charCode","charCodeAt","useGetFolderBreadcrumbs","library","LibraryView","focusSearchBar","libraries","libraryFolders","categoryTree","user","owner","items","source","entity","location","actionType","descriptor","smartCount"],"sourceRoot":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[5606],{49935:(e,t,a)=>{a.d(t,{Oo:()=>m,b2:()=>d});var n=a(32735),r=a(36848),l=a(86764),i=a(3747),c=a(5859),o=a(35223),u=a(83914),s=function(e){var t=e.breadcrumb,a=t.name,l=t.appLink,i=t.active,c=e.withBackIcon;return n.createElement("li",{className:"breadcrumb-item".concat(i?" active":"")},i?n.createElement("strong",null,a):n.createElement(r.F,{appLink:l},c&&n.createElement(u.x,{svgName:o.vn.ChevronLeft,size:u.S.Small}),n.createElement("span",{className:c?"ms-2":""},a)))},m=function(e){var t=e.breadcrumbs,a=(0,i.a)(l.r.XS),r=null==t?void 0:t.length;return!r||a&&r<2?n.createElement(n.Fragment,null):a?n.createElement("nav",{"aria-label":"breadcrumb"},n.createElement("ol",{className:"breadcrumb m-0 p-0"},n.createElement(s,{breadcrumb:t[r-2],withBackIcon:!0}))):n.createElement("nav",{"aria-label":"breadcrumb"},n.createElement("ol",{className:"breadcrumb m-0 p-0"},t.map((function(e,t){return n.createElement(s,{key:t,breadcrumb:e})}))))},d=n.memo((function(e){var t=e.numItems,a=void 0===t?3:t;return(0,i.a)(l.r.XS)?n.createElement("div",{className:"partial-loading-background",style:{height:"1.3125rem",width:"6rem"}}):n.createElement("nav",{"aria-label":"breadcrumb"},n.createElement("ol",{className:"breadcrumb m-0 p-0"},c.u.getPartialLoadingItems({numItems:a}).map((function(e,t){var a=e.width;return n.createElement("li",{key:t,className:"breadcrumb-item"},n.createElement("span",{className:"d-inline-block partial-loading-background",style:{width:a},dangerouslySetInnerHTML:{__html:" "}}))}))))}))},23201:(e,t,a)=>{a.d(t,{A:()=>u});var n=a(32735),r=a(92802),l=a(2102),i=a(83345),c=a(33936),o="shared.formButtons";function u(e){var t=(0,r.u6)(),a=(0,c.l)(t);return n.createElement(l.m,{variant:e.variant||"primary",type:"submit",disabled:!a,size:e.size,className:e.className?e.className:"",showSpinner:t.isSubmitting},e.submitText?n.createElement(n.Fragment,null,e.submitText):n.createElement(i.x,{namespace:o,phrase:e.isNew?"create":"save"}))}},82644:(e,t,a)=>{a.d(t,{b:()=>s,n:()=>u});var n=a(32735),r=a(92802),l=a(91967),i=a(1048);function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=Array(t);a<t;a++)n[a]=e[a];return n}var o=function(e,t){var a={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(a[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(n=Object.getOwnPropertySymbols(e);r<n.length;r++)t.indexOf(n[r])<0&&Object.prototype.propertyIsEnumerable.call(e,n[r])&&(a[n[r]]=e[n[r]])}return a};function u(e){var t=e.castInitialValues,a=e.castValuesOnSubmit,u=e.initialValues,s=e.onSubmit,m=o(e,["castInitialValues","castValuesOnSubmit","initialValues","onSubmit"]),d=t&&e.validationSchema?e.validationSchema.cast(function(e){if(!e)return{};var t=i.t.deepClone(e);return function e(a){Object.keys(t).forEach((function(n){t.hasOwnProperty(n)&&(i.t.isObject(a[n])?e(a[n]):null===t[n]&&delete t[n])}))}(t),t}(u)):u,p={allowInitialSubmit:e.allowInitialSubmit};return n.createElement(r.J9,Object.assign({enableReinitialize:!0},m,{initialValues:d,onSubmit:function(t,n){var r=n.setSubmitting,l=n.resetForm,i=n.setFieldError,o=a&&e.validationSchema?e.validationSchema.cast(t):t;s(o,(function(){var e,t,a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(a.reset&&l(),a.errors)for(var n=0,o=Object.entries(a.errors);n<o.length;n++){var u=(e=o[n],t=2,function(e){if(Array.isArray(e))return e}(e)||function(e,t){var a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var n,r,l,i,c=[],o=!0,u=!1;try{if(l=(a=a.call(e)).next,0===t){if(Object(a)!==a)return;o=!1}else for(;!(o=(n=l.call(a)).done)&&(c.push(n.value),c.length!==t);o=!0);}catch(e){u=!0,r=e}finally{try{if(!o&&null!=a.return&&(i=a.return(),Object(i)!==i))return}finally{if(u)throw r}}return c}}(e,t)||function(e,t){if(e){if("string"==typeof e)return c(e,t);var a={}.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?c(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),s=u[0],m=u[1];i(s,m)}r(!1)}))},initialStatus:p}),l.q.isFunction(e.children)?function(t){return e.children(t)}:n.Children.count(e.children)?e.children:null)}function s(){return(0,r.u6)()}u.defaultProps={castInitialValues:!0,castValuesOnSubmit:!0}},5859:(e,t,a)=>{function n(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=Array(t);a<t;a++)n[a]=e[a];return n}a.d(t,{u:()=>l});var r={numItems:5,minWidth:50,maxWidth:100},l={getPartialLoadingItems:function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},a=Object.assign(Object.assign({},r),t);return(e=Array(a.numItems),function(e){if(Array.isArray(e))return n(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return n(e,t);var a={}.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?n(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()).map((function(){return{width:"".concat(Math.max(Math.floor(Math.random()*a.maxWidth),a.minWidth),"px")}}))}}},81803:(e,t,a)=>{a.d(t,{d:()=>b});var n=a(32735),r=a(81886),l=a(23481),i=a(49935),c=a(22902),o=a(14070),u=a(97291),s=a(96368);function m(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=Array(t);a<t;a++)n[a]=e[a];return n}var d="settings.settingsLayout",p=function(e){var t=(0,c.T)().hasPermissions,a=(0,s.e)();if(e)return t(e);var n=r.Q.C$.getCurrentAppLink();return n.application!==u.O.SETTINGS||a.some((function(e){return e.modules.some((function(e){return"appLink"in e&&e.appLink.action===n.action}))}))};function b(e){var t,a=p(e.requiredPermissions);if(n.useEffect((function(){a||r.Q.C$.trigger({application:u.O.SETTINGS,action:o.e.Settings.HOME},{replace:!0})}),[a]),!a)return n.createElement(n.Fragment,null);var c,s=e.breadcrumbs.map((function(t,a){return{name:t,appLink:{application:u.O.SETTINGS,action:o.e.Settings.HOME},active:a===e.breadcrumbs.length-1}}));return n.createElement("div",{className:"px-3"},n.createElement("div",{className:"d-flex align-items-center justify-content-between"},n.createElement("h1",{className:"h2"},e.heading),null===(t=e.headingButton)||void 0===t?void 0:t.call(e)),n.createElement("div",{className:"pb-3"},n.createElement(i.Oo,{breadcrumbs:[{name:l.T.getPhrase(d,"settingsBreadcrumb"),appLink:{application:u.O.SETTINGS,action:o.e.Settings.HOME}}].concat((c=s,function(e){if(Array.isArray(e))return m(e)}(c)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(c)||function(e,t){if(e){if("string"==typeof e)return m(e,t);var a={}.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?m(e,t):void 0}}(c)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()))})),e.description&&n.createElement(n.Fragment,null,n.createElement("p",null,e.description),n.createElement("hr",null)),e.children)}},55606:(e,t,a)=>{a.r(t),a.d(t,{VideoPlaybackSettingsView:()=>D});var n=a(32735),r=a(23481),l=a(20354),i=a(65858),c=a(77963),o=a(65728),u=a(31949),s=a(69883),m=a(37802),d=a(81803),p=a(92802),b=a(23201),f=a(82644),v=a(83345),g=a(80130);const h={radioButton:"JKFf9",description:"aVBqv"};function y(e){return n.createElement("div",null,n.createElement(g.Z.Check,{type:"radio",id:e.id,label:e.name,value:e.value,onChange:function(){return e.onSelect(e.value)},checked:e.selected,className:h.radioButton}),n.createElement("p",{className:h.description},e.description))}var E="settings.localCacheQualitySettings",S=r.T.encloseNamespace(E);function N(){var e=(0,p.u6)();function t(t){e.setFieldValue("quality",t)}return n.createElement(p.l0,null,n.createElement(y,{id:"local-cache-480",name:S("lowName"),description:S("lowDescription"),value:480,selected:480===e.values.quality,onSelect:t}),n.createElement(y,{id:"local-cache-720",name:S("standardName"),description:S("standardDescription"),value:720,selected:720===e.values.quality,onSelect:t}),n.createElement(y,{id:"local-cache-1080",name:S("highName"),description:S("highDescription"),value:1080,selected:1080===e.values.quality,onSelect:t}),n.createElement(b.A,{isNew:!1,variant:"outline-dark"}))}function k(e){return n.createElement(n.Fragment,null,n.createElement("h2",{className:"h4"},n.createElement(v.x,{namespace:E,phrase:"heading"})),n.createElement("p",null,n.createElement(v.x,{namespace:E,phrase:"description"})),n.createElement(f.n,{initialValues:{quality:e.initialValue},onSubmit:e.onSubmit},n.createElement(N,null)))}var w="settings.playbackQualitySettings",O=r.T.encloseNamespace(w);function I(){var e=(0,p.u6)();function t(t){e.setFieldValue("quality",t)}return n.createElement(p.l0,null,n.createElement(y,{id:"playback-480",name:O("lowName"),description:O("lowDescription"),value:480,selected:480===e.values.quality,onSelect:t}),n.createElement(y,{id:"playback-720",name:O("standardName"),description:O("standardDescription"),value:720,selected:720===e.values.quality,onSelect:t}),n.createElement(y,{id:"playback-1080",name:O("highName"),description:O("highDescription"),value:1080,selected:1080===e.values.quality,onSelect:t}),n.createElement(b.A,{isNew:!1,variant:"outline-dark"}))}function A(e){return n.createElement(n.Fragment,null,n.createElement("h2",{className:"h4"},n.createElement(v.x,{namespace:w,phrase:"heading"})),n.createElement("p",null,n.createElement(v.x,{namespace:w,phrase:"description"})),n.createElement(f.n,{initialValues:{quality:e.initialValue},onSubmit:e.onSubmit},n.createElement(I,null)))}var j=a(83523);function x(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=Array(t);a<t;a++)n[a]=e[a];return n}var V="settings.subtitleSettings";function T(e){var t,a,r=(t=n.useState(e.initialValue),a=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var n,r,l,i,c=[],o=!0,u=!1;try{if(l=(a=a.call(e)).next,0===t){if(Object(a)!==a)return;o=!1}else for(;!(o=(n=l.call(a)).done)&&(c.push(n.value),c.length!==t);o=!0);}catch(e){u=!0,r=e}finally{try{if(!o&&null!=a.return&&(i=a.return(),Object(i)!==i))return}finally{if(u)throw r}}return c}}(t,a)||function(e,t){if(e){if("string"==typeof e)return x(e,t);var a={}.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?x(e,t):void 0}}(t,a)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),l=r[0],i=r[1];return n.createElement(n.Fragment,null,n.createElement("h2",{className:"h4"},n.createElement(v.x,{namespace:V,phrase:"heading"})),n.createElement("div",{className:"d-flex"},n.createElement("p",{className:"fw-semibold me-3"},n.createElement(v.x,{namespace:V,phrase:"alwaysShowCaptions"})),n.createElement(j.Z,{on:l,onClick:function(){var t=!l;e.onChange(t),i(t)}})))}const C={partialHeading:"p1Wlx",partialDescription:"BUF8M",partialQualityOption:"vKxI0",partialLabel:"ZPM9b",partialSaveButton:"bS4wu",partialToggle:"mVsyW"};function P(){return n.createElement("div",{className:C.partialQualityOption},n.createElement("div",{className:"".concat(C.partialLabel," mb-1 partial-loading-background")}),n.createElement("div",{className:"".concat(C.partialDescription," partial-loading-background")}))}function L(){return n.createElement(n.Fragment,null,n.createElement("div",{className:"".concat(C.partialHeading," mb-2 partial-loading-background")}),n.createElement("div",{className:"".concat(C.partialDescription," partial-loading-background")}),n.createElement(P,null),n.createElement(P,null),n.createElement(P,null),n.createElement("div",{className:"".concat(C.partialSaveButton," partial-loading-background")}),n.createElement("hr",{className:"my-4"}),n.createElement("div",{className:"".concat(C.partialHeading," mb-2 partial-loading-background")}),n.createElement("div",{className:"".concat(C.partialDescription," partial-loading-background")}),n.createElement(P,null),n.createElement(P,null),n.createElement(P,null),n.createElement("div",{className:"".concat(C.partialSaveButton," partial-loading-background")}),n.createElement("hr",{className:"my-4"}),n.createElement("div",{className:"".concat(C.partialHeading," mb-2 partial-loading-background")}),n.createElement("div",{className:"".concat(C.partialToggle," partial-loading-background")}))}const F={container:"oqAZz"};var q=r.T.encloseNamespace("settings.videoPlayback");function D(){var e=(0,s.Z)(),t=l.a.useBasicFetch(u.N.currentUser()),a=(0,m.r)(i.LZ.Settings),r=a.defaultPlaybackQuality,p=a.defaultLocalCachePlaybackQuality,b=a.enableSubtitlesDefault,f=a.isLoadingSettings,v=a.updateSetting;return n.createElement(d.d,{heading:q("heading"),breadcrumbs:[q("breadcrumb")]},f?n.createElement(L,null):n.createElement("div",{className:F.container},n.createElement(A,{initialValue:r,onSubmit:function(a,n){var l=a.quality;if(l!==r){var i={name:o.E.DefaultPlaybackQuality,value:l,kind:c.g.Permanent};v(t.data.customerId,i,(function(){return e.success(q("playbackSuccess"))}),(function(){return e.error(q("playbackError"))}),n)}}}),n.createElement("hr",{className:"my-4"}),n.createElement(k,{initialValue:p,onSubmit:function(a,n){var r=a.quality;if(r!==p){var l={name:o.E.DefaultLocalCachePlaybackQuality,value:r,kind:c.g.Permanent};v(t.data.customerId,l,(function(){return e.success(q("lcSuccess"))}),(function(){return e.error(q("lcError"))}),n)}}}),n.createElement("hr",{className:"my-4"}),n.createElement(T,{initialValue:b,onChange:function(a){var n={name:o.E.EnableSubtitlesDefault,value:a,kind:c.g.Permanent};v(t.data.customerId,n,(function(){return e.success(q(a?"subtitleEnableSuccess":"subtitleDisableSuccess"))}),(function(){return e.error(q("subtitleError"))}))}})))}}}]);
|
|
2
|
-
//# sourceMappingURL=5606-6c25caedc4-lite.chunk.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scripts/5606-6c25caedc4-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/components/breadcrumbs/Breadcrumbs.tsx","file:///app/packages/libs/shared/src/components/forms/form-buttons/FormButtons.tsx","file:///app/packages/libs/shared/src/components/forms/form-wrapper/FormWrapper.tsx","file:///app/packages/libs/shared/src/utils/PartialLoadingHelper.ts","file:///app/packages/projects/lite/src/apps/settings/components/settings-layout/SettingsLayout.tsx","file:///app/packages/projects/lite/src/apps/settings/components/video-playback/default-video-quality-selector/default-video-quality-selector.scss","file:///app/packages/projects/lite/src/apps/settings/components/video-playback/default-video-quality-selector/DefaultVideoQualitySelector.tsx","file:///app/packages/projects/lite/src/apps/settings/components/video-playback/local-cache-quality-settings/LocalCacheQualitySettings.tsx","file:///app/packages/projects/lite/src/apps/settings/components/video-playback/playback-quality-settings/PlaybackQualitySettings.tsx","file:///app/packages/projects/lite/src/apps/settings/components/video-playback/subtitle-settings/SubtitleSettings.tsx","file:///app/packages/projects/lite/src/apps/settings/views/video-playback/partial-loading/partial-video-playback-settings.scss","file:///app/packages/projects/lite/src/apps/settings/views/video-playback/partial-loading/PartialVideoPlaybackSettings.tsx","file:///app/packages/projects/lite/src/apps/settings/views/video-playback/video-playback-settings.scss","file:///app/packages/projects/lite/src/apps/settings/views/video-playback/VideoPlaybackSettingsView.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Core } from 'libs/common/core';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { MediaQueryStrings } from 'libs/shared/enums/MediaQueries';\nimport { useMediaQuery } from 'libs/shared/hooks/UseMediaQuery';\nimport { PartialLoadingHelper } from 'libs/shared/utils/PartialLoadingHelper';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { SvgContainer, SvgContainerSize } from '../svg-container/SvgContainer';\n\nexport interface Breadcrumb {\n name: string;\n appLink?: Core.AppLink;\n active?: boolean;\n}\n\ninterface BreadcrumbItemProps {\n breadcrumb: Breadcrumb;\n withBackIcon?: boolean;\n}\n\nexport const BreadcrumbItem = ({ breadcrumb: { name, appLink, active }, withBackIcon }: BreadcrumbItemProps) => (\n <li className={`breadcrumb-item${active ? ' active' : ''}`}>\n {active\n ? <strong>{name}</strong>\n : <AppLink appLink={appLink}>\n {withBackIcon && <SvgContainer svgName={cvSvgLibrary.ChevronLeft} size={SvgContainerSize.Small} />}\n <span className={withBackIcon ? 'ms-2' : ''}>{name}</span>\n </AppLink>\n }\n </li>\n);\n\ninterface BreadcrumbsProps {\n breadcrumbs: Breadcrumb[];\n}\n\nexport const Breadcrumbs = ({ breadcrumbs }: BreadcrumbsProps) => {\n const isMobile = useMediaQuery(MediaQueryStrings.XS);\n\n const length = breadcrumbs?.length;\n\n if (!length || (isMobile && length < 2))\n return <></>;\n\n if (isMobile)\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n <BreadcrumbItem breadcrumb={breadcrumbs[length - 2]} withBackIcon />\n </ol>\n </nav>\n );\n\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n {breadcrumbs.map((b, idx) => <BreadcrumbItem key={idx} breadcrumb={b} />)}\n </ol>\n </nav>\n );\n};\n\nexport const PartialBreadcrumbs = React.memo(function({ numItems = 3 }: { numItems?: number; }) {\n const isMobile = useMediaQuery(MediaQueryStrings.XS);\n\n if (isMobile) {\n return (\n <div className='partial-loading-background' style={{ height: '1.3125rem', width: '6rem' }} />\n );\n }\n\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n {PartialLoadingHelper.getPartialLoadingItems({ numItems }).map(({ width }, idx) => (\n <li key={idx} className='breadcrumb-item'>\n <span className='d-inline-block partial-loading-background' style={{ width }} dangerouslySetInnerHTML={{ __html: ' ' }} />\n </li>\n ))}\n </ol>\n </nav>\n );\n});","import * as React from 'react';\nimport { ButtonProps } from 'react-bootstrap';\nimport { useFormikContext } from 'formik';\n\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { FormSize } from 'libs/shared/components/forms/form-field/FormField';\nimport { SpinnerButton } from 'libs/shared/components/spinner-button/SpinnerButton';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { useCanSubmitForm } from 'libs/shared/hooks/UseCanSubmitForm';\n\nconst namespace = 'shared.formButtons';\n\ninterface FormButtonsProps {\n isNew?: boolean;\n submitText?: string;\n variant?: ButtonProps['variant'];\n size?: FormSize;\n className?: string;\n}\n\nexport function FormButtons<Values extends HashObject>(props: FormButtonsProps): JSX.Element {\n const formikProps = useFormikContext<Values>();\n\n const canSubmit = useCanSubmitForm(formikProps);\n\n return (\n <SpinnerButton\n variant={props.variant || 'primary'}\n type='submit'\n disabled={!canSubmit}\n size={props.size}\n className={props.className ? props.className : ''}\n showSpinner={formikProps.isSubmitting}\n >\n {props.submitText\n ? <>{props.submitText}</>\n : <Text namespace={namespace} phrase={props.isNew ? 'create' : 'save'} />}\n </SpinnerButton>\n );\n}\n","import * as React from 'react';\nimport { Formik, FormikConfig, FormikContextType, FormikErrors, FormikHelpers, FormikProps, FormikValues, useFormikContext } from 'formik';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\n/**\n * Note: This currently doesn't support arrays, but the need for arrays as initial\n * form data has not yet come up\n */\nfunction omitNullInitialValues<Values extends FormikValues>(initialValues: Values): Values {\n if (!initialValues)\n return {} as Values;\n\n const values = ObjectHelper.deepClone(initialValues);\n\n function omitChildValues(child: Values): void {\n Object.keys(values).forEach((key: keyof Values) => {\n if (!values.hasOwnProperty(key))\n return;\n \n if (ObjectHelper.isObject(child[key]))\n omitChildValues(child[key]);\n else if (values[key] === null)\n delete values[key];\n });\n }\n\n omitChildValues(values);\n return values;\n}\n\n// Omit attributes from FormikConfig that are defined in FormWrapperProps.\ntype ModifiedFormikConfig<Values extends FormikValues> = Omit<FormikConfig<Values>, 'initialValues' | 'onSubmit'>;\n\ninterface InitialStatus {\n allowInitialSubmit: boolean;\n}\n\nexport type FormSubmissionOptions<FormValues = FormikValues> = {\n reset?: boolean;\n errors?: FormikErrors<FormValues>;\n};\n\ninterface FormWrapperProps<FormValues extends FormikValues, ApiValues extends FormikValues> {\n initialValues: Partial<FormValues | ApiValues>;\n onSubmit: (data: FormValues, onDone: (options?: FormSubmissionOptions<FormValues>) => void) => void;\n castInitialValues?: boolean; // cast to validationSchema\n castValuesOnSubmit?: boolean; // cast to validationSchema\n allowInitialSubmit?: boolean; // if true, useCanSubmitForm will allow submit without any user changes.\n}\n\nFormWrapper.defaultProps = {\n castInitialValues: true,\n castValuesOnSubmit: true\n};\n\nexport function FormWrapper<\n FormValues extends FormikValues = FormikValues,\n ApiValues extends FormikValues = FormValues,\n ExtraProps = HashObject\n>(props: ModifiedFormikConfig<FormValues> & ExtraProps & FormWrapperProps<FormValues, ApiValues>): JSX.Element {\n const { castInitialValues, castValuesOnSubmit, initialValues, onSubmit, ...formikProps } = props;\n\n /**\n * If castInitialValues is true, cast initialValues to the validationSchema.\n * This will ensure that any data fetched from the api conforms to the expected form data shape.\n */\n const formattedInitialValues: FormValues = castInitialValues && props.validationSchema\n ? props.validationSchema.cast(omitNullInitialValues(initialValues))\n : initialValues;\n\n const onSubmitHandler = (\n values: FormValues,\n { setSubmitting, resetForm, setFieldError }: FormikHelpers<FormValues>\n ) => {\n /**\n * validationSchema.cast will coerce the values to the types defined in validationSchema.\n * This is useful for trimming inputs:\n * e.g. if a value field has type Yup.string().trim(), it will be automatically trimmed.\n */\n const formattedData = castValuesOnSubmit && props.validationSchema\n ? props.validationSchema.cast(values)\n : values;\n\n onSubmit(formattedData, (options: FormSubmissionOptions<FormValues> = {}) => {\n options.reset && resetForm();\n\n if (options.errors) {\n for (const [ key, value ] of Object.entries(options.errors)) {\n setFieldError(key, value);\n }\n }\n\n setSubmitting(false);\n });\n };\n\n const initialStatus: InitialStatus = {\n allowInitialSubmit: props.allowInitialSubmit\n };\n\n return (\n <Formik<FormValues, ExtraProps>\n enableReinitialize\n {...(formikProps as ModifiedFormikConfig<FormValues> & ExtraProps)}\n initialValues={formattedInitialValues}\n onSubmit={onSubmitHandler}\n initialStatus={initialStatus}\n >\n {FunctionHelper.isFunction(props.children)\n ? (f: FormikProps<FormValues>) => (props.children as (f: FormikProps<FormValues>) => React.ReactNode)(f)\n : React.Children.count(props.children) ? props.children : null\n }\n </Formik>\n );\n}\n\nexport function useFormikContextWrapper<T>(): FormikContextType<T> {\n return useFormikContext<T>();\n}","const DEFAULT_PARTIAL_LOADING_OPTIONS: PartialLoadingOptions = {\n numItems: 5,\n minWidth: 50, // px\n maxWidth: 100 // px\n};\n\nexport interface PartialLoadingOptions {\n numItems?: number;\n minWidth?: number;\n maxWidth?: number;\n}\n\ninterface PartialLoadingItem {\n width: string;\n}\n\nexport const PartialLoadingHelper = {\n getPartialLoadingItems(options: PartialLoadingOptions = {}): PartialLoadingItem[] {\n const opts = {\n ...DEFAULT_PARTIAL_LOADING_OPTIONS,\n ...options\n };\n\n const getRandomFilterWidth = () => Math.max(Math.floor(Math.random() * opts.maxWidth), opts.minWidth);\n\n return [...Array(opts.numItems)].map(() => ({ width: `${getRandomFilterWidth()}px` }));\n }\n};","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { Breadcrumbs } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nimport { useGetSettingsGroups } from 'apps/settings/hooks/useGetSettingsGroups';\n\nconst namespace = 'settings.settingsLayout';\n\n/**\n * Checks if the current user has permission to access the settings module\n */\nexport const useCanAccessSettings = (requiredPermissions: PermissionName | PermissionName[]): boolean => {\n const { hasPermissions } = usePermissions();\n const settingsGroups = useGetSettingsGroups();\n\n /**\n * TODO: Update all settings pages to pasas required permissions, because checking the \n * `useGetSettingsGroups()` values clearly doesnt work for settings pages with multiple\n * applinks inside of them. - Sha\n */\n if (requiredPermissions)\n return hasPermissions(requiredPermissions);\n\n const currentRoute = Core.AppLinkHelper.getCurrentAppLink();\n\n /**\n * Allows us to have popups sitting in other locations be used\n * by our settings pages. For example the manage video access popup\n * in the \"videos with restricted access\" page - Sha\n */\n if (currentRoute.application !== AppChannels.SETTINGS)\n return true;\n\n return settingsGroups.some(group => {\n return group.modules.some(settingsModule => {\n if ('appLink' in settingsModule) {\n return settingsModule.appLink.action === currentRoute.action;\n }\n\n return false;\n });\n });\n};\n\ninterface SettingsLayoutProps {\n heading: string;\n breadcrumbs: string[];\n description?: string;\n requiredPermissions?: PermissionName | PermissionName[];\n headingButton?: () => JSX.Element;\n}\n\nexport function SettingsLayout(props: React.PropsWithChildren<SettingsLayoutProps>): JSX.Element {\n const canAccess = useCanAccessSettings(props.requiredPermissions);\n\n React.useEffect(() => {\n if (!canAccess) {\n Core.AppLinkHelper.trigger({\n application: AppChannels.SETTINGS,\n action: Actions.Settings.HOME\n }, { replace: true });\n }\n }, [canAccess]);\n\n if (!canAccess)\n return <></>;\n\n const breadcrumbs = props.breadcrumbs.map((name, i) => ({\n name,\n appLink: {\n application: AppChannels.SETTINGS,\n action: Actions.Settings.HOME\n },\n active: i === props.breadcrumbs.length - 1\n }));\n\n return (\n <div className='px-3'>\n <div className='d-flex align-items-center justify-content-between'>\n <h1 className='h2'>{props.heading}</h1>\n {props.headingButton?.()}\n </div>\n <div className='pb-3'>\n <Breadcrumbs\n breadcrumbs={[\n {\n name: LanguageService.getPhrase(namespace, 'settingsBreadcrumb'),\n appLink: {\n application: AppChannels.SETTINGS,\n action: Actions.Settings.HOME\n }\n },\n ...breadcrumbs\n ]}\n />\n </div>\n {props.description &&\n <>\n <p>{props.description}</p>\n <hr />\n </>\n }\n\n {props.children}\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"radioButton\":\"JKFf9\",\"description\":\"aVBqv\"};","import React from 'react';\nimport { Form } from 'react-bootstrap';\n\nimport { DefaultPlaybackQuality } from 'libs/shared/interfaces';\n\nimport styles from './default-video-quality-selector.scss';\n\ninterface VideoQualityOptionProps {\n id: string;\n name: string;\n description: string;\n selected: boolean;\n value: DefaultPlaybackQuality;\n onSelect: (quality: DefaultPlaybackQuality) => void;\n}\n\nexport function VideoQualityOption(props: VideoQualityOptionProps): JSX.Element {\n return (\n <div>\n <Form.Check\n type='radio'\n id={props.id}\n label={props.name}\n value={props.value}\n onChange={() => props.onSelect(props.value)}\n checked={props.selected}\n className={styles.radioButton}\n />\n <p className={styles.description}>{props.description}</p>\n </div>\n );\n}","import React from 'react';\nimport { Form, useFormikContext } from 'formik';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { FormButtons } from 'libs/shared/components/forms/form-buttons/FormButtons';\nimport { FormWrapper } from 'libs/shared/components/forms/form-wrapper/FormWrapper';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { DefaultPlaybackQuality } from 'libs/shared/interfaces';\n\nimport { VideoQualityOption } from 'apps/settings/components/video-playback/default-video-quality-selector/DefaultVideoQualitySelector';\n\ninterface QualityModel {\n quality: DefaultPlaybackQuality;\n}\n\nconst namespace = 'settings.localCacheQualitySettings';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nfunction LocalCacheQualityForm(): JSX.Element {\n const formikProps = useFormikContext<QualityModel>();\n\n function onSelectValue(value: DefaultPlaybackQuality): void {\n formikProps.setFieldValue('quality', value);\n }\n\n return (\n <Form>\n <VideoQualityOption\n id='local-cache-480'\n name={getPhrase('lowName')}\n description={getPhrase('lowDescription')}\n value={480}\n selected={formikProps.values.quality === 480}\n onSelect={onSelectValue}\n />\n <VideoQualityOption\n id='local-cache-720'\n name={getPhrase('standardName')}\n description={getPhrase('standardDescription')}\n value={720}\n selected={formikProps.values.quality === 720}\n onSelect={onSelectValue}\n />\n <VideoQualityOption\n id='local-cache-1080'\n name={getPhrase('highName')}\n description={getPhrase('highDescription')}\n value={1080}\n selected={formikProps.values.quality === 1080}\n onSelect={onSelectValue}\n />\n\n <FormButtons\n isNew={false}\n variant='outline-dark'\n />\n </Form>\n );\n}\n\ninterface LocalCacheQualitySettingsProps {\n initialValue: DefaultPlaybackQuality;\n onSubmit: (data: QualityModel, onDone: () => void) => void;\n}\n\nexport function LocalCacheQualitySettings(props: LocalCacheQualitySettingsProps): JSX.Element {\n return (\n <>\n <h2 className='h4'><Text namespace={namespace} phrase='heading' /></h2>\n <p><Text namespace={namespace} phrase='description' /></p>\n\n <FormWrapper<QualityModel>\n initialValues={{ quality: props.initialValue }}\n onSubmit={props.onSubmit}\n >\n <LocalCacheQualityForm />\n </FormWrapper>\n </>\n );\n}","import React from 'react';\nimport { Form, useFormikContext } from 'formik';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { FormButtons } from 'libs/shared/components/forms/form-buttons/FormButtons';\nimport { FormWrapper } from 'libs/shared/components/forms/form-wrapper/FormWrapper';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { DefaultPlaybackQuality } from 'libs/shared/interfaces';\n\nimport { VideoQualityOption } from 'apps/settings/components/video-playback/default-video-quality-selector/DefaultVideoQualitySelector';\n\ninterface QualityModel {\n quality: DefaultPlaybackQuality;\n}\n\nconst namespace = 'settings.playbackQualitySettings';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nfunction PlaybackQualityForm(): JSX.Element {\n const formikProps = useFormikContext<QualityModel>();\n\n function onSelectValue(value: DefaultPlaybackQuality): void {\n formikProps.setFieldValue('quality', value);\n }\n\n return (\n <Form>\n <VideoQualityOption\n id='playback-480'\n name={getPhrase('lowName')}\n description={getPhrase('lowDescription')}\n value={480}\n selected={formikProps.values.quality === 480}\n onSelect={onSelectValue}\n />\n <VideoQualityOption\n id='playback-720'\n name={getPhrase('standardName')}\n description={getPhrase('standardDescription')}\n value={720}\n selected={formikProps.values.quality === 720}\n onSelect={onSelectValue}\n />\n <VideoQualityOption\n id='playback-1080'\n name={getPhrase('highName')}\n description={getPhrase('highDescription')}\n value={1080}\n selected={formikProps.values.quality === 1080}\n onSelect={onSelectValue}\n />\n\n <FormButtons<QualityModel>\n isNew={false}\n variant='outline-dark'\n />\n </Form>\n );\n}\n\ninterface PlaybackQualitySettingsProps {\n initialValue: DefaultPlaybackQuality;\n onSubmit: (data: QualityModel, onDone: () => void) => void;\n}\n\nexport function PlaybackQualitySettings(props: PlaybackQualitySettingsProps): JSX.Element {\n return (\n <>\n <h2 className='h4'><Text namespace={namespace} phrase='heading' /></h2>\n <p><Text namespace={namespace} phrase='description' /></p>\n\n <FormWrapper<QualityModel>\n initialValues={{ quality: props.initialValue }}\n onSubmit={props.onSubmit}\n >\n <PlaybackQualityForm />\n </FormWrapper>\n </>\n );\n}","import React from 'react';\n\nimport { Text } from 'libs/shared/components/text/Text';\nimport { ToggleSwitch } from 'libs/shared/components/toggle-switch/ToggleSwitch';\n\nconst namespace = 'settings.subtitleSettings';\n\ninterface SubtitleSettingsProps {\n initialValue: boolean;\n onChange: (value: boolean) => void;\n}\n\nexport function SubtitleSettings(props: SubtitleSettingsProps): JSX.Element {\n const [ enabled, setEnabled ] = React.useState(props.initialValue);\n\n function onChange(): void {\n const newValue = !enabled;\n\n props.onChange(newValue);\n setEnabled(newValue);\n }\n \n return (\n <>\n <h2 className='h4'><Text namespace={namespace} phrase='heading' /></h2>\n <div className='d-flex'>\n <p className='fw-semibold me-3'>\n <Text namespace={namespace} phrase='alwaysShowCaptions' />\n </p>\n <ToggleSwitch on={enabled} onClick={onChange} />\n </div>\n </>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"partialHeading\":\"p1Wlx\",\"partialDescription\":\"BUF8M\",\"partialQualityOption\":\"vKxI0\",\"partialLabel\":\"ZPM9b\",\"partialSaveButton\":\"bS4wu\",\"partialToggle\":\"mVsyW\"};","import React from 'react';\n\nimport styles from './partial-video-playback-settings.scss';\n\nfunction PartialQualityOption(): JSX.Element {\n return (\n <div className={styles.partialQualityOption}>\n <div className={`${styles.partialLabel} mb-1 partial-loading-background`} />\n <div className={`${styles.partialDescription} partial-loading-background`} />\n </div>\n );\n}\n\nexport function PartialVideoPlaybackSettings(): JSX.Element {\n return (\n <>\n <div className={`${styles.partialHeading} mb-2 partial-loading-background`} />\n <div className={`${styles.partialDescription} partial-loading-background`} />\n\n <PartialQualityOption />\n <PartialQualityOption />\n <PartialQualityOption />\n\n <div className={`${styles.partialSaveButton} partial-loading-background`} />\n \n <hr className='my-4' />\n\n <div className={`${styles.partialHeading} mb-2 partial-loading-background`} />\n <div className={`${styles.partialDescription} partial-loading-background`} />\n\n <PartialQualityOption />\n <PartialQualityOption />\n <PartialQualityOption />\n \n <div className={`${styles.partialSaveButton} partial-loading-background`} />\n\n <hr className='my-4' />\n\n <div className={`${styles.partialHeading} mb-2 partial-loading-background`} />\n <div className={`${styles.partialToggle} partial-loading-background`} />\n </>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"oqAZz\"};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { SettingKind } from 'libs/shared/enums/SettingKind';\nimport { SettingName } from 'libs/shared/enums/SettingName';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { CurrentUser } from 'libs/shared/interfaces';\n\nimport { SettingsLayout } from 'apps/settings/components/settings-layout/SettingsLayout';\nimport { LocalCacheQualitySettings } from 'apps/settings/components/video-playback/local-cache-quality-settings/LocalCacheQualitySettings';\nimport { PlaybackQualitySettings } from 'apps/settings/components/video-playback/playback-quality-settings/PlaybackQualitySettings';\nimport { SubtitleSettings } from 'apps/settings/components/video-playback/subtitle-settings/SubtitleSettings';\n\nimport { PartialVideoPlaybackSettings } from './partial-loading/PartialVideoPlaybackSettings';\n\nimport styles from './video-playback-settings.scss';\n\nconst namespace = 'settings.videoPlayback';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function VideoPlaybackSettingsView(): JSX.Element {\n const alerts = useAlerts();\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n\n const {\n defaultPlaybackQuality,\n defaultLocalCachePlaybackQuality,\n enableSubtitlesDefault,\n isLoadingSettings,\n updateSetting\n } = useSettings(LocationContext.Settings);\n\n function onSavePlaybackQuality({ quality }: HashObject, onDone: () => void): void {\n if (quality === defaultPlaybackQuality)\n return;\n\n const newSetting = {\n name: SettingName.DefaultPlaybackQuality,\n value: quality,\n kind: SettingKind.Permanent\n };\n\n updateSetting(\n currentUser.data.customerId,\n newSetting,\n () => alerts.success(getPhrase('playbackSuccess')),\n () => alerts.error(getPhrase('playbackError')),\n onDone\n );\n }\n\n function onSaveLocalCacheQuality({ quality }: HashObject, onDone: () => void): void {\n if (quality === defaultLocalCachePlaybackQuality)\n return;\n\n const newSetting = {\n name: SettingName.DefaultLocalCachePlaybackQuality,\n value: quality,\n kind: SettingKind.Permanent\n };\n\n updateSetting(\n currentUser.data.customerId,\n newSetting,\n () => alerts.success(getPhrase('lcSuccess')),\n () => alerts.error(getPhrase('lcError')),\n onDone\n );\n }\n\n function onSaveDefaultSubtitleState(value: boolean): void {\n const newSetting = {\n name: SettingName.EnableSubtitlesDefault,\n value,\n kind: SettingKind.Permanent\n };\n\n updateSetting(\n currentUser.data.customerId,\n newSetting,\n () => alerts.success(getPhrase(value ? 'subtitleEnableSuccess' : 'subtitleDisableSuccess')),\n () => alerts.error(getPhrase('subtitleError'))\n );\n }\n\n return (\n <SettingsLayout\n heading={getPhrase('heading')}\n breadcrumbs={[getPhrase('breadcrumb')]}\n >\n {!isLoadingSettings\n ? (\n <div className={styles.container}>\n <PlaybackQualitySettings\n initialValue={defaultPlaybackQuality}\n onSubmit={onSavePlaybackQuality}\n />\n\n <hr className='my-4' />\n\n <LocalCacheQualitySettings\n initialValue={defaultLocalCachePlaybackQuality}\n onSubmit={onSaveLocalCacheQuality}\n />\n\n <hr className='my-4' />\n\n <SubtitleSettings\n initialValue={enableSubtitlesDefault}\n onChange={onSaveDefaultSubtitleState}\n />\n </div>\n ) : (\n <PartialVideoPlaybackSettings />\n )\n }\n </SettingsLayout>\n );\n}"],"names":["BreadcrumbItem","breadcrumb","name","appLink","active","withBackIcon","className","svgName","size","S","Breadcrumbs","breadcrumbs","isMobile","length","map","b","idx","key","PartialBreadcrumbs","numItems","style","height","width","dangerouslySetInnerHTML","__html","namespace","FormButtons","props","formikProps","canSubmit","variant","type","disabled","showSpinner","isSubmitting","submitText","phrase","isNew","FormWrapper","castInitialValues","castValuesOnSubmit","initialValues","onSubmit","formattedInitialValues","validationSchema","cast","values","omitChildValues","child","Object","keys","forEach","hasOwnProperty","omitNullInitialValues","initialStatus","allowInitialSubmit","enableReinitialize","setSubmitting","resetForm","setFieldError","formattedData","options","reset","errors","entries","value","children","f","useFormikContextWrapper","defaultProps","DEFAULT_PARTIAL_LOADING_OPTIONS","minWidth","maxWidth","PartialLoadingHelper","getPartialLoadingItems","opts","Array","Math","max","floor","random","useCanAccessSettings","requiredPermissions","hasPermissions","settingsGroups","currentRoute","application","some","group","modules","settingsModule","action","SettingsLayout","canAccess","replace","i","heading","headingButton","description","VideoQualityOption","Form","id","label","onChange","onSelect","checked","selected","getPhrase","LanguageService","LocalCacheQualityForm","onSelectValue","setFieldValue","quality","LocalCacheQualitySettings","Text","initialValue","PlaybackQualityForm","PlaybackQualitySettings","SubtitleSettings","enabled","setEnabled","ToggleSwitch","on","onClick","newValue","PartialQualityOption","PartialVideoPlaybackSettings","VideoPlaybackSettingsView","alerts","currentUser","UserRequests","useSettings","defaultPlaybackQuality","defaultLocalCachePlaybackQuality","enableSubtitlesDefault","isLoadingSettings","updateSetting","onDone","newSetting","SettingName","kind","SettingKind","data","customerId","success","error"],"sourceRoot":""}
|