@clickview/lite 0.70.1-dev.0 → 0.70.1-dev.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/{2018-lite-4aa02cdb17.chunk.css → 581-lite-a1cdc302ab.chunk.css} +3 -1
- package/dist/css/{2614-lite-0503112afe.chunk.css → 6156-lite-1b21a4e130.chunk.css} +3 -2
- package/dist/languages/en.json +1 -1
- package/dist/scripts/2154-6da16cef10-lite.chunk.js +2 -0
- package/dist/scripts/2154-6da16cef10-lite.chunk.js.map +1 -0
- package/dist/scripts/{2952-4f5abfce6d-lite.chunk.js → 2952-c5ec8f135e-lite.chunk.js} +2 -2
- package/dist/scripts/2952-c5ec8f135e-lite.chunk.js.map +1 -0
- package/dist/scripts/4377-001a8ee263-lite.chunk.js +2 -0
- package/dist/scripts/4377-001a8ee263-lite.chunk.js.map +1 -0
- package/dist/scripts/549-2d591052e3-lite.chunk.js +2 -0
- package/dist/scripts/549-2d591052e3-lite.chunk.js.map +1 -0
- package/dist/scripts/5721-2141ed4fb6-lite.chunk.js +2 -0
- package/dist/scripts/5721-2141ed4fb6-lite.chunk.js.map +1 -0
- package/dist/scripts/5797-f84ce545b9-lite.chunk.js +2 -0
- package/dist/scripts/5797-f84ce545b9-lite.chunk.js.map +1 -0
- package/dist/scripts/581-6e9a9afba8-lite.chunk.js +2 -0
- package/dist/scripts/{2018-693740d206-lite.chunk.js.map → 581-6e9a9afba8-lite.chunk.js.map} +1 -1
- package/dist/scripts/5829-5b395badf2-lite.chunk.js +3 -0
- package/dist/scripts/5829-5b395badf2-lite.chunk.js.map +1 -0
- package/dist/scripts/6046-5652117548-lite.chunk.js +2 -0
- package/dist/scripts/6046-5652117548-lite.chunk.js.map +1 -0
- package/dist/scripts/6156-d9a351e53f-lite.chunk.js +2 -0
- package/dist/scripts/{2614-bc2fef6ae0-lite.chunk.js.map → 6156-d9a351e53f-lite.chunk.js.map} +1 -1
- package/dist/scripts/6629-910e316a83-lite.chunk.js +3 -0
- package/dist/scripts/6629-910e316a83-lite.chunk.js.map +1 -0
- package/dist/scripts/7428-6dd787bc07-lite.chunk.js +2 -0
- package/dist/scripts/7428-6dd787bc07-lite.chunk.js.map +1 -0
- package/dist/scripts/7757-9b72774917-lite.chunk.js +2 -0
- package/dist/scripts/{7757-e4d91d7fac-lite.chunk.js.map → 7757-9b72774917-lite.chunk.js.map} +1 -1
- package/dist/scripts/8191-ff27deee6c-lite.chunk.js +2 -0
- package/dist/scripts/8191-ff27deee6c-lite.chunk.js.map +1 -0
- package/dist/scripts/{bundle-f9b9be2d02.min.js → bundle-4b10174000.min.js} +3 -3
- package/dist/scripts/{bundle-f9b9be2d02.min.js.map → bundle-4b10174000.min.js.map} +1 -1
- package/package.json +1 -1
- package/dist/scripts/1386-3be201d425-lite.chunk.js +0 -2
- package/dist/scripts/1386-3be201d425-lite.chunk.js.map +0 -1
- package/dist/scripts/2018-693740d206-lite.chunk.js +0 -2
- package/dist/scripts/2614-bc2fef6ae0-lite.chunk.js +0 -2
- package/dist/scripts/2952-4f5abfce6d-lite.chunk.js.map +0 -1
- package/dist/scripts/4377-f6e641f39a-lite.chunk.js +0 -2
- package/dist/scripts/4377-f6e641f39a-lite.chunk.js.map +0 -1
- package/dist/scripts/52-9d13c36f9b-lite.chunk.js +0 -2
- package/dist/scripts/52-9d13c36f9b-lite.chunk.js.map +0 -1
- package/dist/scripts/549-f06f2dab2b-lite.chunk.js +0 -2
- package/dist/scripts/549-f06f2dab2b-lite.chunk.js.map +0 -1
- package/dist/scripts/5721-bfd734f968-lite.chunk.js +0 -2
- package/dist/scripts/5721-bfd734f968-lite.chunk.js.map +0 -1
- package/dist/scripts/5797-04d8a61b80-lite.chunk.js +0 -2
- package/dist/scripts/5797-04d8a61b80-lite.chunk.js.map +0 -1
- package/dist/scripts/5829-82562ea6c2-lite.chunk.js +0 -3
- package/dist/scripts/5829-82562ea6c2-lite.chunk.js.map +0 -1
- package/dist/scripts/6046-339bc1b2e1-lite.chunk.js +0 -2
- package/dist/scripts/6046-339bc1b2e1-lite.chunk.js.map +0 -1
- package/dist/scripts/6629-55dc1fdb80-lite.chunk.js +0 -3
- package/dist/scripts/6629-55dc1fdb80-lite.chunk.js.map +0 -1
- package/dist/scripts/7757-e4d91d7fac-lite.chunk.js +0 -2
- package/dist/scripts/8191-d5f68d2463-lite.chunk.js +0 -2
- package/dist/scripts/8191-d5f68d2463-lite.chunk.js.map +0 -1
- /package/dist/css/{52-lite-e2d7497beb.chunk.css → 7428-lite-e2d7497beb.chunk.css} +0 -0
- /package/dist/scripts/{5829-82562ea6c2-lite.chunk.js.LICENSE.txt → 5829-5b395badf2-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{6629-55dc1fdb80-lite.chunk.js.LICENSE.txt → 6629-910e316a83-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{bundle-f9b9be2d02.min.js.LICENSE.txt → bundle-4b10174000.min.js.LICENSE.txt} +0 -0
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[8191],{70376:(t,e,n)=>{n.d(e,{W:()=>c});var r=n(32735),a=n(91967);function i(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=Array(e);n<e;n++)r[n]=t[n];return r}var s=5e3;function c(t){var e,n,c=arguments.length>1&&void 0!==arguments[1]?arguments[1]:s,o=(e=r.useState(!1),n=2,function(t){if(Array.isArray(t))return t}(e)||function(t,e){var n=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=n){var r,a,i,s,c=[],o=!0,u=!1;try{if(i=(n=n.call(t)).next,0===e){if(Object(n)!==n)return;o=!1}else for(;!(o=(r=i.call(n)).done)&&(c.push(r.value),c.length!==e);o=!0);}catch(t){u=!0,a=t}finally{try{if(!o&&null!=n.return&&(s=n.return(),Object(s)!==s))return}finally{if(u)throw a}}return c}}(e,n)||function(t,e){if(t){if("string"==typeof t)return i(t,e);var n={}.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?i(t,e):void 0}}(e,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.")}()),u=o[0],l=o[1],d=r.useRef(null),v=function(){l((function(t){return!t})),d.current=window.setTimeout(v,c)};return r.useEffect((function(){d.current=window.setTimeout(v,c)}),[]),r.useEffect((function(){a.q.isFunction(t)&&t()}),[u]),function(){return window.clearTimeout(d.current)}}},71553:(t,e,n)=>{n.d(e,{I:()=>s});var r=n(99940),a=n(62875);function i(t,e){return{currentUserId:t.id,currentCustomerId:t.customerId,dateRange:{start:e.start,end:e.end},userIds:e.userId,classroomsAndGroups:e.groupId}}var s={interactiveResultSet:function(t,e,n,s,c,o,u,l){return{url:c?"/api/domain/v3/analytics/interactives/".concat(t,"/metadata/").concat(e):"/api/domain/v2/analytics/interactives/".concat(t,"/metadata/").concat(e),key:(0,a.H)("interactive:result:set:".concat(t,":").concat(e),s),data:i(n,s),type:r.k.POST,normalize:!1,success:o,error:u,always:l}},mark:function(t,e,n,a,i,s,c){return{url:"/api/domain/v1/analytics/answers/".concat(n),key:"mark:answer:".concat(n,":").concat(a.resultId),type:r.k.PUT,data:a,normalize:!1,invalidationKeys:"interactive:result:set:".concat(t,":").concat(e),success:i,error:s,always:c}},pendingReviews:function(t){return{url:"/api/domain/v1/analytics/interactives/pending-reviews/summary",key:"interactives:pending:reviews",type:r.k.POST,data:t}},interactiveResultsReport:function(t){return{url:"{gateway}/v2/analytics/interactives/report",key:"interactive:results:report",data:t,type:r.k.POST,normalize:!1}}}},5255:(t,e,n)=>{n.d(e,{Y:()=>c});var r=n(70376),a=n(20354),i=n(30439);function s(t){return s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},s(t)}function c(t){var e,n=a.a.useGetFetch(),c=t&&i.o.getAnonSessions(t),o=a.a.useBasicFetch(c);return(0,r.W)((function(){return n(c)}),5e3),(null===(e=o.data)||void 0===e?void 0:e.length)?o.data.reduce((function(t,e){return Object.assign(Object.assign({},t),(n={},r=e.sessionId,a=e,(r=function(t){var e=function(t){if("object"!=s(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var n=e.call(t,"string");if("object"!=s(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==s(e)?e:e+""}(r))in n?Object.defineProperty(n,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):n[r]=a,n));var n,r,a}),{}):{}}},41196:(t,e,n)=>{n.d(e,{W:()=>c});var r=n(20354),a=n(71553),i=n(20768),s=n(31949);function c(t,e,n){var c,o=r.a.useBasicFetch(s.N.currentUser()),u=r.a.useBasicFetch(!!t&&i.b.interactiveMetadata(t)),l=r.a.useBasicFetch(!!(null===(c=u.data)||void 0===c?void 0:c.interactiveId)&&i.b.interactive(u.data.interactiveId)),d=!!o.data&&!!l.data&&!!e;return r.a.useBasicFetch(d&&a.I.interactiveResultSet(u.data.interactiveId,u.data.id,o.data,e,n))}},60003:(t,e,n)=>{n.r(e),n.d(e,{InteractiveInsightsStudentsView:()=>T});var r=n(32735),a=n(81886),i=n(23481),s=n(2948),c=n(20354),o=n(5255),u=n(41196),l=n(26025),d=n(74901),v=n(40003),f=n(38143),y=n(16714),m=n(39151),p=n(20768),b=n(22902),h=n(79612),g=n(37802),I=n(14070),S=n(97291),w=n(53936),A=n(78057),j=n(10447);function k(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=Array(e);n<e;n++)r[n]=t[n];return r}var O=i.T.encloseNamespace("insights.interactiveInsightsStudents");function T(t){var e,n,i,T,B,E=(T=(0,s.D)(f.g.ANONYMISE_USERS),B=1,function(t){if(Array.isArray(t))return t}(T)||function(t,e){var n=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=n){var r,a,i,s,c=[],o=!0,u=!1;try{if(i=(n=n.call(t)).next,0===e){if(Object(n)!==n)return;o=!1}else for(;!(o=(r=i.call(n)).done)&&(c.push(r.value),c.length!==e);o=!0);}catch(t){u=!0,a=t}finally{try{if(!o&&null!=n.return&&(s=n.return(),Object(s)!==s))return}finally{if(u)throw a}}return c}}(T,B)||function(t,e){if(t){if("string"==typeof t)return k(t,e);var n={}.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?k(t,e):void 0}}(T,B)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}())[0],F=(0,g.r)(null).hasShareFlowV2,R=(0,b.T)().hasPermissions,P=c.a.useBasicFetch(m.L.config()),U=c.a.useBasicFetch(p.b.interactiveMetadata(t.interactiveId)),C=c.a.useBasicFetch((null===(e=U.data)||void 0===e?void 0:e.interactiveId)&&p.b.interactive(U.data.interactiveId)),M=(0,o.Y)(t.shareId),N=l.B.getAudienceAppLinkParams(),_=l.B.getDateRangeAppLinkParams(),L=(0,u.W)(t.interactiveId,Object.assign(Object.assign({},(0,v.wO)((0,v.Hb)(),_)),(0,d.K)(N)),!0),W=C.data&&U.data&&!!L.data;(0,h.M)({title:U.data?O("pageTitle",{video:null===(n=U.data)||void 0===n?void 0:n.name}):null});var V=Object.assign(Object.assign(Object.assign({},N),_),{shareId:t.shareId});return r.createElement("div",{className:"px-3"},r.createElement(w.j,{dateRangeAppLinkParams:_,tabs:(0,j.kj)(t.interactiveId,"results",V),video:U.data,hasAnalytics:R(y.C.ViewCustomerAnalytics),analyticsWebUrl:null===(i=P.data)||void 0===i?void 0:i.analyticsWebUrl,hasShareFlowV2:F,shareId:t.shareId}),r.createElement(A.R,{interactiveMetadata:U.data,viewStudentResults:function(t,e,n){a.Q.C$.trigger({application:S.O.INSIGHTS,action:I.e.Insights.INTERACTIVE_STUDENT_RESULTS,params:{studentId:"id"in t?t.id:void 0,interactiveMetadataId:e,interactionId:n,sessionId:"sessionId"in t?t.sessionId:void 0}})},interactive:C.data,results:L.data,filterBy:t.filterBy,sortBy:t.sortBy,isFetching:L.isFetching,anonymiseUsers:E,hasDataLoaded:W,anonSessions:M}))}}}]);
|
|
2
|
+
//# sourceMappingURL=8191-ff27deee6c-lite.chunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scripts/8191-ff27deee6c-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/common/src/react/hooks/UsePolling.ts","file:///app/packages/libs/shared/src/apps/analytics/flight-requests/InteractiveResultsRequests.ts","file:///app/packages/libs/shared/src/apps/analytics/hooks/UseAnonSessions.ts","file:///app/packages/libs/shared/src/apps/analytics/hooks/UseFetchInteractiveResults.ts","file:///app/packages/projects/lite/src/apps/my-shares/views/interactive/students/InteractiveInsightsStudentsView.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\n\nconst DEFAULT_POLLING_INTERVAL = 5000; // 5 seconds.\n\n/**\n * Hook to fire a callback at a set interval.\n * @param callback \n * @param pollingInterval \n * \n * Returns a function to clear the timeout.\n */\nexport function usePolling(callback: () => void, pollingInterval: number = DEFAULT_POLLING_INTERVAL): () => void {\n const [ pollingTrigger, setPollingTrigger ] = React.useState(false);\n\n const timeoutRef = React.useRef<number>(null);\n\n const poll = () => {\n setPollingTrigger(t => !t);\n\n timeoutRef.current = window.setTimeout(poll, pollingInterval);\n };\n\n React.useEffect(() => {\n timeoutRef.current = window.setTimeout(poll, pollingInterval);\n }, []);\n\n React.useEffect(() => {\n if (FunctionHelper.isFunction(callback))\n callback();\n }, [pollingTrigger]);\n\n return () => window.clearTimeout(timeoutRef.current);\n}","import { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\nimport { Flight } from 'libs/common/react/index';\n\nimport { MarkInteractiveAnswer } from 'libs/shared/apps/analytics/interfaces/MarkInteractiveAnswer';\nimport { InteractiveResultsReport } from 'libs/shared/apps/analytics/interfaces/requests/InteractiveResultsReport';\nimport { InteractivesPendingReviewsRequest } from 'libs/shared/apps/analytics/interfaces/requests/InteractivesPendingReviewsRequest';\nimport { AnalyticsRequestFilter, CurrentUser, InteractiveResultSet } from 'libs/shared/interfaces';\nimport { getAnalyticsRequestKey } from 'libs/shared/utils/AnalyticsRequestUtils';\n\ninterface InteractiveResultFilters {\n currentUserId: string;\n currentCustomerId: string;\n dateRange?: { start: string, end: string }\n userIds?: string | string[];\n classroomsAndGroups?: string | string[];\n}\n\nfunction getInteractiveResultFilters(\n currentUser: CurrentUser,\n filter: AnalyticsRequestFilter\n): InteractiveResultFilters {\n return {\n currentUserId: currentUser.id,\n currentCustomerId: currentUser.customerId,\n dateRange: { start: filter.start, end: filter.end },\n userIds: filter.userId,\n classroomsAndGroups: filter.groupId\n };\n}\n\nexport const InteractiveResultsRequests = {\n /** \n * This endpoint returns data with a lot of duplicated ids,\n * e.g. student answers to the same question will have the same id.\n * Because of that, we don't normalize.\n */\n interactiveResultSet(\n interactiveId: string,\n interactiveMetadataId: string,\n currentUser: CurrentUser,\n filter: AnalyticsRequestFilter,\n includePublicResults: boolean,\n success?: (data: InteractiveResultSet) => void,\n error?: (data: any) => void,\n always?: () => void\n ): Flight.Request {\n return {\n url: includePublicResults ?\n `/api/domain/v3/analytics/interactives/${interactiveId}/metadata/${interactiveMetadataId}` :\n `/api/domain/v2/analytics/interactives/${interactiveId}/metadata/${interactiveMetadataId}`,\n key: getAnalyticsRequestKey(`interactive:result:set:${interactiveId}:${interactiveMetadataId}`, filter),\n data: getInteractiveResultFilters(currentUser, filter),\n type: HttpVerbs.POST,\n normalize: false,\n success,\n error,\n always\n };\n },\n \n /**\n * As the response from `interactiveResultSet` isn't normalised, we need to invalidate the cache\n * to update the results data.\n */\n mark(\n interactiveId: string,\n interactiveMetadataId: string,\n answerId: string,\n data: MarkInteractiveAnswer,\n success?: () => void,\n error?: (data: any) => void,\n always?: () => void\n ): Flight.Request {\n return {\n url: `/api/domain/v1/analytics/answers/${answerId}`,\n key: `mark:answer:${answerId}:${data.resultId}`,\n type: HttpVerbs.PUT,\n data,\n normalize: false,\n invalidationKeys: `interactive:result:set:${interactiveId}:${interactiveMetadataId}`,\n success,\n error,\n always\n };\n },\n\n pendingReviews(data: InteractivesPendingReviewsRequest): Flight.Request {\n return {\n url: `/api/domain/v1/analytics/interactives/pending-reviews/summary`,\n key: `interactives:pending:reviews`,\n type: HttpVerbs.POST,\n data\n };\n },\n\n interactiveResultsReport(data: InteractiveResultsReport): Flight.Request {\n return {\n url: '{gateway}/v2/analytics/interactives/report',\n key: 'interactive:results:report',\n data,\n type: HttpVerbs.POST,\n normalize: false\n };\n }\n};","import { usePolling } from 'libs/common/react/hooks/UsePolling';\nimport { Flight } from 'libs/common/react/index';\n\nimport { ShareRequests } from 'libs/shared/apps/share/flight-requests/ShareRequests';\n\nexport interface AnonSession {\n sessionId: string;\n sessionName: string;\n}\n\nexport interface AnonSessions extends Record<string, AnonSession> {}\n\nexport function useAnonSessions(shareId: string): AnonSessions {\n const fetch = Flight.useGetFetch();\n const anonSessionsRequest = shareId && ShareRequests.getAnonSessions(shareId);\n const anonSessionsResponse = Flight.useBasicFetch<AnonSession[]>(anonSessionsRequest);\n\n usePolling(() => fetch(anonSessionsRequest), 5000);\n\n if (!anonSessionsResponse.data?.length)\n return {};\n\n return anonSessionsResponse.data.reduce((prev, current) => ({ ...prev, [current.sessionId]: current }), {});\n}","import { Flight } from 'libs/common/flight';\n\nimport { InteractiveResultsRequests } from 'libs/shared/apps/analytics/flight-requests/InteractiveResultsRequests';\nimport { InteractiveRequests } from 'libs/shared/flight-requests/InteractiveRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { AnalyticsRequestFilter, CurrentUser, Interactive, InteractiveMetadata, InteractiveResultSet } from 'libs/shared/interfaces';\n\nexport function useFetchInteractiveResults(\n interactiveMetadataId: string,\n requestFilter: AnalyticsRequestFilter,\n includePublicResults?: boolean\n): Flight.Response<InteractiveResultSet> {\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n\n const interactiveMetadata = Flight.useBasicFetch<InteractiveMetadata>(!!interactiveMetadataId &&\n InteractiveRequests.interactiveMetadata(interactiveMetadataId));\n\n const interactive = Flight.useBasicFetch<Interactive>(!!interactiveMetadata.data?.interactiveId &&\n InteractiveRequests.interactive(interactiveMetadata.data.interactiveId));\n\n const shouldFetchResults = !!currentUser.data && !!interactive.data && (!!requestFilter);\n\n return Flight.useBasicFetch<InteractiveResultSet>(shouldFetchResults &&\n InteractiveResultsRequests.interactiveResultSet(\n interactiveMetadata.data.interactiveId,\n interactiveMetadata.data.id,\n currentUser.data,\n requestFilter,\n includePublicResults\n ));\n}","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { useViewModel } from 'libs/common/react/hooks/UseViewModel';\nimport { Flight } from 'libs/common/react/index';\n\nimport { useAnonSessions } from 'libs/shared/apps/analytics/hooks/UseAnonSessions';\nimport { useFetchInteractiveResults } from 'libs/shared/apps/analytics/hooks/UseFetchInteractiveResults';\nimport { UserOrAnonSession } from 'libs/shared/apps/analytics/interfaces/UserOrAnonSession';\nimport { AnalyticsFilterHelper } from 'libs/shared/apps/analytics/utils/AnalyticsFilterUtils';\nimport { getAudienceParams } from 'libs/shared/apps/analytics/utils/AudienceUtils';\nimport { getInsightsDateRangePresets, getStartEndParams } from 'libs/shared/apps/analytics/utils/DateRangeUtils';\nimport { FilterStudentsBy, SortStudentsBy } from 'libs/shared/apps/analytics/utils/StudentTableUtils';\nimport { SharedViewModelKeys } from 'libs/shared/constants/SharedViewModelKeys';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { InteractiveRequests } from 'libs/shared/flight-requests/InteractiveRequests';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { Config, Interactive, InteractiveMetadata } from 'libs/shared/interfaces';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nimport { InsightsHeader } from 'apps/my-shares/components/insights-header/InsightsHeader';\nimport { InteractiveInsightsStudents } from 'apps/my-shares/components/interactive-insights-students/InteractiveInsightsStudents';\nimport { getInsightsInteractiveTabs } from 'apps/my-shares/utils/InsightsAppLinkUtils';\n\nconst namespace = 'insights.interactiveInsightsStudents';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface InteractiveInsightsStudentsViewProps {\n interactiveId: string;\n sortBy: SortStudentsBy;\n filterBy: FilterStudentsBy;\n shareId?: string;\n}\n\nexport function InteractiveInsightsStudentsView(props: InteractiveInsightsStudentsViewProps) {\n const [anonymiseUsers] = useViewModel<boolean>(SharedViewModelKeys.ANONYMISE_USERS);\n\n const { hasShareFlowV2 } = useSettings(null);\n\n const { hasPermissions } = usePermissions();\n\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n\n const interactiveMetadata = Flight.useBasicFetch<InteractiveMetadata>(\n InteractiveRequests.interactiveMetadata(props.interactiveId)\n );\n\n const interactive = Flight.useBasicFetch<Interactive>(interactiveMetadata.data?.interactiveId &&\n InteractiveRequests.interactive(interactiveMetadata.data.interactiveId));\n\n const anonSessions = useAnonSessions(props.shareId);\n\n const audienceAppLinkParams = AnalyticsFilterHelper.getAudienceAppLinkParams();\n const dateRangeAppLinkParams = AnalyticsFilterHelper.getDateRangeAppLinkParams();\n\n const results = useFetchInteractiveResults(props.interactiveId, {\n ...getStartEndParams(getInsightsDateRangePresets(), dateRangeAppLinkParams),\n ...getAudienceParams(audienceAppLinkParams)\n }, true);\n\n const hasDataLoaded = interactive.data && interactiveMetadata.data && !!results.data;\n\n useSetPageMetadata({ title: interactiveMetadata.data ? getPhrase('pageTitle', { video: interactiveMetadata.data?.name }) : null });\n\n function viewStudentResults(\n user: UserOrAnonSession,\n interactiveMetadataId: string,\n interactionId?: string\n ) {\n Core.AppLinkHelper.trigger({\n application: AppChannels.INSIGHTS,\n action: Actions.Insights.INTERACTIVE_STUDENT_RESULTS,\n params: {\n studentId: 'id' in user ? user.id : undefined,\n interactiveMetadataId,\n interactionId,\n sessionId: 'sessionId' in user ? user.sessionId : undefined\n }\n });\n }\n\n const params = {\n ...audienceAppLinkParams,\n ...dateRangeAppLinkParams,\n shareId: props.shareId\n };\n\n return (\n <div className='px-3'>\n <InsightsHeader\n dateRangeAppLinkParams={dateRangeAppLinkParams}\n tabs={getInsightsInteractiveTabs(props.interactiveId, 'results', params)}\n video={interactiveMetadata.data}\n hasAnalytics={hasPermissions(PermissionName.ViewCustomerAnalytics)}\n analyticsWebUrl={config.data?.analyticsWebUrl}\n hasShareFlowV2={hasShareFlowV2}\n shareId={props.shareId}\n />\n\n <InteractiveInsightsStudents\n interactiveMetadata={interactiveMetadata.data}\n viewStudentResults={viewStudentResults}\n interactive={interactive.data}\n results={results.data}\n filterBy={props.filterBy}\n sortBy={props.sortBy}\n isFetching={results.isFetching}\n anonymiseUsers={anonymiseUsers}\n hasDataLoaded={hasDataLoaded}\n anonSessions={anonSessions}\n />\n </div>\n );\n}"],"names":["DEFAULT_POLLING_INTERVAL","usePolling","callback","pollingInterval","pollingTrigger","setPollingTrigger","timeoutRef","t","current","window","setTimeout","clearTimeout","getInteractiveResultFilters","currentUser","filter","currentUserId","id","currentCustomerId","customerId","dateRange","start","end","userIds","userId","classroomsAndGroups","groupId","InteractiveResultsRequests","interactiveResultSet","interactiveId","interactiveMetadataId","includePublicResults","success","error","always","url","key","data","type","normalize","mark","answerId","resultId","invalidationKeys","pendingReviews","interactiveResultsReport","useAnonSessions","shareId","fetch","anonSessionsRequest","anonSessionsResponse","length","reduce","prev","sessionId","useFetchInteractiveResults","requestFilter","interactiveMetadata","interactive","shouldFetchResults","I","getPhrase","InteractiveInsightsStudentsView","props","anonymiseUsers","hasShareFlowV2","hasPermissions","config","anonSessions","audienceAppLinkParams","dateRangeAppLinkParams","results","hasDataLoaded","title","video","name","params","className","tabs","hasAnalytics","analyticsWebUrl","viewStudentResults","user","interactionId","application","action","studentId","undefined","filterBy","sortBy","isFetching"],"sourceRoot":""}
|