@clickview/lite 0.80.0-rc.1 → 0.80.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/scripts/234-9dadd5c069-lite.chunk.js +3 -0
- package/dist/scripts/234-9dadd5c069-lite.chunk.js.map +1 -0
- package/dist/scripts/3811-54d881ffbc-lite.chunk.js +3 -0
- package/dist/scripts/3811-54d881ffbc-lite.chunk.js.map +1 -0
- package/dist/scripts/3840-47765fe979-lite.chunk.js +2 -0
- package/dist/scripts/3840-47765fe979-lite.chunk.js.map +1 -0
- package/dist/scripts/{4578-58e37a9ae8-lite.chunk.js → 4578-27028d26eb-lite.chunk.js} +2 -2
- package/dist/scripts/4578-27028d26eb-lite.chunk.js.map +1 -0
- package/dist/scripts/5434-a2bee0a420-lite.chunk.js +2 -0
- package/dist/scripts/5434-a2bee0a420-lite.chunk.js.map +1 -0
- package/dist/scripts/6741-ae590891ba-lite.chunk.js +3 -0
- package/dist/scripts/6741-ae590891ba-lite.chunk.js.map +1 -0
- package/dist/scripts/6948-74a27f0b91-lite.chunk.js +3 -0
- package/dist/scripts/6948-74a27f0b91-lite.chunk.js.map +1 -0
- package/dist/scripts/9649-d090a78b2d-lite.chunk.js +2 -0
- package/dist/scripts/9649-d090a78b2d-lite.chunk.js.map +1 -0
- package/dist/scripts/{bundle-116a634469.min.js → bundle-18e2186208.min.js} +3 -3
- package/dist/scripts/{bundle-116a634469.min.js.map → bundle-18e2186208.min.js.map} +1 -1
- package/package.json +1 -1
- package/dist/scripts/234-b6b8f1faef-lite.chunk.js +0 -3
- package/dist/scripts/234-b6b8f1faef-lite.chunk.js.map +0 -1
- package/dist/scripts/3811-282392e8bf-lite.chunk.js +0 -3
- package/dist/scripts/3811-282392e8bf-lite.chunk.js.map +0 -1
- package/dist/scripts/3840-60e66f7f7c-lite.chunk.js +0 -2
- package/dist/scripts/3840-60e66f7f7c-lite.chunk.js.map +0 -1
- package/dist/scripts/4578-58e37a9ae8-lite.chunk.js.map +0 -1
- package/dist/scripts/5434-4183e29781-lite.chunk.js +0 -2
- package/dist/scripts/5434-4183e29781-lite.chunk.js.map +0 -1
- package/dist/scripts/6741-02172ae5b8-lite.chunk.js +0 -3
- package/dist/scripts/6741-02172ae5b8-lite.chunk.js.map +0 -1
- package/dist/scripts/6948-91184efeb6-lite.chunk.js +0 -3
- package/dist/scripts/6948-91184efeb6-lite.chunk.js.map +0 -1
- package/dist/scripts/9649-0225d5a4c7-lite.chunk.js +0 -2
- package/dist/scripts/9649-0225d5a4c7-lite.chunk.js.map +0 -1
- /package/dist/scripts/{234-b6b8f1faef-lite.chunk.js.LICENSE.txt → 234-9dadd5c069-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{3811-282392e8bf-lite.chunk.js.LICENSE.txt → 3811-54d881ffbc-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{6741-02172ae5b8-lite.chunk.js.LICENSE.txt → 6741-ae590891ba-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{6948-91184efeb6-lite.chunk.js.LICENSE.txt → 6948-74a27f0b91-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{bundle-116a634469.min.js.LICENSE.txt → bundle-18e2186208.min.js.LICENSE.txt} +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[4578],{1619:(e,t,n)=>{n.d(t,{e:()=>g});var a=n(32735),r=n(23481),s=n(31453),i=n(12528),l=n(83914),o=n(35223),c=n(33518),u=n(2510);function m(e){return m="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},m(e)}function d(e,t,n){return(t=function(e){var t=function(e){if("object"!=m(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=m(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==m(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var p=r.T.encloseNamespace("sharev2.shareAvatar"),v=d(d(d(d(d({},u.y.Open,o.vn.Classrooms),u.y.Link,o.vn.Link),u.y.Classroom,o.vn.Classrooms),u.y.Live,o.vn.Play),u.y.LegacyDirect,o.vn.Share),h=d(d(d(d(d({},u.y.Open,"blue"),u.y.Link,"black"),u.y.Classroom,"purple"),u.y.Live,"purple"),u.y.LegacyDirect,"indigo"),y=d(d(d(d(d({},u.y.Open,"openShareType"),u.y.Link,"linkShareType"),u.y.Classroom,"classroomShareType"),u.y.Live,"liveShareType"),u.y.LegacyDirect,"legacyDirectShareType");function g(e){var t,n,r=function(e){var t=e.type,n=e.classroomName,a=e.additionalTitleText,r=e.openClassroomName;if(t===u.y.Open&&r)return r;if(t===u.y.Classroom&&n)return n;var s=p(y[t]);return a&&(s+=" "+a),s}(e);return a.createElement("div",{className:(0,s.A)("d-flex align-items-center gap-2",e.className)},a.createElement("div",null,a.createElement(i.f,{svgName:v[e.type],variant:h[e.type],textVariant:"white",svgWrapperClassName:"p-1",svgSize:null!==(t=e.svgSize)&&void 0!==t?t:l.S.Standard})),a.createElement("div",{className:"d-flex flex-column"},a.createElement("p",{className:(0,s.A)("m-0",e.titleClassName),title:r},r),!e.hideSubtitle&&a.createElement("span",{className:"text-secondary"},null!==(n=e.subtitleText)&&void 0!==n?n:function(e){var t=e.type,n=e.privacy,a=e.studentCount,r=void 0===a?0:a,s=e.classroomGroupCount,i=void 0===s?0:s;switch(t){case u.y.Classroom:return function(e,t){return e&&t?"".concat(p("classroomGroupCount",{smartCount:e}),", ").concat(p("studentSubTitle",{smartCount:t})):e?p("groupSubTitle",{smartCount:e}):t?p("studentSubTitle",{smartCount:t}):p("allStudentsSubTitle")}(i,r);case u.y.Open:return p("openShareTypeSubTitle");case u.y.Link:return function(e){return[c.e.JustMySchool,c.e.Protected].includes(e)?p("respectRatingsSubTitle"):e===c.e.JustMySchoolOverrideRestriction?p("anyoneInSchoolSubTitle"):e===c.e.ProtectedOverrideRestriction?p("anyoneSignedInSubTitle"):e===c.e.Public?p("anyoneWithLinkSubTitle"):e===c.e.PinCode?p("anyoneWithPinSubTitle"):void 0}(n);case u.y.Live:return p("liveShareTypeSubTitle");case u.y.LegacyDirect:return p("legacyDirectTypeSubTitle");default:return p("publicShareTypeSubTitle")}}(e))))}},33518:(e,t,n)=>{var a;n.d(t,{e:()=>a}),function(e){e.Public="Public",e.PinCode="PinCode",e.PasswordProtected="PasswordProtected",e.ProtectedOverrideRestriction="ProtectedOverrideRestriction",e.JustMySchoolOverrideRestriction="JustMySchoolOverrideRestriction",e.Protected="Protected",e.JustMySchool="JustMySchool",e.Direct="Direct"}(a||(a={}))},2267:(e,t,n)=>{n.d(t,{I:()=>c});var a=n(20354),r=n(64249),s=n(4594),i=n(5112),l=n(60011),o=n(40841),c={canEmbed:function(e){return["video","interactive","clip"].includes(e)},canAddPolicies:function(e){return["interactive"].includes(e)},getEnabledIntegrations:function(e,t){return o._.getShareIntegrations(e,t).filter(function(e){return e.enabled}).map(function(e){return e.id})},getShareSettingsInitialValues:function(e,t){var n,a,r,s,i,l;return{preventScrubbing:null!==(r=null!==(a=null===(n=null==e?void 0:e.options)||void 0===n?void 0:n.preventScrubbing)&&void 0!==a?a:null==t?void 0:t.preventScrubbing)&&void 0!==r&&r,immediateFeedback:null!==(l=null!==(i=null===(s=null==e?void 0:e.options)||void 0===s?void 0:s.immediateFeedback)&&void 0!==i?i:null==t?void 0:t.immediateFeedback)&&void 0!==l&&l}},getEnabledSettingsField:function(e){return{showImmediateFeedbackField:"interactive"===e,showPreventScrubbingField:"interactive"===e}},getSharableEntityType:function(e){switch(e.objectTypeId){case s.E.Video:return"video";case s.E.Playlist:return"playlist";case s.E.Subject:return"subject";case s.E.Series:return"series";case s.E.Interactive:return"interactive";case s.E.Clip:return"clip"}},getFetchFunctionByType:function(e){switch(e){case"playlist":return function(e){return a.a.useBasicFetch(i.C.playlistWithThumbnailAndCount(e))};case"series":return function(e){return a.a.useBasicFetch(l.J.seriesWithThumbnailAndCount(e))}}return r.I.getFetchFunctionByType(e)},getAnalyticsEntity:function(e){return r.I.getAnalyticsEntity(e)},getAnalyticsOptions:function(e){return r.I.getAnalyticsOptions(e)}}},41661:(e,t,n)=>{var a;n.d(t,{D:()=>a}),function(e){e.GoogleClassroom="google-classroom",e.MicrosoftTeams="microsoft-teams",e.Vivi="vivi",e.AppleTv="apply-tv"}(a||(a={}))},40841:(e,t,n)=>{n.d(t,{_:()=>l});var a=n(23481),r=n(41661),s=n(65728),i=a.T.encloseNamespace("shared.shared-utils"),l={getShareIntegrations:function(e,t){return[{id:r.D.GoogleClassroom,name:i("googleClassroom"),enabled:e,settingName:s.E.ShareToGoogleClassroom},{id:r.D.MicrosoftTeams,name:i("msftTeams"),enabled:t,settingName:s.E.ShareToMicrosoftTeams}]}}},83351:(e,t,n)=>{n.d(t,{P:()=>o});var a=n(32735),r=n(23481),s=n(13876),i=n(36532),l=r.T.encloseNamespace("assign.flowControls");function o(e){var t=e.hideBackButton||!e.onClickBack,n=e.hideNextButton||!e.onClickNext,r=e.hideCreateClassroomButton||!e.onClickCreateClassroom;return t&&n&&r?a.createElement(a.Fragment,null):a.createElement(s.u,{className:"justify-content-between"},a.createElement("div",null,!!e.leftComponent&&e.leftComponent,!r&&a.createElement(s.u.Submit,{variant:"link",onClick:e.onClickCreateClassroom,text:l("createClassroom"),className:"text-info p-0"})),a.createElement("div",{className:"d-flex"},!t&&a.createElement(s.u.Cancel,{variant:"link",onClick:e.onClickBack,text:e.backButtonText||l("back")}),!n&&a.createElement(i.u,{title:e.nextButtonTooltip,disable:!e.nextButtonTooltip,placement:"top",spanHack:!0},a.createElement(s.u.Submit,{variant:"dark",onClick:e.onClickNext,text:e.nextButtonText||l("next"),disabled:e.disableNextButton,showSpinner:e.showSpinner}))))}},35690:(e,t,n)=>{n.d(t,{QD:()=>A,Qv:()=>N,__:()=>k});var a=n(32735),r=n(68050),s=n(69111),i=n(42648),l=n(82602),o=n(31453),c=n(1619),u=n(83345),m=n(4594),d="sharev2.shareViewCount";function p(e){return[m.E.Playlist,m.E.Series].includes(e.share.objectTypeId)?a.createElement("span",null,"-"):a.createElement(u.x,{namespace:d,phrase:"viewCount",options:{smartCount:e.share.viewCount||0}})}var v=n(2510),h=n(83914),y=n(35223);function g(e){return[m.E.Playlist,m.E.Series].includes(e.share.objectTypeId)?a.createElement("span",null,"-"):a.createElement("span",{className:"d-inline-flex flex-row gap-2 align-items-center"},a.createElement(h.x,{svgName:y.vn.User}),a.createElement("span",null,function(){var t=e.share.accessCount||0;if(e.share.type===v.y.Open)return"".concat(t);if(e.share.type===v.y.Classroom){var n=e.share.recipients.length;return"".concat(t,"/").concat(n)}return"".concat(t)}()))}var f=n(21789),E=n(15611),b=n(91693);const S={shareListItem:"vLROV",visibleOnHover:"o2KJH",shareAvatar:"zDcMp",shareAvatarTitle:"U8yMQ"};var C="assign.previousAssignments";function x(e){return a.createElement("div",{className:(0,o.A)("d-flex align-items-center justify-content-between",e.show&&"mb-3")},a.createElement("h3",{className:"h6 m-0 p-0"},a.createElement(u.x,{namespace:C,phrase:"heading",options:{count:e.count}})),a.createElement(b.h,{svgName:e.show?y.vn.ChevronUp:y.vn.ChevronDown,onClick:e.onToggle}))}function k(){var e="d-flex align-items-end justify-content-start fw-medium";return a.createElement(u.D.Provider,{value:C},a.createElement(r.Z,{className:"gx-2 px-3 mb-2"},a.createElement(s.Z,{xs:4,className:e},a.createElement(u.x,{phrase:"assignedTo"})),a.createElement(s.Z,{xs:2,className:e},a.createElement(u.x,{phrase:"views"})),a.createElement(s.Z,{xs:2,className:e},a.createElement(u.x,{phrase:"viewedBy"})),a.createElement(s.Z,{xs:4,className:e},a.createElement(u.x,{phrase:"dateCreated"}))))}function T(e){var t,n,i=f.x.getClassroomForShare(e.share,e.classrooms),m=null===(t=e.getItemAnalytics)||void 0===t?void 0:t.call(e,e.share);return a.createElement(E.F,{key:e.share.shareId,appLink:e.getItemAppLink(e.share),analyticsData:null==m?void 0:m.data,analyticsOptions:null==m?void 0:m.options,className:(0,o.A)("d-block p-3 hover-bg-light-blue border border-top-0 no-hover-text-underline",S.shareListItem,e.className)},a.createElement(r.Z,{className:"gx-2"},a.createElement(s.Z,{xs:4,className:"d-flex align-items-center"},a.createElement(c.e,{type:e.share.type,privacy:e.share.privacy,classroomName:null==i?void 0:i.name,svgSize:h.S.Small,openClassroomName:null===(n=e.share.options)||void 0===n?void 0:n.openClassroomName,className:(0,o.A)(S.shareAvatar),titleClassName:(0,o.A)("text-truncate",S.shareAvatarTitle),hideSubtitle:!0})),a.createElement(s.Z,{xs:2,className:"d-flex align-items-center justify-content-start"},a.createElement(p,{share:e.share})),a.createElement(s.Z,{xs:2,className:"d-flex align-items-center justify-content-start"},a.createElement(g,{share:e.share})),a.createElement(s.Z,{xs:4,lg:3,className:"d-flex align-items-center justify-content-start"},a.createElement("span",null,(0,l.WU)(e.share.dateCreated))),a.createElement(s.Z,{lg:1,className:"align-items-center justify-content-end d-none d-lg-flex"},a.createElement("span",{className:(0,o.A)("cursor-pointer text-info hover-text-underline",S.visibleOnHover)},a.createElement(u.x,{namespace:C,phrase:"view"})))))}function N(e){var t;return a.createElement("div",{className:(0,o.A)("d-flex flex-column border-top rounded-top overflow-hidden")},a.createElement(i.ZP,{autoHeight:!0,autoHeightMin:0,autoHeightMax:null!==(t=e.scrollHeightMax)&&void 0!==t?t:215,autoHide:!0},e.assignments.map(function(t,n){return a.createElement(T,{share:t,classrooms:e.classrooms,getItemAppLink:e.getItemAppLink,getItemAnalytics:function(t){var a;return null===(a=e.getItemAnalytics)||void 0===a?void 0:a.call(e,t,n)},className:(0,o.A)(n%2==0&&"bg-gray-100"),key:t.shareId})})))}function A(e){if(!e.assignments.length)return a.createElement(a.Fragment,null);var t=e.show&&e.assignments.length>3;return a.createElement("div",{className:(0,o.A)("bg-white rounded-3 p-3",t&&"pb-0")},a.createElement(x,{count:e.assignments.length,onToggle:e.onToggle,show:e.show}),e.show&&a.createElement(a.Fragment,null,a.createElement(k,null),a.createElement(N,Object.assign({},e))))}},95890:(e,t,n)=>{n.d(t,{_:()=>d});var a=n(20354),r=n(2267),s=n(4594),i=n(16714),l=n(39151),o=n(20768),c=n(31949),u=n(22902),m=n(45778);function d(e){var t,n=a.a.useBasicFetch(c.N.currentUser()),d=r.I.getFetchFunctionByType(e.entityType)(e.objectId,null===(t=n.data)||void 0===t?void 0:t.id),p=a.a.useBasicFetch(l.L.config()),v=a.a.useBasicFetch(m.G.isType(d.data,s.E.Interactive)&&d.data.interactiveId&&o.b.interactive(d.data.interactiveId)),h=(0,u.T)(),y=h.hasPermissions,g=h.isLoaded,f=y(i.C.StudentExperience),E=y(i.C.CreateClassrooms);return{loaded:!!(n.data&&d.data&&p.data&&g),currentUser:n,entity:d,interactive:v,config:p,hasStudentExp:f,canCreateClassrooms:E}}},24578:(e,t,n)=>{n.r(t),n.d(t,{ShowAssignmentsView:()=>R});var a=n(32735),r=n(23481),s=n(20354),i=n(75896),l=n(110),o=n(18488),c=n(21789),u=n(9111),m=n(83914),d=n(83345),p=n(16714),v=n(22902),h=n(37802),y=n(70227),g=n(80783),f=n(35223),E=n(14070),b=n(97291),S=n(86099),C=n(83351),x=n(35690),k=n(95890),T=n(40254),N=n(88630),A=n(23923),w=n(97958),I=n(99742),L="assign.sharesAndAssignmentsEmptyState",P=r.T.encloseNamespace(L);function B(e){return a.createElement(w.u,{className:"py-4"},a.createElement(w.u.Image,{size:"small",src:I.W.EmptyStates.Share.MY_SHARES}),a.createElement(w.u.Heading,null,a.createElement(d.x,{phrase:"title",namespace:L})),a.createElement(w.u.Info,null,a.createElement(d.x,{phrase:"description",namespace:L})),!e.hideAssignButton&&a.createElement(a.Fragment,null,a.createElement(w.u.Cta,{icon:f.vn.Classrooms,text:P("ctaAssign"),appLink:e.assignAppLink}),a.createElement(w.u.Cta,{className:"text-dark hover-text-underline mt-3 fw-medium",text:P("ctaShareLink"),appLink:e.shareLinkAppLink})),e.hideAssignButton&&a.createElement(w.u.Cta,{icon:f.vn.Link,text:P("ctaShare"),appLink:e.shareLinkAppLink}))}var F="assign.sharesEmptyState",j=r.T.encloseNamespace(F);function O(e){return a.createElement(w.u,{className:"py-4"},a.createElement(w.u.Image,{size:"small",src:I.W.EmptyStates.Share.MY_SHARES}),a.createElement(w.u.Heading,null,a.createElement(d.x,{phrase:"title",namespace:F})),a.createElement(w.u.Info,null,a.createElement(d.x,{phrase:"description",namespace:F})),a.createElement(w.u.Cta,{icon:f.vn.Link,text:j("cta"),appLink:e.appLink}))}var D="assign.showAssignmentsView",M=r.T.encloseNamespace(D),_=400;function H(e,t){if(e&&t)return l.O.isSame(e.dateCreated,t.dateCreated)?0:l.O.isAfter(e.dateCreated,t.dateCreated)?1:-1}function U(e){return a.createElement("a",{href:e.href,target:"_blank",className:"btn btn-link text-info"},a.createElement("span",{className:"pe-1"},a.createElement(d.x,{phrase:"openInSchoolAnalytics",namespace:D})),a.createElement(m.x,{svgName:f.vn.NewWindow,size:m.S.Small}))}function Z(e){return"assign-and-shares"===e.type?a.createElement(B,{assignAppLink:e.assignAppLink,shareLinkAppLink:e.shareAppLink,hideAssignButton:e.hideAssignButton}):a.createElement(O,{appLink:e.shareAppLink})}function R(e){var t,n,r,l=(0,k._)({objectId:e.objectId,entityType:e.entityType}),m=(0,v.T)().hasPermissions,d=(0,h.r)(null),f=d.hasShareFlowV2,w=d.hasClassrooms,I=(0,A.B)(),L=s.a.useBasicFetch(o.o.getSharesByObjectId(e.objectId)),P=(null===(t=L.data)||void 0===t?void 0:t.sort(H))||[],B=i.m.uniq(P.map(c.x.getClassroomIdFromShare).filter(function(e){return!!e})),F=s.a.useBasicFetch(L.hasCompleted&&N.F.getClassroomsByIds(B,null===(n=l.currentUser.data)||void 0===n?void 0:n.customerId)),j=y.c.getObjectUrl(null===(r=l.config.data)||void 0===r?void 0:r.analyticsWebUrl,l.entity.data,f),O=m(p.C.ViewAnalyticsProduct)&&m(p.C.ViewCustomerAnalytics),D=f&&I?"shares":"assign-and-shares",R=l.loaded&&!!L.data&&!!F.data;return a.createElement(u.G,{size:"lg",title:M("title"),showLoadingSpinner:!R,closePopup:e.closePopup},!P.length&&a.createElement(Z,{assignAppLink:T.W.flowSelector({entityType:e.entityType,objectId:e.objectId}),shareAppLink:{application:b.O.SHARE,action:E.e.Share.SHARE,args:[e.objectId],params:{entityType:e.entityType}},type:D,hideAssignButton:g.z.hideAssignButton(l.currentUser.data,w)}),!!P.length&&a.createElement(a.Fragment,null,a.createElement(x.__,null),a.createElement(x.Qv,{assignments:P.reverse(),classrooms:F.data,getItemAppLink:function(e){var t=(0,S.pY)(e);if(t)return t},scrollHeightMax:_})),a.createElement(C.P,{hideNextButton:!0,hideCreateClassroomButton:!0,onClickBack:e.closePopup,backButtonText:M("close"),leftComponent:!!j&&O&&a.createElement(U,{href:j})}))}},82602:(e,t,n)=>{n.d(t,{WU:()=>c});var a=["second","minute","hour","day","week","month","year"],r=["秒","分钟","小时","天","周","个月","年"],s={},i=function(e,t){s[e]=t},l=[60,60,24,7,365/7/12,12];function o(e){return e instanceof Date?e:!isNaN(e)||/^\d+$/.test(e)?new Date(parseInt(e)):(e=(e||"").trim().replace(/\.\d+/,"").replace(/-/,"/").replace(/-/,"/").replace(/(\d)T(\d)/,"$1 $2").replace(/Z/," UTC").replace(/([+-]\d\d):?(\d\d)/," $1$2"),new Date(e))}var c=function(e,t,n){var a=function(e,t){return(+(t?o(t):new Date)-+o(e))/1e3}(e,n&&n.relativeDate);return function(e,t){for(var n=e<0?1:0,a=e=Math.abs(e),r=0;e>=l[r]&&r<l.length;r++)e/=l[r];return(e=Math.floor(e))>(0==(r*=2)?9:1)&&(r+=1),t(e,r,a)[n].replace("%s",e.toString())}(a,function(e){return s[e]||s.en_US}(t))};i("en_US",function(e,t){if(0===t)return["just now","right now"];var n=a[Math.floor(t/2)];return e>1&&(n+="s"),[e+" "+n+" ago","in "+e+" "+n]}),i("zh_CN",function(e,t){if(0===t)return["刚刚","片刻后"];var n=r[~~(t/2)];return[e+" "+n+"前",e+" "+n+"后"]})}}]);
|
|
2
|
-
//# sourceMappingURL=4578-
|
|
1
|
+
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[4578],{1619:(e,t,n)=>{n.d(t,{e:()=>g});var a=n(32735),r=n(23481),s=n(31453),i=n(12528),l=n(83914),o=n(35223),c=n(33518),u=n(2510);function m(e){return m="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},m(e)}function d(e,t,n){return(t=function(e){var t=function(e){if("object"!=m(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=m(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==m(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var p=r.T.encloseNamespace("sharev2.shareAvatar"),v=d(d(d(d(d({},u.y.Open,o.vn.Classrooms),u.y.Link,o.vn.Link),u.y.Classroom,o.vn.Classrooms),u.y.Live,o.vn.Play),u.y.LegacyDirect,o.vn.Share),h=d(d(d(d(d({},u.y.Open,"blue"),u.y.Link,"black"),u.y.Classroom,"purple"),u.y.Live,"purple"),u.y.LegacyDirect,"indigo"),y=d(d(d(d(d({},u.y.Open,"openShareType"),u.y.Link,"linkShareType"),u.y.Classroom,"classroomShareType"),u.y.Live,"liveShareType"),u.y.LegacyDirect,"legacyDirectShareType");function g(e){var t,n,r=function(e){var t=e.type,n=e.classroomName,a=e.additionalTitleText,r=e.openClassroomName;if(t===u.y.Open&&r)return r;if(t===u.y.Classroom&&n)return n;var s=p(y[t]);return a&&(s+=" "+a),s}(e);return a.createElement("div",{className:(0,s.A)("d-flex align-items-center gap-2",e.className)},a.createElement("div",null,a.createElement(i.f,{svgName:v[e.type],variant:h[e.type],textVariant:"white",svgWrapperClassName:"p-1",svgSize:null!==(t=e.svgSize)&&void 0!==t?t:l.S.Standard})),a.createElement("div",{className:"d-flex flex-column"},a.createElement("p",{className:(0,s.A)("m-0",e.titleClassName),title:r},r),!e.hideSubtitle&&a.createElement("span",{className:"text-secondary"},null!==(n=e.subtitleText)&&void 0!==n?n:function(e){var t=e.type,n=e.privacy,a=e.studentCount,r=void 0===a?0:a,s=e.classroomGroupCount,i=void 0===s?0:s;switch(t){case u.y.Classroom:return function(e,t){return e&&t?"".concat(p("classroomGroupCount",{smartCount:e}),", ").concat(p("studentSubTitle",{smartCount:t})):e?p("groupSubTitle",{smartCount:e}):t?p("studentSubTitle",{smartCount:t}):p("allStudentsSubTitle")}(i,r);case u.y.Open:return p("openShareTypeSubTitle");case u.y.Link:return function(e){return[c.e.JustMySchool,c.e.Protected].includes(e)?p("respectRatingsSubTitle"):e===c.e.JustMySchoolOverrideRestriction?p("anyoneInSchoolSubTitle"):e===c.e.ProtectedOverrideRestriction?p("anyoneSignedInSubTitle"):e===c.e.Public?p("anyoneWithLinkSubTitle"):e===c.e.PinCode?p("anyoneWithPinSubTitle"):void 0}(n);case u.y.Live:return p("liveShareTypeSubTitle");case u.y.LegacyDirect:return p("legacyDirectTypeSubTitle");default:return p("publicShareTypeSubTitle")}}(e))))}},33518:(e,t,n)=>{var a;n.d(t,{e:()=>a}),function(e){e.Public="Public",e.PinCode="PinCode",e.PasswordProtected="PasswordProtected",e.ProtectedOverrideRestriction="ProtectedOverrideRestriction",e.JustMySchoolOverrideRestriction="JustMySchoolOverrideRestriction",e.Protected="Protected",e.JustMySchool="JustMySchool",e.Direct="Direct"}(a||(a={}))},2267:(e,t,n)=>{n.d(t,{I:()=>c});var a=n(20354),r=n(64249),s=n(4594),i=n(5112),l=n(60011),o=n(40841),c={canEmbed:function(e){return["video","interactive","clip"].includes(e)},canAddPolicies:function(e){return["interactive"].includes(e)},getEnabledIntegrations:function(e,t){return o._.getShareIntegrations(e,t).filter(function(e){return e.enabled}).map(function(e){return e.id})},getShareSettingsInitialValues:function(e,t){var n,a,r,s,i,l;return{preventScrubbing:null!==(r=null!==(a=null===(n=null==e?void 0:e.options)||void 0===n?void 0:n.preventScrubbing)&&void 0!==a?a:null==t?void 0:t.preventScrubbing)&&void 0!==r&&r,immediateFeedback:null!==(l=null!==(i=null===(s=null==e?void 0:e.options)||void 0===s?void 0:s.immediateFeedback)&&void 0!==i?i:null==t?void 0:t.immediateFeedback)&&void 0!==l&&l}},getEnabledSettingsField:function(e){return{showImmediateFeedbackField:"interactive"===e,showPreventScrubbingField:"interactive"===e}},getSharableEntityType:function(e){switch(e.objectTypeId){case s.E.Video:return"video";case s.E.Playlist:return"playlist";case s.E.Subject:return"subject";case s.E.Series:return"series";case s.E.Interactive:return"interactive";case s.E.Clip:return"clip"}},getFetchFunctionByType:function(e){switch(e){case"playlist":return function(e){return a.a.useBasicFetch(i.C.playlistWithThumbnailAndCount(e))};case"series":return function(e){return a.a.useBasicFetch(l.J.seriesWithThumbnailAndCount(e))}}return r.I.getFetchFunctionByType(e)},getAnalyticsEntity:function(e){return r.I.getAnalyticsEntity(e)},getAnalyticsOptions:function(e){return r.I.getAnalyticsOptions(e)}}},41661:(e,t,n)=>{var a;n.d(t,{D:()=>a}),function(e){e.GoogleClassroom="google-classroom",e.MicrosoftTeams="microsoft-teams",e.Vivi="vivi",e.AppleTv="apply-tv"}(a||(a={}))},40841:(e,t,n)=>{n.d(t,{_:()=>l});var a=n(23481),r=n(41661),s=n(65728),i=a.T.encloseNamespace("shared.shared-utils"),l={getShareIntegrations:function(e,t){return[{id:r.D.GoogleClassroom,name:i("googleClassroom"),enabled:e,settingName:s.E.ShareToGoogleClassroom},{id:r.D.MicrosoftTeams,name:i("msftTeams"),enabled:t,settingName:s.E.ShareToMicrosoftTeams}]}}},83351:(e,t,n)=>{n.d(t,{P:()=>o});var a=n(32735),r=n(23481),s=n(13876),i=n(36532),l=r.T.encloseNamespace("assign.flowControls");function o(e){var t=e.hideBackButton||!e.onClickBack,n=e.hideNextButton||!e.onClickNext,r=e.hideCreateClassroomButton||!e.onClickCreateClassroom;return t&&n&&r?a.createElement(a.Fragment,null):a.createElement(s.u,{className:"justify-content-between"},a.createElement("div",null,!!e.leftComponent&&e.leftComponent,!r&&a.createElement(s.u.Submit,{variant:"link",onClick:e.onClickCreateClassroom,text:l("createClassroom"),className:"text-info p-0"})),a.createElement("div",{className:"d-flex"},!t&&a.createElement(s.u.Cancel,{variant:"link",onClick:e.onClickBack,text:e.backButtonText||l("back")}),!n&&a.createElement(i.u,{title:e.nextButtonTooltip,disable:!e.nextButtonTooltip,placement:"top",spanHack:!0},a.createElement(s.u.Submit,{variant:"dark",onClick:e.onClickNext,text:e.nextButtonText||l("next"),disabled:e.disableNextButton,showSpinner:e.showSpinner}))))}},35690:(e,t,n)=>{n.d(t,{QD:()=>A,Qv:()=>N,__:()=>k});var a=n(32735),r=n(68050),s=n(69111),i=n(42648),l=n(82602),o=n(31453),c=n(1619),u=n(83345),m=n(4594),d="sharev2.shareViewCount";function p(e){return[m.E.Playlist,m.E.Series].includes(e.share.objectTypeId)?a.createElement("span",null,"-"):a.createElement(u.x,{namespace:d,phrase:"viewCount",options:{smartCount:e.share.viewCount||0}})}var v=n(2510),h=n(83914),y=n(35223);function g(e){return[m.E.Playlist,m.E.Series].includes(e.share.objectTypeId)?a.createElement("span",null,"-"):a.createElement("span",{className:"d-inline-flex flex-row gap-2 align-items-center"},a.createElement(h.x,{svgName:y.vn.User}),a.createElement("span",null,function(){var t=e.share.accessCount||0;if(e.share.type===v.y.Open)return"".concat(t);if(e.share.type===v.y.Classroom){var n=e.share.recipients.length;return"".concat(t,"/").concat(n)}return"".concat(t)}()))}var f=n(21789),E=n(15611),b=n(91693);const S={shareListItem:"vLROV",visibleOnHover:"o2KJH",shareAvatar:"zDcMp",shareAvatarTitle:"U8yMQ"};var C="assign.previousAssignments";function x(e){return a.createElement("div",{className:(0,o.A)("d-flex align-items-center justify-content-between",e.show&&"mb-3")},a.createElement("h3",{className:"h6 m-0 p-0"},a.createElement(u.x,{namespace:C,phrase:"heading",options:{count:e.count}})),a.createElement(b.h,{svgName:e.show?y.vn.ChevronUp:y.vn.ChevronDown,onClick:e.onToggle}))}function k(){var e="d-flex align-items-end justify-content-start fw-medium";return a.createElement(u.D.Provider,{value:C},a.createElement(r.Z,{className:"gx-2 px-3 mb-2"},a.createElement(s.Z,{xs:4,className:e},a.createElement(u.x,{phrase:"assignedTo"})),a.createElement(s.Z,{xs:2,className:e},a.createElement(u.x,{phrase:"views"})),a.createElement(s.Z,{xs:2,className:e},a.createElement(u.x,{phrase:"viewedBy"})),a.createElement(s.Z,{xs:4,className:e},a.createElement(u.x,{phrase:"dateCreated"}))))}function T(e){var t,n,i=f.x.getClassroomForShare(e.share,e.classrooms),m=null===(t=e.getItemAnalytics)||void 0===t?void 0:t.call(e,e.share);return a.createElement(E.F,{key:e.share.shareId,appLink:e.getItemAppLink(e.share),analyticsData:null==m?void 0:m.data,analyticsOptions:null==m?void 0:m.options,className:(0,o.A)("d-block p-3 hover-bg-light-blue border border-top-0 no-hover-text-underline",S.shareListItem,e.className)},a.createElement(r.Z,{className:"gx-2"},a.createElement(s.Z,{xs:4,className:"d-flex align-items-center"},a.createElement(c.e,{type:e.share.type,privacy:e.share.privacy,classroomName:null==i?void 0:i.name,svgSize:h.S.Small,openClassroomName:null===(n=e.share.options)||void 0===n?void 0:n.openClassroomName,className:(0,o.A)(S.shareAvatar),titleClassName:(0,o.A)("text-truncate",S.shareAvatarTitle),hideSubtitle:!0})),a.createElement(s.Z,{xs:2,className:"d-flex align-items-center justify-content-start"},a.createElement(p,{share:e.share})),a.createElement(s.Z,{xs:2,className:"d-flex align-items-center justify-content-start"},a.createElement(g,{share:e.share})),a.createElement(s.Z,{xs:4,lg:3,className:"d-flex align-items-center justify-content-start"},a.createElement("span",null,(0,l.WU)(e.share.dateCreated))),a.createElement(s.Z,{lg:1,className:"align-items-center justify-content-end d-none d-lg-flex"},a.createElement("span",{className:(0,o.A)("cursor-pointer text-info hover-text-underline",S.visibleOnHover)},a.createElement(u.x,{namespace:C,phrase:"view"})))))}function N(e){var t;return a.createElement("div",{className:(0,o.A)("d-flex flex-column border-top rounded-top overflow-hidden")},a.createElement(i.ZP,{autoHeight:!0,autoHeightMin:0,autoHeightMax:null!==(t=e.scrollHeightMax)&&void 0!==t?t:215,autoHide:!0},e.assignments.map(function(t,n){return a.createElement(T,{share:t,classrooms:e.classrooms,getItemAppLink:e.getItemAppLink,getItemAnalytics:function(t){var a;return null===(a=e.getItemAnalytics)||void 0===a?void 0:a.call(e,t,n)},className:(0,o.A)(n%2==0&&"bg-gray-100"),key:t.shareId})})))}function A(e){if(!e.assignments.length)return a.createElement(a.Fragment,null);var t=e.show&&e.assignments.length>3;return a.createElement("div",{className:(0,o.A)("bg-white rounded-3 p-3",t&&"pb-0")},a.createElement(x,{count:e.assignments.length,onToggle:e.onToggle,show:e.show}),e.show&&a.createElement(a.Fragment,null,a.createElement(k,null),a.createElement(N,Object.assign({},e))))}},95890:(e,t,n)=>{n.d(t,{_:()=>d});var a=n(20354),r=n(2267),s=n(4594),i=n(16714),l=n(39151),o=n(20768),c=n(31949),u=n(22902),m=n(45778);function d(e){var t,n=a.a.useBasicFetch(c.N.currentUser()),d=r.I.getFetchFunctionByType(e.entityType)(e.objectId,null===(t=n.data)||void 0===t?void 0:t.id),p=a.a.useBasicFetch(l.L.config()),v=a.a.useBasicFetch(m.G.isType(d.data,s.E.Interactive)&&d.data.interactiveId&&o.b.interactive(d.data.interactiveId)),h=(0,u.T)(),y=h.hasPermissions,g=h.isLoaded,f=y(i.C.StudentExperience),E=y(i.C.CreateClassrooms);return{loaded:!!(n.data&&d.data&&p.data&&g),currentUser:n,entity:d,interactive:v,config:p,hasStudentExp:f,canCreateClassrooms:E}}},24578:(e,t,n)=>{n.r(t),n.d(t,{ShowAssignmentsView:()=>R});var a=n(32735),r=n(23481),s=n(20354),i=n(75896),l=n(110),o=n(18488),c=n(21789),u=n(9111),m=n(83914),d=n(83345),p=n(16714),v=n(22902),h=n(37802),y=n(70227),g=n(80783),f=n(35223),E=n(14070),b=n(97291),S=n(86099),C=n(83351),x=n(35690),k=n(95890),T=n(40254),N=n(88630),A=n(23923),w=n(97958),I=n(99742),L="assign.sharesAndAssignmentsEmptyState",P=r.T.encloseNamespace(L);function B(e){return a.createElement(w.u,{className:"py-4"},a.createElement(w.u.Image,{size:"small",src:I.W.EmptyStates.Share.MY_SHARES}),a.createElement(w.u.Heading,null,a.createElement(d.x,{phrase:"title",namespace:L})),a.createElement(w.u.Info,null,a.createElement(d.x,{phrase:"description",namespace:L})),!e.hideAssignButton&&a.createElement(a.Fragment,null,a.createElement(w.u.Cta,{icon:f.vn.Classrooms,text:P("ctaAssign"),appLink:e.assignAppLink}),a.createElement(w.u.Cta,{className:"text-dark hover-text-underline mt-3 fw-medium",text:P("ctaShareLink"),appLink:e.shareLinkAppLink})),e.hideAssignButton&&a.createElement(w.u.Cta,{icon:f.vn.Link,text:P("ctaShare"),appLink:e.shareLinkAppLink}))}var F="assign.sharesEmptyState",j=r.T.encloseNamespace(F);function O(e){return a.createElement(w.u,{className:"py-4"},a.createElement(w.u.Image,{size:"small",src:I.W.EmptyStates.Share.MY_SHARES}),a.createElement(w.u.Heading,null,a.createElement(d.x,{phrase:"title",namespace:F})),a.createElement(w.u.Info,null,a.createElement(d.x,{phrase:"description",namespace:F})),a.createElement(w.u.Cta,{icon:f.vn.Link,text:j("cta"),appLink:e.appLink}))}var D="assign.showAssignmentsView",M=r.T.encloseNamespace(D),_=400;function H(e,t){if(e&&t)return l.O.isSame(e.dateCreated,t.dateCreated)?0:l.O.isAfter(e.dateCreated,t.dateCreated)?1:-1}function U(e){return a.createElement("a",{href:e.href,target:"_blank",className:"btn btn-link text-info"},a.createElement("span",{className:"pe-1"},a.createElement(d.x,{phrase:"openInSchoolAnalytics",namespace:D})),a.createElement(m.x,{svgName:f.vn.NewWindow,size:m.S.Small}))}function Z(e){return"assign-and-shares"===e.type?a.createElement(B,{assignAppLink:e.assignAppLink,shareLinkAppLink:e.shareAppLink,hideAssignButton:e.hideAssignButton}):a.createElement(O,{appLink:e.shareAppLink})}function R(e){var t,n,r,l=(0,k._)({objectId:e.objectId,entityType:e.entityType}),m=(0,v.T)().hasPermissions,d=(0,h.r)(null).hasShareFlowV2,f=(0,A.B)(),w=s.a.useBasicFetch(o.o.getSharesByObjectId(e.objectId)),I=(null===(t=w.data)||void 0===t?void 0:t.sort(H))||[],L=i.m.uniq(I.map(c.x.getClassroomIdFromShare).filter(function(e){return!!e})),P=s.a.useBasicFetch(w.hasCompleted&&N.F.getClassroomsByIds(L,null===(n=l.currentUser.data)||void 0===n?void 0:n.customerId)),B=y.c.getObjectUrl(null===(r=l.config.data)||void 0===r?void 0:r.analyticsWebUrl,l.entity.data,d),F=m(p.C.ViewAnalyticsProduct)&&m(p.C.ViewCustomerAnalytics),j=d&&f?"shares":"assign-and-shares",O=l.loaded&&!!w.data&&!!P.data;return a.createElement(u.G,{size:"lg",title:M("title"),showLoadingSpinner:!O,closePopup:e.closePopup},!I.length&&a.createElement(Z,{assignAppLink:T.W.flowSelector({entityType:e.entityType,objectId:e.objectId}),shareAppLink:{application:b.O.SHARE,action:E.e.Share.SHARE,args:[e.objectId],params:{entityType:e.entityType}},type:j,hideAssignButton:g.z.hideAssignButtonOnVideoActions(l.currentUser.data)}),!!I.length&&a.createElement(a.Fragment,null,a.createElement(x.__,null),a.createElement(x.Qv,{assignments:I.reverse(),classrooms:P.data,getItemAppLink:function(e){var t=(0,S.pY)(e);if(t)return t},scrollHeightMax:_})),a.createElement(C.P,{hideNextButton:!0,hideCreateClassroomButton:!0,onClickBack:e.closePopup,backButtonText:M("close"),leftComponent:!!B&&F&&a.createElement(U,{href:B})}))}},82602:(e,t,n)=>{n.d(t,{WU:()=>c});var a=["second","minute","hour","day","week","month","year"],r=["秒","分钟","小时","天","周","个月","年"],s={},i=function(e,t){s[e]=t},l=[60,60,24,7,365/7/12,12];function o(e){return e instanceof Date?e:!isNaN(e)||/^\d+$/.test(e)?new Date(parseInt(e)):(e=(e||"").trim().replace(/\.\d+/,"").replace(/-/,"/").replace(/-/,"/").replace(/(\d)T(\d)/,"$1 $2").replace(/Z/," UTC").replace(/([+-]\d\d):?(\d\d)/," $1$2"),new Date(e))}var c=function(e,t,n){var a=function(e,t){return(+(t?o(t):new Date)-+o(e))/1e3}(e,n&&n.relativeDate);return function(e,t){for(var n=e<0?1:0,a=e=Math.abs(e),r=0;e>=l[r]&&r<l.length;r++)e/=l[r];return(e=Math.floor(e))>(0==(r*=2)?9:1)&&(r+=1),t(e,r,a)[n].replace("%s",e.toString())}(a,function(e){return s[e]||s.en_US}(t))};i("en_US",function(e,t){if(0===t)return["just now","right now"];var n=a[Math.floor(t/2)];return e>1&&(n+="s"),[e+" "+n+" ago","in "+e+" "+n]}),i("zh_CN",function(e,t){if(0===t)return["刚刚","片刻后"];var n=r[~~(t/2)];return[e+" "+n+"前",e+" "+n+"后"]})}}]);
|
|
2
|
+
//# sourceMappingURL=4578-27028d26eb-lite.chunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scripts/4578-27028d26eb-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/apps/share-v2/components/share-avatar/ShareAvatar.tsx","file:///app/packages/libs/shared/src/apps/share-v2/enums/SharePrivacy.ts","file:///app/packages/libs/shared/src/apps/share-v2/utils/ShareViewHelper.tsx","file:///app/packages/libs/shared/src/enums/IntegrationId.ts","file:///app/packages/libs/shared/src/utils/IntegrationHelper.ts","file:///app/packages/projects/lite/src/apps/assign/components/flow-controls/FlowControls.tsx","file:///app/packages/libs/shared/src/apps/share-v2/components/share-view-count/ShareViewCount.tsx","file:///app/packages/libs/shared/src/apps/share-v2/components/share-viewed-by-count/ShareViewedByCount.tsx","file:///app/packages/projects/lite/src/apps/assign/components/previous-assignments/previous-assignments.scss","file:///app/packages/projects/lite/src/apps/assign/components/previous-assignments/PreviousAssignments.tsx","file:///app/packages/projects/lite/src/apps/assign/hooks/useAssignSharedData.ts","file:///app/packages/projects/lite/src/apps/assign/views/show-assignments-view/empty-states/shares-and-assignments-empty-state/SharesAndAssignmentsEmptyState.tsx","file:///app/packages/projects/lite/src/apps/assign/views/show-assignments-view/empty-states/shares-empty-state/SharesEmptyState.tsx","file:///app/packages/projects/lite/src/apps/assign/views/show-assignments-view/ShowAssignmentsView.tsx","file:///app/node_modules/timeago.js/esm/lang/en_US.js","file:///app/node_modules/timeago.js/esm/lang/zh_CN.js","file:///app/node_modules/timeago.js/esm/register.js","file:///app/node_modules/timeago.js/esm/utils/date.js","file:///app/node_modules/timeago.js/esm/format.js","file:///app/node_modules/timeago.js/esm/index.js"],"sourcesContent":["import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { classNames } from 'libs/common/react/utils/ClassNameHelper';\n\nimport { IconCircle } from 'libs/shared/components/icon-circle/IconCircle';\nimport { SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { SharePrivacy } from '../../enums/SharePrivacy';\nimport { ShareType } from '../../enums/ShareType';\n\nconst namespace = 'sharev2.shareAvatar';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst icons = {\n [ShareType.Open]: cvSvgLibrary.Classrooms,\n [ShareType.Link]: cvSvgLibrary.Link,\n [ShareType.Classroom]: cvSvgLibrary.Classrooms,\n [ShareType.Live]: cvSvgLibrary.Play,\n [ShareType.LegacyDirect]: cvSvgLibrary.Share\n};\n\nconst iconColours = {\n [ShareType.Open]: 'blue',\n [ShareType.Link]: 'black',\n [ShareType.Classroom]: 'purple',\n [ShareType.Live]: 'purple',\n [ShareType.LegacyDirect]: 'indigo'\n};\n\nconst shareTypeTitlePhraseMap = {\n [ShareType.Open]: 'openShareType',\n [ShareType.Link]: 'linkShareType',\n [ShareType.Classroom]: 'classroomShareType',\n [ShareType.Live]: 'liveShareType',\n [ShareType.LegacyDirect]: 'legacyDirectShareType'\n};\n\nfunction getTitle({ type, classroomName, additionalTitleText, openClassroomName }: ShareAvatarProps) {\n if (type === ShareType.Open && openClassroomName)\n return openClassroomName;\n \n if (type === ShareType.Classroom && classroomName)\n return classroomName;\n\n let title = getPhrase(shareTypeTitlePhraseMap[type]);\n\n if (additionalTitleText)\n title += ' ' + additionalTitleText;\n\n return title;\n}\n\nfunction getClassroomSubtitle(classroomGroupCount: number, studentCount: number): string {\n if (classroomGroupCount && studentCount)\n return `${getPhrase('classroomGroupCount', { smartCount: classroomGroupCount })}, ${getPhrase('studentSubTitle', { smartCount: studentCount })}`;\n\n if (classroomGroupCount)\n return getPhrase('groupSubTitle', { smartCount: classroomGroupCount });\n\n if (studentCount)\n return getPhrase('studentSubTitle', { smartCount: studentCount });\n\n return getPhrase('allStudentsSubTitle');\n}\n\nfunction getLinkSubtitle(privacy: SharePrivacy) {\n if ([ SharePrivacy.JustMySchool, SharePrivacy.Protected ].includes(privacy))\n return getPhrase('respectRatingsSubTitle');\n\n if (privacy === SharePrivacy.JustMySchoolOverrideRestriction)\n return getPhrase('anyoneInSchoolSubTitle');\n\n if (privacy === SharePrivacy.ProtectedOverrideRestriction)\n return getPhrase('anyoneSignedInSubTitle');\n\n if (privacy === SharePrivacy.Public)\n return getPhrase('anyoneWithLinkSubTitle');\n\n if (privacy === SharePrivacy.PinCode)\n return getPhrase('anyoneWithPinSubTitle');\n}\n\nfunction getSubtitle({ type, privacy, studentCount = 0, classroomGroupCount = 0 }: ShareAvatarProps) {\n switch (type) {\n case ShareType.Classroom:\n return getClassroomSubtitle(classroomGroupCount, studentCount);\n\n case ShareType.Open:\n return getPhrase('openShareTypeSubTitle');\n\n case ShareType.Link:\n return getLinkSubtitle(privacy);\n \n case ShareType.Live:\n return getPhrase('liveShareTypeSubTitle');\n\n case ShareType.LegacyDirect:\n return getPhrase('legacyDirectTypeSubTitle');\n\n default:\n return getPhrase('publicShareTypeSubTitle');\n }\n}\n\ninterface ShareAvatarProps {\n type: ShareType;\n privacy: SharePrivacy;\n studentCount?: number;\n classroomGroupCount?: number;\n classroomName?: string;\n openClassroomName?: string;\n hideSubtitle?: boolean;\n subtitleText?: string;\n svgSize?: SvgContainerSize;\n additionalTitleText?: string;\n className?: string;\n titleClassName?: string;\n showIconCircle?: boolean;\n}\n\nexport function ShareAvatar(props: ShareAvatarProps): JSX.Element {\n const title = getTitle(props);\n return (\n <div className={classNames('d-flex align-items-center gap-2', props.className)}>\n <div>\n <IconCircle\n svgName={icons[props.type]}\n variant={iconColours[props.type]}\n textVariant={'white'}\n svgWrapperClassName='p-1'\n svgSize={props.svgSize ?? SvgContainerSize.Standard}\n />\n </div>\n <div className='d-flex flex-column'>\n <p className={classNames('m-0', props.titleClassName)} title={title}>{title}</p>\n {!props.hideSubtitle && <span className='text-secondary'>{props.subtitleText ?? getSubtitle(props)}</span>}\n </div>\n </div>\n );\n}","export enum SharePrivacy {\n Public = 'Public',\n PinCode = 'PinCode',\n PasswordProtected = 'PasswordProtected',\n ProtectedOverrideRestriction = 'ProtectedOverrideRestriction',\n JustMySchoolOverrideRestriction = 'JustMySchoolOverrideRestriction',\n Protected = 'Protected',\n JustMySchool = 'JustMySchool',\n Direct = 'Direct'\n}","import { Flight } from 'libs/common/react/index';\n\nimport { AnalyticsOptions, EntityType } from 'libs/analytics/interfaces';\n\nimport { ShareViewHelper as OldShareViewHelper } from 'libs/shared/apps/share/views/share/ShareViewHelper';\nimport type { Share } from 'libs/shared/apps/share-v2/interfaces/Share';\nimport { IntegrationId } from 'libs/shared/enums/IntegrationId';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { PlaylistRequests } from 'libs/shared/flight-requests/PlaylistRequests';\nimport { SeriesRequests } from 'libs/shared/flight-requests/SeriesRequests';\nimport type { Clip, Interactive, InteractiveMetadata, Playlist, Series, Subject, Video } from 'libs/shared/interfaces';\nimport { IntegrationHelper } from 'libs/shared/utils/IntegrationHelper';\n\nexport type SharableEntityType = 'video' | 'playlist' | 'subject' | 'series' | 'interactive' | 'clip';\nexport type SharableEntity = Video | Playlist | Subject | Series | InteractiveMetadata | Clip;\nexport interface ShareSettingsFormFields {\n preventScrubbing: boolean;\n immediateFeedback: boolean;\n}\n\nexport const ShareViewHelper = {\n canEmbed(type: SharableEntityType): boolean {\n return [ 'video', 'interactive', 'clip' ].includes(type);\n },\n\n /**\n * Only interactive entities can update share settings currently\n */\n canAddPolicies(type: SharableEntityType): boolean {\n return ['interactive'].includes(type);\n },\n\n getEnabledIntegrations(googleClassroomSetting: boolean, msftTeamsSetting: boolean): IntegrationId[] {\n const integrations = IntegrationHelper.getShareIntegrations(googleClassroomSetting, msftTeamsSetting);\n return integrations.filter(i => i.enabled).map(i => i.id);\n },\n\n getShareSettingsInitialValues(share: Share, interactive: Interactive | null) {\n return {\n preventScrubbing: share?.options?.preventScrubbing ?? interactive?.preventScrubbing ?? false,\n immediateFeedback: share?.options?.immediateFeedback ?? interactive?.immediateFeedback ?? false\n };\n },\n \n getEnabledSettingsField(entityType: SharableEntityType): {[key in `show${Capitalize<keyof ShareSettingsFormFields>}Field`]: boolean} {\n return {\n showImmediateFeedbackField: entityType === 'interactive',\n showPreventScrubbingField: entityType === 'interactive'\n };\n },\n\n getSharableEntityType(share: Share): SharableEntityType {\n switch (share.objectTypeId) {\n case MasterType.Video:\n return 'video';\n case MasterType.Playlist:\n return 'playlist';\n case MasterType.Subject:\n return 'subject';\n case MasterType.Series:\n return 'series';\n case MasterType.Interactive:\n return 'interactive';\n case MasterType.Clip:\n return 'clip';\n }\n },\n\n /**\n * Methods from old ShareViewHelper imported here for namespacing\n */\n getFetchFunctionByType: (type: SharableEntityType) => {\n switch (type) {\n case 'playlist': {\n return (id: string) => Flight.useBasicFetch<Playlist>(PlaylistRequests.playlistWithThumbnailAndCount(id));\n }\n\n case 'series': {\n return (id: string) => Flight.useBasicFetch<Series>(SeriesRequests.seriesWithThumbnailAndCount(id));\n }\n }\n \n return OldShareViewHelper.getFetchFunctionByType(type);\n },\n\n getAnalyticsEntity(entityType: string): EntityType {\n return OldShareViewHelper.getAnalyticsEntity(entityType);\n },\n\n getAnalyticsOptions(entityType: SharableEntityType): AnalyticsOptions {\n return OldShareViewHelper.getAnalyticsOptions(entityType);\n }\n};","export enum IntegrationId {\n GoogleClassroom = 'google-classroom',\n MicrosoftTeams = 'microsoft-teams',\n Vivi = 'vivi',\n AppleTv = 'apply-tv'\n}","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { IntegrationId } from 'libs/shared/enums/IntegrationId';\nimport { SettingName } from 'libs/shared/enums/SettingName';\nimport { Integration } from 'libs/shared/interfaces';\n\nconst namespace = 'shared.shared-utils';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport const IntegrationHelper = {\n getShareIntegrations(googleClassroomSetting: boolean, msftTeamsSetting: boolean): Integration[] {\n return [\n {\n id: IntegrationId.GoogleClassroom,\n name: getPhrase('googleClassroom'),\n enabled: googleClassroomSetting,\n settingName: SettingName.ShareToGoogleClassroom\n },\n {\n id: IntegrationId.MicrosoftTeams,\n name: getPhrase('msftTeams'),\n enabled: msftTeamsSetting,\n settingName: SettingName.ShareToMicrosoftTeams\n }\n ];\n }\n};\n","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\n\nconst namespace = 'assign.flowControls';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface FlowControlsProps {\n showSpinner?: boolean;\n hideNextButton?: boolean;\n hideBackButton?: boolean;\n disableNextButton?: boolean;\n disableBackButton?: boolean;\n backButtonText?: string;\n hideCreateClassroomButton?: boolean;\n nextButtonText?: string;\n nextButtonTooltip?: string;\n onClickNext?: () => void;\n onClickBack?: () => void;\n onClickCreateClassroom?: () => void;\n leftComponent?: JSX.Element;\n}\n\nexport function FlowControls(props: FlowControlsProps): JSX.Element {\n const hideBackButton = props.hideBackButton || !props.onClickBack;\n const hideNextButton = props.hideNextButton || !props.onClickNext;\n const hideCreateClassroomButton = props.hideCreateClassroomButton || !props.onClickCreateClassroom;\n \n if (hideBackButton && hideNextButton && hideCreateClassroomButton)\n return <></>;\n \n return (\n <PopupButtons className='justify-content-between'>\n <div>\n {!!props.leftComponent && props.leftComponent}\n {!hideCreateClassroomButton && (\n <PopupButtons.Submit variant='link' onClick={props.onClickCreateClassroom} text={getPhrase('createClassroom')} className='text-info p-0' />\n )}\n </div>\n <div className='d-flex'>\n {!hideBackButton && (\n <PopupButtons.Cancel variant='link' onClick={props.onClickBack} text={props.backButtonText || getPhrase('back')} />\n )}\n {!hideNextButton && (\n <Tooltip title={props.nextButtonTooltip} disable={!props.nextButtonTooltip} placement='top' spanHack>\n <PopupButtons.Submit\n variant='dark'\n onClick={props.onClickNext}\n text={props.nextButtonText || getPhrase('next')}\n disabled={props.disableNextButton}\n showSpinner={props.showSpinner}\n />\n </Tooltip>\n )}\n </div>\n </PopupButtons>\n );\n}","import React from 'react';\n\nimport { Share } from 'libs/shared/apps/share-v2/interfaces/Share';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { MasterType } from 'libs/shared/enums/MasterType';\n\nconst namespace = 'sharev2.shareViewCount';\n\ninterface ShareViewCountProps {\n share: Share;\n}\n\nexport function ShareViewCount(props: ShareViewCountProps): JSX.Element {\n const isCollection = [ MasterType.Playlist, MasterType.Series ].includes(props.share.objectTypeId);\n \n if (isCollection)\n return <span>-</span>;\n\n return <Text namespace={namespace} phrase='viewCount' options={{ smartCount: props.share.viewCount || 0 }} />;\n}","import React from 'react';\n\nimport { ShareType } from 'libs/shared/apps/share-v2/enums/ShareType';\nimport { Share } from 'libs/shared/apps/share-v2/interfaces/Share';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\ninterface ShareViewedByCountProps {\n share: Share;\n}\n\nexport function ShareViewedByCount(props: ShareViewedByCountProps): JSX.Element {\n const isCollection = [ MasterType.Playlist, MasterType.Series ].includes(props.share.objectTypeId);\n\n if (isCollection)\n return <span>-</span>;\n \n function getViewCount(): string {\n const shareAccessCount = props.share.accessCount || 0;\n if (props.share.type === ShareType.Open)\n return `${shareAccessCount}`;\n\n if (props.share.type === ShareType.Classroom) {\n const totalRecipients = props.share.recipients.length;\n return `${shareAccessCount}/${totalRecipients}`;\n }\n\n return `${shareAccessCount}`;\n }\n \n return (\n <span className='d-inline-flex flex-row gap-2 align-items-center'>\n <SvgContainer svgName={cvSvgLibrary.User} />\n <span>{getViewCount()}</span>\n </span>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"shareListItem\":\"vLROV\",\"visibleOnHover\":\"o2KJH\",\"shareAvatar\":\"zDcMp\",\"shareAvatarTitle\":\"U8yMQ\"};","import React from 'react';\nimport { Col, Row } from 'react-bootstrap';\nimport Scrollbars from 'react-custom-scrollbars-2';\nimport { format as formatDate } from 'timeago.js';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { classNames } from 'libs/common/react/utils/ClassNameHelper';\n\nimport { AnalyticsOptions, HashObject } from 'libs/analytics/interfaces';\n\nimport { ShareAvatar } from 'libs/shared/apps/share-v2/components/share-avatar/ShareAvatar';\nimport { ShareViewCount } from 'libs/shared/apps/share-v2/components/share-view-count/ShareViewCount';\nimport { ShareViewedByCount } from 'libs/shared/apps/share-v2/components/share-viewed-by-count/ShareViewedByCount';\nimport { Share } from 'libs/shared/apps/share-v2/interfaces/Share';\nimport { ShareHelper } from 'libs/shared/apps/share-v2/utils/ShareHelper';\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { IconButton } from 'libs/shared/components/icon-button/IconButton';\nimport { SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { LanguageNamespaceContext, Text } from 'libs/shared/components/text/Text';\nimport { Classroom } from 'libs/shared/interfaces';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport styles from './previous-assignments.scss';\n\nconst namespace = 'assign.previousAssignments';\n\ninterface PreviousAssignmentsHeaderProps {\n count: number;\n show: boolean;\n onToggle: () => void;\n}\n\nfunction PreviousAssignmentsHeader(props: PreviousAssignmentsHeaderProps): JSX.Element {\n return (\n <div className={classNames('d-flex align-items-center justify-content-between', props.show && 'mb-3')}>\n <h3 className='h6 m-0 p-0'><Text namespace={namespace} phrase='heading' options={{ count: props.count }} /></h3>\n <IconButton\n svgName={props.show ? cvSvgLibrary.ChevronUp : cvSvgLibrary.ChevronDown}\n onClick={props.onToggle}\n />\n </div>\n );\n}\n\nexport function PreviousAssignmentsListHeader(): JSX.Element {\n const columnClassNames = 'd-flex align-items-end justify-content-start fw-medium';\n \n return (\n <LanguageNamespaceContext.Provider value={namespace}>\n <Row className='gx-2 px-3 mb-2'>\n <Col xs={4} className={columnClassNames}>\n <Text phrase='assignedTo' />\n </Col>\n <Col xs={2} className={columnClassNames}>\n <Text phrase='views' />\n </Col>\n <Col xs={2} className={columnClassNames}>\n <Text phrase='viewedBy' />\n </Col>\n <Col xs={4} className={columnClassNames}>\n <Text phrase='dateCreated' />\n </Col>\n </Row>\n </LanguageNamespaceContext.Provider>\n );\n}\n\ntype ItemAnalytics = {\n data: HashObject;\n options: AnalyticsOptions;\n}\ninterface PreviousAssignmentListItemProps {\n share: Share;\n classrooms: Classroom[];\n getItemAppLink: (share: Share) => Core.AppLink;\n\n getItemAnalytics?: (share: Share) => ItemAnalytics;\n className?: string;\n}\n\nfunction PreviousAssignmentListItem(props: PreviousAssignmentListItemProps): JSX.Element {\n const shareClassroom = ShareHelper.getClassroomForShare(props.share, props.classrooms);\n\n const analytics = props.getItemAnalytics?.(props.share);\n\n return (\n <AppLink\n key={props.share.shareId}\n appLink={props.getItemAppLink(props.share)}\n analyticsData={analytics?.data}\n analyticsOptions={analytics?.options}\n className={classNames('d-block p-3 hover-bg-light-blue border border-top-0 no-hover-text-underline', styles.shareListItem, props.className)}\n >\n <Row className='gx-2'>\n <Col xs={4} className='d-flex align-items-center'>\n <ShareAvatar\n type={props.share.type}\n privacy={props.share.privacy}\n classroomName={shareClassroom?.name}\n svgSize={SvgContainerSize.Small}\n openClassroomName={props.share.options?.openClassroomName}\n className={classNames(styles.shareAvatar)}\n titleClassName={classNames('text-truncate', styles.shareAvatarTitle)}\n hideSubtitle\n />\n </Col>\n <Col xs={2} className='d-flex align-items-center justify-content-start'>\n <ShareViewCount share={props.share} />\n </Col>\n <Col xs={2} className='d-flex align-items-center justify-content-start'>\n <ShareViewedByCount share={props.share} />\n </Col>\n <Col xs={4} lg={3} className='d-flex align-items-center justify-content-start'>\n <span>{formatDate(props.share.dateCreated)}</span>\n </Col>\n <Col lg={1} className='align-items-center justify-content-end d-none d-lg-flex'>\n <span className={classNames('cursor-pointer text-info hover-text-underline', styles.visibleOnHover)}>\n <Text namespace={namespace} phrase='view' />\n </span>\n </Col>\n </Row>\n </AppLink>\n );\n}\n\ninterface PreviousAssignmentsListProps {\n assignments: Share[];\n classrooms: Classroom[];\n getItemAppLink: (share: Share) => Core.AppLink;\n getItemAnalytics?: (share: Share, yIndex: number) => ItemAnalytics;\n scrollHeightMax?: number;\n}\n\nexport function PreviousAssignmentsList(props: PreviousAssignmentsListProps): JSX.Element {\n return (\n <div className={classNames(\n 'd-flex flex-column border-top rounded-top overflow-hidden'\n )}>\n <Scrollbars\n autoHeight\n autoHeightMin={0}\n autoHeightMax={props.scrollHeightMax ?? 215}\n autoHide\n >\n {props.assignments.map((share, idx) => (\n <PreviousAssignmentListItem\n share={share}\n classrooms={props.classrooms}\n getItemAppLink={props.getItemAppLink}\n getItemAnalytics={share => props.getItemAnalytics?.(share, idx)}\n className={classNames(idx % 2 === 0 && 'bg-gray-100')}\n key={share.shareId}\n />\n ))}\n </Scrollbars>\n </div>\n );\n}\n\ninterface PreviousAssignmentsProps {\n show: boolean;\n assignments: Share[];\n classrooms: Classroom[];\n onToggle: () => void;\n getItemAppLink: (share: Share) => Core.AppLink;\n getItemAnalytics?: (share: Share, yIndex: number) => ItemAnalytics;\n}\n\nexport function PreviousAssignments(props: PreviousAssignmentsProps): JSX.Element {\n if (!props.assignments.length)\n return <></>;\n \n const noBottomPadding = props.show && props.assignments.length > 3;\n \n return (\n <div className={classNames('bg-white rounded-3 p-3', noBottomPadding && 'pb-0')}>\n <PreviousAssignmentsHeader count={props.assignments.length} onToggle={props.onToggle} show={props.show} />\n {props.show && (\n <>\n <PreviousAssignmentsListHeader />\n <PreviousAssignmentsList {...props} />\n </>\n )}\n </div>\n );\n}","import { Flight } from 'libs/common/react/index';\n\nimport { SharableEntityType, ShareViewHelper } from 'libs/shared/apps/share-v2/utils/ShareViewHelper';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { InteractiveRequests } from 'libs/shared/flight-requests/InteractiveRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { Config, CurrentUser, Interactive, InteractiveMetadata } from 'libs/shared/interfaces';\nimport { MasterTypeHelper } from 'libs/shared/utils/MasterTypeHelper';\n\nexport interface UseAssignSharedDataOptions {\n objectId: string;\n entityType: SharableEntityType;\n}\n\nexport function useAssignSharedData(options: UseAssignSharedDataOptions) {\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const entity = ShareViewHelper.getFetchFunctionByType(options.entityType)(options.objectId, currentUser.data?.id);\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n\n /**\n * Fetch interactive videos options to set them as defaults\n * if the interactive share data does not have any options set.\n * We only fetch this if its an interactive share entity\n */\n const interactive = Flight.useBasicFetch<Interactive>(\n MasterTypeHelper.isType<InteractiveMetadata>(entity.data, MasterType.Interactive) && entity.data.interactiveId &&\n InteractiveRequests.interactive(entity.data.interactiveId)\n );\n\n const { hasPermissions, isLoaded } = usePermissions();\n\n const hasStudentExp = hasPermissions(PermissionName.StudentExperience);\n const canCreateClassrooms = hasPermissions(PermissionName.CreateClassrooms);\n \n const dataLoaded = (\n !!currentUser.data &&\n !!entity.data &&\n !!config.data &&\n !!isLoaded\n );\n \n return {\n loaded: dataLoaded,\n currentUser,\n entity,\n interactive,\n config,\n hasStudentExp,\n canCreateClassrooms\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 { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\n\nconst namespace = 'assign.sharesAndAssignmentsEmptyState';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface SharesAndAssignmentsEmptyStateProps {\n assignAppLink: Core.AppLink;\n shareLinkAppLink: Core.AppLink;\n hideAssignButton?: boolean;\n}\n\nexport function SharesAndAssignmentsEmptyState(props: SharesAndAssignmentsEmptyStateProps): JSX.Element {\n return (\n <EmptyState className='py-4'>\n <EmptyState.Image\n size='small'\n src={ImageUrls.EmptyStates.Share.MY_SHARES}\n />\n <EmptyState.Heading><Text phrase='title' namespace={namespace} /></EmptyState.Heading>\n <EmptyState.Info><Text phrase='description' namespace={namespace} /></EmptyState.Info>\n {!props.hideAssignButton && <>\n <EmptyState.Cta\n icon={cvSvgLibrary.Classrooms}\n text={getPhrase('ctaAssign')}\n appLink={props.assignAppLink}\n />\n <EmptyState.Cta\n className='text-dark hover-text-underline mt-3 fw-medium'\n text={getPhrase('ctaShareLink')}\n appLink={props.shareLinkAppLink}\n />\n </>}\n {props.hideAssignButton &&\n <EmptyState.Cta\n icon={cvSvgLibrary.Link}\n text={getPhrase('ctaShare')}\n appLink={props.shareLinkAppLink}\n />\n }\n </EmptyState>\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 { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\n\nconst namespace = 'assign.sharesEmptyState';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface SharesEmptyStateProps {\n appLink: Core.AppLink;\n}\n\nexport function SharesEmptyState(props: SharesEmptyStateProps): JSX.Element {\n return (\n <EmptyState className='py-4'>\n <EmptyState.Image\n size='small'\n src={ImageUrls.EmptyStates.Share.MY_SHARES}\n />\n <EmptyState.Heading><Text phrase='title' namespace={namespace} /></EmptyState.Heading>\n <EmptyState.Info><Text phrase='description' namespace={namespace} /></EmptyState.Info>\n <EmptyState.Cta\n icon={cvSvgLibrary.Link}\n text={getPhrase('cta')}\n appLink={props.appLink}\n />\n </EmptyState>\n );\n}","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/react/index';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { ShareRequests } from 'libs/shared/apps/share-v2/flight-requests/ShareRequests';\nimport { Share } from 'libs/shared/apps/share-v2/interfaces/Share';\nimport { ShareHelper } from 'libs/shared/apps/share-v2/utils/ShareHelper';\nimport { SharableEntityType } from 'libs/shared/apps/share-v2/utils/ShareViewHelper';\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { Classroom, PopupViewProps } from 'libs/shared/interfaces';\nimport { AnalyticsRouteHelper } from 'libs/shared/utils/AnalyticsRouteHelper';\nimport { AssignHelper } from 'libs/shared/utils/AssignHelper';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { getInsightsOverviewAppLink } from 'shared/utils/ObjectAppLinkHelper';\n\nimport { FlowControls } from 'apps/assign/components/flow-controls/FlowControls';\nimport { PreviousAssignmentsList, PreviousAssignmentsListHeader } from 'apps/assign/components/previous-assignments/PreviousAssignments';\nimport { useAssignSharedData } from 'apps/assign/hooks/useAssignSharedData';\nimport { AssignAppLinkHelper } from 'apps/assign/utils/AssignAppLinkHelper';\nimport { ClassroomRequests } from 'apps/classrooms/flight-requests/ClassroomRequests';\nimport { useIsTertiary } from 'apps/onboarding/hooks/useIsTertiary';\n\nimport { SharesAndAssignmentsEmptyState } from './empty-states/shares-and-assignments-empty-state/SharesAndAssignmentsEmptyState';\nimport { SharesEmptyState } from './empty-states/shares-empty-state/SharesEmptyState';\n\nconst namespace = 'assign.showAssignmentsView';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst MAX_SCROLL_HEIGHT = 400;\n\nfunction sortByDateCreated(a: Share, b: Share) {\n if (!a || !b)\n return;\n\n if (DateHelper.isSame(a.dateCreated, b.dateCreated))\n return 0;\n\n if (DateHelper.isAfter(a.dateCreated, b.dateCreated))\n return 1;\n\n return -1;\n}\n\ninterface ViewInSchoolAnalyticsButtonProps {\n href: string;\n}\n\nfunction ViewInSchoolAnalyticsButton(props: ViewInSchoolAnalyticsButtonProps): JSX.Element {\n return (\n <a href={props.href} target='_blank' className='btn btn-link text-info'>\n <span className='pe-1'><Text phrase='openInSchoolAnalytics' namespace={namespace} /></span>\n <SvgContainer svgName={cvSvgLibrary.NewWindow} size={SvgContainerSize.Small} />\n </a>\n );\n}\n\ninterface ShowAssignmentsEmptyStateProps {\n type: 'assign-and-shares' | 'shares';\n assignAppLink: Core.AppLink;\n shareAppLink: Core.AppLink;\n hideAssignButton?: boolean;\n}\n\nfunction ShowAssignmentsEmptyState(props: ShowAssignmentsEmptyStateProps): JSX.Element {\n if (props.type === 'assign-and-shares') {\n return (\n <SharesAndAssignmentsEmptyState\n assignAppLink={props.assignAppLink}\n shareLinkAppLink={props.shareAppLink}\n hideAssignButton={props.hideAssignButton}\n />\n );\n }\n \n return <SharesEmptyState appLink={props.shareAppLink} />;\n}\n\ninterface ShowAssignmentsViewProps extends PopupViewProps {\n objectId: string;\n entityType: SharableEntityType;\n}\n\nexport function ShowAssignmentsView(props: ShowAssignmentsViewProps): JSX.Element {\n const sharedData = useAssignSharedData({\n objectId: props.objectId,\n entityType: props.entityType\n });\n\n const { hasPermissions } = usePermissions();\n const { hasShareFlowV2 } = useSettings(null);\n const isTertiary = useIsTertiary();\n\n const previousShares = Flight.useBasicFetch<Share[]>(ShareRequests.getSharesByObjectId(props.objectId));\n const assignments = previousShares.data?.sort(sortByDateCreated) || [];\n const previousAssignmentClassroomIds = ArrayHelper.uniq(\n assignments.map(ShareHelper.getClassroomIdFromShare).filter(x => !!x)\n );\n const classrooms = Flight.useBasicFetch<Classroom[]>(\n previousShares.hasCompleted &&\n ClassroomRequests.getClassroomsByIds(previousAssignmentClassroomIds, sharedData.currentUser.data?.customerId)\n );\n\n function getItemAppLink(share: Share) {\n const appLink = getInsightsOverviewAppLink(share);\n if (!appLink)\n return;\n\n return appLink;\n }\n\n const analyticsUrl = AnalyticsRouteHelper.getObjectUrl(\n sharedData.config.data?.analyticsWebUrl,\n sharedData.entity.data,\n hasShareFlowV2\n );\n \n const canViewSchoolAnalytics =\n hasPermissions(PermissionName.ViewAnalyticsProduct) &&\n hasPermissions(PermissionName.ViewCustomerAnalytics);\n\n const emptyStateType = (hasShareFlowV2 && isTertiary) ? 'shares' : 'assign-and-shares';\n\n const loaded = sharedData.loaded && !!previousShares.data && !!classrooms.data;\n\n return (\n <Popup\n size='lg'\n title={getPhrase('title')}\n showLoadingSpinner={!loaded}\n closePopup={props.closePopup}\n >\n {!assignments.length &&\n <ShowAssignmentsEmptyState\n assignAppLink={AssignAppLinkHelper.flowSelector({ entityType: props.entityType, objectId: props.objectId })}\n shareAppLink={{\n application: AppChannels.SHARE,\n action: Actions.Share.SHARE,\n args: [props.objectId],\n params: {\n entityType: props.entityType\n }\n }}\n type={emptyStateType}\n hideAssignButton={AssignHelper.hideAssignButtonOnVideoActions(sharedData.currentUser.data)}\n />\n }\n \n {!!assignments.length &&\n <>\n <PreviousAssignmentsListHeader />\n <PreviousAssignmentsList\n assignments={assignments.reverse()}\n classrooms={classrooms.data}\n getItemAppLink={getItemAppLink}\n scrollHeightMax={MAX_SCROLL_HEIGHT}\n />\n </>\n }\n <FlowControls\n hideNextButton\n hideCreateClassroomButton\n onClickBack={props.closePopup}\n backButtonText={getPhrase('close')}\n leftComponent={!!analyticsUrl && canViewSchoolAnalytics && <ViewInSchoolAnalyticsButton href={analyticsUrl} />}\n />\n </Popup>\n );\n}","var EN_US = ['second', 'minute', 'hour', 'day', 'week', 'month', 'year'];\nexport default function (diff, idx) {\n if (idx === 0)\n return ['just now', 'right now'];\n var unit = EN_US[Math.floor(idx / 2)];\n if (diff > 1)\n unit += 's';\n return [diff + \" \" + unit + \" ago\", \"in \" + diff + \" \" + unit];\n}\n//# sourceMappingURL=en_US.js.map","var ZH_CN = ['秒', '分钟', '小时', '天', '周', '个月', '年'];\nexport default function (diff, idx) {\n if (idx === 0)\n return ['刚刚', '片刻后'];\n var unit = ZH_CN[~~(idx / 2)];\n return [diff + \" \" + unit + \"\\u524D\", diff + \" \" + unit + \"\\u540E\"];\n}\n//# sourceMappingURL=zh_CN.js.map","/**\n * Created by hustcc on 18/5/20.\n * Contract: i@hust.cc\n */\n/**\n * All supported locales\n */\nvar Locales = {};\n/**\n * register a locale\n * @param locale\n * @param func\n */\nexport var register = function (locale, func) {\n Locales[locale] = func;\n};\n/**\n * get a locale, default is en_US\n * @param locale\n * @returns {*}\n */\nexport var getLocale = function (locale) {\n return Locales[locale] || Locales['en_US'];\n};\n//# sourceMappingURL=register.js.map","/**\n * Created by hustcc on 18/5/20.\n * Contract: i@hust.cc\n */\nvar SEC_ARRAY = [\n 60,\n 60,\n 24,\n 7,\n 365 / 7 / 12,\n 12,\n];\n/**\n * format Date / string / timestamp to timestamp\n * @param input\n * @returns {*}\n */\nexport function toDate(input) {\n if (input instanceof Date)\n return input;\n // @ts-ignore\n if (!isNaN(input) || /^\\d+$/.test(input))\n return new Date(parseInt(input));\n input = (input || '')\n // @ts-ignore\n .trim()\n .replace(/\\.\\d+/, '') // remove milliseconds\n .replace(/-/, '/')\n .replace(/-/, '/')\n .replace(/(\\d)T(\\d)/, '$1 $2')\n .replace(/Z/, ' UTC') // 2017-2-5T3:57:52Z -> 2017-2-5 3:57:52UTC\n .replace(/([+-]\\d\\d):?(\\d\\d)/, ' $1$2'); // -04:00 -> -0400\n return new Date(input);\n}\n/**\n * format the diff second to *** time ago, with setting locale\n * @param diff\n * @param localeFunc\n * @returns\n */\nexport function formatDiff(diff, localeFunc) {\n /**\n * if locale is not exist, use defaultLocale.\n * if defaultLocale is not exist, use build-in `en`.\n * be sure of no error when locale is not exist.\n *\n * If `time in`, then 1\n * If `time ago`, then 0\n */\n var agoIn = diff < 0 ? 1 : 0;\n /**\n * Get absolute value of number (|diff| is non-negative) value of x\n * |diff| = diff if diff is positive\n * |diff| = -diff if diff is negative\n * |0| = 0\n */\n diff = Math.abs(diff);\n /**\n * Time in seconds\n */\n var totalSec = diff;\n /**\n * Unit of time\n */\n var idx = 0;\n for (; diff >= SEC_ARRAY[idx] && idx < SEC_ARRAY.length; idx++) {\n diff /= SEC_ARRAY[idx];\n }\n /**\n * Math.floor() is alternative of ~~\n *\n * The differences and bugs:\n * Math.floor(3.7) -> 4 but ~~3.7 -> 3\n * Math.floor(1559125440000.6) -> 1559125440000 but ~~1559125440000.6 -> 52311552\n *\n * More information about the performance of algebraic:\n * https://www.youtube.com/watch?v=65-RbBwZQdU\n */\n diff = Math.floor(diff);\n idx *= 2;\n if (diff > (idx === 0 ? 9 : 1))\n idx += 1;\n return localeFunc(diff, idx, totalSec)[agoIn].replace('%s', diff.toString());\n}\n/**\n * calculate the diff second between date to be formatted an now date.\n * @param date\n * @param relativeDate\n * @returns {number}\n */\nexport function diffSec(date, relativeDate) {\n var relDate = relativeDate ? toDate(relativeDate) : new Date();\n return (+relDate - +toDate(date)) / 1000;\n}\n/**\n * nextInterval: calculate the next interval time.\n * - diff: the diff sec between now and date to be formatted.\n *\n * What's the meaning?\n * diff = 61 then return 59\n * diff = 3601 (an hour + 1 second), then return 3599\n * make the interval with high performance.\n **/\nexport function nextInterval(diff) {\n var rst = 1, i = 0, d = Math.abs(diff);\n for (; diff >= SEC_ARRAY[i] && i < SEC_ARRAY.length; i++) {\n diff /= SEC_ARRAY[i];\n rst *= SEC_ARRAY[i];\n }\n d = d % rst;\n d = d ? rst - d : rst;\n return Math.ceil(d);\n}\n//# sourceMappingURL=date.js.map","import { formatDiff, diffSec } from './utils/date';\nimport { getLocale } from './register';\n/**\n * format a TDate into string\n * @param date\n * @param locale\n * @param opts\n */\nexport var format = function (date, locale, opts) {\n // diff seconds\n var sec = diffSec(date, opts && opts.relativeDate);\n // format it with locale\n return formatDiff(sec, getLocale(locale));\n};\n//# sourceMappingURL=format.js.map","/**\n * Created by hustcc on 18/5/20.\n * Contract: i@hust.cc\n */\nimport en_US from './lang/en_US';\nimport zh_CN from './lang/zh_CN';\nimport { register } from './register';\nregister('en_US', en_US);\nregister('zh_CN', zh_CN);\nexport { format } from './format';\nexport { render, cancel } from './realtime';\nexport { register };\n//# sourceMappingURL=index.js.map"],"names":["getPhrase","icons","iconColours","shareTypeTitlePhraseMap","ShareAvatar","props","title","type","classroomName","additionalTitleText","openClassroomName","getTitle","className","svgName","variant","textVariant","svgWrapperClassName","svgSize","S","titleClassName","hideSubtitle","subtitleText","privacy","studentCount","classroomGroupCount","smartCount","getClassroomSubtitle","includes","getLinkSubtitle","getSubtitle","SharePrivacy","ShareViewHelper","canEmbed","canAddPolicies","getEnabledIntegrations","googleClassroomSetting","msftTeamsSetting","filter","i","enabled","map","id","getShareSettingsInitialValues","share","interactive","preventScrubbing","options","immediateFeedback","getEnabledSettingsField","entityType","showImmediateFeedbackField","showPreventScrubbingField","getSharableEntityType","objectTypeId","getFetchFunctionByType","getAnalyticsEntity","getAnalyticsOptions","IntegrationId","IntegrationHelper","getShareIntegrations","name","settingName","FlowControls","hideBackButton","onClickBack","hideNextButton","onClickNext","hideCreateClassroomButton","onClickCreateClassroom","leftComponent","onClick","text","backButtonText","nextButtonTooltip","disable","placement","spanHack","nextButtonText","disabled","disableNextButton","showSpinner","namespace","ShareViewCount","MasterType","Text","phrase","viewCount","ShareViewedByCount","SvgContainer","shareAccessCount","accessCount","ShareType","totalRecipients","recipients","length","getViewCount","PreviousAssignmentsHeader","show","count","IconButton","onToggle","PreviousAssignmentsListHeader","columnClassNames","value","Row","Col","xs","PreviousAssignmentListItem","shareClassroom","ShareHelper","classrooms","analytics","getItemAnalytics","AppLink","key","shareId","appLink","getItemAppLink","analyticsData","data","analyticsOptions","lg","dateCreated","PreviousAssignmentsList","autoHeight","autoHeightMin","autoHeightMax","scrollHeightMax","autoHide","assignments","idx","PreviousAssignments","noBottomPadding","useAssignSharedData","currentUser","entity","objectId","config","interactiveId","hasPermissions","isLoaded","hasStudentExp","canCreateClassrooms","loaded","LanguageService","SharesAndAssignmentsEmptyState","EmptyState","size","src","ImageUrls","hideAssignButton","icon","assignAppLink","shareLinkAppLink","SharesEmptyState","MAX_SCROLL_HEIGHT","sortByDateCreated","a","b","DateHelper","ViewInSchoolAnalyticsButton","href","target","ShowAssignmentsEmptyState","shareAppLink","ShowAssignmentsView","sharedData","usePermissions","hasShareFlowV2","useSettings","isTertiary","useIsTertiary","previousShares","ShareRequests","sort","previousAssignmentClassroomIds","ArrayHelper","x","hasCompleted","ClassroomRequests","customerId","analyticsUrl","AnalyticsRouteHelper","analyticsWebUrl","canViewSchoolAnalytics","PermissionName","emptyStateType","Popup","showLoadingSpinner","closePopup","AssignAppLinkHelper","application","action","args","params","AssignHelper","reverse","EN_US","ZH_CN","Locales","register","locale","func","SEC_ARRAY","toDate","input","Date","isNaN","test","parseInt","trim","replace","format","date","opts","sec","relativeDate","diff","localeFunc","agoIn","totalSec","Math","abs","floor","toString","unit"],"sourceRoot":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[5434,9649],{96922:(e,t,n)=>{n.r(t),n.d(t,{SharedSeriesView:()=>a});var r=n(32735),i=n(7355);function a(e){return r.createElement(i.SeriesView,{key:e.objectId,id:e.objectId,shareId:e.shareId,hideBreadCrumbs:!0})}},7355:(e,t,n)=>{n.r(t),n.d(t,{SeriesView:()=>de});var r=n(32735),i=n(70680),a=n(81886),o=n(23481),s=n(20354),c=n(65858),l=n(67814),u=n(49935),d=n(37929),p=n(87801),m=n(1860),f=n(3534),v=n(79718),b=n(7733),h=n(51365),g=n(16714),y=n(183),E=n(23788),S=n(21750),k=n(39151),I=n(60011),w=n(31949),P=n(63719),C=n(56520),O=n(91286),j=n(60115),A=n(22902),L=n(79612),x=n(37802),T=n(80783),N=n(76753),V=n(35223),_=n(68140),F=n(14070),B=n(97291),D=n(64364);function H(e){return H="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},H(e)}function R(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,U(r.key),r)}}function U(e){var t=function(e){if("object"!=H(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=H(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==H(t)?t:t+""}function Q(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(Q=function(){return!!e})()}function J(e){return J=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},J(e)}function M(e,t){return M=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},M(e,t)}var W="shared.seriesNotFoundError",G=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=J(t),function(e,t){if(t&&("object"==H(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,Q()?Reflect.construct(t,n||[],J(e).constructor):t.apply(e,n))}(this,t,["Series doesn't exist"])}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&M(e,t)}(t,e),n=t,(r=[{key:"name",get:function(){return"SeriesNotFoundError"}},{key:"heading",get:function(){return o.T.getPhrase(W,"heading")}},{key:"description",get:function(){return o.T.getPhrase(W,"description")}}])&&R(n.prototype,r),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,r}(D.H),Z=n(46390),z=n(10671),K=n(58321),Y=n(7179),$=n(44110),q=n(97816),X=n(10741),ee=n(33192),te=n(22490),ne=n(40254),re=n(82431),ie=n(97958),ae=n(83345),oe=n(99742),se="series.seriesEmptyState";function ce(){return r.createElement(ae.D.Provider,{value:se},r.createElement(ie.u,null,r.createElement(ie.u.Image,{src:oe.W.EmptyStates.Playlists.PLAYLIST_VIDEOS}),r.createElement(ie.u.Heading,null,r.createElement(ae.x,{phrase:"heading"}))))}var le=o.T.encloseNamespace("shared.series"),ue=function(e){return b.o[e.name.charCodeAt(0)%b.o.length]};function de(e){var t,n,o,b=(0,i.I0)(),D=(0,K.U)({locationContext:c.LZ.VideoThumbnail}).commonVideoProps,H=(0,A.T)(),R=H.hasPermissions,U=H.hasLocalPermissions,Q=(0,x.r)(null).hasShareFlowV2,J=(0,Z.G)().isPlugin,M=(0,C.R0)(),W=M.openInCurationStudioLabel,ie=M.isUserCurator,ae=M.getOpenInCurationStudioLink;(0,Y.P)({id:e.id,app:"series",shareId:e.shareId});var oe=s.a.useBasicFetch(k.L.config()),se=s.a.useBasicFetch(w.N.currentUser()),de=s.a.useBasicFetch(e.shareId?I.J.sharedSeries(e.id,e.shareId):I.J.series(e.id)),pe=(0,$.i)();(0,L.M)(N.CG.getSeriesMetadata({content:de.data,phraseContext:{phraseHandler:le,titlePhrase:"pageTitle",descriptionPhrase:"pageDescription"},canonicalLink:ee.f.getCanonicalLink({stripPresentationSlug:!0,customAppLink:re.j.getSeriesAppLink(de.data)}),allowIndexing:ee.f.allowIndexing()}));var me=(0,z._)({location:z.i.VideoItem,shareId:e.shareId}),fe=s.a.useBasicFetch(e.classificationId&&S.x.path(e.classificationId)),ve=T.z.hideAssignButtonOnVideoActions(se.data);function be(e){return!ee.f.isBot()||!e}function he(t){var n;return be(t)?I.J.seriesVideos(e.id,null===(n=se.data)||void 0===n?void 0:n.id,ye,t):null}function ge(e){return s.a.getFetch(b)(he(e))}var ye=!!se.data&&_.d.getOrSetSortType(se.data.id,e.sort,E.D.Series),Ee={classificationId:e.classificationId,mtv:e.moviesAndTv},Se=(0,j.K)(!!se.data&&he,ge),ke=Se.items,Ie=Se.isFetching,we=Se.nextCursor;(0,q.V)(ke),(0,O.v)(de,{notFound:G});var Pe=!R(g.C.StudentExperience)&&U(g.E.UseSeriesActions),Ce=(0,P.h)({name:null===(t=de.data)||void 0===t?void 0:t.name});return r.createElement(h.M.Provider,{value:me},r.createElement("div",{className:"px-3"},oe.data&&de.data?r.createElement(l.p,{heading:de.data.name,banner:de.data.banner,imageCdnUrl:oe.data.imageCdnUrl,actions:function(){var t,n,r;if(J||!Pe)return[];var i=[],a=Q&&!R(g.C.StudentExperience)&&!ve;return a&&i.push({label:le("assign"),appLink:ne.W.existingClassroom({entityType:"series",objectId:e.id}),svgName:V.vn.Classrooms,className:"btn btn-outline-dark me-2",button:!0}),i.push({label:!a&&le("share"),tooltip:a&&le("share"),appLink:de&&{application:B.O.SHARE,action:F.e.Share.SHARE,args:[null===(t=de.data)||void 0===t?void 0:t.id],params:{entityType:"series"}},svgName:Q?V.vn.Link:V.vn.Share,className:"btn btn-outline-dark me-2 align-self-stretch",button:!0}),ie&&i.push({label:W,href:ae(null===(n=de.data)||void 0===n?void 0:n.typeId,null===(r=de.data)||void 0===r?void 0:r.id),openInNewTab:!0}),i}(),actionsDropdownClassName:"btn btn-outline-dark",blockColourClass:ue(de.data)}):r.createElement(l.v,null),r.createElement("div",null,r.createElement("div",{className:(null===(n=de.data)||void 0===n?void 0:n.description)||e.moviesAndTv&&fe.data?"border-bottom py-3 mb-3":"pt-3 mb-2"},e.hideBreadCrumbs?r.createElement(r.Fragment,null):!de.data||e.classificationId&&!fe.data?r.createElement(u.b2,null):r.createElement(u.Oo,{breadcrumbs:Ce}),r.createElement("div",{className:"d-flex align-items-center"},(null===(o=de.data)||void 0===o?void 0:o.description)&&r.createElement("div",{className:"mb-0 ".concat(e.classificationId?"pt-2":"")},r.createElement(d.D,{lines:2},function(){return r.createElement("p",{className:"mb-0 d-inline"},de.data.description)})),de.data&&r.createElement("div",{className:"ms-auto"},r.createElement(v.p,{variant:"outline-dark",type:ye,analyticsOptions:{location:c.LZ.VideoListHeader,entity:c.py.Video,actionType:c.Vw.Sort,workflowPhase:c.eu.Complete},getSortAppLink:function(e){return re.j.getSeriesAppLink(de.data,Object.assign(Object.assign({},Ee),{sort:e}))}})))),ke?0===ke.length?r.createElement(ce,null):r.createElement(r.Fragment,null,r.createElement(f.E4,{videos:ke,getVideoAppLink:function(t,n){var r;if(e.shareId){var i=a.Q.C$.getCurrentAppLink();return Object.assign(Object.assign({},i),{params:{videoId:t.id,contextId:e.id,context:y.Q.Series}})}var o=Object.assign(Object.assign({},n),{context:y.Q.Series,contextId:e.id,moviesAndTv:e.moviesAndTv||void 0,includeContext:null===(r=se.data)||void 0===r?void 0:r.isAuthenticated});return te.W.getAppLink(t,o)},hasPermissions:R,presentationAudiences:e.moviesAndTv?null:pe.data,getPreviewQuestionsAppLink:function(e){return X.j.getPreviewQuestionsAppLink(e)},commonVideoProps:D}),(Ie||we)&&be(we)&&r.createElement(p._,{isFetching:Ie,fetchNext:ge,nextCursor:we})):r.createElement(m.S,null))))}}}]);
|
|
2
|
+
//# sourceMappingURL=5434-a2bee0a420-lite.chunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scripts/5434-a2bee0a420-lite.chunk.js","mappings":"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","sources":["file:///app/packages/projects/lite/src/apps/share/views/shared-series/SharedSeriesView.tsx","file:///app/packages/projects/lite/src/shared/errors/series/series-not-found/SeriesNotFoundError.ts","file:///app/packages/projects/lite/src/shared/views/series/empty-state/SeriesEmptyState.tsx","file:///app/packages/projects/lite/src/shared/views/series/SeriesView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { SeriesView } from 'shared/views/series/SeriesView';\n\nimport { ShareLinkViewProps } from 'apps/share/interfaces/ShareLinkViewProps';\n\n// Handled by SeriesView\n// eslint-disable-next-line rulesdir/require-view-title\nexport function SharedSeriesView(props: ShareLinkViewProps): JSX.Element {\n return (\n <SeriesView\n key={props.objectId}\n id={props.objectId}\n shareId={props.shareId}\n hideBreadCrumbs\n />\n );\n}","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { ErrorPageError } from 'libs/shared/errors/primitives/ErrorPageError';\n\nconst namespace = 'shared.seriesNotFoundError';\n\nexport class SeriesNotFoundError extends ErrorPageError {\n constructor() {\n super('Series doesn\\'t exist');\n }\n\n // @ts-ignore\n public get name(): string {\n return 'SeriesNotFoundError';\n }\n\n // @ts-ignore\n public get heading(): string {\n return LanguageService.getPhrase(namespace, 'heading');\n }\n\n // @ts-ignore\n public get description(): string {\n return LanguageService.getPhrase(namespace, 'description');\n }\n}","import React from 'react';\n\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\nimport { LanguageNamespaceContext, Text } from 'libs/shared/components/text/Text';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\n\nconst namespace = 'series.seriesEmptyState';\n\nexport function SeriesEmptyState(): JSX.Element {\n return (\n <LanguageNamespaceContext.Provider value={namespace}>\n <EmptyState>\n <EmptyState.Image src={ImageUrls.EmptyStates.Playlists.PLAYLIST_VIDEOS} />\n\n <EmptyState.Heading><Text phrase='heading' /></EmptyState.Heading>\n\n </EmptyState>\n </LanguageNamespaceContext.Provider>\n );\n}","import * as React from 'react';\nimport { useDispatch } from 'react-redux';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\n\nimport { EntityType, LocationContext, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\nimport { BannerHeader, PartialBannerHeader } from 'libs/shared/components/banner-header/BannerHeader';\nimport { Breadcrumbs, PartialBreadcrumbs } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { ExpandableText } from 'libs/shared/components/expandable-text/ExpandableText';\nimport { InfiniteScrollFooter } from 'libs/shared/components/infinite-scroll-footer/InfiniteScrollFooter';\nimport { PartialVideoList } from 'libs/shared/components/video-list/partial-loading/PartialVideoList';\nimport { VideoList } from 'libs/shared/components/video-list/VideoList';\nimport { VideoSortSelect } from 'libs/shared/components/video-sort-select/VideoSortSelect';\nimport { BG_COLOUR_CLASS_NAMES } from 'libs/shared/constants/ColourClassNames';\nimport { VideoActionsContext } from 'libs/shared/context/VideoActionsContext';\nimport { LocalPermissionName, PermissionName } from 'libs/shared/enums/PermissionName';\nimport { RelatedVideosContext } from 'libs/shared/enums/RelatedVideosContext';\nimport { VideoSortType } from 'libs/shared/enums/VideoSortType';\nimport { ClassificationRequests } from 'libs/shared/flight-requests/ClassificationRequests';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { SeriesRequests } from 'libs/shared/flight-requests/SeriesRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useBreadcrumbs } from 'libs/shared/hooks/useBreadcrumbs';\nimport { useCurationStudio } from 'libs/shared/hooks/useCurationStudio';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { useInfiniteList } from 'libs/shared/hooks/UseInfiniteList';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { Classification, Config, CurrentUser, Series, Video } from 'libs/shared/interfaces';\nimport { GetVideoAppLinkOptions } from 'libs/shared/interfaces/VideoAppLinkOptions';\nimport { AssignHelper } from 'libs/shared/utils/AssignHelper';\nimport { PageMetadataHelper } from 'libs/shared/utils/PageMetadataHelper';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\nimport { VideoSortHelper } from 'libs/shared/utils/VideoSortHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { SeriesNotFoundError } from 'shared/errors/series/series-not-found/SeriesNotFoundError';\nimport { usePluginHelper } from 'shared/hooks/use-plugin-helper/usePluginHelper';\nimport { useVideoActions, VideoActionsLocation } from 'shared/hooks/use-video-actions/useVideoActions';\nimport { useCommonVideoProps } from 'shared/hooks/useCommonVideoProps';\nimport { useDeepLinks } from 'shared/hooks/useDeepLinks';\nimport { usePresentationAudiences } from 'shared/hooks/usePresentationAudiences';\nimport { useVideoMixin } from 'shared/hooks/useVideoMixin';\nimport { InteractiveHelpers } from 'shared/utils/InteractiveHelper';\nimport { SeoHelper } from 'shared/utils/SeoHelper';\nimport { VideoAppLinkHelper } from 'shared/utils/VideoAppLinkHelper';\n\nimport { AssignAppLinkHelper } from 'apps/assign/utils/AssignAppLinkHelper';\nimport { SeriesAppLinkHelper } from 'apps/series/SeriesAppLinkHelper';\n\nimport { SeriesEmptyState } from './empty-state/SeriesEmptyState';\n\nconst namespace = 'shared.series';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst getFallbackBannerColourClass = (series: Series): string => {\n return BG_COLOUR_CLASS_NAMES[series.name.charCodeAt(0) % BG_COLOUR_CLASS_NAMES.length];\n};\n\ninterface SeriesViewProps {\n id: string;\n classificationId?: string;\n shareId?: string;\n moviesAndTv?: boolean;\n sort?: VideoSortType;\n hideBreadCrumbs?: boolean;\n}\n\nexport function SeriesView(props: SeriesViewProps): JSX.Element {\n const dispatch = useDispatch();\n const { commonVideoProps } = useCommonVideoProps({ locationContext: LocationContext.VideoThumbnail });\n const { hasPermissions, hasLocalPermissions } = usePermissions();\n const { hasShareFlowV2 } = useSettings(null);\n const { isPlugin } = usePluginHelper();\n const { openInCurationStudioLabel, isUserCurator, getOpenInCurationStudioLink } = useCurationStudio();\n\n useDeepLinks({ id: props.id, app: 'series', shareId: props.shareId });\n\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n\n const series = Flight.useBasicFetch<Series>(props.shareId\n ? SeriesRequests.sharedSeries(props.id, props.shareId)\n : SeriesRequests.series(props.id));\n\n const audiences = usePresentationAudiences();\n\n useSetPageMetadata(PageMetadataHelper.getSeriesMetadata({\n content: series.data,\n phraseContext: {\n phraseHandler: getPhrase,\n titlePhrase: 'pageTitle',\n descriptionPhrase: 'pageDescription'\n },\n canonicalLink: SeoHelper.getCanonicalLink({\n stripPresentationSlug: true,\n customAppLink: SeriesAppLinkHelper.getSeriesAppLink(series.data)\n }),\n allowIndexing: SeoHelper.allowIndexing()\n }));\n\n const videoActions = useVideoActions({ location: VideoActionsLocation.VideoItem, shareId: props.shareId });\n\n const topicPath = Flight.useBasicFetch<Classification[]>(\n props.classificationId &&\n ClassificationRequests.path(props.classificationId)\n );\n\n const hideAssignButton = AssignHelper.hideAssignButtonOnVideoActions(currentUser.data);\n\n /**\n * Infinite scrolling will be restricted for public browsing as a crawler/bot.\n * The rationale behind this is that we don't want to preload or allow crawlers\n * to enumerate the entirety of our series collections. Some series have > 10k videos\n * and they don't all need to be indexed (i.e. old news/current affair series).\n * \n * Public browsing by regular users will continue to paginate, along with authenticated\n * users. - Mike\n */\n function shouldFetch(cursor?: string) {\n if (SeoHelper.isBot() && cursor)\n return false;\n\n return true;\n }\n\n function getVideosRequest(cursor?: string) {\n if (!shouldFetch(cursor))\n return null;\n\n return SeriesRequests.seriesVideos(props.id, currentUser.data?.id, sort, cursor);\n }\n\n function fetchNext(cursor?: string) {\n return Flight.getFetch(dispatch)(getVideosRequest(cursor));\n }\n\n function getBannerActions(): ActionOptions[] {\n if (isPlugin || !showHeaderActions) {\n return [];\n }\n\n const actions: ActionOptions[] = [];\n const hasAssignActionButton = hasShareFlowV2\n && !hasPermissions(PermissionName.StudentExperience)\n && !hideAssignButton;\n\n if (hasAssignActionButton) {\n actions.push({\n label: getPhrase('assign'),\n appLink: AssignAppLinkHelper.existingClassroom({\n entityType: 'series',\n objectId: props.id\n }),\n svgName: cvSvgLibrary.Classrooms,\n className: 'btn btn-outline-dark me-2',\n button: true\n });\n }\n\n actions.push({\n label: !hasAssignActionButton && getPhrase('share'),\n tooltip: hasAssignActionButton && getPhrase('share'),\n appLink: series && {\n application: AppChannels.SHARE,\n action: Actions.Share.SHARE,\n args: [series.data?.id],\n params: { entityType: 'series' }\n },\n svgName: hasShareFlowV2 ? cvSvgLibrary.Link : cvSvgLibrary.Share,\n className: 'btn btn-outline-dark me-2 align-self-stretch',\n button: true\n });\n\n if (isUserCurator)\n actions.push({\n label: openInCurationStudioLabel,\n href: getOpenInCurationStudioLink(series.data?.typeId, series.data?.id),\n openInNewTab: true\n });\n\n return actions;\n }\n\n function getVideoAppLink(video: Video, opts: GetVideoAppLinkOptions): Core.AppLink {\n if (props.shareId) {\n const currentAppLink = Core.AppLinkHelper.getCurrentAppLink();\n return {\n ...currentAppLink,\n params: {\n videoId: video.id,\n contextId: props.id,\n context: RelatedVideosContext.Series\n }\n };\n }\n\n const options: GetVideoAppLinkOptions = {\n ...opts,\n context: RelatedVideosContext.Series,\n contextId: props.id,\n moviesAndTv: props.moviesAndTv || undefined,\n includeContext: currentUser.data?.isAuthenticated\n };\n\n return VideoAppLinkHelper.getAppLink(video, options);\n }\n\n // Must be before the video fetching, as the getVideosRequest has a closure over the sort\n const sort = !!currentUser.data && VideoSortHelper.getOrSetSortType(\n currentUser.data.id,\n props.sort,\n VideoSortType.Series\n );\n\n const seriesParams = {\n classificationId: props.classificationId,\n mtv: props.moviesAndTv\n };\n\n const {\n items: videos,\n isFetching,\n nextCursor\n } = useInfiniteList<Video>(currentUser.data ? getVideosRequest : false, fetchNext);\n\n useVideoMixin(videos);\n\n useHandleObjectError(series, {\n notFound: SeriesNotFoundError\n });\n\n const showHeaderActions = !hasPermissions(PermissionName.StudentExperience) &&\n hasLocalPermissions(LocalPermissionName.UseSeriesActions);\n\n const breadcrumbs = useBreadcrumbs({ name: series.data?.name });\n\n return (\n <VideoActionsContext.Provider value={videoActions}>\n <div className='px-3'>\n {config.data && series.data\n ? (\n <BannerHeader\n heading={series.data.name}\n banner={series.data.banner}\n imageCdnUrl={config.data.imageCdnUrl}\n actions={getBannerActions()}\n actionsDropdownClassName='btn btn-outline-dark'\n blockColourClass={getFallbackBannerColourClass(series.data)}\n />\n ) : <PartialBannerHeader />\n }\n \n <div>\n <div className={series.data?.description || (props.moviesAndTv && topicPath.data) ? 'border-bottom py-3 mb-3' : 'pt-3 mb-2'}>\n {(() => {\n if (props.hideBreadCrumbs)\n return <></>;\n\n if (!series.data || (props.classificationId && !topicPath.data))\n return <PartialBreadcrumbs />;\n\n return (\n <Breadcrumbs breadcrumbs={breadcrumbs} />\n );\n })()}\n\n <div className='d-flex align-items-center'>\n {series.data?.description && (\n <div className={`mb-0 ${props.classificationId ? 'pt-2' : ''}`}>\n <ExpandableText lines={2}>\n {() => <p className='mb-0 d-inline'>{series.data.description}</p>}\n </ExpandableText>\n </div>\n )}\n\n {series.data && (\n <div className='ms-auto'>\n <VideoSortSelect\n variant='outline-dark'\n type={sort}\n analyticsOptions={{\n location: LocationContext.VideoListHeader,\n entity: EntityType.Video,\n actionType: UserAction.Sort,\n workflowPhase: WorkflowPhase.Complete\n }}\n getSortAppLink={sort => {\n return SeriesAppLinkHelper.getSeriesAppLink(series.data, { ...seriesParams, sort });\n }}\n />\n </div>\n )}\n </div>\n </div>\n\n {(() => {\n if (!videos)\n return <PartialVideoList />;\n\n if (videos.length === 0)\n return <SeriesEmptyState />;\n\n return (\n <>\n <VideoList\n videos={videos}\n getVideoAppLink={getVideoAppLink}\n hasPermissions={hasPermissions}\n presentationAudiences={props.moviesAndTv ? null : audiences.data}\n getPreviewQuestionsAppLink={interactive => InteractiveHelpers.getPreviewQuestionsAppLink(interactive)}\n commonVideoProps={commonVideoProps}\n />\n {(isFetching || nextCursor) && shouldFetch(nextCursor) && (\n <InfiniteScrollFooter\n isFetching={isFetching}\n fetchNext={fetchNext}\n nextCursor={nextCursor}\n />\n )}\n </>\n );\n })()}\n </div>\n </div>\n </VideoActionsContext.Provider>\n );\n}\n"],"names":["SharedSeriesView","props","SeriesView","key","objectId","id","shareId","hideBreadCrumbs","namespace","SeriesNotFoundError","LanguageService","ErrorPageError","SeriesEmptyState","value","EmptyState","src","ImageUrls","Text","phrase","getPhrase","getFallbackBannerColourClass","series","name","charCodeAt","dispatch","commonVideoProps","useCommonVideoProps","locationContext","usePermissions","hasPermissions","hasLocalPermissions","hasShareFlowV2","useSettings","isPlugin","usePluginHelper","useCurationStudio","openInCurationStudioLabel","isUserCurator","getOpenInCurationStudioLink","useDeepLinks","app","config","ConfigRequests","currentUser","UserRequests","SeriesRequests","audiences","usePresentationAudiences","useSetPageMetadata","PageMetadataHelper","content","data","phraseContext","phraseHandler","titlePhrase","descriptionPhrase","canonicalLink","SeoHelper","stripPresentationSlug","customAppLink","SeriesAppLinkHelper","allowIndexing","videoActions","useVideoActions","location","topicPath","classificationId","ClassificationRequests","hideAssignButton","AssignHelper","shouldFetch","cursor","getVideosRequest","sort","fetchNext","VideoSortHelper","VideoSortType","seriesParams","mtv","moviesAndTv","videos","items","isFetching","nextCursor","useVideoMixin","notFound","showHeaderActions","PermissionName","breadcrumbs","useBreadcrumbs","VideoActionsContext","className","BannerHeader","heading","banner","imageCdnUrl","actions","hasAssignActionButton","push","label","appLink","AssignAppLinkHelper","entityType","svgName","button","tooltip","application","action","args","params","href","typeId","openInNewTab","getBannerActions","actionsDropdownClassName","blockColourClass","description","Breadcrumbs","ExpandableText","lines","VideoSortSelect","variant","type","analyticsOptions","entity","actionType","workflowPhase","getSortAppLink","length","VideoList","getVideoAppLink","video","opts","currentAppLink","videoId","contextId","context","RelatedVideosContext","options","undefined","includeContext","isAuthenticated","VideoAppLinkHelper","presentationAudiences","getPreviewQuestionsAppLink","interactive","InteractiveHelper","InfiniteScrollFooter","PartialVideoList"],"sourceRoot":""}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/*! For license information please see 6741-ae590891ba-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(62333),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-ae590891ba-lite.chunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scripts/6741-ae590891ba-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":""}
|