@clickview/lite 0.82.2 → 0.82.3

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@clickview/lite",
3
- "version": "0.82.2",
3
+ "version": "0.82.3",
4
4
  "description": "ClickView Lite",
5
5
  "main": "dist/scripts/bundle.js",
6
6
  "types": "dist/projects/lite/src/index.d.ts",
@@ -1,2 +0,0 @@
1
- "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[7401],{1619:(e,t,a)=>{a.d(t,{e:()=>h});var n=a(32735),r=a(23481),i=a(31453),s=a(12528),o=a(83914),l=a(35223),c=a(33518),u=a(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 p(e,t,a){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 a=t.call(e,"string");if("object"!=m(a))return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==m(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}var d=r.T.encloseNamespace("sharev2.shareAvatar"),v=p(p(p(p(p({},u.y.Open,l.vn.Classrooms),u.y.Link,l.vn.Link),u.y.Classroom,l.vn.Classrooms),u.y.Live,l.vn.Play),u.y.LegacyDirect,l.vn.Share),y=p(p(p(p(p({},u.y.Open,"blue"),u.y.Link,"black"),u.y.Classroom,"purple"),u.y.Live,"purple"),u.y.LegacyDirect,"indigo"),f=p(p(p(p(p({},u.y.Open,"openShareType"),u.y.Link,"linkShareType"),u.y.Classroom,"classroomShareType"),u.y.Live,"liveShareType"),u.y.LegacyDirect,"legacyDirectShareType");function h(e){var t,a,r=function(e){var t=e.type,a=e.classroomName,n=e.additionalTitleText,r=e.openClassroomName;if(t===u.y.Open&&r)return r;if(t===u.y.Classroom&&a)return a;var i=d(f[t]);return n&&(i+=" "+n),i}(e);return n.createElement("div",{className:(0,i.A)("d-flex align-items-center gap-2",e.className)},n.createElement("div",null,n.createElement(s.f,{svgName:v[e.type],variant:y[e.type],textVariant:"white",svgWrapperClassName:"p-1",svgSize:null!==(t=e.svgSize)&&void 0!==t?t:o.S.Standard})),n.createElement("div",{className:"d-flex flex-column"},n.createElement("p",{className:(0,i.A)("m-0",e.titleClassName),title:r},r),!e.hideSubtitle&&n.createElement("span",{className:"text-secondary"},null!==(a=e.subtitleText)&&void 0!==a?a:function(e){var t=e.type,a=e.privacy,n=e.studentCount,r=void 0===n?0:n,i=e.classroomGroupCount,s=void 0===i?0:i;switch(t){case u.y.Classroom:return function(e,t){return e&&t?"".concat(d("classroomGroupCount",{smartCount:e}),", ").concat(d("studentSubTitle",{smartCount:t})):e?d("groupSubTitle",{smartCount:e}):t?d("studentSubTitle",{smartCount:t}):d("allStudentsSubTitle")}(s,r);case u.y.Open:return d("openShareTypeSubTitle");case u.y.Link:return function(e){return[c.e.JustMySchool,c.e.Protected].includes(e)?d("respectRatingsSubTitle"):e===c.e.JustMySchoolOverrideRestriction?d("anyoneInSchoolSubTitle"):e===c.e.ProtectedOverrideRestriction?d("anyoneSignedInSubTitle"):e===c.e.Public?d("anyoneWithLinkSubTitle"):e===c.e.PinCode?d("anyoneWithPinSubTitle"):void 0}(a);case u.y.Live:return d("liveShareTypeSubTitle");case u.y.LegacyDirect:return d("legacyDirectTypeSubTitle");default:return d("publicShareTypeSubTitle")}}(e))))}},33518:(e,t,a)=>{var n;a.d(t,{e:()=>n}),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"}(n||(n={}))},8233:(e,t,a)=>{a.d(t,{R:()=>d});var n=a(23481),r=a(110),i=a(33518),s=a(4594),o=a(49080),l=a(26361),c=a(35223),u=a(31908);function m(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=Array(t);a<t;a++)n[a]=e[a];return n}var p=n.T.encloseNamespace("sharev2.utils"),d={getPrivateIconAndText:function(e){var t=e.entityTypeId,a=e.privacy,n=e.hasStudentExp,r=e.entity,o=e.yearGroups;if(t===s.E.Topic||t===s.E.Series)return{icon:c.vn.VisibleOn,text:p(n?"justMySchoolTeachers":"justMySchoolDescription")};if(!Array.isArray(a))switch(a){case i.e.Public:return{icon:c.vn.VisibleOn,text:p("publicDescription")};case i.e.ProtectedOverrideRestriction:return{icon:c.vn.VisibleOn,text:p("clickViewOnly")};case i.e.Protected:return{icon:c.vn.Lock,text:d.getRespectRatingText(r,o,n)};case i.e.JustMySchoolOverrideRestriction:return{icon:c.vn.Lock,text:p(n?"justMySchoolTeachers":"justMySchoolDescription")};case i.e.JustMySchool:return{icon:c.vn.Lock,text:d.getRespectRatingText(r,o,n)};case i.e.PinCode:return{icon:c.vn.Lock,text:p("pinDescription")};case i.e.PasswordProtected:return{icon:c.vn.Lock,text:p("password")};default:return{}}},getIconAndText:function(e){var t=e.linkExpireDate,a=e.isPasswordProtected,n=e.status;if(!t&&!a)return d.getPrivateIconAndText(e);if(!t)return{icon:c.vn.Lock,text:p("password")};var i=r.O.isToday(t),s=r.O.diffBetween(t,new Date,"day");if(!a){var l=i?p("expiryToday"):p("expiry",{days:s});return n===o.F.Expired&&(l=p("expired")),{icon:c.vn.Timer,text:l}}var u=i?p("passwordExpiryToday"):p("passwordExpiry",{days:s});return n===o.F.Expired&&(u=p("passwordExpired")),{icon:c.vn.Lock,text:u}},getRespectRatingText:function(e,t,a){var n;if(!e||!t)return null;if(a)return p("justMySchoolTeachers");if(!u.M.isVideoType(e))return p("collectionRating");var r=l.l.getWeightedRestriction(null===(n=e._restrictions)||void 0===n?void 0:n.value);if(r&&!r.yearGroup)return p("onlyAdmins");var i,s,o,c=u.M.getRating(e),d=function(e,t){var a="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!a){if(Array.isArray(e)||(a=function(e,t){if(e){if("string"==typeof e)return m(e,t);var a={}.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?m(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){a&&(e=a);var n=0,r=function(){};return{s:r,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,s=!0,o=!1;return{s:function(){a=a.call(e)},n:function(){var e=a.next();return s=e.done,e},e:function(e){o=!0,i=e},f:function(){try{s||null==a.return||a.return()}finally{if(o)throw i}}}}(t);try{for(d.s();!(o=d.n()).done;){var v=o.value;(!i||v.value>i.value)&&(i=v),r&&v.value<=r.yearGroup||c&&v.rating.value<c.value||(!s||v.value<s.value)&&(s=v)}}catch(e){d.e(e)}finally{d.f()}return s?1===t.length?p("clickViewOnly"):s.value===i.value?p("maxYearGroup",{yearGroup:i.name}):p("yearGroupRange",{yearGroup:s.name}):p("onlyStaff")},getShareLinkAccessType:function(e){return e.isTvContent||e.isClickViewContent?"protected":e.canManageAccess?"owner":"private"}}},38502:(e,t,a)=>{a.d(t,{r:()=>m});var n=a(32735),r=a(49985),i=a(15611),s=a(18559),o=a(11607),l=a(83914),c=a(22771);function u(e){return n.createElement(n.Fragment,null,!!e.tab.svgName&&n.createElement("div",{className:e.tab.name?"pe-1":""},n.createElement(l.x,{svgName:e.tab.svgName})),e.tab.name,"number"==typeof e.tab.count&&n.createElement("div",{className:"ps-2"},n.createElement(s.C,{type:s.g.Count,data:e.tab.count})))}function m(e){var t;return n.createElement("nav",{className:null!==(t=e.className)&&void 0!==t?t:"",ref:e.containerRef},n.createElement("ul",{className:"\n list-unstyled d-inline-block m-0 ".concat(c.Z.pillTabSelector,"\n ").concat(e.borderRadius?c.Z.radiusSmall:"","\n ").concat(e.listClassName,"\n ")},e.tabs.map(function(e,t){return n.createElement("li",{className:"\n p-0 ".concat(c.Z.tab," ").concat(e.active?"btn btn-dark":"btn btn-outline-dark","\n ").concat(e.name?c.Z.minWidth:""," ").concat(e.className,"\n "),key:t},e.appLink?n.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(c.Z.tabLink,"\n ")},n.createElement(u,{tab:e})):n.createElement(o.L,{className:"\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ".concat(c.Z.tabLink,"\n "),onClick:function(){return function(e){!e.active&&e.onSelect&&(e.onSelect(),e.analyticsData&&e.analyticsOptions&&r.k.logUserAction(e.analyticsData,e.analyticsOptions))}(e)}},n.createElement(u,{tab:e})))})))}m.defaultProps={borderRadius:"lg"}},93322:(e,t,a)=>{a.d(t,{F:()=>i});var n=a(32735),r=a(13126);function i(){n.useEffect(function(){return r.e.lockContentWidth(),function(){return r.e.unlockContentWidth()}},[])}},99746:(e,t,a)=>{a.d(t,{p:()=>v});var n=a(32735),r=a(57900),i=a(97395),s=a(2948),o=a(91693),l=a(83345),c=a(4594),u=a(35223),m=a(86702);function p(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=Array(t);a<t;a++)n[a]=e[a];return n}var d="lite.insightsAdminAlert";function v(e){var t,a,v=(t=(0,s.D)(m.y.INSIGHTS_ADMIN_ALERT,!0,{storage:r.Z1.LocalStorage}),a=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var n,r,i,s,o=[],l=!0,c=!1;try{if(i=(a=a.call(e)).next,0===t){if(Object(a)!==a)return;l=!1}else for(;!(l=(n=i.call(a)).done)&&(o.push(n.value),o.length!==t);l=!0);}catch(e){c=!0,r=e}finally{try{if(!l&&null!=a.return&&(s=a.return(),Object(s)!==s))return}finally{if(c)throw r}}return o}}(t,a)||function(e,t){if(e){if("string"==typeof e)return p(e,t);var a={}.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?p(e,t):void 0}}(t,a)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),y=v[0],f=v[1];return e.hasAnalytics&&y?n.createElement("div",{role:"alert",className:"d-flex justify-content-between align-items-center bg-light-blue rounded p-2 mb-4"},n.createElement("div",null,n.createElement(l.x,{namespace:d,phrase:"adminAlert"}),n.createElement("a",{className:"text-info",href:function(){if(!e.video)return e.analyticsUrl;var t="";return e.video.typeId===c.E.Interactive&&(t="/interactives/".concat(e.video.id,"/views")),e.video.typeId===c.E.Video&&(t="/videos/".concat(e.video.id,"/views")),e.video.typeId===c.E.Clip&&(t="/clips/".concat(e.video.id,"/views")),i._.safeUrlConcat(e.analyticsUrl,t)}(),target:"_blank"},n.createElement(l.x,{namespace:d,phrase:"analytics"})),"."),n.createElement(o.h,{svgName:u.vn.Close,className:"text-blue",onClick:function(){f(!1)}})):n.createElement(n.Fragment,null)}},74049:(e,t,a)=>{a.d(t,{j:()=>Q});var n=a(32735),r=a(23481),i=a(57900),s=a(2948),o=a(31453),l=a(2510),c=a(76306),u=a(49935),m=a(91693),p=a(38502),d=a(83914),v=a(83345),y=a(83523),f=a(36532),h=a(38143),E=a(4594),S=a(16714),g=a(22902),b=a(70227),N=a(35223),O=a(14070),A=a(97291),T=a(86702),k=a(46390),x=a(99998),C=a(86099),L=a(22490),R=a(99746),I=a(1619),M=a(41889),w=a(21789),_=a(8233);const P={shareAvatar:"dW1Zw",shareAvatarTitle:"WfiUS"};function D(e){var t;if(!e.sharedObject)return n.createElement(n.Fragment,null);var a=w.x.hasShareExpired(e.share),r=_.R.getPrivateIconAndText({privacy:e.share.privacy,entityTypeId:e.sharedObject.typeId,hasStudentExp:!1,entity:e.entity,yearGroups:e.yearGroups}).text;return n.createElement("div",{className:(0,o.A)("d-flex flex-row align-items-center gap-1",e.className)},n.createElement(M.B,{share:e.share,markingRequired:e.markingRequired,className:"cursor-default",hasData:e.hasData}),n.createElement(I.e,{className:(0,o.A)("ps-2 me-1",P.shareAvatar),titleClassName:(0,o.A)("text-truncate",P.shareAvatarTitle),privacy:e.share.privacy,type:e.share.type,classroomName:e.classroomName,openClassroomName:null===(t=e.share.options)||void 0===t?void 0:t.openClassroomName,hideSubtitle:!0,svgSize:d.S.Small}),!a&&!!r&&n.createElement("div",{className:"d-flex align-items-center gap-2"},n.createElement("span",{className:"d-inline-block"},"•"),n.createElement("p",{className:"mb-0"},r)))}var j=a(69003),U=a(15611),G="signUp.hardGateBanner";function V(){return n.createElement("div",{role:"alert",className:"bg-light-indigo text-indigo rounded p-3 mb-4"},n.createElement(v.x,{namespace:G,phrase:"hardGate"})," ",n.createElement(U.F,{appLink:{application:A.O.SIGN_UP,action:O.e.SignUp.INVITE_COLLEAGUE},className:"indigo-link text-underline d-inline"},n.createElement(v.x,{namespace:G,phrase:"hardGateCta"})))}var H=a(12909);const W={withDivider:"ZSzT3"};function F(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var n,r,i,s,o=[],l=!0,c=!1;try{if(i=(a=a.call(e)).next,0===t){if(Object(a)!==a)return;l=!1}else for(;!(l=(n=i.call(a)).done)&&(o.push(n.value),o.length!==t);l=!0);}catch(e){c=!0,r=e}finally{try{if(!l&&null!=a.return&&(s=a.return(),Object(s)!==s))return}finally{if(c)throw r}}return o}}(e,t)||Y(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 Y(e,t){if(e){if("string"==typeof e)return Z(e,t);var a={}.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?Z(e,t):void 0}}function Z(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=Array(t);a<t;a++)n[a]=e[a];return n}var q="insights.header",J=r.T.encloseNamespace(q);function z(e){return n.createElement("div",null,n.createElement("label",{htmlFor:"anonymiseNames",className:"mb-0 pe-3"},n.createElement(v.x,{namespace:q,phrase:"anonymiseNames"})),n.createElement(y.Z,{id:"anonymiseNames",on:e.anonymiseUsers,onClick:e.toggleAnonymiseUsers}))}function B(){var e=F((0,s.D)(T.y.HIDE_STAFF_RESULTS,!1),2),t=e[0],a=e[1];return n.createElement("span",{onClick:function(e){e.stopPropagation(),a(!t)}},n.createElement(d.x,{svgName:N.vn.Staff,className:"d-inline-block svg-container me-2 align-middle"}),n.createElement("span",{className:"d-inline-block align-middle"},n.createElement("span",{className:"me-3"},J("hideStaff")),n.createElement(y.Z,{on:t,onClick:function(){}})))}function $(e){return n.createElement(f.u,{id:"audienceFilter",title:J("demoOnly"),spanHack:e.isDemo},n.createElement("div",{className:e.isDemo?"pointer-events-none":""},e.children))}function Q(e){var t,a,r=F((0,s.D)(h.g.ANONYMISE_USERS,!1,{storage:i.Z1.LocalStorage}),2),y=r[0],T=r[1],I=(0,k.G)().isPlugin,M=(0,g.T)().hasPermissions,w=(0,x.R)().experience,_=M(S.C.ViewAnalyticsProduct)&&M(S.C.ViewCustomerAnalytics),P=(0,C.Zm)(e.share),U=(0,C.wY)(e.share,"insights");return n.createElement("div",null,"soft-gate"===e.viewInsightsGatedPermission?n.createElement(H.H,null):n.createElement(R.p,{analyticsUrl:e.analyticsWebUrl,hasAnalytics:e.hasAnalytics,video:e.video}),"hard-gate"===e.viewInsightsGatedPermission?n.createElement(V,null):n.createElement(R.p,{analyticsUrl:e.analyticsWebUrl,hasAnalytics:e.hasAnalytics,video:e.video}),n.createElement("section",{className:"mb-4"},n.createElement("div",{className:"d-flex justify-content-between mb-3"},n.createElement("div",{className:"me-2"},e.video&&n.createElement(n.Fragment,null,n.createElement("h1",{className:"mb-0 d-inline me-2"},e.video.name),!e.isDemo&&n.createElement(f.u,{title:J(e.video.typeId===E.E.Interactive?"viewInteractive":e.video.typeId===E.E.Clip?"viewClip":"viewVideo"),type:"text",spanHack:!0,spanHackClassName:"d-inline-block align-text-bottom"},n.createElement(m.h,{svgName:N.vn.NewWindow,appLink:L.W.getAppLink(e.video),svgSize:d.S.Large,className:"d-inline-block",customSize:!0}))),!e.video&&n.createElement("h1",{className:"partial-loading-background",style:{width:"20rem"}}," ")),n.createElement("div",{className:"d-flex gap-2"},!I&&P&&n.createElement($,{isDemo:e.isDemo},n.createElement(m.h,{svgName:N.vn.Share,className:"btn btn-outline-dark",appLink:P},n.createElement(v.x,{namespace:q,phrase:e.share.type===l.y.Link?"share":"shareOptions"}))),!I&&U&&(null===(t=e.video)||void 0===t?void 0:t.typeId)===E.E.Interactive&&n.createElement($,{isDemo:e.isDemo},n.createElement(m.h,{svgName:N.vn.Edit,className:"btn btn-outline-dark",appLink:U},n.createElement(v.x,{namespace:q,phrase:"editSettings"}))),n.createElement($,{isDemo:e.isDemo},n.createElement(c.m,{dropdownToggleClassName:"btn btn-outline-dark",actions:function(){var t,a,r=[];return(null===(t=e.video)||void 0===t?void 0:t.typeId)===E.E.Interactive&&(r.push({label:function(){return n.createElement(B,null)}}),r.push({label:J("generateReport"),svgName:N.vn.Print,appLink:{application:A.O.MY_SHARES,action:O.e.MyShares.INTERACTIVE_GENERATE_REPORT,args:[e.video.id]}})),_&&r.push({label:J("viewInAnalytics"),svgName:N.vn.Analytics,href:b.c.getObjectUrl(e.analyticsWebUrl,e.video,!0),openInNewTab:!0}),[].concat(r,function(e){if(Array.isArray(e))return Z(e)}(a=(0,j.sD)({share:e.share,sharedObject:e.video,isPlugin:I,hideShareOptionsActions:!0}))||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(a)||Y(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.")}())}()})))),n.createElement("div",{className:"d-flex justify-content-between mb-3"},e.video?n.createElement(u.Oo,{breadcrumbs:function(){if(!e.video||!e.share)return[];var t,a=[(t=e.share.type===l.y.Classroom?{name:J("classrooms"),appLink:{application:A.O.CLASSROOMS,action:O.e.Classrooms.HOME}}:e.share.type===l.y.Open?{name:J("openClassrooms"),appLink:{application:A.O.CLASSROOMS,action:O.e.Classrooms.OPEN_CLASSROOMS}}:{name:J("shares"),appLink:{application:A.O.MY_SHARES,action:O.e.MyShares.HOME}},"minimal"===w&&(t=Object.assign(Object.assign({},t),{appLink:{application:A.O.CLASSROOMS,action:O.e.Classrooms.HOME}})),t)];return e.share.type===l.y.Classroom&&e.classroom&&a.push({name:e.classroom.name,appLink:{application:A.O.CLASSROOMS,action:O.e.Classrooms.CLASSROOM_HOME,args:[e.classroom.id]}}),a.push({name:e.video.name,active:!0}),a}()}):n.createElement(u.b2,null)),n.createElement("div",{className:(0,o.A)("d-flex flex-row align-items-center mb-3",W.withDivider)},n.createElement(D,{sharedObject:e.video,share:e.share,entity:e.video,yearGroups:e.yearGroups,classroomName:null===(a=e.classroom)||void 0===a?void 0:a.name,markingRequired:e.markingRequired,hasData:e.hasData})),n.createElement("div",{className:"d-flex align-items-center justify-content-between mb-4"},"hard-gate"!==e.viewInsightsGatedPermission&&n.createElement(p.r,{tabs:e.tabs}),n.createElement("div",null,e.hasData&&n.createElement(z,{anonymiseUsers:y,toggleAnonymiseUsers:function(){return T(!y)}})))))}},10447:(e,t,a)=>{a.d(t,{$6:()=>c,aq:()=>m,kj:()=>u});var n=a(23481),r=a(2510),i=a(14070),s=a(97291),o=a(86099),l=n.T.encloseNamespace("shared.insightsUtils");function c(e,t,a){return[{name:l("insights"),active:"insights"===t,appLink:(0,o.pY)(e,a)},{name:l("heatmap"),active:"heatmap"===t,appLink:(0,o.Rv)(e,a)}]}function u(e,t){return[{name:l("insights"),active:"insights"===t,appLink:(0,o.pY)(e)},{name:l("results"),active:"results"===t,appLink:(0,o.rq)(e)},{name:l("questions"),active:"questions"===t,appLink:(0,o.Sj)(e)},{name:l("heatmap"),active:"heatmap"===t,appLink:(0,o.Rv)(e)}]}function m(e,t,a,n){return n===r.y.Open?[{name:l("insights"),active:"insights"===t,appLink:{application:s.O.MY_SHARES,action:i.e.MyShares.INTERACTIVE_OVERVIEW_OPEN_CLASSROOM_DEMO,args:[e],params:a}},{name:l("results"),active:"results"===t,appLink:{application:s.O.MY_SHARES,action:i.e.MyShares.INTERACTIVE_STUDENTS_OPEN_CLASSROOM_DEMO,args:[e],params:a}},{name:l("questions"),active:"questions"===t,appLink:{application:s.O.MY_SHARES,action:i.e.MyShares.INTERACTIVE_QUESTIONS_OPEN_CLASSROOM_DEMO,args:[e],params:a}},{name:l("heatmap"),active:"heatmap"===t,appLink:{application:s.O.MY_SHARES,action:i.e.MyShares.INTERACTIVE_HEATMAP_OPEN_CLASSROOM_DEMO,args:[e],params:a}}]:[{name:l("insights"),active:"insights"===t,appLink:{application:s.O.MY_SHARES,action:i.e.MyShares.INTERACTIVE_OVERVIEW_DEMO,args:[e],params:a}},{name:l("results"),active:"results"===t,appLink:{application:s.O.MY_SHARES,action:i.e.MyShares.INTERACTIVE_STUDENTS_DEMO,args:[e],params:a}},{name:l("questions"),active:"questions"===t,appLink:{application:s.O.MY_SHARES,action:i.e.MyShares.INTERACTIVE_QUESTIONS_DEMO,args:[e],params:a}},{name:l("heatmap"),active:"heatmap"===t,appLink:{application:s.O.MY_SHARES,action:i.e.MyShares.INTERACTIVE_HEATMAP_DEMO,args:[e],params:a}}]}},12909:(e,t,a)=>{a.d(t,{H:()=>m});var n=a(32735),r=a(15611),i=a(83914),s=a(83345),o=a(35223),l=a(14070),c=a(97291),u="signUp.softGateBanner";function m(){return n.createElement("div",{role:"alert",className:"bg-light-indigo text-indigo rounded p-2 mb-4 d-flex align-items-center"},n.createElement(i.x,{svgName:o.vn.StarOutline,size:i.S.Large}),n.createElement(s.x,{namespace:u,phrase:"softGate"})," ",n.createElement(r.F,{appLink:{application:c.O.SIGN_UP,action:l.e.SignUp.PREMIUM_FEATURES},className:"indigo-link text-indigo text-underline d-inline"},n.createElement(s.x,{namespace:u,phrase:"learnMore"})))}},22771:(e,t,a)=>{a.d(t,{Z:()=>n});const n={pillTabSelector:"Hdi6o",tab:"RvNxr",minWidth:"GHSz9",radiusSmall:"VhJJa",tabLink:"WFyvo"}}}]);
2
- //# sourceMappingURL=7401-98135f09e8-lite.chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scripts/7401-98135f09e8-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/ShareLinkHelper.ts","file:///app/packages/libs/shared/src/components/pill-tab-selector/PillTabSelector.tsx","file:///app/packages/libs/shared/src/hooks/useLockContentWidth.ts","file:///app/packages/projects/lite/src/apps/my-shares/components/insights-admin-alert/InsightsAdminAlert.tsx","file:///app/packages/projects/lite/src/apps/my-shares/components/share-info/share-info.scss","file:///app/packages/projects/lite/src/apps/my-shares/components/share-info/ShareInfo.tsx","file:///app/packages/projects/lite/src/apps/sign-up/components/hard-gate-banner/HardGateBanner.tsx","file:///app/packages/projects/lite/src/apps/my-shares/components/insights-header/insights-header.scss","file:///app/packages/projects/lite/src/apps/my-shares/components/insights-header/InsightsHeader.tsx","file:///app/packages/projects/lite/src/apps/my-shares/utils/InsightsAppLinkUtils.ts","file:///app/packages/projects/lite/src/apps/sign-up/components/soft-gate-banner/SoftGateBanner.tsx","file:///app/packages/libs/shared/src/components/pill-tab-selector/pill-tab-selector.scss"],"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 { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { SharePrivacy } from 'libs/shared/apps/share-v2/enums/SharePrivacy';\nimport type { SharePrivacyResponse } from 'libs/shared/apps/share-v2/interfaces/SharePrivacyResponse';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { ShareLinkStatus } from 'libs/shared/enums/ShareLinkStatus';\nimport type { BaseObject, YearGroup } from 'libs/shared/interfaces';\nimport { RestrictionHelper } from 'libs/shared/utils/RestrictionHelper';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nconst namespace = 'sharev2.utils';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface GetIconAndTextOptions {\n linkExpireDate: string;\n isPasswordProtected: boolean;\n privacy: SharePrivacy;\n status: ShareLinkStatus;\n entityTypeId: MasterType;\n hasStudentExp: boolean;\n entity: BaseObject;\n yearGroups: YearGroup[];\n}\n\ninterface GetPrivateIconAndTextOptions {\n privacy: SharePrivacy;\n entityTypeId: MasterType;\n hasStudentExp: boolean;\n entity: BaseObject;\n yearGroups: YearGroup[];\n}\n\nexport const ShareLinkHelper = {\n getPrivateIconAndText: (options: GetPrivateIconAndTextOptions) => {\n const { entityTypeId, privacy, hasStudentExp, entity, yearGroups } = options;\n \n if (entityTypeId === MasterType.Topic || entityTypeId === MasterType.Series)\n return { icon: cvSvgLibrary.VisibleOn, text: getPhrase(hasStudentExp ? 'justMySchoolTeachers' : 'justMySchoolDescription') };\n \n /**\n * This is mainly for typescript, privacy will be an array for playlists\n * but that is handled above\n */\n if (Array.isArray(privacy))\n return;\n \n switch (privacy) {\n case SharePrivacy.Public:\n return { icon: cvSvgLibrary.VisibleOn, text: getPhrase('publicDescription') };\n case SharePrivacy.ProtectedOverrideRestriction:\n return { icon: cvSvgLibrary.VisibleOn, text: getPhrase('clickViewOnly') };\n case SharePrivacy.Protected:\n return {\n icon: cvSvgLibrary.Lock,\n text: ShareLinkHelper.getRespectRatingText(entity, yearGroups, hasStudentExp)\n };\n case SharePrivacy.JustMySchoolOverrideRestriction:\n return { icon: cvSvgLibrary.Lock, text: getPhrase(hasStudentExp ? 'justMySchoolTeachers' : 'justMySchoolDescription') };\n case SharePrivacy.JustMySchool:\n return {\n icon: cvSvgLibrary.Lock,\n text: ShareLinkHelper.getRespectRatingText(entity, yearGroups, hasStudentExp)\n };\n case SharePrivacy.PinCode:\n return { icon: cvSvgLibrary.Lock, text: getPhrase('pinDescription') };\n case SharePrivacy.PasswordProtected:\n return { icon: cvSvgLibrary.Lock, text: getPhrase('password') };\n default:\n return {};\n }\n },\n\n getIconAndText: (options: GetIconAndTextOptions) => {\n const { linkExpireDate, isPasswordProtected, status } = options;\n if (!linkExpireDate && !isPasswordProtected)\n return ShareLinkHelper.getPrivateIconAndText(options);\n \n if (!linkExpireDate)\n return { icon: cvSvgLibrary.Lock, text: getPhrase('password') };\n \n const isToday = DateHelper.isToday(linkExpireDate);\n const dayDifference = DateHelper.diffBetween(linkExpireDate, new Date(), 'day');\n \n if (!isPasswordProtected) {\n let text = isToday\n ? getPhrase('expiryToday')\n : getPhrase('expiry', { days: dayDifference });\n \n if (status === ShareLinkStatus.Expired)\n text = getPhrase('expired');\n \n return { icon: cvSvgLibrary.Timer, text };\n }\n \n let text = isToday\n ? getPhrase('passwordExpiryToday')\n : getPhrase('passwordExpiry', { days: dayDifference });\n \n if (status === ShareLinkStatus.Expired)\n text = getPhrase('passwordExpired');\n \n return { icon: cvSvgLibrary.Lock, text };\n },\n\n getRespectRatingText(video: BaseObject, yearGroups: YearGroup[], hasStudentExp: boolean) {\n if (!video || !yearGroups)\n return null;\n \n if (hasStudentExp)\n return getPhrase('justMySchoolTeachers');\n \n if (!VideoHelper.isVideoType(video))\n return getPhrase('collectionRating');\n \n const restriction = RestrictionHelper.getWeightedRestriction(video._restrictions?.value);\n \n /**\n * Restrictions without a year level are teacher restricitons, which means only admins can see it.\n */\n if (restriction && !restriction.yearGroup)\n return getPhrase('onlyAdmins');\n \n const rating = VideoHelper.getRating(video);\n \n let maxYearGroup: YearGroup;\n let minAllowedYearGroup: YearGroup;\n \n for (const yearGroup of yearGroups) {\n /**\n * If our year level is our new highest so far, save it\n */\n if (!maxYearGroup || yearGroup.value > maxYearGroup.value)\n maxYearGroup = yearGroup;\n \n /**\n * If the restriction is higher than this year level, skip it.\n */\n if (restriction && yearGroup.value <= restriction.yearGroup)\n continue;\n \n /**\n * If therating is higher than this year level's rating value, skip it.\n */\n if (rating && yearGroup.rating.value < rating.value)\n continue;\n \n /**\n * If our year level is the new lowest so far, save it\n */\n if (!minAllowedYearGroup || yearGroup.value < minAllowedYearGroup.value)\n minAllowedYearGroup = yearGroup;\n }\n \n /**\n * If no year levels are allowed, then it's staff only.\n */\n if (!minAllowedYearGroup)\n return getPhrase('onlyStaff');\n \n \n /**\n * If there's only one year level, and it's allowed, then we can just\n * say that everyone in your school can access it.\n */\n if (yearGroups.length === 1)\n return getPhrase('clickViewOnly');\n \n /**\n * We differentiate the copy if it's the highest year level or not. \n * Basically if we need to say \"X and above\" or not.\n */\n if (minAllowedYearGroup.value === maxYearGroup.value)\n return getPhrase('maxYearGroup', { yearGroup: maxYearGroup.name });\n \n return getPhrase('yearGroupRange', { yearGroup: minAllowedYearGroup.name });\n },\n\n getShareLinkAccessType(privacy: SharePrivacyResponse): 'private' | 'owner' | 'protected' {\n /**\n * If an entity is not a ClickView content and they cannot manage access\n * settings of the entity (which they can if its their private entity)\n * it means that its a TV content\n */\n if (privacy.isTvContent || privacy.isClickViewContent)\n return 'protected';\n\n if (privacy.canManageAccess)\n return 'owner';\n\n return 'private';\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","import React from 'react';\n\nimport { LayoutHelper } from 'libs/shared/utils/LayoutHelper';\n\nexport function useLockContentWidth(): void {\n React.useEffect(() => {\n LayoutHelper.lockContentWidth();\n return () => LayoutHelper.unlockContentWidth();\n }, []);\n}","import React from 'react';\n\nimport { StorageType } from 'libs/common/backbone/utils/LocalStorageHelper';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { useViewModel } from 'libs/common/react/hooks/UseViewModel';\n\nimport { IconButton } from 'libs/shared/components/icon-button/IconButton';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { VideoTypes } from 'libs/shared/interfaces';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { ViewModelKeys } from 'shared/constants/LiteViewModels';\n\nconst namespace = 'lite.insightsAdminAlert';\n\ninterface InsightsAdminAlertProps {\n hasAnalytics: boolean;\n analyticsUrl: string;\n video?: VideoTypes;\n}\n\n// eslint-disable-next-line rulesdir/require-view-title\nexport function InsightsAdminAlert(props: InsightsAdminAlertProps) {\n const [ show, setShow ] = useViewModel(\n ViewModelKeys.INSIGHTS_ADMIN_ALERT,\n true,\n { storage: StorageType.LocalStorage }\n );\n\n function onDismiss() {\n setShow(false);\n }\n\n function getAnalyticsUrl() {\n if (!props.video) return props.analyticsUrl;\n\n let videoRoute = '';\n\n if (props.video.typeId === MasterType.Interactive)\n videoRoute = `/interactives/${props.video.id}/views`;\n\n if (props.video.typeId === MasterType.Video)\n videoRoute = `/videos/${props.video.id}/views`;\n\n if (props.video.typeId === MasterType.Clip)\n videoRoute = `/clips/${props.video.id}/views`;\n\n return UrlHelper.safeUrlConcat(props.analyticsUrl, videoRoute);\n }\n\n if (!props.hasAnalytics || !show)\n return <></>;\n\n return (\n <div role='alert' className='d-flex justify-content-between align-items-center bg-light-blue rounded p-2 mb-4'>\n <div>\n <Text namespace={namespace} phrase='adminAlert' />\n <a className='text-info' href={getAnalyticsUrl()} target='_blank'>\n <Text namespace={namespace} phrase='analytics' />\n </a>.\n </div>\n <IconButton svgName={cvSvgLibrary.Close} className='text-blue' onClick={onDismiss} />\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"shareAvatar\":\"dW1Zw\",\"shareAvatarTitle\":\"WfiUS\"};","import React from 'react';\n\nimport { classNames } from 'libs/common/react/utils/ClassNameHelper';\n\nimport { ShareAvatar } from 'libs/shared/apps/share-v2/components/share-avatar/ShareAvatar';\nimport { ShareStatusIndicator } from 'libs/shared/apps/share-v2/components/share-status-indicator/ShareStatusIndicator';\nimport { Share } from 'libs/shared/apps/share-v2/interfaces/Share';\nimport { ShareHelper } from 'libs/shared/apps/share-v2/utils/ShareHelper';\nimport { ShareLinkHelper } from 'libs/shared/apps/share-v2/utils/ShareLinkHelper';\nimport { SharableEntity } from 'libs/shared/apps/share-v2/utils/ShareViewHelper';\nimport { SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { BaseObject, YearGroup } from 'libs/shared/interfaces';\n\nimport styles from './share-info.scss';\n\ninterface ShareInfoProps {\n sharedObject: SharableEntity;\n share: Share;\n entity: BaseObject;\n yearGroups: YearGroup[];\n className?: string;\n classroomName?: string;\n markingRequired?: boolean;\n hasData: boolean;\n}\n\nexport function ShareInfo(props: ShareInfoProps): JSX.Element {\n if (!props.sharedObject)\n return <></>;\n\n const hasExpired = ShareHelper.hasShareExpired(props.share);\n const { text: privacyText } = ShareLinkHelper.getPrivateIconAndText({\n privacy: props.share.privacy,\n entityTypeId: props.sharedObject.typeId,\n hasStudentExp: false,\n entity: props.entity,\n yearGroups: props.yearGroups\n });\n\n return (\n <div className={classNames('d-flex flex-row align-items-center gap-1', props.className)}>\n <ShareStatusIndicator\n share={props.share}\n markingRequired={props.markingRequired}\n className='cursor-default'\n hasData={props.hasData}\n />\n <ShareAvatar\n className={classNames('ps-2 me-1', styles.shareAvatar)}\n titleClassName={classNames('text-truncate', styles.shareAvatarTitle)}\n privacy={props.share.privacy}\n type={props.share.type}\n classroomName={props.classroomName}\n openClassroomName={props.share.options?.openClassroomName}\n hideSubtitle\n svgSize={SvgContainerSize.Small}\n />\n {!hasExpired && !!privacyText &&\n <div className='d-flex align-items-center gap-2'>\n <span className='d-inline-block'>&bull;</span>\n <p className='mb-0'>{privacyText}</p>\n </div>\n }\n </div>\n );\n}","import React from 'react';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Text } from 'libs/shared/components/text/Text';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nconst namespace = 'signUp.hardGateBanner';\n\nexport function HardGateBanner(): JSX.Element {\n return (\n <div role='alert' className='bg-light-indigo text-indigo rounded p-3 mb-4'>\n <Text namespace={namespace} phrase='hardGate' />&nbsp;\n <AppLink\n appLink={{\n application: AppChannels.SIGN_UP,\n action: Actions.SignUp.INVITE_COLLEAGUE\n }}\n className='indigo-link text-underline d-inline'\n >\n <Text namespace={namespace} phrase='hardGateCta' />\n </AppLink>\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"withDivider\":\"ZSzT3\"};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { StorageType } from 'libs/common/backbone/utils/LocalStorageHelper';\nimport { useViewModel } from 'libs/common/react/hooks/UseViewModel';\nimport { classNames } from 'libs/common/react/utils/ClassNameHelper';\n\nimport { DateRangeQueryParams } from 'libs/shared/apps/analytics/interfaces/DateRangeQueryParams';\nimport { ShareType } from 'libs/shared/apps/share-v2/enums/ShareType';\nimport { Share } from 'libs/shared/apps/share-v2/interfaces/Share';\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\nimport { ActionsDropdown } from 'libs/shared/components/actions/ActionsDropdown';\nimport { Breadcrumb, Breadcrumbs, PartialBreadcrumbs } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { IconButton } from 'libs/shared/components/icon-button/IconButton';\nimport { PillTab, PillTabSelector } from 'libs/shared/components/pill-tab-selector/PillTabSelector';\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { ToggleSwitch } from 'libs/shared/components/toggle-switch/ToggleSwitch';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { SharedViewModelKeys } from 'libs/shared/constants/SharedViewModelKeys';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { GatedPermission, PermissionName } from 'libs/shared/enums/PermissionName';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { Classroom, VideoTypes, YearGroup } from 'libs/shared/interfaces';\nimport { AnalyticsRouteHelper } from 'libs/shared/utils/AnalyticsRouteHelper';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { ViewModelKeys } from 'shared/constants/LiteViewModels';\nimport { usePluginHelper } from 'shared/hooks/use-plugin-helper/usePluginHelper';\nimport { useClassroomExperience } from 'shared/hooks/useClassroomExperience';\nimport { getEditShareAppLink, getShareOptionsAppLink } from 'shared/utils/ObjectAppLinkHelper';\nimport { VideoAppLinkHelper } from 'shared/utils/VideoAppLinkHelper';\n\nimport { InsightsAdminAlert } from 'apps/my-shares/components/insights-admin-alert/InsightsAdminAlert';\nimport { ShareInfo } from 'apps/my-shares/components/share-info/ShareInfo';\nimport { getShareObjectActions } from 'apps/my-shares/views/my-shares/MySharesViewUtils';\nimport { HardGateBanner } from 'apps/sign-up/components/hard-gate-banner/HardGateBanner';\nimport { SoftGateBanner } from 'apps/sign-up/components/soft-gate-banner/SoftGateBanner';\n\nimport styles from './insights-header.scss';\n\nconst namespace = 'insights.header';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface AnonymiseNamesToggleProps {\n anonymiseUsers: boolean;\n toggleAnonymiseUsers: () => void;\n}\n\nfunction AnonymiseNamesToggle(props: AnonymiseNamesToggleProps) {\n return (\n <div>\n <label htmlFor='anonymiseNames' className='mb-0 pe-3'><Text namespace={namespace} phrase='anonymiseNames' /></label>\n <ToggleSwitch id='anonymiseNames' on={props.anonymiseUsers} onClick={props.toggleAnonymiseUsers} />\n </div>\n );\n}\n\nfunction HideStaffToggle(): JSX.Element {\n const [ hideStaffResults, setHideStaffResults ] = useViewModel<boolean>(ViewModelKeys.HIDE_STAFF_RESULTS, false);\n\n return (\n <span\n onClick={event => {\n event.stopPropagation();\n setHideStaffResults(!hideStaffResults);\n }}\n >\n <SvgContainer svgName={cvSvgLibrary.Staff} className='d-inline-block svg-container me-2 align-middle' />\n <span className='d-inline-block align-middle'>\n <span className='me-3'>\n {getPhrase('hideStaff')}\n </span>\n <ToggleSwitch on={hideStaffResults} onClick={() => {}} />\n </span>\n </span>\n );\n}\n\ninterface DemoTooltipProps extends React.PropsWithChildren {\n isDemo: boolean;\n}\n\nfunction DemoTooltip(props: DemoTooltipProps) {\n return (\n <Tooltip\n id='audienceFilter'\n title={getPhrase('demoOnly')}\n spanHack={props.isDemo}\n >\n <div className={props.isDemo ? 'pointer-events-none' : ''}>\n {props.children}\n </div>\n </Tooltip>\n );\n}\n\ninterface InsightsHeaderProps {\n video: VideoTypes;\n hasClassrooms?: boolean;\n dateRangeAppLinkParams?: DateRangeQueryParams;\n tabs: PillTab[]\n isDemo?: boolean;\n analyticsWebUrl?: string;\n hasAnalytics?: boolean;\n share: Share;\n yearGroups: YearGroup[];\n classroom?: Classroom;\n markingRequired?: boolean;\n hasData: boolean;\n viewInsightsGatedPermission?: GatedPermission;\n}\n\nexport function InsightsHeader(props: InsightsHeaderProps) {\n const [ anonymiseUsers, setAnonymiseUsers ] = useViewModel<boolean>(\n SharedViewModelKeys.ANONYMISE_USERS,\n false,\n { storage: StorageType.LocalStorage }\n );\n\n const { isPlugin } = usePluginHelper();\n const { hasPermissions } = usePermissions();\n const { experience } = useClassroomExperience();\n\n const canViewSchoolAnalytics =\n hasPermissions(PermissionName.ViewAnalyticsProduct) &&\n hasPermissions(PermissionName.ViewCustomerAnalytics);\n\n const shareOptionsAppLink = getShareOptionsAppLink(props.share);\n const editShareAppLink = getEditShareAppLink(props.share, 'insights');\n\n function getRootBreadcrumb(): Breadcrumb {\n let breadcrumb: Breadcrumb;\n\n if (props.share.type === ShareType.Classroom) {\n breadcrumb = {\n name: getPhrase('classrooms'),\n appLink: {\n application: AppChannels.CLASSROOMS,\n action: Actions.Classrooms.HOME\n }\n };\n } else if (props.share.type === ShareType.Open) {\n breadcrumb = {\n name: getPhrase('openClassrooms'),\n appLink: {\n application: AppChannels.CLASSROOMS,\n action: Actions.Classrooms.OPEN_CLASSROOMS\n }\n };\n } else {\n breadcrumb = {\n name: getPhrase('shares'),\n appLink: {\n application: AppChannels.MY_SHARES,\n action: Actions.MyShares.HOME\n }\n };\n }\n\n if (experience === 'minimal') {\n breadcrumb = {\n ...breadcrumb,\n appLink: {\n application: AppChannels.CLASSROOMS,\n action: Actions.Classrooms.HOME\n }\n };\n }\n\n return breadcrumb;\n }\n\n function getBreadcrumbs(): Breadcrumb[] {\n if (!props.video || !props.share) return [];\n\n const breadcrumbs: Breadcrumb[] = [getRootBreadcrumb()];\n\n if (\n props.share.type === ShareType.Classroom &&\n props.classroom\n ) {\n breadcrumbs.push({\n name: props.classroom.name,\n appLink: {\n application: AppChannels.CLASSROOMS,\n action: Actions.Classrooms.CLASSROOM_HOME,\n args: [props.classroom.id]\n }\n });\n }\n\n breadcrumbs.push({\n name: props.video.name,\n active: true\n });\n\n return breadcrumbs;\n }\n\n function getActions() {\n const actions: ActionOptions[] = [];\n\n if (props.video?.typeId === MasterType.Interactive) {\n actions.push({\n label: () => <HideStaffToggle />\n });\n\n actions.push({\n label: getPhrase('generateReport'),\n svgName: cvSvgLibrary.Print,\n appLink: {\n application: AppChannels.MY_SHARES,\n action: Actions.MyShares.INTERACTIVE_GENERATE_REPORT,\n args: [props.video.id]\n }\n });\n }\n\n if (canViewSchoolAnalytics) {\n actions.push({\n label: getPhrase('viewInAnalytics'),\n svgName: cvSvgLibrary.Analytics,\n href: AnalyticsRouteHelper.getObjectUrl(props.analyticsWebUrl, props.video, true),\n openInNewTab: true\n });\n }\n\n return [ ...actions, ...getShareObjectActions({\n share: props.share,\n sharedObject: props.video,\n isPlugin,\n hideShareOptionsActions: true\n }) ];\n }\n\n function getVideoEntityPhrase() {\n if (props.video.typeId === MasterType.Interactive) return 'viewInteractive';\n if (props.video.typeId === MasterType.Clip) return 'viewClip';\n\n return 'viewVideo';\n }\n \n return (\n <div>\n {props.viewInsightsGatedPermission === 'soft-gate'\n ? <SoftGateBanner />\n : <InsightsAdminAlert\n analyticsUrl={props.analyticsWebUrl}\n hasAnalytics={props.hasAnalytics}\n video={props.video}\n />\n }\n {props.viewInsightsGatedPermission === 'hard-gate'\n ? <HardGateBanner />\n : <InsightsAdminAlert\n analyticsUrl={props.analyticsWebUrl}\n hasAnalytics={props.hasAnalytics}\n video={props.video}\n />\n }\n <section className='mb-4'>\n <div className='d-flex justify-content-between mb-3'>\n <div className='me-2'>\n {props.video && (\n <>\n <h1 className='mb-0 d-inline me-2'>{props.video.name}</h1>\n {!props.isDemo &&\n <Tooltip title={getPhrase(getVideoEntityPhrase())} type='text' spanHack spanHackClassName='d-inline-block align-text-bottom'>\n <IconButton\n svgName={cvSvgLibrary.NewWindow}\n appLink={VideoAppLinkHelper.getAppLink(props.video)}\n svgSize={SvgContainerSize.Large}\n className='d-inline-block'\n customSize\n />\n </Tooltip>\n }\n </>\n )}\n {!props.video && <h1 className='partial-loading-background' style={{ width: '20rem' }}>&nbsp;</h1>}\n </div>\n \n <div className='d-flex gap-2'>\n {!isPlugin && shareOptionsAppLink &&\n <DemoTooltip isDemo={props.isDemo}>\n <IconButton svgName={cvSvgLibrary.Share} className='btn btn-outline-dark' appLink={shareOptionsAppLink}>\n <Text namespace={namespace} phrase={props.share.type === ShareType.Link ? 'share' : 'shareOptions'} />\n </IconButton>\n </DemoTooltip>\n }\n {!isPlugin && editShareAppLink && props.video?.typeId === MasterType.Interactive &&\n <DemoTooltip isDemo={props.isDemo}>\n <IconButton svgName={cvSvgLibrary.Edit} className='btn btn-outline-dark' appLink={editShareAppLink}>\n <Text namespace={namespace} phrase='editSettings' />\n </IconButton>\n </DemoTooltip>\n }\n <DemoTooltip isDemo={props.isDemo}>\n <ActionsDropdown\n dropdownToggleClassName='btn btn-outline-dark'\n actions={getActions()}\n />\n </DemoTooltip>\n </div>\n </div>\n \n <div className='d-flex justify-content-between mb-3'>\n {props.video\n ? <Breadcrumbs breadcrumbs={getBreadcrumbs()} />\n : <PartialBreadcrumbs />\n }\n </div>\n <div className={classNames('d-flex flex-row align-items-center mb-3', styles.withDivider)}>\n <ShareInfo\n sharedObject={props.video}\n share={props.share}\n entity={props.video}\n yearGroups={props.yearGroups}\n classroomName={props.classroom?.name}\n markingRequired={props.markingRequired}\n hasData={props.hasData}\n />\n </div>\n <div className='d-flex align-items-center justify-content-between mb-4'>\n {props.viewInsightsGatedPermission !== 'hard-gate' && <PillTabSelector tabs={props.tabs} />}\n <div>\n {props.hasData && (\n <AnonymiseNamesToggle\n anonymiseUsers={anonymiseUsers}\n toggleAnonymiseUsers={() => setAnonymiseUsers(!anonymiseUsers)}\n />\n )}\n </div>\n </div>\n </section>\n </div>\n );\n}","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { ShareType } from 'libs/shared/apps/share-v2/enums/ShareType';\nimport { Share } from 'libs/shared/apps/share-v2/interfaces/Share';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { getInsightsHeatmapAppLink, getInsightsOverviewAppLink, getInsightsQuestionsAppLink, getInsightsStudentsAppLink } from 'shared/utils/ObjectAppLinkHelper';\n\nconst namespace = 'shared.insightsUtils';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport type InsightsTabs = 'insights' | 'heatmap' | 'results' | 'questions';\n\nexport function getInsightsVideoTabs(share: Share, active: InsightsTabs, params?: HashObject) {\n return [\n {\n name: getPhrase('insights'),\n active: active === 'insights',\n appLink: getInsightsOverviewAppLink(share, params)\n },\n {\n name: getPhrase('heatmap'),\n active: active === 'heatmap',\n appLink: getInsightsHeatmapAppLink(share, params)\n }\n ];\n}\n\nexport function getInsightsInteractiveTabs(share: Share, active: InsightsTabs) {\n return [\n {\n name: getPhrase('insights'),\n active: active === 'insights',\n appLink: getInsightsOverviewAppLink(share)\n },\n {\n name: getPhrase('results'),\n active: active === 'results',\n appLink: getInsightsStudentsAppLink(share)\n },\n {\n name: getPhrase('questions'),\n active: active === 'questions',\n appLink: getInsightsQuestionsAppLink(share)\n },\n {\n name: getPhrase('heatmap'),\n active: active === 'heatmap',\n appLink: getInsightsHeatmapAppLink(share)\n }\n ];\n}\n\nexport function getInsightsDemoInteractiveTabs(id: string, active: InsightsTabs, params: HashObject, type?: ShareType) {\n if (type === ShareType.Open) {\n return [\n {\n name: getPhrase('insights'),\n active: active === 'insights',\n appLink: {\n application: AppChannels.MY_SHARES,\n action: Actions.MyShares.INTERACTIVE_OVERVIEW_OPEN_CLASSROOM_DEMO,\n args: [id],\n params\n }\n },\n {\n name: getPhrase('results'),\n active: active === 'results',\n appLink: {\n application: AppChannels.MY_SHARES,\n action: Actions.MyShares.INTERACTIVE_STUDENTS_OPEN_CLASSROOM_DEMO,\n args: [id],\n params\n }\n },\n {\n name: getPhrase('questions'),\n active: active === 'questions',\n appLink: {\n application: AppChannels.MY_SHARES,\n action: Actions.MyShares.INTERACTIVE_QUESTIONS_OPEN_CLASSROOM_DEMO,\n args: [id],\n params\n }\n },\n {\n name: getPhrase('heatmap'),\n active: active === 'heatmap',\n appLink: {\n application: AppChannels.MY_SHARES,\n action: Actions.MyShares.INTERACTIVE_HEATMAP_OPEN_CLASSROOM_DEMO,\n args: [id],\n params\n }\n }\n ];\n }\n\n return [\n {\n name: getPhrase('insights'),\n active: active === 'insights',\n appLink: {\n application: AppChannels.MY_SHARES,\n action: Actions.MyShares.INTERACTIVE_OVERVIEW_DEMO,\n args: [id],\n params\n }\n },\n {\n name: getPhrase('results'),\n active: active === 'results',\n appLink: {\n application: AppChannels.MY_SHARES,\n action: Actions.MyShares.INTERACTIVE_STUDENTS_DEMO,\n args: [id],\n params\n }\n },\n {\n name: getPhrase('questions'),\n active: active === 'questions',\n appLink: {\n application: AppChannels.MY_SHARES,\n action: Actions.MyShares.INTERACTIVE_QUESTIONS_DEMO,\n args: [id],\n params\n }\n },\n {\n name: getPhrase('heatmap'),\n active: active === 'heatmap',\n appLink: {\n application: AppChannels.MY_SHARES,\n action: Actions.MyShares.INTERACTIVE_HEATMAP_DEMO,\n args: [id],\n params\n }\n }\n ];\n}","import React from 'react';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nconst namespace = 'signUp.softGateBanner';\n\nexport function SoftGateBanner(): JSX.Element {\n return (\n <div role='alert' className='bg-light-indigo text-indigo rounded p-2 mb-4 d-flex align-items-center'>\n <SvgContainer svgName={cvSvgLibrary.StarOutline} size={SvgContainerSize.Large} />\n <Text namespace={namespace} phrase='softGate' />&nbsp;\n <AppLink\n appLink={{\n application: AppChannels.SIGN_UP,\n action: Actions.SignUp.PREMIUM_FEATURES\n }}\n className='indigo-link text-indigo text-underline d-inline'\n >\n <Text namespace={namespace} phrase='learnMore' />\n </AppLink>\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"pillTabSelector\":\"Hdi6o\",\"tab\":\"RvNxr\",\"minWidth\":\"GHSz9\",\"radiusSmall\":\"VhJJa\",\"tabLink\":\"WFyvo\"};"],"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","ShareLinkHelper","getPrivateIconAndText","options","entityTypeId","hasStudentExp","entity","yearGroups","icon","text","Array","isArray","getRespectRatingText","getIconAndText","linkExpireDate","isPasswordProtected","status","isToday","dayDifference","Date","days","video","restriction","_restrictions","value","yearGroup","maxYearGroup","minAllowedYearGroup","rating","length","name","getShareLinkAccessType","isTvContent","isClickViewContent","canManageAccess","TabContents","tab","count","data","PillTabSelector","ref","containerRef","borderRadius","listClassName","tabs","map","index","active","key","appLink","analyticsData","analyticsOptions","onClick","onSelect","onSelectTab","defaultProps","useLockContentWidth","namespace","InsightsAdminAlert","storage","show","setShow","hasAnalytics","role","phrase","href","analyticsUrl","videoRoute","typeId","id","getAnalyticsUrl","target","ShareInfo","sharedObject","hasExpired","ShareHelper","share","privacyText","ShareStatusIndicator","markingRequired","hasData","SvgContainer","HardGateBanner","Text","AppLink","application","action","LanguageService","AnonymiseNamesToggle","htmlFor","ToggleSwitch","on","anonymiseUsers","toggleAnonymiseUsers","HideStaffToggle","hideStaffResults","setHideStaffResults","event","stopPropagation","DemoTooltip","Tooltip","spanHack","isDemo","children","InsightsHeader","SharedViewModelKeys","setAnonymiseUsers","isPlugin","usePluginHelper","hasPermissions","usePermissions","experience","useClassroomExperience","canViewSchoolAnalytics","PermissionName","shareOptionsAppLink","editShareAppLink","viewInsightsGatedPermission","SoftGateBanner","analyticsWebUrl","MasterType","spanHackClassName","IconButton","VideoAppLinkHelper","customSize","style","width","ShareType","ActionsDropdown","dropdownToggleClassName","actions","push","label","args","AnalyticsRouteHelper","openInNewTab","hideShareOptionsActions","getActions","Breadcrumbs","breadcrumbs","breadcrumb","classroom","getBreadcrumbs","getInsightsVideoTabs","params","getInsightsInteractiveTabs","getInsightsDemoInteractiveTabs","size"],"sourceRoot":""}