@clickview/lite 0.52.0 → 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/{6102-ce44fd00aa-lite.chunk.js → 6102-3ddcebe8a1-lite.chunk.js} +3 -3
- package/dist/scripts/{6102-ce44fd00aa-lite.chunk.js.map → 6102-3ddcebe8a1-lite.chunk.js.map} +1 -1
- 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-1e1730f25e.min.js +0 -3
- package/dist/scripts/bundle-1e1730f25e.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/{6102-ce44fd00aa-lite.chunk.js.LICENSE.txt → 537-f63ad5863e-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{624-7ab5fb3f3b-lite.chunk.js.LICENSE.txt → 6102-3ddcebe8a1-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-1e1730f25e.min.js.LICENSE.txt → bundle-9a72d04e7d.min.js.LICENSE.txt} +0 -0
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[3020],{83657:(e,t,n)=>{n.d(t,{e:()=>l});var a=n(32735),r=n(91967),o=n(10874),i=n(76177),c=n(42735),s=n(86509);function l(e){var t=a.useMemo((function(){return e.actions.sort((function(e,t){return e.order-t.order}))}),[e.actions]),n=[],l=[];t.forEach((function(e){e.button?n.push(e):l.push(e)}));var u="d-flex";return e.className&&(u+=" ".concat(e.className)),n.length||l.length?a.createElement("div",{className:u},n.length?n.map((function(t,n){return a.createElement(a.Fragment,{key:n},function(){if(t.label){var n=r.q.isFunction(t.label)?t.label:function(){return a.createElement(a.Fragment,null,t.label)};return a.createElement(c.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},n())}var s=a.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?a.createElement(i.u,{title:t.tooltip,spanHack:!0},s):s}())})):a.createElement(a.Fragment,null),e.sortComponent&&e.sortComponent,l.length?a.createElement(s.m,{actions:l,dropdownToggleClassName:e.actionsDropdownClassName,dropdownToggleSvgSize:e.dropdownToggleSvgSize,fetchMore:e.fetchMore}):a.createElement(a.Fragment,null)):a.createElement(a.Fragment,null)}},86509:(e,t,n)=>{n.d(t,{m:()=>g});var a=n(32735),r=n(91967),o=n(81886),i=n(45157),c=n(49985),s=n(36848),l=n(83914),u=n(76177),m=n(35223);const d={dropdownToggle:"UCAnJ"};function p(){return a.createElement(a.Fragment,null,a.createElement("div",{style:{padding:"0.53125rem 1rem"}},a.createElement("div",{className:"partial-loading-background",style:{height:"1.0625rem",width:"8rem"}})),a.createElement("div",{style:{padding:"0.53125rem 1rem"}},a.createElement("div",{className:"partial-loading-background",style:{height:"1.0625rem",width:"12rem"}})),a.createElement("div",{style:{padding:"0.53125rem 1rem"}},a.createElement("div",{className:"partial-loading-background",style:{height:"1.0625rem",width:"11rem"}})),a.createElement("div",{style:{padding:"0.53125rem 1rem"}},a.createElement("div",{className:"partial-loading-background",style:{height:"1.0625rem",width:"9rem"}})))}function f(e){var t="dropdown-item";return e&&(t+=" ".concat(e)),t}function b(e){var t=r.q.isFunction(e.action.label)?e.action.label:function(){return a.createElement(a.Fragment,null,e.action.label)};if(e.action.appLink)return a.createElement(s.F,{appLink:e.action.appLink,onClick:e.action.onClick,className:f(e.action.className),analyticsData:e.action.analyticsData,analyticsOptions:e.action.analyticsOptions,openInNewTab:e.action.openInNewTab,disabled:e.action.disabled},e.action.svgName&&a.createElement(l.x,{svgName:e.action.svgName,className:"d-inline-block svg-container me-2 align-middle"}),a.createElement("span",{className:"align-middle"},t()));function n(t){t.preventDefault(),e.action.analyticsData&&e.action.analyticsOptions&&c.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?a.createElement("a",{className:f(e.action.className),onClick:n,href:e.action.href},e.action.svgName&&a.createElement(l.x,{svgName:e.action.svgName,className:"d-inline-block svg-container me-2 align-middle"}),a.createElement("span",{className:"align-middle"},t())):a.createElement("span",{className:"cursor-pointer ".concat(f(e.action.className)),onClick:n,role:"button",tabIndex:0,onKeyDown:function(e){return"Enter"===e.key&&n(e)}},e.action.svgName&&a.createElement(l.x,{svgName:e.action.svgName,className:"d-inline-block svg-container me-2"}),t())}function g(e){if(!e.actions||!e.actions.length)return a.createElement(a.Fragment,null);var t=e.actions.some((function(e){return e.lazyPlaceholder})),n="dropdown";e.className&&(n+=" ".concat(e.className));var r,o="actions-dropdown-".concat(i.Y.getRandomInt()),c="dropdown-toggle px-0 ".concat(d.dropdownToggle);return e.dropdownToggleClassName&&(c+=" ".concat(e.dropdownToggleClassName)),a.createElement("div",{className:n},a.createElement("button",{className:c,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},a.createElement(l.x,{svgName:m.vn.More,size:e.dropdownToggleSvgSize})),a.createElement("ul",{className:"dropdown-menu dropdown-menu-end dropdown-menu-right font-size-normal","aria-labelledby":o},t?a.createElement(p,null):e.actions.map((function(e,t){var n=void 0!==r&&r!==e.group;return r=e.group,e.tooltip?a.createElement("li",{key:t},n&&a.createElement("hr",{className:"dropdown-divider",role:"separator"}),a.createElement(u.u,{title:e.tooltip,spanHack:!0},a.createElement(b,{action:e}))):a.createElement("li",{key:t},n&&a.createElement("hr",{className:"dropdown-divider",role:"separator"}),a.createElement(b,{action:e}))}))))}g.defaultProps={dropdownToggleClassName:"btn btn-light",dropdownToggleSvgSize:l.S.Small}},49935:(e,t,n)=>{n.d(t,{Oo:()=>d,b2:()=>p});var a=n(32735),r=n(36848),o=n(86764),i=n(3747),c=n(5859),s=n(35223),l=n(83914);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}var m=function(e){var t=e.breadcrumb,n=t.name,o=t.appLink,i=t.active,c=e.withBackIcon;return a.createElement("li",{className:"breadcrumb-item".concat(i?" active":"")},i?a.createElement("strong",null,n):a.createElement(r.F,{appLink:o},c&&a.createElement(l.x,{svgName:s.vn.ChevronLeft,size:l.S.Small}),a.createElement("span",{className:c?"ms-2":""},n)))},d=function(e){var t,n,r=e.breadcrumbs,c=(0,i.a)(o.r.XS),s=(null==r?void 0:r.length)||0,l=(t=a.useState(!1),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,o,i,c=[],s=!0,l=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(a=o.call(n)).done)&&(c.push(a.value),c.length!==t);s=!0);}catch(e){l=!0,r=e}finally{try{if(!s&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(l)throw r}}return c}}(t,n)||function(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}}(t,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),d=l[0],p=l[1];if(a.useEffect((function(){var e,t=null!==(e=null==r?void 0:r.reduce((function(e,t){return e+t.name.length}),0))&&void 0!==e?e:0;s>3&&t>56&&p(!0)}),[null==r?void 0:r.length]),!s||c&&s<2)return a.createElement(a.Fragment,null);if(c)return a.createElement("nav",{"aria-label":"breadcrumb"},a.createElement("ol",{className:"breadcrumb m-0 p-0"},a.createElement(m,{breadcrumb:r[s-2],withBackIcon:!0})));var f=a.createElement(m,{breadcrumb:r[0]}),b=s>2?a.createElement(m,{breadcrumb:r[s-2]}):a.createElement(a.Fragment,null),g=a.createElement(m,{breadcrumb:r[s-1]}),y=r.slice(1,s-2);return a.createElement("nav",{"aria-label":"breadcrumb"},a.createElement("ol",{className:"breadcrumb m-0 p-0"},f,d?a.createElement("li",{className:"breadcrumb-item"},a.createElement("button",{className:"btn-link",onClick:function(){return p(!1)}},"...")):y.map((function(e,t){return a.createElement(m,{key:t,breadcrumb:e})})),b,g))},p=a.memo((function(e){var t=e.numItems,n=void 0===t?3:t;return(0,i.a)(o.r.XS)?a.createElement("div",{className:"partial-loading-background",style:{height:"1.3125rem",width:"6rem"}}):a.createElement("nav",{"aria-label":"breadcrumb"},a.createElement("ol",{className:"breadcrumb m-0 p-0"},c.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:" "}}))}))))}))},38502:(e,t,n)=>{n.d(t,{r:()=>m});var a=n(32735),r=n(49985),o=n(36848),i=n(18559),c=n(11607),s=n(83914),l=n(87432);function u(e){return a.createElement(a.Fragment,null,!!e.tab.svgName&&a.createElement("div",{className:e.tab.name?"pe-1":""},a.createElement(s.x,{svgName:e.tab.svgName})),e.tab.name,"number"==typeof e.tab.count&&a.createElement("div",{className:"ps-2"},a.createElement(i.C,{type:i.g.Count,data:e.tab.count})))}function m(e){var t;return a.createElement("nav",{className:null!==(t=e.className)&&void 0!==t?t:"",ref:e.containerRef},a.createElement("ul",{className:"\n list-unstyled d-inline-block m-0 ".concat(l.Z.pillTabSelector,"\n ").concat(e.borderRadius?l.Z.radiusSmall:"","\n ").concat(e.listClassName,"\n ")},e.tabs.map((function(e,t){return a.createElement("li",{className:"\n p-0 ".concat(l.Z.tab," ").concat(e.active?"btn btn-dark":"btn btn-outline-dark","\n ").concat(e.name?l.Z.minWidth:""," ").concat(e.className,"\n "),key:t},e.appLink?a.createElement(o.F,{appLink:e.appLink,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions,className:"\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ".concat(l.Z.tabLink,"\n ")},a.createElement(u,{tab:e})):a.createElement(c.L,{className:"\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset p-2 text-nowrap ".concat(l.Z.tabLink,"\n "),onClick:function(){return function(e){!e.active&&e.onSelect&&(e.onSelect(),e.analyticsData&&e.analyticsOptions&&r.k.logUserAction(e.analyticsData,e.analyticsOptions))}(e)}},a.createElement(u,{tab:e})))}))))}m.defaultProps={borderRadius:"lg"}},5062:(e,t,n)=>{n.d(t,{Z:()=>i});var a=n(32735),r=n(87432);const o={partialSize:"ntGsj"};function i(){return a.createElement("div",{className:"partial-loading-background ".concat(r.Z.pillTabSelector," ").concat(o.partialSize)})}},94644:(e,t,n)=>{n.d(t,{r:()=>u});var a=n(50242),r=n(81886),o=n(67058),i=n(14553),c=n(49267),s=n(49075),l={notFound:o.d,forbidden:{rating:i.q,yearLevel:i.q,region:c.a,privacy:i.q},badRequest:s._};function u(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e){var o;o="number"==typeof e?e:e.status;var i=Object.assign(Object.assign({},l),t);o&&r.Q.Ry.isStatusCodeError(o)&&(o!==a.o.NotFound?o!==a.o.Forbidden?n.badRequest||r.Q.Ry.throw(new i.badRequest):n.forbidden||r.Q.Ry.throw(new i.forbidden.privacy):n.notFound||r.Q.Ry.throw(new i.notFound))}}},91286:(e,t,n)=>{n.d(t,{v:()=>i});var a=n(32735),r=n(94644);function o(e){return e.map((function(e){return e.statusCode})).join(":")}function i(e,t,n){var i=Array.isArray(e)?e:[e];(0,a.useEffect)((function(){i.forEach((function(e){(0,r.r)(e.statusCode,t,n)}))}),[o(i),t,n])}},53036:(e,t,n)=>{n.d(t,{h:()=>r});var a=n(32045),r={getStatusAsString:function(e){if("string"==typeof e)return e;if("number"==typeof e){if(0===e)return a.w.Disabled;if(1===e)return a.w.Active;if(2===e)return a.w.Inactive}return null},getStatusAsNumber:function(e){if("number"==typeof e)return e;if("string"==typeof e){if(e===a.w.Disabled)return 0;if(e===a.w.Active)return 1;if(e===a.w.Inactive)return 2}return null}}},5859:(e,t,n)=>{function a(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}n.d(t,{u:()=>o});var r={numItems:5,minWidth:50,maxWidth:100},o={getPartialLoadingItems:function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=Object.assign(Object.assign({},r),t);return(e=Array(n.numItems),function(e){if(Array.isArray(e))return a(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return a(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?a(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()).map((function(){return{width:"".concat(Math.max(Math.floor(Math.random()*n.maxWidth),n.minWidth),"px")}}))}}},62691:(e,t,n)=>{n.d(t,{m:()=>b});var a=n(32735),r=n(23481),o=n(49985),i=n(65858),c=n(11607),s=n(83914),l=n(69883),u=n(1643),m=n(35223);function d(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=r.T.encloseNamespace("classrooms.classroomStar"),f=function(e){return u.h.isFavouritedByCurrentUser(e)};function b(e){var t,n,r=(t=a.useState(f(e.classroom)),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,o,i,c=[],s=!0,l=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(a=o.call(n)).done)&&(c.push(a.value),c.length!==t);s=!0);}catch(e){l=!0,r=e}finally{try{if(!s&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(l)throw r}}return c}}(t,n)||function(e,t){if(e){if("string"==typeof e)return d(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)?d(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.")}()),u=r[0],b=r[1],g=(0,l.Z)();return a.useEffect((function(){f(e.classroom)!==u&&b(!u)}),[f(e.classroom)]),a.createElement(c.L,{onClick:function(){b(!u),e.onToggle(!u,(function(){return function(t){if(t)return o.k.logUserAction({id:e.classroom.id},{location:e.locationContext,actionType:i.Vw.Favourite,descriptor:i.DL.On,entity:i.py.Classroom,workflowPhase:i.eu.Complete}),void g.success(p("pinSuccess",{classroomName:e.classroom.name,escapeText:!0}));o.k.logUserAction({id:e.classroom.id},{location:e.locationContext,actionType:i.Vw.Favourite,descriptor:i.DL.Off,entity:i.py.Classroom,workflowPhase:i.eu.Complete}),g.success(p("unpinSuccess",{classroomName:e.classroom.name,escapeText:!0}))}(!u)}),(function(){return b(t=u),void(t?g.error(p("unpinError",{classroomName:e.classroom.name,escapeText:!0})):g.error(p("pinError",{classroomName:e.classroom.name,escapeText:!0})));var t}))},className:u?"text-yellow":""},a.createElement(s.x,{svgName:u?m.vn.Star:m.vn.StarOutline,size:s.S.Medium}))}},46009:(e,t,n)=>{n.d(t,{p:()=>s});var a=n(20354),r=n(16714),o=n(31949),i=n(22902),c=n(88630),s=function(e){var t,n=(0,(0,i.T)().hasPermissions)(r.C.ManageAllClassrooms),s=a.a.useBasicFetch(o.N.currentUser()),l=a.a.useBasicFetch(!n&&(null===(t=s.data)||void 0===t?void 0:t.customerId)&&c.F.getClassroomStaff(e,s.data.customerId)),u=a.a.useBasicFetch(!n&&c.F.getClassroomOwners(e));if(n)return{isLoading:!1,isOwner:!0,isTeacher:!0};if(!l.hasCompleted||!u.hasCompleted||!s.hasCompleted)return{isLoading:!0};var m=s.data.id.toString(),d=!!u.data.find((function(e){return e.id.toString()===m})),p=!!l.data.find((function(e){return e.id.toString()===m}));return{isLoading:!1,isTeacher:d||p,isOwner:d}}},31491:(e,t,n)=>{n.d(t,{_:()=>A});var a=n(16714),r=n(67058),o=n(91286),i=n(22902),c=n(23481),s=n(64364),l=n(14070),u=n(97291);function m(e){return m="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},m(e)}function d(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,p(a.key),a)}}function p(e){var t=function(e,t){if("object"!=m(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var a=n.call(e,"string");if("object"!=m(a))return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==m(t)?t:t+""}function f(e,t,n){return t=g(t),function(e,t){if(t&&("object"==m(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,b()?Reflect.construct(t,n||[],g(e).constructor):t.apply(e,n))}function b(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(b=function(){return!!e})()}function g(e){return g=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},g(e)}function y(e,t){return y=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},y(e,t)}var v="classrooms.cannotAccessClassroomError",h=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),f(this,t,["Cannot access classroom"])}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&y(e,t)}(t,e),n=t,(a=[{key:"name",get:function(){return"CannotAccessClassroomError"}},{key:"heading",get:function(){return c.T.getPhrase(v,"heading")}},{key:"description",get:function(){return c.T.getPhrase(v,"description")}},{key:"cta",get:function(){return{text:c.T.getPhrase(v,"cta"),appLink:{application:u.O.CLASSROOMS,action:l.e.Classrooms.HOME}}}}])&&d(n.prototype,a),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,a}(s.H);function E(e){return E="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},E(e)}function S(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,O(a.key),a)}}function O(e){var t=function(e,t){if("object"!=E(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var a=n.call(e,"string");if("object"!=E(a))return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==E(t)?t:t+""}function w(e,t,n){return t=C(t),function(e,t){if(t&&("object"==E(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,N()?Reflect.construct(t,n||[],C(e).constructor):t.apply(e,n))}function N(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(N=function(){return!!e})()}function C(e){return C=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},C(e)}function k(e,t){return k=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},k(e,t)}var T="classrooms.classroomNotFoundError",L=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),w(this,t,["Classroom doesn't exist"])}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&k(e,t)}(t,e),n=t,(a=[{key:"name",get:function(){return"ClassroomNotFoundError"}},{key:"heading",get:function(){return c.T.getPhrase(T,"heading")}},{key:"description",get:function(){return c.T.getPhrase(T,"description")}},{key:"cta",get:function(){return{text:c.T.getPhrase(T,"cta"),appLink:{application:u.O.CLASSROOMS,action:l.e.Classrooms.HOME}}}}])&&S(n.prototype,a),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,a}(s.H),A=function(e){var t=(0,i.T)().hasPermissions;(0,o.v)(e,{notFound:L,forbidden:{privacy:t(a.C.ViewClassrooms)?h:r.d}})}},5289:(e,t,n)=>{n.d(t,{R:()=>N});var a=n(32735),r=n(23481),o=n(81886),i=n(65858),c=n(83657),s=n(49935),l=n(38502),u=n(32045),m=n(53036),d=n(14070),p=n(97291),f=n(62691),b=n(86764),g=n(86613),y=n(3747),v=n(35223),h=n(46009),E="classrooms.hooks",S=function(e,t,n){var a=(0,y.a)(b.r.SMDown),o=(0,h.p)(e),c={id:e},s={entity:i.py.Classroom,workflowPhase:i.eu.Start,location:i.LZ.Classroom},l="btn btn-outline-dark me-2",u=[];return o.isOwner&&u.push({order:0,label:r.T.getPhrase(E,"editClassroom"),appLink:{application:p.O.CLASSROOMS,action:d.e.Classrooms.EDIT_CLASSROOM,args:[e]},disabled:n,tooltip:n?r.T.getPhrase(E,"disabledByRostering"):"",analyticsData:c,analyticsOptions:Object.assign(Object.assign({},s),{actionType:i.Vw.Edit}),svgName:v.vn.Edit,button:!a,className:n?"disabled ".concat(l):a?"":l}),u.push({order:10,label:r.T.getPhrase(E,"generateJoinLink"),appLink:{application:p.O.CLASSROOMS,action:d.e.Classrooms.GENERATE_JOIN_LINK,args:[e]},disabled:n,tooltip:n?r.T.getPhrase(E,"disabledByRostering"):"",button:!a&&!o.isOwner,className:n?"disabled":a||o.isOwner?"":l}),o.isOwner&&u.push({order:20,label:r.T.getPhrase(E,"archive"),analyticsData:c,disabled:n,tooltip:n?r.T.getPhrase(E,"disabledByRostering"):"",analyticsOptions:Object.assign(Object.assign({},s),{actionType:i.Vw.Archive,descriptor:i.DL.On}),appLink:{application:p.O.CLASSROOMS,action:d.e.Classrooms.ARCHIVE_CLASSROOM,args:[e]},className:n?"disabled":""}),(o.isOwner||o.isTeacher)&&t.role!==g.i.Admin&&u.push({order:30,label:r.T.getPhrase(E,"leaveClassroom"),disabled:n,tooltip:n?r.T.getPhrase(E,"disabledByRostering"):"",className:n?"disabled":"text-danger",analyticsData:Object.assign(Object.assign({},c),{teacherId:t.id}),analyticsOptions:Object.assign(Object.assign({},s),{actionType:i.Vw.Dissociate,descriptor:i.iF.User}),appLink:{application:p.O.CLASSROOMS,action:d.e.Classrooms.REMOVE_TEACHERS,args:[e],params:{teacherIds:[t.id]}}}),u};const O={actionsContainer:"uYv5Z"};var w=r.T.encloseNamespace("classrooms.classroomLayout");function N(e){var t=(0,h.p)(e.classroom.id),n=S(e.classroom.id,e.currentUser,e.isRostered),r=m.h.getStatusAsString(e.classroom.status),b=[{name:w("students"),appLink:{application:p.O.CLASSROOMS,action:d.e.Classrooms.CLASSROOM_STUDENTS,args:[e.classroom.id]},active:"students"===e.activeTab},{name:w("groups"),appLink:{application:p.O.CLASSROOMS,action:d.e.Classrooms.CLASSROOM_GROUPS,args:[e.classroom.id]},active:"groups"===e.activeTab},{name:w("teachers"),appLink:{application:p.O.CLASSROOMS,action:d.e.Classrooms.CLASSROOM_TEACHERS,args:[e.classroom.id]},active:"teachers"===e.activeTab}].filter((function(t){return!e.isRostered||t.name!==w("groups")}));return a.useEffect((function(){r!==u.w.Active&&o.Q.C$.trigger({application:p.O.CLASSROOMS,action:d.e.Classrooms.HOME},{replace:!0})}),[e.classroom.status]),!t.isLoading&&!t.isTeacher||r!==u.w.Active?a.createElement(a.Fragment,null):a.createElement("div",{className:"px-3 position-relative"},a.createElement("div",{className:"d-flex"},a.createElement("div",{className:"mt-1 me-1"},a.createElement(f.m,{classroom:e.classroom,onToggle:e.onTogglePin,locationContext:i.LZ.Classroom})),a.createElement("h1",{className:"mb-0"},e.classroom.name)),!!n.length&&a.createElement("div",{className:O.actionsContainer},a.createElement(c.e,{actions:n,actionsDropdownClassName:"btn btn-outline-dark"})),a.createElement("div",{className:"pb-3 pt-1"},a.createElement(s.Oo,{breadcrumbs:[{name:w("classroomsBreadcrumb"),appLink:{application:p.O.CLASSROOMS,action:d.e.Classrooms.HOME}},{name:e.classroom.name,active:!0}]})),a.createElement("div",{className:"pb-2"},a.createElement(l.r,{tabs:b})),e.children)}},87432:(e,t,n)=>{n.d(t,{Z:()=>a});const a={pillTabSelector:"Hdi6o",tab:"RvNxr",minWidth:"GHSz9",radiusSmall:"VhJJa",tabLink:"WFyvo"}}}]);
|
|
2
|
+
//# sourceMappingURL=3020-6c9c7d2176-lite.chunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scripts/3020-6c9c7d2176-lite.chunk.js","mappings":"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","sources":["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/breadcrumbs/Breadcrumbs.tsx","file:///app/packages/libs/shared/src/components/pill-tab-selector/PillTabSelector.tsx","file:///app/packages/libs/shared/src/components/pill-tab-selector/partial-loading/partial-pill-tab-selector.scss","file:///app/packages/libs/shared/src/components/pill-tab-selector/partial-loading/PartialPillTabSelector.tsx","file:///app/packages/libs/shared/src/errors/handlers/HttpErrorHandlers.ts","file:///app/packages/libs/shared/src/hooks/UseHandleObjectError.ts","file:///app/packages/libs/shared/src/utils/ObjectStatusHelper.ts","file:///app/packages/libs/shared/src/utils/PartialLoadingHelper.ts","file:///app/packages/projects/lite/src/apps/classrooms/components/classroom-star/ClassroomStar.tsx","file:///app/packages/projects/lite/src/apps/classrooms/hooks/useClassroomPermissions.ts","file:///app/packages/projects/lite/src/apps/classrooms/errors/cannot-access-classroom/CannotAccessClassroomError.ts","file:///app/packages/projects/lite/src/apps/classrooms/errors/classroom-not-found/ClassroomNotFoundError.ts","file:///app/packages/projects/lite/src/apps/classrooms/hooks/useHandleClassroomErrors.ts","file:///app/packages/projects/lite/src/apps/classrooms/hooks/useClassroomActions.ts","file:///app/packages/projects/lite/src/apps/classrooms/layouts/classroom-layout.scss","file:///app/packages/projects/lite/src/apps/classrooms/layouts/ClassroomLayout.tsx","file:///app/packages/libs/shared/src/components/pill-tab-selector/pill-tab-selector.scss"],"sourcesContent":["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 { Core } from 'libs/common/core';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { MediaQueryStrings } from 'libs/shared/enums/MediaQueries';\nimport { useMediaQuery } from 'libs/shared/hooks/UseMediaQuery';\nimport { PartialLoadingHelper } from 'libs/shared/utils/PartialLoadingHelper';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { SvgContainer, SvgContainerSize } from '../svg-container/SvgContainer';\n\nconst COLLAPSE_CHARACTER_COUNT = 56;\n\nexport interface Breadcrumb {\n name: string;\n appLink?: Core.AppLink;\n active?: boolean;\n}\n\ninterface BreadcrumbItemProps {\n breadcrumb: Breadcrumb;\n withBackIcon?: boolean;\n}\n\nexport const BreadcrumbItem = ({ breadcrumb: { name, appLink, active }, withBackIcon }: BreadcrumbItemProps) => (\n <li className={`breadcrumb-item${active ? ' active' : ''}`}>\n {active\n ? <strong>{name}</strong>\n : <AppLink appLink={appLink}>\n {withBackIcon && <SvgContainer svgName={cvSvgLibrary.ChevronLeft} size={SvgContainerSize.Small} />}\n <span className={withBackIcon ? 'ms-2' : ''}>{name}</span>\n </AppLink>\n }\n </li>\n);\n\ninterface BreadcrumbsProps {\n breadcrumbs: Breadcrumb[];\n}\n\nexport const Breadcrumbs = ({ breadcrumbs }: BreadcrumbsProps) => {\n const isMobile = useMediaQuery(MediaQueryStrings.XS);\n\n const length = breadcrumbs?.length || 0;\n \n const [ collapse, setCollapse ] = React.useState(false);\n\n React.useEffect(() => {\n const characterLength = breadcrumbs?.reduce((prev, next) => prev + next.name.length, 0) ?? 0;\n\n if (length > 3 && characterLength > COLLAPSE_CHARACTER_COUNT)\n setCollapse(true);\n }, [breadcrumbs?.length]);\n\n if (!length || (isMobile && length < 2))\n return <></>;\n\n if (isMobile)\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n <BreadcrumbItem breadcrumb={breadcrumbs[length - 2]} withBackIcon />\n </ol>\n </nav>\n );\n\n const first = <BreadcrumbItem breadcrumb={breadcrumbs[0]} />;\n const secondLast = length > 2 ? <BreadcrumbItem breadcrumb={breadcrumbs[length - 2]} /> : <></>;\n const last = <BreadcrumbItem breadcrumb={breadcrumbs[length - 1]} />;\n const rest = breadcrumbs.slice(1, length - 2);\n\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n {first}\n {collapse ?\n <li className='breadcrumb-item'>\n <button className='btn-link' onClick={() => setCollapse(false)}>\n ...\n </button>\n </li> :\n rest.map((breadcrumb, idx) => <BreadcrumbItem key={idx} breadcrumb={breadcrumb} />)\n }\n {secondLast}\n {last}\n </ol>\n </nav>\n );\n};\n\nexport const PartialBreadcrumbs = React.memo(function({ numItems = 3 }: { numItems?: number; }) {\n const isMobile = useMediaQuery(MediaQueryStrings.XS);\n\n if (isMobile) {\n return (\n <div className='partial-loading-background' style={{ height: '1.3125rem', width: '6rem' }} />\n );\n }\n\n return (\n <nav aria-label='breadcrumb'>\n <ol className='breadcrumb m-0 p-0'>\n {PartialLoadingHelper.getPartialLoadingItems({ numItems }).map(({ width }, idx) => (\n <li key={idx} className='breadcrumb-item'>\n <span className='d-inline-block partial-loading-background' style={{ width }} dangerouslySetInnerHTML={{ __html: ' ' }} />\n </li>\n ))}\n </ol>\n </nav>\n );\n});","import React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { AnalyticsOptions } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Badge, BadgeType } from 'libs/shared/components/badges/Badge';\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\n\nimport { SvgContainer } from '../svg-container/SvgContainer';\n\nimport styles from './pill-tab-selector.scss';\n\ninterface TabContentsProps {\n tab: PillTab;\n}\n\nfunction TabContents(props: TabContentsProps): JSX.Element {\n return (\n <>\n {!!props.tab.svgName && (\n <div className={props.tab.name ? 'pe-1' : ''}>\n <SvgContainer svgName={props.tab.svgName} />\n </div>\n )}\n\n {props.tab.name}\n\n {typeof (props.tab.count) === 'number' && (\n <div className='ps-2'>\n <Badge type={BadgeType.Count} data={props.tab.count} />\n </div>\n )}\n </>\n );\n}\n\nexport interface PillTab {\n name: string;\n active: boolean;\n svgName?: string;\n\n className?: string;\n\n appLink?: Core.AppLink;\n onSelect?: () => void;\n\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n\n count?: number;\n}\n\ninterface PillTabSelectorProps {\n tabs: PillTab[];\n containerRef?: (el: HTMLElement) => void;\n listClassName?: string;\n className?: string;\n borderRadius?: 'sm' | 'lg'\n}\n\nPillTabSelector.defaultProps = {\n borderRadius: 'lg'\n};\n\nexport function PillTabSelector(props: PillTabSelectorProps): JSX.Element {\n function onSelectTab(tab: PillTab): void {\n if (tab.active || !tab.onSelect)\n return;\n\n tab.onSelect();\n\n if (tab.analyticsData && tab.analyticsOptions)\n AnalyticsHelper.logUserAction(tab.analyticsData, tab.analyticsOptions);\n }\n\n return (\n <nav className={props.className ?? ''} ref={props.containerRef}>\n <ul className={`\n list-unstyled d-inline-block m-0 ${styles.pillTabSelector}\n ${props.borderRadius ? styles.radiusSmall : ''}\n ${props.listClassName}\n `}>\n {props.tabs.map((tab, index) => {\n return (\n <li\n className={`\n p-0 ${styles.tab} ${tab.active ? 'btn btn-dark' : 'btn btn-outline-dark'}\n ${tab.name ? styles.minWidth : ''} ${tab.className}\n `}\n key={index}\n >\n {tab.appLink ? (\n <AppLink\n appLink={tab.appLink}\n analyticsData={tab.analyticsData}\n analyticsOptions={tab.analyticsOptions}\n className={`\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ${styles.tabLink}\n `}\n >\n <TabContents tab={tab} />\n </AppLink>\n ) : (\n <DivButton\n className={`\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset p-2 text-nowrap ${styles.tabLink}\n `}\n onClick={() => onSelectTab(tab)}\n >\n <TabContents tab={tab} />\n </DivButton>\n )}\n </li>\n );\n })}\n </ul>\n </nav>\n );\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"partialSize\":\"ntGsj\"};","import React from 'react';\n\nimport styles from '../pill-tab-selector.scss';\nimport partialStyles from './partial-pill-tab-selector.scss';\n\nexport function PartialPillTabSelector(): JSX.Element {\n return (\n <div className={`partial-loading-background ${styles.pillTabSelector} ${partialStyles.partialSize}`} />\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 { ObjectStatus } from 'libs/shared/enums/ObjectStatus';\n\n/**\n * Some of our APIs return enum values as a string, and others return enum values as a number.\n * \n * This means if a HTTP request to one API returns an object with it's enum values in string\n * form, and another HTTP request returns that same object with it's enum values in number form,\n * Flight will cache the object with it's enum values in number form.\n * \n * This can cause bugs in our frontend code where we're doing checks like `(obj.status === ObjectStatus.Active)`\n * because TypeScript enums only handle one data type (number or string). Even if the object is active, if the\n * it's cached as a data type that doesn't match what our TypeScript `ObjectStatus` enum's data type is, then\n * that check would return false, introducing bugs.\n * \n * A prime example of this is Classroom objects being returned from User API with string enums, but being returned\n * from Classroom API with number enums.\n * \n * For that reason, we sadly need to check object status with this helper. Hopefully one day this can be deleted\n * when all of our APIs return enum values consistently as 1 data type.\n * \n * Example of a bug introduced by this inconsistency: https://clickview.atlassian.net/browse/INBOX-3024\n */\nexport const ObjectStatusHelper = {\n getStatusAsString(status: ObjectStatus): ObjectStatus {\n if (typeof (status) === 'string')\n return status;\n\n if (typeof (status) === 'number') {\n if (status === 0)\n return ObjectStatus.Disabled;\n\n if (status === 1)\n return ObjectStatus.Active;\n\n if (status === 2)\n return ObjectStatus.Inactive;\n }\n\n return null;\n },\n\n getStatusAsNumber(status: ObjectStatus): 0 | 1 | 2 {\n if (typeof (status) === 'number')\n return status;\n\n if (typeof (status) === 'string') {\n if (status === ObjectStatus.Disabled)\n return 0;\n\n if (status === ObjectStatus.Active)\n return 1;\n\n if (status === ObjectStatus.Inactive)\n return 2;\n }\n\n return null;\n }\n};","const DEFAULT_PARTIAL_LOADING_OPTIONS: PartialLoadingOptions = {\n numItems: 5,\n minWidth: 50, // px\n maxWidth: 100 // px\n};\n\nexport interface PartialLoadingOptions {\n numItems?: number;\n minWidth?: number;\n maxWidth?: number;\n}\n\ninterface PartialLoadingItem {\n width: string;\n}\n\nexport const PartialLoadingHelper = {\n getPartialLoadingItems(options: PartialLoadingOptions = {}): PartialLoadingItem[] {\n const opts = {\n ...DEFAULT_PARTIAL_LOADING_OPTIONS,\n ...options\n };\n\n const getRandomFilterWidth = () => Math.max(Math.floor(Math.random() * opts.maxWidth), opts.minWidth);\n\n return [...Array(opts.numItems)].map(() => ({ width: `${getRandomFilterWidth()}px` }));\n }\n};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { EntityType, LocationContext, ToggleDescriptor, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { Classroom } from 'libs/shared/interfaces';\nimport { FavouriteHelper } from 'libs/shared/utils/FavouriteHelpers';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nconst namespace = 'classrooms.classroomStar';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst getIsPinned = (classroom: Classroom) => {\n return FavouriteHelper.isFavouritedByCurrentUser(classroom);\n};\n\ninterface ClassroomStarProps {\n classroom: Classroom;\n onToggle: (shouldPin: boolean, onSuccess: () => void, onError: () => void) => void;\n locationContext: LocationContext;\n}\n\nexport function ClassroomStar(props: ClassroomStarProps): JSX.Element {\n // Local state is used to provide instant feedback when the user clicks on the star.\n const [ isPinned, setIsPinned ] = React.useState(getIsPinned(props.classroom));\n\n const alerts = useAlerts();\n\n React.useEffect(() => {\n if (getIsPinned(props.classroom) === isPinned)\n return;\n\n setIsPinned(!isPinned);\n }, [getIsPinned(props.classroom)]);\n\n function onToggle(): void {\n setIsPinned(!isPinned);\n\n props.onToggle(!isPinned, () => onSuccess(!isPinned), () => onError(isPinned));\n }\n\n function onSuccess(isPinned: boolean): void {\n if (isPinned) {\n AnalyticsHelper.logUserAction({ id: props.classroom.id }, {\n location: props.locationContext,\n actionType: UserAction.Favourite,\n descriptor: ToggleDescriptor.On,\n entity: EntityType.Classroom,\n workflowPhase: WorkflowPhase.Complete\n });\n \n alerts.success(getPhrase('pinSuccess', {\n classroomName: props.classroom.name,\n escapeText: true\n }));\n \n return;\n }\n\n AnalyticsHelper.logUserAction({ id: props.classroom.id }, {\n location: props.locationContext,\n actionType: UserAction.Favourite,\n descriptor: ToggleDescriptor.Off,\n entity: EntityType.Classroom,\n workflowPhase: WorkflowPhase.Complete\n });\n\n alerts.success(getPhrase('unpinSuccess', {\n classroomName: props.classroom.name,\n escapeText: true\n }));\n }\n\n function onError(prevState: boolean): void {\n setIsPinned(prevState);\n\n if (prevState) {\n alerts.error(getPhrase('unpinError', {\n classroomName: props.classroom.name,\n escapeText: true\n }));\n\n return;\n }\n\n alerts.error(getPhrase('pinError', {\n classroomName: props.classroom.name,\n escapeText: true\n }));\n }\n\n return (\n <DivButton onClick={onToggle} className={isPinned ? 'text-yellow' : ''}>\n <SvgContainer\n svgName={isPinned ? cvSvgLibrary.Star : cvSvgLibrary.StarOutline}\n size={SvgContainerSize.Medium}\n />\n </DivButton>\n );\n}","import { Flight } from 'libs/common/flight';\n\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { CurrentUser, User } from 'libs/shared/interfaces';\n\nimport { ClassroomRequests } from 'apps/classrooms/flight-requests/ClassroomRequests';\n\nexport const useCheckClassroomPermissions = (classroomId: string) => {\n const { hasPermissions } = usePermissions();\n\n /**\n * This is the highest-level permission that overrides all other permissions\n */\n const canManageAllClassrooms = hasPermissions(PermissionName.ManageAllClassrooms);\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n\n /**\n * If the user has permission to manage all classrooms, there's no need to check if they're owner/invitee\n * as these permissions no longer matter.\n */\n const staff = Flight.useBasicFetch<User[]>(!canManageAllClassrooms && currentUser.data?.customerId &&\n ClassroomRequests.getClassroomStaff(classroomId, currentUser.data.customerId));\n const owners = Flight.useBasicFetch<User[]>(!canManageAllClassrooms &&\n ClassroomRequests.getClassroomOwners(classroomId));\n\n // Has full classroom management power.\n if (canManageAllClassrooms) {\n return {\n isLoading: false,\n isOwner: true,\n isTeacher: true\n };\n }\n\n if (!staff.hasCompleted || !owners.hasCompleted || !currentUser.hasCompleted)\n return { isLoading: true };\n\n const currentUserId = currentUser.data.id.toString();\n\n const isClassroomOwner = !!owners.data.find(owner => owner.id.toString() === currentUserId);\n const isClassroomTeacher = !!staff.data.find(staff => staff.id.toString() === currentUserId);\n\n return {\n isLoading: false,\n isTeacher: isClassroomOwner || isClassroomTeacher, // All owners are also teachers\n isOwner: isClassroomOwner\n };\n};","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { ErrorCta, ErrorPageError } from 'libs/shared/errors/primitives/ErrorPageError';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nconst namespace = 'classrooms.cannotAccessClassroomError';\n\nexport class CannotAccessClassroomError extends ErrorPageError {\n constructor() {\n super('Cannot access classroom');\n }\n\n // @ts-ignore\n public get name(): string {\n return 'CannotAccessClassroomError';\n }\n\n // @ts-ignore\n public get heading(): string {\n return LanguageService.getPhrase(namespace, 'heading');\n }\n\n // @ts-ignore\n public get description(): string {\n return LanguageService.getPhrase(namespace, 'description');\n }\n\n // @ts-ignore\n public get cta(): ErrorCta {\n return {\n text: LanguageService.getPhrase(namespace, 'cta'),\n appLink: {\n application: AppChannels.CLASSROOMS,\n action: Actions.Classrooms.HOME\n }\n };\n }\n}","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { ErrorCta, ErrorPageError } from 'libs/shared/errors/primitives/ErrorPageError';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nconst namespace = 'classrooms.classroomNotFoundError';\n\nexport class ClassroomNotFoundError extends ErrorPageError {\n constructor() {\n super('Classroom doesn\\'t exist');\n }\n\n // @ts-ignore\n public get name(): string {\n return 'ClassroomNotFoundError';\n }\n\n // @ts-ignore\n public get heading(): string {\n return LanguageService.getPhrase(namespace, 'heading');\n }\n\n // @ts-ignore\n public get description(): string {\n return LanguageService.getPhrase(namespace, 'description');\n }\n\n // @ts-ignore\n public get cta(): ErrorCta {\n return {\n text: LanguageService.getPhrase(namespace, 'cta'),\n appLink: {\n application: AppChannels.CLASSROOMS,\n action: Actions.Classrooms.HOME\n }\n };\n }\n}","import { Flight } from 'libs/common/flight';\n\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { NotFoundError } from 'libs/shared/errors/general/not-found/NotFoundError';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { Classroom } from 'libs/shared/interfaces';\n\nimport { CannotAccessClassroomError } from 'apps/classrooms/errors/cannot-access-classroom/CannotAccessClassroomError';\nimport { ClassroomNotFoundError } from 'apps/classrooms/errors/classroom-not-found/ClassroomNotFoundError';\n\nexport const useHandleClassroomErrors = (classroom: Flight.Response<Classroom>) => {\n const { hasPermissions } = usePermissions();\n\n useHandleObjectError(classroom, {\n notFound: ClassroomNotFoundError,\n forbidden: {\n privacy: hasPermissions(PermissionName.ViewClassrooms) ? CannotAccessClassroomError : NotFoundError\n }\n });\n};","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { AnalyticsOptions, AssocDescriptor, EntityType, LocationContext, ToggleDescriptor, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\nimport { MediaQueryStrings } from 'libs/shared/enums/MediaQueries';\nimport { UserRole } from 'libs/shared/enums/UserRole';\nimport { useMediaQuery } from 'libs/shared/hooks/UseMediaQuery';\nimport { CurrentUser } from 'libs/shared/interfaces';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nimport { useCheckClassroomPermissions } from 'apps/classrooms/hooks/useClassroomPermissions';\n\nconst namespace = 'classrooms.hooks';\n\nexport const useClassroomActions = (classroomId: string, currentUser: CurrentUser, readOnly?: boolean) => {\n const isMobile = useMediaQuery(MediaQueryStrings.SMDown);\n const accessCheck = useCheckClassroomPermissions(classroomId);\n\n const analyticsData = { id: classroomId };\n\n const baseAnalyticsOptions: AnalyticsOptions = {\n entity: EntityType.Classroom,\n workflowPhase: WorkflowPhase.Start,\n location: LocationContext.Classroom\n };\n\n const buttonClass = 'btn btn-outline-dark me-2';\n\n const actions: ActionOptions[] = [];\n\n if (accessCheck.isOwner) {\n actions.push({\n order: 0,\n label: LanguageService.getPhrase(namespace, 'editClassroom'),\n appLink: {\n application: AppChannels.CLASSROOMS,\n action: Actions.Classrooms.EDIT_CLASSROOM,\n args: [classroomId]\n },\n disabled: readOnly,\n tooltip: readOnly ? LanguageService.getPhrase(namespace, 'disabledByRostering') : '',\n analyticsData,\n analyticsOptions: {\n ...baseAnalyticsOptions,\n actionType: UserAction.Edit\n },\n svgName: cvSvgLibrary.Edit,\n button: !isMobile,\n className: readOnly ? `disabled ${buttonClass}` : !isMobile ? buttonClass : ''\n });\n }\n\n actions.push({\n order: 10,\n label: LanguageService.getPhrase(namespace, 'generateJoinLink'),\n appLink: {\n application: AppChannels.CLASSROOMS,\n action: Actions.Classrooms.GENERATE_JOIN_LINK,\n args: [classroomId]\n },\n disabled: readOnly,\n tooltip: readOnly ? LanguageService.getPhrase(namespace, 'disabledByRostering') : '',\n button: (!isMobile && !accessCheck.isOwner),\n className: readOnly ? 'disabled' : (!isMobile && !accessCheck.isOwner) ? buttonClass : ''\n });\n\n if (accessCheck.isOwner) {\n actions.push({\n order: 20,\n label: LanguageService.getPhrase(namespace, 'archive'),\n analyticsData,\n disabled: readOnly,\n tooltip: readOnly ? LanguageService.getPhrase(namespace, 'disabledByRostering') : '',\n analyticsOptions: {\n ...baseAnalyticsOptions,\n actionType: UserAction.Archive,\n descriptor: ToggleDescriptor.On\n },\n appLink: {\n application: AppChannels.CLASSROOMS,\n action: Actions.Classrooms.ARCHIVE_CLASSROOM,\n args: [classroomId]\n },\n className: readOnly ? 'disabled' : ''\n });\n }\n\n if ((accessCheck.isOwner || accessCheck.isTeacher) && currentUser.role !== UserRole.Admin) {\n actions.push({\n order: 30,\n label: LanguageService.getPhrase(namespace, 'leaveClassroom'),\n disabled: readOnly,\n tooltip: readOnly ? LanguageService.getPhrase(namespace, 'disabledByRostering') : '',\n className: readOnly ? 'disabled' : 'text-danger',\n analyticsData: {\n ...analyticsData,\n teacherId: currentUser.id\n },\n analyticsOptions: {\n ...baseAnalyticsOptions,\n actionType: UserAction.Dissociate,\n descriptor: AssocDescriptor.User\n },\n appLink: {\n application: AppChannels.CLASSROOMS,\n action: Actions.Classrooms.REMOVE_TEACHERS,\n args: [classroomId],\n params: {\n teacherIds: [currentUser.id]\n }\n }\n });\n }\n\n return actions;\n};","// extracted by mini-css-extract-plugin\nexport default {\"actionsContainer\":\"uYv5Z\"};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { Actions as ActionsComponent } from 'libs/shared/components/actions/Actions';\nimport { Breadcrumbs } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { PillTab, PillTabSelector } from 'libs/shared/components/pill-tab-selector/PillTabSelector';\nimport { ObjectStatus } from 'libs/shared/enums/ObjectStatus';\nimport { Classroom, CurrentUser } from 'libs/shared/interfaces';\nimport { ObjectStatusHelper } from 'libs/shared/utils/ObjectStatusHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nimport { ClassroomStar } from 'apps/classrooms/components/classroom-star/ClassroomStar';\nimport { useClassroomActions } from 'apps/classrooms/hooks/useClassroomActions';\nimport { useCheckClassroomPermissions } from 'apps/classrooms/hooks/useClassroomPermissions';\n\nimport styles from './classroom-layout.scss';\n\nconst namespace = 'classrooms.classroomLayout';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface ClassroomLayoutProps {\n classroom: Classroom;\n currentUser: CurrentUser;\n onTogglePin: (shouldPin: boolean, onSuccess: () => void, onError: () => void) => void;\n activeTab: 'students' | 'groups' | 'teachers';\n isRostered?: boolean;\n}\n\nexport function ClassroomLayout(props: React.PropsWithChildren<ClassroomLayoutProps>): JSX.Element {\n const accessCheck = useCheckClassroomPermissions(props.classroom.id);\n\n const actions = useClassroomActions(props.classroom.id, props.currentUser, props.isRostered);\n\n const classroomStatus = ObjectStatusHelper.getStatusAsString(props.classroom.status);\n\n const tabs: PillTab[] = [{\n name: getPhrase('students'),\n appLink: {\n application: AppChannels.CLASSROOMS,\n action: Actions.Classrooms.CLASSROOM_STUDENTS,\n args: [props.classroom.id]\n },\n active: props.activeTab === 'students'\n }, {\n name: getPhrase('groups'),\n appLink: {\n application: AppChannels.CLASSROOMS,\n action: Actions.Classrooms.CLASSROOM_GROUPS,\n args: [props.classroom.id]\n },\n active: props.activeTab === 'groups'\n }, {\n name: getPhrase('teachers'),\n appLink: {\n application: AppChannels.CLASSROOMS,\n action: Actions.Classrooms.CLASSROOM_TEACHERS,\n args: [props.classroom.id]\n },\n active: props.activeTab === 'teachers'\n }]\n // todo we hide groups for rostered classroom for v1\n .filter(tab => !props.isRostered || tab.name !== getPhrase('groups'));\n\n // Redirect away if classroom isn't published\n React.useEffect(() => {\n if (classroomStatus === ObjectStatus.Active)\n return;\n\n Core.AppLinkHelper.trigger({\n application: AppChannels.CLASSROOMS,\n action: Actions.Classrooms.HOME\n }, { replace: true });\n }, [props.classroom.status]);\n\n if ((!accessCheck.isLoading && !accessCheck.isTeacher) || classroomStatus !== ObjectStatus.Active)\n return <></>;\n\n return (\n <div className='px-3 position-relative'>\n <div className='d-flex'>\n <div className='mt-1 me-1'>\n <ClassroomStar\n classroom={props.classroom}\n onToggle={props.onTogglePin}\n locationContext={LocationContext.Classroom}\n />\n </div>\n <h1 className='mb-0'>{props.classroom.name}</h1>\n </div>\n\n {!!actions.length && (\n <div className={styles.actionsContainer}>\n <ActionsComponent\n actions={actions}\n actionsDropdownClassName='btn btn-outline-dark'\n />\n </div>\n )}\n\n <div className='pb-3 pt-1'>\n <Breadcrumbs\n breadcrumbs={[\n {\n name: getPhrase('classroomsBreadcrumb'),\n appLink: {\n application: AppChannels.CLASSROOMS,\n action: Actions.Classrooms.HOME\n }\n },\n { name: props.classroom.name, active: true }\n ]}\n />\n </div>\n\n <div className='pb-2'>\n <PillTabSelector tabs={tabs} />\n </div>\n\n {props.children}\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"pillTabSelector\":\"Hdi6o\",\"tab\":\"RvNxr\",\"minWidth\":\"GHSz9\",\"radiusSmall\":\"VhJJa\",\"tabLink\":\"WFyvo\"};"],"names":["Actions","props","orderedActions","actions","sort","a","b","order","buttonActions","moreActions","forEach","button","push","className","length","map","idx","key","label","appLink","href","onClick","svgName","svgSize","dropdownToggleSvgSize","tooltip","showSpinner","analyticsData","analyticsOptions","openInNewTab","disabled","iconButton","showBorder","customSize","title","spanHack","sortComponent","dropdownToggleClassName","actionsDropdownClassName","fetchMore","LazyDropdownItems","style","padding","height","width","getDropdownItemClassName","actionClassName","ActionsDropdownItem","FunctionHelper","action","AppLink","SvgContainer","e","preventDefault","AnalyticsHelper","role","tabIndex","onKeyDown","ActionsDropdown","isLazy","some","lazyPlaceholder","currentGroup","dropdownToggleId","RandomHelper","type","id","size","showDivider","undefined","group","Tooltip","defaultProps","S","BreadcrumbItem","breadcrumb","name","active","withBackIcon","Breadcrumbs","breadcrumbs","isMobile","collapse","setCollapse","characterLength","reduce","prev","next","first","secondLast","last","rest","slice","PartialBreadcrumbs","numItems","dangerouslySetInnerHTML","__html","TabContents","tab","count","data","PillTabSelector","ref","containerRef","borderRadius","listClassName","tabs","index","onSelect","onSelectTab","PartialPillTabSelector","defaultErrors","notFound","forbidden","rating","yearLevel","region","privacy","badRequest","handleHttpError","info","customErrorMap","ignoreMap","statusCode","status","errorMap","generateCacheKey","flightObjs","obj","join","useHandleObjectError","_flightObjs","customErrors","ignoreErrors","Array","isArray","useEffect","ObjectStatusHelper","getStatusAsString","getStatusAsNumber","DEFAULT_PARTIAL_LOADING_OPTIONS","minWidth","maxWidth","PartialLoadingHelper","getPartialLoadingItems","options","opts","Math","max","floor","random","getPhrase","getIsPinned","classroom","ClassroomStar","isPinned","setIsPinned","alerts","onToggle","location","locationContext","actionType","descriptor","entity","workflowPhase","success","classroomName","escapeText","onSuccess","prevState","error","useCheckClassroomPermissions","classroomId","canManageAllClassrooms","hasPermissions","currentUser","staff","customerId","owners","isLoading","isOwner","isTeacher","hasCompleted","currentUserId","toString","isClassroomOwner","find","owner","isClassroomTeacher","namespace","CannotAccessClassroomError","LanguageService","text","application","ErrorPageError","ClassroomNotFoundError","useHandleClassroomErrors","usePermissions","PermissionName","NotFoundError","useClassroomActions","readOnly","accessCheck","baseAnalyticsOptions","buttonClass","args","UserRole","teacherId","params","teacherIds","ClassroomLayout","isRostered","classroomStatus","activeTab","filter","ObjectStatus","replace","onTogglePin","children"],"sourceRoot":""}
|