@clickview/lite 0.64.0-rc.0 → 0.64.0-rc.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bundles.json +1 -1
- package/dist/css/{7153-lite-0cc5db0db7.chunk.css → 2962-lite-2002c62a24.chunk.css} +0 -1
- package/dist/css/{1857-lite-324255d395.chunk.css → 6173-lite-911f35513f.chunk.css} +0 -1
- package/dist/css/{2083-lite-6cb1775e12.chunk.css → 7324-lite-238bd550b7.chunk.css} +0 -1
- package/dist/css/{9013-lite-620f218839.chunk.css → 9013-lite-3c31b606c5.chunk.css} +2 -2
- package/dist/languages/en.json +1 -1
- package/dist/scripts/1216-899540dc73-lite.chunk.js +2 -0
- package/dist/scripts/1216-899540dc73-lite.chunk.js.map +1 -0
- package/dist/scripts/1820-b572681b3a-lite.chunk.js +2 -0
- package/dist/scripts/1820-b572681b3a-lite.chunk.js.map +1 -0
- package/dist/scripts/{2056-84f388df20-lite.chunk.js → 2056-a9e8d17a46-lite.chunk.js} +3 -3
- package/dist/scripts/2056-a9e8d17a46-lite.chunk.js.map +1 -0
- package/dist/scripts/229-ac9f12e165-lite.chunk.js +2 -0
- package/dist/scripts/229-ac9f12e165-lite.chunk.js.map +1 -0
- package/dist/scripts/{2564-65e3fc9619-lite.chunk.js → 2564-f5628d4e56-lite.chunk.js} +3 -3
- package/dist/scripts/{2564-65e3fc9619-lite.chunk.js.map → 2564-f5628d4e56-lite.chunk.js.map} +1 -1
- package/dist/scripts/2712-a851ddc3c3-lite.chunk.js +2 -0
- package/dist/scripts/2712-a851ddc3c3-lite.chunk.js.map +1 -0
- package/dist/scripts/{2788-eca70707c6-lite.chunk.js → 2788-c8ae3be73f-lite.chunk.js} +1 -1
- package/dist/scripts/2788-c8ae3be73f-lite.chunk.js.map +1 -0
- package/dist/scripts/{7153-0ed8513e59-lite.chunk.js → 2962-7f2e4412f0-lite.chunk.js} +2 -2
- package/dist/scripts/{7153-0ed8513e59-lite.chunk.js.map → 2962-7f2e4412f0-lite.chunk.js.map} +1 -1
- package/dist/scripts/2988-b602b64344-lite.chunk.js +2 -0
- package/dist/scripts/2988-b602b64344-lite.chunk.js.map +1 -0
- package/dist/scripts/3180-c1f065183d-lite.chunk.js +2 -0
- package/dist/scripts/3180-c1f065183d-lite.chunk.js.map +1 -0
- package/dist/scripts/3549-111225ff0e-lite.chunk.js +2 -0
- package/dist/scripts/3549-111225ff0e-lite.chunk.js.map +1 -0
- package/dist/scripts/4591-f78fa6c784-lite.chunk.js +2 -0
- package/dist/scripts/4591-f78fa6c784-lite.chunk.js.map +1 -0
- package/dist/scripts/4667-5101904582-lite.chunk.js +2 -0
- package/dist/scripts/4667-5101904582-lite.chunk.js.map +1 -0
- package/dist/scripts/{5056-6057435479-lite.chunk.js → 5056-65c739468f-lite.chunk.js} +1 -1
- package/dist/scripts/5056-65c739468f-lite.chunk.js.map +1 -0
- package/dist/scripts/5157-e38b666fce-lite.chunk.js +2 -0
- package/dist/scripts/5157-e38b666fce-lite.chunk.js.map +1 -0
- package/dist/scripts/5201-98ee21febb-lite.chunk.js +2 -0
- package/dist/scripts/5201-98ee21febb-lite.chunk.js.map +1 -0
- package/dist/scripts/5595-79068997ce-lite.chunk.js +2 -0
- package/dist/scripts/5595-79068997ce-lite.chunk.js.map +1 -0
- package/dist/scripts/5770-f88f6d9c00-lite.chunk.js +2 -0
- package/dist/scripts/5770-f88f6d9c00-lite.chunk.js.map +1 -0
- package/dist/scripts/5896-60133bfdad-lite.chunk.js +3 -0
- package/dist/scripts/5896-60133bfdad-lite.chunk.js.map +1 -0
- package/dist/scripts/6173-7f9939c29e-lite.chunk.js +3 -0
- package/dist/scripts/6173-7f9939c29e-lite.chunk.js.map +1 -0
- package/dist/scripts/6181-9d7668c9e4-lite.chunk.js +3 -0
- package/dist/scripts/6181-9d7668c9e4-lite.chunk.js.map +1 -0
- package/dist/scripts/6455-37039eb687-lite.chunk.js +2 -0
- package/dist/scripts/6455-37039eb687-lite.chunk.js.map +1 -0
- package/dist/scripts/6623-84b33c6856-lite.chunk.js +3 -0
- package/dist/scripts/6623-84b33c6856-lite.chunk.js.map +1 -0
- package/dist/scripts/6919-0f2cef64e5-lite.chunk.js +2 -0
- package/dist/scripts/6919-0f2cef64e5-lite.chunk.js.map +1 -0
- package/dist/scripts/7267-1f5006c9c5-lite.chunk.js +2 -0
- package/dist/scripts/7267-1f5006c9c5-lite.chunk.js.map +1 -0
- package/dist/scripts/{2083-7daacf0112-lite.chunk.js → 7324-ee20e73ac1-lite.chunk.js} +2 -2
- package/dist/scripts/{2083-7daacf0112-lite.chunk.js.map → 7324-ee20e73ac1-lite.chunk.js.map} +1 -1
- package/dist/scripts/7434-fef3ea4e89-lite.chunk.js +2 -0
- package/dist/scripts/7434-fef3ea4e89-lite.chunk.js.map +1 -0
- package/dist/scripts/7443-4866d0c9ab-lite.chunk.js +3 -0
- package/dist/scripts/7443-4866d0c9ab-lite.chunk.js.map +1 -0
- package/dist/scripts/8416-7d71a55a14-lite.chunk.js +2 -0
- package/dist/scripts/8416-7d71a55a14-lite.chunk.js.map +1 -0
- package/dist/scripts/8465-01b0f72699-lite.chunk.js +2 -0
- package/dist/scripts/8465-01b0f72699-lite.chunk.js.map +1 -0
- package/dist/scripts/8722-a9eac1941c-lite.chunk.js +2 -0
- package/dist/scripts/8722-a9eac1941c-lite.chunk.js.map +1 -0
- package/dist/scripts/9013-6fcc58f028-lite.chunk.js +2 -0
- package/dist/scripts/9013-6fcc58f028-lite.chunk.js.map +1 -0
- package/dist/scripts/9264-998d93d1c2-lite.chunk.js +2 -0
- package/dist/scripts/9264-998d93d1c2-lite.chunk.js.map +1 -0
- package/dist/scripts/9894-0fba5cf702-lite.chunk.js +3 -0
- package/dist/scripts/9894-0fba5cf702-lite.chunk.js.map +1 -0
- package/dist/scripts/bundle-2e839958ca.min.js +3 -0
- package/dist/scripts/bundle-2e839958ca.min.js.map +1 -0
- package/package.json +1 -1
- package/dist/scripts/1755-462bcd99e9-lite.chunk.js +0 -2
- package/dist/scripts/1755-462bcd99e9-lite.chunk.js.map +0 -1
- package/dist/scripts/180-6c4779f6ab-lite.chunk.js +0 -2
- package/dist/scripts/180-6c4779f6ab-lite.chunk.js.map +0 -1
- package/dist/scripts/1820-3b5d0a340d-lite.chunk.js +0 -2
- package/dist/scripts/1820-3b5d0a340d-lite.chunk.js.map +0 -1
- package/dist/scripts/1857-d3af9d98eb-lite.chunk.js +0 -3
- package/dist/scripts/1857-d3af9d98eb-lite.chunk.js.map +0 -1
- package/dist/scripts/2056-84f388df20-lite.chunk.js.map +0 -1
- package/dist/scripts/229-900e650427-lite.chunk.js +0 -2
- package/dist/scripts/229-900e650427-lite.chunk.js.map +0 -1
- package/dist/scripts/2788-eca70707c6-lite.chunk.js.map +0 -1
- package/dist/scripts/3180-22edf4c9fc-lite.chunk.js +0 -2
- package/dist/scripts/3180-22edf4c9fc-lite.chunk.js.map +0 -1
- package/dist/scripts/3549-30d3b1cd05-lite.chunk.js +0 -2
- package/dist/scripts/3549-30d3b1cd05-lite.chunk.js.map +0 -1
- package/dist/scripts/3776-0027340c98-lite.chunk.js +0 -2
- package/dist/scripts/3776-0027340c98-lite.chunk.js.map +0 -1
- package/dist/scripts/4591-3e8dddd0e9-lite.chunk.js +0 -2
- package/dist/scripts/4591-3e8dddd0e9-lite.chunk.js.map +0 -1
- package/dist/scripts/4667-f3882f2379-lite.chunk.js +0 -2
- package/dist/scripts/4667-f3882f2379-lite.chunk.js.map +0 -1
- package/dist/scripts/5056-6057435479-lite.chunk.js.map +0 -1
- package/dist/scripts/5157-ad13101a6e-lite.chunk.js +0 -2
- package/dist/scripts/5157-ad13101a6e-lite.chunk.js.map +0 -1
- package/dist/scripts/5201-7d3867d027-lite.chunk.js +0 -2
- package/dist/scripts/5201-7d3867d027-lite.chunk.js.map +0 -1
- package/dist/scripts/5595-10e586779d-lite.chunk.js +0 -2
- package/dist/scripts/5595-10e586779d-lite.chunk.js.map +0 -1
- package/dist/scripts/5896-5d2f32c59e-lite.chunk.js +0 -3
- package/dist/scripts/5896-5d2f32c59e-lite.chunk.js.map +0 -1
- package/dist/scripts/6181-50a39979ec-lite.chunk.js +0 -3
- package/dist/scripts/6181-50a39979ec-lite.chunk.js.map +0 -1
- package/dist/scripts/6455-2f45be17cf-lite.chunk.js +0 -2
- package/dist/scripts/6455-2f45be17cf-lite.chunk.js.map +0 -1
- package/dist/scripts/6623-ebbffb59b3-lite.chunk.js +0 -3
- package/dist/scripts/6623-ebbffb59b3-lite.chunk.js.map +0 -1
- package/dist/scripts/6919-cb2de57c2e-lite.chunk.js +0 -2
- package/dist/scripts/6919-cb2de57c2e-lite.chunk.js.map +0 -1
- package/dist/scripts/7267-c2d30dd339-lite.chunk.js +0 -2
- package/dist/scripts/7267-c2d30dd339-lite.chunk.js.map +0 -1
- package/dist/scripts/7434-c34ca23a21-lite.chunk.js +0 -2
- package/dist/scripts/7434-c34ca23a21-lite.chunk.js.map +0 -1
- package/dist/scripts/7443-7c72de0cb9-lite.chunk.js +0 -3
- package/dist/scripts/7443-7c72de0cb9-lite.chunk.js.map +0 -1
- package/dist/scripts/8022-0656cce655-lite.chunk.js +0 -2
- package/dist/scripts/8022-0656cce655-lite.chunk.js.map +0 -1
- package/dist/scripts/8722-69c1c7a24f-lite.chunk.js +0 -2
- package/dist/scripts/8722-69c1c7a24f-lite.chunk.js.map +0 -1
- package/dist/scripts/9013-adc5d3517a-lite.chunk.js +0 -2
- package/dist/scripts/9013-adc5d3517a-lite.chunk.js.map +0 -1
- package/dist/scripts/9155-87c9030ce9-lite.chunk.js +0 -2
- package/dist/scripts/9155-87c9030ce9-lite.chunk.js.map +0 -1
- package/dist/scripts/9264-750b3d6ea0-lite.chunk.js +0 -2
- package/dist/scripts/9264-750b3d6ea0-lite.chunk.js.map +0 -1
- package/dist/scripts/9894-bc34edcd67-lite.chunk.js +0 -3
- package/dist/scripts/9894-bc34edcd67-lite.chunk.js.map +0 -1
- package/dist/scripts/bundle-3d3d127d98.min.js +0 -3
- package/dist/scripts/bundle-3d3d127d98.min.js.map +0 -1
- package/dist/css/{6455-lite-fe0bc6d95f.chunk.css → 6455-lite-c07987d46c.chunk.css} +1 -1
- /package/dist/css/{9155-lite-447d345417.chunk.css → 8465-lite-447d345417.chunk.css} +0 -0
- /package/dist/scripts/{1857-d3af9d98eb-lite.chunk.js.LICENSE.txt → 2056-a9e8d17a46-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{2056-84f388df20-lite.chunk.js.LICENSE.txt → 2564-f5628d4e56-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{2564-65e3fc9619-lite.chunk.js.LICENSE.txt → 5896-60133bfdad-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{5896-5d2f32c59e-lite.chunk.js.LICENSE.txt → 6173-7f9939c29e-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{6181-50a39979ec-lite.chunk.js.LICENSE.txt → 6181-9d7668c9e4-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{6623-ebbffb59b3-lite.chunk.js.LICENSE.txt → 6623-84b33c6856-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{7443-7c72de0cb9-lite.chunk.js.LICENSE.txt → 7443-4866d0c9ab-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{9894-bc34edcd67-lite.chunk.js.LICENSE.txt → 9894-0fba5cf702-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{bundle-3d3d127d98.min.js.LICENSE.txt → bundle-2e839958ca.min.js.LICENSE.txt} +0 -0
package/package.json
CHANGED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[1755],{4606:(e,t,n)=>{n.d(t,{U:()=>i});var r=n(20354),a=n(75896),o=n(31949);function i(e){var t=a.m.chunk(null!=e?e:[],25),n=r.a.useBasicFetchAll(t.map((function(e){return o.N.getById(e)})));return{users:a.m.flatten(n.data),isLoading:!n.hasCompleted,usersResponse:n}}},26025:(e,t,n)=>{n.d(t,{B:()=>o});var r=n(1048),a=n(75795),o={getAudienceAppLinkParams:function(){var e=a.O.getCurrentRoute().appLink,t=r.t.isObject(e.params)?e.params:{},n=t.users,o=t.classrooms,i=t.classroomGroups,s=function(e){var n=t[e];if(n)return Array.isArray(n)?n:[n]},l={};return n&&(l.users=s("users")),o&&(l.classrooms=s("classrooms")),i&&(l.classroomGroups=s("classroomGroups")),l},getDateRangeAppLinkParams:function(){var e=a.O.getCurrentRoute().appLink,t=r.t.isObject(e.params)?e.params:{},n=t.from,o=t.to,i=t.rangeName,s={};return n&&(s.from=n),o&&(s.to=o),i&&(s.rangeName=i),s}}},88180:(e,t,n)=>{n.d(t,{B:()=>ce});var r=n(32735),a=n(34509),o=n(20354),i=n(1048),s=n(97395),l=n(32045),c={classroom:function(e){return{url:"{gateway}/v1/objects/".concat(e),key:"classroom:".concat(e)}},classroomGroup:function(e){return{url:"{gateway}/v1/objects/".concat(e,"?query=classroom"),key:"classroom:group:".concat(e,":classroom")}},getClassroomsById:function(e){e.sort();var t="users[count()]{limit:0}&".concat(e.map((function(e){return"id=".concat(e)})).join("&"));return{url:"{gateway}/v1/objects?query=".concat(t),key:"classrooms:".concat(e.join(","))}},getClassroomGroupsById:function(e){e.sort();var t="users[count()]{limit:0}&".concat(e.map((function(e){return"id=".concat(e)})).join("&"));return{url:"{gateway}/v1/objects?query=".concat(t),key:"classroom:groups:".concat(e.join(","))}},userClassrooms:function(e,t,n,r){return{url:s._.urlBuilder("{gateway}/v1/classrooms",{cursor:e}),key:"user:classrooms".concat(e?":".concat(e):""),success:t,error:n,always:r}},getPinnedClassrooms:function(e){return{url:s._.urlBuilder("{gateway}/v1/objects/".concat(e,"/members"),{query:"favouriteClassrooms[favouritedBy{id:".concat(e,"},_integrations,enrolments[user]{role:'owner'}]{status:").concat(l.w.Active,",limit:100,orderby:name}")}),key:"pinned:classrooms",normalize:!1}},getPublished:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n={query:"{orderby:name,status:".concat(l.w.Active,"}favouritedBy{id:").concat(e,"},_integrations,enrolments[user]{role:'owner'}")};return t&&(n.cursor=t),{url:s._.urlBuilder("{gateway}/v1/classrooms",n),key:"published:classrooms".concat(t?":".concat(t):"")}}},u=n(26025),m=n(42648),d=n(23481),g=n(75896),v=n(20789),f=n(89965),p=n(60376),y=n(83914),h=n(4594),b=n(36511),E=n(35223),C=n(64818);const S={avatarContainer:"oCnQi",cta:"w39NR"};var k=d.T.encloseNamespace("shared.audienceFilterItem"),x=2;function w(e){var t,n,a=e.object.typeId===h.E.User&&e.object,o=e.object.typeId===h.E.Classroom&&e.object,i=e.object.typeId===h.E.ClassroomGroup&&e.object,s=e.object.name;a&&(s+=" ".concat(a.surname));var l=function(e){var t,n;return e.typeId===h.E.User&&(null===(n=null===(t=e.classrooms)||void 0===t?void 0:t.data)||void 0===n?void 0:n.length)?function(e){var t,n=null===(t=e.classrooms)||void 0===t?void 0:t.data;if(null==n?void 0:n.length)return n.length<=x?e.classrooms.data.map((function(e){return e.name})).join(" • "):k("severalClassrooms",{classroom:n[0].name,smartCount:n.length-1})}(e):""}(e.object),c="d-flex align-items-center justify-content-center text-white rounded-circle h-100 w-100",u=function(){return e.onToggleSelected(!e.selected)};return r.createElement("button",{className:"w-100",onClick:u},r.createElement("div",{className:"d-flex align-items-center py-1 ".concat(e.hideCheckbox?"bg-light-hover mx-n3 px-3":"")},!e.hideCheckbox&&r.createElement(f.X,{id:e.object.id,checked:e.selected,onChange:u}),r.createElement("div",{className:"".concat(S.avatarContainer," cursor-pointer me-2")},!!a&&r.createElement(v.q,{imageUrl:null===(t=a.avatar)||void 0===t?void 0:t.url,imageCdnUrl:e.imageCdnUrl,initials:C.l.getInitials(e.object.name,a.surname)}),!!o&&r.createElement("div",{className:c},e.isPinned?r.createElement(p.f,{svgName:E.vn.StarOutline,variant:"yellow",svgSize:y.S.Large}):r.createElement(p.f,{svgName:E.vn.Classrooms,variant:"teal",svgSize:y.S.Large})),!!i&&r.createElement("div",{className:c},r.createElement(p.f,{svgName:E.vn.Group,variant:(0,b.I)(null===(n=i.metadata)||void 0===n?void 0:n.colour)}))),r.createElement("div",null,r.createElement("h4",{className:"text-start font-size-normal fw-normal m-0"},s),!!l&&r.createElement("p",{className:"text-secondary m-0"},l)),e.hideCheckbox&&r.createElement("div",{className:"".concat(S.cta," ms-auto text-secondary")},e.selected&&r.createElement(y.x,{svgName:E.vn.Close}),!e.selected&&r.createElement(y.x,{svgName:E.vn.Plus}))))}var A=n(2997),N=n(2136),I=n(99705),j=n(12778);function T(e){return T="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},T(e)}function U(e,t,n){return(t=function(e){var t=function(e){if("object"!=T(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=T(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==T(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var F=d.T.encloseNamespace("shared.audienceFilterSearch");function O(e){return r.createElement("div",{className:"pt-2 text-center"},r.createElement("p",{className:"m-0"},r.createElement("strong",null,F("noResults",{query:e.query}))),!!e.hasClassroomsFeature&&r.createElement(r.Fragment,null,r.createElement("span",null,F("noResultsSuggestion")," "),r.createElement("a",{href:j.o.getLiteArticle(I.b.Classrooms),target:"_blank",className:"text-info"},F("learnMore"))))}function L(e){return r.createElement(N.E,{onQueryChange:e.setQuery,getRemoteUrl:function(t){var n=s._.safeUrlConcat(e.gatewayApiUrl,"v1/search/users");return s._.urlBuilder(n,U(U({query:t,index:["user","classroom","classroom_group"]},"".concat(A.w.FILTER_PARAM_PREFIX,"customerId"),e.currentUser.customerId),"limit",5))},requestHeaders:{authorization:"Bearer ".concat(e.userToken.value)},formatRemoteSuggestions:function(e){return null==e?void 0:e.results},placeholder:F(e.limitedFeatureSet||!e.hasClassroomsFeature?"placeholderLimited":"placeholder"),suggestionsHeading:F("searchResults"),alwaysRenderSuggestions:!0,resetSuggestionsOnNoActivation:!0,onSuggestionSelected:function(){},shouldUpdateQueryOnSelection:!1,getSuggestionComponent:function(t){var n,a=e.isSelected(t);return r.createElement(w,{object:t,selected:a,onToggleSelected:function(){return e.onSelect({object:t,selected:!a})},imageCdnUrl:e.imageCdnUrl,hideCheckbox:e.hideCheckbox,isPinned:null===(n=e.isPinned)||void 0===n?void 0:n.call(e,t)})},getEmptyStateComponent:function(t){return r.createElement(O,{query:t,hasClassroomsFeature:e.hasClassroomsFeature})},theme:{container:"",suggestionsContainerOpen:"pt-2",suggestion:"",suggestionHighlighted:"",sectionContainer:""},loadingComponentClassName:"pt-2",searchIconPlacement:"left",autoFocusInput:!0,allowableSuggestionFetchRequestedReasons:["input-changed"],debounceTime:200,showClearInputIcon:!0,resetSuggestionsOnClear:!0,onClickClearInput:function(){return e.setQuery("")}})}const R={menu:"H4ti6"};function P(e){return function(e){if(Array.isArray(e))return z(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||G(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function B(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,o,i,s=[],l=!0,c=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=o.call(n)).done)&&(s.push(r.value),s.length!==t);l=!0);}catch(e){c=!0,a=e}finally{try{if(!l&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(c)throw a}}return s}}(e,t)||G(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 G(e,t){if(e){if("string"==typeof e)return z(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)?z(e,t):void 0}}function z(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 H=d.T.encloseNamespace("shared.insightsAudienceFilterMenu"),M=300;function q(e,t){return e?t?e.filter((function(e){return t.some((function(t){return t.toString()===e.id.toString()}))})):e:[]}function _(e){return r.createElement(r.Fragment,null,r.createElement("p",{className:"mb-2 pt-2 px-3"},r.createElement("strong",null,H("filteredBy"))),r.createElement("ul",{className:"list-unstyled px-3 mb-2"},e.selections.map((function(t,n){return r.createElement("li",{key:n},r.createElement(w,{object:t,selected:!0,onToggleSelected:function(){return e.onSelect({object:t,selected:!1})},imageCdnUrl:e.imageCdnUrl,hideCheckbox:!0,isPinned:e.isPinned(t)}))}))))}function D(e){var t;return r.createElement(r.Fragment,null,r.createElement("p",{className:"mt-2 mb-2"},r.createElement("strong",null,H("suggested"))),r.createElement("ul",{className:"list-unstyled m-0"},null===(t=e.pinned)||void 0===t?void 0:t.map((function(t,n){return r.createElement("li",{key:"pinned-".concat(n)},r.createElement(w,{object:t,selected:e.isSelected(t),onToggleSelected:function(n){return e.onSelect({object:t,selected:n})},imageCdnUrl:e.imageCdnUrl,hideCheckbox:!0,isPinned:!0}))})),e.selections.map((function(t,n){return r.createElement("li",{key:"suggestion-".concat(n)},r.createElement(w,{object:t,selected:e.isSelected(t),onToggleSelected:function(n){return e.onSelect({object:t,selected:n})},imageCdnUrl:e.imageCdnUrl,hideCheckbox:!0}))}))))}function Q(e){var t,n=function(e){var t=B(r.useState([]),2),n=t[0],a=t[1];return r.useEffect((function(){a(q(n,e))}),[e]),[n,a]}(e.selectedIds),a=B(n,2),o=a[0],i=a[1],s=g.m.uniq([].concat(P(null!==(t=e.audienceObjects)&&void 0!==t?t:[]),P(o)),"id"),l=q(s,e.selectedIds),c=q(s,e.suggestedIds),u=e.pinnedIds?q(s,e.pinnedIds):[],d=B(r.useState(""),2),v=d[0],f=d[1];function p(t){var n;return!!(null===(n=e.selectedIds)||void 0===n?void 0:n.length)&&e.selectedIds.some((function(e){return e.toString()===t.id.toString()}))}function y(t){var n;return!!(null===(n=e.pinnedIds)||void 0===n?void 0:n.length)&&e.pinnedIds.some((function(e){return e.toString()===t.id.toString()}))}function h(){e.onSelect()}var b=c.filter((function(e){return!p(e)})),E=u.filter((function(e){return!p(e)}));return r.createElement("div",{className:R.menu},r.createElement(m.$B,{autoHeight:!0,autoHeightMax:M},r.createElement("div",{className:"p-3"},r.createElement(L,{onSelect:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];var a=n.filter((function(e){return e.selected})).map((function(e){return e.object})),o=n.filter((function(e){return!e.selected})).map((function(e){return e.object.id}));i((function(e){return[].concat(P(e.filter((function(e){return!o.includes(e.id)}))),P(a))})),e.onSelect.apply(e,n)},isSelected:p,isPinned:y,gatewayApiUrl:e.gatewayApiUrl,userToken:e.userToken,imageCdnUrl:e.imageCdnUrl,currentUser:e.currentUser,limitedFeatureSet:e.limitedFeatureSet,hasClassroomsFeature:e.hasClassroomsFeature,setQuery:f,hideCheckbox:!0}),v.length<3&&(!!b.length||!!E.length)&&r.createElement(D,{selections:b,pinned:E,onSelect:e.onSelect,imageCdnUrl:e.imageCdnUrl,isSelected:p}))),!!l.length&&r.createElement("div",{className:"".concat(c.length?"border-top":""," pb-2")},r.createElement(m.$B,{autoHeight:!0,autoHeightMax:M},r.createElement(_,{selections:l,onSelect:e.onSelect,imageCdnUrl:e.imageCdnUrl,deselectAll:h,isPinned:y})),r.createElement("div",{className:"d-flex justify-content-between pb-1"},r.createElement("button",{className:"btn btn-link p-0 text-secondary px-3",onClick:h},H("reset")),r.createElement("button",{className:"btn btn-link p-0 text-info px-3",onClick:e.onClickApply},H("apply")))))}var V=n(39151),$=n(31949),X=n(57266),Z=n(70680),K=n(4606),Y=n(3010),J=n(37802);function W(e){return W="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},W(e)}function ee(e){return function(e){if(Array.isArray(e))return ne(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||te(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function te(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}}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=d.T.encloseNamespace("shared.audienceFilter");function ae(e){var t=[];return Object.keys(e).forEach((function(n){e[n]&&t.push.apply(t,ee(e[n]))})),t}function oe(e){var t,n,a=(t=r.useState(i.t.deepClone(e)),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,o,i,s=[],l=!0,c=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=o.call(n)).done)&&(s.push(r.value),s.length!==t);l=!0);}catch(e){c=!0,a=e}finally{try{if(!l&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(c)throw a}}return s}}(t,n)||te(t,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),o=a[0],s=a[1];return[o,function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];s(function(e,t){if(!e.length)return{users:null,classrooms:null,classroomGroups:null};var n=Object.assign({},t);return e.forEach((function(e){var t,r;switch(e.object.typeId){case h.E.User:r="users";break;case h.E.Classroom:r="classrooms";break;case h.E.ClassroomGroup:r="classroomGroups"}var a=e.object.id.toString(),o=null!==(t=n[r])&&void 0!==t?t:[];e.selected?o.push(a):o=o.filter((function(e){return e.toString()!==a})),n=Object.assign(Object.assign({},n),function(e,t,n){return(t=function(e){var t=function(e){if("object"!=W(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=W(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==W(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}({},r,g.m.uniq(o)))})),n}(t,o))}]}const ie={toggle:"A0vBV"};function se(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,o,i,s=[],l=!0,c=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=o.call(n)).done)&&(s.push(r.value),s.length!==t);l=!0);}catch(e){c=!0,a=e}finally{try{if(!l&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(c)throw a}}return s}}(e,t)||function(e,t){if(e){if("string"==typeof e)return le(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?le(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function le(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function ce(e){var t,n,s,l,m=u.B.getAudienceAppLinkParams(),d=o.a.useBasicFetch($.N.token()),v=o.a.useBasicFetch($.N.currentUser()),f=o.a.useBasicFetch(V.L.config()),p=o.a.useBasicFetch(c.getPinnedClassrooms(null===(t=v.data)||void 0===t?void 0:t.id)),y=function(e){var t=(0,Z.I0)();function n(t){return c.getPublished(e,t)}return(0,Y.i)(n,(function(e){o.a.getFetch(t)(n(e))}))}(null===(n=v.data)||void 0===n?void 0:n.id),b=function(e,t){var n,r,a,i=(0,K.U)(e.users).users,s=(0,J.r)(null).hasClassrooms,l=o.a.useBasicFetch((null===(n=e.classrooms)||void 0===n?void 0:n.length)&&s&&c.getClassroomsById(e.classrooms)),u=o.a.useBasicFetch((null===(r=e.classroomGroups)||void 0===r?void 0:r.length)&&s&&c.getClassroomGroupsById(e.classroomGroups));if(!s)return i||[];var m=i||[],d=g.m.uniq([].concat(ee(l.data||[]),ee(t||[])),"id"),v=null!==(a=u.data)&&void 0!==a?a:[];return[].concat(ee(m),ee(d),ee(v))}(m,y.items),E=function(e){var t,n,r,a=g.m.uniq(null!==(t=e.classrooms)&&void 0!==t?t:[]),i=g.m.uniq(null!==(n=e.classroomGroups)&&void 0!==n?n:[]),s=g.m.uniq(null!==(r=e.users)&&void 0!==r?r:[]),l=!!a.length&&0===i.length&&0===s.length,u=!!i.length&&0===a.length&&0===s.length,m=!!s.length&&0===a.length&&0===i.length,d=!a.length&&!i.length&&!s.length,v=l&&1===a.length,f=u&&1===i.length,p=o.a.useBasicFetch(v&&c.classroom(a[0])),y=o.a.useBasicFetch(f&&c.classroomGroup(i[0]));if(d)return re("noFilter");if(v){if(!p.data)return;if(p.data.typeId===h.E.Classroom)return p.data.name}if(f){if(!y.data)return;if(y.data.typeId===h.E.ClassroomGroup)return y.data.name}if(l)return re("classrooms",{smartCount:a.length});if(u)return re("groups",{smartCount:i.length});if(m)return re("users",{smartCount:s.length});var b=[];a.length&&b.push(re("classrooms",{smartCount:a.length})),i.length&&b.push(re("groups",{smartCount:i.length})),s.length&&b.push(re("users",{smartCount:s.length}));var E=b.pop();return"".concat(b.join(", ")," ").concat(re("and")," ").concat(E)}(m),C=se(oe(m),2),S=C[0],k=C[1],x=null===(s=p.data)||void 0===s?void 0:s.data.map((function(e){return e.id.toString()})),w={classrooms:function(){var e;return(null===(e=y.items)||void 0===e?void 0:e.length)?y.items.filter((function(e){return!(null==x?void 0:x.includes(e.id.toString()))})).map((function(e){return e.id})):[]}()},A=se(r.useState(!1),2),N=A[0],I=A[1];function j(){X.e.updateParams(i.t.deepClone(S),{merge:!0})}var T=!!f.data&&y.hasCompleted&&p.hasCompleted;if(function(){var e;return!(null===(e=y.items)||void 0===e?void 0:e.length)}())return r.createElement(r.Fragment,null);var U=Object.values(m).some((function(e){return Array.isArray(e)&&e.length>0}));return r.createElement(a.Z,{className:null!==(l=e.className)&&void 0!==l?l:"",onToggle:function(e){I(e),e||j()},show:N},r.createElement(a.Z.Toggle,{id:"audience-filter-toggle",variant:"outline-dark",className:"no-caret ".concat(ie.toggle," ").concat(U?"bg-dark text-white":"")},E),r.createElement(a.Z.Menu,{className:"py-0",align:"end"},T&&r.createElement(Q,{gatewayApiUrl:f.data.gatewayApiUrl,userToken:d.data,audienceObjects:b,selectedIds:ae(S),suggestedIds:ae(w),pinnedIds:x,onSelect:k,imageCdnUrl:f.data.imageCdnUrl,currentUser:v.data,hasClassroomsFeature:e.hasClassroomsFeature,onClickApply:function(){j(),I(!1)}})))}},40391:(e,t,n)=>{n.d(t,{m9:()=>b,Ad:()=>E,Kh:()=>C});var r=n(32735),a=n(23481),o=n(75896),i=n(20789),s=n(18995),l=n(60376),c=n(83914),u=n(36532),m=n(4594),d=n(36511),g=n(35223),v=n(64818);const f={avatarContainer:"ByxQa",sm:"EgJ0v",sharedAvatar:"cW0NT"};var p=a.T.encloseNamespace("reportsShare.sharedToAvatarList");function y(e){var t=o.m.countBy(e,"typeId"),n=t[m.E.User],r=t[m.E.Classroom],a=t[m.E.ClassroomGroup];return n&&r&&a?p("classroomsGroupsAndUsers",{userCount:n,classroomCount:r,groupCount:a}):n&&r?p("classroomsAndUsers",{userCount:n,classroomCount:r}):n&&a?p("groupsAndUsers",{userCount:n,groupCount:a}):r&&a?p("classroomsAndGroups",{classroomCount:r,groupCount:a}):n?p("users",{userCount:n}):r?p("classrooms",{classroomCount:r}):a?p("groups",{groupCount:a}):void 0}function h(e){var t,n,a,o,s,p=(null===(t=e.item)||void 0===t?void 0:t.typeId)===m.E.User&&e.item,y=(null===(n=e.item)||void 0===n?void 0:n.typeId)===m.E.Classroom&&e.item,h=(null===(a=e.item)||void 0===a?void 0:a.typeId)===m.E.ClassroomGroup&&e.item,b="d-flex justify-content-center align-items-center text-white rounded-circle h-100 w-100";return r.createElement(r.Fragment,null,!!p&&r.createElement(u.u,{title:"".concat(p.name," ").concat(p.surname),spanHack:!0,spanHackClassName:"h-100 w-100"},r.createElement(i.q,{imageUrl:null===(o=p.avatar)||void 0===o?void 0:o.url,imageCdnUrl:e.imageCdnUrl,initials:v.l.getInitials(p.name,p.surname),extraClasses:f.sharedAvatar})),!!y&&r.createElement(u.u,{title:y.name,spanHack:!0,spanHackClassName:"h-100 w-100"},r.createElement("div",{className:b},r.createElement(l.f,{svgName:g.vn.Classrooms,svgSize:c.S.Large,variant:"teal"}))),!!h&&r.createElement(u.u,{title:h.name,spanHack:!0,spanHackClassName:"h-100 w-100"},r.createElement("div",{className:b},r.createElement(l.f,{svgName:g.vn.Group,variant:(0,d.I)(null===(s=h.metadata)||void 0===s?void 0:s.colour)}))))}function b(e){return r.createElement("div",{className:"".concat(f.avatarContainer," ").concat("sm"===e.avatarSize?f.sm:"")},r.createElement(u.u,{title:p("anonymous"),spanHack:!0,spanHackClassName:"bg-light text-dark d-flex justify-content-center align-items-center rounded-circle h-100 w-100"},r.createElement(c.x,{svgName:g.vn.Anonymous,size:"sm"===e.avatarSize?c.S.Small:null})))}function E(e){return r.createElement("div",{className:"".concat(f.avatarContainer," ").concat("sm"===e.avatarSize?f.sm:"")},r.createElement(u.u,{title:e.text||p("sharedLink"),spanHack:!0,spanHackClassName:"bg-light text-dark d-flex justify-content-center align-items-center rounded-circle h-100 w-100 ".concat(e.className||"")},r.createElement(c.x,{svgName:g.vn.Link,size:"sm"===e.avatarSize?c.S.Small:null})))}function C(e){return r.createElement(s.e,Object.assign({},e,{items:e.recipients,avatarItem:h,avatarContainerClassname:"".concat(f.avatarContainer," ").concat("sm"===e.avatarSize?f.sm:""),getHiddenTooltip:y,hasShareLink:e.hasShareLink,shareLinkText:e.shareLinkText}))}C.defaultProps={maxAvatars:5}},65853:(e,t,n)=>{n.d(t,{R:()=>d});var r=n(23481),a=n(110),o=n(4594),i=n(49080),s=n(26361),l=n(35223),c=n(31908);function u(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var m=r.T.encloseNamespace("share.shareLinkInfo"),d={getPrivateIconAndText:function(e){var t=e.entityTypeId,n=e.privacy,r=e.hasStudentExp,a=e.entity,i=e.yearGroups;if(t===o.E.Topic||t===o.E.Series)return{icon:l.vn.VisibleOn,text:m(r?"justMySchoolTeachers":"justMySchoolDescription")};if(!Array.isArray(n))switch(n.privacy){case"public":return{icon:l.vn.VisibleOn,text:m("publicDescription")};case"protected":return n.overrideRestrictions?{icon:l.vn.VisibleOn,text:m("clickViewOnly")}:{icon:l.vn.Lock,text:d.getRespectRatingText(a,i,r)};case"just_my_customer":return n.overrideRestrictions?{icon:l.vn.Lock,text:m(r?"justMySchoolTeachers":"justMySchoolDescription")}:{icon:l.vn.Lock,text:d.getRespectRatingText(a,i,r)};case"restricted":case"private":return{icon:l.vn.Lock,text:m("privateDescription")};default:return{}}},getIconAndText:function(e){var t=e.linkExpireDate,n=e.isPasswordProtected,r=e.status;if(!t&&!n)return d.getPrivateIconAndText(e);if(!t)return{icon:l.vn.Lock,text:m("password")};var o=a.O.isToday(t),s=a.O.diffBetween(t,new Date,"day");if(!n){var c=o?m("expiryToday"):m("expiry",{days:s});return r===i.F.Expired&&(c=m("expired")),{icon:l.vn.Timer,text:c}}var u=o?m("passwordExpiryToday"):m("passwordExpiry",{days:s});return r===i.F.Expired&&(u=m("passwordExpired")),{icon:l.vn.Lock,text:u}},getRespectRatingText:function(e,t,n){var r;if(!e||!t)return null;if(n)return m("justMySchoolTeachers");if(!c.M.isVideoType(e))return m("collectionRating");var a=s.l.getWeightedRestriction(null===(r=e._restrictions)||void 0===r?void 0:r.value);if(a&&!a.yearGroup)return m("onlyAdmins");var o,i,l,d=c.M.getRating(e),g=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return u(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?u(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,a=function(){};return{s:a,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:a}}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 o,i=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return i=e.done,e},e:function(e){s=!0,o=e},f:function(){try{i||null==n.return||n.return()}finally{if(s)throw o}}}}(t);try{for(g.s();!(l=g.n()).done;){var v=l.value;(!o||v.value>o.value)&&(o=v),a&&v.value<=a.yearGroup||d&&v.rating.value<d.value||(!i||v.value<i.value)&&(i=v)}}catch(e){g.e(e)}finally{g.f()}return i?1===t.length?m("clickViewOnly"):i.value===o.value?m("maxYearGroup",{yearGroup:o.name}):m("yearGroupRange",{yearGroup:i.name}):m("onlyStaff")}}},86509:(e,t,n)=>{n.d(t,{m:()=>p});var r=n(32735),a=n(91967),o=n(81886),i=n(45157),s=n(49985),l=n(36848),c=n(83914),u=n(36532),m=n(35223);const d={dropdownToggle:"UCAnJ"};function g(){return r.createElement(r.Fragment,null,r.createElement("div",{style:{padding:"0.53125rem 1rem"}},r.createElement("div",{className:"partial-loading-background",style:{height:"1.0625rem",width:"8rem"}})),r.createElement("div",{style:{padding:"0.53125rem 1rem"}},r.createElement("div",{className:"partial-loading-background",style:{height:"1.0625rem",width:"12rem"}})),r.createElement("div",{style:{padding:"0.53125rem 1rem"}},r.createElement("div",{className:"partial-loading-background",style:{height:"1.0625rem",width:"11rem"}})),r.createElement("div",{style:{padding:"0.53125rem 1rem"}},r.createElement("div",{className:"partial-loading-background",style:{height:"1.0625rem",width:"9rem"}})))}function v(e){var t="dropdown-item";return e&&(t+=" ".concat(e)),t}function f(e){var t=a.q.isFunction(e.action.label)?e.action.label:function(){return r.createElement(r.Fragment,null,e.action.label)};if(e.action.appLink)return r.createElement(l.F,{appLink:e.action.appLink,onClick:e.action.onClick,className:v(e.action.className),analyticsData:e.action.analyticsData,analyticsOptions:e.action.analyticsOptions,openInNewTab:e.action.openInNewTab,disabled:e.action.disabled},e.action.svgName&&r.createElement(c.x,{svgName:e.action.svgName,className:"d-inline-block svg-container me-2 align-middle"}),r.createElement("span",{className:"align-middle"},t()));function n(t){t.preventDefault(),e.action.analyticsData&&e.action.analyticsOptions&&s.k.logUserAction(e.action.analyticsData,e.action.analyticsOptions),a.q.isFunction(e.action.onClick)&&e.action.onClick(),e.action.href&&o.Q.Ab.PageLoad(e.action.href,e.action.openInNewTab)}return e.action.href?r.createElement("a",{className:v(e.action.className),onClick:n,href:e.action.href},e.action.svgName&&r.createElement(c.x,{svgName:e.action.svgName,className:"d-inline-block svg-container me-2 align-middle"}),r.createElement("span",{className:"align-middle"},t())):r.createElement("span",{className:"cursor-pointer ".concat(v(e.action.className)),onClick:n,role:"button",tabIndex:0,onKeyDown:function(e){return"Enter"===e.key&&n(e)}},e.action.svgName&&r.createElement(c.x,{svgName:e.action.svgName,className:"d-inline-block svg-container me-2"}),t())}function p(e){if(!e.actions||!e.actions.length)return r.createElement(r.Fragment,null);var t=e.actions.some((function(e){return e.lazyPlaceholder})),n="dropdown";e.className&&(n+=" ".concat(e.className));var a,o="actions-dropdown-".concat(i.Y.getRandomInt()),s="dropdown-toggle px-0 ".concat(d.dropdownToggle);return e.dropdownToggleClassName&&(s+=" ".concat(e.dropdownToggleClassName)),r.createElement("div",{className:n},r.createElement("button",{className:s,type:"button",id:o,"data-bs-toggle":"dropdown","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false","aria-label":"More actions dropdown",onClick:t?e.fetchMore:null},r.createElement(c.x,{svgName:m.vn.More,size:e.dropdownToggleSvgSize})),r.createElement("ul",{className:"dropdown-menu dropdown-menu-end dropdown-menu-right font-size-normal","aria-labelledby":o},t?r.createElement(g,null):e.actions.map((function(e,t){var n=void 0!==a&&a!==e.group;return a=e.group,e.tooltip?r.createElement("li",{key:t},n&&r.createElement("hr",{className:"dropdown-divider",role:"separator"}),r.createElement(u.u,{title:e.tooltip,spanHack:!0},r.createElement(f,{action:e}))):r.createElement("li",{key:t},n&&r.createElement("hr",{className:"dropdown-divider",role:"separator"}),r.createElement(f,{action:e}))}))))}p.defaultProps={dropdownToggleClassName:"btn btn-light",dropdownToggleSvgSize:c.S.Small}},18995:(e,t,n)=>{n.d(t,{e:()=>l});var r=n(32735),a=n(23481),o=n(40391),i=n(36532),s=a.T.encloseNamespace("shared.avatarList");function l(e){var t=e.items.length>e.maxAvatars?e.items.slice(0,e.maxAvatars-1):e.items,n=e.items.length>t.length?e.items.slice(e.maxAvatars-1):[],a=e.avatarItem,l=n.length,c="sm"===e.avatarSize?4:8;function u(t){return{transform:"translateX(".concat((e.hasShareLink?t+1:t)*-c,"px)"),zIndex:e.maxAvatars-t}}return 0===t.length&&0===n.length?r.createElement(r.Fragment,null):r.createElement("div",{className:"d-flex",style:{marginRight:"-".concat((t.length-1+(n.length?1:0)+(e.hasShareLink?1:0))*c,"px")}},e.hasShareLink&&r.createElement("div",{style:{zIndex:e.maxAvatars+1}},r.createElement(o.Ad,{text:e.shareLinkText,avatarSize:e.avatarSize,className:"bg-dark text-white"})),t.map((function(t,n){return r.createElement("div",{className:"".concat(e.avatarContainerClassname||""),key:t.id,style:u(n)},r.createElement(a,{item:t,imageCdnUrl:e.imageCdnUrl,index:n,maxAvatars:e.maxAvatars}))})),!!n.length&&r.createElement("div",{className:"".concat(e.avatarContainerClassname||""," bg-white rounded-circle"),style:{transform:"translateX(".concat(t.length*-c,"px)"),zIndex:e.maxAvatars-t.length}},r.createElement(i.u,{title:e.getHiddenTooltip?e.getHiddenTooltip(n):e.roleToDisplay?s("staff"===e.roleToDisplay?"staff":"student",{count:l,smartCount:l}):s("users",{count:l,smartCount:l}),spanHack:!0,spanHackClassName:"h-100 w-100"},r.createElement("div",{className:"d-flex justify-content-center align-items-center border border-dark rounded-circle h-100 w-100 ".concat(e.numberClassname||"")},"+".concat(n.length)))))}l.defaultProps={maxAvatars:5}},99705:(e,t,n)=>{var r,a;n.d(t,{b:()=>a}),function(e){e.AddToPlaylist="115005679748",e.EditSsoAccounts="8202508040345",e.LibraryEditor="360001974533",e.VideoAccess="360000153947",e.AddFromOnline="360011718234",e.UploadToLibraryEditor="360012069334",e.PBTErrorCodes="360012421153",e.ManuelReview="360020004534",e.LibraryReview="360000163788"}(r||(r={})),function(e){e.Integrations="4407268725529",e.Classrooms="4405362551833",e.MakeInteractive="4405370510873",e.EditSsoAccounts="8202605666073",e.UploadToLibraryEditor="10672936659865",e.AddFromLite="10671345281561",e.ManageSsoYearGroups="14691130889241",e.ContentReview="18525199576601",e.ContentPermissions="14692125209497",e.AccessSettings="27927466562201",e.ContentGuidelines="24133696186009",e.FoxtelFaq="24133519542169",e.ViviIntegration="23826297956377",e.AppleTvIntegration="25832373739929",e.RssFeed="32567445635097",e.ManageGroupPermissions="35407217335705"}(a||(a={}))},62875:(e,t,n)=>{function r(e,t,n){var r="".concat(e,":").concat(t.start,":").concat(t.end),a=Array.isArray(t.userId)?t.userId.sort().join(":"):t.userId,o=Array.isArray(t.groupId)?t.groupId.sort().join(":"):t.groupId;return a&&(r+=":".concat(a)),o&&(r+=":".concat(o)),n&&(r+=":".concat(n)),r}n.d(t,{H:()=>r})},57266:(e,t,n)=>{n.d(t,{e:()=>i});var r=n(81886),a=n(1048),o=n(75795),i={updateParams:function(e,t){var n=o.O.getCurrentRoute().appLink,i="string"==typeof n.params?r.Q.Ab.DeserializeQueryParams(n.params):n.params;t.keysToRemove&&(i=a.t.omit(i,t.keysToRemove));var s=(null==t?void 0:t.merge)?Object.assign(Object.assign({},i),e):e,l=Object.assign(Object.assign({},n),{params:s});a.t.isEqual(n,l)||r.Q.C$.trigger(l,a.t.omit(t,["merge","keysToRemove"]))}}},36511:(e,t,n)=>{n.d(t,{I:()=>a});var r=n(40424);function a(e){switch(e){case r.R.Pink:return"pink";case r.R.Orange:return"orange";case r.R.Green:return"green";case r.R.Blue:return"blue";case r.R.Purple:return"purple";case r.R.Indigo:return"indigo";default:return"pink"}}},11293:(e,t,n)=>{n.d(t,{p:()=>d});var r=n(32735),a=n(57900),o=n(2948),i=n(10874),s=n(83345),l=n(35223),c=n(86702);function u(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var m="lite.insightsAdminAlert";function d(e){var t,n,d=(t=(0,o.D)(c.y.INSIGHTS_ADMIN_ALERT,!0,{storage:a.Z1.LocalStorage}),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,o,i,s=[],l=!0,c=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=o.call(n)).done)&&(s.push(r.value),s.length!==t);l=!0);}catch(e){c=!0,a=e}finally{try{if(!l&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(c)throw a}}return s}}(t,n)||function(e,t){if(e){if("string"==typeof e)return u(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?u(e,t):void 0}}(t,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),g=d[0],v=d[1];return e.hasAnalytics&&g?r.createElement("div",{role:"alert",className:"d-flex justify-content-between align-items-center bg-light-blue rounded p-2 mb-4"},r.createElement("div",null,r.createElement(s.x,{namespace:m,phrase:"adminAlert"}),r.createElement("a",{className:"text-info",href:e.analyticsUrl,target:"_blank"},r.createElement(s.x,{namespace:m,phrase:"analytics"})),"."),r.createElement(i.h,{svgName:l.vn.Close,className:"text-blue",onClick:function(){v(!1)}})):r.createElement(r.Fragment,null)}},24758:(e,t,n)=>{n.d(t,{A:()=>s});var r=n(32735),a=n(40391),o=n(83345),i="myShares.sharedToPill";function s(e){var t=e.shareRecipients;return r.createElement("div",{className:"d-flex align-items-center bg-gray-100 rounded-pill w-fit gap-2 p-2"},r.createElement("span",{className:"text-nowrap"},r.createElement(o.x,{namespace:i,phrase:t?"sharedTo":"sharedVia"})),!t&&r.createElement(a.Ad,{text:e.shareLinkText,avatarSize:"sm",className:"bg-dark text-white"}),t&&!(null==t?void 0:t.length)&&r.createElement(a.m9,{avatarSize:"sm"}),t&&r.createElement(a.Kh,{recipients:t,imageCdnUrl:e.imageCdnUrl,maxAvatars:e.maxAvatars,avatarSize:"sm",hasShareLink:e.hasShareLink,shareLinkText:e.shareLinkText}))}s.defaultProps={maxAvatars:3}}}]);
|
|
2
|
-
//# sourceMappingURL=1755-462bcd99e9-lite.chunk.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scripts/1755-462bcd99e9-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/apps/analytics/hooks/UseEngagementUsers.ts","file:///app/packages/libs/shared/src/apps/analytics/utils/AnalyticsFilterUtils.ts","file:///app/packages/libs/shared/src/apps/analytics/flight-requests/ClassroomRequests.ts","file:///app/packages/libs/shared/src/apps/analytics/views/audience-filter/components/audience-filter-item/audience-filter-item.scss","file:///app/packages/libs/shared/src/apps/analytics/views/audience-filter/components/audience-filter-item/AudienceFilterItem.tsx","file:///app/packages/libs/shared/src/apps/analytics/views/audience-filter/components/audience-filter-search/AudienceFilterSearch.tsx","file:///app/packages/libs/shared/src/apps/analytics/views/audience-filter/components/insights-filter-menu/insights-audience-filter-menu.scss","file:///app/packages/libs/shared/src/apps/analytics/views/audience-filter/components/insights-filter-menu/InsightsAudienceFilterMenu.tsx","file:///app/packages/libs/shared/src/apps/analytics/views/audience-filter/AudienceFilterViewUtils.ts","file:///app/packages/libs/shared/src/apps/analytics/views/audience-filter/audience-filter.scss","file:///app/packages/libs/shared/src/apps/analytics/views/audience-filter/AudienceFilterView.tsx","file:///app/packages/libs/shared/src/apps/share/components/shared-to-avatar-list/shared-to-avatar-list.scss","file:///app/packages/libs/shared/src/apps/share/components/shared-to-avatar-list/SharedToAvatarList.tsx","file:///app/packages/libs/shared/src/apps/share/utils/ShareLinkHelper.ts","file:///app/packages/libs/shared/src/components/actions/actions.scss","file:///app/packages/libs/shared/src/components/actions/ActionsDropdown.tsx","file:///app/packages/libs/shared/src/components/avatar-list/AvatarList.tsx","file:///app/packages/libs/shared/src/enums/SupportArticle.ts","file:///app/packages/libs/shared/src/utils/AnalyticsRequestUtils.ts","file:///app/packages/libs/shared/src/utils/AppRouteHelper.ts","file:///app/packages/libs/shared/src/utils/GroupHelper.ts","file:///app/packages/projects/lite/src/apps/insights/views/insights-admin-alert/InsightsAdminAlert.tsx","file:///app/packages/projects/lite/src/apps/my-shares/components/shared-to-pill/SharedToPill.tsx"],"sourcesContent":["import { Flight } from 'libs/common/react/index';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { User } from 'libs/shared/interfaces';\n\nexport function useChunkedUsersResponse(usersIds: string[]) {\n const userIdChunks = ArrayHelper.chunk<string>(usersIds ?? [], 25);\n const usersResponse = Flight.useBasicFetchAll<User[]>(userIdChunks.map(chunk => UserRequests.getById(chunk)));\n const users = ArrayHelper.flatten<User>(usersResponse.data);\n return { users, isLoading: !usersResponse.hasCompleted, usersResponse };\n}","import { HashObject } from 'libs/common/react/interfaces';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\nimport { AudienceQueryParams } from 'libs/shared/apps/analytics/interfaces/AudienceQueryParams';\nimport { DateRangeQueryParams } from 'libs/shared/apps/analytics/interfaces/DateRangeQueryParams';\nimport { ContextService } from 'libs/shared/services/ContextService';\n\nexport const AnalyticsFilterHelper = {\n getAudienceAppLinkParams: () => {\n const { appLink } = ContextService.getCurrentRoute();\n const params = ObjectHelper.isObject(appLink.params) ? appLink.params as HashObject : {};\n const { users, classrooms, classroomGroups } = params;\n\n const getParam = (key: keyof AudienceQueryParams) => {\n const param = params[key];\n\n if (!param)\n return;\n\n return Array.isArray(param) ? param : [param];\n };\n\n const audienceFilters: AudienceQueryParams = {};\n\n if (users)\n audienceFilters.users = getParam('users');\n\n if (classrooms)\n audienceFilters.classrooms = getParam('classrooms');\n\n if (classroomGroups)\n audienceFilters.classroomGroups = getParam('classroomGroups');\n\n return audienceFilters;\n },\n getDateRangeAppLinkParams: () => {\n const { appLink } = ContextService.getCurrentRoute();\n const params = ObjectHelper.isObject(appLink.params) ? appLink.params as HashObject : {};\n const { from, to, rangeName } = params;\n\n const dateRangeFilters: DateRangeQueryParams = {};\n\n if (from)\n dateRangeFilters.from = from;\n\n if (to)\n dateRangeFilters.to = to;\n\n if (rangeName)\n dateRangeFilters.rangeName = rangeName;\n\n return dateRangeFilters;\n }\n};","import { Xhr } from 'libs/common/backbone/interfaces';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/flight';\n\nimport { HashObject } from 'libs/analytics/interfaces';\n\nimport { ObjectStatus } from 'libs/shared/enums/ObjectStatus';\nimport { ClassroomCollection } from 'libs/shared/interfaces';\n\nexport const ClassroomRequests = {\n classroom(id: string): Flight.Request {\n return {\n url: `{gateway}/v1/objects/${id}`,\n key: `classroom:${id}`\n };\n },\n\n classroomGroup(id: string): Flight.Request {\n return {\n url: `{gateway}/v1/objects/${id}?query=classroom`,\n key: `classroom:group:${id}:classroom`\n };\n },\n\n getClassroomsById(ids: string[]): Flight.Request {\n ids.sort();\n \n const query = `users[count()]{limit:0}&${ids.map(id => `id=${id}`).join('&')}`;\n\n return {\n url: `{gateway}/v1/objects?query=${query}`,\n key: `classrooms:${ids.join(',')}`\n };\n },\n\n getClassroomGroupsById(ids: string[]): Flight.Request {\n ids.sort();\n\n const query = `users[count()]{limit:0}&${ids.map(id => `id=${id}`).join('&')}`;\n\n return {\n url: `{gateway}/v1/objects?query=${query}`,\n key: `classroom:groups:${ids.join(',')}`\n };\n },\n\n userClassrooms(\n cursor?: string,\n success?: (classrooms: ClassroomCollection) => void,\n error?: (xhr: Xhr) => void,\n always?: () => void\n ): Flight.Request {\n return {\n url: UrlHelper.urlBuilder(`{gateway}/v1/classrooms`, { cursor }),\n key: `user:classrooms${cursor ? `:${cursor}` : ''}`,\n success,\n error,\n always\n };\n },\n\n getPinnedClassrooms(userId: string): Flight.Request {\n return {\n url: UrlHelper.urlBuilder(`{gateway}/v1/objects/${userId}/members`, {\n query: `favouriteClassrooms[favouritedBy{id:${userId}},_integrations,enrolments[user]{role:'owner'}]{status:${ObjectStatus.Active},limit:100,orderby:name}`\n }),\n key: 'pinned:classrooms',\n normalize: false\n };\n },\n\n \n getPublished(userId: string, cursor: string = ''): Flight.Request {\n const params: HashObject = {\n query: `{orderby:name,status:${ObjectStatus.Active}}favouritedBy{id:${userId}},_integrations,enrolments[user]{role:'owner'}`\n };\n\n if (cursor)\n params.cursor = cursor;\n\n return {\n url: UrlHelper.urlBuilder('{gateway}/v1/classrooms', params),\n key: `published:classrooms${cursor ? `:${cursor}` : ''}`\n };\n }\n};","// extracted by mini-css-extract-plugin\nexport default {\"avatarContainer\":\"oCnQi\",\"cta\":\"w39NR\"};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { Avatar } from 'libs/shared/components/avatar/Avatar';\nimport { Checkbox } from 'libs/shared/components/forms/form-checkbox/Checkbox';\nimport { IconCircle } from 'libs/shared/components/icon-circle/IconCircle';\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { Classroom, ClassroomGroup, User } from 'libs/shared/interfaces';\nimport { mapColourToBsVariant } from 'libs/shared/utils/GroupHelper';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\nimport { UserHelper } from 'libs/shared/utils/UserHelper';\n\nimport styles from './audience-filter-item.scss';\n\nconst namespace = 'shared.audienceFilterItem';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ntype AudienceObject = User | Classroom | ClassroomGroup;\n\nconst CLASSROOM_DISPLAY_LIMIT = 2;\n\nfunction getClassroomPhrase(user: User): string {\n const classrooms = user.classrooms?.data;\n if (!classrooms?.length)\n return;\n\n if (classrooms.length <= CLASSROOM_DISPLAY_LIMIT)\n return user.classrooms.data.map(c => c.name).join(' • ');\n\n return getPhrase('severalClassrooms', { classroom: classrooms[0].name, smartCount: classrooms.length - 1 });\n}\n\nfunction getSubHeading(object: AudienceObject): string {\n if (object.typeId === MasterType.User && (object as User).classrooms?.data?.length)\n return getClassroomPhrase(object as User);\n\n return '';\n}\n\ninterface AudienceFilterItemProps {\n object: AudienceObject;\n selected: boolean;\n onToggleSelected: (selected: boolean) => void;\n imageCdnUrl: string;\n hideCheckbox?: boolean;\n isPinned?: boolean;\n}\n\nexport function AudienceFilterItem(props: AudienceFilterItemProps): JSX.Element {\n const user = props.object.typeId === MasterType.User && (props.object as User);\n const classroom = props.object.typeId === MasterType.Classroom && (props.object as Classroom);\n const classroomGroup = props.object.typeId === MasterType.ClassroomGroup && (props.object as ClassroomGroup);\n\n let name = props.object.name;\n\n if (user)\n name += ` ${user.surname}`;\n\n const subHeading = getSubHeading(props.object);\n const svgContainerClassName = 'd-flex align-items-center justify-content-center text-white rounded-circle h-100 w-100';\n const onSelect = () => props.onToggleSelected(!props.selected);\n\n return (\n <button\n className='w-100'\n onClick={onSelect}\n >\n <div className={`d-flex align-items-center py-1 ${props.hideCheckbox ? 'bg-light-hover mx-n3 px-3' : ''}`}>\n {!props.hideCheckbox && (\n <Checkbox\n id={props.object.id}\n checked={props.selected}\n onChange={onSelect}\n />\n )}\n <div className={`${styles.avatarContainer} cursor-pointer me-2`}>\n {!!user &&\n <Avatar\n imageUrl={user.avatar?.url}\n imageCdnUrl={props.imageCdnUrl}\n initials={UserHelper.getInitials(props.object.name, user.surname)}\n />\n }\n {!!classroom &&\n <div className={svgContainerClassName}>\n {props.isPinned\n ? <IconCircle svgName={cvSvgLibrary.StarOutline} variant='yellow' svgSize={SvgContainerSize.Large} />\n : <IconCircle svgName={cvSvgLibrary.Classrooms} variant='teal' svgSize={SvgContainerSize.Large} />\n }\n </div>\n }\n {!!classroomGroup &&\n <div className={svgContainerClassName}>\n <IconCircle\n svgName={cvSvgLibrary.Group}\n variant={mapColourToBsVariant(classroomGroup.metadata?.colour)}\n />\n </div>\n }\n </div>\n <div>\n <h4 className='text-start font-size-normal fw-normal m-0'>{name}</h4>\n {!!subHeading &&\n <p className='text-secondary m-0'>{subHeading}</p>\n }\n </div>\n {\n props.hideCheckbox && (\n <div className={`${styles.cta} ms-auto text-secondary`}>\n {props.selected && <SvgContainer svgName={cvSvgLibrary.Close} />}\n {!props.selected && <SvgContainer svgName={cvSvgLibrary.Plus} />}\n </div>\n )\n }\n </div >\n </button >\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AudienceSelection } from 'libs/shared/apps/analytics/views/audience-filter/AudienceFilterViewUtils';\nimport { AudienceFilterItem } from 'libs/shared/apps/analytics/views/audience-filter/components/audience-filter-item/AudienceFilterItem';\nimport { FilterConstants } from 'libs/shared/apps/search/constants/FilterConstants';\nimport { SearchBar } from 'libs/shared/components/search-bar/SearchBar';\nimport { LiteSupportArticle } from 'libs/shared/enums/SupportArticle';\nimport { BaseObject, CurrentUser, ShareSearchResponse } from 'libs/shared/interfaces';\nimport { ArticleHelper } from 'libs/shared/utils/ArticleHelper';\n\nconst namespace = 'shared.audienceFilterSearch';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface EmptySearchResultsProps {\n query: string;\n hasClassroomsFeature: boolean;\n}\n\nfunction EmptySearchResults(props: EmptySearchResultsProps): JSX.Element {\n return (\n <div className='pt-2 text-center'>\n <p className='m-0'><strong>{getPhrase('noResults', { query: props.query })}</strong></p>\n {!!props.hasClassroomsFeature &&\n <>\n <span>{getPhrase('noResultsSuggestion')} </span>\n <a href={ArticleHelper.getLiteArticle(LiteSupportArticle.Classrooms)} target='_blank' className='text-info'>\n {getPhrase('learnMore')}\n </a>\n </>\n }\n </div>\n );\n}\n\ninterface AudienceFilterSearchProps {\n onSelect: (...selection: AudienceSelection[]) => void;\n isSelected: (object: BaseObject) => boolean;\n isPinned?: (object: BaseObject) => boolean;\n gatewayApiUrl: string;\n userToken: HashObject;\n currentUser: CurrentUser;\n imageCdnUrl: string;\n hasClassroomsFeature?: boolean;\n limitedFeatureSet?: boolean;\n hideCheckbox?: boolean;\n setQuery?: (query: string) => void;\n}\n\nexport function AudienceFilterSearch(props: AudienceFilterSearchProps): JSX.Element {\n function getRemoteUrl(query: string): string {\n const baseUrl = UrlHelper.safeUrlConcat(props.gatewayApiUrl, 'v1/search/users');\n\n const indices = [ 'user', 'classroom', 'classroom_group' ];\n\n return UrlHelper.urlBuilder(baseUrl, {\n query,\n index: indices,\n [`${FilterConstants.FILTER_PARAM_PREFIX}customerId`]: props.currentUser.customerId,\n limit: 5\n });\n }\n\n return (\n <SearchBar\n onQueryChange={props.setQuery}\n getRemoteUrl={getRemoteUrl}\n requestHeaders={{\n authorization: `Bearer ${props.userToken.value}`\n }}\n formatRemoteSuggestions={(suggestions: ShareSearchResponse) => suggestions?.results}\n placeholder={getPhrase(props.limitedFeatureSet || !props.hasClassroomsFeature ? 'placeholderLimited' : 'placeholder')}\n suggestionsHeading={getPhrase('searchResults')}\n alwaysRenderSuggestions\n resetSuggestionsOnNoActivation\n onSuggestionSelected={() => { }} // Do nothing as AudienceFilterItem handles selection itself\n shouldUpdateQueryOnSelection={false}\n getSuggestionComponent={suggestion => {\n const isSelected = props.isSelected(suggestion);\n\n return (\n <AudienceFilterItem\n object={suggestion}\n selected={isSelected}\n onToggleSelected={() => props.onSelect({ object: suggestion, selected: !isSelected })}\n imageCdnUrl={props.imageCdnUrl}\n hideCheckbox={props.hideCheckbox}\n isPinned={props.isPinned?.(suggestion)}\n />\n );\n }}\n getEmptyStateComponent={query =>\n <EmptySearchResults query={query} hasClassroomsFeature={props.hasClassroomsFeature} />\n }\n theme={{\n container: '',\n suggestionsContainerOpen: 'pt-2',\n suggestion: '',\n suggestionHighlighted: '',\n sectionContainer: ''\n }}\n loadingComponentClassName='pt-2'\n searchIconPlacement='left'\n autoFocusInput\n allowableSuggestionFetchRequestedReasons={['input-changed']}\n debounceTime={200}\n showClearInputIcon\n resetSuggestionsOnClear\n onClickClearInput={() => props.setQuery('')}\n />\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"menu\":\"H4ti6\"};","import React from 'react';\nimport { Scrollbars } from 'react-custom-scrollbars-2';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { AudienceSelection } from 'libs/shared/apps/analytics/views/audience-filter/AudienceFilterViewUtils';\nimport { AudienceFilterItem } from 'libs/shared/apps/analytics/views/audience-filter/components/audience-filter-item/AudienceFilterItem';\nimport { AudienceFilterSearch } from 'libs/shared/apps/analytics/views/audience-filter/components/audience-filter-search/AudienceFilterSearch';\nimport { BaseObject, CurrentUser } from 'libs/shared/interfaces';\n\nimport styles from './insights-audience-filter-menu.scss';\n\nconst namespace = 'shared.insightsAudienceFilterMenu';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst MAX_HEIGHT = 300;\n\nfunction filterAudienceById(audience?: BaseObject[], ids?: string[]): BaseObject[] {\n if (!audience)\n return [];\n\n if (!ids)\n return audience;\n\n return audience.filter(a => ids.some(id => id.toString() === a.id.toString()));\n}\n\nfunction useSearchSelections(\n selectedIds?: string[]\n): [BaseObject[], React.Dispatch<React.SetStateAction<BaseObject[]>>] {\n const [ searchSelections, setSearchSelections ] = React.useState<BaseObject[]>([]);\n\n /**\n * If a search selection is deselected externally, we want to remove it from state.\n */\n React.useEffect(() => {\n setSearchSelections(filterAudienceById(searchSelections, selectedIds));\n }, [selectedIds]);\n\n return [ searchSelections, setSearchSelections ];\n}\n\ninterface BaseAudienceListProps {\n selections: BaseObject[];\n pinned?: BaseObject[];\n onSelect: (...selection: AudienceSelection[]) => void;\n isPinned?: (object: BaseObject) => boolean;\n deselectAll?: () => void;\n imageCdnUrl: string;\n}\n\nfunction SelectedAudienceList(props: BaseAudienceListProps): JSX.Element {\n return (\n <>\n <p className='mb-2 pt-2 px-3'><strong>{getPhrase('filteredBy')}</strong></p>\n\n <ul className='list-unstyled px-3 mb-2'>\n {props.selections.map((s, idx) => (\n <li key={idx}>\n <AudienceFilterItem\n object={s}\n selected\n onToggleSelected={() => props.onSelect({ object: s, selected: false })}\n imageCdnUrl={props.imageCdnUrl}\n hideCheckbox\n isPinned={props.isPinned(s)}\n />\n </li>\n ))}\n </ul>\n </>\n );\n}\n\ninterface SuggestedAudienceListProps extends BaseAudienceListProps {\n isSelected: (object: BaseObject) => boolean;\n}\n\nfunction SuggestedAudienceList(props: SuggestedAudienceListProps): JSX.Element {\n return (\n <>\n <p className='mt-2 mb-2'><strong>{getPhrase('suggested')}</strong></p>\n <ul className='list-unstyled m-0'>\n {props.pinned?.map((s, idx) => (\n <li key={`pinned-${idx}`}>\n <AudienceFilterItem\n object={s}\n selected={props.isSelected(s)}\n onToggleSelected={(selected: boolean) => props.onSelect({ object: s, selected })}\n imageCdnUrl={props.imageCdnUrl}\n hideCheckbox\n isPinned\n />\n </li>\n ))}\n {props.selections.map((s, idx) => {\n return (\n <li key={`suggestion-${idx}`}>\n <AudienceFilterItem\n object={s}\n selected={props.isSelected(s)}\n onToggleSelected={(selected: boolean) => props.onSelect({ object: s, selected })}\n imageCdnUrl={props.imageCdnUrl}\n hideCheckbox\n />\n </li>\n );\n })}\n </ul>\n </>\n );\n}\n\ninterface InsightsAudienceFilterMenuProps {\n onSelect: (...selection: AudienceSelection[]) => void;\n gatewayApiUrl: string;\n userToken: HashObject;\n imageCdnUrl: string;\n currentUser: CurrentUser;\n audienceObjects?: BaseObject[];\n selectedIds?: string[];\n suggestedIds?: string[];\n limitedFeatureSet?: boolean;\n pinnedIds?: string[];\n hasClassroomsFeature?: boolean;\n onClickApply?: () => void;\n}\n\nexport function InsightsAudienceFilterMenu(props: InsightsAudienceFilterMenuProps): JSX.Element {\n const [ searchSelections, setSearchSelections ] = useSearchSelections(props.selectedIds);\n const audienceObjects = ArrayHelper.uniq([ ...(props.audienceObjects ?? []), ...searchSelections ], 'id');\n\n const selections = filterAudienceById(audienceObjects, props.selectedIds);\n const suggestions = filterAudienceById(audienceObjects, props.suggestedIds);\n const pinnedSuggestions = props.pinnedIds ? filterAudienceById(audienceObjects, props.pinnedIds) : [];\n\n const [ query, setQuery ] = React.useState('');\n\n function isSelected(object: BaseObject): boolean {\n if (!props.selectedIds?.length)\n return false;\n\n return props.selectedIds.some(id => id.toString() === object.id.toString());\n }\n\n function isPinned(object: BaseObject): boolean {\n if (!props.pinnedIds?.length)\n return false;\n\n return props.pinnedIds.some(id => id.toString() === object.id.toString());\n }\n\n function deselectAll(): void {\n props.onSelect();\n }\n\n function onSelectSearchResult(...selection: AudienceSelection[]): void {\n const objectsToAdd = selection.filter(s => s.selected).map(s => s.object);\n const objectIdsToRemove = selection.filter(s => !s.selected).map(s => s.object.id);\n\n setSearchSelections(s => [\n ...s.filter(s => !objectIdsToRemove.includes(s.id)),\n ...objectsToAdd\n ]);\n\n props.onSelect(...selection);\n }\n\n const filteredSuggestions = suggestions.filter(suggestions => !isSelected(suggestions));\n const filteredPinned = pinnedSuggestions.filter(suggestions => !isSelected(suggestions));\n\n return (\n <div className={styles.menu}>\n <Scrollbars autoHeight autoHeightMax={MAX_HEIGHT}>\n <div className='p-3'>\n <AudienceFilterSearch\n onSelect={onSelectSearchResult}\n isSelected={isSelected}\n isPinned={isPinned}\n gatewayApiUrl={props.gatewayApiUrl}\n userToken={props.userToken}\n imageCdnUrl={props.imageCdnUrl}\n currentUser={props.currentUser}\n limitedFeatureSet={props.limitedFeatureSet}\n hasClassroomsFeature={props.hasClassroomsFeature}\n setQuery={setQuery}\n hideCheckbox\n />\n {query.length < 3 && (!!filteredSuggestions.length || !!filteredPinned.length) &&\n <SuggestedAudienceList\n selections={filteredSuggestions}\n pinned={filteredPinned}\n onSelect={props.onSelect}\n imageCdnUrl={props.imageCdnUrl}\n isSelected={isSelected}\n />\n }\n </div>\n </Scrollbars>\n\n {!!selections.length &&\n <div className={`${suggestions.length ? 'border-top' : ''} pb-2`}>\n <Scrollbars autoHeight autoHeightMax={MAX_HEIGHT}>\n <SelectedAudienceList\n selections={selections}\n onSelect={props.onSelect}\n imageCdnUrl={props.imageCdnUrl}\n deselectAll={deselectAll}\n isPinned={isPinned}\n />\n </Scrollbars>\n\n <div className='d-flex justify-content-between pb-1'>\n <button\n className='btn btn-link p-0 text-secondary px-3'\n onClick={deselectAll}\n >\n {getPhrase('reset')}\n </button>\n\n <button\n className='btn btn-link p-0 text-info px-3'\n onClick={props.onClickApply}\n >\n {getPhrase('apply')}\n </button>\n </div>\n </div>\n }\n </div>\n );\n}","import React from 'react';\nimport { useDispatch } from 'react-redux';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\nimport { ClassroomRequests } from 'libs/shared/apps/analytics/flight-requests/ClassroomRequests';\nimport { useChunkedUsersResponse } from 'libs/shared/apps/analytics/hooks/UseEngagementUsers';\nimport { AudienceFilterSuggestions } from 'libs/shared/apps/analytics/interfaces/AudienceFilterSuggestions';\nimport { AudienceQueryParams } from 'libs/shared/apps/analytics/interfaces/AudienceQueryParams';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { useFetchAll } from 'libs/shared/hooks/UseFetchAll';\nimport { SelectAllPagesResult } from 'libs/shared/hooks/UseSelectAllPages';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { BaseObject, Classroom, ClassroomGroup } from 'libs/shared/interfaces';\n\nconst namespace = 'shared.audienceFilter';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function useFetchAudienceObjects(\n audienceQueryParams: AudienceQueryParams,\n suggestedClassrooms: Classroom[]\n): BaseObject[] {\n const { users: selectedUsers } = useChunkedUsersResponse(\n audienceQueryParams.users\n );\n const { hasClassrooms } = useSettings(null);\n\n const selectedClassrooms = Flight.useBasicFetch<Classroom[]>(\n audienceQueryParams.classrooms?.length &&\n hasClassrooms &&\n ClassroomRequests.getClassroomsById(audienceQueryParams.classrooms)\n );\n\n const selectedClassroomGroups = Flight.useBasicFetch<ClassroomGroup[]>(\n audienceQueryParams.classroomGroups?.length &&\n hasClassrooms &&\n ClassroomRequests.getClassroomGroupsById(audienceQueryParams.classroomGroups)\n );\n\n if (!hasClassrooms)\n return selectedUsers || [];\n\n const users = selectedUsers || [];\n const classrooms = ArrayHelper.uniq([ ...(selectedClassrooms.data || []), ...suggestedClassrooms || [] ], 'id');\n const classroomGroups = selectedClassroomGroups.data ?? [];\n\n return [ ...users, ...classrooms, ...classroomGroups ];\n}\n\nexport type AudienceSelection = { object: BaseObject, selected: boolean };\n\nfunction getUpdatedAudienceQueryParams(\n selections: AudienceSelection[],\n audienceQueryParams: AudienceQueryParams\n): AudienceQueryParams {\n if (!selections.length)\n return { users: null, classrooms: null, classroomGroups: null };\n\n let params: AudienceQueryParams = { ...audienceQueryParams };\n\n selections.forEach(s => {\n let paramKey: keyof AudienceQueryParams;\n\n switch (s.object.typeId) {\n case MasterType.User:\n paramKey = 'users';\n break;\n \n case MasterType.Classroom:\n paramKey = 'classrooms';\n break;\n \n case MasterType.ClassroomGroup:\n paramKey = 'classroomGroups';\n break;\n }\n\n const objectId = s.object.id.toString();\n let currentParams = params[paramKey] ?? [];\n\n if (s.selected)\n currentParams.push(objectId);\n else\n currentParams = currentParams.filter(id => id.toString() !== objectId);\n\n params = {\n ...params,\n [paramKey]: ArrayHelper.uniq(currentParams)\n };\n });\n\n return params;\n}\n\nexport function getIds(obj: AudienceQueryParams | AudienceFilterSuggestions): string[] {\n const ids: string [] = [];\n\n Object.keys(obj).forEach((key: keyof (AudienceQueryParams | AudienceFilterSuggestions)) => {\n if (obj[key])\n ids.push(...obj[key]);\n });\n\n return ids;\n}\n\nexport function useAudienceSelections(queryParams: HashObject):\n[AudienceQueryParams, (...selections: AudienceSelection[]) => void] {\n const [ selections, setSelections ] = React.useState<AudienceQueryParams>(ObjectHelper.deepClone(queryParams));\n\n function onSelectAudienceObject(...selection: AudienceSelection[]): void {\n setSelections(getUpdatedAudienceQueryParams(selection, selections));\n }\n\n return [ selections, onSelectAudienceObject ];\n}\n\n/**\n * \n * @returns The label to be used in the audience filter toggle.\n * \n * If nothing has been selected, \"Everyone\" will be returned.\n * \n * If a single classroom or a single classroom group has been selected,\n * the name of the classroom/group will be returned.\n * \n * Otherwise, the count of users in the applied filter will be returned,\n * as obtained from the filter count view model.\n */\nexport function useGetAudienceFilterLabel(queryParams: HashObject): string | undefined {\n const classroomIds = ArrayHelper.uniq(queryParams.classrooms as string[] ?? []);\n const groupIds = ArrayHelper.uniq(queryParams.classroomGroups as string[] ?? []);\n const userIds = ArrayHelper.uniq(queryParams.users as string[] ?? []);\n\n const onlyClassroomsSelected = !!classroomIds.length && groupIds.length === 0 && userIds.length === 0;\n const onlyGroupsSelected = !!groupIds.length && classroomIds.length === 0 && userIds.length === 0;\n const onlyUsersSelected = !!userIds.length && classroomIds.length === 0 && groupIds.length === 0;\n const noSelections = !classroomIds.length && !groupIds.length && !userIds.length;\n\n const singleClassroomSelected = onlyClassroomsSelected && classroomIds.length === 1;\n const singleGroupSelected = onlyGroupsSelected && groupIds.length === 1;\n\n const classroom = Flight.useBasicFetch<Classroom>(singleClassroomSelected\n && ClassroomRequests.classroom(classroomIds[0]));\n\n const group = Flight.useBasicFetch<Classroom>(singleGroupSelected && ClassroomRequests.classroomGroup(groupIds[0]));\n\n if (noSelections)\n return getPhrase('noFilter');\n\n if (singleClassroomSelected) {\n if (!classroom.data)\n return;\n\n if (classroom.data.typeId === MasterType.Classroom)\n return classroom.data.name;\n }\n\n if (singleGroupSelected) {\n if (!group.data)\n return;\n\n if (group.data.typeId === MasterType.ClassroomGroup)\n return group.data.name;\n }\n\n if (onlyClassroomsSelected)\n return getPhrase('classrooms', { smartCount: classroomIds.length });\n\n if (onlyGroupsSelected)\n return getPhrase('groups', { smartCount: groupIds.length });\n\n if (onlyUsersSelected)\n return getPhrase('users', { smartCount: userIds.length });\n\n const mixedSelections = [];\n\n if (classroomIds.length)\n mixedSelections.push(getPhrase('classrooms', { smartCount: classroomIds.length }));\n\n if (groupIds.length)\n mixedSelections.push(getPhrase('groups', { smartCount: groupIds.length }));\n\n if (userIds.length)\n mixedSelections.push(getPhrase('users', { smartCount: userIds.length }));\n\n const lastSelection = mixedSelections.pop();\n\n return `${mixedSelections.join(', ')} ${getPhrase('and')} ${lastSelection}`;\n}\n\nexport function useFetchClassrooms(userId: string): SelectAllPagesResult<Classroom> {\n const dispatch = useDispatch();\n\n function getRequest(cursor?: string): Flight.Request {\n return ClassroomRequests.getPublished(userId, cursor);\n }\n \n function fetchNext(cursor?: string): void {\n Flight.getFetch(dispatch)(getRequest(cursor));\n }\n\n return useFetchAll<Classroom>(getRequest, fetchNext);\n}","// extracted by mini-css-extract-plugin\nexport default {\"toggle\":\"A0vBV\"};","import React from 'react';\nimport { Dropdown } from 'react-bootstrap';\n\nimport { Flight } from 'libs/common/flight';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\nimport { ClassroomRequests } from 'libs/shared/apps/analytics/flight-requests/ClassroomRequests';\nimport { AnalyticsFilterHelper } from 'libs/shared/apps/analytics/utils/AnalyticsFilterUtils';\nimport { InsightsAudienceFilterMenu } from 'libs/shared/apps/analytics/views/audience-filter/components/insights-filter-menu/InsightsAudienceFilterMenu';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { ClassroomCollection, Config, CurrentUser } from 'libs/shared/interfaces';\nimport { AppRouteHelper } from 'libs/shared/utils/AppRouteHelper';\n\nimport {\n getIds,\n useAudienceSelections,\n useFetchAudienceObjects,\n useFetchClassrooms,\n useGetAudienceFilterLabel\n} from './AudienceFilterViewUtils';\n\nimport styles from './audience-filter.scss';\n\ninterface AudienceFilterViewProps {\n className?: string;\n hasClassroomsFeature: boolean;\n}\n\n// eslint-disable-next-line rulesdir/require-view-title\nexport function AudienceFilterView(props: AudienceFilterViewProps): JSX.Element {\n const queryParams = AnalyticsFilterHelper.getAudienceAppLinkParams();\n\n const userToken = Flight.useBasicFetch<HashObject>(UserRequests.token());\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n\n const pinnedClassrooms = Flight.useBasicFetch<ClassroomCollection>(\n ClassroomRequests.getPinnedClassrooms(currentUser.data?.id)\n );\n const classrooms = useFetchClassrooms(currentUser.data?.id);\n\n const audience = useFetchAudienceObjects(queryParams, classrooms.items);\n const filterLabel = useGetAudienceFilterLabel(queryParams);\n\n const [ selections, setSelections ] = useAudienceSelections(queryParams);\n const pinnedClassroomIds = pinnedClassrooms.data?.data.map(classroom => classroom.id.toString());\n const suggestions = { classrooms: getSuggestedClassroomIds() };\n\n const [ showDropdown, setShowDropdown ] = React.useState(false);\n\n function onClickApply(): void {\n applyFilter();\n setShowDropdown(false);\n }\n\n function onToggle(show: boolean): void {\n setShowDropdown(show);\n\n if (show)\n return;\n\n applyFilter();\n }\n\n function applyFilter() {\n AppRouteHelper.updateParams(ObjectHelper.deepClone(selections), { merge: true });\n }\n\n function hideAudienceFilter(): boolean {\n return !classrooms.items?.length;\n }\n\n function getSuggestedClassroomIds() {\n return classrooms.items?.length\n ? classrooms.items\n .filter(classroom => !pinnedClassroomIds?.includes(classroom.id.toString()))\n .map(classroom => classroom.id)\n : [];\n }\n\n const dataLoaded = !!config.data && classrooms.hasCompleted && pinnedClassrooms.hasCompleted;\n\n if (hideAudienceFilter())\n return <></>;\n\n const hasSelections = Object.values(queryParams).some(value =>\n Array.isArray(value) && value.length > 0);\n\n return (\n <Dropdown className={props.className ?? ''} onToggle={onToggle} show={showDropdown}>\n <Dropdown.Toggle\n id='audience-filter-toggle'\n variant='outline-dark'\n className={`no-caret ${styles.toggle} ${hasSelections ? 'bg-dark text-white' : ''}`}\n >\n {filterLabel}\n </Dropdown.Toggle>\n <Dropdown.Menu className='py-0' align='end'>\n {dataLoaded &&\n <InsightsAudienceFilterMenu\n gatewayApiUrl={config.data.gatewayApiUrl}\n userToken={userToken.data}\n audienceObjects={audience}\n selectedIds={getIds(selections)}\n suggestedIds={getIds(suggestions)}\n pinnedIds={pinnedClassroomIds}\n onSelect={setSelections}\n imageCdnUrl={config.data.imageCdnUrl}\n currentUser={currentUser.data}\n hasClassroomsFeature={props.hasClassroomsFeature}\n onClickApply={onClickApply}\n />\n }\n </Dropdown.Menu>\n </Dropdown>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"avatarContainer\":\"ByxQa\",\"sm\":\"EgJ0v\",\"sharedAvatar\":\"cW0NT\"};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { Avatar } from 'libs/shared/components/avatar/Avatar';\nimport { AvatarItemProps, AvatarList } from 'libs/shared/components/avatar-list/AvatarList';\nimport { IconCircle } from 'libs/shared/components/icon-circle/IconCircle';\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { BaseObject, Classroom, ClassroomGroup, User } from 'libs/shared/interfaces';\nimport { mapColourToBsVariant } from 'libs/shared/utils/GroupHelper';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\nimport { UserHelper } from 'libs/shared/utils/UserHelper';\n\nimport styles from './shared-to-avatar-list.scss';\n\nconst namespace = 'reportsShare.sharedToAvatarList';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nfunction getHiddenRecipientText(hiddenRecipients: BaseObject[]): string {\n const counts = ArrayHelper.countBy(hiddenRecipients, 'typeId');\n const userCount = counts[MasterType.User];\n const classroomCount = counts[MasterType.Classroom];\n const groupCount = counts[MasterType.ClassroomGroup];\n\n if (userCount && classroomCount && groupCount)\n return getPhrase('classroomsGroupsAndUsers', { userCount, classroomCount, groupCount });\n\n if (userCount && classroomCount)\n return getPhrase('classroomsAndUsers', { userCount, classroomCount });\n\n if (userCount && groupCount)\n return getPhrase('groupsAndUsers', { userCount, groupCount });\n\n if (classroomCount && groupCount)\n return getPhrase('classroomsAndGroups', { classroomCount, groupCount });\n\n if (userCount)\n return getPhrase('users', { userCount });\n\n if (classroomCount)\n return getPhrase('classrooms', { classroomCount });\n\n if (groupCount)\n return getPhrase('groups', { groupCount });\n}\n\nfunction SharedToAvatar(props: AvatarItemProps): JSX.Element {\n const user: User = props.item?.typeId === MasterType.User && props.item as User;\n const classroom: Classroom = props.item?.typeId === MasterType.Classroom && props.item as Classroom;\n const classroomGroup: ClassroomGroup = props.item?.typeId === MasterType.ClassroomGroup\n && props.item as ClassroomGroup;\n\n const svgContainerClassName = 'd-flex justify-content-center align-items-center text-white rounded-circle h-100 w-100';\n\n return (\n <>\n {!!user &&\n <Tooltip title={`${user.name} ${user.surname}`} spanHack spanHackClassName='h-100 w-100'>\n <Avatar\n imageUrl={user.avatar?.url}\n imageCdnUrl={props.imageCdnUrl}\n initials={UserHelper.getInitials(user.name, user.surname)}\n extraClasses={styles.sharedAvatar}\n />\n </Tooltip>\n }\n {!!classroom &&\n <Tooltip title={classroom.name} spanHack spanHackClassName='h-100 w-100'>\n <div className={svgContainerClassName}>\n <IconCircle\n svgName={cvSvgLibrary.Classrooms}\n svgSize={SvgContainerSize.Large}\n variant='teal'\n />\n </div>\n </Tooltip>\n }\n {!!classroomGroup &&\n <Tooltip title={classroomGroup.name} spanHack spanHackClassName='h-100 w-100'>\n <div className={svgContainerClassName}>\n <IconCircle\n svgName={cvSvgLibrary.Group}\n variant={mapColourToBsVariant(classroomGroup.metadata?.colour)}\n />\n </div>\n </Tooltip>\n }\n </>\n );\n}\n\n\ninterface AnonymousSharedToAvatarProps {\n avatarSize?: 'md' | 'sm';\n}\n\nexport function AnonymousSharedToAvatar(props: AnonymousSharedToAvatarProps): JSX.Element {\n return (\n <div className={`${styles.avatarContainer} ${props.avatarSize === 'sm' ? styles.sm : ''}`}>\n <Tooltip\n title={getPhrase('anonymous')}\n spanHack\n spanHackClassName='bg-light text-dark d-flex justify-content-center align-items-center rounded-circle h-100 w-100'\n >\n <SvgContainer svgName={cvSvgLibrary.Anonymous} size={props.avatarSize === 'sm' ? SvgContainerSize.Small : null} />\n </Tooltip>\n </div>\n );\n}\n\ninterface SharedLinkAvatarProps {\n text?: string;\n avatarSize?: 'md' | 'sm';\n className?: string;\n}\n\nexport function SharedLinkAvatar(props: SharedLinkAvatarProps): JSX.Element {\n return (\n <div className={`${styles.avatarContainer} ${props.avatarSize === 'sm' ? styles.sm : ''}`}>\n <Tooltip\n title={props.text || getPhrase('sharedLink')}\n spanHack\n spanHackClassName={`bg-light text-dark d-flex justify-content-center align-items-center rounded-circle h-100 w-100 ${props.className || ''}`}\n >\n <SvgContainer svgName={cvSvgLibrary.Link} size={props.avatarSize === 'sm' ? SvgContainerSize.Small : null} />\n </Tooltip>\n </div>\n );\n}\n\ninterface SharedToAvatarListProps {\n recipients: BaseObject[];\n imageCdnUrl: string;\n maxAvatars?: number;\n hasShareLink?: boolean;\n avatarSize?: 'md' | 'sm';\n shareLinkText?: string;\n}\n\nSharedToAvatarList.defaultProps = {\n maxAvatars: 5\n};\n\nexport function SharedToAvatarList(props: SharedToAvatarListProps): JSX.Element {\n return (\n <AvatarList\n {...props}\n items={props.recipients}\n avatarItem={SharedToAvatar}\n avatarContainerClassname={`${styles.avatarContainer} ${props.avatarSize === 'sm' ? styles.sm : ''}`}\n getHiddenTooltip={getHiddenRecipientText}\n hasShareLink={props.hasShareLink}\n shareLinkText={props.shareLinkText}\n />\n );\n}","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { SharePrivacyResponse } from 'libs/shared/apps/share/interfaces/responses/SharePrivacyResponse';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { ShareLinkStatus } from 'libs/shared/enums/ShareLinkStatus';\nimport { 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 = 'share.shareLinkInfo';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface GetIconAndTextOptions {\n linkExpireDate: string;\n isPasswordProtected: boolean;\n privacy: SharePrivacyResponse;\n status: ShareLinkStatus;\n entityTypeId: MasterType;\n hasStudentExp: boolean;\n entity: BaseObject;\n yearGroups: YearGroup[];\n}\n\n\nexport const ShareLinkHelper = {\n getPrivateIconAndText: (options: GetIconAndTextOptions) => {\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.privacy) {\n case 'public':\n return { icon: cvSvgLibrary.VisibleOn, text: getPhrase('publicDescription') };\n case 'protected':\n if (privacy.overrideRestrictions)\n return { icon: cvSvgLibrary.VisibleOn, text: getPhrase('clickViewOnly') };\n return {\n icon: cvSvgLibrary.Lock,\n text: ShareLinkHelper.getRespectRatingText(entity, yearGroups, hasStudentExp)\n };\n case 'just_my_customer':\n if (privacy.overrideRestrictions)\n return { icon: cvSvgLibrary.Lock, text: getPhrase(hasStudentExp ? 'justMySchoolTeachers' : 'justMySchoolDescription') };\n return {\n icon: cvSvgLibrary.Lock,\n text: ShareLinkHelper.getRespectRatingText(entity, yearGroups, hasStudentExp)\n };\n /**\n * Because we plan to add restricted management later \n * for the time being we treat is the same as private \n */\n case 'restricted':\n case 'private':\n return { icon: cvSvgLibrary.Lock, text: getPhrase('privateDescription') };\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};","// extracted by mini-css-extract-plugin\nexport default {\"dropdownToggle\":\"UCAnJ\"};","import * as React from 'react';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { Core } from 'libs/common/core';\nimport { RandomHelper } from 'libs/common/react/utils/RandomHelper';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { ActionOptions } from './Actions';\n\nimport styles from './actions.scss';\n\nfunction LazyDropdownItems(): JSX.Element {\n return (\n <>\n <div style={{ padding: '0.53125rem 1rem' }}>\n <div className='partial-loading-background' style={{ height: '1.0625rem', width: '8rem' }}></div>\n </div>\n <div style={{ padding: '0.53125rem 1rem' }}>\n <div className='partial-loading-background' style={{ height: '1.0625rem', width: '12rem' }}></div>\n </div>\n <div style={{ padding: '0.53125rem 1rem' }}>\n <div className='partial-loading-background' style={{ height: '1.0625rem', width: '11rem' }}></div>\n </div>\n <div style={{ padding: '0.53125rem 1rem' }}>\n <div className='partial-loading-background' style={{ height: '1.0625rem', width: '9rem' }}></div>\n </div>\n </>\n );\n}\n\nfunction getDropdownItemClassName(actionClassName?: string): string {\n let className = 'dropdown-item';\n\n if (actionClassName)\n className += ` ${actionClassName}`;\n\n return className;\n}\n\nexport type DropdownActionOptions = Omit<ActionOptions, 'button'>;\n\ninterface ActionsDropdownItemProps {\n action: DropdownActionOptions;\n}\n\nfunction ActionsDropdownItem(props: ActionsDropdownItemProps): React.ReactElement {\n const label = FunctionHelper.isFunction(props.action.label)\n ? props.action.label\n : () => <>{props.action.label}</>;\n\n if (props.action.appLink)\n return (\n <AppLink\n appLink={props.action.appLink}\n onClick={props.action.onClick}\n className={getDropdownItemClassName(props.action.className)}\n analyticsData={props.action.analyticsData}\n analyticsOptions={props.action.analyticsOptions}\n openInNewTab={props.action.openInNewTab}\n disabled={props.action.disabled}\n >\n {props.action.svgName && <SvgContainer svgName={props.action.svgName} className='d-inline-block svg-container me-2 align-middle' />}\n <span className='align-middle'>{label()}</span>\n </AppLink>\n );\n\n function onClick(e: React.MouseEvent | React.KeyboardEvent): void {\n e.preventDefault();\n\n if (props.action.analyticsData && props.action.analyticsOptions)\n AnalyticsHelper.logUserAction(props.action.analyticsData, props.action.analyticsOptions);\n\n if (FunctionHelper.isFunction(props.action.onClick))\n props.action.onClick();\n\n if (props.action.href)\n Core.LocationUtils.PageLoad(props.action.href, props.action.openInNewTab);\n }\n\n if (props.action.href) {\n return (\n <a\n className={getDropdownItemClassName(props.action.className)}\n onClick={onClick}\n href={props.action.href}\n >\n {props.action.svgName && <SvgContainer svgName={props.action.svgName} className='d-inline-block svg-container me-2 align-middle' />}\n <span className='align-middle'>{label()}</span>\n </a>\n );\n }\n\n return (\n <span\n className={`cursor-pointer ${getDropdownItemClassName(props.action.className)}`}\n onClick={onClick}\n role='button'\n tabIndex={0}\n onKeyDown={(e: React.KeyboardEvent) => e.key === 'Enter' && onClick(e)}\n >\n {props.action.svgName && <SvgContainer svgName={props.action.svgName} className='d-inline-block svg-container me-2' />}\n {label()}\n </span>\n );\n}\n\ninterface ActionsDropdownProps {\n actions: DropdownActionOptions[];\n className?: string;\n dropdownToggleClassName?: string;\n dropdownToggleSvgSize?: SvgContainerSize;\n fetchMore?: () => void;\n}\n\nActionsDropdown.defaultProps = {\n dropdownToggleClassName: 'btn btn-light',\n dropdownToggleSvgSize: SvgContainerSize.Small\n};\n\nexport function ActionsDropdown(props: ActionsDropdownProps): React.ReactElement {\n if (!props.actions || !props.actions.length)\n return <></>;\n\n const isLazy = props.actions.some(a => a.lazyPlaceholder);\n\n let className = 'dropdown';\n\n if (props.className)\n className += ` ${props.className}`;\n\n // Generate unique id to avoid collisions.\n const dropdownToggleId = `actions-dropdown-${RandomHelper.getRandomInt()}`;\n\n let dropdownToggleClassName = `dropdown-toggle px-0 ${styles.dropdownToggle}`;\n\n if (props.dropdownToggleClassName)\n dropdownToggleClassName += ` ${props.dropdownToggleClassName}`;\n\n let currentGroup: string;\n\n return (\n <div className={className}>\n <button\n className={dropdownToggleClassName}\n type='button'\n id={dropdownToggleId}\n data-bs-toggle='dropdown'\n data-toggle='dropdown'\n aria-haspopup='true'\n aria-expanded='false'\n aria-label={'More actions dropdown'}\n onClick={isLazy ? props.fetchMore : null}\n >\n <SvgContainer svgName={cvSvgLibrary.More} size={props.dropdownToggleSvgSize} />\n </button>\n <ul className='dropdown-menu dropdown-menu-end dropdown-menu-right font-size-normal' aria-labelledby={dropdownToggleId}>\n {isLazy ?\n <LazyDropdownItems /> :\n props.actions.map((a, idx) => {\n const showDivider = currentGroup !== undefined && currentGroup !== a.group;\n currentGroup = a.group;\n \n if (a.tooltip) {\n return (\n <li key={idx}>\n {showDivider && <hr className='dropdown-divider' role='separator'></hr>}\n <Tooltip title={a.tooltip} spanHack>\n <ActionsDropdownItem action={a} />\n </Tooltip>\n \n </li>\n );\n }\n \n return (\n <li key={idx}>\n {showDivider && <hr className='dropdown-divider' role='separator'></hr>}\n <ActionsDropdownItem action={a} />\n </li>\n );\n })\n }\n </ul>\n </div>\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { SharedLinkAvatar } from 'libs/shared/apps/share/components/shared-to-avatar-list/SharedToAvatarList';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { BaseObject } from 'libs/shared/interfaces';\n\nconst namespace = 'shared.avatarList';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport interface AvatarItemProps {\n imageCdnUrl: string;\n index: number;\n item?: BaseObject;\n hiddenItems?: BaseObject[];\n maxAvatars?: number;\n}\n\ninterface AvatarListProps {\n items: BaseObject[];\n imageCdnUrl: string;\n maxAvatars?: number;\n avatarItem?: (props: AvatarItemProps) => JSX.Element;\n getHiddenTooltip?: (hiddenItems: BaseObject[]) => string;\n numberClassname?: string;\n avatarContainerClassname?: string;\n roleToDisplay?: 'student' | 'staff';\n hasShareLink?: boolean;\n avatarSize?: 'md' | 'sm';\n shareLinkText?: string;\n}\n\nAvatarList.defaultProps = {\n maxAvatars: 5\n};\n\nexport function AvatarList(props: AvatarListProps): JSX.Element {\n const itemsToDisplay = props.items.length > props.maxAvatars\n ? props.items.slice(0, props.maxAvatars - 1)\n : props.items;\n\n const hiddenItems = props.items.length > itemsToDisplay.length\n ? props.items.slice(props.maxAvatars - 1)\n : [];\n\n const AvatarItem = props.avatarItem;\n const hiddenItemsCounts = hiddenItems.length;\n const translateX = props.avatarSize === 'sm' ? 4 : 8;\n\n function getTooltip() {\n if (props.getHiddenTooltip)\n return props.getHiddenTooltip(hiddenItems);\n\n if (props.roleToDisplay)\n return getPhrase(props.roleToDisplay === 'staff' ? 'staff' : 'student', { count: hiddenItemsCounts, smartCount: hiddenItemsCounts });\n\n return getPhrase('users', { count: hiddenItemsCounts, smartCount: hiddenItemsCounts });\n }\n\n function getContainerStyles() {\n return {\n marginRight: `-${((itemsToDisplay.length - 1) + (hiddenItems.length ? 1 : 0) + (props.hasShareLink ? 1 : 0)) * translateX}px`\n };\n }\n\n function getAvatarStyles(idx: number) {\n return {\n transform: `translateX(${(props.hasShareLink ? idx + 1 : idx) * -translateX}px)`,\n zIndex: props.maxAvatars - idx\n };\n }\n\n if (itemsToDisplay.length === 0 && hiddenItems.length === 0)\n return <></>;\n\n return (\n <div\n className='d-flex'\n style={getContainerStyles()}\n >\n {props.hasShareLink && (\n <div style={{ zIndex: props.maxAvatars + 1 }}>\n <SharedLinkAvatar text={props.shareLinkText} avatarSize={props.avatarSize} className='bg-dark text-white' />\n </div>\n )}\n {itemsToDisplay.map((item, idx) => (\n <div\n className={`${props.avatarContainerClassname || ''}`} key={item.id}\n style={getAvatarStyles(idx)}\n >\n <AvatarItem\n item={item}\n imageCdnUrl={props.imageCdnUrl}\n index={idx}\n maxAvatars={props.maxAvatars}\n />\n </div>\n ))}\n\n {!!hiddenItems.length && (\n <div\n className={`${props.avatarContainerClassname || ''} bg-white rounded-circle`}\n style={{ transform: `translateX(${itemsToDisplay.length * -translateX}px)`, zIndex: props.maxAvatars - itemsToDisplay.length }}\n >\n <Tooltip title={getTooltip()} spanHack spanHackClassName='h-100 w-100'>\n <div className={`d-flex justify-content-center align-items-center border border-dark rounded-circle h-100 w-100 ${props.numberClassname || ''}`}>\n {`+${hiddenItems.length}`}\n </div>\n </Tooltip>\n </div>\n )}\n </div>\n );\n}","// Article name mapped to article ID on support site. Used by `ArticleHelper`\n\nexport enum OnlineSupportArticle {\n AddToPlaylist = '115005679748',\n EditSsoAccounts = '8202508040345',\n\n // LE\n LibraryEditor = '360001974533',\n VideoAccess = '360000153947',\n AddFromOnline = '360011718234',\n UploadToLibraryEditor = '360012069334',\n PBTErrorCodes = '360012421153',\n ManuelReview = '360020004534',\n LibraryReview = '360000163788',\n}\n\nexport enum LiteSupportArticle {\n Integrations = '4407268725529',\n Classrooms = '4405362551833',\n MakeInteractive = '4405370510873',\n EditSsoAccounts = '8202605666073',\n UploadToLibraryEditor = '10672936659865',\n AddFromLite = '10671345281561',\n ManageSsoYearGroups = '14691130889241',\n ContentReview = '18525199576601',\n ContentPermissions = '14692125209497',\n AccessSettings = '27927466562201',\n ContentGuidelines = '24133696186009',\n FoxtelFaq = '24133519542169',\n ViviIntegration = '23826297956377',\n AppleTvIntegration = '25832373739929',\n RssFeed = '32567445635097',\n ManageGroupPermissions = '35407217335705'\n}\n","import { AnalyticsRequestFilter } from 'libs/shared/interfaces';\n\nexport function getAnalyticsRequestKey(baseKey: string, filter: AnalyticsRequestFilter, sharerId?: string): string {\n let key = `${baseKey}:${filter.start}:${filter.end}`;\n\n const userIdKey = Array.isArray(filter.userId) ? filter.userId.sort().join(':') : filter.userId;\n const groupIdKey = Array.isArray(filter.groupId) ? filter.groupId.sort().join(':') : filter.groupId;\n\n if (userIdKey)\n key += `:${userIdKey}`;\n\n if (groupIdKey)\n key += `:${groupIdKey}`;\n\n if (sharerId)\n key += `:${sharerId}`;\n\n return key;\n}","import { Core } from 'libs/common/core';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\nimport { ContextService } from 'libs/shared/services/ContextService';\n\ninterface UpdateParamsOptions extends Core.AppLinkOptions {\n merge?: boolean;\n keysToRemove?: string[]\n}\n\nexport const AppRouteHelper = {\n /**\n * Utility to update the params on the current appRoute.\n * \n * This is built on top of ContextService rather than build into AppLink\n * as we will generally only want to update params on appRoutes, not appLinks.\n */\n updateParams(params: HashObject, options?: UpdateParamsOptions): void {\n const { appLink } = ContextService.getCurrentRoute();\n\n let currentParams = typeof(appLink.params) === 'string'\n ? Core.LocationUtils.DeserializeQueryParams(appLink.params)\n : appLink.params as HashObject;\n\n if (options.keysToRemove)\n currentParams = ObjectHelper.omit(currentParams, options.keysToRemove);\n\n const updatedParams = options?.merge\n ? { ...currentParams, ...params }\n : params;\n\n const updatedAppLink = {\n ...appLink,\n params: updatedParams\n };\n\n /**\n * This prevents us pointlessly re-triggering if we're already on the right applink.\n */\n if (ObjectHelper.isEqual(appLink, updatedAppLink))\n return;\n \n Core.AppLinkHelper.trigger(updatedAppLink, ObjectHelper.omit(options, [ 'merge', 'keysToRemove' ]));\n }\n};","import { ButtonProps } from 'react-bootstrap';\n\nimport { ClassroomGroupColour } from 'libs/shared/interfaces';\n\nexport function mapColourToBsVariant(groupColour: ClassroomGroupColour): ButtonProps['variant'] {\n switch (groupColour) {\n case ClassroomGroupColour.Pink:\n return 'pink';\n case ClassroomGroupColour.Orange:\n return 'orange';\n case ClassroomGroupColour.Green:\n return 'green';\n case ClassroomGroupColour.Blue:\n return 'blue';\n case ClassroomGroupColour.Purple:\n return 'purple';\n case ClassroomGroupColour.Indigo:\n return 'indigo';\n default:\n return 'pink';\n }\n}\n","import React from 'react';\n\nimport { StorageType } from 'libs/common/backbone/utils/LocalStorageHelper';\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 { 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}\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\n const onDismiss = () => {\n setShow(false);\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={props.analyticsUrl} 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}","import React from 'react';\n\nimport { AnonymousSharedToAvatar, SharedLinkAvatar, SharedToAvatarList } from 'libs/shared/apps/share/components/shared-to-avatar-list/SharedToAvatarList';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { BaseObject } from 'libs/shared/interfaces';\n\nconst namespace = 'myShares.sharedToPill';\n\ninterface SharedToPillProps {\n shareRecipients: BaseObject[];\n hasShareLink?: boolean;\n maxAvatars?: number;\n imageCdnUrl: string;\n shareLinkText?: string;\n}\n\nSharedToPill.defaultProps = {\n maxAvatars: 3\n};\n\nexport function SharedToPill(props: SharedToPillProps) {\n const { shareRecipients } = props;\n\n return (\n <div className='d-flex align-items-center bg-gray-100 rounded-pill w-fit gap-2 p-2'>\n <span className='text-nowrap'><Text namespace={namespace} phrase={!shareRecipients ? 'sharedVia' : 'sharedTo'} /></span>\n\n {!shareRecipients &&\n <SharedLinkAvatar text={props.shareLinkText} avatarSize='sm' className='bg-dark text-white' />\n }\n\n {shareRecipients && !shareRecipients?.length &&\n <AnonymousSharedToAvatar avatarSize='sm' />\n }\n\n {shareRecipients &&\n <SharedToAvatarList\n recipients={shareRecipients}\n imageCdnUrl={props.imageCdnUrl}\n maxAvatars={props.maxAvatars}\n avatarSize='sm'\n hasShareLink={props.hasShareLink}\n shareLinkText={props.shareLinkText}\n />\n }\n </div>\n );\n}"],"names":["useChunkedUsersResponse","usersIds","userIdChunks","usersResponse","map","chunk","users","data","isLoading","hasCompleted","AnalyticsFilterHelper","getAudienceAppLinkParams","appLink","params","classrooms","classroomGroups","getParam","key","param","Array","isArray","audienceFilters","getDateRangeAppLinkParams","from","to","rangeName","dateRangeFilters","ClassroomRequests","classroom","id","url","classroomGroup","getClassroomsById","ids","sort","query","join","getClassroomGroupsById","userClassrooms","cursor","success","error","always","UrlHelper","getPinnedClassrooms","userId","ObjectStatus","normalize","getPublished","getPhrase","LanguageService","CLASSROOM_DISPLAY_LIMIT","AudienceFilterItem","props","user","object","typeId","MasterType","name","surname","subHeading","length","c","smartCount","getClassroomPhrase","getSubHeading","svgContainerClassName","onSelect","onToggleSelected","selected","className","onClick","hideCheckbox","Checkbox","checked","onChange","Avatar","imageUrl","avatar","imageCdnUrl","initials","UserHelper","isPinned","IconCircle","svgName","variant","svgSize","SvgContainer","S","metadata","colour","EmptySearchResults","hasClassroomsFeature","href","ArticleHelper","target","AudienceFilterSearch","SearchBar","onQueryChange","setQuery","getRemoteUrl","baseUrl","gatewayApiUrl","index","FilterConstants","currentUser","customerId","requestHeaders","authorization","userToken","value","formatRemoteSuggestions","suggestions","results","placeholder","limitedFeatureSet","suggestionsHeading","alwaysRenderSuggestions","resetSuggestionsOnNoActivation","onSuggestionSelected","shouldUpdateQueryOnSelection","getSuggestionComponent","suggestion","isSelected","getEmptyStateComponent","theme","container","suggestionsContainerOpen","suggestionHighlighted","sectionContainer","loadingComponentClassName","searchIconPlacement","autoFocusInput","allowableSuggestionFetchRequestedReasons","debounceTime","showClearInputIcon","resetSuggestionsOnClear","onClickClearInput","MAX_HEIGHT","filterAudienceById","audience","filter","a","some","toString","SelectedAudienceList","selections","s","idx","SuggestedAudienceList","pinned","InsightsAudienceFilterMenu","selectedIds","searchSelections","setSearchSelections","useSearchSelections","audienceObjects","ArrayHelper","suggestedIds","pinnedSuggestions","pinnedIds","deselectAll","filteredSuggestions","filteredPinned","autoHeight","autoHeightMax","selection","objectsToAdd","objectIdsToRemove","includes","onClickApply","getIds","obj","Object","keys","forEach","push","useAudienceSelections","queryParams","ObjectHelper","setSelections","audienceQueryParams","paramKey","objectId","currentParams","getUpdatedAudienceQueryParams","AudienceFilterView","UserRequests","config","ConfigRequests","pinnedClassrooms","dispatch","getRequest","useFetchClassrooms","suggestedClassrooms","selectedUsers","hasClassrooms","useSettings","selectedClassrooms","selectedClassroomGroups","useFetchAudienceObjects","items","filterLabel","classroomIds","groupIds","userIds","onlyClassroomsSelected","onlyGroupsSelected","onlyUsersSelected","noSelections","singleClassroomSelected","singleGroupSelected","group","mixedSelections","lastSelection","pop","useGetAudienceFilterLabel","pinnedClassroomIds","getSuggestedClassroomIds","showDropdown","setShowDropdown","applyFilter","AppRouteHelper","merge","dataLoaded","hideAudienceFilter","hasSelections","values","Dropdown","onToggle","show","align","getHiddenRecipientText","hiddenRecipients","counts","userCount","classroomCount","groupCount","SharedToAvatar","item","Tooltip","title","spanHack","spanHackClassName","extraClasses","AnonymousSharedToAvatar","avatarSize","size","SharedLinkAvatar","text","SharedToAvatarList","AvatarList","recipients","avatarItem","avatarContainerClassname","getHiddenTooltip","hasShareLink","shareLinkText","defaultProps","maxAvatars","ShareLinkHelper","getPrivateIconAndText","options","entityTypeId","privacy","hasStudentExp","entity","yearGroups","icon","overrideRestrictions","getRespectRatingText","getIconAndText","linkExpireDate","isPasswordProtected","status","isToday","dayDifference","Date","days","video","restriction","_restrictions","yearGroup","maxYearGroup","minAllowedYearGroup","rating","LazyDropdownItems","style","padding","height","width","getDropdownItemClassName","actionClassName","ActionsDropdownItem","label","FunctionHelper","action","AppLink","analyticsData","analyticsOptions","openInNewTab","disabled","e","preventDefault","AnalyticsHelper","role","tabIndex","onKeyDown","ActionsDropdown","actions","isLazy","lazyPlaceholder","currentGroup","dropdownToggleId","RandomHelper","dropdownToggleClassName","type","fetchMore","dropdownToggleSvgSize","showDivider","undefined","tooltip","itemsToDisplay","slice","hiddenItems","AvatarItem","hiddenItemsCounts","translateX","getAvatarStyles","transform","zIndex","marginRight","roleToDisplay","count","numberClassname","OnlineSupportArticle","LiteSupportArticle","getAnalyticsRequestKey","baseKey","sharerId","start","end","userIdKey","groupIdKey","groupId","updateParams","keysToRemove","updatedParams","updatedAppLink","mapColourToBsVariant","groupColour","namespace","InsightsAdminAlert","storage","setShow","hasAnalytics","phrase","analyticsUrl","SharedToPill","shareRecipients"],"sourceRoot":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[180],{26136:(e,t,a)=>{a.d(t,{B:()=>i});var n=a(76198),r=a(64818);function i(e,t){return e?t?(0,n._8)((a="profileId"in e?e.profileId:e.id,i=+"".concat(a).concat(Math.floor((new Date).getMinutes()/5)),{dictionaries:[n.O9,n.yd],separator:" ",length:2,style:"capital",seed:i})):"profileId"in e?e.name:r.l.getFullName(e):"";var a,i}},74901:(e,t,a)=>{function n(e){return function(e){if(Array.isArray(e))return r(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return r(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)?r(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function r(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}a.d(t,{K:()=>i});var i=function(e){var t=[],a=[];return e.users&&t.push.apply(t,n(e.users)),e.classrooms&&a.push.apply(a,n(e.classrooms)),e.classroomGroups&&a.push.apply(a,n(e.classroomGroups)),{userId:t,groupId:a}}},40003:(e,t,a)=>{a.d(t,{Hb:()=>d,NG:()=>g,W5:()=>m,eO:()=>p,nG:()=>s,wO:()=>v,zn:()=>o});var n=a(23481),r=a(110),i=a(57266),l=n.T.encloseNamespace("shared.analyticsUtils");function c(e){var t=r.O.convertDateToUTC(e);return r.O.format(t,"YYYY-MM-DDTHH:mm:ss")}function o(){return new Date(2021,0,1)}function s(){return new Date}function u(e){return e.find((function(e){return!!e.default}))}function m(e,t){if(t)return e.find((function(e){return e.name===t}))}function d(){var e=o(),t=(new Date).getFullYear(),a=t===e.getFullYear();return[{name:l("today"),startDate:new Date,endDate:new Date},{name:l("thisMonth"),startDate:new Date(t,(new Date).getMonth(),1),endDate:new Date},{name:l("lastThreeMonths"),startDate:new Date(t,(new Date).getMonth()-2,1),endDate:new Date},{name:l("lastSixMonths"),startDate:new Date(t,(new Date).getMonth()-5,1),endDate:new Date},{name:l("thisYear"),startDate:new Date(t,0,1),endDate:new Date},{name:l("lastYear"),startDate:new Date(t-1,0,1),endDate:new Date(t,0,0),disabled:a,tooltip:a?l("lastYearDisabled"):""},{name:l("allTime"),startDate:r.O.subtract(new Date,5,"years"),endDate:new Date,default:!0}]}function f(e){return r.O.format(e,"YYYY-MM-DD")}function p(e){return e.name?{rangeName:e.name}:{from:f(e.startDate),to:f(e.endDate)}}function g(e,t){var a=t.to,n=t.from,l=t.rangeName,c=m(e,l);if(c)return n||a?void i.e.updateParams(p(c),{replace:!0,merge:!0,keysToRemove:["from","to"]}):c;var d=u(e);if(n&&a&&r.O.isValid(n)&&r.O.isValid(a)){var f=!0,g=r.O.convertDateToUTC(new Date(n)),v=r.O.convertDateToUTC(new Date(a));r.O.isBefore(g,o(),"day")&&(g=o(),f=!1),r.O.isAfter(v,s(),"day")&&(v=s(),f=!1),r.O.isAfter(g,v)&&(g=d.startDate,v=d.endDate,f=!1);var b={startDate:g,endDate:v,name:f?l:""};if(f)return b;i.e.updateParams(p(b),{replace:!0,merge:!0,keysToRemove:["rangeName"]})}else i.e.updateParams(p(d),{replace:!0,merge:!0,keysToRemove:["rangeName"]})}function v(e,t){var a=function(e){return c(r.O.startOf(e,"day"))},n=function(e){return c(r.O.endOf(e,"day"))},i=m(e,t.rangeName);if(i)return{start:a(f(i.startDate)),end:n(f(i.endDate))};if(t.from&&t.to)return{start:a(t.from),end:n(t.to)};var l=u(e);return{start:a(f(l.startDate)),end:n(f(l.endDate))}}},49935:(e,t,a)=>{a.d(t,{Oo:()=>g,b2:()=>v});var n=a(32735),r=a(23481),i=a(36848),l=a(86764),c=a(3747),o=a(5859),s=a(35223),u=a(83914);function m(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,l,c=[],o=!0,s=!1;try{if(i=(a=a.call(e)).next,0===t){if(Object(a)!==a)return;o=!1}else for(;!(o=(n=i.call(a)).done)&&(c.push(n.value),c.length!==t);o=!0);}catch(e){s=!0,r=e}finally{try{if(!o&&null!=a.return&&(l=a.return(),Object(l)!==l))return}finally{if(s)throw r}}return c}}(e,t)||function(e,t){if(e){if("string"==typeof e)return d(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)?d(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 d(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 f=r.T.encloseNamespace("shared.breadcrumbComponent"),p=n.forwardRef((function(e,t){var a=e.breadcrumb,r=a.name,l=a.appLink,c=a.active,o=e.withBackIcon,m=r,d=null;return m.length>48&&(m=r.slice(0,48)+"...",d=r),n.createElement("li",{className:"breadcrumb-item".concat(c?" active":""),title:d},c?n.createElement("strong",null,m):n.createElement(i.F,{appLink:l,ref:t},o&&n.createElement(u.x,{svgName:s.vn.ChevronLeft,size:u.S.Small}),n.createElement("span",{className:o?"ms-2":""},m)))})),g=function(e){var t=e.breadcrumbs,a=(0,c.a)(l.r.XS),r=(null==t?void 0:t.length)||0,i=m(n.useState(!1),2),o=i[0],s=i[1],u=m(n.useState(!1),2),d=u[0],g=u[1],v=n.useRef();if(n.useEffect((function(){var e,a=null!==(e=null==t?void 0:t.reduce((function(e,t){return e+t.name.length}),0))&&void 0!==e?e:0;r>4&&a>64&&s(!0)}),[null==t?void 0:t.length]),n.useLayoutEffect((function(){var e;d&&(null===(e=v.current)||void 0===e||e.focus())}),[v.current,d]),!r||a&&r<2)return n.createElement(n.Fragment,null);if(a)return n.createElement("nav",{"aria-label":"breadcrumb"},n.createElement("ol",{className:"breadcrumb m-0 p-0"},n.createElement(p,{breadcrumb:t[r-2],withBackIcon:!0})));var b=n.createElement(p,{breadcrumb:t[0]}),y=r>2?n.createElement(p,{breadcrumb:t[1]}):n.createElement(n.Fragment,null),h=r>3?n.createElement(p,{breadcrumb:t[r-2]}):n.createElement(n.Fragment,null),E=r>1?n.createElement(p,{breadcrumb:t[r-1]}):n.createElement(n.Fragment,null),D=t.slice(2,r-2);return n.createElement("nav",{"aria-label":"breadcrumb"},n.createElement("ol",{className:"breadcrumb m-0 p-0"},b,y,o?n.createElement("li",{className:"breadcrumb-item"},n.createElement("button",{className:"btn-link",onClick:function(){s(!1),g(!0)},"aria-label":f("expand")},"...")):D.map((function(e,t){return n.createElement(p,{key:t,breadcrumb:e,ref:0===t?v:null})})),h,E))},v=n.memo((function(e){var t=e.numItems,a=void 0===t?3:t;return(0,c.a)(l.r.XS)?n.createElement("div",{className:"partial-loading-background",style:{height:"1.3125rem",width:"6rem"}}):n.createElement("nav",{"aria-label":"breadcrumb"},n.createElement("ol",{className:"breadcrumb m-0 p-0"},o.u.getPartialLoadingItems({numItems:a}).map((function(e,t){var a=e.width;return n.createElement("li",{key:t,className:"breadcrumb-item"},n.createElement("span",{className:"d-inline-block partial-loading-background",style:{width:a},dangerouslySetInnerHTML:{__html:" "}}))}))))}))},40782:(e,t,a)=>{a.d(t,{I:()=>n,O:()=>o});var n,r=a(32735),i=a(2606),l=a(62712);function c(e){var t=r.useCallback((function(t){if(t){var a=t.r.baseVal.value,n=2*Math.PI*a,r=n-e.percentage*n;t.style.strokeDasharray="".concat(n," ").concat(n),t.style.strokeDashoffset=r.toString()}}),[e.percentage]);return r.createElement("svg",null,r.createElement("circle",{r:(0,i.pu)(e.size),className:l.Z.backgroundCircle}),!(0,i.zR)(e.percentage)&&r.createElement("circle",{ref:t,r:(0,i.pu)(e.size),className:(0,i.V4)(e.percentage,e.scoreThresholds)}))}function o(e){var t,a=(0,i.Ki)(e.percentage),o=e.size||(e.layout===n.LabelInside?i.Mk.Large:i.Mk.Small),s=e.customLabel||(0,i.DV)(a);return e.layout===n.LabelOnly?r.createElement("span",{className:(0,i.IA)(a)},s):r.createElement("div",{className:"d-flex align-items-center justify-content-between ".concat(null!==(t=e.className)&&void 0!==t?t:"")},e.layout===n.LabelBefore&&r.createElement("span",{className:"me-2"},s),r.createElement("div",{className:(0,i.tw)(o,a)},r.createElement(c,{percentage:a,size:o,scoreThresholds:e.scoreThresholds}),e.layout===n.LabelInside&&r.createElement("span",{className:l.Z.centredPercentageText},s)))}!function(e){e.CircleOnly="circle_only",e.LabelOnly="label_only",e.LabelBefore="label_before",e.LabelInside="label_inside"}(n||(n={})),o.defaultProps={layout:n.CircleOnly}},2606:(e,t,a)=>{a.d(t,{DV:()=>v,IA:()=>f,Ki:()=>g,Mk:()=>c,V4:()=>d,pu:()=>m,tw:()=>p,zR:()=>b});var n=a(94892),r=a(62712);function i(e){return i="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},i(e)}function l(e,t,a){return(t=function(e){var t=function(e){if("object"!=i(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var a=t.call(e,"string");if("object"!=i(a))return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==i(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}var c,o=.2,s=.36;!function(e){e.Small="small",e.Large="large",e.ExtraSmall="extraSmall"}(c||(c={}));var u=l(l(l({},c.ExtraSmall,{size:2}),c.Small,{size:2}),c.Large,{size:5.8});function m(e){var t=u[e].size,a=e===c.Large?s:o;return"".concat(t/2-2*a,"rem")}function d(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:n.i;return e>=t.HIGH?r.Z.circleSuccess:e>=t.MODERATE?r.Z.circleWarning:r.Z.circleDanger}function f(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:n.i;return e>=t.HIGH?"text-success":e>=t.MODERATE?"text-warning":"text-danger"}function p(e,t){var a="d-inline-block ".concat(r.Z.circleContainer);return e===c.Large&&(a+=" ".concat(r.Z.lgCircleContainer)),e===c.ExtraSmall&&(a+=" ".concat(r.Z.xsCircleContainer)),b(t)&&(a+=" ".concat(r.Z.pendingCircle)),a}function g(e){if(!b(e))return+e.toFixed(2)}function v(e){return b(e)?"--%":"".concat(Math.round(100*e),"%")}function b(e){return"number"!=typeof e}},38502:(e,t,a)=>{a.d(t,{r:()=>m});var n=a(32735),r=a(49985),i=a(36848),l=a(18559),c=a(11607),o=a(83914),s=a(87432);function u(e){return n.createElement(n.Fragment,null,!!e.tab.svgName&&n.createElement("div",{className:e.tab.name?"pe-1":""},n.createElement(o.x,{svgName:e.tab.svgName})),e.tab.name,"number"==typeof e.tab.count&&n.createElement("div",{className:"ps-2"},n.createElement(l.C,{type:l.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(s.Z.pillTabSelector,"\n ").concat(e.borderRadius?s.Z.radiusSmall:"","\n ").concat(e.listClassName,"\n ")},e.tabs.map((function(e,t){return n.createElement("li",{className:"\n p-0 ".concat(s.Z.tab," ").concat(e.active?"btn btn-dark":"btn btn-outline-dark","\n ").concat(e.name?s.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(s.Z.tabLink,"\n ")},n.createElement(u,{tab:e})):n.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(s.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"}},94892:(e,t,a)=>{a.d(t,{T:()=>r,i:()=>n});var n={HIGH:.75,MODERATE:.5},r={HIGH:.7,MODERATE:.7}},17913:(e,t,a)=>{a.d(t,{u:()=>l});var n=a(97395),r=a(110),i=a(62875),l={individualEngagement:function(e,t,a,r){var l=Object.assign({objectId:e},t);return a&&(l.sharerId=a),r&&(l.includePublicViews=!0),{url:n._.urlBuilder("{gateway}/v1/analytics/heat-map",l),key:(0,i.H)("engagement:".concat(e),t,a),formatData:function(e){var t;return Object.assign(Object.assign({},e),{data:null===(t=e.data)||void 0===t?void 0:t.map((function(e){var t;return Object.assign(Object.assign({},e),{heatMap:null!==(t=e.heatMap)&&void 0!==t?t:[]})}))})},normalize:!1}},aggregateEngagement:function(e,t,a,r){var l=Object.assign({objectId:e},t);return a&&(l.sharerId=a),r&&(l.includePublicViews=!0),{url:n._.urlBuilder("{gateway}/v1/analytics/heat-map/aggregations",l),key:(0,i.H)("aggregate:engagement:".concat(e),t,a),formatData:function(e){var t;return Object.assign(Object.assign({},e),{heatMap:null!==(t=e.heatMap)&&void 0!==t?t:[]})},normalize:!1}},views:function(e,t,a,l){var c=Object.assign(Object.assign({},e),{timeOffset:r.O.getTimezoneOffset()});return t&&(c.objectId=t),a&&(c.sharerId=a),l&&(c.includePublicViews=!0),{url:n._.urlBuilder("{gateway}/v1/analytics/video-views",c),key:(0,i.H)("video:views:".concat(t),e,a),normalize:!1}}}},5859:(e,t,a)=>{function n(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}a.d(t,{u:()=>i});var r={numItems:5,minWidth:50,maxWidth:100},i={getPartialLoadingItems:function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},a=Object.assign(Object.assign({},r),t);return(e=Array(a.numItems),function(e){if(Array.isArray(e))return n(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return n(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)?n(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()).map((function(){return{width:"".concat(Math.max(Math.floor(Math.random()*a.maxWidth),a.minWidth),"px")}}))}}},5672:(e,t,a)=>{a.d(t,{$6:()=>c,$o:()=>o,kj:()=>s});var n=a(23481),r=a(14070),i=a(97291),l=n.T.encloseNamespace("shared.insightsUtils");function c(e,t,a){return[{name:l("insights"),active:"insights"===t,appLink:{application:i.O.INSIGHTS,action:r.e.Insights.VIDEO_OVERVIEW,args:[e],params:a}},{name:l("heatmap"),active:"heatmap"===t,appLink:{application:i.O.INSIGHTS,action:r.e.Insights.VIDEO_HEATMAP,args:[e],params:a}}]}function o(e,t,a){return[{name:l("insights"),active:"insights"===t,appLink:{application:i.O.INSIGHTS,action:r.e.Insights.CLIP_OVERVIEW,args:[e],params:a}},{name:l("heatmap"),active:"heatmap"===t,appLink:{application:i.O.INSIGHTS,action:r.e.Insights.CLIP_HEATMAP,args:[e],params:a}}]}function s(e,t,a){return[{name:l("insights"),active:"insights"===t,appLink:{application:i.O.INSIGHTS,action:r.e.Insights.INTERACTIVE_OVERVIEW,args:[e],params:a}},{name:l("results"),active:"results"===t,appLink:{application:i.O.INSIGHTS,action:r.e.Insights.INTERACTIVE_STUDENTS,args:[e],params:a}},{name:l("questions"),active:"questions"===t,appLink:{application:i.O.INSIGHTS,action:r.e.Insights.INTERACTIVE_QUESTIONS,args:[e],params:a}},{name:l("heatmap"),active:"heatmap"===t,appLink:{application:i.O.INSIGHTS,action:r.e.Insights.INTERACTIVE_HEATMAP,args:[e],params:a}}]}},93116:(e,t,a)=>{a.d(t,{m:()=>de});var n=a(32735),r=a(82602),i=a(23481),l=a(57900),c=a(2948),o=a(20354),s=a(74901),u=a(40003),m=a(88180),d=a(34509),f=a(57266),p=a(22988),g=a(110),v=a(83914),b=a(35223);const y={dateInputLabel:"CLYvu",dateInput:"gnEqJ"};function h(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,l,c=[],o=!0,s=!1;try{if(i=(a=a.call(e)).next,0===t){if(Object(a)!==a)return;o=!1}else for(;!(o=(n=i.call(a)).done)&&(c.push(n.value),c.length!==t);o=!0);}catch(e){s=!0,r=e}finally{try{if(!o&&null!=a.return&&(l=a.return(),Object(l)!==l))return}finally{if(s)throw r}}return c}}(e,t)||function(e,t){if(e){if("string"==typeof e)return E(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)?E(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 E(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=i.T.encloseNamespace("shared.customDateRangeSelector"),N=2,I="DD/MM/YYYY";function S(e){var t,a,r=h(n.useState("startDate"),2),i=r[0],l=r[1],c=function(e){var t=n.useRef(),a=n.useRef();return n.useEffect((function(){var n,r;"startDate"===e&&(null===(n=t.current)||void 0===n||n.focus()),"endDate"===e&&(null===(r=a.current)||void 0===r||r.focus())}),[e]),[t,a]}(i),o=h(c,2),s=o[0],u=o[1];return n.createElement("div",{className:"d-inline-block"},n.createElement("div",{className:"d-flex align-items-center border-bottom p-3"},n.createElement("div",{className:"me-auto invisible"},n.createElement(v.x,{svgName:b.vn.Close})),n.createElement("form",{className:"d-flex align-items-center"},n.createElement("div",{className:"position-relative"},n.createElement("strong",{className:y.dateInputLabel},D("from")),n.createElement("input",{ref:s,className:"form-control cursor-pointer ".concat(y.dateInput),value:null!==(t=g.O.format(e.startDate,I))&&void 0!==t?t:"",onChange:function(){},onFocus:function(){return l("startDate")}})),n.createElement("span",{className:"px-3"},n.createElement(v.x,{svgName:b.vn.ArrowRight})),n.createElement("div",{className:"position-relative"},n.createElement("strong",{className:y.dateInputLabel},D("to")),n.createElement("input",{ref:u,className:"form-control cursor-pointer ".concat(y.dateInput),value:null!==(a=g.O.format(e.endDate,I))&&void 0!==a?a:"",onChange:function(){},onFocus:function(){return l("endDate")}}))),n.createElement("div",{className:"ms-auto cursor-pointer"},n.createElement(v.x,{svgName:b.vn.Close,onClick:e.close}))),n.createElement("div",{className:"p-3"},n.createElement(p._W,{mode:"range",numberOfMonths:N,selected:{from:e.startDate,to:e.endDate},onDayClick:function(t){"startDate"===i?(e.setDateRange({startDate:t,endDate:g.O.isAfter(t,e.endDate)?void 0:e.endDate}),l((function(e){return"endDate"===e?"startDate":"endDate"}))):(e.setDateRange({startDate:g.O.isAfter(e.startDate,t)?t:e.startDate,endDate:g.O.isAfter(e.startDate,t)?void 0:t}),g.O.isAfter(e.startDate,t)||l((function(e){return"endDate"===e?"startDate":"endDate"})))},captionLayout:"dropdown-buttons",fromDate:e.minDate,toDate:e.maxDate,modifiersClassNames:{selected:"my-selected",today:"my-today"},defaultMonth:e.startDate})),n.createElement("div",{className:"pb-3 px-3 text-end"},n.createElement("button",{className:"btn btn-outline-dark",onClick:e.onClickApply},D("apply"))))}function w(e){return n.createElement(d.Z.Toggle,{as:"div",id:"date-range-dropdown",className:"no-caret"},n.createElement("button",{className:"btn btn-outline-dark d-flex align-items-center pe-5",onClick:function(){e.toggleDropdown()}},n.createElement("span",null,e.value),n.createElement("div",{className:"position-absolute translate-middle top-50 end-0 me-n1"},n.createElement(v.x,{svgName:b.vn.Calendar,size:v.S.Standard}))))}var O=a(36532);function k(e){return g.O.isAfter(e,new Date,"day")}function C(e){return k(e.startDate)}const R={containerWithDynamicRanges:"pvYdJ",selectedDateRange:"JU7bd",rangeList:"DBlzu"};var A=i.T.encloseNamespace("shared.presetDateRangeSelector");function x(e){var t=e.range.name===e.selectedRangeName,a=C(e.range)||e.range.disabled,r=function(){return n.createElement("button",{className:(i=t,l="btn btn-link d-flex align-items-center py-1 px-0 text-decoration-none",i?l+" fw-bold text-info ".concat(R.selectedDateRange):l+" text-body"),onClick:function(){return e.onClick(e.range)},disabled:a},t&&n.createElement(v.x,{svgName:b.vn.Check}),n.createElement("span",{className:"".concat(a?"text-secondary":""," ").concat(e.isDynamic?"fw-bold":"")},e.range.name),!!e.isDynamic&&n.createElement(n.Fragment,null," ",n.createElement("span",{className:"text-secondary"},(r=e.range,"(".concat(g.O.format(r.startDate,"ddd, D MMM"))+" - ".concat(g.O.format(r.endDate,"ddd, D MMM"),")")))));var r,i,l};return e.range.tooltip?n.createElement(O.u,{title:e.range.tooltip,placement:"left",spanHack:!0,spanHackClassName:"justify-content-start"},n.createElement(r,null)):n.createElement(r,null)}function T(e){var t;function a(t){var a=function(e){if(!C(e))return k(e.endDate)?Object.assign(Object.assign({},e),{endDate:new Date}):e}(t);a&&e.setDateRange(a)}var r=!!(null===(t=e.dynamicDateRanges)||void 0===t?void 0:t.length);return n.createElement("div",{className:r?"py-3 ".concat(R.containerWithDynamicRanges):"py-2"},n.createElement("div",{className:"row px-2"},n.createElement("div",{className:r?"col-4 pe-2 border-end":"col-12"},n.createElement("ul",{className:"list-unstyled ".concat(R.rangeList)},e.genericDateRanges.map((function(t,r){return n.createElement("li",{key:r},n.createElement(x,{range:t,onClick:a,selectedRangeName:e.selectedRangeName}))})))),r&&n.createElement("div",{className:"col-8 ps-2"},n.createElement("ul",{className:"list-unstyled ".concat(R.rangeList)},e.dynamicDateRanges.map((function(t,r){return n.createElement("li",{key:r},n.createElement(x,{range:t,onClick:a,selectedRangeName:e.selectedRangeName,isDynamic:!0}))}))))),n.createElement("div",{className:"row px-2"},n.createElement("div",{className:"col-12"},n.createElement("div",{className:r?"pe-2 text-end":R.rangeList},n.createElement("button",{className:"btn btn-link p-0",onClick:e.showCustomRangeSelector},n.createElement("strong",null,A("customRange")))))))}function L(e){return e.getFullYear()===(new Date).getFullYear()}function M(e,t){var a=t?"ddd, D MMM YYYY":"ddd, D MMM";return g.O.format(e,a)}function j(e,t,a){var n=(0,u.W5)(e,t.name)||t;if(!n.startDate||!n.endDate)return"";var r=!L(n.startDate)||!L(n.endDate),i="".concat(M(n.startDate,r)," - ").concat(M(n.endDate,r));return n.name?"".concat(n.name).concat(a?"":" (".concat(i,")")):i}function P(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,l,c=[],o=!0,s=!1;try{if(i=(a=a.call(e)).next,0===t){if(Object(a)!==a)return;o=!1}else for(;!(o=(n=i.call(a)).done)&&(c.push(n.value),c.length!==t);o=!0);}catch(e){s=!0,r=e}finally{try{if(!o&&null!=a.return&&(l=a.return(),Object(l)!==l))return}finally{if(s)throw r}}return c}}(e,t)||function(e,t){if(e){if("string"==typeof e)return H(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)?H(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 H(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}function F(e){var t=(0,u.NG)(e.dateRangePresets,e.dateRangeQueryParams),a=P(n.useState(t),2),r=a[0],i=a[1],l=P(n.useState("none"),2),c=l[0],o=l[1];function s(e){o("none"),f.e.updateParams((0,u.eO)(e),{merge:!0,keysToRemove:["rangeName"]})}return n.useEffect((function(){i(t)}),[!!t]),t?n.createElement("div",{className:"position-relative"},n.createElement(d.Z,{show:"preset"===c,onToggle:function(e){return o(e?"preset":"none")},className:"custom"===c?"d-none":""},n.createElement(w,{value:j(e.dateRangePresets,t,e.hideRange),hideRange:e.hideRange,toggleDropdown:function(){return o("preset"===c?"none":"preset")}}),n.createElement(d.Z.Menu,{className:"p-0 text-nowrap",align:"end"},n.createElement(T,{genericDateRanges:e.dateRangePresets,setDateRange:function(e){i(e),s(e)},showCustomRangeSelector:function(){return o("custom")},selectedRangeName:t.name}))),n.createElement(d.Z,{show:"custom"===c,onToggle:function(){o("none"),s(r)},className:"custom"===c?"":"d-none"},n.createElement(w,{value:j(e.dateRangePresets,t,e.hideRange),hideRange:e.hideRange}),n.createElement(d.Z.Menu,{className:"p-0",align:"end"},n.createElement(S,{startDate:null==r?void 0:r.startDate,endDate:null==r?void 0:r.endDate,setDateRange:i,maxDate:(0,u.nG)(),minDate:(0,u.zn)(),onClickApply:function(){return s(r)},close:function(){return o("none")}})))):n.createElement(n.Fragment,null)}var V=a(30439),Y=a(65853),_=a(64249),Z=a(86509),G=a(49935),z=a(10874),B=a(38502),U=a(83345),W=a(83523),$=a(38143),K=a(4594),q=a(16714),J=a(39151),Q=a(1666),X=a(31949),ee=a(17913),te=a(22902),ae=a(37802),ne=a(14070),re=a(97291),ie=a(86099),le=a(22490),ce=a(11293),oe=a(24758);function se(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 ue="shared.insightsHeaderView",me=i.T.encloseNamespace(ue);function de(e){var t,a,i,d,f,p,g,y=(p=(0,c.D)($.g.ANONYMISE_USERS,!1,{storage:l.Z1.LocalStorage}),g=2,function(e){if(Array.isArray(e))return e}(p)||function(e,t){var a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var n,r,i,l,c=[],o=!0,s=!1;try{if(i=(a=a.call(e)).next,0===t){if(Object(a)!==a)return;o=!1}else for(;!(o=(n=i.call(a)).done)&&(c.push(n.value),c.length!==t);o=!0);}catch(e){s=!0,r=e}finally{try{if(!o&&null!=a.return&&(l=a.return(),Object(l)!==l))return}finally{if(s)throw r}}return c}}(p,g)||function(e,t){if(e){if("string"==typeof e)return se(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)?se(e,t):void 0}}(p,g)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),h=y[0],E=y[1],D=(0,ae.r)(null).hasClassrooms,N=(0,te.T)().hasPermissions,I=o.a.useBasicFetch(J.L.config()),S=Object.assign(Object.assign({},(0,u.wO)((0,u.Hb)(),e.dateRangeAppLinkParams)),(0,s.K)(e.audienceAppLinkParams)),w=o.a.useBasicFetch(X.N.currentUser()),k=o.a.useBasicFetch(e.video&&V.o.getShareLinkByObjectId(e.video.id)),C=o.a.useBasicFetch(e.video&&V.o.getSentDirectShareByObjectId(e.video.id)),R=o.a.useBasicFetch((null===(t=w.data)||void 0===t?void 0:t.customerId)&&_.I.getDirectShareRecipientsRequest(w.data.customerId,C.data)),A=o.a.useBasicFetch(w.data&&e.video&&ee.u.views(S,e.video.id,w.data.id)),x=o.a.useBasicFetch(e.video&&V.o.getPrivacy(e.video.id)),T=o.a.useBasicFetch((null===(a=w.data)||void 0===a?void 0:a.isAuthenticated)&&Q.h.yearGroups(w.data.customerId)),L=k.hasCompleted&&!k.data&&C.hasCompleted&&!C.data,M=k.hasCompleted&&k.data||C.hasCompleted&&C.data&&(!k.data||x.data)&&(!k.data||T.data)&&R.data&&A.data,j=k.data&&x.data&&T.data&&Y.R.getIconAndText({entity:e.video,entityTypeId:e.video.typeId,hasStudentExp:!1,isPasswordProtected:k.data.isPasswordProtected,linkExpireDate:k.data.linkExpireDate,privacy:x.data,status:k.data.status,yearGroups:T.data});return n.createElement("div",null,n.createElement(ce.p,{analyticsUrl:null===(i=I.data)||void 0===i?void 0:i.analyticsWebUrl,hasAnalytics:N(q.C.ViewCustomerAnalytics)}),n.createElement("section",{className:"mb-4"},n.createElement("div",{className:"mb-3"},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),n.createElement(O.u,{title:me(e.video.typeId===K.E.Interactive?"viewInteractive":e.video.typeId===K.E.Clip?"viewClip":"viewVideo"),type:"text",spanHack:!0,spanHackClassName:"d-inline-block align-text-bottom"},n.createElement(z.h,{svgName:b.vn.NewWindow,appLink:le.W.getAppLink(e.video),svgSize:v.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"},n.createElement(m.B,{hasClassroomsFeature:D}),n.createElement(F,{dateRangeQueryParams:e.dateRangeAppLinkParams,dateRangePresets:(0,u.Hb)(),hideRange:!0}),n.createElement(Z.m,{dropdownToggleClassName:"btn btn-outline-dark",actions:function(){var t,a=[];return(null===(t=e.video)||void 0===t?void 0:t.typeId)===K.E.Interactive&&a.push({label:me("generateReport"),appLink:{application:re.O.INSIGHTS,action:ne.e.Insights.INTERACTIVE_GENERATE_REPORT,args:[e.video.id]}}),a}()}))),n.createElement("div",{className:"d-flex justify-content-between mb-3"},e.video?n.createElement(G.Oo,{breadcrumbs:[{name:me("myShares"),appLink:{application:re.O.MY_SHARES,action:ne.e.MyShares.HOME}},{name:e.video.name,active:!0}]}):n.createElement(G.b2,null),n.createElement("div",{className:"d-flex gap-3"},n.createElement("label",{htmlFor:"anonymiseNames",className:"mb-0"},n.createElement(U.x,{namespace:ue,phrase:"anonymiseNames"})),n.createElement(W.Z,{id:"anonymiseNames",on:h,onClick:function(){return E(!h)}}))),M&&n.createElement("div",{className:"d-flex border border-light p-3 rounded-3 align-items-center justify-content-between"},n.createElement("div",{className:"d-flex align-items-center gap-2"},n.createElement(oe.A,{shareRecipients:R.data,imageCdnUrl:I.data.imageCdnUrl,hasShareLink:!!k.data,maxAvatars:4,shareLinkText:null==j?void 0:j.text}),"·",n.createElement("p",{className:"mb-0"},(0,r.WU)(null===(d=C.data)||void 0===d?void 0:d.dateCreated)),"·",n.createElement("p",{className:"mb-0"},n.createElement(U.x,{namespace:ue,phrase:"views",options:{count:null===(f=A.data)||void 0===f?void 0:f.data.length}}))),n.createElement(z.h,{appLink:(0,ie.YK)(e.video),svgName:b.vn.Share,className:"btn btn-outline-dark"},n.createElement(U.x,{namespace:ue,phrase:"share"}))),!L&&!M&&n.createElement("div",{className:"p-3 rounded partial-loading-background"},n.createElement("p",{className:"mb-1"}," "))),n.createElement("div",{className:"d-flex align-items-center mb-4"},n.createElement(B.r,{tabs:e.tabs}))))}},62712:(e,t,a)=>{a.d(t,{Z:()=>n});const n={circleContainer:"p8Vgz",backgroundCircle:"asGGE",circleSuccess:"PXLNj",circleWarning:"ZckRN",circleDanger:"slBRg",lgCircleContainer:"N8KCI",xsCircleContainer:"RPqZ2",pendingCircle:"DKrcq",centredPercentageText:"tpmLR"}},87432:(e,t,a)=>{a.d(t,{Z:()=>n});const n={pillTabSelector:"Hdi6o",tab:"RvNxr",minWidth:"GHSz9",radiusSmall:"VhJJa",tabLink:"WFyvo"}}}]);
|
|
2
|
-
//# sourceMappingURL=180-6c4779f6ab-lite.chunk.js.map
|