@clickview/lite 0.69.1-dev.0 → 0.69.1-dev.1
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/{2636-lite-f995954232.chunk.css → 6078-lite-4d1b877b3f.chunk.css} +4 -0
- package/dist/css/{1239-lite-8152f713c8.chunk.css → 7210-lite-a568e8ec1e.chunk.css} +1 -0
- package/dist/scripts/1210-7afb28caac-lite.chunk.js +2 -0
- package/dist/scripts/1210-7afb28caac-lite.chunk.js.map +1 -0
- package/dist/scripts/232-1522c00252-lite.chunk.js +3 -0
- package/dist/scripts/232-1522c00252-lite.chunk.js.map +1 -0
- package/dist/scripts/300-3d9f3cd4e3-lite.chunk.js +2 -0
- package/dist/scripts/300-3d9f3cd4e3-lite.chunk.js.map +1 -0
- package/dist/scripts/3079-0a333d6805-lite.chunk.js +2 -0
- package/dist/scripts/3079-0a333d6805-lite.chunk.js.map +1 -0
- package/dist/scripts/3110-eee18143c6-lite.chunk.js +2 -0
- package/dist/scripts/3110-eee18143c6-lite.chunk.js.map +1 -0
- package/dist/scripts/312-693aa30814-lite.chunk.js +2 -0
- package/dist/scripts/312-693aa30814-lite.chunk.js.map +1 -0
- package/dist/scripts/4229-477b1858dc-lite.chunk.js +2 -0
- package/dist/scripts/4229-477b1858dc-lite.chunk.js.map +1 -0
- package/dist/scripts/{4845-f3646fb657-lite.chunk.js → 4845-9b4657e696-lite.chunk.js} +2 -2
- package/dist/scripts/4845-9b4657e696-lite.chunk.js.map +1 -0
- package/dist/scripts/5679-b40a221c78-lite.chunk.js +2 -0
- package/dist/scripts/5679-b40a221c78-lite.chunk.js.map +1 -0
- package/dist/scripts/6046-104677f08c-lite.chunk.js +2 -0
- package/dist/scripts/6046-104677f08c-lite.chunk.js.map +1 -0
- package/dist/scripts/6078-0bc71f8768-lite.chunk.js +2 -0
- package/dist/scripts/6078-0bc71f8768-lite.chunk.js.map +1 -0
- package/dist/scripts/{6188-e108abca25-lite.chunk.js → 6188-77fc2f3ec5-lite.chunk.js} +2 -2
- package/dist/scripts/6188-77fc2f3ec5-lite.chunk.js.map +1 -0
- package/dist/scripts/6351-dff9edbb16-lite.chunk.js +3 -0
- package/dist/scripts/6351-dff9edbb16-lite.chunk.js.map +1 -0
- package/dist/scripts/6973-c4cb114bd7-lite.chunk.js +2 -0
- package/dist/scripts/6973-c4cb114bd7-lite.chunk.js.map +1 -0
- package/dist/scripts/7210-d8fa7ca624-lite.chunk.js +3 -0
- package/dist/scripts/7210-d8fa7ca624-lite.chunk.js.map +1 -0
- package/dist/scripts/7482-13e6f78c32-lite.chunk.js +2 -0
- package/dist/scripts/7482-13e6f78c32-lite.chunk.js.map +1 -0
- package/dist/scripts/9040-be65e4eb1e-lite.chunk.js +2 -0
- package/dist/scripts/9040-be65e4eb1e-lite.chunk.js.map +1 -0
- package/dist/scripts/{bundle-90d3c7fd15.min.js → bundle-bad2e20859.min.js} +3 -3
- package/dist/scripts/{bundle-90d3c7fd15.min.js.map → bundle-bad2e20859.min.js.map} +1 -1
- package/package.json +1 -1
- package/dist/scripts/1210-3cbdc62b0a-lite.chunk.js +0 -2
- package/dist/scripts/1210-3cbdc62b0a-lite.chunk.js.map +0 -1
- package/dist/scripts/1239-ed9b8aadb4-lite.chunk.js +0 -3
- package/dist/scripts/1239-ed9b8aadb4-lite.chunk.js.map +0 -1
- package/dist/scripts/2636-63e5f2c9e6-lite.chunk.js +0 -2
- package/dist/scripts/2636-63e5f2c9e6-lite.chunk.js.map +0 -1
- package/dist/scripts/3036-d18c598435-lite.chunk.js +0 -2
- package/dist/scripts/3036-d18c598435-lite.chunk.js.map +0 -1
- package/dist/scripts/4229-75ba28a266-lite.chunk.js +0 -2
- package/dist/scripts/4229-75ba28a266-lite.chunk.js.map +0 -1
- package/dist/scripts/4266-e856b96643-lite.chunk.js +0 -3
- package/dist/scripts/4266-e856b96643-lite.chunk.js.map +0 -1
- package/dist/scripts/4598-f326dc1aec-lite.chunk.js +0 -2
- package/dist/scripts/4598-f326dc1aec-lite.chunk.js.map +0 -1
- package/dist/scripts/4845-f3646fb657-lite.chunk.js.map +0 -1
- package/dist/scripts/6046-44c115a89c-lite.chunk.js +0 -2
- package/dist/scripts/6046-44c115a89c-lite.chunk.js.map +0 -1
- package/dist/scripts/6188-e108abca25-lite.chunk.js.map +0 -1
- package/dist/scripts/6317-49be898c73-lite.chunk.js +0 -2
- package/dist/scripts/6317-49be898c73-lite.chunk.js.map +0 -1
- package/dist/scripts/6973-ede6601614-lite.chunk.js +0 -2
- package/dist/scripts/6973-ede6601614-lite.chunk.js.map +0 -1
- package/dist/scripts/7075-9a76ce47c9-lite.chunk.js +0 -3
- package/dist/scripts/7075-9a76ce47c9-lite.chunk.js.map +0 -1
- package/dist/scripts/9040-9393c59004-lite.chunk.js +0 -2
- package/dist/scripts/9040-9393c59004-lite.chunk.js.map +0 -1
- /package/dist/css/{3036-lite-1b3e9aa905.chunk.css → 3079-lite-1b3e9aa905.chunk.css} +0 -0
- /package/dist/css/{7075-lite-a377febbb0.chunk.css → 6351-lite-a377febbb0.chunk.css} +0 -0
- /package/dist/scripts/{4266-e856b96643-lite.chunk.js.LICENSE.txt → 232-1522c00252-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{1239-ed9b8aadb4-lite.chunk.js.LICENSE.txt → 6351-dff9edbb16-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{7075-9a76ce47c9-lite.chunk.js.LICENSE.txt → 7210-d8fa7ca624-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{bundle-90d3c7fd15.min.js.LICENSE.txt → bundle-bad2e20859.min.js.LICENSE.txt} +0 -0
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[4229],{5255:(t,e,r)=>{r.d(e,{Y:()=>o});var a=r(20354),n=r(30439);function i(t){return i="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},i(t)}function o(t){var e,r=a.a.useBasicFetch(t&&n.o.getAnonSessions(t));return(null===(e=r.data)||void 0===e?void 0:e.length)?r.data.reduce((function(t,e){return Object.assign(Object.assign({},t),(r={},a=e.sessionId,n=e,(a=function(t){var e=function(t){if("object"!=i(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var r=e.call(t,"string");if("object"!=i(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==i(e)?e:e+""}(a))in r?Object.defineProperty(r,a,{value:n,enumerable:!0,configurable:!0,writable:!0}):r[a]=n,r));var r,a,n}),{}):{}}},41196:(t,e,r)=>{r.d(e,{W:()=>s});var a=r(20354),n=r(71553),i=r(20768),o=r(31949);function s(t,e,r){var s,c=a.a.useBasicFetch(o.N.currentUser()),u=a.a.useBasicFetch(!!t&&i.b.interactiveMetadata(t)),l=a.a.useBasicFetch(!!(null===(s=u.data)||void 0===s?void 0:s.interactiveId)&&i.b.interactive(u.data.interactiveId)),d=!!c.data&&!!l.data&&!!e;return a.a.useBasicFetch(d&&n.I.interactiveResultSet(u.data.interactiveId,u.data.id,c.data,e,r))}},74901:(t,e,r)=>{function a(t){return function(t){if(Array.isArray(t))return n(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||function(t,e){if(t){if("string"==typeof t)return n(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?n(t,e):void 0}}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function n(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,a=Array(e);r<e;r++)a[r]=t[r];return a}r.d(e,{K:()=>i});var i=function(t){var e=[],r=[];return t.users&&e.push.apply(e,a(t.users)),t.classrooms&&r.push.apply(r,a(t.classrooms)),t.classroomGroups&&r.push.apply(r,a(t.classroomGroups)),{userId:e,groupId:r}}},94644:(t,e,r)=>{r.d(e,{r:()=>l});var a=r(50242),n=r(81886),i=r(67058),o=r(14553),s=r(49267),c=r(49075),u={notFound:i.d,forbidden:{rating:o.q,yearLevel:o.q,region:s.a,privacy:o.q},badRequest:c._,internalServerError:c._};function l(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(t){var i;i="number"==typeof t?t:t.status;var o=Object.assign(Object.assign({},u),e);i&&n.Q.Ry.isStatusCodeError(i)&&(i!==a.o.InternalServer?i!==a.o.NotFound?i!==a.o.Forbidden?r.badRequest||n.Q.Ry.throw(new o.badRequest):r.forbidden||n.Q.Ry.throw(new o.forbidden.privacy):r.notFound||n.Q.Ry.throw(new o.notFound):r.internalServerError||n.Q.Ry.throw(new c._))}}},91286:(t,e,r)=>{r.d(e,{v:()=>o});var a=r(32735),n=r(94644);function i(t){return t.map((function(t){return t.statusCode})).join(":")}function o(t,e,r){var o=Array.isArray(t)?t:[t];(0,a.useEffect)((function(){o.forEach((function(t){(0,n.r)(t.statusCode,e,r)}))}),[i(o),e,r])}},24191:(t,e,r)=>{r.r(e),r.d(e,{InteractiveInsightsQuestionsView:()=>O});var a=r(32735),n=r(23481),i=r(2948),o=r(20354),s=r(5255),c=r(41196),u=r(26025),l=r(74901),d=r(40003),v=r(38143),f=r(16714),y=r(39151),b=r(20768),h=r(91286),m=r(93322),p=r(22902),g=r(79612),I=r(37802),S=r(26203),w=r(68536),A=r(10447);function j(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,a=Array(e);r<e;r++)a[r]=t[r];return a}var F=n.T.encloseNamespace("shared.interactiveInsightsQuestionsView");function O(t){var e,r,n,O,E,B=(O=(0,i.D)(v.g.ANONYMISE_USERS),E=1,function(t){if(Array.isArray(t))return t}(O)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var a,n,i,o,s=[],c=!0,u=!1;try{if(i=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;c=!1}else for(;!(c=(a=i.call(r)).done)&&(s.push(a.value),s.length!==e);c=!0);}catch(t){u=!0,n=t}finally{try{if(!c&&null!=r.return&&(o=r.return(),Object(o)!==o))return}finally{if(u)throw n}}return s}}(O,E)||function(t,e){if(t){if("string"==typeof t)return j(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?j(t,e):void 0}}(O,E)||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];(0,m.F)();var R=(0,I.r)(null).hasShareFlowV2,k=(0,p.T)().hasPermissions,C=o.a.useBasicFetch(y.L.config()),_=o.a.useBasicFetch(b.b.interactiveMetadata(t.interactiveId)),q=o.a.useBasicFetch((null===(e=_.data)||void 0===e?void 0:e.interactiveId)&&b.b.interactive(_.data.interactiveId)),M=(0,s.Y)(t.shareId),P=u.B.getAudienceAppLinkParams(),Q=u.B.getDateRangeAppLinkParams(),U=(0,c.W)(t.interactiveId,Object.assign(Object.assign({},(0,d.wO)((0,d.Hb)(),Q)),(0,l.K)(P)),!0);(0,g.M)({title:_.data?F("pageTitle",{video:null===(r=_.data)||void 0===r?void 0:r.name}):null}),(0,h.v)([q,_,U]);var L=q.data&&_.data&&!!U.data,N=Object.assign(Object.assign(Object.assign({},P),Q),{shareId:t.shareId});return a.createElement("div",{className:"px-3"},a.createElement(S.j,{dateRangeAppLinkParams:Q,tabs:(0,A.kj)(t.interactiveId,"questions",N),video:_.data,hasAnalytics:k(f.C.ViewCustomerAnalytics),analyticsWebUrl:null===(n=C.data)||void 0===n?void 0:n.analyticsWebUrl,hasShareFlowV2:R,shareId:t.shareId}),a.createElement(w.x,{interactive:q.data,interactiveMetadata:_.data,interactionId:t.interactionId,config:C.data,sortBy:t.sortBy,isFetching:U.isFetching||q.isFetching,anonymiseUsers:B,results:U.data,hasDataLoaded:L,anonSessions:M}))}}}]);
|
|
2
|
+
//# sourceMappingURL=4229-477b1858dc-lite.chunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scripts/4229-477b1858dc-lite.chunk.js","mappings":"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","sources":["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/libs/shared/src/apps/analytics/utils/AudienceUtils.ts","file:///app/packages/libs/shared/src/errors/handlers/HttpErrorHandlers.ts","file:///app/packages/libs/shared/src/hooks/UseHandleObjectError.ts","file:///app/packages/projects/lite/src/apps/my-shares/views/interactive/questions/InteractiveInsightsQuestionsView.tsx"],"sourcesContent":["import { 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 anonSessions = Flight.useBasicFetch<AnonSession[]>(shareId && ShareRequests.getAnonSessions(shareId));\n\n if (!anonSessions.data?.length)\n return {};\n\n return anonSessions.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 { AudienceQueryParams } from 'libs/shared/apps/analytics/interfaces/AudienceQueryParams';\n\nexport const getAudienceParams = (queryParams: AudienceQueryParams) => {\n const userId: string[] = [];\n const groupId: string[] = [];\n\n if (queryParams.users)\n userId.push(...queryParams.users);\n\n if (queryParams.classrooms)\n groupId.push(...queryParams.classrooms);\n\n if (queryParams.classroomGroups)\n groupId.push(...queryParams.classroomGroups);\n return {\n userId,\n groupId\n };\n};","import { BaseError } from 'libs/common/backbone/core/BaseError';\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\nimport { Xhr } from 'libs/common/backbone/interfaces';\nimport { Core } from 'libs/common/core';\n\nimport { NotFoundError } from 'libs/shared/errors/general/not-found/NotFoundError';\nimport { PrivateResourceError } from 'libs/shared/errors/general/private-resource/PrivateResourceError';\nimport { RegionLockedResourceError } from 'libs/shared/errors/general/region-locked-resource/RegionLockedResourceError';\nimport { UnspecifiedError } from 'libs/shared/errors/general/unspecified-error/UnspecifiedError';\nimport { VideoTypes } from 'libs/shared/interfaces';\n\nexport interface HttpErrorMap {\n notFound?: new () => BaseError;\n forbidden?: {\n rating?: new (description: string) => BaseError;\n yearLevel?: new (description: string) => BaseError;\n region?: new () => BaseError;\n privacy?: new (video?: VideoTypes) => BaseError;\n };\n badRequest?: new () => BaseError;\n internalServerError?: new () => BaseError;\n}\n\nexport type IgnoreHttpErrorMap = {\n [key in keyof HttpErrorMap]: boolean;\n};\n\nconst defaultErrors: HttpErrorMap = {\n notFound: NotFoundError,\n forbidden: {\n rating: PrivateResourceError,\n yearLevel: PrivateResourceError,\n region: RegionLockedResourceError,\n privacy: PrivateResourceError\n },\n badRequest: UnspecifiedError,\n internalServerError: UnspecifiedError\n};\n\nexport function handleHttpError(\n info: HttpStatus | Xhr,\n customErrorMap: HttpErrorMap = {},\n /**\n * Prevent certain errors in the errorMap from being thrown\n * so that you may implement your own handler\n */\n ignoreMap: IgnoreHttpErrorMap = {}\n): void {\n if (!info)\n return;\n\n let statusCode: HttpStatus;\n\n if (typeof(info) === 'number') {\n statusCode = info;\n } else {\n statusCode = info.status;\n }\n\n const errorMap = {\n ...defaultErrors,\n ...customErrorMap\n };\n\n if (!statusCode)\n return;\n\n if (!Core.ErrorHelper.isStatusCodeError(statusCode))\n return;\n\n if (statusCode === HttpStatus.InternalServer) {\n if (!ignoreMap.internalServerError)\n Core.ErrorHelper.throw(new UnspecifiedError());\n return;\n }\n\n if (statusCode === HttpStatus.NotFound) {\n if (!ignoreMap.notFound)\n Core.ErrorHelper.throw(new errorMap.notFound());\n return;\n }\n\n if (statusCode === HttpStatus.Forbidden) {\n /**\n * TODO: Work out how to go about handling all forbidden errors, such as region locking, year levels,\n * ratings, and privacy.\n */\n if (!ignoreMap.forbidden)\n Core.ErrorHelper.throw(new errorMap.forbidden.privacy());\n return;\n }\n\n if (!ignoreMap.badRequest)\n Core.ErrorHelper.throw(new errorMap.badRequest());\n}\n\nexport function handleXhrError(xhr: Xhr, customErrorMap?: HttpErrorMap): void {\n handleHttpError(xhr.status, customErrorMap);\n}","import { useEffect } from 'react';\n\nimport { Flight } from 'libs/common/flight';\n\nimport { handleHttpError, HttpErrorMap, IgnoreHttpErrorMap } from 'libs/shared/errors/handlers/HttpErrorHandlers';\n\nfunction generateCacheKey(flightObjs: Array<Flight.Response<any>>): string {\n return flightObjs.map(obj => obj.statusCode).join(':');\n}\n\n// TODO: Change this to just `useHandleHttpError` and only accept a status code.\nexport function useHandleObjectError(\n _flightObjs: Flight.Response<any> | Array<Flight.Response<any>>,\n customErrors?: HttpErrorMap,\n ignoreErrors?: IgnoreHttpErrorMap\n): void {\n const flightObjs = Array.isArray(_flightObjs) ? _flightObjs : [_flightObjs];\n\n useEffect(() => {\n flightObjs.forEach(obj => {\n handleHttpError(obj.statusCode, customErrors, ignoreErrors);\n });\n }, [ generateCacheKey(flightObjs), customErrors, ignoreErrors ]);\n}","import React from 'react';\n\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 { 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 { 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 { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { useLockContentWidth } from 'libs/shared/hooks/useLockContentWidth';\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 { InsightsHeader } from 'apps/my-shares/components/insights-header/InsightsHeader';\nimport { InteractiveInsightsQuestions } from 'apps/my-shares/components/interactive-insights-questions/InteractiveInsightsQuestions';\nimport { getInsightsInteractiveTabs } from 'apps/my-shares/utils/InsightsAppLinkUtils';\n\nconst namespace = 'shared.interactiveInsightsQuestionsView';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\n\ninterface InteractiveInsightsQuestionsViewProps {\n interactiveId: string;\n interactionId: string;\n sortBy: SortStudentsBy;\n shareId?: string;\n}\n\nexport function InteractiveInsightsQuestionsView(props: InteractiveInsightsQuestionsViewProps) {\n const [anonymiseUsers] = useViewModel<boolean>(SharedViewModelKeys.ANONYMISE_USERS);\n\n useLockContentWidth();\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\n useSetPageMetadata({ title: interactiveMetadata.data ? getPhrase('pageTitle', { video: interactiveMetadata.data?.name }) : null });\n useHandleObjectError([ interactive, interactiveMetadata, results ]);\n\n const hasDataLoaded = interactive.data && interactiveMetadata.data && !!results.data;\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, 'questions', 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 <InteractiveInsightsQuestions\n interactive={interactive.data}\n interactiveMetadata={interactiveMetadata.data}\n interactionId={props.interactionId}\n config={config.data}\n sortBy={props.sortBy}\n isFetching={results.isFetching || interactive.isFetching}\n anonymiseUsers={anonymiseUsers}\n results={results.data}\n hasDataLoaded={hasDataLoaded}\n anonSessions={anonSessions}\n />\n </div>\n );\n}"],"names":["useAnonSessions","shareId","anonSessions","data","length","reduce","prev","current","sessionId","useFetchInteractiveResults","interactiveMetadataId","requestFilter","includePublicResults","currentUser","interactiveMetadata","interactive","interactiveId","shouldFetchResults","I","id","getAudienceParams","queryParams","userId","groupId","users","push","classrooms","classroomGroups","defaultErrors","notFound","forbidden","rating","yearLevel","region","privacy","badRequest","internalServerError","handleHttpError","info","customErrorMap","ignoreMap","statusCode","status","errorMap","generateCacheKey","flightObjs","map","obj","join","useHandleObjectError","_flightObjs","customErrors","ignoreErrors","Array","isArray","useEffect","forEach","getPhrase","InteractiveInsightsQuestionsView","props","anonymiseUsers","hasShareFlowV2","hasPermissions","config","audienceAppLinkParams","dateRangeAppLinkParams","results","title","video","name","hasDataLoaded","params","className","tabs","hasAnalytics","analyticsWebUrl","interactionId","sortBy","isFetching"],"sourceRoot":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[4845],{71553:(t,e,r)=>{r.d(e,{I:()=>s});var a=r(99940),n=r(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,r,s,o,c,u,l){return{url:o?"/api/domain/v3/analytics/interactives/".concat(t,"/metadata/").concat(e):"/api/domain/v2/analytics/interactives/".concat(t,"/metadata/").concat(e),key:(0,n.H)("interactive:result:set:".concat(t,":").concat(e),s),data:i(r,s),type:a.k.POST,normalize:!1,success:c,error:u,always:l}},mark:function(t,e,r,n,i,s,o){return{url:"/api/domain/v1/analytics/answers/".concat(r),key:"mark:answer:".concat(r,":").concat(n.resultId),type:a.k.PUT,data:n,normalize:!1,invalidationKeys:"interactive:result:set:".concat(t,":").concat(e),success:i,error:s,always:o}},pendingReviews:function(t){return{url:"/api/domain/v1/analytics/interactives/pending-reviews/summary",key:"interactives:pending:reviews",type:a.k.POST,data:t}},interactiveResultsReport:function(t){return{url:"{gateway}/v2/analytics/interactives/report",key:"interactive:results:report",data:t,type:a.k.POST,normalize:!1}}}},5255:(t,e,r)=>{r.d(e,{Y:()=>s});var a=r(20354),n=r(30439);function i(t){return i="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},i(t)}function s(t){var e,r=a.a.useBasicFetch(t&&n.o.getAnonSessions(t));return(null===(e=r.data)||void 0===e?void 0:e.length)?r.data.reduce((function(t,e){return Object.assign(Object.assign({},t),(r={},a=e.sessionId,n=e,(a=function(t){var e=function(t){if("object"!=i(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var r=e.call(t,"string");if("object"!=i(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==i(e)?e:e+""}(a))in r?Object.defineProperty(r,a,{value:n,enumerable:!0,configurable:!0,writable:!0}):r[a]=n,r));var r,a,n}),{}):{}}},41196:(t,e,r)=>{r.d(e,{W:()=>o});var a=r(20354),n=r(71553),i=r(20768),s=r(31949);function o(t,e,r){var o,c=a.a.useBasicFetch(s.N.currentUser()),u=a.a.useBasicFetch(!!t&&i.b.interactiveMetadata(t)),l=a.a.useBasicFetch(!!(null===(o=u.data)||void 0===o?void 0:o.interactiveId)&&i.b.interactive(u.data.interactiveId)),d=!!c.data&&!!l.data&&!!e;return a.a.useBasicFetch(d&&n.I.interactiveResultSet(u.data.interactiveId,u.data.id,c.data,e,r))}},74901:(t,e,r)=>{function a(t){return function(t){if(Array.isArray(t))return n(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||function(t,e){if(t){if("string"==typeof t)return n(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?n(t,e):void 0}}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function n(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,a=Array(e);r<e;r++)a[r]=t[r];return a}r.d(e,{K:()=>i});var i=function(t){var e=[],r=[];return t.users&&e.push.apply(e,a(t.users)),t.classrooms&&r.push.apply(r,a(t.classrooms)),t.classroomGroups&&r.push.apply(r,a(t.classroomGroups)),{userId:e,groupId:r}}},62875:(t,e,r)=>{function a(t,e,r){var a="".concat(t,":").concat(e.start,":").concat(e.end),n=Array.isArray(e.userId)?e.userId.sort().join(":"):e.userId,i=Array.isArray(e.groupId)?e.groupId.sort().join(":"):e.groupId;return n&&(a+=":".concat(n)),i&&(a+=":".concat(i)),r&&(a+=":".concat(r)),a}r.d(e,{H:()=>a})},60003:(t,e,r)=>{r.r(e),r.d(e,{InteractiveInsightsStudentsView:()=>T});var a=r(32735),n=r(81886),i=r(23481),s=r(2948),o=r(20354),c=r(5255),u=r(41196),l=r(26025),d=r(74901),v=r(40003),y=r(
|
|
2
|
-
//# sourceMappingURL=4845-
|
|
1
|
+
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[4845],{71553:(t,e,r)=>{r.d(e,{I:()=>s});var a=r(99940),n=r(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,r,s,o,c,u,l){return{url:o?"/api/domain/v3/analytics/interactives/".concat(t,"/metadata/").concat(e):"/api/domain/v2/analytics/interactives/".concat(t,"/metadata/").concat(e),key:(0,n.H)("interactive:result:set:".concat(t,":").concat(e),s),data:i(r,s),type:a.k.POST,normalize:!1,success:c,error:u,always:l}},mark:function(t,e,r,n,i,s,o){return{url:"/api/domain/v1/analytics/answers/".concat(r),key:"mark:answer:".concat(r,":").concat(n.resultId),type:a.k.PUT,data:n,normalize:!1,invalidationKeys:"interactive:result:set:".concat(t,":").concat(e),success:i,error:s,always:o}},pendingReviews:function(t){return{url:"/api/domain/v1/analytics/interactives/pending-reviews/summary",key:"interactives:pending:reviews",type:a.k.POST,data:t}},interactiveResultsReport:function(t){return{url:"{gateway}/v2/analytics/interactives/report",key:"interactive:results:report",data:t,type:a.k.POST,normalize:!1}}}},5255:(t,e,r)=>{r.d(e,{Y:()=>s});var a=r(20354),n=r(30439);function i(t){return i="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},i(t)}function s(t){var e,r=a.a.useBasicFetch(t&&n.o.getAnonSessions(t));return(null===(e=r.data)||void 0===e?void 0:e.length)?r.data.reduce((function(t,e){return Object.assign(Object.assign({},t),(r={},a=e.sessionId,n=e,(a=function(t){var e=function(t){if("object"!=i(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var r=e.call(t,"string");if("object"!=i(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==i(e)?e:e+""}(a))in r?Object.defineProperty(r,a,{value:n,enumerable:!0,configurable:!0,writable:!0}):r[a]=n,r));var r,a,n}),{}):{}}},41196:(t,e,r)=>{r.d(e,{W:()=>o});var a=r(20354),n=r(71553),i=r(20768),s=r(31949);function o(t,e,r){var o,c=a.a.useBasicFetch(s.N.currentUser()),u=a.a.useBasicFetch(!!t&&i.b.interactiveMetadata(t)),l=a.a.useBasicFetch(!!(null===(o=u.data)||void 0===o?void 0:o.interactiveId)&&i.b.interactive(u.data.interactiveId)),d=!!c.data&&!!l.data&&!!e;return a.a.useBasicFetch(d&&n.I.interactiveResultSet(u.data.interactiveId,u.data.id,c.data,e,r))}},74901:(t,e,r)=>{function a(t){return function(t){if(Array.isArray(t))return n(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||function(t,e){if(t){if("string"==typeof t)return n(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?n(t,e):void 0}}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function n(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,a=Array(e);r<e;r++)a[r]=t[r];return a}r.d(e,{K:()=>i});var i=function(t){var e=[],r=[];return t.users&&e.push.apply(e,a(t.users)),t.classrooms&&r.push.apply(r,a(t.classrooms)),t.classroomGroups&&r.push.apply(r,a(t.classroomGroups)),{userId:e,groupId:r}}},62875:(t,e,r)=>{function a(t,e,r){var a="".concat(t,":").concat(e.start,":").concat(e.end),n=Array.isArray(e.userId)?e.userId.sort().join(":"):e.userId,i=Array.isArray(e.groupId)?e.groupId.sort().join(":"):e.groupId;return n&&(a+=":".concat(n)),i&&(a+=":".concat(i)),r&&(a+=":".concat(r)),a}r.d(e,{H:()=>a})},60003:(t,e,r)=>{r.r(e),r.d(e,{InteractiveInsightsStudentsView:()=>T});var a=r(32735),n=r(81886),i=r(23481),s=r(2948),o=r(20354),c=r(5255),u=r(41196),l=r(26025),d=r(74901),v=r(40003),y=r(38143),f=r(16714),p=r(39151),m=r(20768),I=r(22902),b=r(79612),g=r(37802),h=r(14070),S=r(97291),A=r(26203),w=r(78057),j=r(10447);function k(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,a=Array(e);r<e;r++)a[r]=t[r];return a}var O=i.T.encloseNamespace("insights.interactiveInsightsStudents");function T(t){var e,r,i,T,B,R=(T=(0,s.D)(y.g.ANONYMISE_USERS),B=1,function(t){if(Array.isArray(t))return t}(T)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var a,n,i,s,o=[],c=!0,u=!1;try{if(i=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;c=!1}else for(;!(c=(a=i.call(r)).done)&&(o.push(a.value),o.length!==e);c=!0);}catch(t){u=!0,n=t}finally{try{if(!c&&null!=r.return&&(s=r.return(),Object(s)!==s))return}finally{if(u)throw n}}return o}}(T,B)||function(t,e){if(t){if("string"==typeof t)return k(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?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],E=(0,g.r)(null).hasShareFlowV2,F=(0,I.T)().hasPermissions,P=o.a.useBasicFetch(p.L.config()),U=o.a.useBasicFetch(m.b.interactiveMetadata(t.interactiveId)),C=o.a.useBasicFetch((null===(e=U.data)||void 0===e?void 0:e.interactiveId)&&m.b.interactive(U.data.interactiveId)),M=(0,c.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),V=C.data&&U.data&&!!L.data;(0,b.M)({title:U.data?O("pageTitle",{video:null===(r=U.data)||void 0===r?void 0:r.name}):null});var D=Object.assign(Object.assign(Object.assign({},N),_),{shareId:t.shareId});return a.createElement("div",{className:"px-3"},a.createElement(A.j,{dateRangeAppLinkParams:_,tabs:(0,j.kj)(t.interactiveId,"results",D),video:U.data,hasAnalytics:F(f.C.ViewCustomerAnalytics),analyticsWebUrl:null===(i=P.data)||void 0===i?void 0:i.analyticsWebUrl,hasShareFlowV2:E,shareId:t.shareId}),a.createElement(w.R,{interactiveMetadata:U.data,viewStudentResults:function(t,e,r){n.Q.C$.trigger({application:S.O.INSIGHTS,action:h.e.Insights.INTERACTIVE_STUDENT_RESULTS,params:{studentId:"id"in t?t.id:void 0,interactiveMetadataId:e,interactionId:r,sessionId:"sessionId"in t?t.sessionId:void 0}})},interactive:C.data,results:L.data,filterBy:t.filterBy,sortBy:t.sortBy,isFetching:L.isFetching,anonymiseUsers:R,hasDataLoaded:V,anonSessions:M}))}}}]);
|
|
2
|
+
//# sourceMappingURL=4845-9b4657e696-lite.chunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scripts/4845-9b4657e696-lite.chunk.js","mappings":"8JAiBA,SAASA,EACPC,EACAC,GAEA,MAAO,CACLC,cAAeF,EAAYG,GAC3BC,kBAAmBJ,EAAYK,WAC/BC,UAAW,CAAEC,MAAON,EAAOM,MAAOC,IAAKP,EAAOO,KAC9CC,QAASR,EAAOS,OAChBC,oBAAqBV,EAAOW,QAEhC,CAEO,IAAMC,EAA6B,CAMxCC,qBAAoB,SAClBC,EACAC,EACAhB,EACAC,EACAgB,EACAC,EACAC,EACAC,GAEA,MAAO,CACLC,IAAKJ,EAAoB,gDACkBF,EAAa,qBAAaC,GAAqB,gDAC/CD,EAAa,qBAAaC,GACrEM,KAAK,OAAuB,0BAAD,OAA2BP,EAAa,YAAIC,GAAyBf,GAChGsB,KAAMxB,EAA4BC,EAAaC,GAC/CuB,KAAM,SACNC,WAAW,EACXP,QAAAA,EACAC,MAAAA,EACAC,OAAAA,EAEJ,EAMAM,KAAI,SACFX,EACAC,EACAW,EACAJ,EACAL,EACAC,EACAC,GAEA,MAAO,CACLC,IAAK,oCAAF,OAAsCM,GACzCL,IAAK,eAAF,OAAiBK,EAAQ,YAAIJ,EAAKK,UACrCJ,KAAM,QACND,KAAAA,EACAE,WAAW,EACXI,iBAAkB,0BAAF,OAA4Bd,EAAa,YAAIC,GAC7DE,QAAAA,EACAC,MAAAA,EACAC,OAAAA,EAEJ,EAEAU,eAAc,SAACP,GACb,MAAO,CACLF,IAAK,gEACLC,IAAK,+BACLE,KAAM,SACND,KAAAA,EAEJ,EAEAQ,yBAAwB,SAACR,GACvB,MAAO,CACLF,IAAK,6CACLC,IAAK,6BACLC,KAAAA,EACAC,KAAM,SACNC,WAAW,EAEf,E,kSC5FI,SAAUO,EAAgBC,G,MACxBC,EAAe,kBAAoCD,GAAW,oBAA8BA,IAElG,OAAsB,QAAjB,EAAAC,EAAaX,YAAI,eAAEY,QAGjBD,EAAaX,KAAKa,QAAO,SAACC,EAAMC,GAAO,OAAK,+BAAMD,I,EAAI,G,EAAGC,EAAQC,U,EAAYD,G,+XAAO,GAAK,CAAC,GAFxF,CAAC,CAGZ,C,mFCXM,SAAUE,EACdxB,EACAyB,EACAxB,G,MAEMjB,EAAc,kBAAkC,mBAEhD0C,EAAsB,oBAA4C1B,GACtE,wBAAwCA,IAEpC2B,EAAc,qBAA4D,QAAxB,EAAAD,EAAoBnB,YAAI,eAAER,gBAChF,gBAAgC2B,EAAoBnB,KAAKR,gBAErD6B,IAAuB5C,EAAYuB,QAAUoB,EAAYpB,QAAWkB,EAE1E,OAAO,kBAA2CG,GAChD,EAAAC,EAAA,qBACEH,EAAoBnB,KAAKR,cACzB2B,EAAoBnB,KAAKpB,GACzBH,EAAYuB,KACZkB,EACAxB,GAEN,C,iwBC5BO,IAAM6B,EAAoB,SAACC,GAChC,IAAMrC,EAAmB,GACnBE,EAAoB,GAU1B,OARImC,EAAYC,OACdtC,EAAOuC,KAAI,MAAXvC,EAAM,EAASqC,EAAYC,QAEzBD,EAAYG,YACdtC,EAAQqC,KAAI,MAAZrC,EAAO,EAASmC,EAAYG,aAE1BH,EAAYI,iBACdvC,EAAQqC,KAAI,MAAZrC,EAAO,EAASmC,EAAYI,kBACvB,CACLzC,OAAAA,EACAE,QAAAA,EAEJ,C,kBChBM,SAAUwC,EAAuBC,EAAiBpD,EAAgCqD,GACtF,IAAIhC,EAAM,GAAH,OAAM+B,EAAO,YAAIpD,EAAOM,MAAK,YAAIN,EAAOO,KAEzC+C,EAAYC,MAAMC,QAAQxD,EAAOS,QAAUT,EAAOS,OAAOgD,OAAOC,KAAK,KAAO1D,EAAOS,OACnFkD,EAAaJ,MAAMC,QAAQxD,EAAOW,SAAWX,EAAOW,QAAQ8C,OAAOC,KAAK,KAAO1D,EAAOW,QAW5F,OATI2C,IACFjC,GAAO,IAAJ,OAAQiC,IAETK,IACFtC,GAAO,IAAJ,OAAQsC,IAETN,IACFhC,GAAO,IAAJ,OAAQgC,IAENhC,CACT,C,kbCYA,IACMuC,EAAY,qBADA,wCAUZ,SAAUC,EAAgCC,G,cACvCC,G,GAAkB,OAAsB,qB,EAAoC,E,o4BAA9D,GAEbC,GAAmB,OAAY,MAA/BA,eAEAC,GAAmB,SAAnBA,eAEFC,EAAS,kBAA6B,cAEtCzB,EAAsB,kBAC1B,wBAAwCqB,EAAMhD,gBAG1C4B,EAAc,mBAA0D,QAAxB,EAAAD,EAAoBnB,YAAI,eAAER,gBAC9E,gBAAgC2B,EAAoBnB,KAAKR,gBAErDmB,GAAe,OAAgB6B,EAAM9B,SAErCmC,EAAwB,+BACxBC,EAAyB,gCAEzBC,GAAU,OAA2BP,EAAMhD,cAAe,OAAF,yBACzD,SAAkB,UAA+BsD,KACjD,OAAkBD,KACpB,GAEGG,EAAgB5B,EAAYpB,MAAQmB,EAAoBnB,QAAU+C,EAAQ/C,MAEhF,OAAmB,CAAEiD,MAAO9B,EAAoBnB,KAAOsC,EAAU,YAAa,CAAEY,MAA+B,QAAxB,EAAA/B,EAAoBnB,YAAI,eAAEmD,OAAU,OAmB3H,IAAMC,EAAS,OAAH,sCACPP,GACAC,GAAsB,CACzBpC,QAAS8B,EAAM9B,UAGjB,OACE,uBAAK2C,UAAU,QACb,gBAAC,IAAc,CACbP,uBAAwBA,EACxBQ,MAAM,QAA2Bd,EAAMhD,cAAe,UAAW4D,GACjEF,MAAO/B,EAAoBnB,KAC3BuD,aAAcZ,EAAe,2BAC7Ba,gBAA4B,QAAX,EAAAZ,EAAO5C,YAAI,eAAEwD,gBAC9Bd,eAAgBA,EAChBhC,QAAS8B,EAAM9B,UAGjB,gBAAC,IAA2B,CAC1BS,oBAAqBA,EAAoBnB,KACzCyD,mBArCN,SACEC,EACAjE,EACAkE,GAEA,eAA2B,CACzBC,YAAa,aACbC,OAAQ,yCACRT,OAAQ,CACNU,UAAW,OAAQJ,EAAOA,EAAK9E,QAAKmF,EACpCtE,sBAAAA,EACAkE,cAAAA,EACA3C,UAAW,cAAe0C,EAAOA,EAAK1C,eAAY+C,IAGxD,EAuBM3C,YAAaA,EAAYpB,KACzB+C,QAASA,EAAQ/C,KACjBgE,SAAUxB,EAAMwB,SAChBC,OAAQzB,EAAMyB,OACdC,WAAYnB,EAAQmB,WACpBzB,eAAgBA,EAChBO,cAAeA,EACfrC,aAAcA,IAItB,C","sources":["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/libs/shared/src/apps/analytics/utils/AudienceUtils.ts","file:///app/packages/libs/shared/src/utils/AnalyticsRequestUtils.ts","file:///app/packages/projects/lite/src/apps/my-shares/views/interactive/students/InteractiveInsightsStudentsView.tsx"],"sourcesContent":["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 { 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 anonSessions = Flight.useBasicFetch<AnonSession[]>(shareId && ShareRequests.getAnonSessions(shareId));\n\n if (!anonSessions.data?.length)\n return {};\n\n return anonSessions.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 { AudienceQueryParams } from 'libs/shared/apps/analytics/interfaces/AudienceQueryParams';\n\nexport const getAudienceParams = (queryParams: AudienceQueryParams) => {\n const userId: string[] = [];\n const groupId: string[] = [];\n\n if (queryParams.users)\n userId.push(...queryParams.users);\n\n if (queryParams.classrooms)\n groupId.push(...queryParams.classrooms);\n\n if (queryParams.classroomGroups)\n groupId.push(...queryParams.classroomGroups);\n return {\n userId,\n groupId\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 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":["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","anonSessions","length","reduce","prev","current","sessionId","useFetchInteractiveResults","requestFilter","interactiveMetadata","interactive","shouldFetchResults","I","getAudienceParams","queryParams","users","push","classrooms","classroomGroups","getAnalyticsRequestKey","baseKey","sharerId","userIdKey","Array","isArray","sort","join","groupIdKey","getPhrase","InteractiveInsightsStudentsView","props","anonymiseUsers","hasShareFlowV2","hasPermissions","config","audienceAppLinkParams","dateRangeAppLinkParams","results","hasDataLoaded","title","video","name","params","className","tabs","hasAnalytics","analyticsWebUrl","viewStudentResults","user","interactionId","application","action","studentId","undefined","filterBy","sortBy","isFetching"],"sourceRoot":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[5679],{50938:(e,t,n)=>{n.d(t,{z:()=>y});var r=n(32735),o=n(6748),a=n(23481),l=n(38307),i=n(26136),c=n(97408),s=n(40782),u=n(64818);const d={heatMap:"rwDjh",avatarContainer:"kW4ZM"};function m(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 f=a.T.encloseNamespace("shared.engagementTable");function v(e){var t;return r.createElement("div",{className:"".concat(null!==(t=e.className)&&void 0!==t?t:"")},e.children)}function g(e){return r.createElement(v,{className:"d-inline-block ".concat(e.column.isSorted?"fw-bold":"")},f(e.phraseKey))}function b(e){return r.useMemo((function(){var t,n,o=(t=e.engagement,n=0,t.forEach((function(e){var t,r=Math.max.apply(Math,function(e){if(Array.isArray(e))return m(e)}(t=e.heatMap)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(t)||function(e,t){if(e){if("string"==typeof e)return m(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)?m(e,t):void 0}}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}());r>n&&(n=r)})),n);return[{Header:function(e){var t=e.column;return r.createElement(g,{column:t,phraseKey:"name"})},width:22,accessor:"user",sortType:function(t,n){return(0,i.B2)(t.values.user,e.anonymiseUsers)>(0,i.B2)(n.values.user,e.anonymiseUsers)?1:-1},Cell:function(t){var n,o,a,l,s=t.value,m=(o=s,a=e.anonymiseUsers,{name:(l=(0,i.B2)(o,a).split(" ").filter((function(e){return!!e})))[0],surname:l.slice(1).join(" ")}),f=m.name,g=m.surname;return r.createElement(v,{className:"d-flex align-items-center h-100"},r.createElement("span",{className:d.avatarContainer},r.createElement(c.q,{imageCdnUrl:e.imageCdnUrl,initials:u.l.getInitials(f,g),imageUrl:!e.anonymiseUsers&&"avatar"in s?null===(n=s.avatar)||void 0===n?void 0:n.url:null,showAnonymousUser:"sessionId"in s})),r.createElement("span",{className:"ms-2 clamp-1"},f," ",g))}},{Header:function(e){var t=e.column;return r.createElement(g,{column:t,phraseKey:"views"})},accessor:"viewCount",width:15,sortType:"basic",sortDescFirst:!0,Cell:function(e){var t=e.value;return r.createElement(v,{className:"d-flex align-items-center h-100"},r.createElement("div",null,t))}},{Header:function(e){var t=e.column;return r.createElement(g,{column:t,phraseKey:"engagement"})},accessor:"engagementRate",width:20,sortType:"basic",sortDescFirst:!0,Cell:function(e){var t=e.value;return r.createElement(v,{className:"w-33"},r.createElement(s.O,{percentage:t,layout:s.I.LabelBefore}))}},{Header:function(e){var t=e.column;return r.createElement(g,{column:t,phraseKey:"heatMap"})},accessor:"heatMap",width:48,disableSortBy:!0,Cell:function(e){var t=e.row.original;return r.createElement(v,{className:"d-flex align-items-center h-100"},r.createElement(l.c,{engagement:t,max:o,className:"".concat(d.heatMap," flex-grow-1")}))}}]}),[e.anonymiseUsers])}var h={table:"bg-white rounded px-0",header:"border-bottom",headerCell:"m-3",cell:"mx-3 my-2"};function y(e){var t,n,a,l=b({engagement:e.engagement,imageCdnUrl:e.imageCdnUrl,anonymiseUsers:e.anonymiseUsers}),c=(t=e.engagement,n=e.users,a=e.anonSessions,r.useMemo((function(){var e=[];return t.forEach((function(t){var r=null==n?void 0:n.find((function(e){return e.id===t.userId}));r?e.push(Object.assign(Object.assign({},t),{user:r})):t.sessionId&&e.push(Object.assign(Object.assign({},t),{user:(0,i.jP)(t.sessionId,a)}))})),console.log("TABLE DATA:",e),e}),[null==n?void 0:n.length,a]));return c.length?r.createElement(o.i,{columns:l,data:c,theme:Object.assign(Object.assign({},h),{table:e.border?"".concat(h.table," border"):h.table}),enableSort:!0}):r.createElement(r.Fragment,null)}},49475:(e,t,n)=>{function r(e){var t=[];return Object.keys(e).forEach((function(n){var r=e[n];r&&t.push("".concat(n,":").concat(Array.isArray(r)?r.join(","):r))})),t.join(":")}n.d(t,{u:()=>r})},6748:(e,t,n)=>{n.d(t,{i:()=>j});var r=n(32735),o=n(42648),a=n(35509),l=n(91967),i=n(15611),c=n(17808),s=n(1287),u=n(83914),d=n(90281),m={opacity:"0.8",cursor:"grabbing"},f=n(35223);function v(e){return function(e){if(Array.isArray(e))return b(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 g(e,t){if(e){if("string"==typeof e)return b(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)?b(e,t):void 0}}function b(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 h(e){var t,n,r,o;return{canScrollLeft:(null===(t=e.current)||void 0===t?void 0:t.scrollLeft)>0,canScrollRight:(null===(n=e.current)||void 0===n?void 0:n.scrollLeft)+1<(null===(r=e.current)||void 0===r?void 0:r.scrollWidth)-(null===(o=e.current)||void 0===o?void 0:o.clientWidth)}}const y={sortIndicator:"gFhu0",scrollContainer:"sWUp9",scrollbarTrack:"Vn2qM"};function p(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 S=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n};function w(e){var t,n;return e.column.canSort?r.createElement("span",{className:"".concat(y.sortIndicator,"\n ").concat(e.column.isSorted?"":"text-secondary","\n ").concat(null!==(n=null===(t=e.theme)||void 0===t?void 0:t.sortIndicator)&&void 0!==n?n:"")},r.createElement(u.x,{svgName:e.column.isSortedDesc||!e.column.isSorted?f.vn.ArrowRight:f.vn.ArrowLeft,size:u.S.Small})):r.createElement(r.Fragment,null)}function E(e){var t,n,o,u,d,f,g,b,h={columns:e.columns,data:e.data,disableSortBy:!e.enableSort,manualSortBy:e.manualSort,autoResetHiddenColumns:e.autoResetHiddenColumns,autoResetSortBy:e.autoResetSortBy,initialState:{sortBy:e.initialSortBy||[]}};e.initialSelectedRowIds&&(h.initialState={selectedRowIds:(g=e.initialSelectedRowIds,b={},g.forEach((function(e){return b[e]=!0})),b)}),e.getRowId&&(h.getRowId=e.getRowId);var y,S=a.useTable.apply(void 0,[h].concat((y=function(e){var t=[a.useSortBy,a.useRowSelect,"flex"===e.layout?a.useFlexLayout:a.useBlockLayout];return e.allowFiltering&&(t=[].concat(v(t),[a.useFilters])),e.allowGlobalFiltering&&(t=[].concat(v(t),[a.useGlobalFilter])),t}(Object.assign({},e)),function(e){if(Array.isArray(e))return p(e)}(y)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(y)||function(e,t){if(e){if("string"==typeof e)return p(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)?p(e,t):void 0}}(y)||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.")}()))),E=S.getTableProps,j=S.getTableBodyProps,C=S.headerGroups,O=S.rows,A=S.prepareRow,R=S.toggleAllRowsSelected,I=S.setGlobalFilter,N=S.setHiddenColumns,k=S.state.sortBy;function x(){return O.map((function(t){A(t);var n=function(t){var n,r,o,a,i,c=l.q.isFunction(null===(n=e.theme)||void 0===n?void 0:n.row)?e.theme.row(t):null!==(o=null===(r=e.theme)||void 0===r?void 0:r.row)&&void 0!==o?o:"";return t.isSelected&&(null===(a=e.theme)||void 0===a?void 0:a.selectedRow)&&(c+=" ".concat(null===(i=e.theme)||void 0===i?void 0:i.selectedRow)),e.onSelectRow&&(c+=" cursor-pointer"),e.enableSortableRows&&(c+=" cursor-grab"),c}(t),o=!!e.getRowAppLink&&e.getRowAppLink(t);function a(){e.onSelectRow&&(e.allowSelectMultipleRows||R(!1),e.onSelectRow(t),t.toggleRowSelected(!0))}function c(e,l){var c=function(e,t){return"dragAttributes"in e&&"dragListeners"in e?Object.assign(Object.assign(Object.assign({},e.dragAttributes),e.dragListeners),{"aria-roledescription":"Sortable row",ref:t}):{}}(e,l);return o?r.createElement("div",{role:"row",key:t.id},r.createElement(i.F,Object.assign({},e,c,{className:n,appLink:o}),B(t))):r.createElement("div",Object.assign({},e,c,{key:t.id,role:"row",className:n,onClick:a}),B(t))}var u=t.getRowProps();return e.enableSortableRows?r.createElement(s.W,{id:t.original.id,key:t.id,childProps:u,childComponent:r.forwardRef((function(e,t){return c(e,t)}))}):c(u)}))}function B(t){return t.cells.map((function(n){var o=function(t,n){var r,o,a="";return"function"==typeof(null===(r=e.theme)||void 0===r?void 0:r.cell)&&(a=e.theme.cell(t,n)),"string"==typeof(null===(o=e.theme)||void 0===o?void 0:o.cell)&&(a=e.theme.cell),e.onSelectCell&&(a+=" cursor-pointer"),a}(t,n);return r.createElement("div",Object.assign({key:n.column.id},n.getCellProps(),{className:o,onClick:function(){e.onSelectCell&&e.onSelectCell(n)}}),n.render("Cell"))}))}return r.useEffect((function(){e.onSort&&e.onSort(k)}),[k]),r.useEffect((function(){e.globalFilter&&I(e.globalFilter)}),[e.globalFilter]),r.useEffect((function(){e.hiddenColumns&&N(e.hiddenColumns)}),[e.hiddenColumns&&e.hiddenColumns.length]),r.createElement("div",Object.assign({},E(),{className:null!==(n=null===(t=e.theme)||void 0===t?void 0:t.table)&&void 0!==n?n:""}),r.createElement("div",{className:null!==(u=null===(o=e.theme)||void 0===o?void 0:o.header)&&void 0!==u?u:""},C.map((function(t){var n,o;return r.createElement("div",Object.assign({},t.getHeaderGroupProps(),{className:null!==(o=null===(n=e.theme)||void 0===n?void 0:n.headerRow)&&void 0!==o?o:""}),t.headers.map((function(t){var n,o;return r.createElement("div",Object.assign({},t.getHeaderProps(t.getSortByToggleProps()),{className:null!==(o=null===(n=e.theme)||void 0===n?void 0:n.headerCell)&&void 0!==o?o:""}),t.render("Header",{renderSortIndicator:function(){return r.createElement(w,{column:t,theme:e.theme})}}),!t.hideSortIndicator&&r.createElement(w,{column:t,theme:e.theme}))})))}))),r.createElement("div",Object.assign({},j(),{className:null!==(f=null===(d=e.theme)||void 0===d?void 0:d.body)&&void 0!==f?f:""}),e.enableSortableRows?r.createElement(c.Q,{ids:O.map((function(e){return e.original.id})),getDragOverlay:function(t){var n,o,a=O.findIndex((function(e){return e.original.id===t})),l=O[a];return r.createElement("div",Object.assign({},e,{className:(n=e.theme,o="g-0 ",n&&(o+=n.row),o),style:m}),B(l))},onSortEnd:e.onSortingRowsEnd},x()):x()))}function j(e){var t=e.enableSlider,n=e.scrollIncrement,a=e.scrollable,i=S(e,["enableSlider","scrollIncrement","scrollable"]),c=function(){var e,t,n=r.useRef(null),o=(e=r.useState(h(n)),t=2,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,o,a,l,i=[],c=!0,s=!1;try{if(a=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=a.call(n)).done)&&(i.push(r.value),i.length!==t);c=!0);}catch(e){s=!0,o=e}finally{try{if(!c&&null!=n.return&&(l=n.return(),Object(l)!==l))return}finally{if(s)throw o}}return i}}(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.")}()),a=o[0],i=o[1],c=l.q.throttle((function(){i(h(n))}),200),s=r.useCallback((function(e){var t;n.current&&(null===(t=n.current)||void 0===t||t.removeEventListener("scroll",c)),e&&(i(h(n)),e.addEventListener("scroll",c)),n.current=e}),[]);return r.useEffect((function(){(null==n?void 0:n.current)&&i(h(n))}),[n]),{ref:s,scrollState:a,scroll:function(e){var t;null===(t=n.current)||void 0===t||t.scrollBy({left:e,top:0,behavior:"smooth"})}}}(),s=c.ref,u=c.scrollState,m=c.scroll;if(a)return r.createElement(o.$B,{renderTrackHorizontal:function(){return r.createElement("div",{className:y.scrollbarTrack})},autoHeightMax:1e4,autoHeight:!0},r.createElement(E,Object.assign({},i)));if(!t)return r.createElement(E,Object.assign({},i));function f(e){m(n*("right"===e?1:-1))}return r.createElement("div",{className:"mx-n4 overflow-x-hidden overflow-y-hidden"},r.createElement("div",{className:"px-4"},r.createElement("div",{className:"position-relative"},r.createElement(d.W,{direction:d.f.Left,onClick:function(){return f("left")},hide:!u.canScrollLeft}),r.createElement("div",{className:"".concat(y.scrollContainer," ").concat(e.scrollContainerClassName),ref:s},r.createElement(E,Object.assign({},i))),r.createElement(d.W,{direction:d.f.Right,onClick:function(){return f("right")},hide:!u.canScrollRight}))))}j.defaultProps={scrollIncrement:250,scrollable:!1,layout:"flex"}}}]);
|
|
2
|
+
//# sourceMappingURL=5679-b40a221c78-lite.chunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scripts/5679-b40a221c78-lite.chunk.js","mappings":"+NACA,SAAgB,QAAU,QAAQ,gBAAkB,S,sGCepD,IACMA,EAAYC,EAAA,mBADA,0BAOlB,SAASC,EAAYC,G,MACnB,OACE,uBAAKC,UAAS,UAAoB,QAAf,EAAAD,EAAMC,iBAAS,QAAI,KACnCD,EAAME,SAGb,CAOA,SAASC,EAAWH,GAClB,OACE,gBAACD,EAAW,CAACE,UAAS,yBAAoBD,EAAMI,OAAOC,SAAW,UAAY,KAC3ER,EAAUG,EAAMM,WAGvB,CAmCM,SAAUC,EAAcP,GAC5B,OAAO,WAAc,WACnB,IA/BwBQ,EACtBC,EA8BIC,GA/BkBF,EA+BmBR,EAAMQ,WA9B/CC,EAAM,EAEVD,EAAWG,SAAQ,SAAAC,GACjB,I,EAAMC,EAAWC,KAAKL,IAAG,MAARK,K,+CAAYF,EAAEG,U,mjBAE3BF,EAAWJ,IACbA,EAAMI,EACV,IAEOJ,GAuBL,MAAO,CACL,CACEO,OAAQ,SAAF,OAAKZ,EAAM,EAANA,OAAM,OAAO,gBAACD,EAAU,CAACC,OAAQA,EAAQE,UAAU,QAAS,EACvEW,MAAO,GACPC,SAAU,OACVC,SAAU,SAACC,EAAgCC,GAIzC,OAHc,QAAkBD,EAAKE,OAAOC,KAAMvB,EAAMwB,iBAC1C,QAAkBH,EAAKC,OAAOC,KAAMvB,EAAMwB,gBAEjC,GAAK,CAC9B,EACAC,KAAM,SAAF,GAAgB,I,EA/BNF,EAAyBC,EAEvCE,EA6BSC,EAAK,EAALA,MACP,GAhCYJ,EAgC2BI,EAhCFH,EAgCSxB,EAAMwB,eA5BrD,CACLI,MAHIF,GADW,QAAkBH,EAAMC,GACdK,MAAM,KAAKC,QAAO,SAAAC,GAAC,QAAMA,CAAC,KAGnC,GAChBC,QAASN,EAAUO,MAAM,GAAGC,KAAK,OA0BnBN,EAAI,EAAJA,KAAMI,EAAO,EAAPA,QACd,OACE,gBAACjC,EAAW,CAACE,UAAU,mCACrB,wBAAMA,UAAW,mBACf,gBAACkC,EAAA,EAAM,CACLC,YAAapC,EAAMoC,YACnBC,SAAUC,EAAA,cAAuBV,EAAMI,GACvCO,UAAWvC,EAAMwB,gBAAkB,WAAYG,EAAoB,QAAZ,EAAAA,EAAMa,cAAM,eAAEC,IAAM,KAC3EC,kBAAmB,cAAef,KAGtC,wBAAM1B,UAAW,gBACd2B,EAAI,IAAGI,GAIhB,GAEF,CACEhB,OAAQ,SAAF,OAAKZ,EAAM,EAANA,OAAM,OAAO,gBAACD,EAAU,CAACC,OAAQA,EAAQE,UAAU,SAAU,EACxEY,SAAU,YACVD,MAAO,GACPE,SAAU,QACVwB,eAAe,EACflB,KAAM,SAAF,OAAKE,EAAK,EAALA,MAAK,OACZ,gBAAC5B,EAAW,CAACE,UAAU,mCACrB,2BAAM0B,GACM,GAGlB,CACEX,OAAQ,SAAF,OAAKZ,EAAM,EAANA,OAAM,OAAO,gBAACD,EAAU,CAACC,OAAQA,EAAQE,UAAU,cAAe,EAC7EY,SAAU,iBACVD,MAAO,GACPE,SAAU,QACVwB,eAAe,EACflB,KAAM,SAAF,OAAKE,EAAK,EAALA,MAAK,OACZ,gBAAC5B,EAAW,CAACE,UAAU,QACrB,gBAAC2C,EAAA,EAAmB,CAClBC,WAAYlB,EACZmB,OAAQF,EAAA,gBAEE,GAGlB,CACE5B,OAAQ,SAAF,OAAKZ,EAAM,EAANA,OAAM,OAAO,gBAACD,EAAU,CAACC,OAAQA,EAAQE,UAAU,WAAY,EAC1EY,SAAU,UACVD,MAAO,GACP8B,eAAe,EACftB,KAAM,SAAF,OAAYuB,EAAQ,EAAfC,IAAOD,SAAQ,OACtB,gBAACjD,EAAW,CAACE,UAAU,mCACrB,gBAACiD,EAAA,EAAiB,CAChB1C,WAAYwC,EACZvC,IAAKC,EACLT,UAAS,UAAK,UAAc,kBAElB,GAItB,GAAG,CAACD,EAAMwB,gBACZ,CCnJA,IAAM2B,EAAoB,CACxBC,MAAO,wBACPC,OAAQ,gBACRC,WAAY,MACZC,KAAM,aAYF,SAAUC,EAAgBxD,GAC9B,IDqIAQ,EACAiD,EACAC,ECvIMC,EAAUpD,EAAc,CAC5BC,WAAYR,EAAMQ,WAClB4B,YAAapC,EAAMoC,YACnBZ,eAAgBxB,EAAMwB,iBAGlBoC,GD+HNpD,EC/H6BR,EAAMQ,WDgInCiD,EChI+CzD,EAAMyD,MDiIrDC,ECjI4D1D,EAAM0D,aDmI3D,WAAc,WACnB,IAAME,EAA8B,GAYpC,OAVApD,EAAWG,SAAQ,SAAAC,GACjB,IAAMW,EAAOkC,aAAK,EAALA,EAAOI,MAAK,SAAAC,GAAC,OAAIA,EAAEC,KAAOnD,EAAEoD,MAAM,IAG3CzC,EACFqC,EAAKK,KAAK,OAAD,wBAAMrD,GAAC,CAAEW,KAAAA,KACXX,EAAEsD,WACTN,EAAKK,KAAK,OAAD,wBAAMrD,GAAC,CAAEW,MAAM,QAAeX,EAAEsD,UAAWR,KACxD,IACAS,QAAQC,IAAI,cAAeR,GACpBA,CACT,GAAG,CAAEH,aAAK,EAALA,EAAOY,OAAQX,KC/IpB,OAAKE,EAAKS,OAIR,gBAACC,EAAA,EAAK,CACJX,QAASA,EACTC,KAAMA,EACNT,MAAK,+BACAA,GAAK,CACRC,MAAOpD,EAAMuE,OAAS,GAAH,OAAMpB,EAAMC,MAAK,WAAYD,EAAMC,QAExDoB,YAAU,IAVL,gCAaX,C,kBC7CM,SAAUC,EAAmBC,GACjC,IAAMC,EAAiB,GAWvB,OATAC,OAAOD,KAAKD,GAAS/D,SAAQ,SAACkE,GAC5B,IAAMC,EAAMJ,EAAQG,GAEfC,GAGLH,EAAKV,KAAK,GAAD,OAAIY,EAAG,YAAIE,MAAMC,QAAQF,GAAOA,EAAI5C,KAAK,KAAO4C,GAC3D,IAEOH,EAAKzC,KAAK,IACnB,C,wJCfa+C,EAAoB,CAAEC,QAAS,MAAOC,OAAQ,Y,4uBC+C3D,SAASC,EAAqBC,G,YAI5B,MAAO,CAAEC,eAHwB,QAAX,EAAAD,EAAIE,eAAO,eAAEC,YAAa,EAGxBC,gBAFW,QAAX,EAAAJ,EAAIE,eAAO,eAAEC,YAAa,GAAgB,QAAX,EAAAH,EAAIE,eAAO,eAAEG,cAAyB,QAAX,EAAAL,EAAIE,eAAO,eAAEI,aAGjG,CCnDA,SAAgB,cAAgB,QAAQ,gBAAkB,QAAQ,eAAiB,S,sbCuDnF,SAASC,EAAoC5F,G,QAC3C,OAAKA,EAAMI,OAAOyF,QAIhB,wBACE5F,UAAS,UACJ,gBAAoB,mBACtBD,EAAMI,OAAOC,SAA8B,GAAnB,iBAAqB,mBACpB,QAA1B,EAAW,QAAX,EAAAL,EAAMmD,aAAK,eAAE2C,qBAAa,QAAI,KAGhC,gBAACC,EAAA,EAAY,CACXC,QAAUhG,EAAMI,OAAO6F,eAAiBjG,EAAMI,OAAOC,SACjD,gBACA,eAEJ6F,KAAMH,EAAAI,EAAA,SAfH,gCAmBX,CAuEA,SAASC,EAAgCpG,G,gBFlHPqG,EAC1BC,EEkHAC,EAAgC,CACpC5C,QAAS3D,EAAM2D,QACfC,KAAM5D,EAAM4D,KACZb,eAAgB/C,EAAMwE,WACtBgC,aAAcxG,EAAMyG,WACpBC,uBAAwB1G,EAAM0G,uBAC9BC,gBAAiB3G,EAAM2G,gBACvBC,aAAc,CACZC,OAAQ7G,EAAM8G,eAAiB,KAI/B9G,EAAM+G,wBACRR,EAAaK,aAAe,CAAEI,gBFhIAX,EEgIkCrG,EAAM+G,sBF/HlET,EAAkC,CAAC,EAEzCD,EAAI1F,SAAQ,SAAAoD,GAAE,OAAIuC,EAAOvC,IAAM,CAAI,IAE5BuC,KE6HHtG,EAAMiH,WACRV,EAAaU,SAAWjH,EAAMiH,UAEhC,I,EAAA,EAUI,EAAAC,SAAA,WAAQ,GAAIX,GAAY,Q,EFrKxB,SAA2CvG,GAC/C,IAAImH,EAA2B,CAC7B,EAAAC,UACA,EAAAC,aACiB,SAAjBrH,EAAM8C,OAAoB,EAAAwE,cAAgB,EAAAC,gBAe5C,OAZIvH,EAAMwH,iBACRL,EAAU,GAAH,SACFA,GAAO,CACV,EAAAM,cAGAzH,EAAM0H,uBACRP,EAAU,GAAH,SACFA,GAAO,CACV,EAAAQ,mBAGGR,CACT,CEiJmCS,CAAU,iBAAS5H,I,smBATlD6H,EAAa,EAAbA,cACAC,EAAiB,EAAjBA,kBACAC,EAAY,EAAZA,aACAC,EAAI,EAAJA,KACAC,EAAU,EAAVA,WACAC,EAAqB,EAArBA,sBACAC,EAAe,EAAfA,gBACAC,EAAgB,EAAhBA,iBACSvB,EAAM,EAAfwB,MAASxB,OAoBX,SAASyB,IACP,OAAON,EAAKO,KAAI,SAAAtF,GACdgF,EAAWhF,GAEX,IAAMhD,EArBV,SAA2BgD,G,cACrBhD,EAAYuI,EAAA,aAAqC,QAAX,EAAAxI,EAAMmD,aAAK,eAAEF,KACnDjD,EAAMmD,MAAMF,IAAIA,GACA,QAAhB,EAAW,QAAX,EAAAjD,EAAMmD,aAAK,eAAEF,WAAG,QAAI,GAWxB,OATIA,EAAIwF,aAAyB,QAAX,EAAAzI,EAAMmD,aAAK,eAAEuF,eACjCzI,GAAa,IAAJ,OAAmB,QAAX,EAAAD,EAAMmD,aAAK,eAAEuF,cAE5B1I,EAAM2I,cACR1I,GAAa,mBAEXD,EAAM4I,qBACR3I,GAAa,gBAERA,CACT,CAMsB4I,CAAkB5F,GAC9B6F,IAAe9I,EAAM+I,eAAiB/I,EAAM+I,cAAc9F,GAEhE,SAAS+F,IACFhJ,EAAM2I,cAGN3I,EAAMiJ,yBACTf,GAAsB,GAExBlI,EAAM2I,YAAY1F,GAClBA,EAAIiG,mBAAkB,GACxB,CAeA,SAASC,EAAUnJ,EAAkEqF,GACnF,IAAM+D,EAdR,SAA0BpJ,EAAkEqF,GAC1F,MAAI,mBAAoBrF,GAAS,kBAAmBA,EAC3C,OAAP,sCACKA,EAAMqJ,gBACNrJ,EAAMsJ,eAAa,CACtB,uBAAwB,eACxBjE,IAAAA,IAIG,CAAC,CACV,CAGwBkE,CAAiBvJ,EAAOqF,GAE9C,OAAIyD,EAEA,uBACEU,KAAK,MACL3E,IAAK5B,EAAIc,IAET,gBAAC0F,EAAA,EAAO,iBACFzJ,EACAoJ,EAAa,CACjBnJ,UAAWA,EACXyJ,QAASZ,IAERa,EAAY1G,KAOnB,uCACMjD,EACAoJ,EAAa,CACjBvE,IAAK5B,EAAIc,GACTyF,KAAK,MACLvJ,UAAWA,EACX2J,QAASZ,IAERW,EAAY1G,GAGnB,CAEA,IAAM4G,EAAW5G,EAAI6G,cAErB,OAAI9J,EAAM4I,mBAEN,gBAACmB,EAAA,EAAmB,CAClBhG,GAAId,EAAID,SAASe,GACjBc,IAAK5B,EAAIc,GACTiG,WAAYH,EACZI,eAAgB,cACd,SAACjK,EAAyBqF,GAAoC,OAAM8D,EAAUnJ,EAAOqF,EAAI,MAM1F8D,EAAUU,EACnB,GACF,CAyCA,SAASF,EAAY1G,GACnB,OAAOA,EAAIiH,MAAM3B,KAAI,SAAAhF,GACnB,IAAM4G,EAjBV,SAA0BlH,EAAaM,G,QACjC4G,EAAgB,GAWpB,MATiC,mBAAX,QAAX,EAAAnK,EAAMmD,aAAK,eAAEI,QACtB4G,EAAgBnK,EAAMmD,MAAMI,KAAKN,EAAKM,IAEP,iBAAX,QAAX,EAAAvD,EAAMmD,aAAK,eAAEI,QACtB4G,EAAgBnK,EAAMmD,MAAMI,MAE1BvD,EAAMoK,eACRD,GAAiB,mBAEZA,CACT,CAI0BE,CAAiBpH,EAAKM,GAM5C,OACE,qCAAKsB,IAAKtB,EAAKnD,OAAO2D,IAAQR,EAAK+G,eAAc,CAAErK,UAAWkK,EAAeP,QAL/E,WACE5J,EAAMoK,cAAgBpK,EAAMoK,aAAa7G,EAC3C,IAIKA,EAAKgH,OAAO,QAGnB,GACF,CAuBA,OArBA,aAAgB,WACTvK,EAAMwK,QAGXxK,EAAMwK,OAAO3D,EACf,GAAG,CAACA,IAEJ,aAAgB,WACT7G,EAAMyK,cAGXtC,EAAgBnI,EAAMyK,aACxB,GAAG,CAACzK,EAAMyK,eAEV,aAAgB,WACTzK,EAAM0K,eAGXtC,EAAiBpI,EAAM0K,cACzB,GAAG,CAAC1K,EAAM0K,eAAiB1K,EAAM0K,cAAcrG,SAG7C,uCAASwD,IAAe,CAAE5H,UAA6B,QAAlB,EAAW,QAAX,EAAAD,EAAMmD,aAAK,eAAEC,aAAK,QAAI,KACzD,uBAAKnD,UAA8B,QAAnB,EAAW,QAAX,EAAAD,EAAMmD,aAAK,eAAEE,cAAM,QAAI,IACpC0E,EAAaQ,KAAI,SAAAoC,G,QAAe,OAC/B,uCAASA,EAAYC,sBAAqB,CAAE3K,UAAiC,QAAtB,EAAW,QAAX,EAAAD,EAAMmD,aAAK,eAAE0H,iBAAS,QAAI,KAC9EF,EAAYG,QAAQvC,KAAI,SAAAnI,G,QAAU,OACjC,uCAASA,EAAO2K,eAAe3K,EAAO4K,wBAAuB,CAAE/K,UAAkC,QAAvB,EAAW,QAAX,EAAAD,EAAMmD,aAAK,eAAEG,kBAAU,QAAI,KAClGlD,EAAOmK,OAAO,SAAU,CAAEU,oBAAqB,WAAF,OAAQ,gBAACrF,EAAa,CAACxF,OAAQA,EAAQ+C,MAAOnD,EAAMmD,OAAS,KACxG/C,EAAqB8K,mBACtB,gBAACtF,EAAa,CAACxF,OAAQA,EAAQ+C,MAAOnD,EAAMmD,Q,SAOxD,uCAAS2E,IAAmB,CAAE7H,UAA4B,QAAjB,EAAW,QAAX,EAAAD,EAAMmD,aAAK,eAAEgI,YAAI,QAAI,KAC1DnL,EAAM4I,mBACN,gBAACwC,EAAA,EAAwB,CACvB/E,IAAK2B,EAAKO,KAAI,SAAAtF,GAAG,OAAIA,EAAID,SAASe,EAAE,IACpCsH,eAvFV,SAAwBtH,GACtB,IAV+BZ,EAC3BlD,EASEqL,EAAWtD,EAAKuD,WAAU,SAAAC,GAAI,OAAIA,EAAKxI,SAASe,KAAOA,CAAE,IACzDd,EAAM+E,EAAKsD,GAEjB,OACE,uCACMtL,EAAK,CACTC,WAhB2BkD,EAgBQnD,EAAMmD,MAfzClD,EAAY,OAEZkD,IACFlD,GAAakD,EAAMF,KAEdhD,GAWHwL,MAAOxG,IAEN0E,EAAY1G,GAGnB,EA2EUyI,UAAW1L,EAAM2L,kBAEhBrD,KAGHA,KAKV,CAgBM,SAAUhE,EAA4BtE,GAC1C,IAAQ4L,EAA6D5L,EAA7D4L,aAAcC,EAA+C7L,EAA/C6L,gBAAiBC,EAA8B9L,EAA9B8L,WAAeC,EAAU,EAAK/L,EAA/D,iDAEN,EF3VI,WACJ,I,IAAMgM,EAAQ,SAA6B,MAC0D,G,EAA7D,WAAiC5G,EAAqB4G,I,EAAO,E,unBAA7FC,EAAW,KAAEC,EAAc,KAU7BC,EAAoB3D,EAAA,YAR1B,WACE0D,EAAe9G,EAAqB4G,GACtC,GAM4D,KAEtD3G,EAAM,eAAkB,SAAC+G,G,MACzBJ,EAAMzG,UACK,QAAb,EAAAyG,EAAMzG,eAAO,SAAE8G,oBAAoB,SAAUF,IAG3CC,IACFF,EAAe9G,EAAqB4G,IACpCI,EAAGE,iBAAiB,SAAUH,IAGhCH,EAAMzG,QAAU6G,CAClB,GAAG,IAQH,OANA,aAAgB,YACVJ,aAAK,EAALA,EAAOzG,UACT2G,EAAe9G,EAAqB4G,GAExC,GAAG,CAACA,IAEG,CAAE3G,IAAAA,EAAK4G,YAAAA,EAAaM,OAzB3B,SAAgBC,G,MACD,QAAb,EAAAR,EAAMzG,eAAO,SAAEiH,SAAS,CAAEC,KAAMD,EAAUE,IAAK,EAAGC,SAAU,UAC9D,EAwBF,CEyTuCC,GAA7BvH,EAAG,EAAHA,IAAK4G,EAAW,EAAXA,YAAaM,EAAM,EAANA,OAE1B,GAAIT,EACF,OACE,gBAAC,KAAU,CACTe,sBAAuB,WAAF,OAAQ,uBAAK5M,UAAW,kBAAyB,EACtE6M,cAAe,IACfC,YAAU,GAEV,gBAAC3G,EAAS,iBAAK2F,KAKrB,IAAKH,EACH,OAAO,gBAACxF,EAAS,iBAAK2F,IAExB,SAASiB,EAAcC,GACrBV,EAAOV,GAAiC,UAAdoB,EAAwB,GAAK,GACzD,CAEA,OACE,uBAAKhN,UAAU,6CACb,uBAAKA,UAAU,QACb,uBAAKA,UAAU,qBACb,gBAACiN,EAAAC,EAAY,CACXF,UAAWC,EAAA,OACXtD,QAAS,WAAF,OAAQoD,EAAc,OAAO,EACpCI,MAAOnB,EAAY3G,gBAErB,uBAAKrF,UAAS,UAAK,kBAAsB,YAAID,EAAMqN,0BAA4BhI,IAAKA,GAClF,gBAACe,EAAS,iBAAK2F,KAEjB,gBAACmB,EAAAC,EAAY,CACXF,UAAWC,EAAA,QACXtD,QAAS,WAAF,OAAQoD,EAAc,QAAQ,EACrCI,MAAOnB,EAAYxG,mBAM/B,CAnDAnB,EAAMgJ,aAAe,CACnBzB,gBAAiB,IACjBC,YAAY,EACZhJ,OAAQ,O","sources":["file:///app/packages/libs/shared/src/apps/analytics/components/engagement-table/engagement-table.scss","file:///app/packages/libs/shared/src/apps/analytics/components/engagement-table/EngagementTableUtils.tsx","file:///app/packages/libs/shared/src/apps/analytics/components/engagement-table/EngagementTable.tsx","file:///app/packages/libs/shared/src/apps/analytics/utils/FilterParamUtils.ts","file:///app/packages/libs/shared/src/constants/DragOverlayStyles.ts","file:///app/packages/libs/shared/src/components/table/TableUtils.ts","file:///app/packages/libs/shared/src/components/table/table.scss","file:///app/packages/libs/shared/src/components/table/Table.tsx"],"sourcesContent":["// extracted by mini-css-extract-plugin\nexport default {\"heatMap\":\"rwDjh\",\"avatarContainer\":\"kW4ZM\"};","import React from 'react';\nimport { Column, ColumnInstance, Row } from 'react-table';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EngagementHeatMap } from 'libs/shared/apps/analytics/components/engagement-heat-map/EngagementHeatMap';\nimport { AnonSessions } from 'libs/shared/apps/analytics/hooks/UseAnonSessions';\nimport { UserOrAnonSession } from 'libs/shared/apps/analytics/interfaces/UserOrAnonSession';\nimport { anonymiseUserName, getAnonSession } from 'libs/shared/apps/analytics/utils/AnonymiseUserUtils';\nimport { Avatar } from 'libs/shared/components/avatar/Avatar';\nimport { PercentageIndicator, PercentageIndicatorLayout } from 'libs/shared/components/percentage-indicator/PercentageIndicator';\nimport { Engagement, User } from 'libs/shared/interfaces';\nimport { UserHelper } from 'libs/shared/utils/UserHelper';\n\nimport styles from './engagement-table.scss';\n\nconst namespace = 'shared.engagementTable';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface CellWrapperProps {\n className?: string;\n}\n\nfunction CellWrapper(props: React.PropsWithChildren<CellWrapperProps>): JSX.Element {\n return (\n <div className={`${props.className ?? ''}`}>\n {props.children}\n </div>\n );\n}\n\ninterface HeaderCellProps {\n column: ColumnInstance<EngagementTableData>;\n phraseKey: string;\n}\n\nfunction HeaderCell(props: HeaderCellProps): JSX.Element {\n return (\n <CellWrapper className={`d-inline-block ${props.column.isSorted ? 'fw-bold' : ''}`}>\n {getPhrase(props.phraseKey)}\n </CellWrapper>\n );\n}\n\nexport interface EngagementTableData extends Engagement {\n user: UserOrAnonSession;\n}\n\nfunction getMaxHeatMapValue(engagement: Engagement[]): number {\n let max = 0;\n\n engagement.forEach(e => {\n const localMax = Math.max(...e.heatMap);\n\n if (localMax > max)\n max = localMax;\n });\n\n return max;\n}\n\nfunction getUsersName(user: UserOrAnonSession, anonymiseUsers: boolean) {\n const fullName = anonymiseUserName(user, anonymiseUsers);\n const nameParts = fullName.split(' ').filter(n => !!n);\n\n return {\n name: nameParts[0],\n surname: nameParts.slice(1).join(' ')\n };\n}\n\ninterface EngagementColumnProps {\n engagement: Engagement[],\n imageCdnUrl: string;\n anonymiseUsers: boolean;\n}\n\nexport function useGetColumns(props: EngagementColumnProps): Column<EngagementTableData>[] {\n return React.useMemo(() => {\n const maxHeatMapValue = getMaxHeatMapValue(props.engagement);\n\n return [\n {\n Header: ({ column }) => <HeaderCell column={column} phraseKey='name' />,\n width: 22,\n accessor: 'user',\n sortType: (rowA: Row<EngagementTableData>, rowB: Row<EngagementTableData>) => {\n const nameA = anonymiseUserName(rowA.values.user, props.anonymiseUsers);\n const nameB = anonymiseUserName(rowB.values.user, props.anonymiseUsers);\n\n return nameA > nameB ? 1 : -1;\n },\n Cell: ({ value }) => {\n const { name, surname } = getUsersName(value, props.anonymiseUsers);\n return (\n <CellWrapper className='d-flex align-items-center h-100'>\n <span className={styles.avatarContainer}>\n <Avatar\n imageCdnUrl={props.imageCdnUrl}\n initials={UserHelper.getInitials(name, surname)}\n imageUrl={!props.anonymiseUsers && 'avatar' in value ? value.avatar?.url : null}\n showAnonymousUser={'sessionId' in value}\n />\n </span>\n <span className={'ms-2 clamp-1'}>\n {name} {surname}\n </span>\n </CellWrapper>\n );\n }\n },\n {\n Header: ({ column }) => <HeaderCell column={column} phraseKey='views' />,\n accessor: 'viewCount',\n width: 15,\n sortType: 'basic', // Default is 'alphanumeric' which would treat the numbers as strings\n sortDescFirst: true,\n Cell: ({ value }) => (\n <CellWrapper className='d-flex align-items-center h-100'>\n <div>{value}</div>\n </CellWrapper>\n )\n },\n {\n Header: ({ column }) => <HeaderCell column={column} phraseKey='engagement' />,\n accessor: 'engagementRate',\n width: 20,\n sortType: 'basic', // Default is 'alphanumeric' which would treat the numbers as strings\n sortDescFirst: true,\n Cell: ({ value }) => (\n <CellWrapper className='w-33'>\n <PercentageIndicator\n percentage={value}\n layout={PercentageIndicatorLayout.LabelBefore}\n />\n </CellWrapper>\n )\n },\n {\n Header: ({ column }) => <HeaderCell column={column} phraseKey='heatMap' />,\n accessor: 'heatMap',\n width: 48,\n disableSortBy: true,\n Cell: ({ row: { original } }) => (\n <CellWrapper className='d-flex align-items-center h-100'>\n <EngagementHeatMap\n engagement={original}\n max={maxHeatMapValue}\n className={`${styles.heatMap} flex-grow-1`}\n />\n </CellWrapper>\n )\n }\n ];\n }, [props.anonymiseUsers]);\n}\n\nexport function useGetTableData(\n engagement: Engagement[],\n users: User[],\n anonSessions: AnonSessions\n): EngagementTableData[] {\n return React.useMemo(() => {\n const data: EngagementTableData[] = [];\n\n engagement.forEach(e => {\n const user = users?.find(u => u.id === e.userId);\n\n // Omit deleted users\n if (user)\n data.push({ ...e, user });\n else if (e.sessionId)\n data.push({ ...e, user: getAnonSession(e.sessionId, anonSessions) });\n });\n console.log('TABLE DATA:', data);\n return data;\n }, [ users?.length, anonSessions ]);\n}","import React from 'react';\n\nimport { AnonSessions } from 'libs/shared/apps/analytics/hooks/UseAnonSessions';\nimport { Table, TableTheme } from 'libs/shared/components/table/Table';\nimport { Engagement, User } from 'libs/shared/interfaces';\n\nimport { useGetColumns, useGetTableData } from './EngagementTableUtils';\n\nconst theme: TableTheme = {\n table: 'bg-white rounded px-0',\n header: 'border-bottom',\n headerCell: 'm-3',\n cell: 'mx-3 my-2'\n};\n\ninterface EngagementTableProps {\n engagement: Engagement[];\n imageCdnUrl: string;\n users?: User[];\n anonymiseUsers: boolean;\n border?: boolean;\n anonSessions?: AnonSessions;\n}\n\nexport function EngagementTable(props: EngagementTableProps): JSX.Element {\n const columns = useGetColumns({\n engagement: props.engagement,\n imageCdnUrl: props.imageCdnUrl,\n anonymiseUsers: props.anonymiseUsers\n });\n\n const data = useGetTableData(props.engagement, props.users, props.anonSessions);\n\n if (!data.length)\n return <></>;\n\n return (\n <Table\n columns={columns}\n data={data}\n theme={{\n ...theme,\n table: props.border ? `${theme.table} border` : theme.table\n }}\n enableSort\n />\n );\n}","import { FilterQueryParams } from 'libs/shared/apps/analytics/interfaces/FilterQueryParams';\n\nexport function getFilterParamsKey(filters: FilterQueryParams): string {\n const keys: string[] = [];\n\n Object.keys(filters).forEach((key: keyof FilterQueryParams) => {\n const val = filters[key];\n\n if (!val)\n return;\n\n keys.push(`${key}:${Array.isArray(val) ? val.join(',') : val}`);\n });\n\n return keys.join(':');\n}","export const DragOverlayStyles = { opacity: '0.8', cursor: 'grabbing' };","import React from 'react';\nimport { PluginHook, useBlockLayout, useFilters, useFlexLayout, useGlobalFilter, useRowSelect, useSortBy } from 'react-table';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { HashObject } from 'libs/common/react/interfaces';\n\ninterface PluginOptions {\n allowFiltering?: boolean;\n allowGlobalFiltering?: boolean;\n layout?: 'flex' | 'block';\n}\n\nexport function getPlugins<T extends HashObject>(props: PluginOptions): PluginHook<T>[] {\n let plugins: PluginHook<T>[] = [\n useSortBy,\n useRowSelect,\n props.layout === 'flex' ? useFlexLayout : useBlockLayout\n ];\n\n if (props.allowFiltering)\n plugins = [\n ...plugins,\n useFilters\n ];\n\n if (props.allowGlobalFiltering)\n plugins = [\n ...plugins,\n useGlobalFilter\n ];\n\n return plugins;\n}\n\nexport function getSelectedRowIds(ids: string[]): Record<string, boolean> {\n const idHash: Record<string, boolean> = {};\n\n ids.forEach(id => idHash[id] = true);\n\n return idHash;\n}\n\ninterface TableScrollState {\n canScrollLeft: boolean;\n canScrollRight: boolean;\n}\n\nfunction calculateScrollState(ref: React.MutableRefObject<HTMLDivElement>): TableScrollState {\n const canScrollLeft = ref.current?.scrollLeft > 0;\n const canScrollRight = (ref.current?.scrollLeft + 1) < ref.current?.scrollWidth - ref.current?.clientWidth;\n\n return { canScrollLeft, canScrollRight };\n}\n\ninterface UseTableScroll {\n ref: (el: HTMLDivElement) => void;\n scrollState: TableScrollState;\n scroll: (scrollBy: number) => void;\n}\n\nexport function useTableScroll(): UseTableScroll {\n const elRef = React.useRef<HTMLDivElement>(null);\n const [ scrollState, setScrollState ] = React.useState<TableScrollState>(calculateScrollState(elRef));\n\n function onScroll(): void {\n setScrollState(calculateScrollState(elRef));\n }\n\n function scroll(scrollBy: number): void {\n elRef.current?.scrollBy({ left: scrollBy, top: 0, behavior: 'smooth' });\n }\n\n const throttledOnScroll = FunctionHelper.throttle(onScroll, 200);\n\n const ref = React.useCallback((el: HTMLDivElement) => {\n if (elRef.current) {\n elRef.current?.removeEventListener('scroll', throttledOnScroll);\n }\n\n if (el) {\n setScrollState(calculateScrollState(elRef));\n el.addEventListener('scroll', throttledOnScroll);\n }\n\n elRef.current = el;\n }, []);\n\n React.useEffect(() => {\n if (elRef?.current) {\n setScrollState(calculateScrollState(elRef));\n }\n }, [elRef]);\n\n return { ref, scrollState, scroll };\n}","// extracted by mini-css-extract-plugin\nexport default {\"sortIndicator\":\"gFhu0\",\"scrollContainer\":\"sWUp9\",\"scrollbarTrack\":\"Vn2qM\"};","import React from 'react';\nimport { Scrollbars } from 'react-custom-scrollbars-2';\nimport {\n Cell,\n Column as BaseColumn,\n HeaderGroup,\n HeaderProps as BaseHeaderProps,\n IdType,\n Row,\n SortingRule,\n TableOptions,\n TableRowProps,\n useTable } from 'react-table';\nimport { DragEndEvent } from '@dnd-kit/core';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { Core } from 'libs/common/core';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { SortableContainerWrapper } from 'libs/shared/components/sortable/SortableContainerWrapper';\nimport { PropsWithSortableItemProps, SortableItemWrapper } from 'libs/shared/components/sortable/SortableItemWrapper';\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { WidgetButton, WidgetButtonDirection } from 'libs/shared/components/widgets/widget-button/WidgetButton';\nimport { DragOverlayStyles } from 'libs/shared/constants/DragOverlayStyles';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { getPlugins, getSelectedRowIds, useTableScroll } from './TableUtils';\n\nimport styles from './table.scss';\n\nexport interface TableTheme {\n table?: string;\n header?: string;\n headerRow?: string;\n headerCell?: string;\n body?: string;\n row?: string | ((row: Row<any>) => string);\n selectedRow?: string;\n cell?: string | ((row?: Row<any>, cell?: Cell<any, any>) => string);\n sortIndicator?: string;\n}\n\nexport type HeaderProps<T extends HashObject> = BaseHeaderProps<T> & {\n renderSortIndicator: () => void;\n}\n\nexport type Column<T extends HashObject> = BaseColumn<T> & {\n hideSortIndicator?: boolean;\n}\n\ninterface SortIndicatorProps<T extends HashObject> {\n column: HeaderGroup<T>;\n theme?: TableTheme;\n}\n\nfunction SortIndicator<T extends HashObject>(props: SortIndicatorProps<T>): JSX.Element {\n if (!props.column.canSort)\n return <></>;\n\n return (\n <span\n className={\n `${styles.sortIndicator}\n ${!props.column.isSorted ? 'text-secondary' : ''}\n ${props.theme?.sortIndicator ?? ''}`\n }\n >\n <SvgContainer\n svgName={(props.column.isSortedDesc || !props.column.isSorted)\n ? cvSvgLibrary.ArrowRight\n : cvSvgLibrary.ArrowLeft\n }\n size={SvgContainerSize.Small}\n />\n </span>\n );\n}\n\ninterface BaseTableProps<T extends HashObject> {\n /**\n * Must be memoized.\n */\n data: T[];\n\n /**\n * Must be memoized.\n * \n * For documentation on Column Options, see https://react-table.tanstack.com/docs/api/useTable#column-options\n */\n columns: Column<T>[];\n\n theme?: TableTheme;\n\n onSelectRow?: (row: Row<T>) => void;\n\n onSelectCell?: (cell: Cell<T>) => void;\n\n onRowMouseOver?: (row: Row<T>) => void;\n\n onRowMouseLeave?: (row: Row<T>) => void;\n\n allowSelectMultipleRows?: boolean;\n\n initialSelectedRowIds?: string[];\n\n getRowId?: (row: T) => string;\n\n getRowAppLink?: (row: Row<T>) => Core.AppLink;\n\n enableSort?: boolean;\n\n manualSort?: boolean;\n\n onSort?: (sortingRule: SortingRule<T>[]) => void;\n \n // Opt-in to utilise react-table's useFilter hook.\n allowFiltering?: boolean;\n\n // Opt-in to utilise react-table's useGlobalFilter hook.\n allowGlobalFiltering?: boolean;\n\n // Use either a flex layout or a block layout. Default is flex.\n layout?: 'flex' | 'block';\n\n // Used by useGlobalFilter hook, needs to be enabled by prop above.\n globalFilter?: string;\n\n // Set initial state of hidden columns in react-table.\n hiddenColumns?: IdType<T>[];\n\n // Determine whether hidden columns should be preserved on a table update event.\n autoResetHiddenColumns?: boolean;\n\n // Determine whether sort order state should be preserved on a table update event.\n autoResetSortBy?: boolean;\n\n // Determine whether rows are sortable by drag and drop\n enableSortableRows?: boolean;\n\n onSortingRowsEnd?: (event: DragEndEvent) => void;\n\n // Set initial state of sorting in react-table\n initialSortBy?: SortingRule<T>[];\n}\n \ntype SortableRowProps = PropsWithSortableItemProps<TableRowProps>;\n\nfunction BaseTable<T extends HashObject>(props: BaseTableProps<T>): JSX.Element {\n const tableOptions: TableOptions<T> = {\n columns: props.columns,\n data: props.data,\n disableSortBy: !props.enableSort,\n manualSortBy: props.manualSort,\n autoResetHiddenColumns: props.autoResetHiddenColumns,\n autoResetSortBy: props.autoResetSortBy,\n initialState: {\n sortBy: props.initialSortBy || []\n }\n };\n\n if (props.initialSelectedRowIds)\n tableOptions.initialState = { selectedRowIds: getSelectedRowIds(props.initialSelectedRowIds) };\n\n if (props.getRowId)\n tableOptions.getRowId = props.getRowId;\n\n const {\n getTableProps,\n getTableBodyProps,\n headerGroups,\n rows,\n prepareRow,\n toggleAllRowsSelected,\n setGlobalFilter,\n setHiddenColumns,\n state: { sortBy }\n } = useTable<T>(tableOptions, ...getPlugins<T>({ ...props }));\n\n function getTableRowsClass(row: Row<T>) {\n let className = FunctionHelper.isFunction(props.theme?.row)\n ? props.theme.row(row)\n : props.theme?.row ?? '';\n\n if (row.isSelected && props.theme?.selectedRow)\n className += ` ${props.theme?.selectedRow}`;\n\n if (props.onSelectRow)\n className += ' cursor-pointer';\n\n if (props.enableSortableRows)\n className += ' cursor-grab';\n\n return className;\n }\n\n function renderTableRows(): JSX.Element[] {\n return rows.map(row => {\n prepareRow(row);\n \n const className = getTableRowsClass(row);\n const rowAppLink = !!props.getRowAppLink && props.getRowAppLink(row);\n\n function onClickRow(): void {\n if (!props.onSelectRow)\n return;\n\n if (!props.allowSelectMultipleRows)\n toggleAllRowsSelected(false);\n \n props.onSelectRow(row);\n row.toggleRowSelected(true);\n }\n\n function getSortableProps(props: TableRowProps | PropsWithSortableItemProps<TableRowProps>, ref?: any) {\n if ('dragAttributes' in props && 'dragListeners' in props) {\n return {\n ...props.dragAttributes,\n ...props.dragListeners,\n 'aria-roledescription': 'Sortable row',\n ref\n };\n }\n\n return {};\n }\n\n function renderRow(props: TableRowProps | PropsWithSortableItemProps<TableRowProps>, ref?: any): JSX.Element {\n const sortableProps = getSortableProps(props, ref);\n\n if (rowAppLink) {\n return (\n <div\n role='row'\n key={row.id}\n >\n <AppLink\n {...props}\n {...sortableProps}\n className={className}\n appLink={rowAppLink}\n >\n {renderCells(row)}\n </AppLink>\n </div>\n );\n }\n\n return (\n <div\n {...props}\n {...sortableProps}\n key={row.id}\n role='row'\n className={className}\n onClick={onClickRow}\n >\n {renderCells(row)}\n </div>\n );\n }\n\n const rowProps = row.getRowProps();\n\n if (props.enableSortableRows) {\n return (\n <SortableItemWrapper\n id={row.original.id}\n key={row.id}\n childProps={rowProps}\n childComponent={React.forwardRef(\n (props: SortableRowProps, ref: React.LegacyRef<HTMLDivElement>) => (renderRow(props, ref))\n )}\n />\n );\n }\n\n return renderRow(rowProps);\n });\n }\n\n function getDragOverlayClassName(theme: TableTheme): string {\n let className = 'g-0 ';\n\n if (theme)\n className += theme.row;\n\n return className;\n }\n\n function getDragOverlay(id: string) {\n const rowIndex = rows.findIndex(item => item.original.id === id);\n const row = rows[rowIndex];\n \n return (\n <div\n {...props}\n className={getDragOverlayClassName(props.theme)}\n style={DragOverlayStyles}\n >\n {renderCells(row)}\n </div>\n );\n }\n\n function getCellClassName(row: Row<T>, cell: Cell<T>): string {\n let cellClassName = '';\n\n if (typeof props.theme?.cell === 'function')\n cellClassName = props.theme.cell(row, cell);\n\n if (typeof props.theme?.cell === 'string')\n cellClassName = props.theme.cell;\n\n if (props.onSelectCell)\n cellClassName += ' cursor-pointer';\n\n return cellClassName;\n }\n\n function renderCells(row: Row<T>): JSX.Element[] {\n return row.cells.map(cell => {\n const cellClassName = getCellClassName(row, cell);\n\n function onClickCell(): void {\n props.onSelectCell && props.onSelectCell(cell);\n }\n\n return (\n <div key={cell.column.id} {...cell.getCellProps()} className={cellClassName} onClick={onClickCell} >\n {cell.render('Cell')}\n </div>\n );\n });\n }\n\n React.useEffect(() => {\n if (!props.onSort)\n return;\n\n props.onSort(sortBy);\n }, [sortBy]);\n\n React.useEffect(() => {\n if (!props.globalFilter)\n return;\n\n setGlobalFilter(props.globalFilter);\n }, [props.globalFilter]);\n\n React.useEffect(() => {\n if (!props.hiddenColumns)\n return;\n\n setHiddenColumns(props.hiddenColumns);\n }, [props.hiddenColumns && props.hiddenColumns.length]);\n\n return (\n <div {...getTableProps()} className={props.theme?.table ?? ''}>\n <div className={props.theme?.header ?? ''}>\n {headerGroups.map(headerGroup => (\n <div {...headerGroup.getHeaderGroupProps()} className={props.theme?.headerRow ?? ''}>\n {headerGroup.headers.map(column => (\n <div {...column.getHeaderProps(column.getSortByToggleProps())} className={props.theme?.headerCell ?? ''}>\n {column.render('Header', { renderSortIndicator: () => <SortIndicator column={column} theme={props.theme} /> })}\n {!(column as Column<T>).hideSortIndicator &&\n <SortIndicator column={column} theme={props.theme} />\n }\n </div>\n ))}\n </div>\n ))}\n </div>\n <div {...getTableBodyProps()} className={props.theme?.body ?? ''}>\n { props.enableSortableRows ? (\n <SortableContainerWrapper\n ids={rows.map(row => row.original.id)}\n getDragOverlay={getDragOverlay}\n onSortEnd={props.onSortingRowsEnd}\n >\n {renderTableRows()}\n </SortableContainerWrapper>\n ) : (\n renderTableRows()\n )}\n </div>\n </div>\n );\n}\n\ninterface TableProps<T extends HashObject> extends BaseTableProps<T> {\n enableSlider?: boolean;\n scrollIncrement?: number;\n scrollContainerClassName?: string;\n scrollable?: boolean;\n initialSortBy?: SortingRule<T>[];\n}\n\nTable.defaultProps = {\n scrollIncrement: 250,\n scrollable: false,\n layout: 'flex'\n};\n\nexport function Table<T extends HashObject>(props: TableProps<T>): JSX.Element {\n const { enableSlider, scrollIncrement, scrollable, ...tableProps } = props;\n\n const { ref, scrollState, scroll } = useTableScroll();\n\n if (scrollable) {\n return (\n <Scrollbars\n renderTrackHorizontal={() => <div className={styles.scrollbarTrack} />}\n autoHeightMax={10000}\n autoHeight\n >\n <BaseTable {...tableProps} />\n </Scrollbars>\n );\n }\n\n if (!enableSlider)\n return <BaseTable {...tableProps} />;\n\n function onClickScroll(direction: 'left' | 'right'): void {\n scroll(scrollIncrement * (direction === 'right' ? 1 : -1));\n }\n\n return (\n <div className='mx-n4 overflow-x-hidden overflow-y-hidden'>\n <div className='px-4'>\n <div className='position-relative'>\n <WidgetButton\n direction={WidgetButtonDirection.Left}\n onClick={() => onClickScroll('left')}\n hide={!scrollState.canScrollLeft}\n />\n <div className={`${styles.scrollContainer} ${props.scrollContainerClassName}`} ref={ref}>\n <BaseTable {...tableProps } />\n </div>\n <WidgetButton\n direction={WidgetButtonDirection.Right}\n onClick={() => onClickScroll('right')}\n hide={!scrollState.canScrollRight}\n />\n </div>\n </div>\n </div>\n );\n}"],"names":["getPhrase","LanguageService","CellWrapper","props","className","children","HeaderCell","column","isSorted","phraseKey","useGetColumns","engagement","max","maxHeatMapValue","forEach","e","localMax","Math","heatMap","Header","width","accessor","sortType","rowA","rowB","values","user","anonymiseUsers","Cell","nameParts","value","name","split","filter","n","surname","slice","join","Avatar","imageCdnUrl","initials","UserHelper","imageUrl","avatar","url","showAnonymousUser","sortDescFirst","PercentageIndicator","percentage","layout","disableSortBy","original","row","EngagementHeatMap","theme","table","header","headerCell","cell","EngagementTable","users","anonSessions","columns","data","find","u","id","userId","push","sessionId","console","log","length","Table","border","enableSort","getFilterParamsKey","filters","keys","Object","key","val","Array","isArray","DragOverlayStyles","opacity","cursor","calculateScrollState","ref","canScrollLeft","current","scrollLeft","canScrollRight","scrollWidth","clientWidth","SortIndicator","canSort","sortIndicator","SvgContainer","svgName","isSortedDesc","size","S","BaseTable","ids","idHash","tableOptions","manualSortBy","manualSort","autoResetHiddenColumns","autoResetSortBy","initialState","sortBy","initialSortBy","initialSelectedRowIds","selectedRowIds","getRowId","useTable","plugins","useSortBy","useRowSelect","useFlexLayout","useBlockLayout","allowFiltering","useFilters","allowGlobalFiltering","useGlobalFilter","getPlugins","getTableProps","getTableBodyProps","headerGroups","rows","prepareRow","toggleAllRowsSelected","setGlobalFilter","setHiddenColumns","state","renderTableRows","map","FunctionHelper","isSelected","selectedRow","onSelectRow","enableSortableRows","getTableRowsClass","rowAppLink","getRowAppLink","onClickRow","allowSelectMultipleRows","toggleRowSelected","renderRow","sortableProps","dragAttributes","dragListeners","getSortableProps","role","AppLink","appLink","renderCells","onClick","rowProps","getRowProps","SortableItemWrapper","childProps","childComponent","cells","cellClassName","onSelectCell","getCellClassName","getCellProps","render","onSort","globalFilter","hiddenColumns","headerGroup","getHeaderGroupProps","headerRow","headers","getHeaderProps","getSortByToggleProps","renderSortIndicator","hideSortIndicator","body","SortableContainerWrapper","getDragOverlay","rowIndex","findIndex","item","style","onSortEnd","onSortingRowsEnd","enableSlider","scrollIncrement","scrollable","tableProps","elRef","scrollState","setScrollState","throttledOnScroll","el","removeEventListener","addEventListener","scroll","scrollBy","left","top","behavior","useTableScroll","renderTrackHorizontal","autoHeightMax","autoHeight","onClickScroll","direction","WidgetButton","W","hide","scrollContainerClassName","defaultProps"],"sourceRoot":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[6046],{56046:(e,a,t)=>{t.r(a),t.d(a,{InsightsHeatmapView:()=>U});var i=t(32735),n=t(23481),r=t(2948),s=t(20354),d=t(5255),l=t(4606),o=t(26025),c=t(74901),u=t(40003),v=t(4594),g=t(60051),h=t(16714),m=t(39151),p=t(47812),f=t(31949),y=t(17913),b=t(91286),I=t(93322),w=t(22902),A=t(79612),k=t(37802),j=t(31908),E=t(86702),O=t(26203),S=t(35274),B=t(10447);function F(e,a){(null==a||a>e.length)&&(a=e.length);for(var t=0,i=Array(a);t<a;t++)i[t]=e[t];return i}var L=n.T.encloseNamespace("shared.insightsHeatmap");function U(e){var a,t,n,U,V,C,P,M,N=(P=(0,r.D)(E.y.ANONYMISE_USERS),M=1,function(e){if(Array.isArray(e))return e}(P)||function(e,a){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var i,n,r,s,d=[],l=!0,o=!1;try{if(r=(t=t.call(e)).next,0===a){if(Object(t)!==t)return;l=!1}else for(;!(l=(i=r.call(t)).done)&&(d.push(i.value),d.length!==a);l=!0);}catch(e){o=!0,n=e}finally{try{if(!l&&null!=t.return&&(s=t.return(),Object(s)!==s))return}finally{if(o)throw n}}return d}}(P,M)||function(e,a){if(e){if("string"==typeof e)return F(e,a);var t={}.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?F(e,a):void 0}}(P,M)||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];(0,I.F)();var R=(0,k.r)(null).hasShareFlowV2,_=(0,w.T)().hasPermissions,D=(0,k.r)(null).publicInteractiveAttempts,T=s.a.useBasicFetch(f.N.currentUser()),H=j.M.getVideoRequest(e.videoId,e.typeId),K=s.a.useBasicFetch(H),$=s.a.useBasicFetch(m.L.config()),x=(0,d.Y)(e.shareId);console.log(x);var W=o.B.getAudienceAppLinkParams(),Y=o.B.getDateRangeAppLinkParams(),q=Object.assign(Object.assign({},(0,u.wO)((0,u.Hb)(),Y)),(0,c.K)(W)),z=s.a.useBasicFetch(T.data&&y.u.aggregateEngagement(e.videoId,q,T.data.id,D)),G=s.a.useBasicFetch(T.data&&y.u.individualEngagement(e.videoId,q,null===(a=T.data)||void 0===a?void 0:a.id,D)),J=(null===(n=null===(t=G.data)||void 0===t?void 0:t.data)||void 0===n?void 0:n.map((function(e){return e.userId})).filter(Boolean))||[],Q=(0,l.U)(J),X=Q.users,Z=Q.isLoading,ee=s.a.useBasicFetch(T.data&&y.u.views(q,e.videoId,null===(U=T.data)||void 0===U?void 0:U.id,D)),ae=s.a.useBasicFetch(p.k.createViewKey(e.videoId,g.f.MasterObject));(0,A.M)({title:K.data?L("pageTitle",{video:null===(V=K.data)||void 0===V?void 0:V.name}):null}),(0,b.v)(K);var te=T.data&&ee.data&&K.data&&z.data&&ae.data,ie=!(!G.data||J.length&&Z),ne=Object.assign(Object.assign(Object.assign({},W),Y),{shareId:e.shareId});return i.createElement("div",{className:"px-3"},i.createElement(O.j,{video:K.data,dateRangeAppLinkParams:Y,tabs:e.typeId===v.E.Interactive?(0,B.kj)(e.videoId,"heatmap",ne):e.typeId===v.E.Clip?(0,B.$o)(e.videoId,"heatmap",ne):(0,B.$6)(e.videoId,"heatmap",ne),hasAnalytics:_(h.C.ViewCustomerAnalytics),analyticsWebUrl:null===(C=$.data)||void 0===C?void 0:C.analyticsWebUrl,hasShareFlowV2:R,shareId:e.shareId}),i.createElement(S.w,{aggregateEngagement:z.data,individualEngagement:G.data,videoViews:ee.data,config:$.data,users:X,viewKey:ae.data,hasDataLoaded:!!te,tableDataLoaded:ie,anonymiseUsers:N,audienceAppLinkParams:W,dateRangeAppLinkParams:Y,anonSessions:x}))}}}]);
|
|
2
|
+
//# sourceMappingURL=6046-104677f08c-lite.chunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scripts/6046-104677f08c-lite.chunk.js","mappings":"iiBAiCA,IACMA,EAAY,qBADA,0BASZ,SAAUC,EAAoBC,G,oBAC3BC,G,GAAkB,OAAsB,qB,EAA8B,E,o4BAAxD,IAErB,SAEA,IAAQC,GAAmB,OAAY,MAA/BA,eAEAC,GAAmB,SAAnBA,eAEAC,GAA8B,OAAY,MAA1CA,0BAEFC,EAAc,kBAAkC,mBAChDC,EAAe,oBAA4BN,EAAMO,QAASP,EAAMQ,QAChEC,EAAQ,kBAAiCH,GACzCI,EAAS,kBAA6B,cAEtCC,GAAe,OAAgBX,EAAMY,SAC3CC,QAAQC,IAAIH,GAEZ,IAAMI,EAAwB,+BACxBC,EAAyB,gCAEzBC,EAAa,gCACd,SAAkB,UAA+BD,KACjD,OAAkBD,IAGjBG,EAAsB,kBAC1Bb,EAAYc,MAAQ,wBAClBnB,EAAMO,QACNU,EACAZ,EAAYc,KAAKC,GACjBhB,IAIEiB,EAAuB,kBAAmDhB,EAAYc,MAC1F,yBACEnB,EAAMO,QACNU,EACgB,QAAhB,EAAAZ,EAAYc,YAAI,eAAEC,GAClBhB,IAGEkB,GAAyC,QAA/B,EAAyB,QAAzB,EAAAD,EAAqBF,YAAI,eAAEA,YAAI,eAAEI,KAAI,SAAAC,GAAC,OAAIA,EAAEC,MAAM,IAAEC,OAAOC,WAAY,GACvF,GAA6B,OAAwBL,GAA7CM,EAAK,EAALA,MAAOC,EAAS,EAATA,UAETC,GAAa,kBAA6CzB,EAAYc,MAC1E,UAAwBF,EAAejB,EAAMO,QAAyB,QAAhB,EAAAF,EAAYc,YAAI,eAAEC,GAAIhB,IAExE2B,GAAU,kBACd,kBAA6B/B,EAAMO,QAAS,oBAG9C,OAAmB,CAAEyB,MAAOvB,EAAMU,KAAOrB,EAAU,YAAa,CAAEW,MAAiB,QAAV,EAAAA,EAAMU,YAAI,eAAEc,OAAU,QAC/F,OAAqBxB,GAErB,IAAMyB,GACJ7B,EAAYc,MACZW,GAAWX,MACXV,EAAMU,MACND,EAAoBC,MACpBY,GAAQZ,KAEJgB,MAAoBd,EAAqBF,MAAUG,EAAQc,QAAWP,GAEtEQ,GAAS,OAAH,sCACPtB,GACAC,GAAsB,CACzBJ,QAASZ,EAAMY,UAajB,OACE,uBAAK0B,UAAU,QACb,gBAAC,IAAc,CACb7B,MAAOA,EAAMU,KACbH,uBAAwBA,EACxBuB,KAdAvC,EAAMQ,SAAW,iBACZ,QAA2BR,EAAMO,QAAS,UAAW8B,IAE1DrC,EAAMQ,SAAW,UACZ,QAAoBR,EAAMO,QAAS,UAAW8B,KAEhD,QAAqBrC,EAAMO,QAAS,UAAW8B,IASlDG,aAAcrC,EAAe,2BAC7BsC,gBAA4B,QAAX,EAAA/B,EAAOS,YAAI,eAAEsB,gBAC9BvC,eAAgBA,EAChBU,QAASZ,EAAMY,UAEjB,gBAAC,IAAe,CACdM,oBAAqBA,EAAoBC,KACzCE,qBAAsBA,EAAqBF,KAC3CW,WAAYA,GAAWX,KACvBT,OAAQA,EAAOS,KACfS,MAAOA,EACPG,QAASA,GAAQZ,KACjBe,gBAAiBA,GACjBC,gBAAiBA,GACjBlC,eAAgBA,EAChBc,sBAAuBA,EACvBC,uBAAwBA,EACxBL,aAAcA,IAItB,C","sources":["file:///app/packages/projects/lite/src/apps/my-shares/views/heatmap/InsightsHeatmapView.tsx"],"sourcesContent":["import React from 'react';\n\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 { useChunkedUsersResponse } from 'libs/shared/apps/analytics/hooks/UseEngagementUsers';\nimport { VideoViewEventResponse } from 'libs/shared/apps/analytics/interfaces/VideoViewEvent';\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 { MasterType } from 'libs/shared/enums/MasterType';\nimport { MediaIdType } from 'libs/shared/enums/MediaIdType';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { PlayerRequests } from 'libs/shared/flight-requests/PlayerRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { VideoViewRequests } from 'libs/shared/flight-requests/VideoViewRequests';\nimport { useHandleObjectError } from 'libs/shared/hooks/UseHandleObjectError';\nimport { useLockContentWidth } from 'libs/shared/hooks/useLockContentWidth';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { AnalyticsRequestFilter, Config, CurrentUser, Engagement, IndividualEngagementResponse, PlayerViewKey, VideoTypes } from 'libs/shared/interfaces';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { ViewModelKeys } from 'shared/constants/LiteViewModels';\n\nimport { InsightsHeader } from 'apps/my-shares/components/insights-header/InsightsHeader';\nimport { InsightsHeatmap } from 'apps/my-shares/components/insights-heatmap/InsightsHeatmap';\nimport { getInsightsClipTabs, getInsightsInteractiveTabs, getInsightsVideoTabs } from 'apps/my-shares/utils/InsightsAppLinkUtils';\n\nconst namespace = 'shared.insightsHeatmap';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface InsightsHeatmapViewProps {\n videoId: string;\n typeId: MasterType;\n shareId?: string;\n}\n\nexport function InsightsHeatmapView(props: InsightsHeatmapViewProps) {\n const [anonymiseUsers] = useViewModel<boolean>(ViewModelKeys.ANONYMISE_USERS);\n\n useLockContentWidth();\n\n const { hasShareFlowV2 } = useSettings(null);\n\n const { hasPermissions } = usePermissions();\n\n const { publicInteractiveAttempts } = useSettings(null);\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const videoRequest = VideoHelper.getVideoRequest(props.videoId, props.typeId);\n const video = Flight.useBasicFetch<VideoTypes>(videoRequest);\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n\n const anonSessions = useAnonSessions(props.shareId);\n console.log(anonSessions);\n\n const audienceAppLinkParams = AnalyticsFilterHelper.getAudienceAppLinkParams();\n const dateRangeAppLinkParams = AnalyticsFilterHelper.getDateRangeAppLinkParams();\n\n const requestFilter: AnalyticsRequestFilter = {\n ...getStartEndParams(getInsightsDateRangePresets(), dateRangeAppLinkParams),\n ...getAudienceParams(audienceAppLinkParams)\n };\n\n const aggregateEngagement = Flight.useBasicFetch<Engagement>(\n currentUser.data && VideoViewRequests.aggregateEngagement(\n props.videoId,\n requestFilter,\n currentUser.data.id,\n publicInteractiveAttempts\n )\n );\n\n const individualEngagement = Flight.useBasicFetch<IndividualEngagementResponse>(currentUser.data &&\n VideoViewRequests.individualEngagement(\n props.videoId,\n requestFilter,\n currentUser.data?.id,\n publicInteractiveAttempts\n ));\n\n const userIds = individualEngagement.data?.data?.map(d => d.userId).filter(Boolean) || [];\n const { users, isLoading } = useChunkedUsersResponse(userIds);\n\n const videoViews = Flight.useBasicFetch<VideoViewEventResponse>(currentUser.data &&\n VideoViewRequests.views(requestFilter, props.videoId, currentUser.data?.id, publicInteractiveAttempts));\n\n const viewKey = Flight.useBasicFetch<PlayerViewKey>(\n PlayerRequests.createViewKey(props.videoId, MediaIdType.MasterObject)\n );\n\n useSetPageMetadata({ title: video.data ? getPhrase('pageTitle', { video: video.data?.name }) : null });\n useHandleObjectError(video);\n\n const hasDataLoaded =\n currentUser.data &&\n videoViews.data &&\n video.data &&\n aggregateEngagement.data &&\n viewKey.data;\n\n const tableDataLoaded = !!individualEngagement.data && (!userIds.length || !isLoading);\n\n const params = {\n ...audienceAppLinkParams,\n ...dateRangeAppLinkParams,\n shareId: props.shareId\n };\n\n function getInsightsTabs() {\n if (props.typeId === MasterType.Interactive)\n return getInsightsInteractiveTabs(props.videoId, 'heatmap', params);\n\n if (props.typeId === MasterType.Clip)\n return getInsightsClipTabs(props.videoId, 'heatmap', params);\n\n return getInsightsVideoTabs(props.videoId, 'heatmap', params);\n }\n\n return (\n <div className='px-3'>\n <InsightsHeader\n video={video.data}\n dateRangeAppLinkParams={dateRangeAppLinkParams}\n tabs={getInsightsTabs()}\n hasAnalytics={hasPermissions(PermissionName.ViewCustomerAnalytics)}\n analyticsWebUrl={config.data?.analyticsWebUrl}\n hasShareFlowV2={hasShareFlowV2}\n shareId={props.shareId}\n />\n <InsightsHeatmap\n aggregateEngagement={aggregateEngagement.data}\n individualEngagement={individualEngagement.data}\n videoViews={videoViews.data}\n config={config.data}\n users={users}\n viewKey={viewKey.data}\n hasDataLoaded={!!hasDataLoaded}\n tableDataLoaded={tableDataLoaded}\n anonymiseUsers={anonymiseUsers}\n audienceAppLinkParams={audienceAppLinkParams}\n dateRangeAppLinkParams={dateRangeAppLinkParams}\n anonSessions={anonSessions}\n />\n </div>\n );\n}"],"names":["getPhrase","InsightsHeatmapView","props","anonymiseUsers","hasShareFlowV2","hasPermissions","publicInteractiveAttempts","currentUser","videoRequest","videoId","typeId","video","config","anonSessions","shareId","console","log","audienceAppLinkParams","dateRangeAppLinkParams","requestFilter","aggregateEngagement","data","id","individualEngagement","userIds","map","d","userId","filter","Boolean","users","isLoading","videoViews","viewKey","title","name","hasDataLoaded","tableDataLoaded","length","params","className","tabs","hasAnalytics","analyticsWebUrl"],"sourceRoot":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[6078],{9806:(e,t,n)=>{"use strict";n.d(t,{k:()=>C});var a=n(32735),o=n(65858),i=n(64249),r=n(15611),l=n(7432),c=n(11834),s=n(83345),d=n(56754),u=n(86348),p=n(7733),m=n(54610),v=n(4594),y=n(68626),f=n(9085),b=n(67453),h=n(31908);const g={thumbnailFallbackSvg:"D4JFs",posterFallbackSvg:"bjUWl",coverFallbackSvg:"kdLpt",thumbnailContainer:"d3CKN",insightsMask:"KM76U",requireMarking:"peLH7",badge:"mVu0E",bar:"zO3MS",a:"K1jW5",expandBar:"YITJl",b:"tCpLF",c:"lC0cq"};var E="shared.sharedObjectImage",k="rounded overflow-hidden";function w(){return a.createElement("div",{className:"d-flex pointer-events-none position-absolute bottom-0 start-0 h-100 w-100 z-1 justify-content-center align-items-center"},a.createElement("div",{className:"position-absolute bg-dark bg-gradient opacity-50 w-100 h-100 z-0 rounded-3"}),a.createElement("div",{className:"d-flex align-items-end gap-2 h-50 z-1"},a.createElement("div",{className:"d-flex align-items-end h-50"},a.createElement("div",{className:"".concat(g.bar," ").concat(g.a," rounded shadow")})),a.createElement("div",{className:"d-flex align-items-end h-75"},a.createElement("div",{className:"".concat(g.bar," ").concat(g.b," rounded shadow")})),a.createElement("div",{className:"d-flex align-items-end h-100"},a.createElement("div",{className:"".concat(g.bar," ").concat(g.c," rounded shadow")}))))}function C(e){var t=a.useCallback((function(t){var n;t&&e.fixedHeight&&(t.style.width="".concat(t.offsetHeight*(n=e.object,h.M.isVideoType(n)?16/9:n.typeId===v.E.Playlist?1:n.typeId===v.E.Series?9/16:void 0),"px"))}),[]),n=h.M.isVideoType(e.object),C=function(e){var t=b.j.getDisplayImageFromObject(e);if(h.M.isVideoType(e))return{image:t,imageType:m.__.Thumbnails,imageClassName:k,imageFallbackComponent:a.createElement(c.oy,{type:c.mS.Video})};switch(e.typeId){case v.E.Series:return{image:t,imageType:m.__.TallPosters,imageClassName:k,imageFallbackComponent:a.createElement(c.oy,{type:c.mS.Series,svgContainerClassName:g.posterFallbackSvg})};case v.E.Playlist:return{image:t,imageType:m.__.Covers,imageClassName:(null==t?void 0:t.url)?k:"".concat(k," ").concat((0,f.x)(e.name,p.o)),imageFallbackComponent:a.createElement(c.oy,{type:c.mS.Playlist,svgContainerClassName:(null==t?void 0:t.url)?g.coverFallbackSvg:"d-none",extraClasses:!(null==t?void 0:t.url)&&"bg-transparent"})}}}(e.object),O=C.image,j=C.imageType,x=C.imageClassName,N=C.imageFallbackComponent;return a.createElement("div",{className:"d-flex align-items-center justify-content-center w-100 h-100"},a.createElement("div",{ref:t,className:e.fixedHeight?"h-100":"w-100"},n&&a.createElement("div",{className:"".concat(g.thumbnailContainer," position-relative")},e.showInsightsMask&&a.createElement(w,null),a.createElement(r.F,{appLink:e.appLink},a.createElement(u.u,{video:e.object,imageOptions:e.imageOptions,textPosition:y.z.Independent,type:"cosmetic",hideDuration:!0,hideMask:!0})),!!e.requireMarking&&a.createElement("div",{className:"".concat(e.showInsightsMask&&g.requireMarking," position-absolute bottom-0 end-0 z-1 m-2")},a.createElement("div",{className:"".concat(g.badge," d-flex align-items-center bg-light-ultramarine text-ultramarine fw-semibold rounded-pill w-fit mt-1 px-2")},a.createElement(s.x,{namespace:E,phrase:"requireMarking",options:{smartCount:e.requireMarking}})))),!n&&a.createElement(a.Fragment,null,"videos"in e.object?a.createElement(d.I,{collection:e.object,imageOptions:e.imageOptions,appLink:e.appLink,analyticsData:{id:e.object.id,name:e.object.name},analyticsOptions:{entity:i.I.getAnalyticsEntity(e.object.type),actionType:o.Vw.Click,location:e.locationContext},showMask:e.showCollectionMask,showVideoCount:e.showVideoCount}):a.createElement(l.Z,{data:null==O?void 0:O.url,imageType:j,imageOptions:e.imageOptions,appLink:e.appLink,className:x,analyticsData:{id:e.object.id,name:e.object.name},analyticsOptions:{entity:i.I.getAnalyticsEntity(e.object.type),actionType:o.Vw.Click,location:e.locationContext}},N))))}C.defaultProps={imageOptions:{size:m.h2.Small}}},56754:(e,t,n)=>{"use strict";n.d(t,{I:()=>E});var a=n(32735),o=n(75896),i=n(65858),r=n(15611),l=n(83914),c=n(83345);const s={thumbnailTitle:"OsWjL"};function d(e){return a.createElement("h3",{title:e.title,className:"h6"},e.title)}function u(e){return e.appLink?a.createElement(r.F,{appLink:e.appLink,className:"".concat(s.thumbnailTitle)},a.createElement(d,Object.assign({},e))):a.createElement(d,Object.assign({},e))}var p=n(86348),m=n(62335),v=n(4594),y=n(68626),f=n(45778),b=n(35223);const h={badge:"M4zat",mask:"r0Ztg",thumbnailContainer:"uD9dz"};var g="shared.collectionThumbnail";function E(e){var t,n,s,d,E=function(){var t,n=null===(t=e.collection)||void 0===t?void 0:t.videos;if(n){if(!n.count&&e.collection.typeId===v.E.Playlist){var a=e.collection;a.clips.count&&(n=a.clips),a.interactives.count&&(n=a.interactives)}return o.m.first(n.data)}}(),k=function(){var t,n,a=0;if(e.collection.videos&&e.collection.videos.count&&(a+=e.collection.videos.count),e.collection.typeId===v.E.Playlist){var o=e.collection;(null===(t=o.interactives)||void 0===t?void 0:t.count)&&(a+=o.interactives.count),(null===(n=o.clips)||void 0===n?void 0:n.count)&&(a+=o.clips.count)}return a}(),w=(null===(t=e.title)||void 0===t?void 0:t.length)||(null===(n=e.subText)||void 0===n?void 0:n.length),C=Object.assign({id:e.collection.id.toString(),name:e.collection.name},e.analyticsData),O=Object.assign({actionType:i.Vw.Click,entity:(d=e.collection,f.G.isType(d,v.E.Playlist)?i.py.Playlist:f.G.isType(d,v.E.Series)?i.py.Series:void 0)},e.analyticsOptions);return a.createElement("div",null,a.createElement("div",{className:"position-relative ".concat(h.thumbnailContainer," z-1")},a.createElement(r.F,{appLink:e.appLink,analyticsData:C,analyticsOptions:O,preventFocus:!0},e.showMask&&a.createElement("div",{className:"".concat(h.mask," position-absolute w-100 h-100 rounded-3 bg-dark bg-gradient z-1 bg-opacity-50 pointer-events-none")},a.createElement("div",{className:"".concat(h.badge," d-flex align-items-center w-fit flex-grow-0 bg-dark rounded-pill ps-1 m-2")},a.createElement(l.x,{svgName:b.vn.Play,className:"svg-container text-white"}),a.createElement("p",{className:"d-inline fw-medium text-white mb-0"},(null===(s=e.hoverText)||void 0===s?void 0:s.length)?a.createElement("span",null,e.hoverText):a.createElement(c.x,{namespace:g,phrase:"playAll"})))),E&&a.createElement(p.u,{video:E,imageOptions:e.imageOptions,textPosition:y.z.Independent,type:"cosmetic",hideMask:!0,hideRating:!0,hideDuration:!0,hideVideoTypeBadge:!0}),!E&&a.createElement("div",{className:"ratio ratio-16x9 bg-light rounded-3"},a.createElement("div",{className:"d-flex justify-content-center align-items-center"},a.createElement(l.x,{svgName:b.vn.Play,className:"w-33 opacity-25 text-gray-400"}))),e.showVideoCount&&a.createElement("div",{className:"".concat(h.badge," d-flex align-items-center w-fit bg-dark bg-opacity-75 rounded-pill position-absolute bottom-0 end-0 ps-1 m-2")},a.createElement(l.x,{svgName:b.vn.Series,className:"svg-container text-white me-1"}),a.createElement("p",{className:"d-inline fw-semibold text-white mb-0"},a.createElement(c.x,{namespace:g,phrase:"videos",options:{count:k,smartCount:k}}))))),w&&a.createElement("div",{className:"mt-2 d-flex flex-column"},e.subText&&a.createElement(m.m,{title:e.subText,appLink:e.subTextAppLink},e.subText),e.title&&a.createElement(u,{title:e.collection.name,appLink:e.titleAppLink})))}},31932:(e,t,n)=>{"use strict";n.r(t),n.d(t,{ShareOptionsView:()=>Q});var a=n(32735),o=n(2948),i=n(20354),r=n(50938),l=n(5255),c=n(4606),s=n(26025),d=n(74901),u=n(40003),p=n(49475),m=n(91693),v=n(4594),y=n(16714),f=n(39151),b=n(5112),h=n(60011),g=n(31949),E=n(17913),k=n(91286),w=n(93322),C=n(22902),O=n(79612),j=n(37802),x=n(35223),N=n(31908),S=n(86702),I=n(59087),L=n(65858),P=n(9806),T=n(54610),D=n(14070),A=n(97291),M=n(12528),F=n(93975);function _(e){return _="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},_(e)}function R(e,t,n){return(t=function(e){var t=function(e){if("object"!=_(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=_(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==_(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function V(e){return a.createElement("div",{className:"d-flex align-items-center"},a.createElement("div",{className:"d-flex align-items-center justify-content-center"},a.createElement("div",null,a.createElement(M.f,{svgName:z[e.shareLink.type],variant:B[e.shareLink.type],textVariant:"white",svgWrapperClassName:"p-1"})),a.createElement("div",{className:"d-flex flex-column ms-2"},a.createElement("label",{className:"m-0"},(n=(t=e).shareLink,o=t.classroomName,n.type===F.y.Classroom&&o?o:U[n.type])),a.createElement("span",{className:"text-secondary"},function(e){var t,n,a,o,i=e.shareLink;if(i.type===F.y.Classroom){var r=null!==(n=null===(t=i.recipients)||void 0===t?void 0:t.filter((function(e){return e.recipientTypeId===v.E.ClassroomGroup})).length)&&void 0!==n?n:0,l=null!==(o=null===(a=i.recipients)||void 0===a?void 0:a.filter((function(e){return e.recipientTypeId===v.E.User})).length)&&void 0!==o?o:0;return r&&l?"".concat(r," ").concat(W(r,"group","groups"),", ").concat(l," ").concat(W(l,"student","students")):r?"".concat(r," ").concat(W(r,"group","groups")):l?"".concat(l," ").concat(W(l,"student","students")):"All students in classroom can view"}return i.type===F.y.Open?"Anyone in my school can view":i.type===F.y.Link?"Anyone with a link can view":i.type===F.y.Live?"Live now":"Anyone can view for 30 days"}(e)))));var t,n,o}var z=R(R(R(R({},F.y.Open,x.vn.School),F.y.Link,x.vn.Link),F.y.Classroom,x.vn.Classrooms),F.y.Live,x.vn.Play),B=R(R(R(R({},F.y.Open,"blue"),F.y.Link,"black"),F.y.Classroom,"teal"),F.y.Live,"purple"),U=R(R(R(R({},F.y.Open,"Open classroom"),F.y.Link,"Link"),F.y.Classroom,"Classroom"),F.y.Live,"Live");function W(e,t,n){return 1===e?t:n}function G(e){var t,n,o,i,r,l,c,s;console.log("ShareOptions",e);var d=null!==(o=null===(n=null===(t=e.shareLink)||void 0===t?void 0:t.link)||void 0===n?void 0:n.shortenedUrl)&&void 0!==o?o:"";return a.createElement("div",{className:"mb-4"},a.createElement("div",{className:"d-flex gap-2"},e.sharedObject&&a.createElement("div",{style:{minWidth:180},className:"d-flex flex-column"},a.createElement(P.k,{object:e.sharedObject,showVideoMetadata:!0,locationContext:L.LZ.Insights,imageOptions:{size:T.h2.Medium},showCollectionMask:!0,showVideoCount:!0})),a.createElement("div",{className:"d-flex flex-column justify-content-end"},a.createElement("div",{className:"flex-grow-1"}),e.shareLink&&a.createElement(V,{shareLink:e.shareLink}),a.createElement("div",{className:"flex-grow-1"}),a.createElement("div",{className:"d-flex gap-2"},a.createElement(m.h,{svgName:x.vn.Share,className:"btn btn-outline-dark",appLink:{application:A.O.SHARE_V2,action:D.e.ShareV2.LINK,args:[null===(i=e.sharedObject)||void 0===i?void 0:i.id],params:{entityType:null===(r=e.sharedObject)||void 0===r?void 0:r.type,shareId:null===(l=e.shareLink)||void 0===l?void 0:l.shareId}}},"Share a link or embed"),a.createElement(m.h,{svgName:x.vn.Download,onClick:function(){return console.log("QR code..")},className:"btn btn-outline-dark",appLink:{application:A.O.INSIGHTS,action:D.e.Insights.QR_CODE,params:{value:d}}},"QR code"))),a.createElement("div",{className:"flex-grow-1"}),e.pinCode&&a.createElement("div",{className:"border p-3 rounded-3 d-flex flex-column align-items-center"},a.createElement("p",null,"Go to ",a.createElement("a",{href:"https://staging.clickview.net/pin",target:"_blank",className:"text-info"},"staging.clickview.net/pin")," and enter PIN:"),a.createElement("div",{className:"d-flex align-items-center"},a.createElement("h4",{className:"mb-0 pb-0 me-1"},null===(c=e.pinCode)||void 0===c?void 0:c.code),a.createElement(I.CopyToClipboard,{text:null===(s=e.pinCode)||void 0===s?void 0:s.code},a.createElement(m.h,{svgName:x.vn.Copy,className:"btn"})),a.createElement(m.h,{svgName:x.vn.NewWindow,onClick:function(){console.log("Expanding code..")},className:"btn"})))))}var H=n(26203),q=n(10447),K=n(91574);function J(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}function Q(e){var t,n,I,L,P,T,D,A,M,_,R,V,z,B,U,W,Q,Y,Z=(Q=(0,o.D)(S.y.ANONYMISE_USERS),Y=1,function(e){if(Array.isArray(e))return e}(Q)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,o,i,r,l=[],c=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(a=i.call(n)).done)&&(l.push(a.value),l.length!==t);c=!0);}catch(e){s=!0,o=e}finally{try{if(!c&&null!=n.return&&(r=n.return(),Object(r)!==r))return}finally{if(s)throw o}}return l}}(Q,Y)||function(e,t){if(e){if("string"==typeof e)return J(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)?J(e,t):void 0}}(Q,Y)||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],$=(0,j.r)(null).publicInteractiveAttempts,X=i.a.useBasicFetch(f.L.config()),ee=i.a.useBasicFetch(e.shareId&&K.o.getShareLink(e.shareId)),te=i.a.useBasicFetch(e.shareId&&K.o.getPincodeByShareId(e.shareId)),ne=(0,j.r)(null).hasShareFlowV2,ae=(0,C.T)().hasPermissions,oe=[v.E.Video,v.E.Clip,v.E.Interactive].includes(e.typeId)&&N.M.getVideoRequest(e.objectId,e.typeId),ie=i.a.useBasicFetch(oe),re=i.a.useBasicFetch(g.N.currentUser()),le=e.typeId===v.E.Series&&h.J.series(e.objectId),ce=i.a.useBasicFetch(le),se=e.typeId===v.E.Playlist&&b.C.getPlaylist(e.objectId),de=i.a.useBasicFetch(se),ue=s.B.getAudienceAppLinkParams(),pe=s.B.getDateRangeAppLinkParams(),me=Object.assign(Object.assign(Object.assign({},ue),pe),{shareId:e.shareId}),ve=Object.assign(Object.assign({},(0,u.wO)((0,u.Hb)(),pe)),(0,d.K)(ue)),ye=i.a.useBasicFetch(re.data&&E.u.individualEngagement(e.objectId,ve,null===(t=re.data)||void 0===t?void 0:t.id,$)),fe=(null===(I=null===(n=ye.data)||void 0===n?void 0:n.data)||void 0===I?void 0:I.map((function(e){return e.userId})).filter(Boolean))||[],be=(0,c.U)(fe),he=be.users,ge=be.isLoading,Ee=(0,l.Y)(e.shareId);(0,w.F)(),(0,O.M)({title:null!==(D=null!==(P=null===(L=ie.data)||void 0===L?void 0:L.name)&&void 0!==P?P:null===(T=ce.data)||void 0===T?void 0:T.name)&&void 0!==D?D:null===(A=de.data)||void 0===A?void 0:A.name}),(0,k.v)([ie,ce,de]);var ke=!(!ye.data||fe.length&&ge);return a.createElement("div",{className:"px-3"},a.createElement(H.j,{video:null!==(_=null!==(M=ie.data)&&void 0!==M?M:ce.data)&&void 0!==_?_:de.data,dateRangeAppLinkParams:pe,tabs:e.typeId===v.E.Interactive?(0,q.kj)(e.objectId,"shareOptions",me,ne):e.typeId===v.E.Clip?(0,q.$o)(e.objectId,"shareOptions",me,ne):e.typeId===v.E.Video?(0,q.$6)(e.objectId,"shareOptions",me,ne):e.typeId===v.E.Series?(0,q.lo)(e.objectId,"shareOptions",me):e.typeId===v.E.Playlist?(0,q.W_)(e.objectId,"shareOptions",me):void 0,hasAnalytics:ae(y.C.ViewCustomerAnalytics),analyticsWebUrl:null===(R=X.data)||void 0===R?void 0:R.analyticsWebUrl,hasShareFlowV2:ne,shareId:e.shareId}),a.createElement(G,{sharedObject:null!==(z=null!==(V=ie.data)&&void 0!==V?V:ce.data)&&void 0!==z?z:de.data,shareLink:ee.data,pinCode:te.data}),a.createElement("div",{className:"d-flex align-items-center"},a.createElement("h3",{className:"p-0 m-0"},"Students who have viewed this video"),(null===(B=ee.data)||void 0===B?void 0:B.type)===F.y.Classroom&&a.createElement(m.h,{svgName:x.vn.Plus,onClick:function(){return console.log("Add new student..")},className:"btn btn-outline-dark ms-auto"},"Add new student")),a.createElement("div",{className:"col-12"},ke&&a.createElement(r.z,{key:(0,p.u)(Object.assign(Object.assign({},ue),pe)),engagement:null===(U=ye.data)||void 0===U?void 0:U.data,users:he,imageCdnUrl:null===(W=X.data)||void 0===W?void 0:W.imageCdnUrl,anonymiseUsers:Z,border:!0,anonSessions:Ee})))}},93975:(e,t,n)=>{"use strict";var a;n.d(t,{y:()=>a}),function(e){e.Link="Link",e.Classroom="Classroom",e.Open="Open",e.Live="Live"}(a||(a={}))},91574:(e,t,n)=>{"use strict";n.d(t,{o:()=>r});var a=n(99940),o=n(97395),i={namespace:"share-v2"},r={createShareLink:function(e,t,n,o){return{url:"/api/share/v2/shares",key:"create:share-v2:link",type:a.k.POST,data:e,normalizeOptions:i,invalidationKeys:["share:link:object:".concat(e.objectId),"privacy:".concat(e.objectId),"sent:shares","get:share-v2:shares:object"],success:t,error:n,always:o}},getShareLink:function(e,t,n,o){return{url:"/api/share/v2/shares/".concat(e),key:"get:share-v2:link:".concat(e),type:a.k.GET,normalizeOptions:i,success:t,error:n,always:o}},getSharesByObjectId:function(e,t,n,o){return{url:"/api/share/v2/shares/objects/".concat(e),key:"get:share-v2:shares:object:".concat(e),type:a.k.GET,normalizeOptions:i,success:t,error:n,always:o}},getSentShares:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0,n=arguments.length>2?arguments[2]:void 0,i=arguments.length>3?arguments[3]:void 0,r={scopeId:e.scopeId,limit:e.limit||25,offset:parseInt(e.cursor)||0},l=Object.values(r).join(":");return{url:o._.urlBuilder("/api/share/v2/shares/sent",r),key:"sent:shares-v2:".concat(l),formatData:function(e){return{data:e,count:e.length,pagination:{cursors:{next:r.offset+e.length}}}},type:a.k.GET,normalize:!1,success:t,error:n,always:i}},createPincode:function(e){return{url:"/api/share/v2/shares/".concat(e,"/pincode"),key:"create:share-v2:pincode",type:a.k.POST}},getPincode:function(e){return{url:"/api/share/v2/shares/pincode?code=".concat(e),key:"get:share-v2:pincode:".concat(e)}},getPincodeByShareId:function(e){return{url:"/api/share/v2/shares/".concat(e,"/pincode"),key:"get:share-v2:".concat(e,":pincode")}}}},91969:(e,t,n)=>{"use strict";var a=n(47033),o={"text/plain":"Text","text/html":"Url",default:"Text"};e.exports=function(e,t){var n,i,r,l,c,s,d=!1;t||(t={}),n=t.debug||!1;try{if(r=a(),l=document.createRange(),c=document.getSelection(),(s=document.createElement("span")).textContent=e,s.ariaHidden="true",s.style.all="unset",s.style.position="fixed",s.style.top=0,s.style.clip="rect(0, 0, 0, 0)",s.style.whiteSpace="pre",s.style.webkitUserSelect="text",s.style.MozUserSelect="text",s.style.msUserSelect="text",s.style.userSelect="text",s.addEventListener("copy",(function(a){if(a.stopPropagation(),t.format)if(a.preventDefault(),void 0===a.clipboardData){n&&console.warn("unable to use e.clipboardData"),n&&console.warn("trying IE specific stuff"),window.clipboardData.clearData();var i=o[t.format]||o.default;window.clipboardData.setData(i,e)}else a.clipboardData.clearData(),a.clipboardData.setData(t.format,e);t.onCopy&&(a.preventDefault(),t.onCopy(a.clipboardData))})),document.body.appendChild(s),l.selectNodeContents(s),c.addRange(l),!document.execCommand("copy"))throw new Error("copy command was unsuccessful");d=!0}catch(a){n&&console.error("unable to copy using execCommand: ",a),n&&console.warn("trying IE specific stuff");try{window.clipboardData.setData(t.format||"text",e),t.onCopy&&t.onCopy(window.clipboardData),d=!0}catch(a){n&&console.error("unable to copy using clipboardData: ",a),n&&console.error("falling back to prompt"),i=function(e){var t=(/mac os x/i.test(navigator.userAgent)?"⌘":"Ctrl")+"+C";return e.replace(/#{\s*key\s*}/g,t)}("message"in t?t.message:"Copy to clipboard: #{key}, Enter"),window.prompt(i,e)}}finally{c&&("function"==typeof c.removeRange?c.removeRange(l):c.removeAllRanges()),s&&document.body.removeChild(s),r()}return d}},44818:(e,t,n)=>{"use strict";function a(e){return a="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},a(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.CopyToClipboard=void 0;var o=l(n(32735)),i=l(n(91969)),r=["text","onCopy","options","children"];function l(e){return e&&e.__esModule?e:{default:e}}function c(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?c(Object(n),!0).forEach((function(t){v(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):c(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function d(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function u(e,t){return u=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},u(e,t)}function p(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function m(e){return m=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},m(e)}function v(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var y=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&u(e,t)}(f,e);var t,n,l,c,y=(l=f,c=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,t=m(l);if(c){var n=m(this).constructor;e=Reflect.construct(t,arguments,n)}else e=t.apply(this,arguments);return function(e,t){if(t&&("object"===a(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return p(e)}(this,e)});function f(){var e;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,f);for(var t=arguments.length,n=new Array(t),a=0;a<t;a++)n[a]=arguments[a];return v(p(e=y.call.apply(y,[this].concat(n))),"onClick",(function(t){var n=e.props,a=n.text,r=n.onCopy,l=n.children,c=n.options,s=o.default.Children.only(l),d=(0,i.default)(a,c);r&&r(a,d),s&&s.props&&"function"==typeof s.props.onClick&&s.props.onClick(t)})),e}return t=f,(n=[{key:"render",value:function(){var e=this.props,t=(e.text,e.onCopy,e.options,e.children),n=function(e,t){if(null==e)return{};var n,a,o=function(e,t){if(null==e)return{};var n,a,o={},i=Object.keys(e);for(a=0;a<i.length;a++)n=i[a],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a<i.length;a++)n=i[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,r),a=o.default.Children.only(t);return o.default.cloneElement(a,s(s({},n),{},{onClick:this.onClick}))}}])&&d(t.prototype,n),Object.defineProperty(t,"prototype",{writable:!1}),f}(o.default.PureComponent);t.CopyToClipboard=y,v(y,"defaultProps",{onCopy:void 0,options:void 0})},59087:(e,t,n)=>{"use strict";var a=n(44818).CopyToClipboard;a.CopyToClipboard=a,e.exports=a},47033:e=>{e.exports=function(){var e=document.getSelection();if(!e.rangeCount)return function(){};for(var t=document.activeElement,n=[],a=0;a<e.rangeCount;a++)n.push(e.getRangeAt(a));switch(t.tagName.toUpperCase()){case"INPUT":case"TEXTAREA":t.blur();break;default:t=null}return e.removeAllRanges(),function(){"Caret"===e.type&&e.removeAllRanges(),e.rangeCount||n.forEach((function(t){e.addRange(t)})),t&&t.focus()}}}}]);
|
|
2
|
+
//# sourceMappingURL=6078-0bc71f8768-lite.chunk.js.map
|