@clickview/lite 0.53.4 → 0.53.6-rc.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/{6094-lite-bcd14ea6d2.chunk.css → 1019-lite-bbcf2bff27.chunk.css} +3 -2
- package/dist/css/{1329-lite-be86e46c78.chunk.css → 1329-lite-458183b24f.chunk.css} +2 -2
- package/dist/css/{1838-lite-e6a28b84ed.chunk.css → 1838-lite-981a5e0783.chunk.css} +1 -1
- package/dist/css/{1760-lite-bcd14ea6d2.chunk.css → 2548-lite-bbcf2bff27.chunk.css} +3 -2
- package/dist/css/{3969-lite-29e14c7861.chunk.css → 3969-lite-ed58852d97.chunk.css} +2 -2
- package/dist/css/{422-lite-dace5f41de.chunk.css → 422-lite-b8c1fd1dee.chunk.css} +1 -1
- package/dist/css/{4502-lite-92be6697e7.chunk.css → 4502-lite-eaf1a1113c.chunk.css} +1 -1
- package/dist/css/{5220-lite-9832e2c2fb.chunk.css → 5220-lite-8a8d5d035f.chunk.css} +1 -1
- package/dist/css/{537-lite-56a3fc7e48.chunk.css → 537-lite-4de4c47713.chunk.css} +1 -1
- package/dist/css/{6489-lite-9045df4bb9.chunk.css → 6489-lite-e271aaed2d.chunk.css} +1 -1
- package/dist/css/{6544-lite-d46c2d634c.chunk.css → 6544-lite-319ed51ccc.chunk.css} +1 -1
- package/dist/css/{5549-lite-97ed26d0aa.chunk.css → 6596-lite-bb28584922.chunk.css} +2 -1
- package/dist/css/{841-lite-27b6485cd1.chunk.css → 841-lite-46ef623835.chunk.css} +1 -1
- package/dist/css/{8522-lite-2f2797038e.chunk.css → 8522-lite-f100606ec5.chunk.css} +1 -1
- package/dist/css/{8801-lite-c88eb54bee.chunk.css → 8801-lite-d34200ab29.chunk.css} +2 -2
- package/dist/css/{3640-lite-97ed26d0aa.chunk.css → 9010-lite-bb28584922.chunk.css} +2 -1
- package/dist/languages/en.json +1 -1
- package/dist/scripts/{1760-8d51aa0b08-lite.chunk.js → 1019-8f977b5095-lite.chunk.js} +2 -2
- package/dist/scripts/{1760-8d51aa0b08-lite.chunk.js.map → 1019-8f977b5095-lite.chunk.js.map} +1 -1
- package/dist/scripts/1080-509aa6e738-lite.chunk.js +2 -0
- package/dist/scripts/1080-509aa6e738-lite.chunk.js.map +1 -0
- package/dist/scripts/1169-e64f0dbd67-lite.chunk.js +2 -0
- package/dist/scripts/1169-e64f0dbd67-lite.chunk.js.map +1 -0
- package/dist/scripts/1329-bdbbf6c7fd-lite.chunk.js +3 -0
- package/dist/scripts/1329-bdbbf6c7fd-lite.chunk.js.map +1 -0
- package/dist/scripts/{1379-976d20185f-lite.chunk.js → 1379-ca519ec56b-lite.chunk.js} +3 -3
- package/dist/scripts/{1379-976d20185f-lite.chunk.js.map → 1379-ca519ec56b-lite.chunk.js.map} +1 -1
- package/dist/scripts/1518-4f76dbeee8-lite.chunk.js +2 -0
- package/dist/scripts/1518-4f76dbeee8-lite.chunk.js.map +1 -0
- package/dist/scripts/{1838-87fb96ee2c-lite.chunk.js → 1838-95081e8dea-lite.chunk.js} +1 -1
- package/dist/scripts/{1838-87fb96ee2c-lite.chunk.js.map → 1838-95081e8dea-lite.chunk.js.map} +1 -1
- package/dist/scripts/184-6ce393c251-lite.chunk.js +2 -0
- package/dist/scripts/184-6ce393c251-lite.chunk.js.map +1 -0
- package/dist/scripts/{2004-3005565af0-lite.chunk.js → 2004-e20d72976c-lite.chunk.js} +3 -3
- package/dist/scripts/{2004-3005565af0-lite.chunk.js.map → 2004-e20d72976c-lite.chunk.js.map} +1 -1
- package/dist/scripts/{2094-58390aa60a-lite.chunk.js → 2094-a16bbca3a3-lite.chunk.js} +2 -2
- package/dist/scripts/2094-a16bbca3a3-lite.chunk.js.map +1 -0
- package/dist/scripts/2142-c46ca4050f-lite.chunk.js +2 -0
- package/dist/scripts/2142-c46ca4050f-lite.chunk.js.map +1 -0
- package/dist/scripts/2199-be40da7440-lite.chunk.js +2 -0
- package/dist/scripts/2199-be40da7440-lite.chunk.js.map +1 -0
- package/dist/scripts/2548-c48b8d3e3c-lite.chunk.js +2 -0
- package/dist/scripts/2548-c48b8d3e3c-lite.chunk.js.map +1 -0
- package/dist/scripts/3969-6d7c342d0c-lite.chunk.js +2 -0
- package/dist/scripts/3969-6d7c342d0c-lite.chunk.js.map +1 -0
- package/dist/scripts/3999-317a4538c6-lite.chunk.js +3 -0
- package/dist/scripts/3999-317a4538c6-lite.chunk.js.map +1 -0
- package/dist/scripts/{422-ee640f76c5-lite.chunk.js → 422-a63a7eb901-lite.chunk.js} +1 -1
- package/dist/scripts/{422-ee640f76c5-lite.chunk.js.map → 422-a63a7eb901-lite.chunk.js.map} +1 -1
- package/dist/scripts/{4502-af4903784e-lite.chunk.js → 4502-a7d60fa257-lite.chunk.js} +1 -1
- package/dist/scripts/{4502-af4903784e-lite.chunk.js.map → 4502-a7d60fa257-lite.chunk.js.map} +1 -1
- package/dist/scripts/{4554-c0d7490a46-lite.chunk.js → 4554-b9aa07891f-lite.chunk.js} +2 -2
- package/dist/scripts/4554-b9aa07891f-lite.chunk.js.map +1 -0
- package/dist/scripts/{4591-379f0fe588-lite.chunk.js → 4591-21c0094f28-lite.chunk.js} +2 -2
- package/dist/scripts/{4591-379f0fe588-lite.chunk.js.map → 4591-21c0094f28-lite.chunk.js.map} +1 -1
- package/dist/scripts/{4683-ce52da47d8-lite.chunk.js → 4683-d3afe2dfa8-lite.chunk.js} +2 -2
- package/dist/scripts/4683-d3afe2dfa8-lite.chunk.js.map +1 -0
- package/dist/scripts/5220-291b2243ad-lite.chunk.js +3 -0
- package/dist/scripts/5220-291b2243ad-lite.chunk.js.map +1 -0
- package/dist/scripts/537-6efb9bc099-lite.chunk.js +3 -0
- package/dist/scripts/537-6efb9bc099-lite.chunk.js.map +1 -0
- package/dist/scripts/5660-6711768c20-lite.chunk.js +2 -0
- package/dist/scripts/5660-6711768c20-lite.chunk.js.map +1 -0
- package/dist/scripts/5936-e839cb8193-lite.chunk.js +2 -0
- package/dist/scripts/5936-e839cb8193-lite.chunk.js.map +1 -0
- package/dist/scripts/{624-bf0ff6257f-lite.chunk.js → 624-09b51a9d32-lite.chunk.js} +3 -3
- package/dist/scripts/{624-bf0ff6257f-lite.chunk.js.map → 624-09b51a9d32-lite.chunk.js.map} +1 -1
- package/dist/scripts/6450-f16821bf09-lite.chunk.js +2 -0
- package/dist/scripts/6450-f16821bf09-lite.chunk.js.map +1 -0
- package/dist/scripts/6489-c242844567-lite.chunk.js +3 -0
- package/dist/scripts/6489-c242844567-lite.chunk.js.map +1 -0
- package/dist/scripts/6544-07898e3fa3-lite.chunk.js +2 -0
- package/dist/scripts/6544-07898e3fa3-lite.chunk.js.map +1 -0
- package/dist/scripts/6596-848fbf79bb-lite.chunk.js +2 -0
- package/dist/scripts/6596-848fbf79bb-lite.chunk.js.map +1 -0
- package/dist/scripts/{6741-1c125dbc6c-lite.chunk.js → 6741-fe09fea334-lite.chunk.js} +3 -3
- package/dist/scripts/{6741-1c125dbc6c-lite.chunk.js.map → 6741-fe09fea334-lite.chunk.js.map} +1 -1
- package/dist/scripts/6752-0d139a6c9a-lite.chunk.js +2 -0
- package/dist/scripts/6752-0d139a6c9a-lite.chunk.js.map +1 -0
- package/dist/scripts/696-fa78eb455f-lite.chunk.js +2 -0
- package/dist/scripts/696-fa78eb455f-lite.chunk.js.map +1 -0
- package/dist/scripts/{7234-ef6ab1e557-lite.chunk.js → 7234-d15fe07f0e-lite.chunk.js} +2 -2
- package/dist/scripts/{7234-ef6ab1e557-lite.chunk.js.map → 7234-d15fe07f0e-lite.chunk.js.map} +1 -1
- package/dist/scripts/729-594be12089-lite.chunk.js +2 -0
- package/dist/scripts/729-594be12089-lite.chunk.js.map +1 -0
- package/dist/scripts/{7293-3e6ad36a7a-lite.chunk.js → 7293-35871fc150-lite.chunk.js} +2 -2
- package/dist/scripts/7293-35871fc150-lite.chunk.js.map +1 -0
- package/dist/scripts/{8192-e2d9a26cc5-lite.chunk.js → 8192-eb7054ccc6-lite.chunk.js} +2 -2
- package/dist/scripts/{8192-e2d9a26cc5-lite.chunk.js.map → 8192-eb7054ccc6-lite.chunk.js.map} +1 -1
- package/dist/scripts/841-11af1334bf-lite.chunk.js +3 -0
- package/dist/scripts/841-11af1334bf-lite.chunk.js.map +1 -0
- package/dist/scripts/{8522-b4b217640c-lite.chunk.js → 8522-8e9c576bf6-lite.chunk.js} +1 -1
- package/dist/scripts/{8522-b4b217640c-lite.chunk.js.map → 8522-8e9c576bf6-lite.chunk.js.map} +1 -1
- package/dist/scripts/8801-3a7652eb35-lite.chunk.js +2 -0
- package/dist/scripts/8801-3a7652eb35-lite.chunk.js.map +1 -0
- package/dist/scripts/9010-ef7ea501ee-lite.chunk.js +2 -0
- package/dist/scripts/9010-ef7ea501ee-lite.chunk.js.map +1 -0
- package/dist/scripts/9139-22fb64f542-lite.chunk.js +2 -0
- package/dist/scripts/9139-22fb64f542-lite.chunk.js.map +1 -0
- package/dist/scripts/9173-e45847aa35-lite.chunk.js +2 -0
- package/dist/scripts/9173-e45847aa35-lite.chunk.js.map +1 -0
- package/dist/scripts/{9395-e9b5cdbdce-lite.chunk.js → 9395-e1a02b01ce-lite.chunk.js} +3 -3
- package/dist/scripts/{9395-e9b5cdbdce-lite.chunk.js.map → 9395-e1a02b01ce-lite.chunk.js.map} +1 -1
- package/dist/scripts/{9478-abfa7ed3cc-lite.chunk.js → 9478-13da35c4ee-lite.chunk.js} +3 -3
- package/dist/scripts/{9478-abfa7ed3cc-lite.chunk.js.map → 9478-13da35c4ee-lite.chunk.js.map} +1 -1
- package/dist/scripts/{953-bf3d621a33-lite.chunk.js → 953-225db845ab-lite.chunk.js} +3 -3
- package/dist/scripts/{953-bf3d621a33-lite.chunk.js.map → 953-225db845ab-lite.chunk.js.map} +1 -1
- package/dist/scripts/{9899-68b030d4e2-lite.chunk.js → 9899-fa58471776-lite.chunk.js} +2 -2
- package/dist/scripts/{9899-68b030d4e2-lite.chunk.js.map → 9899-fa58471776-lite.chunk.js.map} +1 -1
- package/dist/scripts/bundle-7f9a9b650d.min.js +3 -0
- package/dist/scripts/bundle-7f9a9b650d.min.js.map +1 -0
- package/package.json +1 -1
- package/dist/scripts/1080-4173ce26bd-lite.chunk.js +0 -2
- package/dist/scripts/1080-4173ce26bd-lite.chunk.js.map +0 -1
- package/dist/scripts/1169-d090f0a147-lite.chunk.js +0 -2
- package/dist/scripts/1169-d090f0a147-lite.chunk.js.map +0 -1
- package/dist/scripts/1329-d48379c043-lite.chunk.js +0 -3
- package/dist/scripts/1329-d48379c043-lite.chunk.js.map +0 -1
- package/dist/scripts/1518-9756fde01e-lite.chunk.js +0 -2
- package/dist/scripts/1518-9756fde01e-lite.chunk.js.map +0 -1
- package/dist/scripts/184-ee581fa2e0-lite.chunk.js +0 -2
- package/dist/scripts/184-ee581fa2e0-lite.chunk.js.map +0 -1
- package/dist/scripts/2094-58390aa60a-lite.chunk.js.map +0 -1
- package/dist/scripts/2199-476ac5922f-lite.chunk.js +0 -2
- package/dist/scripts/2199-476ac5922f-lite.chunk.js.map +0 -1
- package/dist/scripts/3640-1ac0a110f4-lite.chunk.js +0 -2
- package/dist/scripts/3640-1ac0a110f4-lite.chunk.js.map +0 -1
- package/dist/scripts/3969-c0160d0139-lite.chunk.js +0 -2
- package/dist/scripts/3969-c0160d0139-lite.chunk.js.map +0 -1
- package/dist/scripts/4063-786732e7b0-lite.chunk.js +0 -2
- package/dist/scripts/4063-786732e7b0-lite.chunk.js.map +0 -1
- package/dist/scripts/4273-de24896b28-lite.chunk.js +0 -3
- package/dist/scripts/4273-de24896b28-lite.chunk.js.map +0 -1
- package/dist/scripts/4554-c0d7490a46-lite.chunk.js.map +0 -1
- package/dist/scripts/4683-ce52da47d8-lite.chunk.js.map +0 -1
- package/dist/scripts/4850-5ddd277550-lite.chunk.js +0 -2
- package/dist/scripts/4850-5ddd277550-lite.chunk.js.map +0 -1
- package/dist/scripts/5220-85898810a6-lite.chunk.js +0 -3
- package/dist/scripts/5220-85898810a6-lite.chunk.js.map +0 -1
- package/dist/scripts/537-de7445d41a-lite.chunk.js +0 -3
- package/dist/scripts/537-de7445d41a-lite.chunk.js.map +0 -1
- package/dist/scripts/5549-e0ed88aaa1-lite.chunk.js +0 -2
- package/dist/scripts/5549-e0ed88aaa1-lite.chunk.js.map +0 -1
- package/dist/scripts/5660-a356acdbca-lite.chunk.js +0 -2
- package/dist/scripts/5660-a356acdbca-lite.chunk.js.map +0 -1
- package/dist/scripts/5936-92d9cea005-lite.chunk.js +0 -2
- package/dist/scripts/5936-92d9cea005-lite.chunk.js.map +0 -1
- package/dist/scripts/6094-8546003d79-lite.chunk.js +0 -2
- package/dist/scripts/6094-8546003d79-lite.chunk.js.map +0 -1
- package/dist/scripts/6450-601f889072-lite.chunk.js +0 -2
- package/dist/scripts/6450-601f889072-lite.chunk.js.map +0 -1
- package/dist/scripts/6489-532a022587-lite.chunk.js +0 -3
- package/dist/scripts/6489-532a022587-lite.chunk.js.map +0 -1
- package/dist/scripts/6544-ae27efabab-lite.chunk.js +0 -2
- package/dist/scripts/6544-ae27efabab-lite.chunk.js.map +0 -1
- package/dist/scripts/6752-5dddab5e0b-lite.chunk.js +0 -2
- package/dist/scripts/6752-5dddab5e0b-lite.chunk.js.map +0 -1
- package/dist/scripts/6852-9dfd47d085-lite.chunk.js +0 -2
- package/dist/scripts/6852-9dfd47d085-lite.chunk.js.map +0 -1
- package/dist/scripts/7293-3e6ad36a7a-lite.chunk.js.map +0 -1
- package/dist/scripts/841-73ef4ba5ec-lite.chunk.js +0 -3
- package/dist/scripts/841-73ef4ba5ec-lite.chunk.js.map +0 -1
- package/dist/scripts/8801-222a1b2e99-lite.chunk.js +0 -2
- package/dist/scripts/8801-222a1b2e99-lite.chunk.js.map +0 -1
- package/dist/scripts/9139-49023800c6-lite.chunk.js +0 -2
- package/dist/scripts/9139-49023800c6-lite.chunk.js.map +0 -1
- package/dist/scripts/9173-f9708ec0de-lite.chunk.js +0 -2
- package/dist/scripts/9173-f9708ec0de-lite.chunk.js.map +0 -1
- package/dist/scripts/bundle-e72459b30e.min.js +0 -3
- package/dist/scripts/bundle-e72459b30e.min.js.map +0 -1
- /package/dist/css/{4273-lite-a3c7435ba4.chunk.css → 3999-lite-a3c7435ba4.chunk.css} +0 -0
- /package/dist/css/{4063-lite-f72fc7b813.chunk.css → 4860-lite-f72fc7b813.chunk.css} +0 -0
- /package/dist/css/{4850-lite-f72fc7b813.chunk.css → 729-lite-f72fc7b813.chunk.css} +0 -0
- /package/dist/scripts/{1329-d48379c043-lite.chunk.js.LICENSE.txt → 1329-bdbbf6c7fd-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{1379-976d20185f-lite.chunk.js.LICENSE.txt → 1379-ca519ec56b-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{2004-3005565af0-lite.chunk.js.LICENSE.txt → 2004-e20d72976c-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{4273-de24896b28-lite.chunk.js.LICENSE.txt → 3999-317a4538c6-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{5220-85898810a6-lite.chunk.js.LICENSE.txt → 5220-291b2243ad-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{537-de7445d41a-lite.chunk.js.LICENSE.txt → 537-6efb9bc099-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{624-bf0ff6257f-lite.chunk.js.LICENSE.txt → 624-09b51a9d32-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{6489-532a022587-lite.chunk.js.LICENSE.txt → 6489-c242844567-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{6741-1c125dbc6c-lite.chunk.js.LICENSE.txt → 6741-fe09fea334-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{841-73ef4ba5ec-lite.chunk.js.LICENSE.txt → 841-11af1334bf-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{9395-e9b5cdbdce-lite.chunk.js.LICENSE.txt → 9395-e1a02b01ce-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{9478-abfa7ed3cc-lite.chunk.js.LICENSE.txt → 9478-13da35c4ee-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{953-bf3d621a33-lite.chunk.js.LICENSE.txt → 953-225db845ab-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{bundle-e72459b30e.min.js.LICENSE.txt → bundle-7f9a9b650d.min.js.LICENSE.txt} +0 -0
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
/*! For license information please see 6741-
|
|
2
|
-
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[6741],{3278:(e,t,n)=>{n.d(t,{z:()=>p});var r=n(32735),a=n(39202),i=n(23481),o=n(65858),c=n(38502),s=n(83345),l=n(40424);const u={pillTab:"bMJM0"};var d="discover.header";function p(e){var t,n,p,f,m,h;if(!e.type)return r.createElement(r.Fragment,null);if(e.type===l.Yv.Learner||e.hasStudentExperience)return r.createElement("div",{className:"py-3"},r.createElement("h1",{className:"h2 mb-0"},r.createElement(s.x,{namespace:d,phrase:"heading"})));var v=[{name:i.T.getPhrase(d,"forYou"),appLink:null===(t=e.appLinks)||void 0===t?void 0:t.forYou,active:"forYou"===e.active,analyticsData:{name:i.T.getPhrase(d,"forYou"),url:a.C$.getHref(null===(n=e.appLinks)||void 0===n?void 0:n.forYou)},analyticsOptions:{actionType:o.Vw.Click,entity:o.py.Url,location:o.LZ.MagicTabs}},{name:i.T.getPhrase(d,"whatsNew"),appLink:null===(p=e.appLinks)||void 0===p?void 0:p.whatsNew,active:"whatsNew"===e.active,analyticsData:{name:i.T.getPhrase(d,"whatsNew"),url:a.C$.getHref(null===(f=e.appLinks)||void 0===f?void 0:f.whatsNew)},analyticsOptions:{actionType:o.Vw.Click,entity:o.py.Url,location:o.LZ.MagicTabs}}];return e.showCalendar&&v.push({name:i.T.getPhrase(d,"calendar"),appLink:null===(m=e.appLinks)||void 0===m?void 0:m.calendar,active:"calendar"===e.active,analyticsData:{name:i.T.getPhrase(d,"calendar"),url:a.C$.getHref(null===(h=e.appLinks)||void 0===h?void 0:h.calendar)},analyticsOptions:{actionType:o.Vw.Click,entity:o.py.Url,location:o.LZ.MagicTabs}}),r.createElement("div",{className:"py-3 text-center"},r.createElement(c.r,{tabs:v,className:u.pillTab}))}},28046:(e,t,n)=>{n.d(t,{l:()=>f,v:()=>m});var r=n(39479),a=["pdf"],i=["doc","docx","dotx","dot","rtf","docm","odt"],o=["csv","txt"],c=["xls","xlt","xlsx"],s=["jpg","tif","png","bmp","gif","jpeg"],l="video/*",u=["zip","rar"],d=["ppt","pot","pps","pptx"],p=["srt"],f={IMAGES:".".concat(s.join(",.")),VIDEO:l,MIXED_MEDIA:".".concat(s.join(",."),",").concat(l),RESOURCES:".".concat([].concat(i,c,d,a,o,s,u).join(",.")),SUBTITLES:".".concat(p.join(",."))},m={getResourceType:function(e){var t=e.toLowerCase();return r.contains(i,t)?"document":r.contains(c,t)?"excel":r.contains(d,t)?"powerpoint":r.contains(a,t)?"pdf":r.contains(o,t)?"text":r.contains(s,t)?"image":r.contains(u,t)?"archive":r.contains(p,t)?"subtitle":""}}},38502:(e,t,n)=>{n.d(t,{r:()=>d});var r=n(32735),a=n(49985),i=n(36848),o=n(18559),c=n(11607),s=n(83914),l=n(87432);function u(e){return r.createElement(r.Fragment,null,!!e.tab.svgName&&r.createElement("div",{className:e.tab.name?"pe-1":""},r.createElement(s.x,{svgName:e.tab.svgName})),e.tab.name,"number"==typeof e.tab.count&&r.createElement("div",{className:"ps-2"},r.createElement(o.C,{type:o.g.Count,data:e.tab.count})))}function d(e){var t;return r.createElement("nav",{className:null!==(t=e.className)&&void 0!==t?t:"",ref:e.containerRef},r.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 r.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?r.createElement(i.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 ")},r.createElement(u,{tab:e})):r.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&&a.k.logUserAction(e.analyticsData,e.analyticsOptions))}(e)}},r.createElement(u,{tab:e})))}))))}d.defaultProps={borderRadius:"lg"}},17101:(e,t,n)=>{var r;n.d(t,{n:()=>r}),function(e){e[e.Other=0]="Other",e[e.SuggestImprovement=1]="SuggestImprovement",e[e.ReportBug=2]="ReportBug",e[e.RequestVideo=3]="RequestVideo",e[e.RaiseIssue=4]="RaiseIssue",e[e.GivePraise=5]="GivePraise",e[e.Footer=6]="Footer",e[e.RequestLivestream=7]="RequestLivestream"}(r||(r={}))},7198:(e,t,n)=>{n.d(t,{f:()=>a});var r=n(99940),a={submitFeedback:function(e,t){return{url:"{gateway}/v1/feedback",key:"submit:feedback",type:r.k.POST,data:Object.assign(Object.assign({},e),t)}}}},52167:(e,t,n)=>{n.d(t,{m:()=>l});var r=n(53301),a=n.n(r),i=n(28046),o=n(19808),c=n(86613);function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var l={getUserInfo:function(e,t){return{id:e.id,username:e.username,email:e.email,userType:e.role===c.i.Admin?"Admin":"Staff",customerId:e.customerId,cvcId:t.crmId,customerName:t.name,instanceRegion:e.instanceRegion,contentRegion:e.contentRegion,firstName:e.givenName,lastName:e.familyName}},mapInstanceRegionToTag:function(e){switch(e){case o.b.AU:return"au";case o.b.NZ:return"nz";case o.b.UK:return"uk";case o.b.US:return"us"}},getTags:function(e,t,n,r){var a,i=[t].concat(function(e){if(Array.isArray(e))return s(e)}(a=r)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(a)||function(e,t){if(e){if("string"==typeof e)return s(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?s(e,t):void 0}}(a)||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.")}());i.push(n?"student":"staff"),e.role===c.i.Admin&&i.push("administrator");var o=l.mapInstanceRegionToTag(e.instanceRegion);return o&&i.push(o),i},categorizeFiles:function(e){return e.reduce((function(e,t){var n=t.get("fileInfo");return a().isValidFile(t.get("file"),i.l.VIDEO)?e.videoUrls.push(null==n?void 0:n.url):e.imageUrls.push(null==n?void 0:n.url),e}),{imageUrls:[],videoUrls:[]})}}},16741:(e,t,n)=>{n.r(t),n.d(t,{CuratedDiscoverView:()=>re});var r=n(32735),a=n(39202),i=n(23481),o=n(57900),c=n(20354),s=n(2948),l=n(49985),u=n(65858),d=n(75896),p=n(3278),f=n(32624),m=n(16714),h=n(40424),v=n(77843),g=n(23232),y=n(83345),b=n(76177),w=n(35223),L="subjects.discoverDashboardEmptyState",E=i.T.encloseNamespace(L);function T(e){var t,n,a=(null===(t=e.dashboard)||void 0===t?void 0:t.status)===h.GL.Archived;return r.createElement(g.u,null,r.createElement(g.u.Image,{src:e.imageUrl,altText:E("info")}),r.createElement(g.u.Heading,null,r.createElement(y.x,{namespace:L,phrase:"heading"})),r.createElement(g.u.Info,null,r.createElement(y.x,{namespace:L,phrase:"info"})),r.createElement(b.u,{title:a?i.T.getPhrase(L,"archivedCtaTooltip"):"",spanHack:!0},r.createElement(g.u.Cta,{text:i.T.getPhrase(L,"add"),appLink:null===(n=e.addWidgetApplink)||void 0===n?void 0:n.call(e),className:"btn btn-dark",icon:w.vn.Plus,disabled:a})))}function S(e){var t,n,a=d.m.sortBy(null===(t=e.dashboard)||void 0===t?void 0:t.widgets,"index");function i(t,n,r){var a=v.S.getWidgetParams(n,r,v.S.getDashboardTargetType(e.dashboard));return e.getWidgetContentRequest(t,a,r,e.presentation)}var o=e.isReadonly&&!(null==a?void 0:a.length);return r.createElement(r.Fragment,null,r.createElement(p.z,{type:null===(n=e.dashboard)||void 0===n?void 0:n.userType,appLinks:e.headerAppLinks,hasStudentExperience:e.hasPermissions(m.C.StudentExperience),showCalendar:e.showCalendar,active:"forYou"}),a.map((function(t,n){return r.createElement(f.L,{key:t.id,id:t.id,imageCdnUrl:e.imageCdnUrl,getContentRequest:i,audiences:e.audiences,name:t.name,description:t.description,templateId:t.templateId,metadata:t.metadata,presentation:e.presentation,setFavourite:e.setFavourite,canFavourite:e.canFavourite,resourceThumbnailFallbackImageUrl:e.resourceThumbnailFallbackImageUrl,preferences:t.preferences,appLinks:e.widgetAppLinks,isScrollToTargetWidget:(null==e?void 0:e.scrollToWidgetId)===t.id,widgetTypeId:t.widgetId,hasPermissions:e.hasPermissions,hasLocalPermissions:e.hasLocalPermissions,onSubmitFeedback:e.onSubmitFeedback,updatePreferences:e.updatePreferences,yearGroups:e.yearGroups,lazyLoad:e.lazyLoad,dashboardTarget:h.ku.Discover,widgetIndex:n,jobTitle:e.jobTitle,isPreviewing:e.isReadonly,imageUrls:e.imageUrls,settings:e.settings,isPlugin:e.isPlugin,availablePresentations:e.availablePresentations})})),o&&r.createElement(T,{dashboard:e.dashboard,isReadonly:e.isReadonly,imageUrl:e.emptyImageUrl,addWidgetApplink:e.widgetAppLinks.widgetWizard}))}var A=n(38143),k=n(17101),O=n(72639),N=n(12754),C=n(39151),x=n(1666),P=n(80889),I=n(7198),U=n(98064),D=n(61699),F=n(31949),R=n(22902),j=n(79612),_=n(37802),G=n(69454),B=n(52167),M=n(76753),W=n(73417),H=n(99742),V=n(51855),Z=n(27638),Y=n(86698),z=n(85369),q=n(23737),$=n(33192),K=n(48688),J=n(27051);function Q(e){return Q="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},Q(e)}function X(){X=function(){return t};var e,t={},n=Object.prototype,r=n.hasOwnProperty,a=Object.defineProperty||function(e,t,n){e[t]=n.value},i="function"==typeof Symbol?Symbol:{},o=i.iterator||"@@iterator",c=i.asyncIterator||"@@asyncIterator",s=i.toStringTag||"@@toStringTag";function l(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{l({},"")}catch(e){l=function(e,t,n){return e[t]=n}}function u(e,t,n,r){var i=t&&t.prototype instanceof g?t:g,o=Object.create(i.prototype),c=new x(r||[]);return a(o,"_invoke",{value:k(e,n,c)}),o}function d(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}t.wrap=u;var p="suspendedStart",f="suspendedYield",m="executing",h="completed",v={};function g(){}function y(){}function b(){}var w={};l(w,o,(function(){return this}));var L=Object.getPrototypeOf,E=L&&L(L(P([])));E&&E!==n&&r.call(E,o)&&(w=E);var T=b.prototype=g.prototype=Object.create(w);function S(e){["next","throw","return"].forEach((function(t){l(e,t,(function(e){return this._invoke(t,e)}))}))}function A(e,t){function n(a,i,o,c){var s=d(e[a],e,i);if("throw"!==s.type){var l=s.arg,u=l.value;return u&&"object"==Q(u)&&r.call(u,"__await")?t.resolve(u.__await).then((function(e){n("next",e,o,c)}),(function(e){n("throw",e,o,c)})):t.resolve(u).then((function(e){l.value=e,o(l)}),(function(e){return n("throw",e,o,c)}))}c(s.arg)}var i;a(this,"_invoke",{value:function(e,r){function a(){return new t((function(t,a){n(e,r,t,a)}))}return i=i?i.then(a,a):a()}})}function k(t,n,r){var a=p;return function(i,o){if(a===m)throw Error("Generator is already running");if(a===h){if("throw"===i)throw o;return{value:e,done:!0}}for(r.method=i,r.arg=o;;){var c=r.delegate;if(c){var s=O(c,r);if(s){if(s===v)continue;return s}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(a===p)throw a=h,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);a=m;var l=d(t,n,r);if("normal"===l.type){if(a=r.done?h:f,l.arg===v)continue;return{value:l.arg,done:r.done}}"throw"===l.type&&(a=h,r.method="throw",r.arg=l.arg)}}}function O(t,n){var r=n.method,a=t.iterator[r];if(a===e)return n.delegate=null,"throw"===r&&t.iterator.return&&(n.method="return",n.arg=e,O(t,n),"throw"===n.method)||"return"!==r&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+r+"' method")),v;var i=d(a,t.iterator,n.arg);if("throw"===i.type)return n.method="throw",n.arg=i.arg,n.delegate=null,v;var o=i.arg;return o?o.done?(n[t.resultName]=o.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,v):o:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,v)}function N(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function C(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function x(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(N,this),this.reset(!0)}function P(t){if(t||""===t){var n=t[o];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var a=-1,i=function n(){for(;++a<t.length;)if(r.call(t,a))return n.value=t[a],n.done=!1,n;return n.value=e,n.done=!0,n};return i.next=i}}throw new TypeError(Q(t)+" is not iterable")}return y.prototype=b,a(T,"constructor",{value:b,configurable:!0}),a(b,"constructor",{value:y,configurable:!0}),y.displayName=l(b,s,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===y||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,b):(e.__proto__=b,l(e,s,"GeneratorFunction")),e.prototype=Object.create(T),e},t.awrap=function(e){return{__await:e}},S(A.prototype),l(A.prototype,c,(function(){return this})),t.AsyncIterator=A,t.async=function(e,n,r,a,i){void 0===i&&(i=Promise);var o=new A(u(e,n,r,a),i);return t.isGeneratorFunction(n)?o:o.next().then((function(e){return e.done?e.value:o.next()}))},S(T),l(T,s,"Generator"),l(T,o,(function(){return this})),l(T,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),n=[];for(var r in t)n.push(r);return n.reverse(),function e(){for(;n.length;){var r=n.pop();if(r in t)return e.value=r,e.done=!1,e}return e.done=!0,e}},t.values=P,x.prototype={constructor:x,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(C),!t)for(var n in this)"t"===n.charAt(0)&&r.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var n=this;function a(r,a){return c.type="throw",c.arg=t,n.next=r,a&&(n.method="next",n.arg=e),!!a}for(var i=this.tryEntries.length-1;i>=0;--i){var o=this.tryEntries[i],c=o.completion;if("root"===o.tryLoc)return a("end");if(o.tryLoc<=this.prev){var s=r.call(o,"catchLoc"),l=r.call(o,"finallyLoc");if(s&&l){if(this.prev<o.catchLoc)return a(o.catchLoc,!0);if(this.prev<o.finallyLoc)return a(o.finallyLoc)}else if(s){if(this.prev<o.catchLoc)return a(o.catchLoc,!0)}else{if(!l)throw Error("try statement without catch or finally");if(this.prev<o.finallyLoc)return a(o.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var a=this.tryEntries[n];if(a.tryLoc<=this.prev&&r.call(a,"finallyLoc")&&this.prev<a.finallyLoc){var i=a;break}}i&&("break"===e||"continue"===e)&&i.tryLoc<=t&&t<=i.finallyLoc&&(i=null);var o=i?i.completion:{};return o.type=e,o.arg=t,i?(this.method="next",this.next=i.finallyLoc,v):this.complete(o)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),v},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),C(n),v}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var a=r.arg;C(n)}return a}}throw Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:P(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),v}},t}function ee(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var te=function(e,t,n,r){return new(n||(n=Promise))((function(a,i){function o(e){try{s(r.next(e))}catch(e){i(e)}}function c(e){try{s(r.throw(e))}catch(e){i(e)}}function s(e){var t;e.done?a(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,c)}s((r=r.apply(e,t||[])).next())}))},ne=i.T.encloseNamespace("dashboard.dashboard");function re(e){var t,n,i,d,p,f,v,g,y=c.a.useBasicFetch(C.L.config()),b=c.a.useBasicFetch(F.N.currentUser()),w=c.a.useBasicFetch((null===(t=b.data)||void 0===t?void 0:t.isAuthenticated)&&F.N.user(b.data.id)),L=(0,R.T)(),E=L.hasLocalPermissions,T=L.hasPermissions,Q=(0,V.G)().isPlugin,re=c.a.useBasicFetch(E(m.E.ManageDiscoverPreferences)&&b.data&&x.h.customer(b.data.customerId)),ae=c.a.useBasicFetch((null===(n=b.data)||void 0===n?void 0:n.isAuthenticated)&&x.h.yearGroups(b.data.customerId)),ie=c.a.useBasicFetch((null===(i=b.data)||void 0===i?void 0:i.isAuthenticated)&&U.D.libraries()),oe=(0,Y.y)().availablePresentations,ce=(0,q.y)({targetType:h.ku.Discover,queryParams:e.queryParams,presentationSlug:e.presentationSlug}),se=ce.dashboard,le=ce.presentation,ue=ce.audiences,de=c.a.useGetFetchAsync(),pe=(0,_.r)(null),fe=(0,Z.u)(u.LZ.Dashboard),me=fe.setFavourite,he=fe.canFavourite,ve=(v=(0,s.D)(A.g.AUDIENCE_FILTER,void 0,{storage:o.Z1.SessionStorage}),g=1,function(e){if(Array.isArray(e))return e}(v)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i,o,c=[],s=!0,l=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(r=i.call(n)).done)&&(c.push(r.value),c.length!==t);s=!0);}catch(e){l=!0,a=e}finally{try{if(!s&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(l)throw a}}return c}}(v,g)||function(e,t){if(e){if("string"==typeof e)return ee(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)?ee(e,t):void 0}}(v,g)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}())[0],ge=(0,J.E)(G.T.getAudienceParams(ve)),ye=function(e){return+O.p[null==e?void 0:e.learningLevel]===O.p.Level_1?"VariantOne":"VariantTwo"}(le);(0,j.M)(M.CG.getDiscoverMetadata({content:le,phraseContext:{phraseHandler:ne,titlePhrase:"pageTitle".concat(ye),descriptionPhrase:"pageDescription".concat(ye)},canonicalLink:$.f.getCanonicalLink(),allowIndexing:$.f.allowIndexing(),hrefLang:$.f.getStaticRouteHrefLang(null==le?void 0:le.learningLevel,ge.discover)}));var be=(0,z.N)().showCalendar;return r.createElement("div",{className:"bg-white px-4"},r.createElement(W.T,null),r.createElement(S,{currentUser:b.data,dashboard:se.data,widgetAppLinks:ge,headerAppLinks:(0,J.u)(),presentation:le,imageCdnUrl:y.data.imageCdnUrl,resourceThumbnailFallbackImageUrl:H.W.Fallbacks.RESOURCE_THUMBNAIL,getWidgetContentRequest:function(){for(var e=K.g.hasTwig(ie.data,b.data),t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return P._.discoverWidgetContent.apply(P._,[e].concat(n))},setFavourite:me,audiences:ue.data,canFavourite:he,updatePreferences:function(e,t,n,r){return te(this,void 0,void 0,X().mark((function t(){var a,i;return X().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(a=r.filter((function(e){return!e.hidden&&n.find((function(t){return t.id===e.id})).hidden})),i=r.filter((function(e){return!!e.hidden&&!n.find((function(t){return t.id===e.id})).hidden})),!(null==a?void 0:a.length)){t.next=5;break}return t.next=5,de(D.o.followSubjects(a.map((function(e){return e.id}))));case 5:if(!(null==i?void 0:i.length)){t.next=8;break}return t.next=8,de(D.o.unfollowSubjects(i.map((function(e){return e.id}))));case 8:return t.abrupt("return",de(P._.updateWidgetPreferences(e,r.map((function(e){return{id:e.id,index:e.index}})),b.data)));case 9:case"end":return t.stop()}}),t)})))},hasPermissions:T,hasLocalPermissions:E,onSubmitFeedback:T(m.C.CanSubmitFeedback)&&function(e){return te(this,void 0,void 0,X().mark((function t(){var n;return X().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,de(I.f.submitFeedback({type:k.n.Footer,user:B.m.getUserInfo(b.data,re.data),tags:B.m.getTags(b.data,N.x.Primary,T(m.C.StudentExperience),["discover","in product feedback"])},{reaction:e.type,feedback:e.content,location:"Discover Footer",presentationName:le.description,presentationId:le.id,dashboardName:se.data.name,dashboardId:se.data.id,currentPageUrl:a.Ab.GetCurrentUrl()}));case 2:return n=t.sent,l.k.logUserAction({feedbackType:e.type,content:e.content,presentationId:le.id,dashboardId:se.data.id},{actionType:u.Vw.Submit,location:u.LZ.DiscoverFooter,entity:u.py.Feedback,workflowPhase:u.eu.Complete}),t.abrupt("return",n);case 5:case"end":return t.stop()}}),t)})))},yearGroups:ae.data,lazyLoad:!$.f.isBot(),showCalendar:be,jobTitle:null===(f=null===(p=null===(d=w.data)||void 0===d?void 0:d.userProfile)||void 0===p?void 0:p.metadata)||void 0===f?void 0:f.jobTitle,imageUrls:{onboardingAdminBackgroundFull:H.W.OnboardingV2.Widget.ADMIN_BACKGROUND_FULL,onboardingAdminBackground:H.W.OnboardingV2.Widget.ADMIN_BACKGROUND,onboardingTeacherBackground:H.W.OnboardingV2.Widget.TEACHER_BACKGROUND},settings:pe,isPlugin:Q,availablePresentations:oe}))}},27051:(e,t,n)=>{n.d(t,{E:()=>m,u:()=>h});var r=n(75896),a=n(28400),i=n(17475),o=n(183),c=n(14070),s=n(97291),l=n(34181),u=n(22490),d=n(67963),p=n(82431),f="classification-latest-releases";function m(e){return{classification:function(t){return l.L.getAppLink(t,e||{})},videoType:function(e,t){return u.W.getAppLink(e,Object.assign(Object.assign({},t),{context:o.Q.Widget}))},series:p.j.getSeriesAppLink,subText:function(e){return p.j.getSeriesAppLink(e.series)},playlist:function(e){return{application:s.O.PLAYLISTS,action:c.e.Playlists.PLAYLIST,args:[e.id,a.m.slugify(e.name)]}},latestReleases:function(){return{application:s.O.CONTENT_UPDATES,action:c.e.ContentUpdates.CONTENT_UPDATES}},allTopics:function(){return{application:s.O.SUBJECT,action:c.e.Subjects.CLASSIFICATION_ALL}},classificationLatestReleases:function(e){return e.id===f?{application:s.O.CONTENT_UPDATES,action:c.e.ContentUpdates.CONTENT_UPDATES}:{application:s.O.CONTENT_UPDATES,action:c.e.ContentUpdates.CLASSIFICATION_UPDATE,args:[e.id,a.m.slugify(e.name)]}},widgetVideoList:function(e,t){return{application:s.O.DASHBOARD,action:c.e.Dashboard.DASHBOARD,args:[e,a.m.slugify(t)]}},watchHistory:function(){return{application:s.O.WATCH_HISTORY,action:c.e.WatchHistory.HOME}},rating:function(e,t){return{application:s.O.SEARCH,action:c.e.Search.HOME,params:{moviesAndTv:!0,rating:i.S.getFrontendParamValue([r.m.first(t),e])}}},company:function(e){return{application:s.O.MOVIES_AND_TV,action:c.e.MoviesAndTv.COMPANY_DASHBOARD,args:[e.id,a.m.slugify(e.name)]}},discover:function(){return{application:s.O.DASHBOARD,action:c.e.Dashboard.HOME}},calendar:function(){return{application:s.O.CALENDAR,action:c.e.Calendar.CALENDAR}},calendarMonth:function(e,t){var n={application:s.O.CALENDAR,action:c.e.Calendar.CALENDAR_MONTH,args:[e.toLowerCase()]};return t&&(n.params={year:t}),n},onboardingStep:function(e){return(0,d.u)()[e]},onboardingAppLinks:function(){return(0,d.u)()},classroomGuide:u.W.getClassroomGuideAppLink,interactiveGuidance:u.W.getInteractiveGuidanceAppLink,resourceGuidance:u.W.getResourceGuidanceAppLink}}function h(){return{forYou:{application:s.O.DASHBOARD,action:c.e.Dashboard.HOME},whatsNew:{application:s.O.CONTENT_UPDATES,action:c.e.ContentUpdates.CONTENT_UPDATES},calendar:{application:s.O.CALENDAR,action:c.e.Calendar.CALENDAR}}}},73417:(e,t,n)=>{n.d(t,{T:()=>u});var r=n(32735),a=n(11607),i=n(83914),o=n(83345),c=n(87348),s=n(35223),l="shared.upgradeFeedbackBanner";function u(){var e=(0,c.Q)(),t=e.showFeedbackBanner,n=e.dismissFeedbackBanner;return t?r.createElement("div",{className:"alert bg-light-blue p-2 rounded text-info fw-semibold d-flex justify-content-between align-items-center"},r.createElement(o.x,{namespace:l,phrase:"message",options:{url:"https://www.clickvieweducation.com/en-au/blog/product/exchange-tv-new-look"}}),r.createElement(a.L,{onClick:n},r.createElement(i.x,{svgName:s.vn.Close,className:"ms-2 svg-container"}))):r.createElement(r.Fragment,null)}},85369:(e,t,n)=>{n.d(t,{N:()=>g});var r=n(32735),a=n(35242),i=n(20354),o=n(27022),c=n(72639),s=n(31949),l=n(37802),u=n(87114),d=n(86698);function p(e){return p="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},p(e)}function f(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i,o,c=[],s=!0,l=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(r=i.call(n)).done)&&(c.push(r.value),c.length!==t);s=!0);}catch(e){l=!0,a=e}finally{try{if(!s&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(l)throw a}}return c}}(e,t)||function(e,t){if(e){if("string"==typeof e)return m(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?m(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function m(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function h(e,t,n){return(t=function(e){var t=function(e,t){if("object"!=p(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,"string");if("object"!=p(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==p(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var v=h(h(h(h(h(h({},o.t.AU,[c.p.Level_1]),o.t.US,[c.p.Level_1]),o.t.UK,[c.p.Level_1]),o.t.SCOT,[c.p.Level_1]),o.t.NZ,[]),o.t.GLOBAL,[]);function g(){var e,t=(0,l.r)(null),n=t.hasSpecialEventCalendar,o=t.isLoadingSettings,c=(0,d.y)({redirectOnError:!0}).activePresentation,p=i.a.useBasicFetch(s.N.currentUser()),m=v[null===(e=p.data)||void 0===e?void 0:e.contentRegion],h=u.i.getMappedPresentationLevel(null==c?void 0:c.learningLevel),g=!(null==m?void 0:m.find((function(e){return e.toString()===(null==h?void 0:h.toString())}))),y=!o&&!n,b=f(r.useState(!y&&!g),2),w=b[0],L=b[1],E=f(r.useState(o||!(null==c?void 0:c.id)),2),T=E[0],S=E[1];return r.useEffect((function(){y||g?L(!1):T||L(!0),S(o||!(null==c?void 0:c.id))}),[n,null==c?void 0:c.id,T]),a.h.isDevelopment?{showCalendar:!0,isLoading:!1}:{showCalendar:w,isLoading:T}}},87432:(e,t,n)=>{n.d(t,{Z:()=>r});const r={pillTabSelector:"Hdi6o",tab:"RvNxr",minWidth:"GHSz9",radiusSmall:"VhJJa",tabLink:"WFyvo"}}}]);
|
|
3
|
-
//# sourceMappingURL=6741-
|
|
1
|
+
/*! For license information please see 6741-fe09fea334-lite.chunk.js.LICENSE.txt */
|
|
2
|
+
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[6741],{3278:(e,t,n)=>{n.d(t,{z:()=>p});var r=n(32735),a=n(39202),i=n(23481),o=n(65858),c=n(38502),s=n(83345),l=n(40424);const u={pillTab:"bMJM0"};var d="discover.header";function p(e){var t,n,p,f,m,h;if(!e.type)return r.createElement(r.Fragment,null);if(e.type===l.Yv.Learner||e.hasStudentExperience)return r.createElement("div",{className:"py-3"},r.createElement("h1",{className:"h2 mb-0"},r.createElement(s.x,{namespace:d,phrase:"heading"})));var v=[{name:i.T.getPhrase(d,"forYou"),appLink:null===(t=e.appLinks)||void 0===t?void 0:t.forYou,active:"forYou"===e.active,analyticsData:{name:i.T.getPhrase(d,"forYou"),url:a.C$.getHref(null===(n=e.appLinks)||void 0===n?void 0:n.forYou)},analyticsOptions:{actionType:o.Vw.Click,entity:o.py.Url,location:o.LZ.MagicTabs}},{name:i.T.getPhrase(d,"whatsNew"),appLink:null===(p=e.appLinks)||void 0===p?void 0:p.whatsNew,active:"whatsNew"===e.active,analyticsData:{name:i.T.getPhrase(d,"whatsNew"),url:a.C$.getHref(null===(f=e.appLinks)||void 0===f?void 0:f.whatsNew)},analyticsOptions:{actionType:o.Vw.Click,entity:o.py.Url,location:o.LZ.MagicTabs}}];return e.showCalendar&&v.push({name:i.T.getPhrase(d,"calendar"),appLink:null===(m=e.appLinks)||void 0===m?void 0:m.calendar,active:"calendar"===e.active,analyticsData:{name:i.T.getPhrase(d,"calendar"),url:a.C$.getHref(null===(h=e.appLinks)||void 0===h?void 0:h.calendar)},analyticsOptions:{actionType:o.Vw.Click,entity:o.py.Url,location:o.LZ.MagicTabs}}),r.createElement("div",{className:"py-3 text-center"},r.createElement(c.r,{tabs:v,className:u.pillTab}))}},28046:(e,t,n)=>{n.d(t,{l:()=>f,v:()=>m});var r=n(39479),a=["pdf"],i=["doc","docx","dotx","dot","rtf","docm","odt"],o=["csv","txt"],c=["xls","xlt","xlsx"],s=["jpg","tif","png","bmp","gif","jpeg"],l="video/*",u=["zip","rar"],d=["ppt","pot","pps","pptx"],p=["srt"],f={IMAGES:".".concat(s.join(",.")),VIDEO:l,MIXED_MEDIA:".".concat(s.join(",."),",").concat(l),RESOURCES:".".concat([].concat(i,c,d,a,o,s,u).join(",.")),SUBTITLES:".".concat(p.join(",."))},m={getResourceType:function(e){var t=e.toLowerCase();return r.contains(i,t)?"document":r.contains(c,t)?"excel":r.contains(d,t)?"powerpoint":r.contains(a,t)?"pdf":r.contains(o,t)?"text":r.contains(s,t)?"image":r.contains(u,t)?"archive":r.contains(p,t)?"subtitle":""}}},38502:(e,t,n)=>{n.d(t,{r:()=>d});var r=n(32735),a=n(49985),i=n(36848),o=n(18559),c=n(11607),s=n(83914),l=n(87432);function u(e){return r.createElement(r.Fragment,null,!!e.tab.svgName&&r.createElement("div",{className:e.tab.name?"pe-1":""},r.createElement(s.x,{svgName:e.tab.svgName})),e.tab.name,"number"==typeof e.tab.count&&r.createElement("div",{className:"ps-2"},r.createElement(o.C,{type:o.g.Count,data:e.tab.count})))}function d(e){var t;return r.createElement("nav",{className:null!==(t=e.className)&&void 0!==t?t:"",ref:e.containerRef},r.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 r.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?r.createElement(i.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 ")},r.createElement(u,{tab:e})):r.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&&a.k.logUserAction(e.analyticsData,e.analyticsOptions))}(e)}},r.createElement(u,{tab:e})))}))))}d.defaultProps={borderRadius:"lg"}},17101:(e,t,n)=>{var r;n.d(t,{n:()=>r}),function(e){e[e.Other=0]="Other",e[e.SuggestImprovement=1]="SuggestImprovement",e[e.ReportBug=2]="ReportBug",e[e.RequestVideo=3]="RequestVideo",e[e.RaiseIssue=4]="RaiseIssue",e[e.GivePraise=5]="GivePraise",e[e.Footer=6]="Footer",e[e.RequestLivestream=7]="RequestLivestream"}(r||(r={}))},7198:(e,t,n)=>{n.d(t,{f:()=>a});var r=n(99940),a={submitFeedback:function(e,t){return{url:"{gateway}/v1/feedback",key:"submit:feedback",type:r.k.POST,data:Object.assign(Object.assign({},e),t)}}}},52167:(e,t,n)=>{n.d(t,{m:()=>l});var r=n(53301),a=n.n(r),i=n(28046),o=n(19808),c=n(86613);function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var l={getUserInfo:function(e,t){return{id:e.id,username:e.username,email:e.email,userType:e.role===c.i.Admin?"Admin":"Staff",customerId:e.customerId,cvcId:t.crmId,customerName:t.name,instanceRegion:e.instanceRegion,contentRegion:e.contentRegion,firstName:e.givenName,lastName:e.familyName}},mapInstanceRegionToTag:function(e){switch(e){case o.b.AU:return"au";case o.b.NZ:return"nz";case o.b.UK:return"uk";case o.b.US:return"us"}},getTags:function(e,t,n,r){var a,i=[t].concat(function(e){if(Array.isArray(e))return s(e)}(a=r)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(a)||function(e,t){if(e){if("string"==typeof e)return s(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?s(e,t):void 0}}(a)||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.")}());i.push(n?"student":"staff"),e.role===c.i.Admin&&i.push("administrator");var o=l.mapInstanceRegionToTag(e.instanceRegion);return o&&i.push(o),i},categorizeFiles:function(e){return e.reduce((function(e,t){var n=t.get("fileInfo");return a().isValidFile(t.get("file"),i.l.VIDEO)?e.videoUrls.push(null==n?void 0:n.url):e.imageUrls.push(null==n?void 0:n.url),e}),{imageUrls:[],videoUrls:[]})}}},16741:(e,t,n)=>{n.r(t),n.d(t,{CuratedDiscoverView:()=>re});var r=n(32735),a=n(39202),i=n(23481),o=n(57900),c=n(20354),s=n(2948),l=n(49985),u=n(65858),d=n(75896),p=n(3278),f=n(32624),m=n(16714),h=n(40424),v=n(21366),g=n(23232),y=n(83345),b=n(76177),w=n(35223),L="subjects.discoverDashboardEmptyState",E=i.T.encloseNamespace(L);function T(e){var t,n,a=(null===(t=e.dashboard)||void 0===t?void 0:t.status)===h.GL.Archived;return r.createElement(g.u,null,r.createElement(g.u.Image,{src:e.imageUrl,altText:E("info")}),r.createElement(g.u.Heading,null,r.createElement(y.x,{namespace:L,phrase:"heading"})),r.createElement(g.u.Info,null,r.createElement(y.x,{namespace:L,phrase:"info"})),r.createElement(b.u,{title:a?i.T.getPhrase(L,"archivedCtaTooltip"):"",spanHack:!0},r.createElement(g.u.Cta,{text:i.T.getPhrase(L,"add"),appLink:null===(n=e.addWidgetApplink)||void 0===n?void 0:n.call(e),className:"btn btn-dark",icon:w.vn.Plus,disabled:a})))}function S(e){var t,n,a=d.m.sortBy(null===(t=e.dashboard)||void 0===t?void 0:t.widgets,"index");function i(t,n,r){var a=v.S.getWidgetParams(n,r,v.S.getDashboardTargetType(e.dashboard));return e.getWidgetContentRequest(t,a,r,e.presentation)}var o=e.isReadonly&&!(null==a?void 0:a.length);return r.createElement(r.Fragment,null,r.createElement(p.z,{type:null===(n=e.dashboard)||void 0===n?void 0:n.userType,appLinks:e.headerAppLinks,hasStudentExperience:e.hasPermissions(m.C.StudentExperience),showCalendar:e.showCalendar,active:"forYou"}),a.map((function(t,n){return r.createElement(f.L,{key:t.id,id:t.id,imageCdnUrl:e.imageCdnUrl,getContentRequest:i,audiences:e.audiences,name:t.name,description:t.description,templateId:t.templateId,metadata:t.metadata,presentation:e.presentation,setFavourite:e.setFavourite,canFavourite:e.canFavourite,resourceThumbnailFallbackImageUrl:e.resourceThumbnailFallbackImageUrl,preferences:t.preferences,appLinks:e.widgetAppLinks,isScrollToTargetWidget:(null==e?void 0:e.scrollToWidgetId)===t.id,widgetTypeId:t.widgetId,hasPermissions:e.hasPermissions,hasLocalPermissions:e.hasLocalPermissions,onSubmitFeedback:e.onSubmitFeedback,updatePreferences:e.updatePreferences,yearGroups:e.yearGroups,lazyLoad:e.lazyLoad,dashboardTarget:h.ku.Discover,widgetIndex:n,jobTitle:e.jobTitle,isPreviewing:e.isReadonly,imageUrls:e.imageUrls,settings:e.settings,isPlugin:e.isPlugin,availablePresentations:e.availablePresentations})})),o&&r.createElement(T,{dashboard:e.dashboard,isReadonly:e.isReadonly,imageUrl:e.emptyImageUrl,addWidgetApplink:e.widgetAppLinks.widgetWizard}))}var A=n(38143),k=n(17101),O=n(72639),N=n(12754),C=n(39151),x=n(1666),P=n(80889),I=n(7198),U=n(98064),D=n(61699),F=n(31949),R=n(22902),j=n(79612),_=n(37802),G=n(69454),B=n(52167),M=n(76753),W=n(73417),H=n(99742),V=n(51855),Z=n(27638),Y=n(86698),z=n(85369),q=n(23737),$=n(33192),K=n(48688),J=n(27051);function Q(e){return Q="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},Q(e)}function X(){X=function(){return t};var e,t={},n=Object.prototype,r=n.hasOwnProperty,a=Object.defineProperty||function(e,t,n){e[t]=n.value},i="function"==typeof Symbol?Symbol:{},o=i.iterator||"@@iterator",c=i.asyncIterator||"@@asyncIterator",s=i.toStringTag||"@@toStringTag";function l(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{l({},"")}catch(e){l=function(e,t,n){return e[t]=n}}function u(e,t,n,r){var i=t&&t.prototype instanceof g?t:g,o=Object.create(i.prototype),c=new x(r||[]);return a(o,"_invoke",{value:k(e,n,c)}),o}function d(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}t.wrap=u;var p="suspendedStart",f="suspendedYield",m="executing",h="completed",v={};function g(){}function y(){}function b(){}var w={};l(w,o,(function(){return this}));var L=Object.getPrototypeOf,E=L&&L(L(P([])));E&&E!==n&&r.call(E,o)&&(w=E);var T=b.prototype=g.prototype=Object.create(w);function S(e){["next","throw","return"].forEach((function(t){l(e,t,(function(e){return this._invoke(t,e)}))}))}function A(e,t){function n(a,i,o,c){var s=d(e[a],e,i);if("throw"!==s.type){var l=s.arg,u=l.value;return u&&"object"==Q(u)&&r.call(u,"__await")?t.resolve(u.__await).then((function(e){n("next",e,o,c)}),(function(e){n("throw",e,o,c)})):t.resolve(u).then((function(e){l.value=e,o(l)}),(function(e){return n("throw",e,o,c)}))}c(s.arg)}var i;a(this,"_invoke",{value:function(e,r){function a(){return new t((function(t,a){n(e,r,t,a)}))}return i=i?i.then(a,a):a()}})}function k(t,n,r){var a=p;return function(i,o){if(a===m)throw Error("Generator is already running");if(a===h){if("throw"===i)throw o;return{value:e,done:!0}}for(r.method=i,r.arg=o;;){var c=r.delegate;if(c){var s=O(c,r);if(s){if(s===v)continue;return s}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(a===p)throw a=h,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);a=m;var l=d(t,n,r);if("normal"===l.type){if(a=r.done?h:f,l.arg===v)continue;return{value:l.arg,done:r.done}}"throw"===l.type&&(a=h,r.method="throw",r.arg=l.arg)}}}function O(t,n){var r=n.method,a=t.iterator[r];if(a===e)return n.delegate=null,"throw"===r&&t.iterator.return&&(n.method="return",n.arg=e,O(t,n),"throw"===n.method)||"return"!==r&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+r+"' method")),v;var i=d(a,t.iterator,n.arg);if("throw"===i.type)return n.method="throw",n.arg=i.arg,n.delegate=null,v;var o=i.arg;return o?o.done?(n[t.resultName]=o.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,v):o:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,v)}function N(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function C(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function x(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(N,this),this.reset(!0)}function P(t){if(t||""===t){var n=t[o];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var a=-1,i=function n(){for(;++a<t.length;)if(r.call(t,a))return n.value=t[a],n.done=!1,n;return n.value=e,n.done=!0,n};return i.next=i}}throw new TypeError(Q(t)+" is not iterable")}return y.prototype=b,a(T,"constructor",{value:b,configurable:!0}),a(b,"constructor",{value:y,configurable:!0}),y.displayName=l(b,s,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===y||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,b):(e.__proto__=b,l(e,s,"GeneratorFunction")),e.prototype=Object.create(T),e},t.awrap=function(e){return{__await:e}},S(A.prototype),l(A.prototype,c,(function(){return this})),t.AsyncIterator=A,t.async=function(e,n,r,a,i){void 0===i&&(i=Promise);var o=new A(u(e,n,r,a),i);return t.isGeneratorFunction(n)?o:o.next().then((function(e){return e.done?e.value:o.next()}))},S(T),l(T,s,"Generator"),l(T,o,(function(){return this})),l(T,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),n=[];for(var r in t)n.push(r);return n.reverse(),function e(){for(;n.length;){var r=n.pop();if(r in t)return e.value=r,e.done=!1,e}return e.done=!0,e}},t.values=P,x.prototype={constructor:x,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(C),!t)for(var n in this)"t"===n.charAt(0)&&r.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var n=this;function a(r,a){return c.type="throw",c.arg=t,n.next=r,a&&(n.method="next",n.arg=e),!!a}for(var i=this.tryEntries.length-1;i>=0;--i){var o=this.tryEntries[i],c=o.completion;if("root"===o.tryLoc)return a("end");if(o.tryLoc<=this.prev){var s=r.call(o,"catchLoc"),l=r.call(o,"finallyLoc");if(s&&l){if(this.prev<o.catchLoc)return a(o.catchLoc,!0);if(this.prev<o.finallyLoc)return a(o.finallyLoc)}else if(s){if(this.prev<o.catchLoc)return a(o.catchLoc,!0)}else{if(!l)throw Error("try statement without catch or finally");if(this.prev<o.finallyLoc)return a(o.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var a=this.tryEntries[n];if(a.tryLoc<=this.prev&&r.call(a,"finallyLoc")&&this.prev<a.finallyLoc){var i=a;break}}i&&("break"===e||"continue"===e)&&i.tryLoc<=t&&t<=i.finallyLoc&&(i=null);var o=i?i.completion:{};return o.type=e,o.arg=t,i?(this.method="next",this.next=i.finallyLoc,v):this.complete(o)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),v},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),C(n),v}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var a=r.arg;C(n)}return a}}throw Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:P(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),v}},t}function ee(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var te=function(e,t,n,r){return new(n||(n=Promise))((function(a,i){function o(e){try{s(r.next(e))}catch(e){i(e)}}function c(e){try{s(r.throw(e))}catch(e){i(e)}}function s(e){var t;e.done?a(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,c)}s((r=r.apply(e,t||[])).next())}))},ne=i.T.encloseNamespace("dashboard.dashboard");function re(e){var t,n,i,d,p,f,v,g,y=c.a.useBasicFetch(C.L.config()),b=c.a.useBasicFetch(F.N.currentUser()),w=c.a.useBasicFetch((null===(t=b.data)||void 0===t?void 0:t.isAuthenticated)&&F.N.user(b.data.id)),L=(0,R.T)(),E=L.hasLocalPermissions,T=L.hasPermissions,Q=(0,V.G)().isPlugin,re=c.a.useBasicFetch(E(m.E.ManageDiscoverPreferences)&&b.data&&x.h.customer(b.data.customerId)),ae=c.a.useBasicFetch((null===(n=b.data)||void 0===n?void 0:n.isAuthenticated)&&x.h.yearGroups(b.data.customerId)),ie=c.a.useBasicFetch((null===(i=b.data)||void 0===i?void 0:i.isAuthenticated)&&U.D.libraries()),oe=(0,Y.y)().availablePresentations,ce=(0,q.y)({targetType:h.ku.Discover,queryParams:e.queryParams,presentationSlug:e.presentationSlug}),se=ce.dashboard,le=ce.presentation,ue=ce.audiences,de=c.a.useGetFetchAsync(),pe=(0,_.r)(null),fe=(0,Z.u)(u.LZ.Dashboard),me=fe.setFavourite,he=fe.canFavourite,ve=(v=(0,s.D)(A.g.AUDIENCE_FILTER,void 0,{storage:o.Z1.SessionStorage}),g=1,function(e){if(Array.isArray(e))return e}(v)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i,o,c=[],s=!0,l=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(r=i.call(n)).done)&&(c.push(r.value),c.length!==t);s=!0);}catch(e){l=!0,a=e}finally{try{if(!s&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(l)throw a}}return c}}(v,g)||function(e,t){if(e){if("string"==typeof e)return ee(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)?ee(e,t):void 0}}(v,g)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}())[0],ge=(0,J.E)(G.T.getAudienceParams(ve)),ye=function(e){return+O.p[null==e?void 0:e.learningLevel]===O.p.Level_1?"VariantOne":"VariantTwo"}(le);(0,j.M)(M.CG.getDiscoverMetadata({content:le,phraseContext:{phraseHandler:ne,titlePhrase:"pageTitle".concat(ye),descriptionPhrase:"pageDescription".concat(ye)},canonicalLink:$.f.getCanonicalLink(),allowIndexing:$.f.allowIndexing(),hrefLang:$.f.getStaticRouteHrefLang(null==le?void 0:le.learningLevel,ge.discover)}));var be=(0,z.N)().showCalendar;return r.createElement("div",{className:"bg-white px-4"},r.createElement(W.T,null),r.createElement(S,{currentUser:b.data,dashboard:se.data,widgetAppLinks:ge,headerAppLinks:(0,J.u)(),presentation:le,imageCdnUrl:y.data.imageCdnUrl,resourceThumbnailFallbackImageUrl:H.W.Fallbacks.RESOURCE_THUMBNAIL,getWidgetContentRequest:function(){for(var e=K.g.hasTwig(ie.data,b.data),t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return P._.discoverWidgetContent.apply(P._,[e].concat(n))},setFavourite:me,audiences:ue.data,canFavourite:he,updatePreferences:function(e,t,n,r){return te(this,void 0,void 0,X().mark((function t(){var a,i;return X().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(a=r.filter((function(e){return!e.hidden&&n.find((function(t){return t.id===e.id})).hidden})),i=r.filter((function(e){return!!e.hidden&&!n.find((function(t){return t.id===e.id})).hidden})),!(null==a?void 0:a.length)){t.next=5;break}return t.next=5,de(D.o.followSubjects(a.map((function(e){return e.id}))));case 5:if(!(null==i?void 0:i.length)){t.next=8;break}return t.next=8,de(D.o.unfollowSubjects(i.map((function(e){return e.id}))));case 8:return t.abrupt("return",de(P._.updateWidgetPreferences(e,r.map((function(e){return{id:e.id,index:e.index}})),b.data)));case 9:case"end":return t.stop()}}),t)})))},hasPermissions:T,hasLocalPermissions:E,onSubmitFeedback:T(m.C.CanSubmitFeedback)&&function(e){return te(this,void 0,void 0,X().mark((function t(){var n;return X().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,de(I.f.submitFeedback({type:k.n.Footer,user:B.m.getUserInfo(b.data,re.data),tags:B.m.getTags(b.data,N.x.Primary,T(m.C.StudentExperience),["discover","in product feedback"])},{reaction:e.type,feedback:e.content,location:"Discover Footer",presentationName:le.description,presentationId:le.id,dashboardName:se.data.name,dashboardId:se.data.id,currentPageUrl:a.Ab.GetCurrentUrl()}));case 2:return n=t.sent,l.k.logUserAction({feedbackType:e.type,content:e.content,presentationId:le.id,dashboardId:se.data.id},{actionType:u.Vw.Submit,location:u.LZ.DiscoverFooter,entity:u.py.Feedback,workflowPhase:u.eu.Complete}),t.abrupt("return",n);case 5:case"end":return t.stop()}}),t)})))},yearGroups:ae.data,lazyLoad:!$.f.isBot(),showCalendar:be,jobTitle:null===(f=null===(p=null===(d=w.data)||void 0===d?void 0:d.userProfile)||void 0===p?void 0:p.metadata)||void 0===f?void 0:f.jobTitle,imageUrls:{onboardingAdminBackgroundFull:H.W.OnboardingV2.Widget.ADMIN_BACKGROUND_FULL,onboardingAdminBackground:H.W.OnboardingV2.Widget.ADMIN_BACKGROUND,onboardingTeacherBackground:H.W.OnboardingV2.Widget.TEACHER_BACKGROUND},settings:pe,isPlugin:Q,availablePresentations:oe}))}},27051:(e,t,n)=>{n.d(t,{E:()=>m,u:()=>h});var r=n(75896),a=n(28400),i=n(17475),o=n(183),c=n(14070),s=n(97291),l=n(34181),u=n(22490),d=n(67963),p=n(82431),f="classification-latest-releases";function m(e){return{classification:function(t){return l.L.getAppLink(t,e||{})},videoType:function(e,t){return u.W.getAppLink(e,Object.assign(Object.assign({},t),{context:o.Q.Widget}))},series:p.j.getSeriesAppLink,subText:function(e){return p.j.getSeriesAppLink(e.series)},playlist:function(e){return{application:s.O.PLAYLISTS,action:c.e.Playlists.PLAYLIST,args:[e.id,a.m.slugify(e.name)]}},latestReleases:function(){return{application:s.O.CONTENT_UPDATES,action:c.e.ContentUpdates.CONTENT_UPDATES}},allTopics:function(){return{application:s.O.SUBJECT,action:c.e.Subjects.CLASSIFICATION_ALL}},classificationLatestReleases:function(e){return e.id===f?{application:s.O.CONTENT_UPDATES,action:c.e.ContentUpdates.CONTENT_UPDATES}:{application:s.O.CONTENT_UPDATES,action:c.e.ContentUpdates.CLASSIFICATION_UPDATE,args:[e.id,a.m.slugify(e.name)]}},widgetVideoList:function(e,t){return{application:s.O.DASHBOARD,action:c.e.Dashboard.DASHBOARD,args:[e,a.m.slugify(t)]}},watchHistory:function(){return{application:s.O.WATCH_HISTORY,action:c.e.WatchHistory.HOME}},rating:function(e,t){return{application:s.O.SEARCH,action:c.e.Search.HOME,params:{moviesAndTv:!0,rating:i.S.getFrontendParamValue([r.m.first(t),e])}}},company:function(e){return{application:s.O.MOVIES_AND_TV,action:c.e.MoviesAndTv.COMPANY_DASHBOARD,args:[e.id,a.m.slugify(e.name)]}},discover:function(){return{application:s.O.DASHBOARD,action:c.e.Dashboard.HOME}},calendar:function(){return{application:s.O.CALENDAR,action:c.e.Calendar.CALENDAR}},calendarMonth:function(e,t){var n={application:s.O.CALENDAR,action:c.e.Calendar.CALENDAR_MONTH,args:[e.toLowerCase()]};return t&&(n.params={year:t}),n},onboardingStep:function(e){return(0,d.u)()[e]},onboardingAppLinks:function(){return(0,d.u)()},classroomGuide:u.W.getClassroomGuideAppLink,interactiveGuidance:u.W.getInteractiveGuidanceAppLink,resourceGuidance:u.W.getResourceGuidanceAppLink}}function h(){return{forYou:{application:s.O.DASHBOARD,action:c.e.Dashboard.HOME},whatsNew:{application:s.O.CONTENT_UPDATES,action:c.e.ContentUpdates.CONTENT_UPDATES},calendar:{application:s.O.CALENDAR,action:c.e.Calendar.CALENDAR}}}},73417:(e,t,n)=>{n.d(t,{T:()=>u});var r=n(32735),a=n(11607),i=n(83914),o=n(83345),c=n(87348),s=n(35223),l="shared.upgradeFeedbackBanner";function u(){var e=(0,c.Q)(),t=e.showFeedbackBanner,n=e.dismissFeedbackBanner;return t?r.createElement("div",{className:"alert bg-light-blue p-2 rounded text-info fw-semibold d-flex justify-content-between align-items-center"},r.createElement(o.x,{namespace:l,phrase:"message",options:{url:"https://www.clickvieweducation.com/en-au/blog/product/exchange-tv-new-look"}}),r.createElement(a.L,{onClick:n},r.createElement(i.x,{svgName:s.vn.Close,className:"ms-2 svg-container"}))):r.createElement(r.Fragment,null)}},85369:(e,t,n)=>{n.d(t,{N:()=>g});var r=n(32735),a=n(35242),i=n(20354),o=n(27022),c=n(72639),s=n(31949),l=n(37802),u=n(87114),d=n(86698);function p(e){return p="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},p(e)}function f(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i,o,c=[],s=!0,l=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(r=i.call(n)).done)&&(c.push(r.value),c.length!==t);s=!0);}catch(e){l=!0,a=e}finally{try{if(!s&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(l)throw a}}return c}}(e,t)||function(e,t){if(e){if("string"==typeof e)return m(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?m(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function m(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function h(e,t,n){return(t=function(e){var t=function(e,t){if("object"!=p(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,"string");if("object"!=p(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==p(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var v=h(h(h(h(h(h({},o.t.AU,[c.p.Level_1]),o.t.US,[c.p.Level_1]),o.t.UK,[c.p.Level_1]),o.t.SCOT,[c.p.Level_1]),o.t.NZ,[]),o.t.GLOBAL,[]);function g(){var e,t=(0,l.r)(null),n=t.hasSpecialEventCalendar,o=t.isLoadingSettings,c=(0,d.y)({redirectOnError:!0}).activePresentation,p=i.a.useBasicFetch(s.N.currentUser()),m=v[null===(e=p.data)||void 0===e?void 0:e.contentRegion],h=u.i.getMappedPresentationLevel(null==c?void 0:c.learningLevel),g=!(null==m?void 0:m.find((function(e){return e.toString()===(null==h?void 0:h.toString())}))),y=!o&&!n,b=f(r.useState(!y&&!g),2),w=b[0],L=b[1],E=f(r.useState(o||!(null==c?void 0:c.id)),2),T=E[0],S=E[1];return r.useEffect((function(){y||g?L(!1):T||L(!0),S(o||!(null==c?void 0:c.id))}),[n,null==c?void 0:c.id,T]),a.h.isDevelopment?{showCalendar:!0,isLoading:!1}:{showCalendar:w,isLoading:T}}},87432:(e,t,n)=>{n.d(t,{Z:()=>r});const r={pillTabSelector:"Hdi6o",tab:"RvNxr",minWidth:"GHSz9",radiusSmall:"VhJJa",tabLink:"WFyvo"}}}]);
|
|
3
|
+
//# sourceMappingURL=6741-fe09fea334-lite.chunk.js.map
|
package/dist/scripts/{6741-1c125dbc6c-lite.chunk.js.map → 6741-fe09fea334-lite.chunk.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scripts/6741-1c125dbc6c-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/apps/discover/components/header/discover-header.scss","file:///app/packages/libs/shared/src/apps/discover/components/header/DiscoverHeader.tsx","file:///app/packages/libs/shared/src/apps/upload/utils/FileExtensionsHelper.ts","file:///app/packages/libs/shared/src/components/pill-tab-selector/PillTabSelector.tsx","file:///app/packages/libs/shared/src/enums/FeedbackType.ts","file:///app/packages/libs/shared/src/flight-requests/FeedbackRequests.ts","file:///app/packages/libs/shared/src/utils/FeedbackFormHelper.ts","file:///app/packages/libs/shared/src/apps/discover/components/discover-dashboard/empty-state/DiscoverDashboardEmptyState.tsx","file:///app/packages/libs/shared/src/apps/discover/components/discover-dashboard/DiscoverDashboard.tsx","file:///app/packages/projects/lite/src/apps/dashboard/views/dashboard/CuratedDiscoverView.tsx","file:///app/packages/projects/lite/src/apps/dashboard/views/dashboard/DiscoverViewUtils.ts","file:///app/packages/projects/lite/src/shared/components/upgrade-feedback-banner/UpgradeFeedbackBanner.tsx","file:///app/packages/projects/lite/src/shared/hooks/useShowCalendar.ts","file:///app/packages/libs/shared/src/components/pill-tab-selector/pill-tab-selector.scss"],"sourcesContent":["// extracted by mini-css-extract-plugin\nexport default {\"pillTab\":\"bMJM0\"};","import React from 'react';\n\nimport { AppLinkHelper } from 'libs/common/backbone/core';\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EntityType, LocationContext, UserAction } from 'libs/analytics/interfaces';\n\nimport { PillTabSelector } from 'libs/shared/components/pill-tab-selector/PillTabSelector';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { DashboardUserType } from 'libs/shared/interfaces';\n\nimport styles from './discover-header.scss';\n\nconst namespace = 'discover.header';\n\nexport interface DiscoverHeaderAppLinks {\n forYou: Core.AppLink;\n whatsNew: Core.AppLink;\n calendar: Core.AppLink;\n}\n\ninterface DiscoverHeaderProps {\n type: DashboardUserType;\n hasStudentExperience?: boolean;\n appLinks?: DiscoverHeaderAppLinks;\n showCalendar: boolean;\n active: keyof DiscoverHeaderAppLinks;\n}\n\nexport function DiscoverHeader(props: DiscoverHeaderProps): JSX.Element {\n if (!props.type)\n return <></>;\n\n if (props.type === DashboardUserType.Learner || props.hasStudentExperience) {\n return (\n <div className='py-3'>\n <h1 className='h2 mb-0'>\n <Text namespace={namespace} phrase='heading' />\n </h1>\n </div>\n );\n }\n\n const tabs = [{\n name: LanguageService.getPhrase(namespace, 'forYou'),\n appLink: props.appLinks?.forYou,\n active: props.active === 'forYou',\n analyticsData: {\n name: LanguageService.getPhrase(namespace, 'forYou'),\n url: AppLinkHelper.getHref(props.appLinks?.forYou)\n },\n analyticsOptions: {\n actionType: UserAction.Click,\n entity: EntityType.Url,\n location: LocationContext.MagicTabs\n }\n }, {\n name: LanguageService.getPhrase(namespace, 'whatsNew'),\n appLink: props.appLinks?.whatsNew,\n active: props.active === 'whatsNew',\n analyticsData: {\n name: LanguageService.getPhrase(namespace, 'whatsNew'),\n url: AppLinkHelper.getHref(props.appLinks?.whatsNew)\n },\n analyticsOptions: {\n actionType: UserAction.Click,\n entity: EntityType.Url,\n location: LocationContext.MagicTabs\n }\n }];\n\n if (props.showCalendar) {\n tabs.push({\n name: LanguageService.getPhrase(namespace, 'calendar'),\n appLink: props.appLinks?.calendar,\n active: props.active === 'calendar',\n analyticsData: {\n name: LanguageService.getPhrase(namespace, 'calendar'),\n url: AppLinkHelper.getHref(props.appLinks?.calendar)\n },\n analyticsOptions: {\n actionType: UserAction.Click,\n entity: EntityType.Url,\n location: LocationContext.MagicTabs\n }\n });\n }\n\n return (\n <div className='py-3 text-center'>\n <PillTabSelector\n tabs={tabs}\n className={styles.pillTab}\n />\n </div>\n );\n}","import * as _ from 'underscore';\n\n/**\n * This are kept as separate variables for when we eventually need a single group of them.\n * For example when we add image upload support.\n */\n\nconst pdfExtensions = ['pdf'];\nconst docExtensions = [ 'doc', 'docx', 'dotx', 'dot', 'rtf', 'docm', 'odt' ];\nconst textExtensions = [ 'csv', 'txt' ];\nconst excelExtensions = [ 'xls', 'xlt', 'xlsx' ];\nconst imageExtensions = [ 'jpg', 'tif', 'png', 'bmp', 'gif', 'jpeg' ];\nconst videoMimeType = 'video/*';\nconst archiveExtensions = [ 'zip', 'rar' ];\nconst powerPointExtensions = [ 'ppt', 'pot', 'pps', 'pptx' ];\n\nconst subtitleExtensions = ['srt'];\n\nconst FileExtensions = {\n IMAGES: `.${imageExtensions.join(',.')}`,\n VIDEO: videoMimeType,\n MIXED_MEDIA: `.${imageExtensions.join(',.')},${videoMimeType}`,\n RESOURCES: `.${[\n ...docExtensions,\n ...excelExtensions,\n ...powerPointExtensions,\n ...pdfExtensions,\n ...textExtensions,\n ...imageExtensions,\n ...archiveExtensions\n ].join(',.')}`,\n SUBTITLES: `.${subtitleExtensions.join(',.')}`\n};\n\nconst FileExtensionHelper = {\n getResourceType(extension: string): string {\n const ext = extension.toLowerCase();\n\n if (_.contains(docExtensions, ext)) return 'document';\n if (_.contains(excelExtensions, ext)) return 'excel';\n if (_.contains(powerPointExtensions, ext)) return 'powerpoint';\n if (_.contains(pdfExtensions, ext)) return 'pdf';\n\n if (_.contains(textExtensions, ext)) return 'text';\n if (_.contains(imageExtensions, ext)) return 'image';\n if (_.contains(archiveExtensions, ext)) return 'archive';\n if (_.contains(subtitleExtensions, ext)) return 'subtitle';\n\n return '';\n }\n};\n\nexport { FileExtensions, FileExtensionHelper };","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","export enum FeedbackType {\n Other,\n SuggestImprovement,\n ReportBug,\n RequestVideo,\n RaiseIssue,\n GivePraise,\n Footer,\n RequestLivestream\n}","import { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\nimport { Flight } from 'libs/common/react/index';\n\nimport { FeedbackFormRequest } from 'libs/shared/interfaces/requests/FeedbackFormRequest';\n\nexport const FeedbackRequests = {\n submitFeedback(requestData: FeedbackFormRequest, formValues: Record<string, string>): Flight.Request {\n return {\n url: '{gateway}/v1/feedback',\n key: 'submit:feedback',\n type: HttpVerbs.POST,\n data: {\n ...requestData,\n ...formValues\n }\n };\n }\n};","import Dropzone from 'dropzone';\n\nimport { UploadItem } from 'libs/shared/apps/upload/services/UploadService';\nimport { FileExtensions } from 'libs/shared/apps/upload/utils/FileExtensionsHelper';\nimport { InstanceRegion } from 'libs/shared/enums/InstanceRegion';\nimport { ProductId } from 'libs/shared/enums/ProductId';\nimport { UserRole } from 'libs/shared/enums/UserRole';\nimport { CurrentUser, Customer } from 'libs/shared/interfaces';\nimport { FeedbackUserDetails } from 'libs/shared/interfaces/requests/FeedbackFormRequest';\n\nexport const FeedbackFormHelper = {\n getUserInfo: (\n currentUser: CurrentUser,\n customer: Customer\n ): FeedbackUserDetails => {\n return {\n id: currentUser.id,\n username: currentUser.username,\n email: currentUser.email,\n userType: currentUser.role === UserRole.Admin ? 'Admin' : 'Staff',\n customerId: currentUser.customerId,\n cvcId: customer.crmId,\n customerName: customer.name,\n instanceRegion: currentUser.instanceRegion,\n contentRegion: currentUser.contentRegion,\n firstName: currentUser.givenName,\n lastName: currentUser.familyName\n };\n },\n\n mapInstanceRegionToTag: (instanceRegion: InstanceRegion): string => {\n switch (instanceRegion) {\n case InstanceRegion.AU:\n return 'au';\n case InstanceRegion.NZ:\n return 'nz';\n case InstanceRegion.UK:\n return 'uk';\n case InstanceRegion.US:\n return 'us';\n }\n },\n\n getTags: (currentUser: CurrentUser, product: ProductId, hasStudentExperience: boolean, extraTags: string[]) => {\n const tags = [\n product,\n ...extraTags\n ];\n\n tags.push(hasStudentExperience ? 'student' : 'staff');\n \n if (currentUser.role === UserRole.Admin)\n tags.push('administrator');\n \n const regionTag = FeedbackFormHelper.mapInstanceRegionToTag(currentUser.instanceRegion);\n \n if (regionTag)\n tags.push(regionTag);\n\n return tags;\n },\n\n categorizeFiles(files: UploadItem[]) {\n return files.reduce((result, file) => {\n const fileInfo = file.get('fileInfo');\n if (Dropzone.isValidFile(file.get('file'), FileExtensions.VIDEO)) {\n result.videoUrls.push(fileInfo?.url);\n } else {\n result.imageUrls.push(fileInfo?.url);\n }\n return result;\n }, {\n imageUrls: [],\n videoUrls: []\n });\n }\n};","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { CuratedDashboard, DashboardStatus } from 'libs/shared/interfaces';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nconst namespace = 'subjects.discoverDashboardEmptyState';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\n\ninterface DiscoverDashboardEmptyStateProps {\n dashboard: CuratedDashboard;\n imageUrl: string;\n isReadonly: boolean;\n addWidgetApplink?: () => Core.AppLink;\n}\n\nexport function DiscoverDashboardEmptyState(props: DiscoverDashboardEmptyStateProps): JSX.Element {\n const isArchived = props.dashboard?.status === DashboardStatus.Archived;\n\n return (\n <EmptyState>\n <EmptyState.Image src={props.imageUrl} altText={getPhrase('info')} />\n <EmptyState.Heading>\n <Text namespace={namespace} phrase='heading' />\n </EmptyState.Heading>\n <EmptyState.Info>\n <Text namespace={namespace} phrase='info' />\n </EmptyState.Info>\n <Tooltip title={isArchived ? LanguageService.getPhrase(namespace, 'archivedCtaTooltip') : ''} spanHack>\n <EmptyState.Cta\n text={LanguageService.getPhrase(namespace, 'add')}\n appLink={props.addWidgetApplink?.()}\n className='btn btn-dark'\n icon={cvSvgLibrary.Plus}\n disabled={isArchived}\n />\n </Tooltip>\n </EmptyState>\n );\n}","import React from 'react';\n\nimport { Flight } from 'libs/common/flight';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { DiscoverHeader, DiscoverHeaderAppLinks } from 'libs/shared/apps/discover/components/header/DiscoverHeader';\nimport { JobTitles } from 'libs/shared/apps/sign-up/interfaces/JobTitles';\nimport { DashboardFeedbackData } from 'libs/shared/components/feedback-form/FeedbackForm';\nimport { WidgetContainerView } from 'libs/shared/components/widgets/curated-widgets/WidgetContainerView';\nimport { WidgetAppLinks, WidgetImageUrls } from 'libs/shared/components/widgets/curated-widgets/WidgetProps';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { WidgetTemplate } from 'libs/shared/enums/WidgetTemplate';\nimport { WidgetTypeId } from 'libs/shared/enums/WidgetTypeId';\nimport { HasLocalPermissionsFunc, HasPermissionsFunc } from 'libs/shared/hooks/usePermissions';\nimport { SettingsHash } from 'libs/shared/hooks/useSettings';\nimport { CanFavouriteFunc, CuratedDashboard, CuratedWidgetQueryParams, CurrentUser, DashboardTargetType, FavouriteFunc, Presentation, PresentationAudience, WidgetPreference, YearGroup } from 'libs/shared/interfaces';\nimport { CuratedDashboardHelper } from 'libs/shared/utils/DashboardHelper';\n\nimport { DiscoverDashboardEmptyState } from './empty-state/DiscoverDashboardEmptyState';\n\ninterface DiscoverDashboardProps {\n dashboard: CuratedDashboard;\n getWidgetContentRequest: (\n id: string,\n params: CuratedWidgetQueryParams,\n widgetTemplate: WidgetTemplate,\n presentation: Presentation\n ) => Flight.Request;\n imageCdnUrl: string;\n currentUser: CurrentUser;\n audiences: PresentationAudience[];\n hasPermissions: HasPermissionsFunc;\n hasLocalPermissions: HasLocalPermissionsFunc;\n resourceThumbnailFallbackImageUrl: string;\n emptyImageUrl?: string;\n presentation: Presentation;\n setFavourite?: FavouriteFunc;\n canFavourite?: CanFavouriteFunc;\n widgetAppLinks?: WidgetAppLinks;\n headerAppLinks?: DiscoverHeaderAppLinks;\n scrollToWidgetId?: string;\n updatePreferences?: (\n widgetId: string,\n widgetTypeId: WidgetTypeId,\n oldPreferences: WidgetPreference[],\n newPreferences: WidgetPreference[]\n ) => Promise<void>;\n onSubmitFeedback?: (feedback: DashboardFeedbackData) => Promise<void>;\n isReadonly?: boolean;\n yearGroups?: YearGroup[];\n lazyLoad?: boolean;\n showCalendar: boolean;\n jobTitle: JobTitles;\n imageUrls: WidgetImageUrls\n settings: SettingsHash;\n isPlugin: boolean;\n availablePresentations: Presentation[];\n}\n\nexport function DiscoverDashboard(props: DiscoverDashboardProps): JSX.Element {\n const widgets = ArrayHelper.sortBy(props.dashboard?.widgets, 'index');\n\n function getWidgetContentRequest(id: string, widgetTypeId: WidgetTypeId, template: WidgetTemplate): Flight.Request {\n const params = CuratedDashboardHelper.getWidgetParams(\n widgetTypeId,\n template,\n CuratedDashboardHelper.getDashboardTargetType(props.dashboard)\n );\n\n return props.getWidgetContentRequest(id, params, template, props.presentation);\n }\n\n const showEmptyState = props.isReadonly && !widgets?.length;\n\n return (\n <>\n <DiscoverHeader\n type={props.dashboard?.userType}\n appLinks={props.headerAppLinks}\n hasStudentExperience={props.hasPermissions(PermissionName.StudentExperience)}\n showCalendar={props.showCalendar}\n active='forYou'\n />\n {widgets.map((widget, idx) => {\n return (\n <WidgetContainerView\n key={widget.id}\n id={widget.id}\n imageCdnUrl={props.imageCdnUrl}\n getContentRequest={getWidgetContentRequest}\n audiences={props.audiences}\n name={widget.name}\n description={widget.description}\n templateId={widget.templateId}\n metadata={widget.metadata}\n presentation={props.presentation}\n setFavourite={props.setFavourite}\n canFavourite={props.canFavourite}\n resourceThumbnailFallbackImageUrl={props.resourceThumbnailFallbackImageUrl}\n preferences={widget.preferences}\n appLinks={props.widgetAppLinks}\n isScrollToTargetWidget={props?.scrollToWidgetId === widget.id}\n widgetTypeId={widget.widgetId}\n hasPermissions={props.hasPermissions}\n hasLocalPermissions={props.hasLocalPermissions}\n onSubmitFeedback={props.onSubmitFeedback}\n updatePreferences={props.updatePreferences}\n yearGroups={props.yearGroups}\n lazyLoad={props.lazyLoad}\n dashboardTarget={DashboardTargetType.Discover}\n widgetIndex={idx}\n jobTitle={props.jobTitle}\n isPreviewing={props.isReadonly}\n imageUrls={props.imageUrls}\n settings={props.settings}\n isPlugin={props.isPlugin}\n availablePresentations={props.availablePresentations}\n />\n );\n })}\n\n {showEmptyState && (\n <DiscoverDashboardEmptyState\n dashboard={props.dashboard}\n isReadonly={props.isReadonly}\n imageUrl={props.emptyImageUrl}\n addWidgetApplink={props.widgetAppLinks.widgetWizard}\n />\n )}\n </>\n );\n}","import React from 'react';\n\nimport { LocationUtils } from 'libs/common/backbone/core';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { StorageType } from 'libs/common/backbone/utils/LocalStorageHelper';\nimport { Flight } from 'libs/common/flight';\nimport { useViewModel } from 'libs/common/react/hooks/UseViewModel';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { EntityType, LocationContext, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { DiscoverDashboard } from 'libs/shared/apps/discover/components/discover-dashboard/DiscoverDashboard';\nimport { DashboardFeedbackData } from 'libs/shared/components/feedback-form/FeedbackForm';\nimport { SharedViewModelKeys } from 'libs/shared/constants/SharedViewModelKeys';\nimport { FeedbackType } from 'libs/shared/enums/FeedbackType';\nimport { LocalPermissionName, PermissionName } from 'libs/shared/enums/PermissionName';\nimport { PresentationLearningLevel } from 'libs/shared/enums/PresentationLearningLevel';\nimport { ProductId } from 'libs/shared/enums/ProductId';\nimport { WidgetTypeId } from 'libs/shared/enums/WidgetTypeId';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { CustomerRequests } from 'libs/shared/flight-requests/CustomerRequests';\nimport { DashboardRequests } from 'libs/shared/flight-requests/DashboardRequests';\nimport { FeedbackRequests } from 'libs/shared/flight-requests/FeedbackRequests';\nimport { LibraryRequests } from 'libs/shared/flight-requests/LibraryRequests';\nimport { PreferenceRequests } from 'libs/shared/flight-requests/PreferenceRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { CurrentUser, Customer, DashboardTargetType, Library, Presentation, PresentationAudience, User, WidgetPreference, YearGroup } from 'libs/shared/interfaces';\nimport { Config } from 'libs/shared/interfaces';\nimport { AudienceHelper } from 'libs/shared/utils/audience-helper/AudienceHelper';\nimport { FeedbackFormHelper } from 'libs/shared/utils/FeedbackFormHelper';\nimport { PageMetadataHelper } from 'libs/shared/utils/PageMetadataHelper';\n\nimport { UpgradeFeedbackBanner } from 'shared/components/upgrade-feedback-banner/UpgradeFeedbackBanner';\nimport { ImageUrls } from 'shared/constants/ImageUrls';\nimport { usePluginHelper } from 'shared/hooks/use-plugin-helper/usePluginHelper';\nimport { useLiteFavourites } from 'shared/hooks/useLiteFavourites';\nimport { usePresentation } from 'shared/hooks/usePresentation';\nimport { useShowCalendar } from 'shared/hooks/useShowCalendar';\nimport { DashboardViewQueryParams } from 'shared/interfaces/query-params/DashboardViewQueryParams';\nimport { useFetchCuratedDashboard } from 'shared/utils/DashboardHelper';\nimport { SeoHelper } from 'shared/utils/SeoHelper';\n\nimport { LibraryHelper } from 'apps/libraries/utils/LibraryHelper';\n\nimport { getDiscoverHeaderAppLinks, getDiscoverWidgetAppLinks } from './DiscoverViewUtils';\n\nconst namespace = 'dashboard.dashboard';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nfunction getPhraseVariant(presentation: Presentation): string {\n const learningLevel = PresentationLearningLevel[presentation?.learningLevel];\n\n return +learningLevel === PresentationLearningLevel.Level_1\n ? 'VariantOne'\n : 'VariantTwo';\n}\n\ninterface CuratedDiscoverViewProps {\n presentationSlug?: string;\n queryParams?: DashboardViewQueryParams;\n}\n\nexport function CuratedDiscoverView(props: CuratedDiscoverViewProps): JSX.Element {\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const user = Flight.useBasicFetch<User>(currentUser.data?.isAuthenticated && UserRequests.user(currentUser.data.id));\n const { hasLocalPermissions, hasPermissions } = usePermissions();\n const { isPlugin } = usePluginHelper();\n\n const customer = Flight.useBasicFetch<Customer>(\n hasLocalPermissions(LocalPermissionName.ManageDiscoverPreferences) &&\n currentUser.data &&\n CustomerRequests.customer(currentUser.data.customerId)\n );\n\n const yearGroups = Flight.useBasicFetch<YearGroup[]>(\n currentUser.data?.isAuthenticated\n && CustomerRequests.yearGroups(currentUser.data.customerId)\n );\n\n const libraries = Flight.useBasicFetch<Library[]>(\n currentUser.data?.isAuthenticated &&\n LibraryRequests.libraries()\n );\n\n const { availablePresentations } = usePresentation();\n\n const {\n dashboard,\n presentation,\n audiences\n } = useFetchCuratedDashboard({\n targetType: DashboardTargetType.Discover,\n queryParams: props.queryParams,\n presentationSlug: props.presentationSlug\n });\n\n const fetchAsync = Flight.useGetFetchAsync();\n const settings = useSettings(null);\n\n const { setFavourite, canFavourite } = useLiteFavourites(LocationContext.Dashboard);\n\n const [activeAudiences] = useViewModel<PresentationAudience[]>(\n SharedViewModelKeys.AUDIENCE_FILTER,\n undefined,\n { storage: StorageType.SessionStorage }\n );\n\n const widgetAppLinks = getDiscoverWidgetAppLinks(AudienceHelper.getAudienceParams(activeAudiences));\n\n const phraseVariant = getPhraseVariant(presentation);\n\n useSetPageMetadata(PageMetadataHelper.getDiscoverMetadata({\n content: presentation,\n phraseContext: {\n phraseHandler: getPhrase,\n titlePhrase: `pageTitle${phraseVariant}`,\n descriptionPhrase: `pageDescription${phraseVariant}`\n },\n canonicalLink: SeoHelper.getCanonicalLink(),\n allowIndexing: SeoHelper.allowIndexing(),\n hrefLang: SeoHelper.getStaticRouteHrefLang(\n presentation?.learningLevel,\n widgetAppLinks.discover\n )\n }));\n\n async function onSubmitFeedback(feedback: DashboardFeedbackData): Promise<void> {\n const promise = await fetchAsync<void>(FeedbackRequests.submitFeedback({\n type: FeedbackType.Footer,\n user: FeedbackFormHelper.getUserInfo(currentUser.data, customer.data),\n tags: FeedbackFormHelper.getTags(\n currentUser.data,\n ProductId.Primary,\n hasPermissions(PermissionName.StudentExperience),\n [ 'discover', 'in product feedback' ]\n )\n }, {\n reaction: feedback.type,\n feedback: feedback.content,\n location: 'Discover Footer',\n presentationName: presentation.description,\n presentationId: presentation.id,\n dashboardName: dashboard.data.name,\n dashboardId: dashboard.data.id,\n currentPageUrl: LocationUtils.GetCurrentUrl()\n }));\n\n AnalyticsHelper.logUserAction({\n feedbackType: feedback.type,\n content: feedback.content,\n presentationId: presentation.id,\n dashboardId: dashboard.data.id\n }, {\n actionType: UserAction.Submit,\n location: LocationContext.DiscoverFooter,\n entity: EntityType.Feedback,\n workflowPhase: WorkflowPhase.Complete\n });\n\n return promise;\n }\n\n async function updateWidgetPreferences(\n widgetId: string,\n widgetTypeId: WidgetTypeId,\n oldPreferences: WidgetPreference[],\n newPreferences: WidgetPreference[]\n ): Promise<void> {\n const addedSubjects = newPreferences.filter(p => {\n if (p.hidden)\n return false;\n\n const oldPreference = oldPreferences.find(o => o.id === p.id);\n\n return oldPreference.hidden;\n });\n const removedSubjects = newPreferences.filter(p => {\n if (!p.hidden)\n return false;\n \n const oldPreference = oldPreferences.find(o => o.id === p.id);\n\n return !oldPreference.hidden;\n });\n\n if (addedSubjects?.length)\n await fetchAsync<void>(PreferenceRequests.followSubjects(addedSubjects.map(s => s.id)));\n\n if (removedSubjects?.length)\n await fetchAsync<void>(PreferenceRequests.unfollowSubjects(removedSubjects.map(s => s.id)));\n\n return fetchAsync<void>(DashboardRequests.updateWidgetPreferences(\n widgetId,\n newPreferences.map(p => ({\n id: p.id,\n index: p.index\n })),\n currentUser.data\n ));\n }\n const { showCalendar } = useShowCalendar();\n\n return (\n <div className='bg-white px-4'>\n <UpgradeFeedbackBanner />\n <DiscoverDashboard\n currentUser={currentUser.data}\n dashboard={dashboard.data}\n widgetAppLinks={widgetAppLinks}\n headerAppLinks={getDiscoverHeaderAppLinks()}\n presentation={presentation}\n imageCdnUrl={config.data.imageCdnUrl}\n resourceThumbnailFallbackImageUrl={ImageUrls.Fallbacks.RESOURCE_THUMBNAIL}\n getWidgetContentRequest={(\n ...args: Parameters<typeof DashboardRequests.dashboardWidgetContent>\n ) => {\n const hasTwig = LibraryHelper.hasTwig(libraries.data, currentUser.data);\n\n return DashboardRequests.discoverWidgetContent(hasTwig, ...args);\n }}\n setFavourite={setFavourite}\n audiences={audiences.data}\n canFavourite={canFavourite}\n updatePreferences={updateWidgetPreferences}\n hasPermissions={hasPermissions}\n hasLocalPermissions={hasLocalPermissions}\n onSubmitFeedback={\n hasPermissions(PermissionName.CanSubmitFeedback) &&\n onSubmitFeedback\n }\n yearGroups={yearGroups.data}\n lazyLoad={!SeoHelper.isBot()}\n showCalendar={showCalendar}\n jobTitle={user.data?.userProfile?.metadata?.jobTitle}\n imageUrls={{\n onboardingAdminBackgroundFull: ImageUrls.OnboardingV2.Widget.ADMIN_BACKGROUND_FULL,\n onboardingAdminBackground: ImageUrls.OnboardingV2.Widget.ADMIN_BACKGROUND,\n onboardingTeacherBackground: ImageUrls.OnboardingV2.Widget.TEACHER_BACKGROUND\n }}\n settings={settings}\n isPlugin={isPlugin}\n availablePresentations={availablePresentations}\n />\n </div>\n );\n}","import { Core } from 'libs/common/backbone/index';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { DiscoverHeaderAppLinks } from 'libs/shared/apps/discover/components/header/DiscoverHeader';\nimport { OnboardingScreenId } from 'libs/shared/apps/onboarding/interfaces/OnboardingScreenId';\nimport { RatingFilterHelper } from 'libs/shared/apps/search/utils/RatingFilterHelper';\nimport { WidgetAppLinks } from 'libs/shared/components/widgets/curated-widgets/WidgetProps';\nimport { RelatedVideosContext } from 'libs/shared/enums/RelatedVideosContext';\nimport { Classification, Company, Playlist, Rating, Video, VideoTypes } from 'libs/shared/interfaces';\nimport { GetVideoAppLinkOptions } from 'libs/shared/interfaces/VideoAppLinkOptions';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { ClassificationAppLinkHelper } from 'shared/utils/ClassificationAppLinkHelper';\nimport { VideoAppLinkHelper } from 'shared/utils/VideoAppLinkHelper';\n\nimport { getOnboardingAppLinks } from 'apps/onboarding/utils/OnboardingAppLinkHelper';\nimport { SeriesAppLinkHelper } from 'apps/series/SeriesAppLinkHelper';\n\nconst CLASSIFICATION_LATEST_RELEASES = 'classification-latest-releases';\n\nexport function getDiscoverWidgetAppLinks(\n params: HashObject\n): WidgetAppLinks {\n return {\n classification: (classification?: Classification) =>\n ClassificationAppLinkHelper.getAppLink(classification, params || {}),\n\n videoType: (video: VideoTypes, opts: GetVideoAppLinkOptions) => (\n VideoAppLinkHelper.getAppLink(video, {\n ...opts,\n context: RelatedVideosContext.Widget\n })\n ),\n\n series: SeriesAppLinkHelper.getSeriesAppLink,\n\n subText: (video: Video) => SeriesAppLinkHelper.getSeriesAppLink(video.series),\n\n playlist: (playlist: Playlist) => ({\n application: AppChannels.PLAYLISTS,\n action: Actions.Playlists.PLAYLIST,\n args: [ playlist.id, TextHelper.slugify(playlist.name) ]\n }),\n \n latestReleases: () => ({\n application: AppChannels.CONTENT_UPDATES,\n action: Actions.ContentUpdates.CONTENT_UPDATES\n }),\n\n allTopics: () => ({\n application: AppChannels.SUBJECT,\n action: Actions.Subjects.CLASSIFICATION_ALL\n }),\n\n classificationLatestReleases: (classification: Classification) => {\n if (classification.id === CLASSIFICATION_LATEST_RELEASES)\n return {\n application: AppChannels.CONTENT_UPDATES,\n action: Actions.ContentUpdates.CONTENT_UPDATES\n };\n\n return {\n application: AppChannels.CONTENT_UPDATES,\n action: Actions.ContentUpdates.CLASSIFICATION_UPDATE,\n args: [ classification.id, TextHelper.slugify(classification.name) ]\n };\n },\n\n widgetVideoList: (widgetId: string, widgetName: string) => ({\n application: AppChannels.DASHBOARD,\n action: Actions.Dashboard.DASHBOARD,\n args: [ widgetId, TextHelper.slugify(widgetName) ]\n }),\n\n watchHistory: () => ({\n application: AppChannels.WATCH_HISTORY,\n action: Actions.WatchHistory.HOME\n }),\n\n rating: (rating: Rating, ratings: Rating[]) => ({\n application: AppChannels.SEARCH,\n action: Actions.Search.HOME,\n params: {\n moviesAndTv: true,\n rating: RatingFilterHelper.getFrontendParamValue([ ArrayHelper.first(ratings), rating ])\n }\n }),\n\n company: (company: Company) => ({\n application: AppChannels.MOVIES_AND_TV,\n action: Actions.MoviesAndTv.COMPANY_DASHBOARD,\n args: [ company.id, TextHelper.slugify(company.name) ]\n }),\n\n discover: () => ({\n application: AppChannels.DASHBOARD,\n action: Actions.Dashboard.HOME\n }),\n\n calendar: () => ({\n application: AppChannels.CALENDAR,\n action: Actions.Calendar.CALENDAR\n }),\n\n calendarMonth: (month: string, year?: string) => {\n const appLink: Core.AppLink = {\n application: AppChannels.CALENDAR,\n action: Actions.Calendar.CALENDAR_MONTH,\n args: [month.toLowerCase()]\n };\n\n if (year)\n appLink.params = { year };\n\n return appLink;\n },\n\n onboardingStep: (step: OnboardingScreenId) => {\n const appLinks = getOnboardingAppLinks();\n return appLinks[step];\n },\n\n onboardingAppLinks: () => {\n return getOnboardingAppLinks();\n },\n\n classroomGuide: VideoAppLinkHelper.getClassroomGuideAppLink,\n interactiveGuidance: VideoAppLinkHelper.getInteractiveGuidanceAppLink,\n resourceGuidance: VideoAppLinkHelper.getResourceGuidanceAppLink\n };\n}\n\nexport function getDiscoverHeaderAppLinks(): DiscoverHeaderAppLinks {\n return {\n forYou: {\n application: AppChannels.DASHBOARD,\n action: Actions.Dashboard.HOME\n },\n whatsNew: {\n application: AppChannels.CONTENT_UPDATES,\n action: Actions.ContentUpdates.CONTENT_UPDATES\n },\n calendar: {\n application: AppChannels.CALENDAR,\n action: Actions.Calendar.CALENDAR\n }\n };\n}","import React from 'react';\n\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { useLiteUpgrade } from 'libs/shared/hooks/UseLiteUpgrade';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nconst namespace = 'shared.upgradeFeedbackBanner';\n\nexport function UpgradeFeedbackBanner(): JSX.Element {\n const { showFeedbackBanner, dismissFeedbackBanner } = useLiteUpgrade();\n\n if (!showFeedbackBanner)\n return <></>;\n\n return (\n <div className='alert bg-light-blue p-2 rounded text-info fw-semibold d-flex justify-content-between align-items-center'>\n <Text\n namespace={namespace}\n phrase='message'\n options={{ url: 'https://www.clickvieweducation.com/en-au/blog/product/exchange-tv-new-look' }}\n />\n <DivButton\n onClick={dismissFeedbackBanner}\n >\n <SvgContainer\n svgName={cvSvgLibrary.Close}\n className='ms-2 svg-container'\n />\n </DivButton>\n </div>\n );\n}","import React from 'react';\n\nimport { EnvironmentVariables } from 'libs/common/backbone/services/EnvironmentVariables';\nimport { Flight } from 'libs/common/react/index';\n\nimport { ContentRegion } from 'libs/shared/enums/ContentRegion';\nimport { PresentationLearningLevel } from 'libs/shared/enums/PresentationLearningLevel';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { CurrentUser } from 'libs/shared/interfaces';\nimport { TopicsHelper } from 'libs/shared/utils/topics-helper/TopicsHelper';\n\nimport { usePresentation } from 'shared/hooks/usePresentation';\n\nconst ALLOWED_LEARNING_LEVELS_BY_REGION: Record<ContentRegion, PresentationLearningLevel[]> = {\n [ContentRegion.AU]: [\n // AU Primary Calendar\n PresentationLearningLevel.Level_1\n ],\n [ContentRegion.US]: [\n // US Elementary Calendar\n PresentationLearningLevel.Level_1\n ],\n [ContentRegion.UK]: [\n // UK Primary Calendar\n PresentationLearningLevel.Level_1\n ],\n [ContentRegion.SCOT]: [\n // Scotland Primary Calendar\n PresentationLearningLevel.Level_1\n ],\n [ContentRegion.NZ]: [],\n [ContentRegion.GLOBAL]: []\n};\n\nexport function useShowCalendar() {\n const { hasSpecialEventCalendar, isLoadingSettings } = useSettings(null);\n\n const {\n activePresentation\n } = usePresentation({ redirectOnError: true });\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n\n const allowedLearningLevels = ALLOWED_LEARNING_LEVELS_BY_REGION[currentUser.data?.contentRegion];\n const learningLevel = TopicsHelper.getMappedPresentationLevel(activePresentation?.learningLevel);\n const learningLevelCantAccess = !allowedLearningLevels?.find(l => {\n return l.toString() === (learningLevel as PresentationLearningLevel)?.toString();\n });\n\n const noSetting = !isLoadingSettings && !hasSpecialEventCalendar;\n\n const [ showCalendar, setShowCalendar ] = React.useState<boolean>(!noSetting && !learningLevelCantAccess);\n\n const [ isLoading, setIsLoading ] = React.useState(isLoadingSettings || !activePresentation?.id);\n\n React.useEffect(() => {\n if (noSetting || learningLevelCantAccess) {\n setShowCalendar(false);\n } else if (!isLoading) {\n setShowCalendar(true);\n }\n setIsLoading(isLoadingSettings || !activePresentation?.id);\n }, [ hasSpecialEventCalendar, activePresentation?.id, isLoading ]);\n\n if (EnvironmentVariables.isDevelopment)\n return { showCalendar: true, isLoading: false };\n\n return { showCalendar, isLoading };\n}","// extracted by mini-css-extract-plugin\nexport default {\"pillTabSelector\":\"Hdi6o\",\"tab\":\"RvNxr\",\"minWidth\":\"GHSz9\",\"radiusSmall\":\"VhJJa\",\"tabLink\":\"WFyvo\"};"],"names":["namespace","DiscoverHeader","props","type","hasStudentExperience","className","Text","phrase","tabs","name","LanguageService","appLink","appLinks","forYou","active","analyticsData","url","analyticsOptions","actionType","entity","location","whatsNew","showCalendar","push","calendar","PillTabSelector","pdfExtensions","docExtensions","textExtensions","excelExtensions","imageExtensions","videoMimeType","archiveExtensions","powerPointExtensions","subtitleExtensions","FileExtensions","IMAGES","join","VIDEO","MIXED_MEDIA","RESOURCES","SUBTITLES","FileExtensionHelper","getResourceType","extension","ext","toLowerCase","TabContents","tab","svgName","count","data","ref","containerRef","borderRadius","listClassName","map","index","key","onClick","onSelect","onSelectTab","defaultProps","FeedbackType","FeedbackRequests","submitFeedback","requestData","formValues","FeedbackFormHelper","getUserInfo","currentUser","customer","id","username","email","userType","role","customerId","cvcId","crmId","customerName","instanceRegion","contentRegion","firstName","givenName","lastName","familyName","mapInstanceRegionToTag","getTags","product","extraTags","tags","regionTag","categorizeFiles","files","reduce","result","file","fileInfo","get","videoUrls","imageUrls","getPhrase","DiscoverDashboardEmptyState","isArchived","dashboard","status","EmptyState","src","imageUrl","altText","Tooltip","title","spanHack","text","addWidgetApplink","icon","disabled","DiscoverDashboard","widgets","ArrayHelper","getWidgetContentRequest","widgetTypeId","template","params","presentation","showEmptyState","isReadonly","length","headerAppLinks","hasPermissions","PermissionName","widget","idx","WidgetContainerView","imageCdnUrl","getContentRequest","audiences","description","templateId","metadata","setFavourite","canFavourite","resourceThumbnailFallbackImageUrl","preferences","widgetAppLinks","isScrollToTargetWidget","scrollToWidgetId","widgetId","hasLocalPermissions","onSubmitFeedback","updatePreferences","yearGroups","lazyLoad","dashboardTarget","widgetIndex","jobTitle","isPreviewing","settings","isPlugin","availablePresentations","emptyImageUrl","widgetWizard","CuratedDiscoverView","config","ConfigRequests","UserRequests","user","isAuthenticated","usePermissions","usePluginHelper","CustomerRequests","libraries","LibraryRequests","usePresentation","targetType","queryParams","presentationSlug","fetchAsync","useSettings","useLiteFavourites","u","activeAudiences","SharedViewModelKeys","undefined","storage","AudienceHelper","phraseVariant","PresentationLearningLevel","learningLevel","getPhraseVariant","useSetPageMetadata","PageMetadataHelper","content","phraseContext","phraseHandler","titlePhrase","descriptionPhrase","canonicalLink","SeoHelper","allowIndexing","hrefLang","discover","useShowCalendar","UpgradeFeedbackBanner","ImageUrls","hasTwig","LibraryHelper","args","DashboardRequests","oldPreferences","newPreferences","addedSubjects","filter","p","hidden","find","o","removedSubjects","PreferenceRequests","s","feedback","ProductId","reaction","presentationName","presentationId","dashboardName","dashboardId","currentPageUrl","promise","AnalyticsHelper","feedbackType","workflowPhase","userProfile","onboardingAdminBackgroundFull","onboardingAdminBackground","onboardingTeacherBackground","CLASSIFICATION_LATEST_RELEASES","getDiscoverWidgetAppLinks","classification","videoType","video","opts","context","series","subText","playlist","application","action","latestReleases","allTopics","classificationLatestReleases","widgetVideoList","widgetName","watchHistory","rating","ratings","moviesAndTv","company","calendarMonth","month","year","onboardingStep","step","onboardingAppLinks","classroomGuide","interactiveGuidance","resourceGuidance","getDiscoverHeaderAppLinks","showFeedbackBanner","dismissFeedbackBanner","options","ALLOWED_LEARNING_LEVELS_BY_REGION","hasSpecialEventCalendar","isLoadingSettings","activePresentation","redirectOnError","allowedLearningLevels","learningLevelCantAccess","l","toString","noSetting","setShowCalendar","isLoading","setIsLoading"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"scripts/6741-fe09fea334-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/apps/discover/components/header/discover-header.scss","file:///app/packages/libs/shared/src/apps/discover/components/header/DiscoverHeader.tsx","file:///app/packages/libs/shared/src/apps/upload/utils/FileExtensionsHelper.ts","file:///app/packages/libs/shared/src/components/pill-tab-selector/PillTabSelector.tsx","file:///app/packages/libs/shared/src/enums/FeedbackType.ts","file:///app/packages/libs/shared/src/flight-requests/FeedbackRequests.ts","file:///app/packages/libs/shared/src/utils/FeedbackFormHelper.ts","file:///app/packages/libs/shared/src/apps/discover/components/discover-dashboard/empty-state/DiscoverDashboardEmptyState.tsx","file:///app/packages/libs/shared/src/apps/discover/components/discover-dashboard/DiscoverDashboard.tsx","file:///app/packages/projects/lite/src/apps/dashboard/views/dashboard/CuratedDiscoverView.tsx","file:///app/packages/projects/lite/src/apps/dashboard/views/dashboard/DiscoverViewUtils.ts","file:///app/packages/projects/lite/src/shared/components/upgrade-feedback-banner/UpgradeFeedbackBanner.tsx","file:///app/packages/projects/lite/src/shared/hooks/useShowCalendar.ts","file:///app/packages/libs/shared/src/components/pill-tab-selector/pill-tab-selector.scss"],"sourcesContent":["// extracted by mini-css-extract-plugin\nexport default {\"pillTab\":\"bMJM0\"};","import React from 'react';\n\nimport { AppLinkHelper } from 'libs/common/backbone/core';\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EntityType, LocationContext, UserAction } from 'libs/analytics/interfaces';\n\nimport { PillTabSelector } from 'libs/shared/components/pill-tab-selector/PillTabSelector';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { DashboardUserType } from 'libs/shared/interfaces';\n\nimport styles from './discover-header.scss';\n\nconst namespace = 'discover.header';\n\nexport interface DiscoverHeaderAppLinks {\n forYou: Core.AppLink;\n whatsNew: Core.AppLink;\n calendar: Core.AppLink;\n}\n\ninterface DiscoverHeaderProps {\n type: DashboardUserType;\n hasStudentExperience?: boolean;\n appLinks?: DiscoverHeaderAppLinks;\n showCalendar: boolean;\n active: keyof DiscoverHeaderAppLinks;\n}\n\nexport function DiscoverHeader(props: DiscoverHeaderProps): JSX.Element {\n if (!props.type)\n return <></>;\n\n if (props.type === DashboardUserType.Learner || props.hasStudentExperience) {\n return (\n <div className='py-3'>\n <h1 className='h2 mb-0'>\n <Text namespace={namespace} phrase='heading' />\n </h1>\n </div>\n );\n }\n\n const tabs = [{\n name: LanguageService.getPhrase(namespace, 'forYou'),\n appLink: props.appLinks?.forYou,\n active: props.active === 'forYou',\n analyticsData: {\n name: LanguageService.getPhrase(namespace, 'forYou'),\n url: AppLinkHelper.getHref(props.appLinks?.forYou)\n },\n analyticsOptions: {\n actionType: UserAction.Click,\n entity: EntityType.Url,\n location: LocationContext.MagicTabs\n }\n }, {\n name: LanguageService.getPhrase(namespace, 'whatsNew'),\n appLink: props.appLinks?.whatsNew,\n active: props.active === 'whatsNew',\n analyticsData: {\n name: LanguageService.getPhrase(namespace, 'whatsNew'),\n url: AppLinkHelper.getHref(props.appLinks?.whatsNew)\n },\n analyticsOptions: {\n actionType: UserAction.Click,\n entity: EntityType.Url,\n location: LocationContext.MagicTabs\n }\n }];\n\n if (props.showCalendar) {\n tabs.push({\n name: LanguageService.getPhrase(namespace, 'calendar'),\n appLink: props.appLinks?.calendar,\n active: props.active === 'calendar',\n analyticsData: {\n name: LanguageService.getPhrase(namespace, 'calendar'),\n url: AppLinkHelper.getHref(props.appLinks?.calendar)\n },\n analyticsOptions: {\n actionType: UserAction.Click,\n entity: EntityType.Url,\n location: LocationContext.MagicTabs\n }\n });\n }\n\n return (\n <div className='py-3 text-center'>\n <PillTabSelector\n tabs={tabs}\n className={styles.pillTab}\n />\n </div>\n );\n}","import * as _ from 'underscore';\n\n/**\n * This are kept as separate variables for when we eventually need a single group of them.\n * For example when we add image upload support.\n */\n\nconst pdfExtensions = ['pdf'];\nconst docExtensions = [ 'doc', 'docx', 'dotx', 'dot', 'rtf', 'docm', 'odt' ];\nconst textExtensions = [ 'csv', 'txt' ];\nconst excelExtensions = [ 'xls', 'xlt', 'xlsx' ];\nconst imageExtensions = [ 'jpg', 'tif', 'png', 'bmp', 'gif', 'jpeg' ];\nconst videoMimeType = 'video/*';\nconst archiveExtensions = [ 'zip', 'rar' ];\nconst powerPointExtensions = [ 'ppt', 'pot', 'pps', 'pptx' ];\n\nconst subtitleExtensions = ['srt'];\n\nconst FileExtensions = {\n IMAGES: `.${imageExtensions.join(',.')}`,\n VIDEO: videoMimeType,\n MIXED_MEDIA: `.${imageExtensions.join(',.')},${videoMimeType}`,\n RESOURCES: `.${[\n ...docExtensions,\n ...excelExtensions,\n ...powerPointExtensions,\n ...pdfExtensions,\n ...textExtensions,\n ...imageExtensions,\n ...archiveExtensions\n ].join(',.')}`,\n SUBTITLES: `.${subtitleExtensions.join(',.')}`\n};\n\nconst FileExtensionHelper = {\n getResourceType(extension: string): string {\n const ext = extension.toLowerCase();\n\n if (_.contains(docExtensions, ext)) return 'document';\n if (_.contains(excelExtensions, ext)) return 'excel';\n if (_.contains(powerPointExtensions, ext)) return 'powerpoint';\n if (_.contains(pdfExtensions, ext)) return 'pdf';\n\n if (_.contains(textExtensions, ext)) return 'text';\n if (_.contains(imageExtensions, ext)) return 'image';\n if (_.contains(archiveExtensions, ext)) return 'archive';\n if (_.contains(subtitleExtensions, ext)) return 'subtitle';\n\n return '';\n }\n};\n\nexport { FileExtensions, FileExtensionHelper };","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","export enum FeedbackType {\n Other,\n SuggestImprovement,\n ReportBug,\n RequestVideo,\n RaiseIssue,\n GivePraise,\n Footer,\n RequestLivestream\n}","import { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\nimport { Flight } from 'libs/common/react/index';\n\nimport { FeedbackFormRequest } from 'libs/shared/interfaces/requests/FeedbackFormRequest';\n\nexport const FeedbackRequests = {\n submitFeedback(requestData: FeedbackFormRequest, formValues: Record<string, string>): Flight.Request {\n return {\n url: '{gateway}/v1/feedback',\n key: 'submit:feedback',\n type: HttpVerbs.POST,\n data: {\n ...requestData,\n ...formValues\n }\n };\n }\n};","import Dropzone from 'dropzone';\n\nimport { UploadItem } from 'libs/shared/apps/upload/services/UploadService';\nimport { FileExtensions } from 'libs/shared/apps/upload/utils/FileExtensionsHelper';\nimport { InstanceRegion } from 'libs/shared/enums/InstanceRegion';\nimport { ProductId } from 'libs/shared/enums/ProductId';\nimport { UserRole } from 'libs/shared/enums/UserRole';\nimport { CurrentUser, Customer } from 'libs/shared/interfaces';\nimport { FeedbackUserDetails } from 'libs/shared/interfaces/requests/FeedbackFormRequest';\n\nexport const FeedbackFormHelper = {\n getUserInfo: (\n currentUser: CurrentUser,\n customer: Customer\n ): FeedbackUserDetails => {\n return {\n id: currentUser.id,\n username: currentUser.username,\n email: currentUser.email,\n userType: currentUser.role === UserRole.Admin ? 'Admin' : 'Staff',\n customerId: currentUser.customerId,\n cvcId: customer.crmId,\n customerName: customer.name,\n instanceRegion: currentUser.instanceRegion,\n contentRegion: currentUser.contentRegion,\n firstName: currentUser.givenName,\n lastName: currentUser.familyName\n };\n },\n\n mapInstanceRegionToTag: (instanceRegion: InstanceRegion): string => {\n switch (instanceRegion) {\n case InstanceRegion.AU:\n return 'au';\n case InstanceRegion.NZ:\n return 'nz';\n case InstanceRegion.UK:\n return 'uk';\n case InstanceRegion.US:\n return 'us';\n }\n },\n\n getTags: (currentUser: CurrentUser, product: ProductId, hasStudentExperience: boolean, extraTags: string[]) => {\n const tags = [\n product,\n ...extraTags\n ];\n\n tags.push(hasStudentExperience ? 'student' : 'staff');\n \n if (currentUser.role === UserRole.Admin)\n tags.push('administrator');\n \n const regionTag = FeedbackFormHelper.mapInstanceRegionToTag(currentUser.instanceRegion);\n \n if (regionTag)\n tags.push(regionTag);\n\n return tags;\n },\n\n categorizeFiles(files: UploadItem[]) {\n return files.reduce((result, file) => {\n const fileInfo = file.get('fileInfo');\n if (Dropzone.isValidFile(file.get('file'), FileExtensions.VIDEO)) {\n result.videoUrls.push(fileInfo?.url);\n } else {\n result.imageUrls.push(fileInfo?.url);\n }\n return result;\n }, {\n imageUrls: [],\n videoUrls: []\n });\n }\n};","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { CuratedDashboard, DashboardStatus } from 'libs/shared/interfaces';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nconst namespace = 'subjects.discoverDashboardEmptyState';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\n\ninterface DiscoverDashboardEmptyStateProps {\n dashboard: CuratedDashboard;\n imageUrl: string;\n isReadonly: boolean;\n addWidgetApplink?: () => Core.AppLink;\n}\n\nexport function DiscoverDashboardEmptyState(props: DiscoverDashboardEmptyStateProps): JSX.Element {\n const isArchived = props.dashboard?.status === DashboardStatus.Archived;\n\n return (\n <EmptyState>\n <EmptyState.Image src={props.imageUrl} altText={getPhrase('info')} />\n <EmptyState.Heading>\n <Text namespace={namespace} phrase='heading' />\n </EmptyState.Heading>\n <EmptyState.Info>\n <Text namespace={namespace} phrase='info' />\n </EmptyState.Info>\n <Tooltip title={isArchived ? LanguageService.getPhrase(namespace, 'archivedCtaTooltip') : ''} spanHack>\n <EmptyState.Cta\n text={LanguageService.getPhrase(namespace, 'add')}\n appLink={props.addWidgetApplink?.()}\n className='btn btn-dark'\n icon={cvSvgLibrary.Plus}\n disabled={isArchived}\n />\n </Tooltip>\n </EmptyState>\n );\n}","import React from 'react';\n\nimport { Flight } from 'libs/common/flight';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { DiscoverHeader, DiscoverHeaderAppLinks } from 'libs/shared/apps/discover/components/header/DiscoverHeader';\nimport { JobTitles } from 'libs/shared/apps/sign-up/interfaces/JobTitles';\nimport { DashboardFeedbackData } from 'libs/shared/components/feedback-form/FeedbackForm';\nimport { WidgetContainerView } from 'libs/shared/components/widgets/curated-widgets/WidgetContainerView';\nimport { WidgetAppLinks, WidgetImageUrls } from 'libs/shared/components/widgets/curated-widgets/WidgetProps';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { WidgetTemplate } from 'libs/shared/enums/WidgetTemplate';\nimport { WidgetTypeId } from 'libs/shared/enums/WidgetTypeId';\nimport { HasLocalPermissionsFunc, HasPermissionsFunc } from 'libs/shared/hooks/usePermissions';\nimport { SettingsHash } from 'libs/shared/hooks/useSettings';\nimport { CanFavouriteFunc, CuratedDashboard, CuratedWidgetQueryParams, CurrentUser, DashboardTargetType, FavouriteFunc, Presentation, PresentationAudience, WidgetPreference, YearGroup } from 'libs/shared/interfaces';\nimport { CuratedDashboardHelper } from 'libs/shared/utils/DashboardHelper';\n\nimport { DiscoverDashboardEmptyState } from './empty-state/DiscoverDashboardEmptyState';\n\ninterface DiscoverDashboardProps {\n dashboard: CuratedDashboard;\n getWidgetContentRequest: (\n id: string,\n params: CuratedWidgetQueryParams,\n widgetTemplate: WidgetTemplate,\n presentation: Presentation\n ) => Flight.Request;\n imageCdnUrl: string;\n currentUser: CurrentUser;\n audiences: PresentationAudience[];\n hasPermissions: HasPermissionsFunc;\n hasLocalPermissions: HasLocalPermissionsFunc;\n resourceThumbnailFallbackImageUrl: string;\n emptyImageUrl?: string;\n presentation: Presentation;\n setFavourite?: FavouriteFunc;\n canFavourite?: CanFavouriteFunc;\n widgetAppLinks?: WidgetAppLinks;\n headerAppLinks?: DiscoverHeaderAppLinks;\n scrollToWidgetId?: string;\n updatePreferences?: (\n widgetId: string,\n widgetTypeId: WidgetTypeId,\n oldPreferences: WidgetPreference[],\n newPreferences: WidgetPreference[]\n ) => Promise<void>;\n onSubmitFeedback?: (feedback: DashboardFeedbackData) => Promise<void>;\n isReadonly?: boolean;\n yearGroups?: YearGroup[];\n lazyLoad?: boolean;\n showCalendar: boolean;\n jobTitle: JobTitles;\n imageUrls: WidgetImageUrls\n settings: SettingsHash;\n isPlugin: boolean;\n availablePresentations: Presentation[];\n}\n\nexport function DiscoverDashboard(props: DiscoverDashboardProps): JSX.Element {\n const widgets = ArrayHelper.sortBy(props.dashboard?.widgets, 'index');\n\n function getWidgetContentRequest(id: string, widgetTypeId: WidgetTypeId, template: WidgetTemplate): Flight.Request {\n const params = CuratedDashboardHelper.getWidgetParams(\n widgetTypeId,\n template,\n CuratedDashboardHelper.getDashboardTargetType(props.dashboard)\n );\n\n return props.getWidgetContentRequest(id, params, template, props.presentation);\n }\n\n const showEmptyState = props.isReadonly && !widgets?.length;\n\n return (\n <>\n <DiscoverHeader\n type={props.dashboard?.userType}\n appLinks={props.headerAppLinks}\n hasStudentExperience={props.hasPermissions(PermissionName.StudentExperience)}\n showCalendar={props.showCalendar}\n active='forYou'\n />\n {widgets.map((widget, idx) => {\n return (\n <WidgetContainerView\n key={widget.id}\n id={widget.id}\n imageCdnUrl={props.imageCdnUrl}\n getContentRequest={getWidgetContentRequest}\n audiences={props.audiences}\n name={widget.name}\n description={widget.description}\n templateId={widget.templateId}\n metadata={widget.metadata}\n presentation={props.presentation}\n setFavourite={props.setFavourite}\n canFavourite={props.canFavourite}\n resourceThumbnailFallbackImageUrl={props.resourceThumbnailFallbackImageUrl}\n preferences={widget.preferences}\n appLinks={props.widgetAppLinks}\n isScrollToTargetWidget={props?.scrollToWidgetId === widget.id}\n widgetTypeId={widget.widgetId}\n hasPermissions={props.hasPermissions}\n hasLocalPermissions={props.hasLocalPermissions}\n onSubmitFeedback={props.onSubmitFeedback}\n updatePreferences={props.updatePreferences}\n yearGroups={props.yearGroups}\n lazyLoad={props.lazyLoad}\n dashboardTarget={DashboardTargetType.Discover}\n widgetIndex={idx}\n jobTitle={props.jobTitle}\n isPreviewing={props.isReadonly}\n imageUrls={props.imageUrls}\n settings={props.settings}\n isPlugin={props.isPlugin}\n availablePresentations={props.availablePresentations}\n />\n );\n })}\n\n {showEmptyState && (\n <DiscoverDashboardEmptyState\n dashboard={props.dashboard}\n isReadonly={props.isReadonly}\n imageUrl={props.emptyImageUrl}\n addWidgetApplink={props.widgetAppLinks.widgetWizard}\n />\n )}\n </>\n );\n}","import React from 'react';\n\nimport { LocationUtils } from 'libs/common/backbone/core';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { StorageType } from 'libs/common/backbone/utils/LocalStorageHelper';\nimport { Flight } from 'libs/common/flight';\nimport { useViewModel } from 'libs/common/react/hooks/UseViewModel';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { EntityType, LocationContext, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { DiscoverDashboard } from 'libs/shared/apps/discover/components/discover-dashboard/DiscoverDashboard';\nimport { DashboardFeedbackData } from 'libs/shared/components/feedback-form/FeedbackForm';\nimport { SharedViewModelKeys } from 'libs/shared/constants/SharedViewModelKeys';\nimport { FeedbackType } from 'libs/shared/enums/FeedbackType';\nimport { LocalPermissionName, PermissionName } from 'libs/shared/enums/PermissionName';\nimport { PresentationLearningLevel } from 'libs/shared/enums/PresentationLearningLevel';\nimport { ProductId } from 'libs/shared/enums/ProductId';\nimport { WidgetTypeId } from 'libs/shared/enums/WidgetTypeId';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { CustomerRequests } from 'libs/shared/flight-requests/CustomerRequests';\nimport { DashboardRequests } from 'libs/shared/flight-requests/DashboardRequests';\nimport { FeedbackRequests } from 'libs/shared/flight-requests/FeedbackRequests';\nimport { LibraryRequests } from 'libs/shared/flight-requests/LibraryRequests';\nimport { PreferenceRequests } from 'libs/shared/flight-requests/PreferenceRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { CurrentUser, Customer, DashboardTargetType, Library, Presentation, PresentationAudience, User, WidgetPreference, YearGroup } from 'libs/shared/interfaces';\nimport { Config } from 'libs/shared/interfaces';\nimport { AudienceHelper } from 'libs/shared/utils/audience-helper/AudienceHelper';\nimport { FeedbackFormHelper } from 'libs/shared/utils/FeedbackFormHelper';\nimport { PageMetadataHelper } from 'libs/shared/utils/PageMetadataHelper';\n\nimport { UpgradeFeedbackBanner } from 'shared/components/upgrade-feedback-banner/UpgradeFeedbackBanner';\nimport { ImageUrls } from 'shared/constants/ImageUrls';\nimport { usePluginHelper } from 'shared/hooks/use-plugin-helper/usePluginHelper';\nimport { useLiteFavourites } from 'shared/hooks/useLiteFavourites';\nimport { usePresentation } from 'shared/hooks/usePresentation';\nimport { useShowCalendar } from 'shared/hooks/useShowCalendar';\nimport { DashboardViewQueryParams } from 'shared/interfaces/query-params/DashboardViewQueryParams';\nimport { useFetchCuratedDashboard } from 'shared/utils/DashboardHelper';\nimport { SeoHelper } from 'shared/utils/SeoHelper';\n\nimport { LibraryHelper } from 'apps/libraries/utils/LibraryHelper';\n\nimport { getDiscoverHeaderAppLinks, getDiscoverWidgetAppLinks } from './DiscoverViewUtils';\n\nconst namespace = 'dashboard.dashboard';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nfunction getPhraseVariant(presentation: Presentation): string {\n const learningLevel = PresentationLearningLevel[presentation?.learningLevel];\n\n return +learningLevel === PresentationLearningLevel.Level_1\n ? 'VariantOne'\n : 'VariantTwo';\n}\n\ninterface CuratedDiscoverViewProps {\n presentationSlug?: string;\n queryParams?: DashboardViewQueryParams;\n}\n\nexport function CuratedDiscoverView(props: CuratedDiscoverViewProps): JSX.Element {\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const user = Flight.useBasicFetch<User>(currentUser.data?.isAuthenticated && UserRequests.user(currentUser.data.id));\n const { hasLocalPermissions, hasPermissions } = usePermissions();\n const { isPlugin } = usePluginHelper();\n\n const customer = Flight.useBasicFetch<Customer>(\n hasLocalPermissions(LocalPermissionName.ManageDiscoverPreferences) &&\n currentUser.data &&\n CustomerRequests.customer(currentUser.data.customerId)\n );\n\n const yearGroups = Flight.useBasicFetch<YearGroup[]>(\n currentUser.data?.isAuthenticated\n && CustomerRequests.yearGroups(currentUser.data.customerId)\n );\n\n const libraries = Flight.useBasicFetch<Library[]>(\n currentUser.data?.isAuthenticated &&\n LibraryRequests.libraries()\n );\n\n const { availablePresentations } = usePresentation();\n\n const {\n dashboard,\n presentation,\n audiences\n } = useFetchCuratedDashboard({\n targetType: DashboardTargetType.Discover,\n queryParams: props.queryParams,\n presentationSlug: props.presentationSlug\n });\n\n const fetchAsync = Flight.useGetFetchAsync();\n const settings = useSettings(null);\n\n const { setFavourite, canFavourite } = useLiteFavourites(LocationContext.Dashboard);\n\n const [activeAudiences] = useViewModel<PresentationAudience[]>(\n SharedViewModelKeys.AUDIENCE_FILTER,\n undefined,\n { storage: StorageType.SessionStorage }\n );\n\n const widgetAppLinks = getDiscoverWidgetAppLinks(AudienceHelper.getAudienceParams(activeAudiences));\n\n const phraseVariant = getPhraseVariant(presentation);\n\n useSetPageMetadata(PageMetadataHelper.getDiscoverMetadata({\n content: presentation,\n phraseContext: {\n phraseHandler: getPhrase,\n titlePhrase: `pageTitle${phraseVariant}`,\n descriptionPhrase: `pageDescription${phraseVariant}`\n },\n canonicalLink: SeoHelper.getCanonicalLink(),\n allowIndexing: SeoHelper.allowIndexing(),\n hrefLang: SeoHelper.getStaticRouteHrefLang(\n presentation?.learningLevel,\n widgetAppLinks.discover\n )\n }));\n\n async function onSubmitFeedback(feedback: DashboardFeedbackData): Promise<void> {\n const promise = await fetchAsync<void>(FeedbackRequests.submitFeedback({\n type: FeedbackType.Footer,\n user: FeedbackFormHelper.getUserInfo(currentUser.data, customer.data),\n tags: FeedbackFormHelper.getTags(\n currentUser.data,\n ProductId.Primary,\n hasPermissions(PermissionName.StudentExperience),\n [ 'discover', 'in product feedback' ]\n )\n }, {\n reaction: feedback.type,\n feedback: feedback.content,\n location: 'Discover Footer',\n presentationName: presentation.description,\n presentationId: presentation.id,\n dashboardName: dashboard.data.name,\n dashboardId: dashboard.data.id,\n currentPageUrl: LocationUtils.GetCurrentUrl()\n }));\n\n AnalyticsHelper.logUserAction({\n feedbackType: feedback.type,\n content: feedback.content,\n presentationId: presentation.id,\n dashboardId: dashboard.data.id\n }, {\n actionType: UserAction.Submit,\n location: LocationContext.DiscoverFooter,\n entity: EntityType.Feedback,\n workflowPhase: WorkflowPhase.Complete\n });\n\n return promise;\n }\n\n async function updateWidgetPreferences(\n widgetId: string,\n widgetTypeId: WidgetTypeId,\n oldPreferences: WidgetPreference[],\n newPreferences: WidgetPreference[]\n ): Promise<void> {\n const addedSubjects = newPreferences.filter(p => {\n if (p.hidden)\n return false;\n\n const oldPreference = oldPreferences.find(o => o.id === p.id);\n\n return oldPreference.hidden;\n });\n const removedSubjects = newPreferences.filter(p => {\n if (!p.hidden)\n return false;\n \n const oldPreference = oldPreferences.find(o => o.id === p.id);\n\n return !oldPreference.hidden;\n });\n\n if (addedSubjects?.length)\n await fetchAsync<void>(PreferenceRequests.followSubjects(addedSubjects.map(s => s.id)));\n\n if (removedSubjects?.length)\n await fetchAsync<void>(PreferenceRequests.unfollowSubjects(removedSubjects.map(s => s.id)));\n\n return fetchAsync<void>(DashboardRequests.updateWidgetPreferences(\n widgetId,\n newPreferences.map(p => ({\n id: p.id,\n index: p.index\n })),\n currentUser.data\n ));\n }\n const { showCalendar } = useShowCalendar();\n\n return (\n <div className='bg-white px-4'>\n <UpgradeFeedbackBanner />\n <DiscoverDashboard\n currentUser={currentUser.data}\n dashboard={dashboard.data}\n widgetAppLinks={widgetAppLinks}\n headerAppLinks={getDiscoverHeaderAppLinks()}\n presentation={presentation}\n imageCdnUrl={config.data.imageCdnUrl}\n resourceThumbnailFallbackImageUrl={ImageUrls.Fallbacks.RESOURCE_THUMBNAIL}\n getWidgetContentRequest={(\n ...args: Parameters<typeof DashboardRequests.dashboardWidgetContent>\n ) => {\n const hasTwig = LibraryHelper.hasTwig(libraries.data, currentUser.data);\n\n return DashboardRequests.discoverWidgetContent(hasTwig, ...args);\n }}\n setFavourite={setFavourite}\n audiences={audiences.data}\n canFavourite={canFavourite}\n updatePreferences={updateWidgetPreferences}\n hasPermissions={hasPermissions}\n hasLocalPermissions={hasLocalPermissions}\n onSubmitFeedback={\n hasPermissions(PermissionName.CanSubmitFeedback) &&\n onSubmitFeedback\n }\n yearGroups={yearGroups.data}\n lazyLoad={!SeoHelper.isBot()}\n showCalendar={showCalendar}\n jobTitle={user.data?.userProfile?.metadata?.jobTitle}\n imageUrls={{\n onboardingAdminBackgroundFull: ImageUrls.OnboardingV2.Widget.ADMIN_BACKGROUND_FULL,\n onboardingAdminBackground: ImageUrls.OnboardingV2.Widget.ADMIN_BACKGROUND,\n onboardingTeacherBackground: ImageUrls.OnboardingV2.Widget.TEACHER_BACKGROUND\n }}\n settings={settings}\n isPlugin={isPlugin}\n availablePresentations={availablePresentations}\n />\n </div>\n );\n}","import { Core } from 'libs/common/backbone/index';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { DiscoverHeaderAppLinks } from 'libs/shared/apps/discover/components/header/DiscoverHeader';\nimport { OnboardingScreenId } from 'libs/shared/apps/onboarding/interfaces/OnboardingScreenId';\nimport { RatingFilterHelper } from 'libs/shared/apps/search/utils/RatingFilterHelper';\nimport { WidgetAppLinks } from 'libs/shared/components/widgets/curated-widgets/WidgetProps';\nimport { RelatedVideosContext } from 'libs/shared/enums/RelatedVideosContext';\nimport { Classification, Company, Playlist, Rating, Video, VideoTypes } from 'libs/shared/interfaces';\nimport { GetVideoAppLinkOptions } from 'libs/shared/interfaces/VideoAppLinkOptions';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { ClassificationAppLinkHelper } from 'shared/utils/ClassificationAppLinkHelper';\nimport { VideoAppLinkHelper } from 'shared/utils/VideoAppLinkHelper';\n\nimport { getOnboardingAppLinks } from 'apps/onboarding/utils/OnboardingAppLinkHelper';\nimport { SeriesAppLinkHelper } from 'apps/series/SeriesAppLinkHelper';\n\nconst CLASSIFICATION_LATEST_RELEASES = 'classification-latest-releases';\n\nexport function getDiscoverWidgetAppLinks(\n params: HashObject\n): WidgetAppLinks {\n return {\n classification: (classification?: Classification) =>\n ClassificationAppLinkHelper.getAppLink(classification, params || {}),\n\n videoType: (video: VideoTypes, opts: GetVideoAppLinkOptions) => (\n VideoAppLinkHelper.getAppLink(video, {\n ...opts,\n context: RelatedVideosContext.Widget\n })\n ),\n\n series: SeriesAppLinkHelper.getSeriesAppLink,\n\n subText: (video: Video) => SeriesAppLinkHelper.getSeriesAppLink(video.series),\n\n playlist: (playlist: Playlist) => ({\n application: AppChannels.PLAYLISTS,\n action: Actions.Playlists.PLAYLIST,\n args: [ playlist.id, TextHelper.slugify(playlist.name) ]\n }),\n \n latestReleases: () => ({\n application: AppChannels.CONTENT_UPDATES,\n action: Actions.ContentUpdates.CONTENT_UPDATES\n }),\n\n allTopics: () => ({\n application: AppChannels.SUBJECT,\n action: Actions.Subjects.CLASSIFICATION_ALL\n }),\n\n classificationLatestReleases: (classification: Classification) => {\n if (classification.id === CLASSIFICATION_LATEST_RELEASES)\n return {\n application: AppChannels.CONTENT_UPDATES,\n action: Actions.ContentUpdates.CONTENT_UPDATES\n };\n\n return {\n application: AppChannels.CONTENT_UPDATES,\n action: Actions.ContentUpdates.CLASSIFICATION_UPDATE,\n args: [ classification.id, TextHelper.slugify(classification.name) ]\n };\n },\n\n widgetVideoList: (widgetId: string, widgetName: string) => ({\n application: AppChannels.DASHBOARD,\n action: Actions.Dashboard.DASHBOARD,\n args: [ widgetId, TextHelper.slugify(widgetName) ]\n }),\n\n watchHistory: () => ({\n application: AppChannels.WATCH_HISTORY,\n action: Actions.WatchHistory.HOME\n }),\n\n rating: (rating: Rating, ratings: Rating[]) => ({\n application: AppChannels.SEARCH,\n action: Actions.Search.HOME,\n params: {\n moviesAndTv: true,\n rating: RatingFilterHelper.getFrontendParamValue([ ArrayHelper.first(ratings), rating ])\n }\n }),\n\n company: (company: Company) => ({\n application: AppChannels.MOVIES_AND_TV,\n action: Actions.MoviesAndTv.COMPANY_DASHBOARD,\n args: [ company.id, TextHelper.slugify(company.name) ]\n }),\n\n discover: () => ({\n application: AppChannels.DASHBOARD,\n action: Actions.Dashboard.HOME\n }),\n\n calendar: () => ({\n application: AppChannels.CALENDAR,\n action: Actions.Calendar.CALENDAR\n }),\n\n calendarMonth: (month: string, year?: string) => {\n const appLink: Core.AppLink = {\n application: AppChannels.CALENDAR,\n action: Actions.Calendar.CALENDAR_MONTH,\n args: [month.toLowerCase()]\n };\n\n if (year)\n appLink.params = { year };\n\n return appLink;\n },\n\n onboardingStep: (step: OnboardingScreenId) => {\n const appLinks = getOnboardingAppLinks();\n return appLinks[step];\n },\n\n onboardingAppLinks: () => {\n return getOnboardingAppLinks();\n },\n\n classroomGuide: VideoAppLinkHelper.getClassroomGuideAppLink,\n interactiveGuidance: VideoAppLinkHelper.getInteractiveGuidanceAppLink,\n resourceGuidance: VideoAppLinkHelper.getResourceGuidanceAppLink\n };\n}\n\nexport function getDiscoverHeaderAppLinks(): DiscoverHeaderAppLinks {\n return {\n forYou: {\n application: AppChannels.DASHBOARD,\n action: Actions.Dashboard.HOME\n },\n whatsNew: {\n application: AppChannels.CONTENT_UPDATES,\n action: Actions.ContentUpdates.CONTENT_UPDATES\n },\n calendar: {\n application: AppChannels.CALENDAR,\n action: Actions.Calendar.CALENDAR\n }\n };\n}","import React from 'react';\n\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { useLiteUpgrade } from 'libs/shared/hooks/UseLiteUpgrade';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nconst namespace = 'shared.upgradeFeedbackBanner';\n\nexport function UpgradeFeedbackBanner(): JSX.Element {\n const { showFeedbackBanner, dismissFeedbackBanner } = useLiteUpgrade();\n\n if (!showFeedbackBanner)\n return <></>;\n\n return (\n <div className='alert bg-light-blue p-2 rounded text-info fw-semibold d-flex justify-content-between align-items-center'>\n <Text\n namespace={namespace}\n phrase='message'\n options={{ url: 'https://www.clickvieweducation.com/en-au/blog/product/exchange-tv-new-look' }}\n />\n <DivButton\n onClick={dismissFeedbackBanner}\n >\n <SvgContainer\n svgName={cvSvgLibrary.Close}\n className='ms-2 svg-container'\n />\n </DivButton>\n </div>\n );\n}","import React from 'react';\n\nimport { EnvironmentVariables } from 'libs/common/backbone/services/EnvironmentVariables';\nimport { Flight } from 'libs/common/react/index';\n\nimport { ContentRegion } from 'libs/shared/enums/ContentRegion';\nimport { PresentationLearningLevel } from 'libs/shared/enums/PresentationLearningLevel';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { CurrentUser } from 'libs/shared/interfaces';\nimport { TopicsHelper } from 'libs/shared/utils/topics-helper/TopicsHelper';\n\nimport { usePresentation } from 'shared/hooks/usePresentation';\n\nconst ALLOWED_LEARNING_LEVELS_BY_REGION: Record<ContentRegion, PresentationLearningLevel[]> = {\n [ContentRegion.AU]: [\n // AU Primary Calendar\n PresentationLearningLevel.Level_1\n ],\n [ContentRegion.US]: [\n // US Elementary Calendar\n PresentationLearningLevel.Level_1\n ],\n [ContentRegion.UK]: [\n // UK Primary Calendar\n PresentationLearningLevel.Level_1\n ],\n [ContentRegion.SCOT]: [\n // Scotland Primary Calendar\n PresentationLearningLevel.Level_1\n ],\n [ContentRegion.NZ]: [],\n [ContentRegion.GLOBAL]: []\n};\n\nexport function useShowCalendar() {\n const { hasSpecialEventCalendar, isLoadingSettings } = useSettings(null);\n\n const {\n activePresentation\n } = usePresentation({ redirectOnError: true });\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n\n const allowedLearningLevels = ALLOWED_LEARNING_LEVELS_BY_REGION[currentUser.data?.contentRegion];\n const learningLevel = TopicsHelper.getMappedPresentationLevel(activePresentation?.learningLevel);\n const learningLevelCantAccess = !allowedLearningLevels?.find(l => {\n return l.toString() === (learningLevel as PresentationLearningLevel)?.toString();\n });\n\n const noSetting = !isLoadingSettings && !hasSpecialEventCalendar;\n\n const [ showCalendar, setShowCalendar ] = React.useState<boolean>(!noSetting && !learningLevelCantAccess);\n\n const [ isLoading, setIsLoading ] = React.useState(isLoadingSettings || !activePresentation?.id);\n\n React.useEffect(() => {\n if (noSetting || learningLevelCantAccess) {\n setShowCalendar(false);\n } else if (!isLoading) {\n setShowCalendar(true);\n }\n setIsLoading(isLoadingSettings || !activePresentation?.id);\n }, [ hasSpecialEventCalendar, activePresentation?.id, isLoading ]);\n\n if (EnvironmentVariables.isDevelopment)\n return { showCalendar: true, isLoading: false };\n\n return { showCalendar, isLoading };\n}","// extracted by mini-css-extract-plugin\nexport default {\"pillTabSelector\":\"Hdi6o\",\"tab\":\"RvNxr\",\"minWidth\":\"GHSz9\",\"radiusSmall\":\"VhJJa\",\"tabLink\":\"WFyvo\"};"],"names":["namespace","DiscoverHeader","props","type","hasStudentExperience","className","Text","phrase","tabs","name","LanguageService","appLink","appLinks","forYou","active","analyticsData","url","analyticsOptions","actionType","entity","location","whatsNew","showCalendar","push","calendar","PillTabSelector","pdfExtensions","docExtensions","textExtensions","excelExtensions","imageExtensions","videoMimeType","archiveExtensions","powerPointExtensions","subtitleExtensions","FileExtensions","IMAGES","join","VIDEO","MIXED_MEDIA","RESOURCES","SUBTITLES","FileExtensionHelper","getResourceType","extension","ext","toLowerCase","TabContents","tab","svgName","count","data","ref","containerRef","borderRadius","listClassName","map","index","key","onClick","onSelect","onSelectTab","defaultProps","FeedbackType","FeedbackRequests","submitFeedback","requestData","formValues","FeedbackFormHelper","getUserInfo","currentUser","customer","id","username","email","userType","role","customerId","cvcId","crmId","customerName","instanceRegion","contentRegion","firstName","givenName","lastName","familyName","mapInstanceRegionToTag","getTags","product","extraTags","tags","regionTag","categorizeFiles","files","reduce","result","file","fileInfo","get","videoUrls","imageUrls","getPhrase","DiscoverDashboardEmptyState","isArchived","dashboard","status","EmptyState","src","imageUrl","altText","Tooltip","title","spanHack","text","addWidgetApplink","icon","disabled","DiscoverDashboard","widgets","ArrayHelper","getWidgetContentRequest","widgetTypeId","template","params","presentation","showEmptyState","isReadonly","length","headerAppLinks","hasPermissions","PermissionName","widget","idx","WidgetContainerView","imageCdnUrl","getContentRequest","audiences","description","templateId","metadata","setFavourite","canFavourite","resourceThumbnailFallbackImageUrl","preferences","widgetAppLinks","isScrollToTargetWidget","scrollToWidgetId","widgetId","hasLocalPermissions","onSubmitFeedback","updatePreferences","yearGroups","lazyLoad","dashboardTarget","widgetIndex","jobTitle","isPreviewing","settings","isPlugin","availablePresentations","emptyImageUrl","widgetWizard","CuratedDiscoverView","config","ConfigRequests","UserRequests","user","isAuthenticated","usePermissions","usePluginHelper","CustomerRequests","libraries","LibraryRequests","usePresentation","targetType","queryParams","presentationSlug","fetchAsync","useSettings","useLiteFavourites","u","activeAudiences","SharedViewModelKeys","undefined","storage","AudienceHelper","phraseVariant","PresentationLearningLevel","learningLevel","getPhraseVariant","useSetPageMetadata","PageMetadataHelper","content","phraseContext","phraseHandler","titlePhrase","descriptionPhrase","canonicalLink","SeoHelper","allowIndexing","hrefLang","discover","useShowCalendar","UpgradeFeedbackBanner","ImageUrls","hasTwig","LibraryHelper","args","DashboardRequests","oldPreferences","newPreferences","addedSubjects","filter","p","hidden","find","o","removedSubjects","PreferenceRequests","s","feedback","ProductId","reaction","presentationName","presentationId","dashboardName","dashboardId","currentPageUrl","promise","AnalyticsHelper","feedbackType","workflowPhase","userProfile","onboardingAdminBackgroundFull","onboardingAdminBackground","onboardingTeacherBackground","CLASSIFICATION_LATEST_RELEASES","getDiscoverWidgetAppLinks","classification","videoType","video","opts","context","series","subText","playlist","application","action","latestReleases","allTopics","classificationLatestReleases","widgetVideoList","widgetName","watchHistory","rating","ratings","moviesAndTv","company","calendarMonth","month","year","onboardingStep","step","onboardingAppLinks","classroomGuide","interactiveGuidance","resourceGuidance","getDiscoverHeaderAppLinks","showFeedbackBanner","dismissFeedbackBanner","options","ALLOWED_LEARNING_LEVELS_BY_REGION","hasSpecialEventCalendar","isLoadingSettings","activePresentation","redirectOnError","allowedLearningLevels","learningLevelCantAccess","l","toString","noSetting","setShowCalendar","isLoading","setIsLoading"],"sourceRoot":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[6752],{56752:(e,t,n)=>{n.d(t,{X:()=>A});var a,o=n(32735),r=n(110),i=n(23481);function c(e){return c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},c(e)}!function(e){e.ET="Eastern Standard Time"}(a||(a={}));var l,s,u,d=(l={},u={name:"Eastern Time",timezone:"America/New_York",code:"ET"},(s=function(e){var t=function(e,t){if("object"!=c(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var a=n.call(e,"string");if("object"!=c(a))return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==c(t)?t:t+""}(s=a.ET))in l?Object.defineProperty(l,s,{value:u,enumerable:!0,configurable:!0,writable:!0}):l[s]=u,l),v={convertToUTCString:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:a.ET;return e?r.O.getUtcStringByTimezone(e,d[t].timezone):""},convertUTCToTimezoneDate:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:a.ET;if(!e||!t)return new Date;var n=new Date(e),o=new Intl.DateTimeFormat("en-US",{timeZone:d[t].timezone,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"}).format(n);return new Date(o)}},m=n(49439);const f={cellDate:"qcD_n",label:"sp6Gw",isHovering:"_6xWx",numberWrapper:"KZfe0"};function g(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}var p=i.T.encloseNamespace("specialEventCalendar.calendarCellDate");function y(e){var t=r.O.isSame(v.convertUTCToTimezoneDate((new Date).toISOString(),e.timezone||null),e.date,"day"),n="".concat(f.cellDate," d-flex flex-nowrap");t&&(n+=" bg-dark text-white"),e.notCurrentMonth&&!e.isHovering&&(n+=" text-secondary"),e.hasEvent&&(n+=" text-white"),e.className&&(n+=" ".concat(e.className));var a=function(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,o,r,i,c=[],l=!0,s=!1;try{if(r=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(a=r.call(n)).done)&&(c.push(a.value),c.length!==t);l=!0);}catch(e){s=!0,o=e}finally{try{if(!l&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(s)throw o}}return c}}(e,t)||function(e,t){if(e){if("string"==typeof e)return g(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)?g(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}((0,m.L)({delay:250}),2),i=a[0],c=a[1];return o.createElement("div",{className:"".concat(n," ").concat(c?f.isHovering:""),ref:i},o.createElement("div",{className:"".concat(f.numberWrapper," ").concat("d-flex text-center justify-content-center align-items-center flex-shrink-0")},r.O.format(e.date,"D")),t&&o.createElement("div",{className:"".concat(f.label," justify-content-start align-items-center")},p("today")))}var h=n(28400),E=n(49985),b=n(65858),D=n(84963),O=n(12324),w=n(36848),M=n(11607),C=n(36518),S=n(44435),k=n(83914),T=n(2284),x=n(35223);const N={hardcodedCover:"ByD0q",tag:"ZHW8B",date:"AKOWh",backgroundImage:"RDtch",eventCard:"YtMiS",wrapper:"ylxwf",left:"iTqxB",right:"bUUXX",noAnimation:"oZacR",cover:"kpH3Y",tagWrap:"KvlZ8",appear:"xlSdc",displayDate:"rkBJb",title:"c4_Kj",titleText:"nRMvg",circle:"wu4hg",active:"tbdFj",arrow:"omZKz",bottomBar:"hxKUP",bottomPlaceholder:"dzeZ7",multiEventFilter:"dSxjc"};function I(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}function j(e){var t,n,a,i,c=e.sliderStep,l=e.setSliderStep,s=e.fadePastEvents?e.eventsOnDay.sort((function(e,t){return!P(e)&&P(t)?1:P(e)&&!P(t)?-1:0})):e.eventsOnDay,u=e.eventsOnDay.length>1,d=s.find((function(e,t){return t===c})),v=!!d.endDate,m=null===(t=e.getBackgroundColor)||void 0===t?void 0:t.call(e,d.content),f=null===(n=e.getHardCodedEvent)||void 0===n?void 0:n.call(e,d.content),g=null===(a=e.getIconUrl)||void 0===a?void 0:a.call(e,d.content),p=null===(i=e.getCoverUrl)||void 0===i?void 0:i.call(e,d.content),j=d.content.status===T.W.ComingSoon,Y=function(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,o,r,i,c=[],l=!0,s=!1;try{if(r=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(a=r.call(n)).done)&&(c.push(a.value),c.length!==t);l=!0);}catch(e){s=!0,o=e}finally{try{if(!l&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(s)throw o}}return c}}(e,t)||function(e,t){if(e){if("string"==typeof e)return I(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)?I(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}(o.useState(e.hasInitialized?N.appear:""),2),A=Y[0],H=Y[1];o.useEffect((function(){if(!e.hasInitialized){var t=Math.floor(600*Math.random()+400);window.setTimeout((function(){H(N.appear),window.setTimeout((function(){e.setHasInitialized(!0)}),400)}),t)}}),[e.hasInitialized]),o.useEffect((function(){e.isHovering&&e.setHoveredEvent(d)}),[e.isHovering,d]),o.useEffect((function(){return function(){var t;e.isHovering&&(null===(t=e.hoveredEvent)||void 0===t?void 0:t.specialEventId)===d.specialEventId&&e.setHoveredEvent(null)}}),[e.isHovering,e.hoveredEvent,d]);var z=function(){var t={date:r.O.format(e.date,"YYYY-MM-DD"),presentationId:e.presentationId,eventCount:e.eventsOnDay.length};return u?(t.eventId=e.eventsOnDay.map((function(e){return e.specialEventId})).join(","),t.topicId=e.eventsOnDay.map((function(e){return e.content.id})).join(",")):(t.eventId=d.specialEventId,t.topicId=d.content.id,t.eventStatus=d.content.status),t}(),U={actionType:b.Vw.Click,entity:b.py.SpecialEvent,location:b.LZ.CalendarDay};function B(e){return r.O.format(e,"YYYY-MM-DD")}function L(){return"".concat(e.className," ").concat(A," ")+[f?"".concat(N.hardcodedCover," position-absolute"):N.backgroundImage,g?"my-auto":N.cover,j?N.comingSoon:"",e.hasInitialized?N.noAnimation:"",e.isHovering?"rounded-3":"",e.isMultiEventDate?N.multiEventFilter:"","company"in d.content?"rounded-circle":""].join(" ")}function P(e){return"startDateTime"in e.content&&r.O.isBefore(e.content.startDateTime,new Date)}return o.createElement("div",{onClick:function(){j&&E.k.logUserAction(z,U)}},o.createElement(w.F,{appLink:function(){var t,n;return u?null===(t=e.getEventsListAppLink)||void 0===t?void 0:t.call(e):j?null:null===(n=e.getTopicAppLink)||void 0===n?void 0:n.call(e,d.content,h.m.slugify(d.name))}(),analyticsOptions:U,analyticsData:z,className:"position-absolute top-0 start-0 h-100 w-100 text-shadow ".concat(N.wrapper),labelledBy:"calendarEvent"},o.createElement("div",{className:"".concat(N.tagWrap," p-1")},j&&o.createElement(D.r,{className:"justify-content-center p-0 rounded-circle ".concat(N.tag," ").concat(A),onlyIcon:!0})),!e.hideDay&&o.createElement(y,{date:e.date,notCurrentMonth:e.notCurrentMonth,className:"".concat(N.date," ").concat(A),isHovering:e.isHovering,timezone:e.timezone,hasEvent:!0}),o.createElement("div",{style:{backgroundColor:m},className:"position-absolute d-flex flex-column justify-content-end align-items-center text-white px-1 pt-2 pb-1 ".concat(N.eventCard," ").concat(A," ").concat(e.isHovering?"rounded-3":""," ").concat(e.isMultiEventDate?N.multiEventFilter:""," ").concat(e.className," ").concat(!e.isHovering&&P(d)?"opacity-50":"")},g&&o.createElement(C.w,{src:g,alt:d.content.name,className:L()}),p&&!g&&o.createElement("div",{style:{backgroundImage:"url('".concat(p,"')")},className:L()}),v&&o.createElement("div",{className:"".concat(N.displayDate)},O.T.getDisplayDate(d.startDate,d.endDate)),o.createElement("div",{className:"text-center ".concat(N.title," ").concat(u?"mb-1":"mb-2")},o.createElement("p",{id:"calendarEvent",className:"".concat(e.responsiveText?N.titleText:""," ").concat(e.isHovering?"mb-0":"clamp-2"," h6"),title:d.name},d.name)),u&&0!==c&&o.createElement("div",{className:"position-absolute bg-white rounded-circle ".concat(N.left)},o.createElement(M.L,{onClick:function(t){t.stopPropagation(),t.preventDefault(),l((function(e){return e-1})),E.k.logUserAction({date:B(e.date),action:"previous",eventCount:e.eventsOnDay.length},U)}},o.createElement(k.x,{svgName:x.vn.ChevronLeft,className:"d-inline-block svg-container text-dark ".concat(N.arrow)}))),u&&c!==e.eventsOnDay.length-1&&o.createElement("div",{className:"position-absolute bg-white rounded-circle ".concat(N.right)},o.createElement(M.L,{onClick:function(t){t.stopPropagation(),t.preventDefault(),l((function(e){return e+1})),E.k.logUserAction({date:B(e.date),action:"next",eventCount:e.eventsOnDay.length},U)}},o.createElement(k.x,{svgName:x.vn.ChevronRight,className:"d-inline-block svg-container text-dark ".concat(N.arrow)}))),u&&o.createElement("div",{className:"d-flex ".concat(N.bottomBar," ").concat(u?"":N.bottomPlaceholder)},o.createElement(S.e,{sliderStep:c,sliderLength:e.eventsOnDay.length,size:"sm",className:"".concat(e.isHovering?"mb-2":"mb-1"),onSliderDotClick:function(t){l(t),E.k.logUserAction({date:B(e.date),action:"jump",eventCount:e.eventsOnDay.length},U)}})))))}j.defaultProps={responsiveText:!0};const Y={cell:"nsEjO",multiEventCell:"vvFYj",fadeIn:"BX0cX"};function A(e){var t,n,a=o.useMemo((function(){var t,n,a,o;return(null===(t=e.hoveredEvent)||void 0===t?void 0:t.endDate)&&!r.O.isSame(e.date,null===(n=e.hoveredEvent)||void 0===n?void 0:n.startDate)&&r.O.isBetween(r.O.format(e.date,"YYYY-MM-DD"),null===(a=e.hoveredEvent)||void 0===a?void 0:a.startDate,null===(o=e.hoveredEvent)||void 0===o?void 0:o.endDate)}),[e.hoveredEvent]),i=e.hoveredEvent?null===(t=e.getBackgroundColor)||void 0===t?void 0:t.call(e,e.hoveredEvent.content):null;return o.createElement("div",{className:"".concat(Y.cell," fw-semibold")},!e.hideDay&&o.createElement(y,{date:e.date,notCurrentMonth:e.notCurrentMonth,timezone:e.timezone}),a&&o.createElement("div",{style:{backgroundColor:i},className:Y.multiEventCell}),(null===(n=e.eventsOnDay)||void 0===n?void 0:n.length)>0&&o.createElement(j,Object.assign({},e,{isMultiEventDate:a})))}},84963:(e,t,n)=>{n.d(t,{r:()=>u});var a=n(32735),o=n(23481),r=n(83914),i=n(76177),c=n(35223);const l={tag:"XRj8d",tooltip:"X6mLk"};var s="specialEventCalendar.comingSoonTag";function u(e){return a.createElement(i.u,{title:o.T.getPhrase(s,"tooltip"),spanHackClassName:"d-block ".concat(l.tooltip),spanHack:!0},a.createElement("div",{className:"d-flex text-dark align-items-center ".concat(l.tag," ").concat(e.className)},a.createElement(r.x,{svgName:c.vn.Timer}),!e.onlyIcon&&o.T.getPhrase(s,"comingSoon")))}},12324:(e,t,n)=>{n.d(t,{T:()=>o});var a=n(110),o={getDisplayDate:function(e,t){return t?e.slice(5,7)!==t.slice(5,7)?"".concat(a.O.format(e,"D MMM")," - ").concat(a.O.format(t,"D MMM")):"".concat(a.O.format(e,"D")," - ").concat(a.O.format(t,"D")," ").concat(a.O.format(e,"MMM")):a.O.format(e,"D MMM")},getEventsInMonth:function(e,t){return e.filter((function(e){return a.O.format(e.startDate,"YYYY-MM")===a.O.format(t,"YYYY-MM")}))},getOrdinalDate:function(e){return"".concat(a.O.getLocalDateOrdinal(a.O.get(e,"date"))," ").concat(a.O.format(e,"MMMM"))}}}}]);
|
|
2
|
+
//# sourceMappingURL=6752-0d139a6c9a-lite.chunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scripts/6752-0d139a6c9a-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/apps/streamable-learning/constants/Timezones.ts","file:///app/packages/libs/shared/src/apps/streamable-learning/utils/TimezoneHelper.ts","file:///app/packages/libs/shared/src/apps/calendar/components/calendar-cell-date/calendar-cell-date.scss","file:///app/packages/libs/shared/src/apps/calendar/components/calendar-cell-date/CalendarCellDate.tsx","file:///app/packages/libs/shared/src/apps/calendar/components/calendar-events/calendar-events.scss","file:///app/packages/libs/shared/src/apps/calendar/components/calendar-events/CalendarEvents.tsx","file:///app/packages/libs/shared/src/apps/calendar/components/calendar-day/calendar-day.scss","file:///app/packages/libs/shared/src/apps/calendar/components/calendar-day/CalendarDay.tsx","file:///app/packages/libs/shared/src/apps/calendar/components/coming-soon-tag/coming-soon-tag.scss","file:///app/packages/libs/shared/src/apps/calendar/components/coming-soon-tag/ComingSoonTag.tsx","file:///app/packages/libs/shared/src/apps/calendar/utils/SpecialEventHelper.ts"],"sourcesContent":["interface TimezoneInfo {\n name: string;\n timezone: string;\n code: string;\n}\n\nexport enum Timezone {\n // This is the timezone ID for .NET which represents the generic 'Eastern Time'\n ET = 'Eastern Standard Time'\n}\n\nexport type Timezones = {\n [key in Timezone]: TimezoneInfo;\n}\n\nexport const TIMEZONES_US: Timezones = {\n [Timezone.ET]: {\n name: 'Eastern Time',\n timezone: 'America/New_York',\n code: 'ET'\n }\n};","import { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { Timezone, TIMEZONES_US } from 'libs/shared/apps/streamable-learning/constants/Timezones';\n\nexport const TimezoneHelper = {\n convertToUTCString(datetime: string, timezone: Timezone = Timezone.ET) {\n if (!datetime) return '';\n\n return DateHelper.getUtcStringByTimezone(datetime, TIMEZONES_US[timezone].timezone);\n },\n convertUTCToTimezoneDate(datetime: string, timezone: Timezone = Timezone.ET) {\n if (!datetime || !timezone) return new Date();\n \n const utcDate = new Date(datetime);\n \n const timezoneDateTime = new Intl.DateTimeFormat('en-US', {\n timeZone: TIMEZONES_US[timezone].timezone,\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n hour: '2-digit',\n minute: '2-digit'\n }).format(utcDate);\n\n return new Date(timezoneDateTime);\n }\n};","// extracted by mini-css-extract-plugin\nexport default {\"cellDate\":\"qcD_n\",\"label\":\"sp6Gw\",\"isHovering\":\"_6xWx\",\"numberWrapper\":\"KZfe0\"};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { Timezone } from 'libs/shared/apps/streamable-learning/constants/Timezones';\nimport { TimezoneHelper } from 'libs/shared/apps/streamable-learning/utils/TimezoneHelper';\nimport { useHoverIntent } from 'libs/shared/hooks/UseHover';\n\nimport styles from './calendar-cell-date.scss';\n\nconst namespace = 'specialEventCalendar.calendarCellDate';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface CalendarCellDateProps {\n date: Date;\n notCurrentMonth: boolean;\n hasEvent?: boolean;\n className?: string;\n isHovering?: boolean;\n timezone?: Timezone;\n}\n\nexport function CalendarCellDate(props: CalendarCellDateProps): JSX.Element {\n const isToday = DateHelper.isSame(\n TimezoneHelper.convertUTCToTimezoneDate(new Date().toISOString(), props.timezone || null),\n props.date,\n 'day'\n );\n\n let dateClassName = `${styles.cellDate} d-flex flex-nowrap`;\n if (isToday)\n dateClassName += ' bg-dark text-white';\n if (props.notCurrentMonth && !props.isHovering)\n dateClassName += ' text-secondary';\n if (props.hasEvent)\n dateClassName += ' text-white';\n if (props.className)\n dateClassName += ` ${props.className}`;\n \n const numberClassName = 'd-flex text-center justify-content-center align-items-center flex-shrink-0';\n const [ ref, isHovering ] = useHoverIntent<HTMLDivElement>({ delay: 250 });\n\n return (\n <div className={`${dateClassName} ${isHovering ? styles.isHovering : ''}`} ref={ref}>\n <div className={`${styles.numberWrapper} ${numberClassName}`}>\n {DateHelper.format(props.date, 'D')}\n </div>\n {isToday && (\n <div className={`${styles.label} justify-content-start align-items-center`}>\n {getPhrase('today')}\n </div>\n )}\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"hardcodedCover\":\"ByD0q\",\"tag\":\"ZHW8B\",\"date\":\"AKOWh\",\"backgroundImage\":\"RDtch\",\"eventCard\":\"YtMiS\",\"wrapper\":\"ylxwf\",\"left\":\"iTqxB\",\"right\":\"bUUXX\",\"noAnimation\":\"oZacR\",\"cover\":\"kpH3Y\",\"tagWrap\":\"KvlZ8\",\"appear\":\"xlSdc\",\"displayDate\":\"rkBJb\",\"title\":\"c4_Kj\",\"titleText\":\"nRMvg\",\"circle\":\"wu4hg\",\"active\":\"tbdFj\",\"arrow\":\"omZKz\",\"bottomBar\":\"hxKUP\",\"bottomPlaceholder\":\"dzeZ7\",\"multiEventFilter\":\"dSxjc\"};","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { AnalyticsOptions, EntityType, HashObject, LocationContext, UserAction } from 'libs/analytics/interfaces';\n\nimport { CalendarCellDate } from 'libs/shared/apps/calendar/components/calendar-cell-date/CalendarCellDate';\nimport { ComingSoonTag } from 'libs/shared/apps/calendar/components/coming-soon-tag/ComingSoonTag';\nimport { CalendarCellProps } from 'libs/shared/apps/calendar/interfaces/CalendarCellProps';\nimport { SpecialEventHelper } from 'libs/shared/apps/calendar/utils/SpecialEventHelper';\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { HoverableProps } from 'libs/shared/components/hover-to-portal-container/HoverToPortalContainer';\nimport { LazyImage } from 'libs/shared/components/lazy-image/LazyImage';\nimport { SliderDots } from 'libs/shared/components/slider-dots/SliderDots';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { ClassificationStatus } from 'libs/shared/enums/ClassificationStatus';\nimport { CalendarEvent, CalendarEventContent } from 'libs/shared/interfaces';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport styles from './calendar-events.scss';\n\ntype CalendarEventsProps = HoverableProps & CalendarCellProps;\n\nCalendarEvents.defaultProps = {\n responsiveText: true\n};\n\nexport function CalendarEvents(props: CalendarEventsProps): JSX.Element {\n const { sliderStep, setSliderStep } = props;\n\n const sortedEventsOnDay = props.fadePastEvents ? sortPastEvents(props.eventsOnDay) : props.eventsOnDay;\n const multiEvents = props.eventsOnDay.length > 1;\n const displayedEvent = sortedEventsOnDay.find((e, idx) => idx === sliderStep);\n const multiDayEvent = !!displayedEvent.endDate;\n\n const backgroundColor = props.getBackgroundColor?.(displayedEvent.content);\n\n const hardCodedEvent = props.getHardCodedEvent?.(displayedEvent.content);\n\n const iconUrl = props.getIconUrl?.(displayedEvent.content);\n const coverUrl = props.getCoverUrl?.(displayedEvent.content);\n\n const isComingSoon = displayedEvent.content.status === ClassificationStatus.ComingSoon;\n\n const [ className, setClassName ] = React.useState(!props.hasInitialized ? '' : styles.appear);\n\n React.useEffect(() => {\n if (!props.hasInitialized) {\n // a random number between 400 and 1000\n const randomNumber = Math.floor(Math.random() * 600 + 400);\n window.setTimeout(() => {\n setClassName(styles.appear);\n window.setTimeout(() => {\n props.setHasInitialized(true);\n }, 400);\n }, randomNumber);\n }\n }, [props.hasInitialized]);\n\n React.useEffect(() => {\n if (props.isHovering) {\n props.setHoveredEvent(displayedEvent);\n }\n }, [ props.isHovering, displayedEvent ]);\n\n React.useEffect(() => {\n return () => {\n if (props.isHovering && props.hoveredEvent?.specialEventId === displayedEvent.specialEventId) {\n props.setHoveredEvent(null);\n }\n };\n }, [ props.isHovering, props.hoveredEvent, displayedEvent ]);\n\n function getAppLink(): Core.AppLink {\n if (multiEvents)\n return props.getEventsListAppLink?.();\n\n if (isComingSoon)\n return null;\n\n return props.getTopicAppLink?.(displayedEvent.content, TextHelper.slugify(displayedEvent.name));\n }\n\n function getAnalyticsData() {\n const analyticsData: HashObject = {\n date: DateHelper.format(props.date, 'YYYY-MM-DD'),\n presentationId: props.presentationId,\n eventCount: props.eventsOnDay.length\n };\n\n if (multiEvents) {\n analyticsData.eventId = props.eventsOnDay.map(e => e.specialEventId).join(',');\n analyticsData.topicId = props.eventsOnDay.map(e => e.content.id).join(',');\n } else {\n analyticsData.eventId = displayedEvent.specialEventId;\n analyticsData.topicId = displayedEvent.content.id;\n analyticsData.eventStatus = displayedEvent.content.status;\n }\n return analyticsData;\n }\n\n const analyticsData = getAnalyticsData();\n\n const analyticsOptions: AnalyticsOptions = {\n actionType: UserAction.Click,\n entity: EntityType.SpecialEvent,\n location: LocationContext.CalendarDay\n };\n\n function formatAnalyticDataDate(date: Date): string {\n return DateHelper.format(date, 'YYYY-MM-DD');\n }\n\n function getBgImageClassName(): string {\n const defaultClassName = `${props.className} ${className} `;\n\n const classes = [\n hardCodedEvent ? `${styles.hardcodedCover} position-absolute` : styles.backgroundImage,\n iconUrl ? 'my-auto' : styles.cover,\n isComingSoon ? styles.comingSoon : '',\n props.hasInitialized ? styles.noAnimation : '',\n props.isHovering ? `rounded-3` : '',\n props.isMultiEventDate ? styles.multiEventFilter : '',\n 'company' in displayedEvent.content ? 'rounded-circle' : ''\n ];\n\n return defaultClassName + classes.join(' ');\n }\n\n function isPastEvent(event: CalendarEvent<CalendarEventContent>) {\n if ('startDateTime' in event.content) {\n return DateHelper.isBefore(event.content.startDateTime, new Date());\n }\n return false;\n }\n\n function sortPastEvents(events: CalendarEvent<CalendarEventContent>[]) {\n return events.sort((a, b) => {\n if (!isPastEvent(a) && isPastEvent(b)) {\n return 1;\n }\n\n if (isPastEvent(a) && !isPastEvent(b)) {\n return -1;\n }\n\n return 0;\n });\n }\n\n return (\n <div onClick={() => {\n if (isComingSoon)\n AnalyticsHelper.logUserAction(analyticsData, analyticsOptions);\n }}>\n <AppLink\n appLink={getAppLink()}\n analyticsOptions={analyticsOptions}\n analyticsData={analyticsData}\n className={`position-absolute top-0 start-0 h-100 w-100 text-shadow ${styles.wrapper}`}\n labelledBy='calendarEvent'\n >\n <div className={`${styles.tagWrap} p-1`}>\n {isComingSoon && (\n <ComingSoonTag className={`justify-content-center p-0 rounded-circle ${styles.tag} ${className}`} onlyIcon />\n )}\n </div>\n {!props.hideDay && (\n <CalendarCellDate\n date={props.date}\n notCurrentMonth={props.notCurrentMonth}\n className={`${styles.date} ${className}`}\n isHovering={props.isHovering}\n timezone={props.timezone}\n hasEvent\n />\n )}\n\n <div\n style={{ backgroundColor } }\n className={`position-absolute d-flex flex-column justify-content-end align-items-center text-white px-1 pt-2 pb-1 ${styles.eventCard} ${className} ${props.isHovering ? 'rounded-3' : ''} ${props.isMultiEventDate ? styles.multiEventFilter : ''} ${props.className} ${!props.isHovering && isPastEvent(displayedEvent) ? 'opacity-50' : ''}`}\n >\n {iconUrl && <LazyImage src={iconUrl} alt={displayedEvent.content.name} className={getBgImageClassName()} />}\n\n {coverUrl && !iconUrl && (\n <div\n style={{ backgroundImage: `url('${coverUrl}')` }}\n className={getBgImageClassName()}\n />\n )}\n\n {multiDayEvent && (\n <div className={`${styles.displayDate}`}>\n {SpecialEventHelper.getDisplayDate(displayedEvent.startDate, displayedEvent.endDate)}\n </div>\n )}\n <div className={`text-center ${styles.title} ${multiEvents ? 'mb-1' : 'mb-2'}`}>\n <p id='calendarEvent' className={`${props.responsiveText ? styles.titleText : ''} ${props.isHovering ? 'mb-0' : 'clamp-2'} h6`} title={displayedEvent.name}>{displayedEvent.name}</p>\n </div>\n\n {(multiEvents && sliderStep !== 0) && (\n <div className={`position-absolute bg-white rounded-circle ${styles.left}`}>\n <DivButton\n onClick={e => {\n e.stopPropagation();\n e.preventDefault();\n setSliderStep(s => s - 1);\n AnalyticsHelper.logUserAction({ date: formatAnalyticDataDate(props.date), action: 'previous', eventCount: props.eventsOnDay.length }, analyticsOptions);\n }}>\n <SvgContainer\n svgName={cvSvgLibrary.ChevronLeft}\n className={`d-inline-block svg-container text-dark ${styles.arrow}`}\n />\n </DivButton>\n </div>\n )}\n\n {multiEvents && sliderStep !== props.eventsOnDay.length - 1 && (\n <div className={`position-absolute bg-white rounded-circle ${styles.right}`}>\n <DivButton\n onClick={e => {\n e.stopPropagation();\n e.preventDefault();\n setSliderStep(s => s + 1);\n AnalyticsHelper.logUserAction({ date: formatAnalyticDataDate(props.date), action: 'next', eventCount: props.eventsOnDay.length }, analyticsOptions);\n }}>\n <SvgContainer\n svgName={cvSvgLibrary.ChevronRight}\n className={`d-inline-block svg-container text-dark ${styles.arrow}`}\n />\n </DivButton>\n </div>\n )}\n\n {multiEvents && (\n <div className={`d-flex ${styles.bottomBar} ${multiEvents ? '' : styles.bottomPlaceholder}`}>\n <SliderDots\n sliderStep={sliderStep}\n sliderLength={props.eventsOnDay.length}\n size='sm'\n className={`${props.isHovering ? 'mb-2' : 'mb-1'}`}\n onSliderDotClick={i => {\n setSliderStep(i);\n AnalyticsHelper.logUserAction({ date: formatAnalyticDataDate(props.date), action: 'jump', eventCount: props.eventsOnDay.length }, analyticsOptions);\n }}\n />\n </div>\n )}\n </div>\n </AppLink>\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"cell\":\"nsEjO\",\"multiEventCell\":\"vvFYj\",\"fadeIn\":\"BX0cX\"};","import React from 'react';\n\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { CalendarCellDate } from 'libs/shared/apps/calendar/components/calendar-cell-date/CalendarCellDate';\nimport { CalendarEvents } from 'libs/shared/apps/calendar/components/calendar-events/CalendarEvents';\nimport { CalendarCellProps } from 'libs/shared/apps/calendar/interfaces/CalendarCellProps';\nimport { HoverableProps } from 'libs/shared/components/hover-to-portal-container/HoverToPortalContainer';\n\nimport styles from './calendar-day.scss';\n\ntype CalendarDayProps = HoverableProps & CalendarCellProps;\n\nexport function CalendarDay(props: CalendarDayProps) {\n const isMultiEventDate = React.useMemo(\n () =>\n props.hoveredEvent?.endDate &&\n !DateHelper.isSame(props.date, props.hoveredEvent?.startDate) &&\n DateHelper.isBetween(\n DateHelper.format(props.date, 'YYYY-MM-DD'),\n props.hoveredEvent?.startDate,\n props.hoveredEvent?.endDate\n ),\n [props.hoveredEvent]\n );\n const backgroundColor = props.hoveredEvent ? props.getBackgroundColor?.(props.hoveredEvent.content) : null;\n\n return (\n <div className={`${styles.cell} fw-semibold`}>\n {!props.hideDay && (\n <CalendarCellDate\n date={props.date}\n notCurrentMonth={props.notCurrentMonth}\n timezone={props.timezone}\n />\n )}\n {isMultiEventDate && (\n <div style={{ backgroundColor }} className={styles.multiEventCell}></div>\n )}\n {props.eventsOnDay?.length > 0 && <CalendarEvents {...props} isMultiEventDate={isMultiEventDate} />}\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"tag\":\"XRj8d\",\"tooltip\":\"X6mLk\"};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport styles from './coming-soon-tag.scss';\n\nconst namespace = 'specialEventCalendar.comingSoonTag';\n\ninterface ComingSoonProps {\n className?: string;\n onlyIcon?: boolean;\n}\n\nexport function ComingSoonTag(props: ComingSoonProps): JSX.Element {\n return (\n <Tooltip title={LanguageService.getPhrase(namespace, 'tooltip')} spanHackClassName={`d-block ${styles.tooltip}`} spanHack>\n <div className={`d-flex text-dark align-items-center ${styles.tag} ${props.className}`}>\n <SvgContainer svgName={cvSvgLibrary.Timer} />\n {!props.onlyIcon && LanguageService.getPhrase(namespace, 'comingSoon')}\n </div>\n </Tooltip>\n );\n}","import { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { CalendarEvent } from 'libs/shared/interfaces';\n\nexport const SpecialEventHelper = {\n getDisplayDate(startDate: string, endDate: string): string {\n if (!endDate)\n // one day event\n return DateHelper.format(startDate, 'D MMM');\n\n if (startDate.slice(5, 7) !== endDate.slice(5, 7))\n // span across months\n return `${DateHelper.format(startDate, 'D MMM')} - ${DateHelper.format(endDate, 'D MMM')}`;\n \n // same month event\n return `${DateHelper.format(startDate, 'D')} - ${DateHelper.format(endDate, 'D')} ${DateHelper.format(startDate, 'MMM')}`;\n },\n\n getEventsInMonth(calendarEvents: CalendarEvent[], month: Date) {\n return calendarEvents.filter(e => DateHelper.format(e.startDate, 'YYYY-MM') === DateHelper.format(month, 'YYYY-MM'));\n },\n\n getOrdinalDate(date: string): string {\n return `${DateHelper.getLocalDateOrdinal(DateHelper.get(date, 'date'))} ${DateHelper.format(date, 'MMMM')}`;\n }\n};"],"names":["Timezone","TIMEZONES_US","name","timezone","code","ET","TimezoneHelper","convertToUTCString","datetime","DateHelper","convertUTCToTimezoneDate","Date","utcDate","timezoneDateTime","Intl","DateTimeFormat","timeZone","year","month","day","hour","minute","format","getPhrase","LanguageService","CalendarCellDate","props","isToday","toISOString","date","dateClassName","notCurrentMonth","isHovering","hasEvent","className","delay","ref","CalendarEvents","sliderStep","setSliderStep","sortedEventsOnDay","fadePastEvents","eventsOnDay","sort","a","b","isPastEvent","multiEvents","length","displayedEvent","find","e","idx","multiDayEvent","endDate","backgroundColor","getBackgroundColor","content","hardCodedEvent","getHardCodedEvent","iconUrl","getIconUrl","coverUrl","getCoverUrl","isComingSoon","status","ClassificationStatus","hasInitialized","setClassName","randomNumber","Math","floor","random","window","setTimeout","setHasInitialized","setHoveredEvent","hoveredEvent","specialEventId","analyticsData","presentationId","eventCount","eventId","map","join","topicId","id","eventStatus","getAnalyticsData","analyticsOptions","actionType","entity","location","formatAnalyticDataDate","getBgImageClassName","isMultiEventDate","event","startDateTime","onClick","AnalyticsHelper","AppLink","appLink","getEventsListAppLink","getTopicAppLink","TextHelper","getAppLink","labelledBy","ComingSoonTag","onlyIcon","hideDay","style","LazyImage","src","alt","backgroundImage","SpecialEventHelper","startDate","responsiveText","title","DivButton","stopPropagation","preventDefault","s","action","SvgContainer","svgName","SliderDots","sliderLength","size","onSliderDotClick","i","defaultProps","CalendarDay","namespace","Tooltip","spanHackClassName","spanHack","getDisplayDate","slice","getEventsInMonth","calendarEvents","filter","getOrdinalDate"],"sourceRoot":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[696],{35348:(e,t,n)=>{n.d(t,{x:()=>o});var r=n(32735),i=n(10038);function a(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function o(){var e,t,n=r.useRef(null),o=r.useRef(0);r.useEffect((function(){n.current.clientHeight&&(o.current=n.current.clientHeight)}),[]);var c,l,u=(c=r.useState((null===(e=n.current)||void 0===e?void 0:e.scrollHeight)>o.current),l=2,function(e){if(Array.isArray(e))return e}(c)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,i,a,o,c=[],l=!0,u=!1;try{if(a=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=a.call(n)).done)&&(c.push(r.value),c.length!==t);l=!0);}catch(e){u=!0,i=e}finally{try{if(!l&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(u)throw i}}return c}}(c,l)||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}}(c,l)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),s=u[0],d=u[1];return(0,i.H)((function(){var e;n.current.clientHeight&&(o.current=n.current.clientHeight,d((null===(e=n.current)||void 0===e?void 0:e.scrollHeight)>o.current))})),r.useEffect((function(){var e,t;(null===(e=n.current)||void 0===e?void 0:e.scrollHeight)&&d((null===(t=n.current)||void 0===t?void 0:t.scrollHeight)>o.current)}),[null===(t=n.current)||void 0===t?void 0:t.scrollHeight,o.current]),{containerRef:n,showButton:s}}},60696:(e,t,n)=>{n.r(t),n.d(t,{SeriesView:()=>ue});var r=n(32735),i=n(70680),a=n(23481),o=n(20354),c=n(65858),l=n(44522),u=n(49935),s=n(11607),d=n(83345),f=n(35348);const p={text:"wLJpg",seeMore:"x5t0p"};function v(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var m="shared.expandableText";function h(e){var t,n,i=e.text,a=e.lines,o=void 0===a?2:a,c=(t=r.useState(!1),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,i,a,o,c=[],l=!0,u=!1;try{if(a=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=a.call(n)).done)&&(c.push(r.value),c.length!==t);l=!0);}catch(e){u=!0,i=e}finally{try{if(!l&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(u)throw i}}return c}}(t,n)||function(e,t){if(e){if("string"==typeof e)return v(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)?v(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.")}()),l=c[0],u=c[1],h=(0,f.x)(),y=h.containerRef,b=h.showButton;return r.createElement("div",{className:"d-flex overflow-hidden"},r.createElement("div",{className:"".concat(l?"":"clamp-".concat(o)," ").concat(p.text),ref:y},!l&&b&&r.createElement(s.L,{onClick:function(){return u(!0)},className:"ms-1 info-text hover-text-underline ".concat(p.seeMore)},r.createElement(d.x,{namespace:m,phrase:"seeMore"})),r.createElement("p",{className:"mb-0 d-inline"},i),l&&r.createElement(s.L,{onClick:function(){return u(!1)},className:"ms-1 info-text hover-text-underline d-inline"},r.createElement(d.x,{namespace:m,phrase:"seeLess"}))))}var y=n(71020),b=n(74696),g=n(13231),S=n(79718),E=n(7733),w=n(51365),k=n(16714),A=n(23788),x=n(21750),O=n(39151),I=n(1666),L=n(60011),j=n(31949),C=n(63719),P=n(56520),T=n(91286),N=n(60115),F=n(22902),H=n(79612),_=n(76753),R=n(35223),B=n(68140),G=n(14070),V=n(97291),M=n(64364);function U(e){return U="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},U(e)}function D(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,J(r.key),r)}}function J(e){var t=function(e,t){if("object"!=U(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,"string");if("object"!=U(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==U(t)?t:t+""}function W(e,t,n){return t=Z(t),function(e,t){if(t&&("object"==U(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,Q()?Reflect.construct(t,n||[],Z(e).constructor):t.apply(e,n))}function Q(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(Q=function(){return!!e})()}function Z(e){return Z=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},Z(e)}function $(e,t){return $=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},$(e,t)}var K="shared.seriesNotFoundError",q=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,["Series 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&&$(e,t)}(t,e),n=t,(r=[{key:"name",get:function(){return"SeriesNotFoundError"}},{key:"heading",get:function(){return a.T.getPhrase(K,"heading")}},{key:"description",get:function(){return a.T.getPhrase(K,"description")}}])&&D(n.prototype,r),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,r}(M.H),z=n(51855),X=n(10671),Y=n(7179),ee=n(27638),te=n(44110),ne=n(97816),re=n(10741),ie=n(33192),ae=n(22490),oe=n(82431),ce=a.T.encloseNamespace("shared.series"),le=function(e){return E.o[e.name.charCodeAt(0)%E.o.length]};function ue(e){var t,n,a,s,d=(0,i.I0)(),f=(0,ee.u)(c.LZ.VideoThumbnail),p=f.setFavourite,v=f.canFavourite,m=(0,F.T)(),E=m.hasPermissions,M=m.hasLocalPermissions,U=(0,z.G)().isPlugin,D=(0,P.R0)(),J=D.openInCurationStudioLabel,W=D.isUserCurator,Q=D.getOpenInCurationStudioLink;(0,Y.P)({id:e.id,app:"series",shareId:e.shareId});var Z=o.a.useBasicFetch(O.L.config()),$=o.a.useBasicFetch(j.N.currentUser()),K=o.a.useBasicFetch((null===(t=$.data)||void 0===t?void 0:t.isAuthenticated)&&I.h.yearGroups($.data.customerId)),ue=o.a.useBasicFetch(e.shareId?L.J.sharedSeries(e.id,e.shareId):L.J.series(e.id)),se=(0,te.i)();(0,H.M)(_.CG.getSeriesMetadata({content:ue.data,phraseContext:{phraseHandler:ce,titlePhrase:"pageTitle",descriptionPhrase:"pageDescription"},canonicalLink:ie.f.getCanonicalLink({stripPresentationSlug:!0}),allowIndexing:ie.f.allowIndexing()}));var de=(0,X._)({location:X.i.VideoItem,shareId:e.shareId}),fe=o.a.useBasicFetch(e.classificationId&&x.x.path(e.classificationId));function pe(e){return!ie.f.isBot()||!e}function ve(t){var n;return pe(t)?L.J.seriesVideos(e.id,null===(n=$.data)||void 0===n?void 0:n.id,he,t):null}function me(e){return o.a.getFetch(d)(ve(e))}var he=!!$.data&&B.d.getOrSetSortType($.data.id,e.sort,A.D.Series),ye={classificationId:e.classificationId,mtv:e.moviesAndTv},be=(0,N.K)(!!$.data&&ve,me),ge=be.items,Se=be.isFetching,Ee=be.nextCursor;(0,ne.V)(ge),(0,T.v)(ue,{notFound:q});var we=!E(k.C.StudentExperience)&&M(k.E.UseSeriesActions),ke=(0,C.h)({name:null===(n=ue.data)||void 0===n?void 0:n.name});return r.createElement(w.M.Provider,{value:de},r.createElement("div",{className:"px-3"},Z.data&&ue.data?r.createElement(l.p,{heading:ue.data.name,banner:ue.data.banner,imageCdnUrl:Z.data.imageCdnUrl,actions:function(){var e,t,n;if(U||!we)return[];var r=[{label:ce("share"),appLink:ue&&{application:V.O.DEFAULT,action:G.e.Default.SHARE,args:[null===(e=ue.data)||void 0===e?void 0:e.id],params:{entityType:"series"}},svgName:R.vn.Share2,className:"btn btn-outline-dark me-2",button:!0}];return W&&r.push({label:J,href:Q(null===(t=ue.data)||void 0===t?void 0:t.typeId,null===(n=ue.data)||void 0===n?void 0:n.id),openInNewTab:!0}),r}(),actionsDropdownClassName:"btn btn-outline-dark",blockColourClass:le(ue.data)}):r.createElement(l.v,null),r.createElement("div",null,r.createElement("div",{className:(null===(a=ue.data)||void 0===a?void 0:a.description)||e.moviesAndTv&&fe.data?"border-bottom py-3 mb-3":"pt-3 mb-2"},!ue.data||e.classificationId&&!fe.data?r.createElement(u.b2,null):r.createElement(u.Oo,{breadcrumbs:ke}),r.createElement("div",{className:"d-flex align-items-center"},(null===(s=ue.data)||void 0===s?void 0:s.description)&&r.createElement("div",{className:"mb-0 ".concat(e.classificationId?"pt-2":"")},r.createElement(h,{text:ue.data.description})),ue.data&&r.createElement("div",{className:"ms-auto"},r.createElement(S.p,{variant:"outline-dark",type:he,analyticsOptions:{location:c.LZ.VideoListHeader,entity:c.py.Video,actionType:c.Vw.Sort,workflowPhase:c.eu.Complete},getSortAppLink:function(e){return oe.j.getSeriesAppLink(ue.data,Object.assign(Object.assign({},ye),{sort:e}))}})))),ge?r.createElement(r.Fragment,null,r.createElement(g.E4,{videos:ge,yearGroups:K.data,getVideoAppLink:e.getVideoAppLink,hasPermissions:E,getSubTextAppLink:function(e){return oe.j.getSeriesAppLink(null==e?void 0:e.series,Object.assign(Object.assign({},ye),{sort:he}))},setFavourite:p,canFavourite:v,presentationAudiences:e.moviesAndTv?null:se.data,getPreviewQuestionsAppLink:function(e){return re.j.getPreviewQuestionsAppLink(e)},isPlugin:U,getClassroomGuideAppLink:ae.W.getClassroomGuideAppLink,getInteractiveGuidanceAppLink:ae.W.getInteractiveGuidanceAppLink,getResourceGuidanceAppLink:ae.W.getResourceGuidanceAppLink}),(Se||Ee)&&pe(Ee)&&r.createElement(y._,{isFetching:Se,fetchNext:me,nextCursor:Ee})):r.createElement(b.S,null))))}}}]);
|
|
2
|
+
//# sourceMappingURL=696-fa78eb455f-lite.chunk.js.map
|