@clickview/lite 0.82.0-rc.2 → 0.82.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/{2258-lite-16c2b3509c.chunk.css → 275-lite-65ac7606d9.chunk.css} +1 -0
- package/dist/languages/en.json +1 -1
- package/dist/scripts/2126-1ef42f1367-lite.chunk.js +2 -0
- package/dist/scripts/{2126-94c739ca6b-lite.chunk.js.map → 2126-1ef42f1367-lite.chunk.js.map} +1 -1
- package/dist/scripts/275-3b6b9cfc9c-lite.chunk.js +3 -0
- package/dist/scripts/275-3b6b9cfc9c-lite.chunk.js.map +1 -0
- package/dist/scripts/4504-c7d0c4e1e7-lite.chunk.js +2 -0
- package/dist/scripts/{4504-5a8c62527f-lite.chunk.js.map → 4504-c7d0c4e1e7-lite.chunk.js.map} +1 -1
- package/dist/scripts/6741-1e64f67951-lite.chunk.js +3 -0
- package/dist/scripts/{6741-ae590891ba-lite.chunk.js.map → 6741-1e64f67951-lite.chunk.js.map} +1 -1
- package/dist/scripts/6948-b1b7f560c9-lite.chunk.js +3 -0
- package/dist/scripts/{6948-49f33f09c8-lite.chunk.js.map → 6948-b1b7f560c9-lite.chunk.js.map} +1 -1
- package/dist/scripts/{8-40155bcddb-lite.chunk.js → 8-a610fce3d1-lite.chunk.js} +2 -2
- package/dist/scripts/{8-40155bcddb-lite.chunk.js.map → 8-a610fce3d1-lite.chunk.js.map} +1 -1
- package/dist/scripts/{bundle-aff25c8310.min.js → bundle-1fa665690e.min.js} +3 -3
- package/dist/scripts/{bundle-aff25c8310.min.js.map → bundle-1fa665690e.min.js.map} +1 -1
- package/package.json +1 -1
- package/dist/scripts/2126-94c739ca6b-lite.chunk.js +0 -2
- package/dist/scripts/2258-3721ba5687-lite.chunk.js +0 -3
- package/dist/scripts/2258-3721ba5687-lite.chunk.js.map +0 -1
- package/dist/scripts/4504-5a8c62527f-lite.chunk.js +0 -2
- package/dist/scripts/6741-ae590891ba-lite.chunk.js +0 -3
- package/dist/scripts/6948-49f33f09c8-lite.chunk.js +0 -3
- /package/dist/scripts/{2258-3721ba5687-lite.chunk.js.LICENSE.txt → 275-3b6b9cfc9c-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{6741-ae590891ba-lite.chunk.js.LICENSE.txt → 6741-1e64f67951-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{6948-49f33f09c8-lite.chunk.js.LICENSE.txt → 6948-b1b7f560c9-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{bundle-aff25c8310.min.js.LICENSE.txt → bundle-1fa665690e.min.js.LICENSE.txt} +0 -0
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/*! For license information please see 6741-1e64f67951-lite.chunk.js.LICENSE.txt */
|
|
2
|
+
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[6741],{45781:(e,t,n)=>{n.d(t,{z:()=>p});var r=n(32735),a=n(6044),i=n(23481),o=n(65858),c=n(38502),s=n(83345),l=n(56644);const u={pillTab:"bMJM0"};var d="discover.header";function p(e){var t,n,p,m,f,v;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 y=[{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===(m=e.appLinks)||void 0===m?void 0:m.whatsNew)},analyticsOptions:{actionType:o.Vw.Click,entity:o.py.Url,location:o.LZ.MagicTabs}}];return e.showCalendar&&y.push({name:i.T.getPhrase(d,"calendar"),appLink:null===(f=e.appLinks)||void 0===f?void 0:f.calendar,active:"calendar"===e.active,analyticsData:{name:i.T.getPhrase(d,"calendar"),url:a.C$.getHref(null===(v=e.appLinks)||void 0===v?void 0:v.calendar)},analyticsOptions:{actionType:o.Vw.Click,entity:o.py.Url,location:o.LZ.MagicTabs}}),r.createElement("div",{className:"py-3 text-center mx-n3"},r.createElement(c.r,{tabs:y,className:u.pillTab}))}},38502:(e,t,n)=>{n.d(t,{r:()=>d});var r=n(32735),a=n(49985),i=n(15611),o=n(18559),c=n(11607),s=n(83914),l=n(22771);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 px-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:()=>p});var r=n(53301),a=n.n(r),i=n(28046),o=n(93824),c=n(86613);function s(e){return s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},s(e)}function l(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function u(e,t,n){return(t=function(e){var t=function(e){if("object"!=s(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=s(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==s(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var d=u(u(u(u(u({},o.C.AU,"au"),o.C.NZ,"nz"),o.C.UK,"uk"),o.C.US,"us"),o.C.CA,"ca"),p={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}},mapCountryCodeToTag:function(e){return d[e.toLowerCase()]},getTags:function(e,t,n,r){var a,i=[t].concat(function(e){if(Array.isArray(e))return l(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 l(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?l(e,t):void 0}}(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=p.mapCountryCodeToTag(e.countryCode);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:()=>oe});var r=n(32735),a=n(6044),i=n(23481),o=n(57900),c=n(20354),s=n(2948),l=n(49985),u=n(65858),d=n(75896),p=n(45781),m=n(131),f=n(16714),v=n(56644),y=n(21366),g=n(97958),h=n(83345),b=n(36532),T=n(35223),S="subjects.discoverDashboardEmptyState",C=i.T.encloseNamespace(S);function A(e){var t,n,a=(null===(t=e.dashboard)||void 0===t?void 0:t.status)===v.GL.Archived;return r.createElement(g.u,null,r.createElement(g.u.Image,{src:e.imageUrl,altText:C("info")}),r.createElement(g.u.Heading,null,r.createElement(h.x,{namespace:S,phrase:"heading"})),r.createElement(g.u.Info,null,r.createElement(h.x,{namespace:S,phrase:"info"})),r.createElement(b.u,{title:a?i.T.getPhrase(S,"archivedCtaTooltip"):"",spanHack:!0},r.createElement(g.u.Cta,{text:i.T.getPhrase(S,"add"),appLink:null===(n=e.addWidgetApplink)||void 0===n?void 0:n.call(e),className:"btn btn-dark",icon:T.vn.Plus,disabled:a})))}function w(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=y.S.getWidgetParams(n,r,y.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(f.C.StudentExperience),showCalendar:e.showCalendar,active:"forYou"}),a.map(function(t,n){var a;return r.createElement(m.L,{widgetCollection:v.ku.Discover,key:t.id,id:t.id,getContentRequest:i,audiences:e.audiences,name:t.name,description:t.description,templateId:t.templateId,metadata:t.metadata,presentation:e.presentation,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,lazyLoad:e.lazyLoad,dashboardTarget:v.ku.Discover,widgetIndex:n,jobTitle:e.jobTitle,isPreviewing:e.isReadonly,imageUrls:e.imageUrls,settings:{hasTopicDirectories:null===(a=e.settings)||void 0===a?void 0:a.hasTopicDirectories,hasOnboardingV2:e.settings.hasOnboardingV2,hasCompletedOnboardingV2:e.settings.hasCompletedOnboardingV2},availablePresentations:e.availablePresentations,imageCdnUrl:e.commonVideoProps.imageCdnUrl,commonVideoProps:e.commonVideoProps,classification:void 0,contentType:void 0,hasTableOfContents:!1,limitTotalItems:!1,isTertiaryCustomerWithoutExchange:e.isTertiaryCustomerWithoutExchange,seeMoreLink:void 0,onClickRemoveItem:e.removeFromVideoHistory,badgeComponent:null})}),o&&r.createElement(A,{dashboard:e.dashboard,isReadonly:e.isReadonly,imageUrl:e.emptyImageUrl,addWidgetApplink:e.widgetAppLinks.widgetWizard}))}var E=n(31549),O=n(38143),k=n(17101),L=n(72639),P=n(12754),N=n(42308),D=n(1666),I=n(80889),U=n(7198),j=n(98064),x=n(61699),R=n(31949),F=n(69883),_=n(22902),H=n(15311),V=n(79612),W=n(37802),M=n(69454),B=n(52167),Z=n(76753),Y=n(99742),G=n(58321),z=n(86698),q=n(85369),$=n(23737),J=n(33192),K=n(23923),X=n(87821),Q=n(27051);function ee(){var e,t,n="function"==typeof Symbol?Symbol:{},r=n.iterator||"@@iterator",a=n.toStringTag||"@@toStringTag";function i(n,r,a,i){var s=r&&r.prototype instanceof c?r:c,l=Object.create(s.prototype);return te(l,"_invoke",function(n,r,a){var i,c,s,l=0,u=a||[],d=!1,p={p:0,n:0,v:e,a:m,f:m.bind(e,4),d:function(t,n){return i=t,c=0,s=e,p.n=n,o}};function m(n,r){for(c=n,s=r,t=0;!d&&l&&!a&&t<u.length;t++){var a,i=u[t],m=p.p,f=i[2];n>3?(a=f===r)&&(s=i[(c=i[4])?5:(c=3,3)],i[4]=i[5]=e):i[0]<=m&&((a=n<2&&m<i[1])?(c=0,p.v=r,p.n=i[1]):m<f&&(a=n<3||i[0]>r||r>f)&&(i[4]=n,i[5]=r,p.n=f,c=0))}if(a||n>1)return o;throw d=!0,r}return function(a,u,f){if(l>1)throw TypeError("Generator is already running");for(d&&1===u&&m(u,f),c=u,s=f;(t=c<2?e:s)||!d;){i||(c?c<3?(c>1&&(p.n=-1),m(c,s)):p.n=s:p.v=s);try{if(l=2,i){if(c||(a="next"),t=i[a]){if(!(t=t.call(i,s)))throw TypeError("iterator result is not an object");if(!t.done)return t;s=t.value,c<2&&(c=0)}else 1===c&&(t=i.return)&&t.call(i),c<2&&(s=TypeError("The iterator does not provide a '"+a+"' method"),c=1);i=e}else if((t=(d=p.n<0)?s:n.call(r,p))!==o)break}catch(t){i=e,c=1,s=t}finally{l=1}}return{value:t,done:d}}}(n,a,i),!0),l}var o={};function c(){}function s(){}function l(){}t=Object.getPrototypeOf;var u=[][r]?t(t([][r]())):(te(t={},r,function(){return this}),t),d=l.prototype=c.prototype=Object.create(u);function p(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,l):(e.__proto__=l,te(e,a,"GeneratorFunction")),e.prototype=Object.create(d),e}return s.prototype=l,te(d,"constructor",l),te(l,"constructor",s),s.displayName="GeneratorFunction",te(l,a,"GeneratorFunction"),te(d),te(d,a,"Generator"),te(d,r,function(){return this}),te(d,"toString",function(){return"[object Generator]"}),(ee=function(){return{w:i,m:p}})()}function te(e,t,n,r){var a=Object.defineProperty;try{a({},"",{})}catch(e){a=0}te=function(e,t,n,r){if(t)a?a(e,t,{value:n,enumerable:!r,configurable:!r,writable:!r}):e[t]=n;else{var i=function(t,n){te(e,t,function(e){return this._invoke(t,n,e)})};i("next",0),i("throw",1),i("return",2)}},te(e,t,n,r)}function ne(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 re=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())})},ae="dashboard.dashboard",ie=i.T.encloseNamespace(ae);function oe(e){var t,n,d,p,m,y,g,h,b=c.a.useBasicFetch(R.N.currentUser()),T=c.a.useBasicFetch((null===(t=b.data)||void 0===t?void 0:t.isAuthenticated)&&R.N.user(b.data.id)),S=(0,_.T)(),C=S.hasLocalPermissions,A=S.hasPermissions,te=(0,F.Z)(),oe=c.a.useBasicFetch(C(f.E.ManageDiscoverPreferences)&&(null===(n=b.data)||void 0===n?void 0:n.isAuthenticated)&&D.h.customer(b.data.customerId)),ce=c.a.useBasicFetch((null===(d=b.data)||void 0===d?void 0:d.isAuthenticated)&&j.D.libraries()),se=(0,z.y)().availablePresentations,le=(0,K.B)(),ue=(0,H.r)(),de=(0,$.y)({targetType:v.ku.Discover,queryParams:e.queryParams,presentationSlug:e.presentationSlug}),pe=de.dashboard,me=de.presentation,fe=de.audiences,ve=c.a.useGetFetchAsync(),ye=(0,W.r)(null),ge=(0,G.U)({locationContext:u.LZ.Dashboard}).commonVideoProps,he=(g=(0,s.D)(O.g.AUDIENCE_FILTER,void 0,{storage:o.Z1.SessionStorage}),h=1,function(e){if(Array.isArray(e))return e}(g)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var 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}}(g,h)||function(e,t){if(e){if("string"==typeof e)return ne(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)?ne(e,t):void 0}}(g,h)||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],be=(0,Q.E)(M.T.getAudienceParams(he),b.data),Te=function(e){return+L.p[null==e?void 0:e.learningLevel]===L.p.Level_1?"VariantOne":"VariantTwo"}(me);(0,V.M)(Z.CG.getDiscoverMetadata({content:me,phraseContext:{phraseHandler:ie,titlePhrase:"pageTitle".concat(Te),descriptionPhrase:"pageDescription".concat(Te)},canonicalLink:J.f.getCanonicalLink(),allowIndexing:J.f.allowIndexing(),hrefLang:J.f.getStaticRouteHrefLang(null==me?void 0:me.learningLevel,be.discover)}));var Se=(0,q.N)().showCalendar;return r.createElement("div",{className:"bg-white px-4"},r.createElement(w,{dashboard:pe.data,widgetAppLinks:be,headerAppLinks:(0,Q.u)(),presentation:me,getWidgetContentRequest:function(e,t,n,r){var a=E.g.hasTwigOrTigtag(ce.data,b.data),i=a.hasTwig,o=a.hasTigtag;return I._.dashboardWidgetContent(e,t,n,r,{hideTigTag:!o,hideTwig:!i})},audiences:fe.data,updatePreferences:function(e,t,n,r){return re(this,void 0,void 0,ee().m(function t(){var a,i;return ee().w(function(t){for(;;)switch(t.n){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.n=1;break}return t.n=1,ve(x.o.followSubjects(a.map(function(e){return e.id})));case 1:if(!(null==i?void 0:i.length)){t.n=2;break}return t.n=2,ve(x.o.unfollowSubjects(i.map(function(e){return e.id})));case 2:return t.a(2,ve(I._.updateWidgetPreferences(e,r.map(function(e){return{id:e.id,index:e.index}}),b.data)))}},t)}))},hasPermissions:A,hasLocalPermissions:C,onSubmitFeedback:A(f.C.CanSubmitFeedback)&&function(e){return re(this,void 0,void 0,ee().m(function t(){var n;return ee().w(function(t){for(;;)switch(t.n){case 0:return t.n=1,ve(U.f.submitFeedback({type:k.n.Footer,user:B.m.getUserInfo(b.data,oe.data),tags:B.m.getTags(b.data,P.x.Primary,A(f.C.StudentExperience),["discover","in product feedback"])},{reaction:e.type,feedback:e.content,location:"Discover Footer",presentationName:me.description,presentationId:me.id,dashboardName:pe.data.name,dashboardId:pe.data.id,currentPageUrl:a.Ab.GetCurrentUrl()}));case 1:return n=t.v,l.k.logUserAction({feedbackType:e.type,content:e.content,presentationId:me.id,dashboardId:pe.data.id},{actionType:u.Vw.Submit,location:u.LZ.DiscoverFooter,entity:u.py.Feedback,workflowPhase:u.eu.Complete}),t.a(2,n)}},t)}))},removeFromVideoHistory:function(e,t,n,r){return re(this,void 0,void 0,ee().m(function a(){return ee().w(function(a){for(;;)switch(a.n){case 0:if(r===N.z.ContinueWatching){a.n=1;break}return a.a(2);case 1:return a.p=1,a.n=2,ve(X.p.removeFromHistory(e,["widget:".concat(n)]));case 2:te.success(i.T.getPhrase(ae,"removeFromHistorySuccess")),l.k.logUserAction({id:e,name:t,widgetId:n},{entity:u.py.Video,actionType:u.Vw.Click,descriptor:u.XX.RemoveFromWatchHistory,location:u.LZ.SlidingListItem}),a.n=4;break;case 3:a.p=3,a.v,te.error(i.T.getPhrase(ae,"removeFromHistoryError",{name:t}));case 4:return a.a(2)}},a,null,[[1,3]])}))},lazyLoad:!J.f.isBot(),showCalendar:Se,jobTitle:null===(y=null===(m=null===(p=T.data)||void 0===p?void 0:p.userProfile)||void 0===m?void 0:m.metadata)||void 0===y?void 0:y.jobTitle,imageUrls:{onboardingTeacherBackground:Y.W.OnboardingV2.Widget.TEACHER_BACKGROUND},settings:ye,availablePresentations:se,isTertiaryCustomerWithoutExchange:le&&!(null==ue?void 0:ue.hasProduct(P.x.Exchange)),commonVideoProps:ge}))}},27051:(e,t,n)=>{n.d(t,{E:()=>f,u:()=>v});var r=n(1048),a=n(28400),i=n(183),o=n(14070),c=n(97291),s=n(34181),l=n(22490),u=n(67963),d=n(82431),p="classification-latest-releases",m=["preview","dashboardId","skipPrompt"];function f(e,t){return{classification:function(t){return s.L.getAppLink(t,e||{})},videoType:function(e,n){return l.W.getAppLink(e,Object.assign(Object.assign({},n),{context:i.Q.Widget,includeContext:null==t?void 0:t.isAuthenticated}))},series:d.j.getSeriesAppLink,playlist:function(e){return{application:c.O.PLAYLISTS,action:o.e.Playlists.PLAYLIST,args:[e.id,a.m.slugify(e.name)]}},latestReleases:function(){return{application:c.O.CONTENT_UPDATES,action:o.e.ContentUpdates.CONTENT_UPDATES}},allTopics:function(){return{application:c.O.SUBJECT,action:o.e.Subjects.PRESENTATION_TOPICS}},classificationLatestReleases:function(e){return e.id===p?{application:c.O.CONTENT_UPDATES,action:o.e.ContentUpdates.CONTENT_UPDATES}:{application:c.O.CONTENT_UPDATES,action:o.e.ContentUpdates.CLASSIFICATION_UPDATE,args:[e.id,a.m.slugify(e.name)]}},classificationDirectory:function(t){var n=t;return{application:c.O.SUBJECT,action:o.e.Subjects.CLASSIFICATION_TOPICS,args:[n.id,a.m.slugify(n.name)],params:r.t.omit(e,m)}},widgetVideoList:function(e,t){return{application:c.O.DASHBOARD,action:o.e.Dashboard.DASHBOARD,args:[e,a.m.slugify(t)]}},watchHistory:function(){return{application:c.O.WATCH_HISTORY,action:o.e.WatchHistory.HOME}},company:function(e){return{application:c.O.MOVIES_AND_TV,action:o.e.MoviesAndTv.COMPANY_DASHBOARD,args:[e.id,a.m.slugify(e.name)]}},discover:function(){return{application:c.O.DASHBOARD,action:o.e.Dashboard.HOME}},calendar:function(){return{application:c.O.CALENDAR,action:o.e.Calendar.CALENDAR}},calendarMonth:function(e,t){var n={application:c.O.CALENDAR,action:o.e.Calendar.CALENDAR_MONTH,args:[e.toLowerCase()]};return t&&(n.params={year:t}),n},onboardingStep:function(e){return(0,u.u)()[e]},onboardingAppLinks:function(){return(0,u.u)()},livestream:function(){return null},widgetWizard:function(){return null}}}function v(){return{forYou:{application:c.O.DASHBOARD,action:o.e.Dashboard.HOME},whatsNew:{application:c.O.CONTENT_UPDATES,action:o.e.ContentUpdates.CONTENT_UPDATES},calendar:{application:c.O.CALENDAR,action:o.e.Calendar.CALENDAR}}}},87821:(e,t,n)=>{n.d(t,{p:()=>o});var r=n(99940),a=n(110);function i(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 o={userVideoHistory:function(e,t,n,r){var i="video:history",o="{gateway}/v1/users/me/watch-history";return e&&(i+=":".concat(e),o+="?cursor=".concat(e)),{key:i,url:o,formatData:function(e){return{data:e.data.map(function(e){var t=a.O.format(e.lastTimeWatched),n=a.O.format(t,"YYYY-MM-DD");return Object.assign(Object.assign({},e),{lastTimeWatched:t,lastDateWatched:n})}),pagination:e.pagination}},success:t,error:n,always:r}},videoHistory:function(e,t,n,r,a){var i=e.sort().map(function(e){return"videoId=".concat(e)});return{key:"video:history:videos:".concat(i.join("&")),url:"{gateway}/v1/videos/history?".concat(i.join("&")),normalizeOptions:{namespace:t},formatData:function(e){return(null==e?void 0:e.length)?e.map(function(e){return{id:e.videoId,lastProgressPoint:e.lastProgressPoint}}):e},success:n,error:r,always:a}},removeFromHistory:function(e){var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return{url:"{gateway}/v1/users/me/videos/".concat(e,"/watch-history"),key:"remove:video:history:".concat(e),type:r.k.DELETE,invalidationKeys:["video:history"].concat((t=n,function(e){if(Array.isArray(e))return i(e)}(t)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(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}}(t)||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.")}()))}}}},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 m(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 f(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)?f(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 f(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 v(e,t,n){return(t=function(e){var t=function(e){if("object"!=p(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=p(n))return n;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 y=v(v(v(v(v(v(v({},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,[]),o.t.CA,[]);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()),f=y[null===(e=p.data)||void 0===e?void 0:e.contentRegion],v=u.i.getMappedPresentationLevel(null==c?void 0:c.learningLevel),g=!(null==f?void 0:f.find(function(e){return e.toString()===(null==v?void 0:v.toString())})),h=!o&&!n,b=m(r.useState(!h&&!g),2),T=b[0],S=b[1],C=m(r.useState(o||!(null==c?void 0:c.id)),2),A=C[0],w=C[1];return r.useEffect(function(){h||g?S(!1):A||S(!0),w(o||!(null==c?void 0:c.id))},[n,null==c?void 0:c.id,A]),a.h.isDevelopment?{showCalendar:!0,isLoading:!1}:{showCalendar:T,isLoading:A}}},22771:(e,t,n)=>{n.d(t,{Z:()=>r});const r={pillTabSelector:"Hdi6o",tab:"RvNxr",minWidth:"GHSz9",radiusSmall:"VhJJa",tabLink:"WFyvo"}}}]);
|
|
3
|
+
//# sourceMappingURL=6741-1e64f67951-lite.chunk.js.map
|
package/dist/scripts/{6741-ae590891ba-lite.chunk.js.map → 6741-1e64f67951-lite.chunk.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scripts/6741-ae590891ba-lite.chunk.js","mappings":";oNACA,SAAgB,QAAU,SCa1B,IAAMA,EAAY,kBAgBZ,SAAUC,EAAeC,mBAC7B,IAAKA,EAAMC,KACT,OAAO,iCAET,GAAID,EAAMC,OAAS,cAA6BD,EAAME,qBACpD,OACE,uBAAKC,UAAU,QACb,sBAAIA,UAAU,WACZ,gBAACC,EAAA,EAAI,CAACN,UAAWA,EAAWO,OAAO,cAM3C,IAAMC,EAAO,CAAC,CACZC,KAAMC,EAAA,YAA0BV,EAAW,UAC3CW,QAAuB,QAAd,EAAAT,EAAMU,gBAAQ,eAAEC,OACzBC,OAAyB,WAAjBZ,EAAMY,OACdC,cAAe,CACbN,KAAMC,EAAA,YAA0BV,EAAW,UAC3CgB,IAAK,aAAoC,QAAd,EAAAd,EAAMU,gBAAQ,eAAEC,SAE7CI,iBAAkB,CAChBC,WAAY,WACZC,OAAQ,SACRC,SAAU,iBAEX,CACDX,KAAMC,EAAA,YAA0BV,EAAW,YAC3CW,QAAuB,QAAd,EAAAT,EAAMU,gBAAQ,eAAES,SACzBP,OAAyB,aAAjBZ,EAAMY,OACdC,cAAe,CACbN,KAAMC,EAAA,YAA0BV,EAAW,YAC3CgB,IAAK,aAAoC,QAAd,EAAAd,EAAMU,gBAAQ,eAAES,WAE7CJ,iBAAkB,CAChBC,WAAY,WACZC,OAAQ,SACRC,SAAU,kBAqBd,OAjBIlB,EAAMoB,cACRd,EAAKe,KAAK,CACRd,KAAMC,EAAA,YAA0BV,EAAW,YAC3CW,QAAuB,QAAd,EAAAT,EAAMU,gBAAQ,eAAEY,SACzBV,OAAyB,aAAjBZ,EAAMY,OACdC,cAAe,CACbN,KAAMC,EAAA,YAA0BV,EAAW,YAC3CgB,IAAK,aAAoC,QAAd,EAAAd,EAAMU,gBAAQ,eAAEY,WAE7CP,iBAAkB,CAChBC,WAAY,WACZC,OAAQ,SACRC,SAAU,kBAMd,uBAAKf,UAAU,0BACb,gBAACoB,EAAA,EAAe,CACdjB,KAAMA,EACNH,UAAW,YAInB,qHC7EA,SAASqB,EAAYxB,GACnB,OACE,kCACKA,EAAMyB,IAAIC,SACX,uBAAKvB,UAAWH,EAAMyB,IAAIlB,KAAO,OAAS,IACxC,gBAAC,IAAY,CAACmB,QAAS1B,EAAMyB,IAAIC,WAIpC1B,EAAMyB,IAAIlB,KAEmB,iBAArBP,EAAMyB,IAAIE,OACjB,uBAAKxB,UAAU,QACb,gBAAC,IAAK,CAACF,KAAM,UAAiB2B,KAAM5B,EAAMyB,IAAIE,SAKxD,CA8BM,SAAUJ,EAAgBvB,SAW9B,OACE,uBAAKG,UAA0B,QAAf,EAAAH,EAAMG,iBAAS,QAAI,GAAI0B,IAAK7B,EAAM8B,cAChD,sBAAI3B,UAAS,qDACwB,oBAAsB,qBACvDH,EAAM+B,aAAe,gBAAqB,GAAE,qBAC5C/B,EAAMgC,cAAa,aAEpBhC,EAAMM,KAAK2B,IAAI,SAACR,EAAKS,GACpB,OACE,sBACE/B,UAAS,gCACD,QAAU,YAAIsB,EAAIb,OAAS,eAAiB,uBAAsB,6BACtEa,EAAIlB,KAAO,aAAkB,GAAE,YAAIkB,EAAItB,UAAS,oBAEpDgC,IAAKD,GAEJT,EAAIhB,QACH,gBAAC,IAAO,CACNA,QAASgB,EAAIhB,QACbI,cAAeY,EAAIZ,cACnBE,iBAAkBU,EAAIV,iBACtBZ,UAAS,sKAE4C,YAAc,yBAGnE,gBAACqB,EAAW,CAACC,IAAKA,KAGpB,gBAAC,IAAS,CACRtB,UAAS,sKAE4C,YAAc,wBAEnEiC,QAAS,WAAF,OA5CvB,SAAqBX,IACfA,EAAIb,QAAWa,EAAIY,WAGvBZ,EAAIY,WAEAZ,EAAIZ,eAAiBY,EAAIV,kBAC3B,kBAA8BU,EAAIZ,cAAeY,EAAIV,kBACzD,CAoC+BuB,CAAYb,EAAI,GAE/B,gBAACD,EAAW,CAACC,IAAKA,KAK5B,IAIR,CA5DAF,EAAgBgB,aAAe,CAC7BR,aAAc,uBCjEhB,IAAYS,mBAAZ,SAAYA,GACV,qBACA,+CACA,6BACA,mCACA,+BACA,+BACA,uBACA,4CACD,CATD,CAAYA,IAAAA,EAAY,qDCKXC,EAAmB,CAC9BC,eAAc,SAACC,EAAkCC,GAC/C,MAAO,CACL9B,IAAK,wBACLqB,IAAK,kBACLlC,KAAM,SACN2B,KAAM,OAAF,wBACCe,GACAC,GAGT,uzBCNF,IAAMC,EAAiB,aACpB,EAAAC,EAAA,GAAiB,MACjB,EAAAA,EAAA,GAAiB,MACjB,EAAAA,EAAA,GAAiB,MACjB,EAAAA,EAAA,GAAiB,MACjB,EAAAA,EAAA,GAAiB,MAGPC,EAAqB,CAChCC,YAAa,SACXC,EACAC,GAEA,MAAO,CACLC,GAAIF,EAAYE,GAChBC,SAAUH,EAAYG,SACtBC,MAAOJ,EAAYI,MACnBC,SAAUL,EAAYM,OAAS,UAAiB,QAAU,QAC1DC,WAAYP,EAAYO,WACxBC,MAAOP,EAASQ,MAChBC,aAAcT,EAAS3C,KACvBqD,eAAgBX,EAAYW,eAC5BC,cAAeZ,EAAYY,cAC3BC,UAAWb,EAAYc,UACvBC,SAAUf,EAAYgB,WAE1B,EAEAC,oBAAqB,SAACC,GACpB,OAAOtB,EAAkBsB,EAAYC,cACvC,EAEAC,QAAS,SAACpB,EAA0BqB,EAAoBpE,EAA+BqE,GACrF,MAAMC,EAAO,CACXF,GAAO,sDACJC,ujBAGLC,EAAKnD,KAAKnB,EAAuB,UAAY,SAEzC+C,EAAYM,OAAS,WACvBiB,EAAKnD,KAAK,iBAEZ,IAAMoD,EAAiB1B,EAAmBmB,oBAAoBjB,EAAYkB,aAK1E,OAHIM,GACFD,EAAKnD,KAAKoD,GAELD,CACT,EAEAE,gBAAe,SAACC,GACd,OAAOA,EAAMC,OAAO,SAACC,EAAQC,GAC3B,IAAMC,EAAWD,EAAKE,IAAI,YAM1B,OALI,gBAAqBF,EAAKE,IAAI,QAAS,WACzCH,EAAOI,UAAU5D,KAAK0D,aAAQ,EAARA,EAAUjE,KAEhC+D,EAAOK,UAAU7D,KAAK0D,aAAQ,EAARA,EAAUjE,KAE3B+D,CACT,EAAG,CACDK,UAAW,GACXD,UAAW,IAEf,uQC/DInF,EAAY,uCACZqF,EAAY3E,EAAA,mBAAiCV,GAU7C,SAAUsF,EAA4BpF,WACpCqF,GAA4B,QAAf,EAAArF,EAAMsF,iBAAS,eAAEC,UAAW,cAE/C,OACE,gBAACC,EAAA,EAAU,KACT,gBAACA,EAAA,QAAgB,CAACC,IAAKzF,EAAM0F,SAAUC,QAASR,EAAU,UAC1D,gBAACK,EAAA,UAAkB,KACjB,gBAACpF,EAAA,EAAI,CAACN,UAAWA,EAAWO,OAAO,aAErC,gBAACmF,EAAA,OAAe,KACd,gBAACpF,EAAA,EAAI,CAACN,UAAWA,EAAWO,OAAO,UAErC,gBAACuF,EAAA,EAAO,CAACC,MAAOR,EAAa7E,EAAA,YAA0BV,EAAW,sBAAwB,GAAIgG,UAAQ,GACpG,gBAACN,EAAA,MAAc,CACbO,KAAMvF,EAAA,YAA0BV,EAAW,OAC3CW,QAA+B,QAAtB,EAAAT,EAAMgG,wBAAgB,uBAC/B7F,UAAU,eACV8F,KAAM,UACNC,SAAUb,KAKpB,CCcM,SAAUc,EAAkBnG,WAC1BoG,EAAUC,EAAA,SAAkC,QAAf,EAAArG,EAAMsF,iBAAS,eAAEc,QAAS,SAE7D,SAASE,EAAwBnD,EAAYoD,EAA4BC,GACvE,IAAMC,EAAS,oBACbF,EACAC,EACA,2BAA8CxG,EAAMsF,YAGtD,OAAOtF,EAAMsG,wBAAwBnD,EAAIsD,EAAQD,EAAUxG,EAAM0G,aACnE,CAEA,IAAMC,EAAiB3G,EAAM4G,cAAeR,aAAO,EAAPA,EAASS,QAErD,OACE,gCACE,gBAAC9G,EAAA,EAAc,CACbE,KAAqB,QAAf,EAAAD,EAAMsF,iBAAS,eAAEhC,SACvB5C,SAAUV,EAAM8G,eAChB5G,qBAAsBF,EAAM+G,eAAeC,EAAA,qBAC3C5F,aAAcpB,EAAMoB,aACpBR,OAAO,WAERwF,EAAQnE,IAAI,SAACgF,EAAQC,SACpB,OACE,gBAACC,EAAA,EAAmB,CAClBC,iBAAkB,cAClBjF,IAAK8E,EAAO9D,GACZA,GAAI8D,EAAO9D,GACXkE,kBAAmBf,EACnBgB,UAAWtH,EAAMsH,UACjB/G,KAAM0G,EAAO1G,KACbgH,YAAaN,EAAOM,YACpBC,WAAYP,EAAOO,WACnBC,SAAUR,EAAOQ,SACjBf,aAAc1G,EAAM0G,aACpBgB,YAAaT,EAAOS,YACpBhH,SAAUV,EAAM2H,eAChBC,wBAAwB5H,aAAK,EAALA,EAAO6H,oBAAqBZ,EAAO9D,GAC3DoD,aAAcU,EAAOa,SACrBf,eAAgB/G,EAAM+G,eACtBgB,oBAAqB/H,EAAM+H,oBAC3BC,iBAAkBhI,EAAMgI,iBACxBC,kBAAmBjI,EAAMiI,kBACzBC,SAAUlI,EAAMkI,SAChBC,gBAAiB,cACjBC,YAAalB,EACbmB,SAAUrI,EAAMqI,SAChBC,aAActI,EAAM4G,WACpB1B,UAAWlF,EAAMkF,UACjBqD,SAAU,CACRC,oBAAmC,QAAd,EAAAxI,EAAMuI,gBAAQ,eAAEC,oBACrCC,gBAAiBzI,EAAMuI,SAASE,gBAChCC,yBAA0B1I,EAAMuI,SAASG,0BAE3CC,uBAAwB3I,EAAM2I,uBAC9BC,YAAa5I,EAAM6I,iBAAiBD,YACpCC,iBAAkB7I,EAAM6I,iBAGxBC,oBAAgBC,EAChBC,iBAAaD,EACbE,oBAAoB,EACpBC,iBAAiB,EACjBC,kCAAmCnJ,EAAMmJ,kCACzCC,iBAAaL,EACbM,kBAAmBrJ,EAAMsJ,uBACzBC,eAAgB,MAGtB,GAEC5C,GACC,gBAACvB,EAA2B,CAC1BE,UAAWtF,EAAMsF,UACjBsB,WAAY5G,EAAM4G,WAClBlB,SAAU1F,EAAMwJ,cAChBxD,iBAAkBhG,EAAM2H,eAAe8B,eAKjD,8uFC5FM,GAAY,sBACZ,GAAYjJ,EAAA,mBAAiC,IAe7C,SAAUkJ,GAAoB1J,uBAC5BiD,EAAc,kBAAkC0G,EAAA,iBAChDC,EAAO,mBAA2C,QAAhB,EAAA3G,EAAYrB,YAAI,eAAEiI,kBAAmBF,EAAA,OAAkB1G,EAAYrB,KAAKuB,KAChH,GAAgD,EAAA2G,EAAA,KAAxC/B,EAAmB,EAAnBA,oBAAqBhB,EAAc,EAAdA,eACvBgD,IAAS,SAET7G,GAAW,kBACf6E,EAAoB,iCACJ,QAAhB,EAAA9E,EAAYrB,YAAI,eAAEiI,kBAClBG,EAAA,WAA0B/G,EAAYrB,KAAK4B,aAGvCyG,GAAY,mBACA,QAAhB,EAAAhH,EAAYrB,YAAI,eAAEiI,kBAClBK,EAAA,eAGMvB,IAA2B,EAAAwB,EAAA,KAA3BxB,uBAEFyB,IAAa,EAAAC,EAAA,KACbC,IAAW,SAEjB,IAII,OAAyB,CAC3BC,WAAY,cACZC,YAAaxK,EAAMwK,YACnBC,iBAAkBzK,EAAMyK,mBANxBnF,GAAS,GAATA,UACAoB,GAAY,GAAZA,aACAY,GAAS,GAATA,UAOIoD,GAAa,uBACbnC,IAAW,EAAAoC,EAAA,GAAY,MAErB9B,IAAqB,EAAA+B,EAAA,GAAoB,CAAEC,gBAAiB,iBAA5DhC,iBAEDiC,OAAmB,OACxBC,EAAA,uBACAhC,EACA,CAAEiC,QAAS,wBACZ,w4BAJqB,GAMhBrD,IAAiB,OAA0BsD,EAAA,oBAAiCH,IAAkB7H,EAAYrB,MAE1GsJ,GA1DR,SAA0BxE,GAGxB,OAFsByE,EAAA,EAA0BzE,aAAY,EAAZA,EAAc0E,iBAEpCD,EAAA,UACtB,aACA,YACN,CAoDwBE,CAAiB3E,KAEvC,EAAA4E,EAAA,GAAmBC,EAAA,uBAAuC,CACxDC,QAAS9E,GACT+E,cAAe,CACbC,cAAe,GACfC,YAAa,YAAF,OAAcT,IACzBU,kBAAmB,kBAAF,OAAoBV,KAEvCW,cAAeC,EAAA,qBACfC,cAAeD,EAAA,kBACfE,SAAUF,EAAA,yBACRpF,cAAY,EAAZA,GAAc0E,cACdzD,GAAesE,aA2GnB,IAAQ7K,IAAiB,EAAA8K,EAAA,KAAjB9K,aAER,OACE,uBAAKjB,UAAU,iBACb,gBAACgG,EAAiB,CAChBb,UAAWA,GAAU1D,KACrB+F,eAAgBA,GAChBb,gBAAgB,SAChBJ,aAAcA,GACdJ,wBAAyB,SACvBnD,EACAsD,EACA0F,EACAzF,GAEA,MAA+B0F,EAAA,kBAA8BnC,GAAUrI,KAAMqB,EAAYrB,MAAjFyK,EAAO,EAAPA,QAASC,EAAS,EAATA,UAEjB,OAAOC,EAAA,yBACLpJ,EACAsD,EACA0F,EACAzF,EACA,CAAE8F,YAAaF,EAAWG,UAAWJ,GAEzC,EACA/E,UAAWA,GAAU1F,KACrBqG,kBAhEN,SACEH,EACAvB,EACAmG,EACAC,gHAiBE,GAfIC,EAAgBD,EAAeE,OAAO,SAAAC,GAC1C,OAAIA,EAAEC,QAGgBL,EAAeM,KAAK,SAAAC,GAAC,OAAIA,EAAE9J,KAAO2J,EAAE3J,EAAE,GAEvC4J,MACvB,GACMG,EAAkBP,EAAeE,OAAO,SAAAC,GAC5C,QAAKA,EAAEC,SAGeL,EAAeM,KAAK,SAAAC,GAAC,OAAIA,EAAE9J,KAAO2J,EAAE3J,EAAE,GAEtC4J,MACxB,KAEIH,aAAa,EAAbA,EAAe/F,QAAM,aACvB,OADuB,MACjB6D,GAAiByC,EAAA,iBAAkCP,EAAc3K,IAAI,SAAAmL,GAAC,OAAIA,EAAEjK,EAAE,KAAG,YAErF+J,aAAe,EAAfA,EAAiBrG,QAAM,aACzB,OADyB,MACnB6D,GAAiByC,EAAA,mBAAoCD,EAAgBjL,IAAI,SAAAmL,GAAC,OAAIA,EAAEjK,EAAE,KAAG,oBAEtFuH,GAAiB6B,EAAA,0BACtBzE,EACA6E,EAAe1K,IAAI,SAAA6K,GAAC,MAAK,CACvB3J,GAAI2J,EAAE3J,GACNjB,MAAO4K,EAAE5K,MACV,GACDe,EAAYrB,QACZ,OACH,EA4BKmF,eAAgBA,EAChBgB,oBAAqBA,EACrBC,iBACEjB,EAAeC,EAAA,sBArIvB,SAAgCqG,8GACd,aAAM3C,GAAiBjI,EAAA,iBAAgC,CACrExC,KAAMuC,EAAA,SACNoH,KAAM7G,EAAA,cAA+BE,EAAYrB,KAAMsB,GAAStB,MAChE4C,KAAMzB,EAAA,UACJE,EAAYrB,KACZ0L,EAAA,UACAvG,EAAeC,EAAA,qBACf,CAAE,WAAY,yBAEf,CACDuG,SAAUF,EAASpN,KACnBoN,SAAUA,EAAS7B,QACnBtK,SAAU,kBACVsM,iBAAkB9G,GAAaa,YAC/BkG,eAAgB/G,GAAavD,GAC7BuK,cAAepI,GAAU1D,KAAKrB,KAC9BoN,YAAarI,GAAU1D,KAAKuB,GAC5ByK,eAAgB,wBACf,OAYA,OA9BGC,EAAU,EAAH,EAoBbC,EAAA,gBAA8B,CAC5BC,aAAcV,EAASpN,KACvBuL,QAAS6B,EAAS7B,QAClBiC,eAAgB/G,GAAavD,GAC7BwK,YAAarI,GAAU1D,KAAKuB,IAC3B,CACDnC,WAAY,YACZE,SAAU,oBACVD,OAAQ,cACR+M,cAAe,gBACd,MAEIH,GAAO,OACf,EAsGKvE,uBApGN,SACE2E,EACAC,EACApG,EACAvB,2GAEIA,IAAiB4H,EAAA,mBAA6B,kCAIhD,OAJgD,YAI1CzD,GAAiB0D,EAAA,oBAAuCH,EAAS,CAAC,UAAD,OAAWnG,MAAa,OAE/FiC,GAAOsE,QAAQ7N,EAAA,YAA0B,GAAW,6BAEpDsN,EAAA,gBAA8B,CAC5B3K,GAAI8K,EACJ1N,KAAM2N,EACNpG,SAAAA,GACC,CACD7G,OAAQ,WACRD,WAAY,WACZsN,WAAY,4BACZpN,SAAU,uBACT,6BAEH6I,GAAOwE,MAAM/N,EAAA,YAA0B,GAAW,yBAA0B,CAAED,KAAM2N,KAAc,yCAErG,EA0EKhG,UAAW4D,EAAA,UACX1K,aAAcA,GACdiH,SAA0C,QAAhC,EAAsB,QAAtB,EAAS,QAAT,EAAAuB,EAAKhI,YAAI,eAAE4M,mBAAW,eAAE/G,gBAAQ,eAAEY,SAC5CnD,UAAW,CACTuJ,4BAA6BC,EAAA,0CAE/BnG,SAAUA,GACVI,uBAAwBA,GACxBQ,kCAAmCiB,MAAeE,cAAQ,EAARA,GAAUqE,WAAWrB,EAAA,aACvEzE,iBAAkBA,KAI1B,gJClQM+F,EAAiC,iCACjCC,EAAiB,CAAE,UAAW,cAAe,cAE7C,SAAUC,EACdrI,EACAxD,GAEA,MAAO,CACL6F,eAAgB,SAAC,GAA+B,OAC9C,eAAuC,EAAgBrC,GAAU,CAAC,EAAE,EAEtEsI,UAAW,SAACC,EAAmBC,GAA4B,OACzD,eAA8BD,EAAO,OAAF,wBAC9BC,GAAI,CACPC,QAAS,WACTC,eAAgBlM,aAAW,EAAXA,EAAa4G,kBAC7B,EAGJuF,OAAQ,qBAERC,SAAU,SAAC,GAAkB,MAAM,CACjCC,YAAa,cACbC,OAAQ,uBACRC,KAAM,CAAE,EAASrM,GAAI,YAAmB,EAAS5C,OAClD,EAEDkP,eAAgB,WAAF,MAAS,CACrBH,YAAa,oBACbC,OAAQ,mCACT,EAEDG,UAAW,WAAF,MAAS,CAChBJ,YAAa,YACbC,OAAQ,iCACT,EAEDI,6BAA8B,SAAC7G,GAC7B,OAAIA,EAAe3F,KAAOyL,EACjB,CACLU,YAAa,oBACbC,OAAQ,oCAGL,CACLD,YAAa,oBACbC,OAAQ,yCACRC,KAAM,CAAE1G,EAAe3F,GAAI,YAAmB2F,EAAevI,OAEjE,EAEAqP,wBAAyB,SAACC,GACxB,IAAMC,EAAwBD,EAE9B,MAAO,CACLP,YAAa,YACbC,OAAQ,mCACRC,KAAM,CAAEM,EAAsB3M,GAAI,YAAmB2M,EAAsBvP,OAC3EkG,OAAQ,SAAkBA,EAAQoI,GAEtC,EAEAkB,gBAAiB,SAACjI,EAAkBkI,GAAkB,MAAM,CAC1DV,YAAa,cACbC,OAAQ,wBACRC,KAAM,CAAE1H,EAAU,YAAmBkI,IACtC,EAEDC,aAAc,WAAF,MAAS,CACnBX,YAAa,kBACbC,OAAQ,sBACT,EAEDW,QAAS,SAAC,GAAgB,MAAM,CAC9BZ,YAAa,kBACbC,OAAQ,kCACRC,KAAM,CAAE,EAAQrM,GAAI,YAAmB,EAAQ5C,OAChD,EAED0L,SAAU,WAAF,MAAS,CACfqD,YAAa,cACbC,OAAQ,mBACT,EAEDjO,SAAU,WAAF,MAAS,CACfgO,YAAa,aACbC,OAAQ,sBACT,EAEDY,cAAe,SAACC,EAAeC,GAC7B,IAAM5P,EAAwB,CAC5B6O,YAAa,aACbC,OAAQ,4BACRC,KAAM,CAACY,EAAMhM,gBAMf,OAHIiM,IACF5P,EAAQgG,OAAS,CAAE4J,KAAAA,IAEd5P,CACT,EAEA6P,eAAgB,SAACC,GAEf,OADiB,SACDA,EAClB,EAEAC,mBAAoB,WAClB,OAAO,QACT,EAEAC,WAAY,WAAF,OAAQ,IAAI,EACtBhH,aAAc,WAAF,OAAQ,IAAI,EAE5B,CAEM,SAAUiH,IACd,MAAO,CACL/P,OAAQ,CACN2O,YAAa,cACbC,OAAQ,oBAEVpO,SAAU,CACRmO,YAAa,oBACbC,OAAQ,oCAEVjO,SAAU,CACRgO,YAAa,aACbC,OAAQ,uBAGd,kKC9IO,IAAMnB,EAAuB,CAClCuC,iBAAgB,SACdC,EACAvC,EACAE,EACAsC,GAEA,IAAI1O,EAAM,gBACNrB,EAAM,sCAOV,OALI8P,IACFzO,GAAO,IAAJ,OAAQyO,GACX9P,GAAO,WAAJ,OAAe8P,IAGb,CACLzO,IAAAA,EACArB,IAAAA,EACAgQ,WAAY,SAACC,GACX,MAAO,CACLnP,KAAMmP,EAAkBnP,KAAKK,IAAI,SAAA+O,GAE/B,IAAMC,EAAuB,WAAkBD,EAAYE,iBACrDC,EAAuB,WAAkBF,EAAsB,cAErE,OAAO,OAAP,wBACKD,GAAW,CACdE,gBAAiBD,EACjBG,gBAAiBD,GAErB,GACAE,WAAYN,EAAkBM,WAElC,EACAhD,QAAAA,EACAE,MAAAA,EACAsC,OAAAA,EAEJ,EAEAS,aAAY,SACVC,EACAzR,EACAuO,EACAE,EACAsC,GAEA,IAAMpK,EAAS8K,EAAIC,OAAOvP,IAAI,SAAAwP,GAAC,wBAAeA,EAAC,GAE/C,MAAO,CACLtP,IAAK,wBAAF,OAA0BsE,EAAOiL,KAAK,MACzC5Q,IAAK,+BAAF,OAAiC2F,EAAOiL,KAAK,MAChDC,iBAAkB,CAChB7R,UAAAA,GAEFgR,WAAY,SAACC,GACX,OAAKA,aAAiB,EAAjBA,EAAmBlK,QAOjBkK,EAAkB9O,IAAI,SAACgO,GAAwB,MAAM,CAC1D9M,GAAI8M,EAAahC,QACjB2D,kBAAmB3B,EAAa2B,kBACjC,GATQb,CAUX,EACA1C,QAAAA,EACAE,MAAAA,EACAsC,OAAAA,EAEJ,EAEAgB,kBAAiB,SAAC5D,GAAgD,MAA/B6D,EAAA,uDAA6B,GAC9D,MAAO,CACLhR,IAAK,gCAAF,OAAkCmN,EAAO,kBAC5C9L,IAAK,wBAAF,OAA0B8L,GAC7BhO,KAAM,WACN6R,iBAAkB,CAChB,iBAAe,UACZA,umBAGT,+vDC/EF,IAAMC,EAAiC,iBACpC,OAAmB,CAElB,cAED,OAAmB,CAElB,cAED,OAAmB,CAElB,cAED,SAAqB,CAEpB,cAED,OAAmB,IACnB,WAAuB,IACvB,OAAmB,IAGhB,SAAU7F,UACd,GAAuD,OAAY,MAA3D8F,EAAuB,EAAvBA,wBAAyBC,EAAiB,EAAjBA,kBAG/BC,GACE,OAAgB,CAAEC,iBAAiB,IADrCD,mBAGIjP,EAAc,kBAAkC,mBAEhDmP,EAAwBL,EAAkD,QAAhB,EAAA9O,EAAYrB,YAAI,eAAEiC,eAC5EuH,EAAgB,+BAAwC8G,aAAkB,EAAlBA,EAAoB9G,eAC5EiH,IAA2BD,aAAqB,EAArBA,EAAuBpF,KAAK,SAAAsF,GAC3D,OAAOA,EAAEC,cAAgBnH,aAAa,EAAbA,EAA6CmH,WACxE,IAEMC,GAAaP,IAAsBD,EAEgE,IAA/D,YAAyBQ,IAAcH,GAAwB,GAAjGjR,EAAY,KAAEqR,EAAe,KAE2D,IAA5D,WAAeR,KAAsBC,aAAkB,EAAlBA,EAAoB/O,KAAG,GAAxFuP,EAAS,KAAEC,EAAY,KAW/B,OATA,YAAgB,WACVH,GAAaH,EACfI,GAAgB,GACNC,GACVD,GAAgB,GAElBE,EAAaV,KAAsBC,aAAkB,EAAlBA,EAAoB/O,IACzD,EAAG,CAAE6O,EAAyBE,aAAkB,EAAlBA,EAAoB/O,GAAIuP,IAElD,kBACK,CAAEtR,cAAc,EAAMsR,WAAW,GAEnC,CAAEtR,aAAAA,EAAcsR,UAAAA,EACzB,oCCrEA,SAAgB,gBAAkB,QAAQ,IAAM,QAAQ,SAAW,QAAQ,YAAc,QAAQ,QAAU","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/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/apps/watch-history/flight-requests/VideoHistoryRequests.ts","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 mx-n3'>\n <PillTabSelector\n tabs={tabs}\n className={styles.pillTab}\n />\n </div>\n );\n}","import React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { AnalyticsOptions } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Badge, BadgeType } from 'libs/shared/components/badges/Badge';\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\n\nimport { SvgContainer } from '../svg-container/SvgContainer';\n\nimport styles from './pill-tab-selector.scss';\n\ninterface TabContentsProps {\n tab: PillTab;\n}\n\nfunction TabContents(props: TabContentsProps): JSX.Element {\n return (\n <>\n {!!props.tab.svgName && (\n <div className={props.tab.name ? 'pe-1' : ''}>\n <SvgContainer svgName={props.tab.svgName} />\n </div>\n )}\n\n {props.tab.name}\n\n {typeof (props.tab.count) === 'number' && (\n <div className='ps-2'>\n <Badge type={BadgeType.Count} data={props.tab.count} />\n </div>\n )}\n </>\n );\n}\n\nexport interface PillTab {\n name: string;\n active: boolean;\n svgName?: string;\n\n className?: string;\n\n appLink?: Core.AppLink;\n onSelect?: () => void;\n\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n\n count?: number;\n}\n\ninterface PillTabSelectorProps {\n tabs: PillTab[];\n containerRef?: (el: HTMLElement) => void;\n listClassName?: string;\n className?: string;\n borderRadius?: 'sm' | 'lg'\n}\n\nPillTabSelector.defaultProps = {\n borderRadius: 'lg'\n};\n\nexport function PillTabSelector(props: PillTabSelectorProps): JSX.Element {\n function onSelectTab(tab: PillTab): void {\n if (tab.active || !tab.onSelect)\n return;\n\n tab.onSelect();\n\n if (tab.analyticsData && tab.analyticsOptions)\n AnalyticsHelper.logUserAction(tab.analyticsData, tab.analyticsOptions);\n }\n\n return (\n <nav className={props.className ?? ''} ref={props.containerRef}>\n <ul className={`\n list-unstyled d-inline-block m-0 ${styles.pillTabSelector}\n ${props.borderRadius ? styles.radiusSmall : ''}\n ${props.listClassName}\n `}>\n {props.tabs.map((tab, index) => {\n return (\n <li\n className={`\n p-0 ${styles.tab} ${tab.active ? 'btn btn-dark' : 'btn btn-outline-dark'}\n ${tab.name ? styles.minWidth : ''} ${tab.className}\n `}\n key={index}\n >\n {tab.appLink ? (\n <AppLink\n appLink={tab.appLink}\n analyticsData={tab.analyticsData}\n analyticsOptions={tab.analyticsOptions}\n className={`\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ${styles.tabLink}\n `}\n >\n <TabContents tab={tab} />\n </AppLink>\n ) : (\n <DivButton\n className={`\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-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 { CountryCode } from 'libs/shared/enums/CountryCode';\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\nconst COUNTRY_CODE_TAGS: { [key in CountryCode]: string } = {\n [CountryCode.AU]: 'au',\n [CountryCode.NZ]: 'nz',\n [CountryCode.UK]: 'uk',\n [CountryCode.US]: 'us',\n [CountryCode.CA]: 'ca'\n};\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 mapCountryCodeToTag: (countryCode: CountryCode): string => {\n return COUNTRY_CODE_TAGS[countryCode.toLowerCase() as CountryCode];\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 countryCodeTag = FeedbackFormHelper.mapCountryCodeToTag(currentUser.countryCode);\n \n if (countryCodeTag)\n tags.push(countryCodeTag);\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 { Core } from 'libs/common/backbone/index';\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 { AllDiscoverWidgetTemplates, 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 { CuratedDashboard, CuratedWidgetQueryParams, DashboardTargetType, Presentation, PresentationAudience, WidgetPreference } from 'libs/shared/interfaces';\nimport { CommonVideoProps } from 'libs/shared/interfaces/CommonVideoProps';\nimport { CuratedDashboardHelper } from 'libs/shared/utils/DashboardHelper';\n\nimport { DiscoverDashboardEmptyState } from './empty-state/DiscoverDashboardEmptyState';\n\nexport interface DiscoverDashboardProps {\n dashboard: CuratedDashboard;\n getWidgetContentRequest: (\n id: string,\n params: CuratedWidgetQueryParams,\n widgetTemplate: WidgetTemplate,\n presentation: Presentation\n ) => Flight.Request;\n audiences: PresentationAudience[];\n hasPermissions: HasPermissionsFunc;\n hasLocalPermissions: HasLocalPermissionsFunc;\n emptyImageUrl?: string;\n presentation: Presentation;\n widgetAppLinks?: AllDiscoverWidgetTemplates['appLinks'] & {\n widgetWizard: () => Core.AppLink;\n };\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 removeFromVideoHistory: (videoId: string, videoName: string, widgetId: string, widgetTypeId: WidgetTypeId) => void;\n isReadonly?: boolean;\n lazyLoad?: boolean;\n showCalendar: boolean;\n jobTitle: JobTitles;\n imageUrls: WidgetImageUrls\n settings: SettingsHash;\n availablePresentations: Presentation[];\n isTertiaryCustomerWithoutExchange: boolean;\n commonVideoProps: CommonVideoProps;\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 widgetCollection={DashboardTargetType.Discover}\n key={widget.id}\n id={widget.id}\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 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 lazyLoad={props.lazyLoad}\n dashboardTarget={DashboardTargetType.Discover}\n widgetIndex={idx}\n jobTitle={props.jobTitle}\n isPreviewing={props.isReadonly}\n imageUrls={props.imageUrls}\n settings={{\n hasTopicDirectories: props.settings?.hasTopicDirectories,\n hasOnboardingV2: props.settings.hasOnboardingV2,\n hasCompletedOnboardingV2: props.settings.hasCompletedOnboardingV2\n }}\n availablePresentations={props.availablePresentations}\n imageCdnUrl={props.commonVideoProps.imageCdnUrl}\n commonVideoProps={props.commonVideoProps}\n\n // TODO: Ideally we don't have to do this\n classification={undefined}\n contentType={undefined}\n hasTableOfContents={false}\n limitTotalItems={false}\n isTertiaryCustomerWithoutExchange={props.isTertiaryCustomerWithoutExchange}\n seeMoreLink={undefined}\n onClickRemoveItem={props.removeFromVideoHistory}\n badgeComponent={null}\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, VideoActionDescriptor, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { DiscoverDashboard } from 'libs/shared/apps/discover/components/discover-dashboard/DiscoverDashboard';\nimport { LibraryHelper } from 'libs/shared/apps/libraries/utils/LibraryHelper';\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 { WidgetTemplate } from 'libs/shared/enums/WidgetTemplate';\nimport { WidgetTypeId } from 'libs/shared/enums/WidgetTypeId';\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 { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useProducts } from 'libs/shared/hooks/UseProducts';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { CuratedWidgetQueryParams, CurrentUser, Customer, DashboardTargetType, Library, Presentation, PresentationAudience, User, WidgetPreference } 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 { ImageUrls } from 'shared/constants/ImageUrls';\nimport { useCommonVideoProps } from 'shared/hooks/useCommonVideoProps';\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 { useIsTertiary } from 'apps/onboarding/hooks/useIsTertiary';\nimport { VideoHistoryRequests } from 'apps/watch-history/flight-requests/VideoHistoryRequests';\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 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 alerts = useAlerts();\n\n const customer = Flight.useBasicFetch<Customer>(\n hasLocalPermissions(LocalPermissionName.ManageDiscoverPreferences) &&\n currentUser.data?.isAuthenticated &&\n CustomerRequests.customer(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 isTertiary = useIsTertiary();\n const products = useProducts();\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 { commonVideoProps } = useCommonVideoProps({ locationContext: 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), currentUser.data);\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 removeFromVideoHistory(\n videoId: string,\n videoName: string,\n widgetId: string,\n widgetTypeId: WidgetTypeId\n ): Promise<void> {\n if (widgetTypeId !== WidgetTypeId.ContinueWatching)\n return;\n\n try {\n await fetchAsync<void>(VideoHistoryRequests.removeFromHistory(videoId, [`widget:${widgetId}`]));\n\n alerts.success(LanguageService.getPhrase(namespace, 'removeFromHistorySuccess'));\n\n AnalyticsHelper.logUserAction({\n id: videoId,\n name: videoName,\n widgetId\n }, {\n entity: EntityType.Video,\n actionType: UserAction.Click,\n descriptor: VideoActionDescriptor.RemoveFromWatchHistory,\n location: LocationContext.SlidingListItem\n });\n } catch {\n alerts.error(LanguageService.getPhrase(namespace, 'removeFromHistoryError', { name: videoName }));\n }\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 <DiscoverDashboard\n dashboard={dashboard.data}\n widgetAppLinks={widgetAppLinks}\n headerAppLinks={getDiscoverHeaderAppLinks()}\n presentation={presentation}\n getWidgetContentRequest={(\n id: string,\n params: CuratedWidgetQueryParams,\n widgetTemplate: WidgetTemplate,\n presentation: Presentation\n ) => {\n const { hasTwig, hasTigtag } = LibraryHelper.hasTwigOrTigtag(libraries.data, currentUser.data);\n\n return DashboardRequests.dashboardWidgetContent(\n id,\n params,\n widgetTemplate,\n presentation,\n { hideTigTag: !hasTigtag, hideTwig: !hasTwig }\n );\n }}\n audiences={audiences.data}\n updatePreferences={updateWidgetPreferences}\n hasPermissions={hasPermissions}\n hasLocalPermissions={hasLocalPermissions}\n onSubmitFeedback={\n hasPermissions(PermissionName.CanSubmitFeedback) &&\n onSubmitFeedback\n }\n removeFromVideoHistory={removeFromVideoHistory}\n lazyLoad={!SeoHelper.isBot()}\n showCalendar={showCalendar}\n jobTitle={user.data?.userProfile?.metadata?.jobTitle}\n imageUrls={{\n onboardingTeacherBackground: ImageUrls.OnboardingV2.Widget.TEACHER_BACKGROUND\n }}\n settings={settings}\n availablePresentations={availablePresentations}\n isTertiaryCustomerWithoutExchange={isTertiary && !products?.hasProduct(ProductId.Exchange)}\n commonVideoProps={commonVideoProps}\n />\n </div>\n );\n}","import { Core } from 'libs/common/backbone/index';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { DiscoverDashboardProps } from 'libs/shared/apps/discover/components/discover-dashboard/DiscoverDashboard';\nimport { DiscoverHeaderAppLinks } from 'libs/shared/apps/discover/components/header/DiscoverHeader';\nimport { OnboardingScreenId } from 'libs/shared/apps/onboarding/interfaces/OnboardingScreenId';\nimport { RelatedVideosContext } from 'libs/shared/enums/RelatedVideosContext';\nimport { Classification, Company, CurrentUser, Playlist, 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';\nconst OMITTED_PARAMS = [ 'preview', 'dashboardId', 'skipPrompt' ];\n\nexport function getDiscoverWidgetAppLinks(\n params: HashObject,\n currentUser: CurrentUser\n): DiscoverDashboardProps['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 includeContext: currentUser?.isAuthenticated\n })\n ),\n\n series: SeriesAppLinkHelper.getSeriesAppLink,\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.PRESENTATION_TOPICS\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 classificationDirectory: (_classification: Classification) => {\n const appLinkClassification = _classification;\n\n return {\n application: AppChannels.SUBJECT,\n action: Actions.Subjects.CLASSIFICATION_TOPICS,\n args: [ appLinkClassification.id, TextHelper.slugify(appLinkClassification.name) ],\n params: ObjectHelper.omit(params, OMITTED_PARAMS)\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 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 livestream: () => null,\n widgetWizard: () => null\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}","\nimport { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\nimport { Xhr } from 'libs/common/backbone/interfaces';\nimport { Flight } from 'libs/common/flight';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { VideoHistoryCollection } from 'libs/shared/interfaces';\n\nexport const VideoHistoryRequests = {\n userVideoHistory(\n cursor?: string,\n success?: (data: HashObject) => void,\n error?: (Xhr: Xhr) => void,\n always?: () => void\n ): Flight.Request {\n let key = 'video:history';\n let url = `{gateway}/v1/users/me/watch-history`;\n\n if (cursor) {\n key += `:${cursor}`;\n url += `?cursor=${cursor}`;\n }\n\n return {\n key,\n url,\n formatData: (historyCollection: VideoHistoryCollection) => {\n return {\n data: historyCollection.data.map(historyData => {\n // Convert last watched times from UTC to local time\n const lastTimeWatchedLocal = DateHelper.format(historyData.lastTimeWatched);\n const lastDateWatchedLocal = DateHelper.format(lastTimeWatchedLocal, 'YYYY-MM-DD');\n\n return {\n ...historyData,\n lastTimeWatched: lastTimeWatchedLocal,\n lastDateWatched: lastDateWatchedLocal\n };\n }),\n pagination: historyCollection.pagination\n };\n },\n success,\n error,\n always\n };\n },\n\n videoHistory(\n ids: string[],\n namespace?: string,\n success?: (data: HashObject) => void,\n error?: (Xhr: Xhr) => void,\n always?: () => void\n ): Flight.Request {\n const params = ids.sort().map(i => `videoId=${i}`);\n\n return {\n key: `video:history:videos:${params.join('&')}`,\n url: `{gateway}/v1/videos/history?${params.join('&')}`,\n normalizeOptions: {\n namespace\n },\n formatData: (historyCollection: HashObject[]) => {\n if (!historyCollection?.length)\n return historyCollection;\n\n /**\n * Data is formatted to enable it to be merged with the existing video object in the store\n * Where we need to merge more history properties with the video object, map them below.\n */\n return historyCollection.map((watchHistory: HashObject) => ({\n id: watchHistory.videoId,\n lastProgressPoint: watchHistory.lastProgressPoint\n }));\n },\n success,\n error,\n always\n };\n },\n\n removeFromHistory(videoId: string, invalidationKeys: string[] = []): Flight.Request {\n return {\n url: `{gateway}/v1/users/me/videos/${videoId}/watch-history`,\n key: `remove:video:history:${videoId}`,\n type: HttpVerbs.DELETE,\n invalidationKeys: [\n 'video:history',\n ...invalidationKeys\n ]\n };\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 [ContentRegion.CA]: []\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","TabContents","tab","svgName","count","data","ref","containerRef","borderRadius","listClassName","map","index","key","onClick","onSelect","onSelectTab","defaultProps","FeedbackType","FeedbackRequests","submitFeedback","requestData","formValues","COUNTRY_CODE_TAGS","C","FeedbackFormHelper","getUserInfo","currentUser","customer","id","username","email","userType","role","customerId","cvcId","crmId","customerName","instanceRegion","contentRegion","firstName","givenName","lastName","familyName","mapCountryCodeToTag","countryCode","toLowerCase","getTags","product","extraTags","tags","countryCodeTag","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","widgetCollection","getContentRequest","audiences","description","templateId","metadata","preferences","widgetAppLinks","isScrollToTargetWidget","scrollToWidgetId","widgetId","hasLocalPermissions","onSubmitFeedback","updatePreferences","lazyLoad","dashboardTarget","widgetIndex","jobTitle","isPreviewing","settings","hasTopicDirectories","hasOnboardingV2","hasCompletedOnboardingV2","availablePresentations","imageCdnUrl","commonVideoProps","classification","undefined","contentType","hasTableOfContents","limitTotalItems","isTertiaryCustomerWithoutExchange","seeMoreLink","onClickRemoveItem","removeFromVideoHistory","badgeComponent","emptyImageUrl","widgetWizard","CuratedDiscoverView","UserRequests","user","isAuthenticated","usePermissions","alerts","CustomerRequests","libraries","LibraryRequests","usePresentation","isTertiary","useIsTertiary","products","targetType","queryParams","presentationSlug","fetchAsync","useSettings","useCommonVideoProps","locationContext","activeAudiences","SharedViewModelKeys","storage","AudienceHelper","phraseVariant","PresentationLearningLevel","learningLevel","getPhraseVariant","useSetPageMetadata","PageMetadataHelper","content","phraseContext","phraseHandler","titlePhrase","descriptionPhrase","canonicalLink","SeoHelper","allowIndexing","hrefLang","discover","useShowCalendar","widgetTemplate","LibraryHelper","hasTwig","hasTigtag","DashboardRequests","hideTigTag","hideTwig","oldPreferences","newPreferences","addedSubjects","filter","p","hidden","find","o","removedSubjects","PreferenceRequests","s","feedback","ProductId","reaction","presentationName","presentationId","dashboardName","dashboardId","currentPageUrl","promise","AnalyticsHelper","feedbackType","workflowPhase","videoId","videoName","WidgetTypeId","VideoHistoryRequests","success","descriptor","error","userProfile","onboardingTeacherBackground","ImageUrls","hasProduct","CLASSIFICATION_LATEST_RELEASES","OMITTED_PARAMS","getDiscoverWidgetAppLinks","videoType","video","opts","context","includeContext","series","playlist","application","action","args","latestReleases","allTopics","classificationLatestReleases","classificationDirectory","_classification","appLinkClassification","widgetVideoList","widgetName","watchHistory","company","calendarMonth","month","year","onboardingStep","step","onboardingAppLinks","livestream","getDiscoverHeaderAppLinks","userVideoHistory","cursor","always","formatData","historyCollection","historyData","lastTimeWatchedLocal","lastTimeWatched","lastDateWatchedLocal","lastDateWatched","pagination","videoHistory","ids","sort","i","join","normalizeOptions","lastProgressPoint","removeFromHistory","invalidationKeys","ALLOWED_LEARNING_LEVELS_BY_REGION","hasSpecialEventCalendar","isLoadingSettings","activePresentation","redirectOnError","allowedLearningLevels","learningLevelCantAccess","l","toString","noSetting","setShowCalendar","isLoading","setIsLoading"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"scripts/6741-1e64f67951-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/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/apps/watch-history/flight-requests/VideoHistoryRequests.ts","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 mx-n3'>\n <PillTabSelector\n tabs={tabs}\n className={styles.pillTab}\n />\n </div>\n );\n}","import React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { AnalyticsOptions } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Badge, BadgeType } from 'libs/shared/components/badges/Badge';\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\n\nimport { SvgContainer } from '../svg-container/SvgContainer';\n\nimport styles from './pill-tab-selector.scss';\n\ninterface TabContentsProps {\n tab: PillTab;\n}\n\nfunction TabContents(props: TabContentsProps): JSX.Element {\n return (\n <>\n {!!props.tab.svgName && (\n <div className={props.tab.name ? 'pe-1' : ''}>\n <SvgContainer svgName={props.tab.svgName} />\n </div>\n )}\n\n {props.tab.name}\n\n {typeof (props.tab.count) === 'number' && (\n <div className='ps-2'>\n <Badge type={BadgeType.Count} data={props.tab.count} />\n </div>\n )}\n </>\n );\n}\n\nexport interface PillTab {\n name: string;\n active: boolean;\n svgName?: string;\n\n className?: string;\n\n appLink?: Core.AppLink;\n onSelect?: () => void;\n\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n\n count?: number;\n}\n\ninterface PillTabSelectorProps {\n tabs: PillTab[];\n containerRef?: (el: HTMLElement) => void;\n listClassName?: string;\n className?: string;\n borderRadius?: 'sm' | 'lg'\n}\n\nPillTabSelector.defaultProps = {\n borderRadius: 'lg'\n};\n\nexport function PillTabSelector(props: PillTabSelectorProps): JSX.Element {\n function onSelectTab(tab: PillTab): void {\n if (tab.active || !tab.onSelect)\n return;\n\n tab.onSelect();\n\n if (tab.analyticsData && tab.analyticsOptions)\n AnalyticsHelper.logUserAction(tab.analyticsData, tab.analyticsOptions);\n }\n\n return (\n <nav className={props.className ?? ''} ref={props.containerRef}>\n <ul className={`\n list-unstyled d-inline-block m-0 ${styles.pillTabSelector}\n ${props.borderRadius ? styles.radiusSmall : ''}\n ${props.listClassName}\n `}>\n {props.tabs.map((tab, index) => {\n return (\n <li\n className={`\n p-0 ${styles.tab} ${tab.active ? 'btn btn-dark' : 'btn btn-outline-dark'}\n ${tab.name ? styles.minWidth : ''} ${tab.className}\n `}\n key={index}\n >\n {tab.appLink ? (\n <AppLink\n appLink={tab.appLink}\n analyticsData={tab.analyticsData}\n analyticsOptions={tab.analyticsOptions}\n className={`\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ${styles.tabLink}\n `}\n >\n <TabContents tab={tab} />\n </AppLink>\n ) : (\n <DivButton\n className={`\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-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 { CountryCode } from 'libs/shared/enums/CountryCode';\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\nconst COUNTRY_CODE_TAGS: { [key in CountryCode]: string } = {\n [CountryCode.AU]: 'au',\n [CountryCode.NZ]: 'nz',\n [CountryCode.UK]: 'uk',\n [CountryCode.US]: 'us',\n [CountryCode.CA]: 'ca'\n};\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 mapCountryCodeToTag: (countryCode: CountryCode): string => {\n return COUNTRY_CODE_TAGS[countryCode.toLowerCase() as CountryCode];\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 countryCodeTag = FeedbackFormHelper.mapCountryCodeToTag(currentUser.countryCode);\n \n if (countryCodeTag)\n tags.push(countryCodeTag);\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 { Core } from 'libs/common/backbone/index';\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 { AllDiscoverWidgetTemplates, 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 { CuratedDashboard, CuratedWidgetQueryParams, DashboardTargetType, Presentation, PresentationAudience, WidgetPreference } from 'libs/shared/interfaces';\nimport { CommonVideoProps } from 'libs/shared/interfaces/CommonVideoProps';\nimport { CuratedDashboardHelper } from 'libs/shared/utils/DashboardHelper';\n\nimport { DiscoverDashboardEmptyState } from './empty-state/DiscoverDashboardEmptyState';\n\nexport interface DiscoverDashboardProps {\n dashboard: CuratedDashboard;\n getWidgetContentRequest: (\n id: string,\n params: CuratedWidgetQueryParams,\n widgetTemplate: WidgetTemplate,\n presentation: Presentation\n ) => Flight.Request;\n audiences: PresentationAudience[];\n hasPermissions: HasPermissionsFunc;\n hasLocalPermissions: HasLocalPermissionsFunc;\n emptyImageUrl?: string;\n presentation: Presentation;\n widgetAppLinks?: AllDiscoverWidgetTemplates['appLinks'] & {\n widgetWizard: () => Core.AppLink;\n };\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 removeFromVideoHistory: (videoId: string, videoName: string, widgetId: string, widgetTypeId: WidgetTypeId) => void;\n isReadonly?: boolean;\n lazyLoad?: boolean;\n showCalendar: boolean;\n jobTitle: JobTitles;\n imageUrls: WidgetImageUrls\n settings: SettingsHash;\n availablePresentations: Presentation[];\n isTertiaryCustomerWithoutExchange: boolean;\n commonVideoProps: CommonVideoProps;\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 widgetCollection={DashboardTargetType.Discover}\n key={widget.id}\n id={widget.id}\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 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 lazyLoad={props.lazyLoad}\n dashboardTarget={DashboardTargetType.Discover}\n widgetIndex={idx}\n jobTitle={props.jobTitle}\n isPreviewing={props.isReadonly}\n imageUrls={props.imageUrls}\n settings={{\n hasTopicDirectories: props.settings?.hasTopicDirectories,\n hasOnboardingV2: props.settings.hasOnboardingV2,\n hasCompletedOnboardingV2: props.settings.hasCompletedOnboardingV2\n }}\n availablePresentations={props.availablePresentations}\n imageCdnUrl={props.commonVideoProps.imageCdnUrl}\n commonVideoProps={props.commonVideoProps}\n\n // TODO: Ideally we don't have to do this\n classification={undefined}\n contentType={undefined}\n hasTableOfContents={false}\n limitTotalItems={false}\n isTertiaryCustomerWithoutExchange={props.isTertiaryCustomerWithoutExchange}\n seeMoreLink={undefined}\n onClickRemoveItem={props.removeFromVideoHistory}\n badgeComponent={null}\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, VideoActionDescriptor, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { DiscoverDashboard } from 'libs/shared/apps/discover/components/discover-dashboard/DiscoverDashboard';\nimport { LibraryHelper } from 'libs/shared/apps/libraries/utils/LibraryHelper';\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 { WidgetTemplate } from 'libs/shared/enums/WidgetTemplate';\nimport { WidgetTypeId } from 'libs/shared/enums/WidgetTypeId';\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 { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useProducts } from 'libs/shared/hooks/UseProducts';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { CuratedWidgetQueryParams, CurrentUser, Customer, DashboardTargetType, Library, Presentation, PresentationAudience, User, WidgetPreference } 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 { ImageUrls } from 'shared/constants/ImageUrls';\nimport { useCommonVideoProps } from 'shared/hooks/useCommonVideoProps';\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 { useIsTertiary } from 'apps/onboarding/hooks/useIsTertiary';\nimport { VideoHistoryRequests } from 'apps/watch-history/flight-requests/VideoHistoryRequests';\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 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 alerts = useAlerts();\n\n const customer = Flight.useBasicFetch<Customer>(\n hasLocalPermissions(LocalPermissionName.ManageDiscoverPreferences) &&\n currentUser.data?.isAuthenticated &&\n CustomerRequests.customer(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 isTertiary = useIsTertiary();\n const products = useProducts();\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 { commonVideoProps } = useCommonVideoProps({ locationContext: 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), currentUser.data);\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 removeFromVideoHistory(\n videoId: string,\n videoName: string,\n widgetId: string,\n widgetTypeId: WidgetTypeId\n ): Promise<void> {\n if (widgetTypeId !== WidgetTypeId.ContinueWatching)\n return;\n\n try {\n await fetchAsync<void>(VideoHistoryRequests.removeFromHistory(videoId, [`widget:${widgetId}`]));\n\n alerts.success(LanguageService.getPhrase(namespace, 'removeFromHistorySuccess'));\n\n AnalyticsHelper.logUserAction({\n id: videoId,\n name: videoName,\n widgetId\n }, {\n entity: EntityType.Video,\n actionType: UserAction.Click,\n descriptor: VideoActionDescriptor.RemoveFromWatchHistory,\n location: LocationContext.SlidingListItem\n });\n } catch {\n alerts.error(LanguageService.getPhrase(namespace, 'removeFromHistoryError', { name: videoName }));\n }\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 <DiscoverDashboard\n dashboard={dashboard.data}\n widgetAppLinks={widgetAppLinks}\n headerAppLinks={getDiscoverHeaderAppLinks()}\n presentation={presentation}\n getWidgetContentRequest={(\n id: string,\n params: CuratedWidgetQueryParams,\n widgetTemplate: WidgetTemplate,\n presentation: Presentation\n ) => {\n const { hasTwig, hasTigtag } = LibraryHelper.hasTwigOrTigtag(libraries.data, currentUser.data);\n\n return DashboardRequests.dashboardWidgetContent(\n id,\n params,\n widgetTemplate,\n presentation,\n { hideTigTag: !hasTigtag, hideTwig: !hasTwig }\n );\n }}\n audiences={audiences.data}\n updatePreferences={updateWidgetPreferences}\n hasPermissions={hasPermissions}\n hasLocalPermissions={hasLocalPermissions}\n onSubmitFeedback={\n hasPermissions(PermissionName.CanSubmitFeedback) &&\n onSubmitFeedback\n }\n removeFromVideoHistory={removeFromVideoHistory}\n lazyLoad={!SeoHelper.isBot()}\n showCalendar={showCalendar}\n jobTitle={user.data?.userProfile?.metadata?.jobTitle}\n imageUrls={{\n onboardingTeacherBackground: ImageUrls.OnboardingV2.Widget.TEACHER_BACKGROUND\n }}\n settings={settings}\n availablePresentations={availablePresentations}\n isTertiaryCustomerWithoutExchange={isTertiary && !products?.hasProduct(ProductId.Exchange)}\n commonVideoProps={commonVideoProps}\n />\n </div>\n );\n}","import { Core } from 'libs/common/backbone/index';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { DiscoverDashboardProps } from 'libs/shared/apps/discover/components/discover-dashboard/DiscoverDashboard';\nimport { DiscoverHeaderAppLinks } from 'libs/shared/apps/discover/components/header/DiscoverHeader';\nimport { OnboardingScreenId } from 'libs/shared/apps/onboarding/interfaces/OnboardingScreenId';\nimport { RelatedVideosContext } from 'libs/shared/enums/RelatedVideosContext';\nimport { Classification, Company, CurrentUser, Playlist, 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';\nconst OMITTED_PARAMS = [ 'preview', 'dashboardId', 'skipPrompt' ];\n\nexport function getDiscoverWidgetAppLinks(\n params: HashObject,\n currentUser: CurrentUser\n): DiscoverDashboardProps['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 includeContext: currentUser?.isAuthenticated\n })\n ),\n\n series: SeriesAppLinkHelper.getSeriesAppLink,\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.PRESENTATION_TOPICS\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 classificationDirectory: (_classification: Classification) => {\n const appLinkClassification = _classification;\n\n return {\n application: AppChannels.SUBJECT,\n action: Actions.Subjects.CLASSIFICATION_TOPICS,\n args: [ appLinkClassification.id, TextHelper.slugify(appLinkClassification.name) ],\n params: ObjectHelper.omit(params, OMITTED_PARAMS)\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 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 livestream: () => null,\n widgetWizard: () => null\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}","\nimport { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\nimport { Xhr } from 'libs/common/backbone/interfaces';\nimport { Flight } from 'libs/common/flight';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { VideoHistoryCollection } from 'libs/shared/interfaces';\n\nexport const VideoHistoryRequests = {\n userVideoHistory(\n cursor?: string,\n success?: (data: HashObject) => void,\n error?: (Xhr: Xhr) => void,\n always?: () => void\n ): Flight.Request {\n let key = 'video:history';\n let url = `{gateway}/v1/users/me/watch-history`;\n\n if (cursor) {\n key += `:${cursor}`;\n url += `?cursor=${cursor}`;\n }\n\n return {\n key,\n url,\n formatData: (historyCollection: VideoHistoryCollection) => {\n return {\n data: historyCollection.data.map(historyData => {\n // Convert last watched times from UTC to local time\n const lastTimeWatchedLocal = DateHelper.format(historyData.lastTimeWatched);\n const lastDateWatchedLocal = DateHelper.format(lastTimeWatchedLocal, 'YYYY-MM-DD');\n\n return {\n ...historyData,\n lastTimeWatched: lastTimeWatchedLocal,\n lastDateWatched: lastDateWatchedLocal\n };\n }),\n pagination: historyCollection.pagination\n };\n },\n success,\n error,\n always\n };\n },\n\n videoHistory(\n ids: string[],\n namespace?: string,\n success?: (data: HashObject) => void,\n error?: (Xhr: Xhr) => void,\n always?: () => void\n ): Flight.Request {\n const params = ids.sort().map(i => `videoId=${i}`);\n\n return {\n key: `video:history:videos:${params.join('&')}`,\n url: `{gateway}/v1/videos/history?${params.join('&')}`,\n normalizeOptions: {\n namespace\n },\n formatData: (historyCollection: HashObject[]) => {\n if (!historyCollection?.length)\n return historyCollection;\n\n /**\n * Data is formatted to enable it to be merged with the existing video object in the store\n * Where we need to merge more history properties with the video object, map them below.\n */\n return historyCollection.map((watchHistory: HashObject) => ({\n id: watchHistory.videoId,\n lastProgressPoint: watchHistory.lastProgressPoint\n }));\n },\n success,\n error,\n always\n };\n },\n\n removeFromHistory(videoId: string, invalidationKeys: string[] = []): Flight.Request {\n return {\n url: `{gateway}/v1/users/me/videos/${videoId}/watch-history`,\n key: `remove:video:history:${videoId}`,\n type: HttpVerbs.DELETE,\n invalidationKeys: [\n 'video:history',\n ...invalidationKeys\n ]\n };\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 [ContentRegion.CA]: []\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","TabContents","tab","svgName","count","data","ref","containerRef","borderRadius","listClassName","map","index","key","onClick","onSelect","onSelectTab","defaultProps","FeedbackType","FeedbackRequests","submitFeedback","requestData","formValues","COUNTRY_CODE_TAGS","C","FeedbackFormHelper","getUserInfo","currentUser","customer","id","username","email","userType","role","customerId","cvcId","crmId","customerName","instanceRegion","contentRegion","firstName","givenName","lastName","familyName","mapCountryCodeToTag","countryCode","toLowerCase","getTags","product","extraTags","tags","countryCodeTag","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","widgetCollection","getContentRequest","audiences","description","templateId","metadata","preferences","widgetAppLinks","isScrollToTargetWidget","scrollToWidgetId","widgetId","hasLocalPermissions","onSubmitFeedback","updatePreferences","lazyLoad","dashboardTarget","widgetIndex","jobTitle","isPreviewing","settings","hasTopicDirectories","hasOnboardingV2","hasCompletedOnboardingV2","availablePresentations","imageCdnUrl","commonVideoProps","classification","undefined","contentType","hasTableOfContents","limitTotalItems","isTertiaryCustomerWithoutExchange","seeMoreLink","onClickRemoveItem","removeFromVideoHistory","badgeComponent","emptyImageUrl","widgetWizard","CuratedDiscoverView","UserRequests","user","isAuthenticated","usePermissions","alerts","CustomerRequests","libraries","LibraryRequests","usePresentation","isTertiary","useIsTertiary","products","targetType","queryParams","presentationSlug","fetchAsync","useSettings","useCommonVideoProps","locationContext","activeAudiences","SharedViewModelKeys","storage","AudienceHelper","phraseVariant","PresentationLearningLevel","learningLevel","getPhraseVariant","useSetPageMetadata","PageMetadataHelper","content","phraseContext","phraseHandler","titlePhrase","descriptionPhrase","canonicalLink","SeoHelper","allowIndexing","hrefLang","discover","useShowCalendar","widgetTemplate","LibraryHelper","hasTwig","hasTigtag","DashboardRequests","hideTigTag","hideTwig","oldPreferences","newPreferences","addedSubjects","filter","p","hidden","find","o","removedSubjects","PreferenceRequests","s","feedback","ProductId","reaction","presentationName","presentationId","dashboardName","dashboardId","currentPageUrl","promise","AnalyticsHelper","feedbackType","workflowPhase","videoId","videoName","WidgetTypeId","VideoHistoryRequests","success","descriptor","error","userProfile","onboardingTeacherBackground","ImageUrls","hasProduct","CLASSIFICATION_LATEST_RELEASES","OMITTED_PARAMS","getDiscoverWidgetAppLinks","videoType","video","opts","context","includeContext","series","playlist","application","action","args","latestReleases","allTopics","classificationLatestReleases","classificationDirectory","_classification","appLinkClassification","widgetVideoList","widgetName","watchHistory","company","calendarMonth","month","year","onboardingStep","step","onboardingAppLinks","livestream","getDiscoverHeaderAppLinks","userVideoHistory","cursor","always","formatData","historyCollection","historyData","lastTimeWatchedLocal","lastTimeWatched","lastDateWatchedLocal","lastDateWatched","pagination","videoHistory","ids","sort","i","join","normalizeOptions","lastProgressPoint","removeFromHistory","invalidationKeys","ALLOWED_LEARNING_LEVELS_BY_REGION","hasSpecialEventCalendar","isLoadingSettings","activePresentation","redirectOnError","allowedLearningLevels","learningLevelCantAccess","l","toString","noSetting","setShowCalendar","isLoading","setIsLoading"],"sourceRoot":""}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/*! For license information please see 6948-b1b7f560c9-lite.chunk.js.LICENSE.txt */
|
|
2
|
+
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[6948],{7870:(e,t,n)=>{n.d(t,{N:()=>c});var a=n(97395),i=n(75896),r=n(110),o=n(56644),c={calendarEvents:function(e,t,n){return{url:a._.urlBuilder("{gateway}/v1/discover/special-events/content",{from:e,to:t,presentationId:n}),publicUrl:a._.urlBuilder("/api/discover/special-events/content",{from:e,to:t,presentationId:n}),key:"presentation:".concat(n,":events:from:").concat(e,":to").concat(t)}},nextTopicSpecialEvent:function(e,t){var n={presentationId:t,limit:1,from:r.O.format(new Date,"YYYY-MM-DD"),objectType:o.VH.Classification};return{url:a._.urlBuilder("{gateway}/v1/discover/special-events/object/".concat(e,"/next-events"),n),publicUrl:a._.urlBuilder("/api/discover/special-events/object/".concat(e,"/next-events"),n),key:"presentation:".concat(t,":events:classification:").concat(e),formatData:function(e){return i.m.first(e)}}}}},54135:(e,t,n)=>{n.d(t,{e:()=>s});var a=n(32735),i=n(23481),r=n(91967);const o={disabled:"pERi4",disabledHighlighted:"AxyWm",badge:"KmfP8"};var c=i.T.encloseNamespace("shared.audienceItem");function s(e){var t=e.audience,n=e.highlight,i=e.setAudience,s=e.isDisabled,l=e.extraClasses,u=function(e,t){return e?t?"".concat(o.disabledHighlighted," text-light"):"bg-gray-900 text-light":t?"".concat(o.disabled," text-secondary"):"bg-light"}(n,s),d=s?"cursor-default":"cursor-pointer",m="".concat(o.badge," lh-1 rounded-pill d-inline-block me-1 user-select-none ").concat(d," ").concat(u," ").concat(l);return a.createElement("button",{type:"button",className:m,onClick:function(){!s&&r.q.isFunction(i)&&i(t,!n)},role:"checkbox","aria-checked":n,"aria-label":"".concat(c("ariaFilter")," ").concat(t.name),disabled:s},t.name.split(" ").map(function(e){return e.charAt(0).toUpperCase()+e.substring(1)}).join(" "))}s.defaultProps={extraClasses:""}},65042:(e,t,n)=>{n.d(t,{a:()=>y});var a=n(32735),i=n(23481),r=n(75902),o=n(35223);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 s(e,t,n){return(t=function(e){var t=function(e){if("object"!=c(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=c(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==c(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var l=s(s(s({},r.GL.Archived,{svgName:o.vn.Archive,svgColorClassName:"text-secondary",actionName:"Archive",statusName:"Archived"}),r.GL.Draft,{svgName:o.vn.Edit,svgColorClassName:"",actionName:"Draft",statusName:"Draft"}),r.GL.Published,{svgName:o.vn.VisibleOn,svgColorClassName:"text-success",actionName:"Publish",statusName:"Published"}),u=n(83914),d=n(56644);const m={badge:"ciO47",draftLight:"A6Yi7",draftDark:"fkXBX",published:"Ovzwy",archived:"r_dco"};function f(e){var t="rounded-pill d-flex align-items-center ps-2 py-1 fw-semibold ms-2 ".concat(m.badge);switch(e.status){case d.GL.Published:t+=" ".concat(m.published);break;case d.GL.Archived:t+=" ".concat(m.archived);break;case d.GL.Draft:t+=" ".concat(e.darkMode?m.draftDark:m.draftLight)}return e.wrapperClassName&&(t+=" ".concat(e.wrapperClassName)),t}function p(e){var t=l[e.status],n=t.statusName,i=t.svgName;return a.createElement("div",{className:f(e)},a.createElement(u.x,{svgName:i}),a.createElement("div",null,n))}var v=n(85219);const g={stickyWrapper:"zhw6K",badgeWrapper:"NOvn1",badge:"pxQSR"};var b=i.T.encloseNamespace("shared.classificationPreviewBanner");function y(e){return a.createElement("div",{className:"".concat(g.stickyWrapper," py-2 d-flex justify-content-space-between bg-dark text-white mx-2 rounded")},a.createElement("div",{className:"position-absolute d-flex ".concat(g.badgeWrapper)},a.createElement(p,{status:e.status,wrapperClassName:"".concat(g.badge),darkMode:!0})),a.createElement("div",{className:"flex-grow-1"},a.createElement("h1",{className:"text-center my-3 h5"},a.createElement(v.V,{emoji:"👀"}),b("topic"===e.type?"topicTitle":"companyTitle"))))}},67814:(e,t,n)=>{n.d(t,{p:()=>L,v:()=>N});var a=n(32735),i=n(110),r=n(50690),o=n(22406),c=n(78408),s=n(83657),l=n(23481),u=n(15611),d=n(83914),m=n(35223),f="shared.backButton";function p(e){var t=Object.assign({textShadow:!0},e),n=t.backToName,i=t.appLink,r=t.color,o=t.extraClasses,c=t.textShadow,s=n?l.T.getPhrase(f,"backTo",{backToName:n}):l.T.getPhrase(f,"back"),p="black"===r?"":"text-white",v=c?"text-shadow":"";return a.createElement(u.F,{appLink:i,className:"d-inline-flex align-items-center h5 mb-0 ".concat(o," ").concat(p," ").concat(v)},a.createElement(d.x,{svgName:m.vn.ChevronLeft,size:d.S.Medium}),a.createElement("span",{className:"ms-1"},s))}p.defaultProps={color:"black",extraClasses:""};var v=n(4527),g=n(83345),b=n(7733),y=n(10587),h=n(94232),w=n(54610),C=n(79967),T=n(9085),E=n(67453);const k={bannerContent:"sSCTB",actionsContainer:"Z5WI2",bannerContentWithLogo:"rgs7Q",container:"M51HJ",logoContainer:"vkeJk",logoContainerLeft:"M3U9B",logoHeading:"EtRwC",specialEventContainer:"rOxDc",headingLarge:"_8pnV",heading:"JXVBH"};var S="".concat(y.y[w.__.Banners].width,":").concat(y.y[w.__.Banners].height);function I(e){return e.length<160?"h1":k.headingLarge}var L=a.memo(function(e){var t,n,l,u,d=e.heading,m=e.banner,f=e.imageCdnUrl,y=e.actions,L=e.sortComponent,N=e.blockColourClass,x=e.specialEvent,O=a.useContext(h.n),P=(0,C.k)().xxl?1920:1200,A=a.useMemo(function(){if(!x||e.showComingSoon)return!1;var t=i.O.format(new Date,"YYYY-MM-DD");return x.endDate?x.startDate<=t&&x.endDate>=t:x.startDate===t},[x]),D=e.imageOptions||{width:P,ratio:S,resizeType:w.Nq.Cover},j=!!m&&!!f&&E.j.createBannerUrl(m,{fallbackBaseUrl:f,fallbackCategoryName:d,type:w.__.Banners},D),F={className:"banner banner-header ".concat(e.bannerClassName),style:j?{backgroundImage:"url('".concat(j,"')")}:{}};!m&&N&&(delete F.style,F.className+=" ".concat(N));var U=e.detailsComponent,B=(0,T.x)(e.heading,b.o);return r.b.renderInPortalIfExists(a.createElement("header",Object.assign({},F),a.createElement("div",{className:"container ".concat(k.container," position-relative inner-banner")},e.backButtonAppLink&&a.createElement("div",{className:"pt-3"},a.createElement(p,{appLink:e.backButtonAppLink,backToName:e.backButtonText,extraClasses:e.backButtonClasses,color:"white"})),a.createElement("div",{className:"".concat(e.alignLogoLeft?"position-absolute top-50 start-0 translate-middle-y w-100 ps-4":"".concat(k.bannerContent," px-2 ").concat((null===(t=e.logo)||void 0===t?void 0:t.url)?k.bannerContentWithLogo:""))},!!x&&a.createElement("div",{className:"position-relative ".concat(k.specialEventContainer)},a.createElement(c.s,{body:{type:x.endDate?"range":"day",text:x.endDate?"".concat(i.O.format(x.startDate,"DD"),"-").concat(i.O.format(x.endDate,"DD")):i.O.format(x.startDate,"DD")},month:function(e){return e.endDate?i.O.isSame(e.startDate,e.endDate,"month")?i.O.format(e.startDate,"MMMM"):"".concat(i.O.format(e.startDate,"MMM")," - ").concat(i.O.format(e.endDate,"MMM")):i.O.format(e.startDate,"MMMM")}(x),theme:e.calendarTheme})),a.createElement("div",null,A&&a.createElement("div",{className:"rounded-pill py-1 px-2 my-1 me-1 fw-semibold bg-light-blue lh-1 d-inline-block"},a.createElement(g.x,{namespace:"shared.bannerHeader",phrase:"onToday"})),e.showComingSoon&&a.createElement(o.r,{className:"pe-2 fw-semibold mb-1 rounded-pill justify-content-start text-nowrap"}),a.createElement("div",{className:"d-flex align-items-center"},e.alignLogoLeft&&(null===(n=e.logo)||void 0===n?void 0:n.url)&&a.createElement("div",{className:"".concat(k.logoContainerLeft," d-none d-md-block rounded-circle overflow-hidden me-3 ").concat(B)},a.createElement(v.w,{src:E.j.createUrl(null===(l=e.logo)||void 0===l?void 0:l.url,{size:w.h2.Medium}),style:{backgroundColor:e.logoBgColour}})),a.createElement("h1",{className:"text-white text-shadow pe-3 position-static ".concat(k.heading," ").concat(I(d)," ").concat(e.alignLogoLeft?"w-50":"")},d,U&&a.createElement(U,null)))),!!y&&a.createElement("div",{className:k.actionsContainer},a.createElement(s.e,{actions:y,sortComponent:L,actionsDropdownClassName:e.actionsDropdownClassName}))),!e.alignLogoLeft&&!!(null===(u=e.logo)||void 0===u?void 0:u.url)&&a.createElement("div",{className:k.logoContainer},a.createElement("img",{src:E.j.createUrl(e.logo.url,{size:w.h2.Medium}),className:"rounded-circle"})))),null==O?void 0:O.container)},function(e,t){var n,a;return e.actions===t.actions&&e.heading===t.heading&&(null===(n=e.logo)||void 0===n?void 0:n.url)===(null===(a=t.logo)||void 0===a?void 0:a.url)});function N(){var e=a.useContext(h.n);return r.b.renderInPortalIfExists(a.createElement("div",{className:"partial-banner partial-loading-background ".concat(k.banner)}),null==e?void 0:e.container)}},38502:(e,t,n)=>{n.d(t,{r:()=>d});var a=n(32735),i=n(49985),r=n(15611),o=n(18559),c=n(11607),s=n(83914),l=n(22771);function u(e){return a.createElement(a.Fragment,null,!!e.tab.svgName&&a.createElement("div",{className:e.tab.name?"pe-1":""},a.createElement(s.x,{svgName:e.tab.svgName})),e.tab.name,"number"==typeof e.tab.count&&a.createElement("div",{className:"ps-2"},a.createElement(o.C,{type:o.g.Count,data:e.tab.count})))}function d(e){var t;return a.createElement("nav",{className:null!==(t=e.className)&&void 0!==t?t:"",ref:e.containerRef},a.createElement("ul",{className:"\n list-unstyled d-inline-block m-0 ".concat(l.Z.pillTabSelector,"\n ").concat(e.borderRadius?l.Z.radiusSmall:"","\n ").concat(e.listClassName,"\n ")},e.tabs.map(function(e,t){return a.createElement("li",{className:"\n p-0 ".concat(l.Z.tab," ").concat(e.active?"btn btn-dark":"btn btn-outline-dark","\n ").concat(e.name?l.Z.minWidth:""," ").concat(e.className,"\n "),key:t},e.appLink?a.createElement(r.F,{appLink:e.appLink,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions,className:"\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ".concat(l.Z.tabLink,"\n ")},a.createElement(u,{tab:e})):a.createElement(c.L,{className:"\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ".concat(l.Z.tabLink,"\n "),onClick:function(){return function(e){!e.active&&e.onSelect&&(e.onSelect(),e.analyticsData&&e.analyticsOptions&&i.k.logUserAction(e.analyticsData,e.analyticsOptions))}(e)}},a.createElement(u,{tab:e})))})))}d.defaultProps={borderRadius:"lg"}},17101:(e,t,n)=>{var a;n.d(t,{n:()=>a}),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"}(a||(a={}))},94644:(e,t,n)=>{n.d(t,{r:()=>u});var a=n(50242),i=n(81886),r=n(67058),o=n(14553),c=n(49267),s=n(49075),l={notFound:r.d,forbidden:{rating:o.q,yearLevel:o.q,region:c.a,privacy:o.q},badRequest:s._,internalServerError:s._};function u(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e){var r;r="number"==typeof e?e:e.status;var o=Object.assign(Object.assign({},l),t);r&&i.Q.Ry.isStatusCodeError(r)&&(r!==a.o.InternalServer?r!==a.o.NotFound?r!==a.o.Forbidden?n.badRequest||i.Q.Ry.throw(new o.badRequest):n.forbidden||i.Q.Ry.throw(new o.forbidden.privacy):n.notFound||i.Q.Ry.throw(new o.notFound):n.internalServerError||i.Q.Ry.throw(new s._))}}},7198:(e,t,n)=>{n.d(t,{f:()=>i});var a=n(99940),i={submitFeedback:function(e,t){return{url:"{gateway}/v1/feedback",key:"submit:feedback",type:a.k.POST,data:Object.assign(Object.assign({},e),t)}}}},91286:(e,t,n)=>{n.d(t,{v:()=>o});var a=n(32735),i=n(94644);function r(e){return e.map(function(e){return e.statusCode}).join(":")}function o(e,t,n){var o=Array.isArray(e)?e:[e];(0,a.useEffect)(function(){o.forEach(function(e){(0,i.r)(e.statusCode,t,n)})},[r(o),t,n])}},63719:(e,t,n)=>{n.d(t,{h:()=>c});var a=n(32735),i=n(77316);function r(e,t){if(e){if("string"==typeof e)return o(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?o(e,t):void 0}}function o(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 c(e){var t,n,c=(t=a.useMemo(function(){return i.p.getBuilder()},[]),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,i,r,o,c=[],s=!0,l=!1;try{if(r=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(a=r.call(n)).done)&&(c.push(a.value),c.length!==t);s=!0);}catch(e){l=!0,i=e}finally{try{if(!s&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(l)throw i}}return c}}(t,n)||r(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.")}()),s=c[0],l=(0,c[1])(s);return l&&e?[].concat(function(e){return function(e){if(Array.isArray(e))return o(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||r(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}(l),[Object.assign(Object.assign({},e),{active:!0})]):l}},52167:(e,t,n)=>{n.d(t,{m:()=>m});var a=n(53301),i=n.n(a),r=n(28046),o=n(93824),c=n(86613);function s(e){return s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},s(e)}function l(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 u(e,t,n){return(t=function(e){var t=function(e){if("object"!=s(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=s(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==s(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var d=u(u(u(u(u({},o.C.AU,"au"),o.C.NZ,"nz"),o.C.UK,"uk"),o.C.US,"us"),o.C.CA,"ca"),m={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}},mapCountryCodeToTag:function(e){return d[e.toLowerCase()]},getTags:function(e,t,n,a){var i,r=[t].concat(function(e){if(Array.isArray(e))return l(e)}(i=a)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(i)||function(e,t){if(e){if("string"==typeof e)return l(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?l(e,t):void 0}}(i)||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.")}());r.push(n?"student":"staff"),e.role===c.i.Admin&&r.push("administrator");var o=m.mapCountryCodeToTag(e.countryCode);return o&&r.push(o),r},categorizeFiles:function(e){return e.reduce(function(e,t){var n=t.get("fileInfo");return i().isValidFile(t.get("file"),r.l.VIDEO)?e.videoUrls.push(null==n?void 0:n.url):e.imageUrls.push(null==n?void 0:n.url),e},{imageUrls:[],videoUrls:[]})}}},26948:(e,t,n)=>{n.r(t),n.d(t,{CuratedClassificationView:()=>Rt});var a=n(32735),i=n(6044),r=n(23481),o=n(20354),c=n(49985),s=n(65858),l=n(7870),u=n(31549),d=n(83345),m=n(87114),f="subject.classificationHeaderDetails",p=function(e){var t=e.className;return a.createElement("span",{className:t},"•")};function v(e){var t=m.i.getCounts(e.classification),n=t.dashboardVideoCount,i=t.childDashboardVideoCount,r=t.dashboardResourceCount,o=t.childDashboardResourceCount,c=t.childClassificationCount,s=n+i,l=r+o;return a.createElement("p",{className:"mb-n1 font-size-normal fw-normal mt-1"},!!c&&a.createElement(d.x,{namespace:f,phrase:"topics",options:{count:c.toLocaleString(),smartCount:c}}),!!s&&a.createElement(a.Fragment,null,c>0&&a.createElement(p,{className:"mx-2"}),a.createElement(d.x,{namespace:f,phrase:"videos",options:{count:s.toLocaleString(),smartCount:s}})),!!l&&a.createElement(a.Fragment,null,a.createElement(p,{className:"mx-2"}),a.createElement(d.x,{namespace:f,phrase:"resources",options:{count:l.toLocaleString(),smartCount:l}})))}var g=n(97958),b=n(36532),y=n(56644),h=n(35223),w="subjects.curatedClassificationEmptyState",C=r.T.encloseNamespace(w);function T(e){var t,n,i=(null===(t=e.dashboard)||void 0===t?void 0:t.status)===y.GL.Archived;return a.createElement(d.D.Provider,{value:w},a.createElement(g.u,null,a.createElement(g.u.Image,{src:e.imageUrl,altText:C("headingForNP")}),e.isReadonly?a.createElement(a.Fragment,null,a.createElement(g.u.Heading,null,a.createElement(d.x,{namespace:w,phrase:"headingForCurator"})),a.createElement(g.u.Info,null,a.createElement(d.x,{namespace:w,phrase:"info"})),a.createElement(b.u,{title:i?r.T.getPhrase(w,"archivedCtaTooltip"):"",spanHack:!0},a.createElement(g.u.Cta,{text:r.T.getPhrase(w,"add"),appLink:null===(n=e.addWidgetApplink)||void 0===n?void 0:n.call(e),className:"btn btn-dark",icon:h.vn.Plus,disabled:i}))):a.createElement(g.u.Heading,null,a.createElement(d.x,{phrase:"headingForNP"}))))}var E=n(91693),k=n(43278),S=n(75795);const I={container:"k1iOO",mobile:"QwoBj"};function L(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 N(e){var t,n,i=(t=a.useState(!1),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,i,r,o,c=[],s=!0,l=!1;try{if(r=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(a=r.call(n)).done)&&(c.push(a.value),c.length!==t);s=!0);}catch(e){l=!0,i=e}finally{try{if(!s&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(l)throw i}}return c}}(t,n)||function(e,t){if(e){if("string"==typeof e)return L(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?L(e,t):void 0}}(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.")}()),r=i[0],o=i[1];return a.createElement("div",{className:"".concat(I.mobile," d-inline-flex gap-1")},r&&a.createElement("div",{className:"bg-white px-3 pt-3 pb-2 border border-dark rounded-1 ps-3"},a.createElement("h2",{className:"h5"},e.title),a.createElement(k.w,{items:e.widgets.map(function(e){return{name:e.name,id:e.id,tocIndentation:e.metadata.tocIndentation}}),activeId:e.activeId,appLink:e.appLink,analyticsData:e.analyticsData,setControlledId:e.setControlledId,getAppLink:e.getAppLink,onItemClick:function(){return o(!1)}})),a.createElement("div",{className:I.container},a.createElement(E.h,{className:"btn btn-outline-dark",svgName:h.vn.TableOfContents,onClick:function(){var t;o(!r),t={actionType:r?s.Vw.Hide:s.Vw.Open,entity:s.py.TableOfContents,location:s.LZ.Dashboard},c.k.logUserAction(e.analyticsData,t)}})))}function x(e){return a.createElement("aside",{className:"col-3 order-1"},a.createElement("div",{className:"".concat(I.container," ps-3")},a.createElement("h2",{className:"h5"},e.title),a.createElement(k.w,{items:e.widgets.map(function(e){return{name:e.name,id:e.id,tocIndentation:e.metadata.tocIndentation}}),activeId:e.activeId,appLink:e.appLink,analyticsData:e.analyticsData,setControlledId:e.setControlledId,getAppLink:e.getAppLink})))}function O(e){function t(e){var t=S.O.getCurrentRoute().appLink,n=t.params?Object.assign({},t.params):{};return n.tocId=e.id,Object.assign(Object.assign({},t),{params:n})}return a.createElement(a.Fragment,null,e.isSmallScreen?a.createElement(N,Object.assign({},e,{getAppLink:t})):a.createElement(x,Object.assign({},e,{getAppLink:t})))}var P="subjects.teacherOnlyEmptyState",A=r.T.encloseNamespace(P);function D(e){var t;return a.createElement(d.D.Provider,{value:P},a.createElement(g.u,null,a.createElement(g.u.Image,{src:e.imageUrl,altText:A("heading")}),a.createElement(g.u.Heading,null,a.createElement(d.x,{phrase:"heading"})),a.createElement(g.u.Info,null,a.createElement(d.x,{phrase:"info"})),a.createElement(g.u.Cta,{text:A("cta"),appLink:null===(t=e.ctaAppLink)||void 0===t?void 0:t.call(e),className:"btn btn-dark"})))}var j=n(75896),F=n(78479),U=n(42308),B=n(80889),R=n(21366),M=n(67814),V=n(3534),_=n(22021),W=n(131),G=n(86764),H=n(16714),q=n(3747),z=n(65332),Z=n(9907),Q=n(42735),$=n(15611),Y="subjects.classificationComingSoon",J=r.T.encloseNamespace(Y);function K(e){var t,n,i=!!(null===(n=null===(t=e.data.followers)||void 0===t?void 0:t.data)||void 0===n?void 0:n.length);return a.createElement(d.D.Provider,{value:Y},a.createElement(g.u,{className:"pt-0"},a.createElement(g.u.Image,{src:e.imageUrl,altText:J("comingSoon")}),a.createElement(g.u.Heading,null,a.createElement(d.x,{phrase:"comingSoon"})),a.createElement(g.u.Info,null,a.createElement(d.x,{phrase:e.showSignUp?"infoAnon":"info"})),e.canFollowSubjects&&a.createElement(Q.K,{svgName:i?h.vn.BellFilled:h.vn.Bell,onClick:function(){var t;null===(t=e.onToggleFollow)||void 0===t||t.call(e)},showSpinner:e.showFollowButtonSpinner,className:"btn follow-btn me-2 ".concat(i?"btn-outline-dark":"btn-dark")},a.createElement(d.x,{phrase:i?"following":"follow"})),e.showSignUp&&!e.canFollowSubjects&&a.createElement($.F,{appLink:e.signUpAppLink,className:"btn btn-dark d-none d-lg-inline-block",analyticsOptions:{actionType:s.Vw.Click,location:s.LZ.ClassificationComingSoon,entity:s.py.AppLink,workflowPhase:s.eu.Start,descriptor:s.Yu.SignUp},analyticsData:{},tag:"button"},J("signUp"))))}var X=n(49935),ee=n(79967),te=n(69454),ne=n(57900),ae=n(81886),ie=n(2948),re=n(1048),oe=n(54135),ce=n(11607),se=n(38143),le=n(5859);function ue(e,t){if(e){if("string"==typeof e)return de(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)?de(e,t):void 0}}function de(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 me="subjects.audienceFilter";function fe(e){var t,n,i=e.audiences,r=e.activeAudiences,o=e.appLink,c=e.disabled||!o,s=(t=(0,ie.D)(se.g.AUDIENCE_FILTER,void 0,{storage:ne.Z1.SessionStorage}),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,i,r,o,c=[],s=!0,l=!1;try{if(r=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(a=r.call(n)).done)&&(c.push(a.value),c.length!==t);s=!0);}catch(e){l=!0,i=e}finally{try{if(!s&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(l)throw i}}return c}}(t,n)||ue(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.")}())[1];function l(e,t){var n;if(!c){var a,i=t?[].concat(function(e){return function(e){if(Array.isArray(e))return de(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||ue(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}(null!==(n=null==r?void 0:r.map(function(e){return e.name}))&&void 0!==n?n:[]),[e.name]):r.map(function(e){return e.name}).filter(function(t){return t!==e.name});ae.Q.C$.trigger(Object.assign(Object.assign({},o),{params:(a=re.t.omit(o.params,["a"]),i.length?Object.assign({},a,{a:i}):a)}),{replace:!0})}}return a.useEffect(function(){e.disablePersist||s(r)},[r]),i&&i.length?a.createElement(b.u,{title:e.tooltip,spanHack:!0},a.createElement("div",{className:"d-flex flex-wrap row-gap-2"},i.map(function(e){return a.createElement(oe.e,{key:e.masterId,audience:e,highlight:!c&&!!(null==r?void 0:r.find(function(t){return t.masterId===e.masterId})),setAudience:l,isDisabled:c})}),!c&&!!r&&!!Object.keys(r).length&&a.createElement(ce.L,{className:"info-link d-inline-block ms-1",onClick:function(){if(!c){var e=re.t.omit(o.params,["a"]);ae.Q.C$.trigger(Object.assign(Object.assign({},o),{params:e}),{replace:!0})}}},a.createElement(d.x,{namespace:me,phrase:"clear"})))):a.createElement(a.Fragment,null)}var pe=le.u.getPartialLoadingItems({numItems:6}),ve=function(){return a.createElement("div",{className:"d-flex flex-wrap row-gap-2"},pe.map(function(e,t){var n=e.width;return a.createElement("span",{key:t,className:"rounded-pill partial-loading-background me-1",dangerouslySetInnerHTML:{__html:" "},style:{width:n}})}))};function ge(e){return a.createElement(fe,{audiences:e.audiences,activeAudiences:e.activeAudiences,disabled:e.disabled,appLink:e.appLink,disablePersist:e.disablePersist,tooltip:e.tooltip})}var be=n(38502),ye=n(10253),he=n(30064);const we={curatedTopicTab:"CmVlO",tabTransition:"rX31t"};var Ce="shared.classificationDashboard";function Te(e,t,n,a){var i,o,c,l,u,d,f,p,v,g,b,y,w,C,T,E,k,S=t.lg||t.xl||t.xxl||t.xs;return m.i.isTopLevelTopic(e.classification)?[{name:S?r.T.getPhrase(Ce,"newReleases"):"",appLink:null===(o=null===(i=e.appLinks)||void 0===i?void 0:i.classification)||void 0===o?void 0:o.call(i,e.classification),active:"new-releases"===n,svgName:h.vn.Sparkle,analyticsData:{id:"new-releases",classificationId:e.classification.id,classificationName:e.classification.name,presentationId:e.presentation.id,presentationDescription:e.presentation.description,name:r.T.getPhrase(Ce,"newReleases"),url:ae.Q.C$.getHref(null===(l=null===(c=e.appLinks)||void 0===c?void 0:c.classification)||void 0===l?void 0:l.call(c,e.classification))},analyticsOptions:{actionType:s.Vw.Click,entity:s.py.Url,location:s.LZ.MagicTabs},className:"".concat(t.xs?"w-100":""," ").concat(a?we.tabTransition:"")},{name:S?r.T.getPhrase(Ce,"allTopics"):"",appLink:null===(d=null===(u=e.appLinks)||void 0===u?void 0:u.classificationDirectory)||void 0===d?void 0:d.call(u,e.classification),active:"all-topics"===n,svgName:h.vn.Grid,analyticsData:{id:"all-topics",classificationId:e.classification.id,classificationName:e.classification.name,presentationId:e.presentation.id,presentationDescription:e.presentation.description,name:r.T.getPhrase(Ce,"allTopics"),url:ae.Q.C$.getHref(null===(p=null===(f=e.appLinks)||void 0===f?void 0:f.classificationDirectory)||void 0===p?void 0:p.call(f,e.classification))},analyticsOptions:{actionType:s.Vw.Click,entity:s.py.Url,location:s.LZ.MagicTabs},className:"".concat(t.xs?"w-100":""," ").concat(a?we.tabTransition:"")}]:[{name:S?r.T.getPhrase(Ce,"topic"):"",appLink:null===(g=null===(v=e.appLinks)||void 0===v?void 0:v.classification)||void 0===g?void 0:g.call(v,e.classification),active:"curated-topic"===n,svgName:h.vn.Rectangles,analyticsData:{id:"curated-topic",classificationId:e.classification.id,classificationName:e.classification.name,presentationId:e.presentation.id,presentationDescription:e.presentation.description,name:r.T.getPhrase(Ce,"topic"),url:ae.Q.C$.getHref(null===(y=null===(b=e.appLinks)||void 0===b?void 0:b.classification)||void 0===y?void 0:y.call(b,e.classification))},analyticsOptions:{actionType:s.Vw.Click,entity:s.py.Url,location:s.LZ.MagicTabs},className:(k=a?we.tabTransition:"",t.xs?k+" w-100":S?" ".concat(we.curatedTopicTab):k)},{name:S?r.T.getPhrase(Ce,"curriculum"):"",appLink:null===(C=null===(w=e.appLinks)||void 0===w?void 0:w.classificationCurriculum)||void 0===C?void 0:C.call(w,e.classification),active:"curriculum"===n,svgName:h.vn.GraduationCap,analyticsData:{id:"curriculum",classificationId:e.classification.id,classificationName:e.classification.name,presentationId:e.presentation.id,presentationDescription:e.presentation.description,name:r.T.getPhrase(Ce,"curriculum"),url:ae.Q.C$.getHref(null===(E=null===(T=e.appLinks)||void 0===T?void 0:T.classificationCurriculum)||void 0===E?void 0:E.call(T,e.classification))},analyticsOptions:{actionType:s.Vw.Click,entity:s.py.Url,location:s.LZ.MagicTabs},className:"".concat(t.xs?"w-100":""," ").concat(a?we.tabTransition:"")}]}function Ee(e){var t=(0,ee.k)(),n=(0,he.d)(e.activeTab),i=n.tab,r=n.isHighlighting,o=(0,ye.c)("topics-directory-tab").setProductTipRef;return a.createElement(be.r,{borderRadius:"sm",containerRef:function(e){return o(e)},className:t.xs?"w-100":"",listClassName:"d-flex flex-nowrap",tabs:Te(e,t,i,r)})}function ke(e){var t,n,i,r,o,c,s,l,u=(0,ee.k)(),d=(r=e.audiences,o=e.activeAudiences,c=e.activeTab,s=e.isEmpty,!!e.isComingSoon||!(!s||(null==o?void 0:o.length))||!te.T.shouldShowAudiences(r)||"curriculum"===c);function f(){var t;return!(!e.classification||!e.dashboard)&&!R.S.isSystemGeneratedDashboard(e.dashboard.widgets)&&(m.i.isTopLevelTopic(e.classification)?e.hasTopicDirectoryDashboard:!(!(null===(t=e.classification.externalMetadata)||void 0===t?void 0:t.isCurated)||!e.hasTopicCurriculumDashboard))}return a.createElement("div",{className:(l="d-flex flex-column py-3 mb-3",e.isComingSoon||(l+=" border-bottom"),!f()&&!d||u.xs?l+" row-gap-3":l)},a.createElement("div",{className:function(){if(d)return u.xs?"d-flex flex-column justify-content-between row-gap-3":"d-flex align-items-center justify-content-between";var e="";return e+="d-flex align-items-center justify-content-between mb-1",u.xs&&(e+=" row-gap-3 mb-0"),e}()},a.createElement(X.Oo,{breadcrumbs:null===(t=e.getBreadcrumbs)||void 0===t?void 0:t.call(e)}),f()&&d&&a.createElement(Ee,{classification:e.classification,activeTab:e.activeTab,appLinks:e.appLinks,presentation:e.presentation})),a.createElement("div",{className:function(){var e="d-flex align-items-end justify-content-between";return u.xs&&(e+=" row-gap-3 flex-wrap"),e}()},!d&&a.createElement(ge,{audiences:e.audiences,activeAudiences:e.activeAudiences,appLink:null===(i=(n=e.appLinks).audience)||void 0===i?void 0:i.call(n),disabled:e.disableAudiences,tooltip:e.audienceTooltip,disablePersist:!e.isViewingCurrentPresentation}),f()&&!d&&a.createElement(Ee,{classification:e.classification,activeTab:e.activeTab,appLinks:e.appLinks,presentation:e.presentation})))}function Se(e){return Se="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},Se(e)}function Ie(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,i,r,o,c=[],s=!0,l=!1;try{if(r=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(a=r.call(n)).done)&&(c.push(a.value),c.length!==t);s=!0);}catch(e){l=!0,i=e}finally{try{if(!s&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(l)throw i}}return c}}(e,t)||function(e,t){if(e){if("string"==typeof e)return Le(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)?Le(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 Le(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 Ne="shared.classificationDashboard";function xe(e){return e.widgetId===U.z.Blurb&&e.templateId===F.f.Heading}function Oe(e){return e.widgetId===U.z.CuratedClassifications||e.widgetId===U.z.Classifications}function Pe(e){var t,n,i,c,l=function(e,t){var n,i,r,c,s=a.useMemo(function(){return e?{isSystemGeneratedDashboard:R.S.isSystemGeneratedDashboard(e.widgets),systemGeneratedVideoWidget:e.widgets.find(function(e){return e.widgetId===U.z.ClassificationPinnedVideos&&e.templateId!==F.f.ThumbnailVerticalList})}:{isSystemGeneratedDashboard:!1,systemGeneratedVideoWidget:null}},[null==e?void 0:e.id]),l=s.isSystemGeneratedDashboard,u=s.systemGeneratedVideoWidget,d=o.a.useBasicFetch(!!u&&B._.dashboardWidgetContent(null==u?void 0:u.id,R.S.getWidgetParams(u.widgetId,u.templateId,R.S.getDashboardTargetType(e),null==t?void 0:t.map(function(e){return e.masterId})),null==u?void 0:u.templateId));return l?{widgets:null!==(i=null===(n=null==e?void 0:e.widgets)||void 0===n?void 0:n.filter(function(e){return e.widgetId!==U.z.ClassificationPinnedVideos||e.templateId===F.f.ThumbnailVerticalList}))&&void 0!==i?i:[],videoList:null!==(c=null===(r=d.data)||void 0===r?void 0:r.content)&&void 0!==c?c:[],videoListWidgetId:null==u?void 0:u.id}:{widgets:j.m.sortBy(null==e?void 0:e.widgets,"index")}}(e.dashboard,e.activeAudiences),u=l.widgets,d=l.videoList,f=l.videoListWidgetId,p=(0,q.a)(G.r.LGDown),g=a.useRef(new Set),b=a.useMemo(function(){return u.reduce(function(e,t){return e[t.id]=!1,e},{})},[null==u?void 0:u.length]),h=Ie(a.useState(b),2),w=h[0],C=h[1],E=Ie(a.useState(e.tableOfContentsId),2),k=E[0],S=E[1],I=Ie(a.useState(""),2),L=I[0],N=I[1],x=Array.from(g.current);function P(t,n,a){var i,r,o=R.S.getWidgetParams(n,a,R.S.getDashboardTargetType(e.dashboard),null===(i=e.activeAudiences)||void 0===i?void 0:i.map(function(e){return e.masterId}),null===(r=e.curriculums.preferredCurriculum)||void 0===r?void 0:r.id);return e.getWidgetContentRequest(t,o,a)}(0,Z.P)(x,k),(0,z.D)({setActiveId:N,headingElements:x,controlledId:k,setControlledId:S});var A=!e.isComingSoon&&!e.isTeacherOnly&&(!e.dashboard||e.dashboard.status===y.GL.Archived&&!e.isReadonly||e.dashboard.status===y.GL.Draft&&!e.isPreviewing||!(null==u?void 0:u.length)||(!d||!d.length)&&Object.values(w).every(function(e){return!!e}));a.useEffect(function(){A&&C(b)},[null==u?void 0:u.length]);var Q=a.useCallback(function(t,n){if(w[t]!==n){var a=Object.assign(Object.assign({},w),(l={},m=n,(d=function(e){var t=function(e){if("object"!=Se(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=Se(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==Se(t)?t:t+""}(d=t))in l?Object.defineProperty(l,d,{value:m,enumerable:!0,configurable:!0,writable:!0}):l[d]=m,l));if(R.S.isType(e.dashboard,y.ku.ClassificationDirectory))C(a);else{for(var i=0;i<u.length;){var r=u[i];if(xe(r)){for(var o=!0,c=i+1;o&&c<u.length;){var s=u[c];if(xe(s))break;a[s.id]||Oe(s)||(o=!1),c++}i=c,a[r.id]=o}else i++}C(a)}}var l,d,m},[w,u]);function $(e){return xe(e)&&w[e.id]}function Y(e,t){if(e.widgetId===U.z.ClassificationDashboardExternalMedia){var n=u[t-1];return w[n.id]?e.name.replace("Other videos","Videos"):e.name}return e.name}var J,X=u.filter(function(e){var t;return!$(e)&&!!(null===(t=e.metadata)||void 0===t?void 0:t.showInTableOfContents)}),ee=u.every(Oe),te=X.length>=2,ne=te&&!p,ae=(null===(t=e.settings)||void 0===t?void 0:t.hasTopicDirectories)&&m.i.isTopLevelTopic(e.classification)&&!e.isTertiaryCustomerWithoutExchange;return a.createElement("div",{className:"bg-white px-4 ".concat((J=R.S.getDashboardTargetType(e.dashboard),e.moviesAndTv||J===y.ku.ClassificationCurriculum?"":"dashboard-spacing-lg"))},a.createElement(M.p,{heading:e.classification.name,banner:e.classification.banner,imageCdnUrl:e.imageCdnUrl,actions:null===(n=e.getBannerActions)||void 0===n?void 0:n.call(e),actionsDropdownClassName:"btn btn-outline-dark",specialEvent:e.specialEvent,calendarTheme:{background:"bg-light-blue",border:"border-light-blue"},showComingSoon:e.isComingSoon,detailsComponent:ae?function(){return a.createElement(v,{classification:e.classification})}:null}),a.createElement(ke,{dashboard:e.dashboard,classification:e.classification,presentation:e.presentation,appLinks:e.appLinks,activeTab:e.tab,audiences:e.audiences,activeAudiences:e.activeAudiences,getBreadcrumbs:e.getBreadcrumbs,hasTopicDirectoryDashboard:e.hasTopicDirectoryDashboard,hasTopicCurriculumDashboard:e.hasTopicCurriculumDashboard,isComingSoon:e.isComingSoon,isEmpty:A,isViewingCurrentPresentation:e.isViewCurrentPresentation,disableAudiences:ee||e.isReadonly,audienceTooltip:ee?r.T.getPhrase(Ne,"audienceTooltip"):""}),e.isComingSoon&&a.createElement(K,{imageUrl:e.comingSoonImageUrl,data:e.classification,canFollowSubjects:e.canFollowSubjects,showFollowButtonSpinner:e.showFollowButtonSpinner,onToggleFollow:function(){return e.onToggleFollow(e.classification,s.LZ.ClassificationComingSoon)},showSignUp:!e.hasLocalPermissions(H.E.FollowComingSoonTopics),signUpAppLink:null===(c=(i=e.appLinks).signUp)||void 0===c?void 0:c.call(i)}),!e.isComingSoon&&a.createElement("div",{className:"".concat(ne?"row no-wrap":"")},te&&a.createElement(O,{widgets:X,title:e.classification.name,activeId:L,clickable:!e.isReadonly,analyticsData:e.analyticsData,setControlledId:S,isSmallScreen:p}),a.createElement("div",{className:ne?"col-9 order-0":""},u.map(function(t,n){return $(t)?a.createElement(a.Fragment,{key:t.id}):a.createElement(W.L,{widgetCollection:y.ku.Classification,headingElementRef:g,key:t.id,id:t.id,name:Y(t,n),description:t.description,classification:e.classification,templateId:t.templateId,widgetTypeId:t.widgetId,audiences:e.audiences,getContentRequest:P,setIsEmpty:Q,appLinks:e.appLinks,presentation:e.presentation,analyticsData:e.analyticsData,isScrollToTargetWidget:e.scrollToWidgetId===t.id,imageCdnUrl:e.imageCdnUrl,onSubmitFeedback:e.onSubmitFeedback,metadata:t.metadata,isBot:e.isBot,hasTableOfContents:ne,lazyLoad:e.lazyLoad,dashboardTarget:R.S.getDashboardTargetType(e.dashboard),widgetIndex:n,hasPermissions:e.hasPermissions,hasLocalPermissions:e.hasLocalPermissions,isPreviewing:e.isReadonly,contentType:e.contentType,resourceThumbnailFallbackImageUrl:e.resourceThumbnailFallbackImageUrl,onToggleFollowClassification:e.onToggleFollow,settings:e.settings,isEditing:e.isReadonly,isTertiaryCustomerWithoutExchange:e.isTertiaryCustomerWithoutExchange,commonVideoProps:e.commonVideoProps,curriculums:e.curriculums,limitTotalItems:!1,seeMoreLink:null,onClickRemoveItem:null,badgeComponent:null})})),!!(null==d?void 0:d.length)&&a.createElement(a.Fragment,null,a.createElement(_.B,{name:r.T.getPhrase(Ne,"videos")}),a.createElement(V.E4,{videos:d,getVideoAppLink:function(t,n){return e.appLinks.videoType(t,Object.assign(Object.assign({},n),{contextId:f,includeContext:n.includeContext}))},hasPermissions:e.hasPermissions,presentationAudiences:e.audiences,getPreviewQuestionsAppLink:e.appLinks.previewQuestions,commonVideoProps:e.commonVideoProps}))),A&&a.createElement(T,{dashboard:e.dashboard,isReadonly:e.isReadonly,imageUrl:e.emptyImageUrl,addWidgetApplink:e.appLinks.widgetWizard}),e.isTeacherOnly&&a.createElement(D,{imageUrl:e.emptyImageUrl,ctaAppLink:function(){return e.appLinks.allTopics(e.classification.presentationId)}}))}function Ae(){return a.createElement("div",{className:"bg-white px-4"},a.createElement(M.v,null),a.createElement("div",{className:"d-flex flex-column row-gap-3 py-3 mb-3 border-bottom"},a.createElement(X.b2,null),a.createElement(ve,null)))}Pe.defaultProps={appLinks:{}};var De=n(65042),je=n(51365),Fe=n(2284),Ue=n(17101),Be=n(4594),Re=n(12754),Me=n(89454),Ve=n(21750),_e=n(39151),We=n(1666),Ge=n(7198),He=n(99940),qe=n(97395);function ze(e){return function(e){if(Array.isArray(e))return Ze(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return Ze(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)?Ze(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Ze(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 Qe=function(e){return qe._.urlBuilder("{gateway}/v1/users/me/classifications/following",{id:e})},$e={follow:function(e,t,n,a){return{url:"{gateway}/v1/users/me/classifications/following",key:"follow:".concat(e.join(",")),type:He.k.POST,data:e,formatData:function(){return e.map(function(e){return{id:e,followers:{data:[t]}}})},success:n,error:a,invalidationKeys:[].concat(ze(e.map(function(e){return"classification:".concat(e)})),["my:subject:preferences","classifications"])}},unfollow:function(e,t,n,a){return{url:Qe(e),key:"unfollow:".concat(e.join(",")),type:He.k.DELETE,formatData:function(){return e.map(function(e){return{id:e,followers:{data:[]}}})},success:n,error:a,invalidationKeys:[].concat(ze(e.map(function(e){return"classification:".concat(e)})),["my:subject:preferences","classifications"])}}},Ye=n(98064),Je=n(31949),Ke=n(69883),Xe=n(63719),et=n(56520),tt=n(91286),nt=n(22902),at=n(15311),it=n(79612),rt=n(37802),ot=n(52167),ct=n(76753),st=n(99742),lt=n(10671),ut=n(58321),dt=n(82817),mt=n(7179),ft=n(86698),pt=n(34181),vt=n(10741),gt=n(33192),bt=n(23923),yt=n(73024),ht=n(64364),wt=n(14070),Ct=n(97291);function Tt(e){return Tt="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},Tt(e)}function Et(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,kt(a.key),a)}}function kt(e){var t=function(e){if("object"!=Tt(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=Tt(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==Tt(t)?t:t+""}function St(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(St=function(){return!!e})()}function It(e){return It=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},It(e)}function Lt(e,t){return Lt=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},Lt(e,t)}var Nt="subjects.topicNotFoundError",xt=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),function(e,t,n){return t=It(t),function(e,t){if(t&&("object"==Tt(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,St()?Reflect.construct(t,n||[],It(e).constructor):t.apply(e,n))}(this,t,["Topic 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&&Lt(e,t)}(t,e),n=t,(a=[{key:"name",get:function(){return"TopicNotFoundError"}},{key:"heading",get:function(){return r.T.getPhrase(Nt,"heading")}},{key:"description",get:function(){return r.T.getPhrase(Nt,"description")}},{key:"cta",get:function(){return{text:r.T.getPhrase(Nt,"cta"),appLink:{application:Ct.O.SUBJECT,action:wt.e.Subjects.PRESENTATION_TOPICS}}}}])&&Et(n.prototype,a),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,a}(ht.H),Ot=n(23737),Pt=n(11188);const At={followButton:"HlRXj"};function Dt(){var e,t,n="function"==typeof Symbol?Symbol:{},a=n.iterator||"@@iterator",i=n.toStringTag||"@@toStringTag";function r(n,a,i,r){var s=a&&a.prototype instanceof c?a:c,l=Object.create(s.prototype);return jt(l,"_invoke",function(n,a,i){var r,c,s,l=0,u=i||[],d=!1,m={p:0,n:0,v:e,a:f,f:f.bind(e,4),d:function(t,n){return r=t,c=0,s=e,m.n=n,o}};function f(n,a){for(c=n,s=a,t=0;!d&&l&&!i&&t<u.length;t++){var i,r=u[t],f=m.p,p=r[2];n>3?(i=p===a)&&(s=r[(c=r[4])?5:(c=3,3)],r[4]=r[5]=e):r[0]<=f&&((i=n<2&&f<r[1])?(c=0,m.v=a,m.n=r[1]):f<p&&(i=n<3||r[0]>a||a>p)&&(r[4]=n,r[5]=a,m.n=p,c=0))}if(i||n>1)return o;throw d=!0,a}return function(i,u,p){if(l>1)throw TypeError("Generator is already running");for(d&&1===u&&f(u,p),c=u,s=p;(t=c<2?e:s)||!d;){r||(c?c<3?(c>1&&(m.n=-1),f(c,s)):m.n=s:m.v=s);try{if(l=2,r){if(c||(i="next"),t=r[i]){if(!(t=t.call(r,s)))throw TypeError("iterator result is not an object");if(!t.done)return t;s=t.value,c<2&&(c=0)}else 1===c&&(t=r.return)&&t.call(r),c<2&&(s=TypeError("The iterator does not provide a '"+i+"' method"),c=1);r=e}else if((t=(d=m.n<0)?s:n.call(a,m))!==o)break}catch(t){r=e,c=1,s=t}finally{l=1}}return{value:t,done:d}}}(n,i,r),!0),l}var o={};function c(){}function s(){}function l(){}t=Object.getPrototypeOf;var u=[][a]?t(t([][a]())):(jt(t={},a,function(){return this}),t),d=l.prototype=c.prototype=Object.create(u);function m(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,l):(e.__proto__=l,jt(e,i,"GeneratorFunction")),e.prototype=Object.create(d),e}return s.prototype=l,jt(d,"constructor",l),jt(l,"constructor",s),s.displayName="GeneratorFunction",jt(l,i,"GeneratorFunction"),jt(d),jt(d,i,"Generator"),jt(d,a,function(){return this}),jt(d,"toString",function(){return"[object Generator]"}),(Dt=function(){return{w:r,m}})()}function jt(e,t,n,a){var i=Object.defineProperty;try{i({},"",{})}catch(e){i=0}jt=function(e,t,n,a){if(t)i?i(e,t,{value:n,enumerable:!a,configurable:!a,writable:!a}):e[t]=n;else{var r=function(t,n){jt(e,t,function(e){return this._invoke(t,n,e)})};r("next",0),r("throw",1),r("return",2)}},jt(e,t,n,a)}function Ft(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 Ut=function(e,t,n,a){return new(n||(n=Promise))(function(i,r){function o(e){try{s(a.next(e))}catch(e){r(e)}}function c(e){try{s(a.throw(e))}catch(e){r(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,c)}s((a=a.apply(e,t||[])).next())})};Rt.defaultProps={queryParams:{}};var Bt=r.T.encloseNamespace("subjects.classification");function Rt(e){var t,n,r,d,f,p,v,g,b,w,C,T,E,k,S,I,L,N,x,O=(N=a.useState(!1),x=2,function(e){if(Array.isArray(e))return e}(N)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,i,r,o,c=[],s=!0,l=!1;try{if(r=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(a=r.call(n)).done)&&(c.push(a.value),c.length!==t);s=!0);}catch(e){l=!0,i=e}finally{try{if(!s&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(l)throw i}}return c}}(N,x)||function(e,t){if(e){if("string"==typeof e)return Ft(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)?Ft(e,t):void 0}}(N,x)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),P=O[0],A=O[1],D=(0,Ke.Z)(),j=o.a.useGetFetchAsync(),F=(0,nt.T)(),U=F.hasPermissions,M=F.hasLocalPermissions,V=(0,rt.r)(null),_=o.a.useBasicFetch(_e.L.config()),W=o.a.useBasicFetch(Je.N.currentUser()),z=(0,et.R0)(),Z=z.openInCurationStudioLabel,Q=z.isUserCurator,$=z.getOpenInCurationStudioLink,Y=(0,dt.M)(),J=o.a.useBasicFetch(U(H.C.CanSubmitFeedback)&&(null===(t=W.data)||void 0===t?void 0:t.isAuthenticated)&&We.h.customer(W.data.customerId)),K=o.a.useBasicFetch(Ve.x.classification(e.id,null===(n=W.data)||void 0===n?void 0:n.id)),X=o.a.useBasicFetch(K.data&&Ve.x.presentationById(K.data.presentationId)),ee=o.a.useBasicFetch(K.data&&Me.O.audiencesByPresentationId(K.data.presentationId)),ne=o.a.useBasicFetch(K.data&&l.N.nextTopicSpecialEvent(e.id,K.data.presentationId)),ae=o.a.useBasicFetch((null===(r=W.data)||void 0===r?void 0:r.isAuthenticated)&&Ye.D.libraries()),ie=(0,ft.y)(),re=ie.activePresentation,oe=ie.availablePresentations,ce=ie.canAccessPresentation,se=o.a.useBasicFetch(Ve.x.path(e.id)),le=function(e,t,n){var a=(0,rt.r)(null),i=a.hasTopicDirectories,r=a.hasTopicVideoListFeature,o=(0,Ot.y)({classificationId:e,queryParams:t,targetType:y.ku.Classification}),c=o.dashboard,s=o.isPreviewing,l=o.isTeacherOnly,u=(0,Ot.y)({classificationId:e,queryParams:t,targetType:y.ku.ClassificationDirectory}).dashboard,d=(0,Ot.y)({classificationId:e,queryParams:t,targetType:y.ku.ClassificationCurriculum}).dashboard;return{dashboard:function(){switch(n){case y.ku.Classification:return c;case y.ku.ClassificationDirectory:return u;case y.ku.ClassificationCurriculum:return d}}(),hasTopicDirectoryDashboard:i&&!!u.data,hasTopicCurriculumDashboard:r&&!!d.data,isTeacherOnly:l,isPreviewing:s}}(e.id,e.queryParams,e.targetType),ue=le.dashboard,de=le.hasTopicDirectoryDashboard,me=le.hasTopicCurriculumDashboard,fe=le.isPreviewing,pe=le.isTeacherOnly,ve=(0,bt.B)(),ge=(0,at.r)(),be=o.a.useBasicFetch(Ve.x.regionAlternatives(e.id)),ye=gt.f.getPreferredRegionAlternative(be.data,null===(d=W.data)||void 0===d?void 0:d.contentRegion);(0,it.M)(ct.CG.getClassificationMetadata({content:{classification:K.data,dashboard:ue.data},phraseContext:{phraseHandler:Bt,titlePhrase:"pageTitle",descriptionPhrase:"pageDescription"},canonicalLink:gt.f.getCanonicalLink({stripPresentationSlug:!0,customAppLink:pt.L.getAppLink(Object.assign(Object.assign({},K.data),{name:(null==ye?void 0:ye.name)||(null===(f=K.data)||void 0===f?void 0:f.name)}),e.queryParams),hrefTransformer:gt.f.createRegionHrefTransformer(be.data,null===(p=W.data)||void 0===p?void 0:p.contentRegion)}),allowIndexing:gt.f.allowIndexing(),hrefLang:gt.f.getContentHrefLang(be.data,function(){return pt.L.getAppLink(K.data)})})),(0,tt.v)(K,{notFound:xt}),(0,mt.P)({id:e.id,app:"topics"});var he=(null==re?void 0:re.id)===(null===(v=X.data)||void 0===v?void 0:v.id),we=(0,q.a)(G.r.MDDown),Ce=(0,q.a)(G.r.SMDown),Te=(0,ut.U)({locationContext:s.LZ.VideoThumbnail,mtv:e.queryParams.mtv}).commonVideoProps,Ee=(0,lt._)({location:lt.i.VideoItem}),ke=U(H.C.FollowSubjects),Se=(null===(g=K.data)||void 0===g?void 0:g.status)===Fe.W.ComingSoon&&!fe,Ie=te.T.getActiveAudiencesFromParams(ee.data,e.queryParams),Le=null!==(b=null==Ie?void 0:Ie.map(function(e){return e.masterId}))&&void 0!==b?b:[],Ne=R.S.getDashboardTargetType(ue.data);function xe(e,t){var n,a,i;if(ke&&K){var r=e.id.toString()===(null===(a=null===(n=K.data)||void 0===n?void 0:n.id)||void 0===a?void 0:a.toString());r&&A(!0);var o=m.i.isFollowing(e),l=o?$e.unfollow:$e.follow;j(l([e.id],null===(i=W.data)||void 0===i?void 0:i.id)).then(function(){c.k.logUserAction(qe,{location:t,actionType:s.Vw.Follow,workflowPhase:s.eu.Complete,descriptor:o?s.DL.Off:s.DL.On,entity:s.py.Classification}),r||D.success(Bt(o?"unfollowed":"followed",{name:e.name}))}).finally(function(){r&&A(!1)})}}var Oe=(0,Pt.rB)(K.data,Ne,e.queryParams,W.data),He=(0,Xe.h)({name:null===(w=K.data)||void 0===w?void 0:w.name}),qe={presentationId:null===(C=X.data)||void 0===C?void 0:C.id,presentationName:null===(T=X.data)||void 0===T?void 0:T.name,currentClassificationId:null===(E=K.data)||void 0===E?void 0:E.id,currentClassificationName:null===(k=K.data)||void 0===k?void 0:k.name,followingCurrentClassification:!!(null===(L=null===(I=null===(S=K.data)||void 0===S?void 0:S.followers)||void 0===I?void 0:I.data)||void 0===L?void 0:L.length),activeAudienceNames:(null==Ie?void 0:Ie.length)?Ie.map(function(e){return e.name}):null,activeAudienceIds:Le.length?Le:null};return _.data&&ue.hasCompleted&&K.data&&X.data&&se.data&&oe&&ee.data&&ne.hasCompleted?a.createElement(je.M.Provider,{value:Ee},a.createElement("div",{className:"position-relative"},!(!fe||!ue.data)&&a.createElement(De.a,{status:ue.data.status,type:"topic"}),a.createElement(Pe,{dashboard:ue.data,classification:K.data,getWidgetContentRequest:function(e,t,n){var a=u.g.hasTwigOrTigtag(ae.data,W.data),i=a.hasTwig,r=a.hasTigtag;return B._.dashboardWidgetContent(e,t,n,X.data,{hideTigTag:!r,hideTwig:!i})},getBreadcrumbs:function(){var e;if(ce(null===(e=X.data)||void 0===e?void 0:e.id))return function(){return He}}(),hasPermissions:U,hasLocalPermissions:M,presentation:X.data,curriculums:Y,onToggleFollow:xe,getBannerActions:function(){var e,t,n,a,i,r=!!(null===(n=null===(t=null===(e=K.data)||void 0===e?void 0:e.followers)||void 0===t?void 0:t.data)||void 0===n?void 0:n.length);if(!ke)return[];var o=[{label:Ce?"":Bt(r?"following":"follow"),onClick:function(){return xe(K.data,s.LZ.Banner)},svgName:r?h.vn.BellFilled:h.vn.Bell,className:"btn follow-btn me-2 ".concat(r?"btn-outline-dark":"btn-dark"," ").concat(At.followButton),button:!0,tooltip:r||we?void 0:Bt("followBtnTooltip"),showSpinner:P}];return Q&&o.push({label:Z,href:$(Be.E.Subject,null===(a=K.data)||void 0===a?void 0:a.id,null===(i=X.data)||void 0===i?void 0:i.id),openInNewTab:!0}),o},audiences:e.queryParams.mtv?null:ee.data,activeAudiences:Ie,analyticsData:qe,imageCdnUrl:_.data.imageCdnUrl,resourceThumbnailFallbackImageUrl:st.W.Fallbacks.RESOURCE_THUMBNAIL,emptyImageUrl:pe?st.W.EmptyStates.Topics.TEACHER_ONLY:st.W.EmptyStates.Topics.TOPIC,isComingSoon:Se,showFollowButtonSpinner:P,comingSoonImageUrl:st.W.EmptyStates.Topics.COMING_SOON,appLinks:Object.assign(Object.assign({},Oe),{signUp:yt.t.getSignUpAppLink,widgetWizard:function(){return null},previewQuestions:function(e){return vt.j.getPreviewQuestionsAppLink(e)}}),isPreviewing:fe,isViewCurrentPresentation:he,canFollowSubjects:ke,onSubmitFeedback:U(H.C.CanSubmitFeedback)&&function(e){return Ut(this,void 0,void 0,Dt().m(function t(){var n;return Dt().w(function(t){for(;;)switch(t.n){case 0:return t.n=1,j(Ge.f.submitFeedback({type:Ue.n.Footer,user:ot.m.getUserInfo(W.data,J.data),tags:ot.m.getTags(W.data,Re.x.Primary,U(H.C.StudentExperience),["topics","in product feedback"])},{reaction:e.type,feedback:e.content,location:"Topic Footer",presentationName:X.data.description,presentationId:X.data.id,dashboardName:ue.data.name,dashboardId:ue.data.id,classificationName:K.data.name,classificationId:K.data.id,currentPageUrl:i.Ab.GetCurrentUrl()}));case 1:return n=t.v,c.k.logUserAction({feedbackType:e.type,content:e.content,presentationId:X.data.id,classificationId:K.data.id,dashboardId:ue.data.id},{actionType:s.Vw.Submit,location:s.LZ.ClassificationFooter,entity:s.py.Feedback,workflowPhase:s.eu.Complete}),t.a(2,n)}},t)}))},tableOfContentsId:e.queryParams.tocId,lazyLoad:!gt.f.isBot(),moviesAndTv:e.queryParams.mtv,isTeacherOnly:pe,specialEvent:ne.data,isBot:gt.f.isBot(),hasTopicDirectoryDashboard:de,hasTopicCurriculumDashboard:me,tab:m.i.getActiveTopicTab(K.data,e.targetType),settings:V,isTertiaryCustomerWithoutExchange:ve&&!(null==ge?void 0:ge.hasProduct(Re.x.Exchange)),commonVideoProps:Te}))):a.createElement(Ae,null)}},22771:(e,t,n)=>{n.d(t,{Z:()=>a});const a={pillTabSelector:"Hdi6o",tab:"RvNxr",minWidth:"GHSz9",radiusSmall:"VhJJa",tabLink:"WFyvo"}}}]);
|
|
3
|
+
//# sourceMappingURL=6948-b1b7f560c9-lite.chunk.js.map
|