@clickview/lite 0.70.1-dev.0 → 0.70.1-dev.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/dist/bundles.json +1 -1
  2. package/dist/css/{2018-lite-4aa02cdb17.chunk.css → 581-lite-a1cdc302ab.chunk.css} +3 -1
  3. package/dist/css/{2614-lite-0503112afe.chunk.css → 6156-lite-1b21a4e130.chunk.css} +3 -2
  4. package/dist/languages/en.json +1 -1
  5. package/dist/scripts/2154-6da16cef10-lite.chunk.js +2 -0
  6. package/dist/scripts/2154-6da16cef10-lite.chunk.js.map +1 -0
  7. package/dist/scripts/{2952-4f5abfce6d-lite.chunk.js → 2952-c5ec8f135e-lite.chunk.js} +2 -2
  8. package/dist/scripts/2952-c5ec8f135e-lite.chunk.js.map +1 -0
  9. package/dist/scripts/4377-001a8ee263-lite.chunk.js +2 -0
  10. package/dist/scripts/4377-001a8ee263-lite.chunk.js.map +1 -0
  11. package/dist/scripts/549-2d591052e3-lite.chunk.js +2 -0
  12. package/dist/scripts/549-2d591052e3-lite.chunk.js.map +1 -0
  13. package/dist/scripts/5721-2141ed4fb6-lite.chunk.js +2 -0
  14. package/dist/scripts/5721-2141ed4fb6-lite.chunk.js.map +1 -0
  15. package/dist/scripts/5797-f84ce545b9-lite.chunk.js +2 -0
  16. package/dist/scripts/5797-f84ce545b9-lite.chunk.js.map +1 -0
  17. package/dist/scripts/581-6e9a9afba8-lite.chunk.js +2 -0
  18. package/dist/scripts/{2018-693740d206-lite.chunk.js.map → 581-6e9a9afba8-lite.chunk.js.map} +1 -1
  19. package/dist/scripts/5829-5b395badf2-lite.chunk.js +3 -0
  20. package/dist/scripts/5829-5b395badf2-lite.chunk.js.map +1 -0
  21. package/dist/scripts/6046-5652117548-lite.chunk.js +2 -0
  22. package/dist/scripts/6046-5652117548-lite.chunk.js.map +1 -0
  23. package/dist/scripts/6156-d9a351e53f-lite.chunk.js +2 -0
  24. package/dist/scripts/{2614-bc2fef6ae0-lite.chunk.js.map → 6156-d9a351e53f-lite.chunk.js.map} +1 -1
  25. package/dist/scripts/6629-910e316a83-lite.chunk.js +3 -0
  26. package/dist/scripts/6629-910e316a83-lite.chunk.js.map +1 -0
  27. package/dist/scripts/7428-6dd787bc07-lite.chunk.js +2 -0
  28. package/dist/scripts/7428-6dd787bc07-lite.chunk.js.map +1 -0
  29. package/dist/scripts/7757-9b72774917-lite.chunk.js +2 -0
  30. package/dist/scripts/{7757-e4d91d7fac-lite.chunk.js.map → 7757-9b72774917-lite.chunk.js.map} +1 -1
  31. package/dist/scripts/8191-ff27deee6c-lite.chunk.js +2 -0
  32. package/dist/scripts/8191-ff27deee6c-lite.chunk.js.map +1 -0
  33. package/dist/scripts/{bundle-f9b9be2d02.min.js → bundle-4b10174000.min.js} +3 -3
  34. package/dist/scripts/{bundle-f9b9be2d02.min.js.map → bundle-4b10174000.min.js.map} +1 -1
  35. package/package.json +1 -1
  36. package/dist/scripts/1386-3be201d425-lite.chunk.js +0 -2
  37. package/dist/scripts/1386-3be201d425-lite.chunk.js.map +0 -1
  38. package/dist/scripts/2018-693740d206-lite.chunk.js +0 -2
  39. package/dist/scripts/2614-bc2fef6ae0-lite.chunk.js +0 -2
  40. package/dist/scripts/2952-4f5abfce6d-lite.chunk.js.map +0 -1
  41. package/dist/scripts/4377-f6e641f39a-lite.chunk.js +0 -2
  42. package/dist/scripts/4377-f6e641f39a-lite.chunk.js.map +0 -1
  43. package/dist/scripts/52-9d13c36f9b-lite.chunk.js +0 -2
  44. package/dist/scripts/52-9d13c36f9b-lite.chunk.js.map +0 -1
  45. package/dist/scripts/549-f06f2dab2b-lite.chunk.js +0 -2
  46. package/dist/scripts/549-f06f2dab2b-lite.chunk.js.map +0 -1
  47. package/dist/scripts/5721-bfd734f968-lite.chunk.js +0 -2
  48. package/dist/scripts/5721-bfd734f968-lite.chunk.js.map +0 -1
  49. package/dist/scripts/5797-04d8a61b80-lite.chunk.js +0 -2
  50. package/dist/scripts/5797-04d8a61b80-lite.chunk.js.map +0 -1
  51. package/dist/scripts/5829-82562ea6c2-lite.chunk.js +0 -3
  52. package/dist/scripts/5829-82562ea6c2-lite.chunk.js.map +0 -1
  53. package/dist/scripts/6046-339bc1b2e1-lite.chunk.js +0 -2
  54. package/dist/scripts/6046-339bc1b2e1-lite.chunk.js.map +0 -1
  55. package/dist/scripts/6629-55dc1fdb80-lite.chunk.js +0 -3
  56. package/dist/scripts/6629-55dc1fdb80-lite.chunk.js.map +0 -1
  57. package/dist/scripts/7757-e4d91d7fac-lite.chunk.js +0 -2
  58. package/dist/scripts/8191-d5f68d2463-lite.chunk.js +0 -2
  59. package/dist/scripts/8191-d5f68d2463-lite.chunk.js.map +0 -1
  60. /package/dist/css/{52-lite-e2d7497beb.chunk.css → 7428-lite-e2d7497beb.chunk.css} +0 -0
  61. /package/dist/scripts/{5829-82562ea6c2-lite.chunk.js.LICENSE.txt → 5829-5b395badf2-lite.chunk.js.LICENSE.txt} +0 -0
  62. /package/dist/scripts/{6629-55dc1fdb80-lite.chunk.js.LICENSE.txt → 6629-910e316a83-lite.chunk.js.LICENSE.txt} +0 -0
  63. /package/dist/scripts/{bundle-f9b9be2d02.min.js.LICENSE.txt → bundle-4b10174000.min.js.LICENSE.txt} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"scripts/549-f06f2dab2b-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/errors/handlers/HttpErrorHandlers.ts","file:///app/packages/libs/shared/src/flight-requests/VideoViewRequests.ts","file:///app/packages/libs/shared/src/hooks/UseBatchFetch.ts","file:///app/packages/libs/shared/src/hooks/UseHandleObjectError.ts","file:///app/packages/projects/lite/src/apps/my-shares/views/share-info/ShareInfoView.tsx","file:///app/packages/libs/shared/src/apps/analytics/components/insights/students-not-watched/InsightStudentsNotWatched.tsx","file:///app/packages/libs/shared/src/apps/analytics/components/insights/students-watched/InsightStudentsWatched.tsx","file:///app/packages/projects/lite/src/apps/my-shares/views/video/overview/partial-loading/partial-video-insights-overview.scss","file:///app/packages/projects/lite/src/apps/my-shares/views/video/overview/partial-loading/PartialVideoInsightsOverview.tsx","file:///app/packages/projects/lite/src/apps/my-shares/views/video/overview/VideoInsightsOverviewView.tsx","file:///app/packages/projects/lite/src/apps/my-shares/views/video/overview/VideoInsightsOverviewUtils.ts"],"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 { 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 { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/flight';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { AnalyticsRequestFilter, Engagement } from 'libs/shared/interfaces';\nimport { getAnalyticsRequestKey } from 'libs/shared/utils/AnalyticsRequestUtils';\n\nexport const VideoViewRequests = {\n individualEngagement(\n objectId: string,\n filter: AnalyticsRequestFilter,\n sharerId?: string,\n includeAnonViews?: boolean\n ): Flight.Request {\n const queryParams: HashObject = {\n objectId,\n ...filter\n };\n\n if (sharerId)\n queryParams.sharerId = sharerId;\n\n if (includeAnonViews)\n queryParams.includeAnonViews = true;\n\n return {\n url: UrlHelper.urlBuilder('{gateway}/v1/analytics/heat-map', queryParams),\n key: getAnalyticsRequestKey(`engagement:${objectId}:${includeAnonViews}`, filter, sharerId),\n formatData: (data: any) => {\n return {\n ...data,\n data: data.data?.map((d: any) => ({\n ...d,\n heatMap: d.heatMap ?? []\n }))\n };\n },\n normalize: false\n };\n },\n \n aggregateEngagement(\n objectId: string,\n filter: AnalyticsRequestFilter,\n sharerId?: string,\n includeAnonViews?: boolean\n ): Flight.Request {\n const queryParams: HashObject = {\n objectId,\n ...filter\n };\n\n if (sharerId)\n queryParams.sharerId = sharerId;\n \n if (includeAnonViews)\n queryParams.includeAnonViews = true;\n\n return {\n url: UrlHelper.urlBuilder('{gateway}/v1/analytics/heat-map/aggregations', queryParams),\n key: getAnalyticsRequestKey(`aggregate:engagement:${objectId}:${includeAnonViews}`, filter, sharerId),\n formatData: (data: Engagement) => {\n return {\n ...data,\n heatMap: data.heatMap ?? []\n };\n },\n normalize: false\n };\n },\n \n views(\n filter: AnalyticsRequestFilter,\n objectId?: string,\n sharerId?: string,\n includeAnonViews?: boolean\n ): Flight.Request {\n const queryParams: HashObject = {\n ...filter,\n timeOffset: DateHelper.getTimezoneOffset()\n };\n\n if (objectId)\n queryParams.objectId = objectId;\n\n if (sharerId)\n queryParams.sharerId = sharerId;\n \n if (includeAnonViews)\n queryParams.includeAnonViews = true;\n\n return {\n url: UrlHelper.urlBuilder('{gateway}/v1/analytics/video-views', queryParams),\n key: getAnalyticsRequestKey(`video:views:${objectId}:${includeAnonViews}`, filter, sharerId),\n normalize: false\n };\n }\n};","import React from 'react';\n\nimport { Flight } from 'libs/common/flight';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { BaseObject } from 'libs/shared/interfaces';\n\nconst CHUNK_SIZE = 50;\n\nexport interface UseBatchFetchResult<T extends BaseObject> {\n itemsArr: T[];\n items: { [key: string]: T} | null;\n isFetching: boolean;\n}\n\n/**\n * Used to fetch multiple items by id with Flight. Will fetch 25 items at a time firing off multiple\n * requests if there are more than 25 items.\n * This will return items as null until we have all our items. Items will be returned as an object with\n * their ids as they key for easy mapping\n * \n * @param itemIds \n * @param getRequest \n */\nexport function useBatchFetch<T extends BaseObject>(\n itemIds: string[],\n getRequest: (ids: string[]) => Flight.Request\n): UseBatchFetchResult<T> {\n const chunks = ArrayHelper.chunk<string>(itemIds, CHUNK_SIZE);\n\n const requests = chunks.map(chunk => getRequest(ArrayHelper.uniq(chunk)));\n\n const responses = Flight.useBasicFetchAll<T[]>(requests);\n\n const itemsArr = ArrayHelper.flatten(responses.data);\n const items = responses.data.length\n ? itemsArr.reduce((acc, item) => ({ ...acc, [item.id]: item }), {})\n : null;\n\n return {\n itemsArr,\n items,\n isFetching: responses.isFetching\n };\n}\n\n/**\n * When you need the useBatchFetch() behavior, but your list of objects to hydrate\n * will grow, such as on a scrolling page. useGrowingBatchFetch() will use local state\n * to determine what we've already built a request for and what items are new\n * as to not re-fetch items - Sha\n */\nexport function useGrowingBatchFetch<T>(\n objs: T[],\n getRequest: (items: T[]) => Flight.Request,\n _getKey?: (obj: T) => string\n) {\n const getKey = _getKey || ((obj: any) => {\n if (typeof obj === 'object')\n return obj.id;\n\n return obj;\n });\n\n const fetchedItems = React.useRef<Set<string>>(new Set<string>());\n\n const [ requests, setRequests ] = React.useState<Flight.Request[]>([]);\n\n React.useEffect(() => {\n if (!objs?.length)\n return;\n\n const unfetchedItems: T[] = [];\n \n objs.forEach(obj => {\n const key = getKey(obj);\n\n if (fetchedItems.current.has(key))\n return;\n\n unfetchedItems.push(obj);\n fetchedItems.current.add(key);\n });\n \n if (!unfetchedItems.length)\n return;\n\n setRequests(r => ([ ...r, ...ArrayHelper.chunk<T>(unfetchedItems, CHUNK_SIZE).map(getRequest) ]));\n }, [objs?.length]);\n\n const responses = Flight.useBasicFetchAll<T[]>(requests);\n\n const itemsArr = ArrayHelper.flatten(responses.data);\n const items = responses.data.length\n ? itemsArr.reduce((acc, item) => ({ ...acc, [getKey(item)]: item }), {})\n : null;\n\n return {\n hasFirstRequestCompleted: !!responses.responses?.[0]?.hasCompleted,\n itemsArr,\n items,\n isFetching: responses.isFetching\n };\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';\nimport { format as formatDate } from 'timeago.js';\n\nimport { Flight } from 'libs/common/react/index';\n\nimport { AudienceQueryParams } from 'libs/shared/apps/analytics/interfaces/AudienceQueryParams';\nimport { BaseAnalyticsEventResponse } from 'libs/shared/apps/analytics/interfaces/BaseAnalyticsEvent';\nimport { DateRangeQueryParams } from 'libs/shared/apps/analytics/interfaces/DateRangeQueryParams';\nimport { getAudienceParams } from 'libs/shared/apps/analytics/utils/AudienceUtils';\nimport { getInsightsDateRangePresets, getStartEndParams } from 'libs/shared/apps/analytics/utils/DateRangeUtils';\nimport { ShareRequests } from 'libs/shared/apps/share/flight-requests/ShareRequests';\nimport { SharePrivacyResponse } from 'libs/shared/apps/share/interfaces/responses/SharePrivacyResponse';\nimport { ShareLinkHelper } from 'libs/shared/apps/share/utils/ShareLinkHelper';\nimport { SharableRecipient, ShareViewHelper } from 'libs/shared/apps/share/views/share/ShareViewHelper';\nimport { IconButton } from 'libs/shared/components/icon-button/IconButton';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { CustomerRequests } from 'libs/shared/flight-requests/CustomerRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { VideoViewRequests } from 'libs/shared/flight-requests/VideoViewRequests';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { Config, CurrentUser, DirectShare, ShareLink, VideoTypes, YearGroup } from 'libs/shared/interfaces';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { getShareAppLink } from 'shared/utils/ObjectAppLinkHelper';\n\nimport { SharedToPill } from 'apps/my-shares/components/shared-to-pill/SharedToPill';\n\nconst namespace = 'insights.shareInfo';\n\ninterface ShareInfoViewProps {\n video: VideoTypes;\n audienceAppLinkParams: AudienceQueryParams;\n dateRangeAppLinkParams: DateRangeQueryParams;\n}\n\n// eslint-disable-next-line rulesdir/require-view-title\nexport function ShareInfoView(props: ShareInfoViewProps) {\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n\n const { publicInteractiveAttempts } = useSettings(null);\n\n const requestFilter = {\n ...getStartEndParams(getInsightsDateRangePresets(), props.dateRangeAppLinkParams),\n ...getAudienceParams(props.audienceAppLinkParams)\n };\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const shareLink = Flight.useBasicFetch<ShareLink>(props.video &&\n ShareRequests.getShareLinkByObjectId(props.video.id));\n const sentDirectShare = Flight.useBasicFetch<DirectShare>(props.video &&\n ShareRequests.getSentDirectShareByObjectId(props.video.id));\n const recipients = Flight.useBasicFetch<SharableRecipient[]>(currentUser.data?.customerId &&\n ShareViewHelper.getDirectShareRecipientsRequest(currentUser.data.customerId, sentDirectShare.data));\n const videoViews = Flight.useBasicFetch<BaseAnalyticsEventResponse>(currentUser.data && props.video &&\n VideoViewRequests.views(requestFilter, props.video.id, currentUser.data.id, publicInteractiveAttempts));\n const privacy = Flight.useBasicFetch<SharePrivacyResponse>(props.video && ShareRequests.getPrivacy(props.video.id));\n const yearGroups = Flight.useBasicFetch<YearGroup[]>(\n currentUser.data?.isAuthenticated && CustomerRequests.yearGroups(currentUser.data.customerId)\n );\n\n const notShared =\n (shareLink.hasCompleted && !shareLink.data) &&\n (sentDirectShare.hasCompleted && !sentDirectShare.data);\n\n const hasShareData =\n (shareLink.hasCompleted && shareLink.data) ||\n (sentDirectShare.hasCompleted && sentDirectShare.data) &&\n (!shareLink.data || privacy.data) &&\n (!shareLink.data || yearGroups.data) &&\n recipients.data &&\n videoViews.data;\n\n const shareLinkText = shareLink.data && privacy.data && yearGroups.data &&\n ShareLinkHelper.getIconAndText({\n entity: props.video,\n entityTypeId: props.video.typeId,\n hasStudentExp: false,\n isPasswordProtected: shareLink.data.isPasswordProtected,\n linkExpireDate: shareLink.data.linkExpireDate,\n privacy: privacy.data,\n status: shareLink.data.status,\n yearGroups: yearGroups.data\n });\n\n const viewCount = React.useMemo(() => {\n return videoViews.data?.data.reduce((acc, view) => view.count + acc, 0);\n }, [videoViews.data]);\n const dateShared = sentDirectShare.data?.dateCreated || shareLink.data?.dateCreated;\n\n return (\n <div className='mb-4'>\n {hasShareData &&\n <>\n <h2 className='h4'><Text namespace={namespace} phrase='shareInfo' /></h2>\n\n <div className='d-flex border p-3 rounded-3 align-items-center justify-content-between'>\n <div className='d-flex align-items-center gap-2'>\n <SharedToPill\n shareRecipients={recipients.data}\n imageCdnUrl={config.data?.imageCdnUrl}\n hasShareLink={!!shareLink.data}\n maxAvatars={4}\n shareLinkText={shareLinkText?.text}\n />\n ·\n <p className='mb-0'>{formatDate(dateShared)}</p>\n {!!viewCount && (\n <>\n ·\n <p className='mb-0'><Text namespace={namespace} phrase='views' options={{ smartCount: viewCount }} /></p>\n </>\n )}\n </div>\n <IconButton\n appLink={getShareAppLink(props.video)}\n svgName={cvSvgLibrary.Share}\n className='btn btn-outline-dark'\n >\n <Text namespace={namespace} phrase='share' />\n </IconButton>\n </div>\n </>\n }\n\n {!notShared && !hasShareData &&\n <>\n <div className='h4 partial-loading-background w-25'>&nbsp;</div>\n <div className='p-3 rounded partial-loading-background'>\n <p className='mb-1'>&nbsp;</p>\n </div>\n </>\n }\n </div>\n );\n}","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { InsightCard } from 'libs/shared/apps/analytics/components/insight-card/InsightCard';\nimport { InsightStudentList } from 'libs/shared/apps/analytics/components/insight-student-list/InsightStudentList';\nimport { User } from 'libs/shared/interfaces';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nconst namespace = 'shared.insightStudentsNotWatched';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface InsightStudentsNotWatchedProps {\n students: User[];\n imageCdnUrl: string;\n imageUrl: string;\n heatmapAppLink: Core.AppLink;\n watchedIds: string[];\n anonymiseUsers: boolean;\n}\n\nexport function InsightStudentsNotWatched(props: InsightStudentsNotWatchedProps) {\n const studentsNotWatched = props.students?.filter(student => !props.watchedIds?.includes(student.id)) || [];\n\n return (\n <InsightCard\n title={getPhrase('title')}\n svgName={cvSvgLibrary.Puzzle}\n svgClassName='bg-light-teal text-teal'\n >\n <InsightStudentList\n students={studentsNotWatched}\n imageCdnUrl={props.imageCdnUrl}\n imageUrl={props.imageUrl}\n description={getPhrase('studentsDisplay')}\n anonymiseUsers={props.anonymiseUsers}\n />\n </InsightCard>\n );\n}","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { InsightCard } from 'libs/shared/apps/analytics/components/insight-card/InsightCard';\nimport { InsightStudentList } from 'libs/shared/apps/analytics/components/insight-student-list/InsightStudentList';\nimport { UserOrAnonSession } from 'libs/shared/apps/analytics/interfaces/UserOrAnonSession';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nconst namespace = 'shared.insightStudentsWatched';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface InsightWatchedProps {\n students: UserOrAnonSession[];\n imageCdnUrl: string;\n heatmapAppLink: Core.AppLink;\n imageUrl: string;\n anonymiseUsers: boolean;\n}\n\nexport function InsightStudentsWatched(props: InsightWatchedProps) {\n return (\n <InsightCard\n title={getPhrase('title')}\n svgName={cvSvgLibrary.Flag}\n svgClassName='bg-light-indigo text-indigo'\n count={props.students.length}\n >\n <InsightStudentList\n students={props.students}\n imageCdnUrl={props.imageCdnUrl}\n imageUrl={props.imageUrl}\n description={getPhrase('studentsDisplay')}\n appLink={props.heatmapAppLink}\n appLinkText={getPhrase('viewAll')}\n anonymiseUsers={props.anonymiseUsers}\n />\n </InsightCard>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"partialInsights\":\"qm6HY\"};","import React from 'react';\n\nimport styles from './partial-video-insights-overview.scss';\n\nexport function PartialVideoInsightsOverview() {\n return (\n <div>\n <h2 className='h4 w-25 partial-loading-background'>&nbsp;</h2>\n <div className='row g-3 mb-5'>\n <div className='col-12'>\n <div className={`${styles.partialInsights} rounded partial-loading-background`}></div>\n </div>\n </div>\n\n <h2 className='h4 w-25 partial-loading-background'>&nbsp;</h2>\n <div className='row g-3 mb-5'>\n <div className='col-6'>\n <div className={`${styles.partialInsights} rounded partial-loading-background`}></div>\n </div>\n <div className='col-6'>\n <div className={`${styles.partialInsights} rounded partial-loading-background`}></div>\n </div>\n </div>\n </div>\n );\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';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { InsightDevices } from 'libs/shared/apps/analytics/components/insights/devices/InsightDevices';\nimport { InsightHeatmap } from 'libs/shared/apps/analytics/components/insights/heatmap/InsightHeatmap';\nimport { InsightStudentsNotWatched } from 'libs/shared/apps/analytics/components/insights/students-not-watched/InsightStudentsNotWatched';\nimport { InsightStudentsWatched } from 'libs/shared/apps/analytics/components/insights/students-watched/InsightStudentsWatched';\nimport { useAnonSessions } from 'libs/shared/apps/analytics/hooks/UseAnonSessions';\nimport { BaseAnalyticsEventResponse } from 'libs/shared/apps/analytics/interfaces/BaseAnalyticsEvent';\nimport { UserOrAnonSession } from 'libs/shared/apps/analytics/interfaces/UserOrAnonSession';\nimport { AnalyticsFilterHelper } from 'libs/shared/apps/analytics/utils/AnalyticsFilterUtils';\nimport { getAnonSession } from 'libs/shared/apps/analytics/utils/AnonymiseUserUtils';\nimport { getAudienceParams } from 'libs/shared/apps/analytics/utils/AudienceUtils';\nimport { getInsightsDateRangePresets, getStartEndParams } from 'libs/shared/apps/analytics/utils/DateRangeUtils';\nimport { ShareRequests } from 'libs/shared/apps/share/flight-requests/ShareRequests';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { SharedViewModelKeys } from 'libs/shared/constants/SharedViewModelKeys';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { VideoViewRequests } from 'libs/shared/flight-requests/VideoViewRequests';\nimport { useBatchFetch } from 'libs/shared/hooks/UseBatchFetch';\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 { BasePaginatedCollection, Config, CurrentUser, Engagement, User, VideoTypes } from 'libs/shared/interfaces';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\n\nimport { ClassroomRequests } from 'apps/classrooms/flight-requests/ClassroomRequests';\nimport { InsightsHeader } from 'apps/my-shares/components/insights-header/InsightsHeader';\nimport { InsightsShareMask } from 'apps/my-shares/components/insights-mask/InsightsShareMask';\nimport { getInsightsClipTabs, getInsightsVideoTabs } from 'apps/my-shares/utils/InsightsAppLinkUtils';\nimport { ShareInfoView } from 'apps/my-shares/views/share-info/ShareInfoView';\nimport { PartialVideoInsightsOverview } from 'apps/my-shares/views/video/overview/partial-loading/PartialVideoInsightsOverview';\nimport { getVideoInsightsAppLinks } from 'apps/my-shares/views/video/overview/VideoInsightsOverviewUtils';\n\nconst namespace = 'insights.videoInsightsOverview';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface VideoInsightsViewProps {\n videoId: string;\n typeId: MasterType;\n shareId?: string;\n}\n\nexport function VideoInsightsOverviewView(props: VideoInsightsViewProps) {\n const [anonymiseUsers] = useViewModel<boolean>(SharedViewModelKeys.ANONYMISE_USERS);\n\n useLockContentWidth();\n\n const { hasClassrooms, 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 config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n\n const videoRequest = VideoHelper.getVideoRequest(props.videoId, props.typeId);\n const video = Flight.useBasicFetch<VideoTypes>(videoRequest);\n\n const audienceAppLinkParams = AnalyticsFilterHelper.getAudienceAppLinkParams();\n const dateRangeAppLinkParams = AnalyticsFilterHelper.getDateRangeAppLinkParams();\n const requestFilter = {\n ...getStartEndParams(getInsightsDateRangePresets(), dateRangeAppLinkParams),\n ...getAudienceParams(audienceAppLinkParams)\n };\n\n useSetPageMetadata({ title: video.data ? getPhrase('pageTitle', { video: video.data?.name }) : null });\n useHandleObjectError(video);\n\n const aggregateEngagement = Flight.useBasicFetch<Engagement>(\n currentUser.data &&\n VideoViewRequests.aggregateEngagement(\n props.videoId,\n requestFilter,\n currentUser.data.id,\n publicInteractiveAttempts\n )\n );\n\n const classroomFilterOnly =\n audienceAppLinkParams.classrooms?.length === 1 && !audienceAppLinkParams.classroomGroups?.length;\n const classroomStudents = Flight.useBasicFetch<BasePaginatedCollection<User>>(classroomFilterOnly &&\n ClassroomRequests.getClassroomStudents(ArrayHelper.first(audienceAppLinkParams.classrooms)));\n\n const shareRecipients = useBatchFetch<User>(\n aggregateEngagement.data?.userIds || [],\n (ids: string[]) => ShareRequests.getRecipientsById(ids, currentUser.data.customerId)\n );\n\n const videoViews = Flight.useBasicFetch<BaseAnalyticsEventResponse>(currentUser.data &&\n VideoViewRequests.views(requestFilter, props.videoId, currentUser.data.id, publicInteractiveAttempts));\n\n const anonSessions = useAnonSessions(props.shareId);\n\n const hasShared = !!props.shareId;\n\n function getStudentsList(): UserOrAnonSession[] {\n if (!aggregateEngagement.data?.userIds && !aggregateEngagement.data?.sessionIds)\n return [];\n\n const students = shareRecipients.itemsArr ?? [];\n\n const sessions = aggregateEngagement.data?.sessionIds\n ?.map(sessionId => getAnonSession(sessionId, anonSessions)) || [];\n\n return [ ...students, ...sessions ];\n }\n\n const hasDataLoaded =\n currentUser.data &&\n config.data &&\n video.data &&\n aggregateEngagement.data &&\n (!classroomFilterOnly || classroomStudents.data);\n\n const params = {\n ...audienceAppLinkParams,\n ...dateRangeAppLinkParams,\n shareId: props.shareId\n };\n\n const videoInsightsAppLinks = getVideoInsightsAppLinks(props.videoId, props.typeId, params);\n\n function getInsightsOverviewTabs() {\n if (video.data?.typeId === MasterType.Clip) {\n return getInsightsClipTabs(video.data?.id, 'insights', params);\n }\n\n return getInsightsVideoTabs(video.data?.id, 'insights', params);\n }\n\n return (\n <div className='px-3'>\n <InsightsHeader\n video={video.data}\n dateRangeAppLinkParams={dateRangeAppLinkParams}\n tabs={getInsightsOverviewTabs()}\n hasAnalytics={hasPermissions(PermissionName.ViewCustomerAnalytics)}\n analyticsWebUrl={config.data?.analyticsWebUrl}\n hasShareFlowV2={hasShareFlowV2}\n shareId={props.shareId}\n />\n\n <ShareInfoView\n audienceAppLinkParams={audienceAppLinkParams}\n dateRangeAppLinkParams={dateRangeAppLinkParams}\n video={video.data}\n />\n\n {!hasDataLoaded && <PartialVideoInsightsOverview />}\n\n {hasDataLoaded &&\n <InsightsShareMask\n video={video.data}\n hasShared={hasShared}\n hasShareFlowV2={hasShareFlowV2}\n shareId={props.shareId}\n >\n <section className='mb-5'>\n <h2 className='h4'>\n <Text namespace={namespace} phrase='studentViewing' />\n <span>: {getStudentsList().length}{classroomStudents.data ? `/${classroomStudents.data.data.length}` : ''}</span>\n </h2>\n <div className='row g-3'>\n {classroomFilterOnly && (\n <div className='col-12 col-md'>\n <InsightStudentsNotWatched\n students={classroomStudents.data.data}\n watchedIds={aggregateEngagement.data.userIds}\n imageCdnUrl={config.data.imageCdnUrl}\n heatmapAppLink={videoInsightsAppLinks.heatmapAppLink}\n imageUrl={ImageUrls.Insights.AVATAR}\n anonymiseUsers={anonymiseUsers}\n />\n </div>\n )}\n <div className='col-12 col-md'>\n <InsightStudentsWatched\n students={getStudentsList()}\n imageCdnUrl={config.data.imageCdnUrl}\n heatmapAppLink={videoInsightsAppLinks.heatmapAppLink}\n imageUrl={ImageUrls.Insights.AVATAR}\n anonymiseUsers={anonymiseUsers}\n />\n </div>\n </div>\n </section>\n <section className='mb-5'>\n <h2 className='h4'>\n <Text\n namespace={namespace}\n phrase={hasClassrooms ? 'classEngagement' : 'engagement'}\n />\n </h2>\n <div className='row g-3'>\n <div className='col-12 col-md-6'>\n <InsightDevices\n osCount={videoViews.data?.osCount}\n />\n </div>\n <div className='col-12 col-md-6'>\n <InsightHeatmap\n engagement={aggregateEngagement.data}\n heatmapAppLink={videoInsightsAppLinks.heatmapAppLink}\n />\n </div>\n </div>\n </section>\n </InsightsShareMask>\n }\n </div>\n );\n}","import { HashObject } from 'libs/common/react/interfaces';\n\nimport { MasterType } from 'libs/shared/enums/MasterType';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nexport function getVideoInsightsAppLinks(id: string, typeId: MasterType, params?: HashObject) {\n return {\n heatmapAppLink: {\n application: AppChannels.INSIGHTS,\n action: typeId === MasterType.Clip ? Actions.Insights.CLIP_HEATMAP : Actions.Insights.VIDEO_HEATMAP,\n args: [id],\n params\n }\n };\n}"],"names":["useAnonSessions","shareId","anonSessions","data","length","reduce","prev","current","sessionId","defaultErrors","notFound","forbidden","rating","yearLevel","region","privacy","badRequest","internalServerError","handleHttpError","info","customErrorMap","ignoreMap","statusCode","status","errorMap","VideoViewRequests","individualEngagement","objectId","filter","sharerId","includeAnonViews","queryParams","url","key","formatData","map","d","heatMap","normalize","aggregateEngagement","views","timeOffset","CHUNK_SIZE","useBatchFetch","itemIds","getRequest","requests","chunk","responses","itemsArr","items","acc","item","id","isFetching","useGrowingBatchFetch","objs","_getKey","getKey","obj","fetchedItems","Set","setRequests","unfetchedItems","forEach","has","push","add","r","hasFirstRequestCompleted","hasCompleted","generateCacheKey","flightObjs","join","useHandleObjectError","_flightObjs","customErrors","ignoreErrors","Array","isArray","useEffect","namespace","ShareInfoView","props","config","publicInteractiveAttempts","requestFilter","dateRangeAppLinkParams","audienceAppLinkParams","currentUser","shareLink","video","sentDirectShare","recipients","customerId","videoViews","yearGroups","isAuthenticated","notShared","hasShareData","shareLinkText","entity","entityTypeId","typeId","hasStudentExp","isPasswordProtected","linkExpireDate","viewCount","view","count","dateShared","dateCreated","className","phrase","shareRecipients","imageCdnUrl","hasShareLink","maxAvatars","text","options","smartCount","appLink","svgName","getPhrase","LanguageService","InsightStudentsNotWatched","studentsNotWatched","students","student","watchedIds","includes","InsightCard","title","svgClassName","InsightStudentList","imageUrl","description","anonymiseUsers","InsightStudentsWatched","heatmapAppLink","appLinkText","PartialVideoInsightsOverview","VideoInsightsOverviewView","SharedViewModelKeys","useLockContentWidth","useSettings","hasClassrooms","hasShareFlowV2","hasPermissions","usePermissions","UserRequests","ConfigRequests","videoRequest","VideoHelper","videoId","useSetPageMetadata","name","classroomFilterOnly","classrooms","classroomGroups","classroomStudents","ClassroomRequests","ArrayHelper","userIds","ids","ShareRequests","hasShared","getStudentsList","sessionIds","sessions","hasDataLoaded","params","videoInsightsAppLinks","application","action","MasterType","args","getVideoInsightsAppLinks","InsightsHeader","tabs","getInsightsOverviewTabs","hasAnalytics","PermissionName","analyticsWebUrl","InsightsShareMask","Text","ImageUrls","InsightDevices","osCount","InsightHeatmap","engagement"],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[5721],{71553:(e,a,t)=>{t.d(a,{I:()=>s});var n=t(99940),r=t(62875);function i(e,a){return{currentUserId:e.id,currentCustomerId:e.customerId,dateRange:{start:a.start,end:a.end},userIds:a.userId,classroomsAndGroups:a.groupId}}var s={interactiveResultSet:function(e,a,t,s,c,o,d,l){return{url:c?"/api/domain/v3/analytics/interactives/".concat(e,"/metadata/").concat(a):"/api/domain/v2/analytics/interactives/".concat(e,"/metadata/").concat(a),key:(0,r.H)("interactive:result:set:".concat(e,":").concat(a),s),data:i(t,s),type:n.k.POST,normalize:!1,success:o,error:d,always:l}},mark:function(e,a,t,r,i,s,c){return{url:"/api/domain/v1/analytics/answers/".concat(t),key:"mark:answer:".concat(t,":").concat(r.resultId),type:n.k.PUT,data:r,normalize:!1,invalidationKeys:"interactive:result:set:".concat(e,":").concat(a),success:i,error:s,always:c}},pendingReviews:function(e){return{url:"/api/domain/v1/analytics/interactives/pending-reviews/summary",key:"interactives:pending:reviews",type:n.k.POST,data:e}},interactiveResultsReport:function(e){return{url:"{gateway}/v2/analytics/interactives/report",key:"interactive:results:report",data:e,type:n.k.POST,normalize:!1}}}},5255:(e,a,t)=>{t.d(a,{Y:()=>s});var n=t(20354),r=t(30439);function i(e){return i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i(e)}function s(e){var a,t=n.a.useBasicFetch(e&&r.o.getAnonSessions(e));return(null===(a=t.data)||void 0===a?void 0:a.length)?t.data.reduce((function(e,a){return Object.assign(Object.assign({},e),(t={},n=a.sessionId,r=a,(n=function(e){var a=function(e){if("object"!=i(e)||!e)return e;var a=e[Symbol.toPrimitive];if(void 0!==a){var t=a.call(e,"string");if("object"!=i(t))return t;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==i(a)?a:a+""}(n))in t?Object.defineProperty(t,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[n]=r,t));var t,n,r}),{}):{}}},41196:(e,a,t)=>{t.d(a,{W:()=>c});var n=t(20354),r=t(71553),i=t(20768),s=t(31949);function c(e,a,t){var c,o=n.a.useBasicFetch(s.N.currentUser()),d=n.a.useBasicFetch(!!e&&i.b.interactiveMetadata(e)),l=n.a.useBasicFetch(!!(null===(c=d.data)||void 0===c?void 0:c.interactiveId)&&i.b.interactive(d.data.interactiveId)),u=!!o.data&&!!l.data&&!!a;return n.a.useBasicFetch(u&&r.I.interactiveResultSet(d.data.interactiveId,d.data.id,o.data,a,t))}},94644:(e,a,t)=>{t.d(a,{r:()=>l});var n=t(50242),r=t(81886),i=t(67058),s=t(14553),c=t(49267),o=t(49075),d={notFound:i.d,forbidden:{rating:s.q,yearLevel:s.q,region:c.a,privacy:s.q},badRequest:o._,internalServerError:o._};function l(e){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e){var i;i="number"==typeof e?e:e.status;var s=Object.assign(Object.assign({},d),a);i&&r.Q.Ry.isStatusCodeError(i)&&(i!==n.o.InternalServer?i!==n.o.NotFound?i!==n.o.Forbidden?t.badRequest||r.Q.Ry.throw(new s.badRequest):t.forbidden||r.Q.Ry.throw(new s.forbidden.privacy):t.notFound||r.Q.Ry.throw(new s.notFound):t.internalServerError||r.Q.Ry.throw(new o._))}}},17913:(e,a,t)=>{t.d(a,{u:()=>s});var n=t(97395),r=t(110),i=t(62875),s={individualEngagement:function(e,a,t,r){var s=Object.assign({objectId:e},a);return t&&(s.sharerId=t),r&&(s.includeAnonViews=!0),{url:n._.urlBuilder("{gateway}/v1/analytics/heat-map",s),key:(0,i.H)("engagement:".concat(e,":").concat(r),a,t),formatData:function(e){var a;return Object.assign(Object.assign({},e),{data:null===(a=e.data)||void 0===a?void 0:a.map((function(e){var a;return Object.assign(Object.assign({},e),{heatMap:null!==(a=e.heatMap)&&void 0!==a?a:[]})}))})},normalize:!1}},aggregateEngagement:function(e,a,t,r){var s=Object.assign({objectId:e},a);return t&&(s.sharerId=t),r&&(s.includeAnonViews=!0),{url:n._.urlBuilder("{gateway}/v1/analytics/heat-map/aggregations",s),key:(0,i.H)("aggregate:engagement:".concat(e,":").concat(r),a,t),formatData:function(e){var a;return Object.assign(Object.assign({},e),{heatMap:null!==(a=e.heatMap)&&void 0!==a?a:[]})},normalize:!1}},views:function(e,a,t,s){var c=Object.assign(Object.assign({},e),{timeOffset:r.O.getTimezoneOffset()});return a&&(c.objectId=a),t&&(c.sharerId=t),s&&(c.includeAnonViews=!0),{url:n._.urlBuilder("{gateway}/v1/analytics/video-views",c),key:(0,i.H)("video:views:".concat(a,":").concat(s),e,t),normalize:!1}}}},91286:(e,a,t)=>{t.d(a,{v:()=>s});var n=t(32735),r=t(94644);function i(e){return e.map((function(e){return e.statusCode})).join(":")}function s(e,a,t){var s=Array.isArray(e)?e:[e];(0,n.useEffect)((function(){s.forEach((function(e){(0,r.r)(e.statusCode,a,t)}))}),[i(s),a,t])}},82344:(e,a,t)=>{t.r(a),t.d(a,{InteractiveInsightsOverviewView:()=>C});var n=t(32735),r=t(23481),i=t(2948),s=t(20354),c=t(75896),o=t(5255),d=t(41196),l=t(26025),u=t(74901),v=t(40003),m=t(38143),p=t(16714),g=t(39151),h=t(20768),f=t(31949),y=t(17913),b=t(91286),I=t(93322),w=t(22902),S=t(79612),E=t(37802),O=t(88630),k=t(53936),A=t(54948),j=t(10447),F=t(14070),R=t(97291),B=t(50782);function N(e,a){(null==a||a>e.length)&&(a=e.length);for(var t=0,n=Array(a);t<a;t++)n[t]=e[t];return n}var T=r.T.encloseNamespace("insights.interactiveInsightsOverviewView");function C(e){var a,t,r,C,P,L,U,x,_,M=(x=(0,i.D)(m.g.ANONYMISE_USERS),_=1,function(e){if(Array.isArray(e))return e}(x)||function(e,a){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var n,r,i,s,c=[],o=!0,d=!1;try{if(i=(t=t.call(e)).next,0===a){if(Object(t)!==t)return;o=!1}else for(;!(o=(n=i.call(t)).done)&&(c.push(n.value),c.length!==a);o=!0);}catch(e){d=!0,r=e}finally{try{if(!o&&null!=t.return&&(s=t.return(),Object(s)!==s))return}finally{if(d)throw r}}return c}}(x,_)||function(e,a){if(e){if("string"==typeof e)return N(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)?N(e,a):void 0}}(x,_)||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 V=(0,E.r)(null).hasShareFlowV2,D=(0,w.T)().hasPermissions,H=(0,E.r)(null).publicInteractiveAttempts,q=s.a.useBasicFetch(f.N.currentUser()),z=s.a.useBasicFetch(g.L.config()),G=s.a.useBasicFetch(h.b.interactiveMetadata(e.interactiveId)),Q=s.a.useBasicFetch((null===(a=G.data)||void 0===a?void 0:a.interactiveId)&&h.b.interactive(G.data.interactiveId)),W=l.B.getAudienceAppLinkParams(),K=l.B.getDateRangeAppLinkParams(),Y=Object.assign(Object.assign({},(0,v.wO)((0,v.Hb)(),K)),(0,u.K)(W)),$=(0,d.W)(e.interactiveId,Y,!0),J=1===(null===(t=W.classrooms)||void 0===t?void 0:t.length)&&!(null===(r=W.classroomGroups)||void 0===r?void 0:r.length),X=s.a.useBasicFetch(J&&O.F.getClassroomStudents(c.m.first(W.classrooms))),Z=s.a.useBasicFetch($.data&&y.u.aggregateEngagement(e.interactiveId,Y,q.data.id,H)),ee=s.a.useBasicFetch(q.data&&$.data&&y.u.views(Y,e.interactiveId,q.data.id,H)),ae=(0,o.Y)(e.shareId),te=!!e.shareId;(0,S.M)({title:G.data?T("pageTitle",{video:null===(C=G.data)||void 0===C?void 0:C.name}):null}),(0,b.v)([Q,G,$]);var ne=q.data&&z.data&&G.data&&Q.data&&$.data&&(!J||X.data)&&Z.data&&!!ee.data,re=Object.assign(Object.assign(Object.assign({},W),K),{shareId:e.shareId}),ie=function(e,a){return{resultsAppLink:{application:R.O.INSIGHTS,action:F.e.Insights.INTERACTIVE_STUDENTS,args:[e],params:a},questionsAppLink:{application:R.O.INSIGHTS,action:F.e.Insights.INTERACTIVE_QUESTIONS,args:[e],params:a},heatmapAppLink:{application:R.O.INSIGHTS,action:F.e.Insights.INTERACTIVE_HEATMAP,args:[e],params:a}}}(null===(P=G.data)||void 0===P?void 0:P.id,re);return n.createElement("div",{className:"px-3"},n.createElement(k.j,{video:G.data,dateRangeAppLinkParams:K,tabs:(0,j.kj)(null===(L=G.data)||void 0===L?void 0:L.id,"insights",re),hasAnalytics:D(p.C.ViewCustomerAnalytics),analyticsWebUrl:null===(U=z.data)||void 0===U?void 0:U.analyticsWebUrl,hasShareFlowV2:V,shareId:e.shareId}),n.createElement(B.R,{audienceAppLinkParams:W,dateRangeAppLinkParams:K,video:G.data}),n.createElement(A.m,{aggregateEngagement:Z.data,interactive:Q.data,interactiveMetadata:G.data,interactiveInsightsAppLinks:ie,classroomStudents:X.data,results:$.data,videoViews:ee.data,config:z.data,classroomFilterOnly:J,anonymiseUsers:M,params:re,hasDataLoaded:ne,hasShared:te,shareId:e.shareId,anonSessions:ae}))}},50782:(e,a,t)=>{t.d(a,{R:()=>S});var n=t(32735),r=t(82602),i=t(20354),s=t(74901),c=t(40003),o=t(30439),d=t(65853),l=t(64249),u=t(91693),v=t(83345),m=t(39151),p=t(1666),g=t(31949),h=t(17913),f=t(37802),y=t(35223),b=t(86099),I=t(24758),w="insights.shareInfo";function S(e){var a,t,S,E,O,k=i.a.useBasicFetch(m.L.config()),A=(0,f.r)(null).publicInteractiveAttempts,j=Object.assign(Object.assign({},(0,c.wO)((0,c.Hb)(),e.dateRangeAppLinkParams)),(0,s.K)(e.audienceAppLinkParams)),F=i.a.useBasicFetch(g.N.currentUser()),R=i.a.useBasicFetch(e.video&&o.o.getShareLinkByObjectId(e.video.id)),B=i.a.useBasicFetch(e.video&&o.o.getSentDirectShareByObjectId(e.video.id)),N=i.a.useBasicFetch((null===(a=F.data)||void 0===a?void 0:a.customerId)&&l.I.getDirectShareRecipientsRequest(F.data.customerId,B.data)),T=i.a.useBasicFetch(F.data&&e.video&&h.u.views(j,e.video.id,F.data.id,A)),C=i.a.useBasicFetch(e.video&&o.o.getPrivacy(e.video.id)),P=i.a.useBasicFetch((null===(t=F.data)||void 0===t?void 0:t.isAuthenticated)&&p.h.yearGroups(F.data.customerId)),L=R.hasCompleted&&!R.data&&B.hasCompleted&&!B.data,U=R.hasCompleted&&R.data||B.hasCompleted&&B.data&&(!R.data||C.data)&&(!R.data||P.data)&&N.data&&T.data,x=R.data&&C.data&&P.data&&d.R.getIconAndText({entity:e.video,entityTypeId:e.video.typeId,hasStudentExp:!1,isPasswordProtected:R.data.isPasswordProtected,linkExpireDate:R.data.linkExpireDate,privacy:C.data,status:R.data.status,yearGroups:P.data}),_=n.useMemo((function(){var e;return null===(e=T.data)||void 0===e?void 0:e.data.reduce((function(e,a){return a.count+e}),0)}),[T.data]),M=(null===(S=B.data)||void 0===S?void 0:S.dateCreated)||(null===(E=R.data)||void 0===E?void 0:E.dateCreated);return n.createElement("div",{className:"mb-4"},U&&n.createElement(n.Fragment,null,n.createElement("h2",{className:"h4"},n.createElement(v.x,{namespace:w,phrase:"shareInfo"})),n.createElement("div",{className:"d-flex border p-3 rounded-3 align-items-center justify-content-between"},n.createElement("div",{className:"d-flex align-items-center gap-2"},n.createElement(I.A,{shareRecipients:N.data,imageCdnUrl:null===(O=k.data)||void 0===O?void 0:O.imageCdnUrl,hasShareLink:!!R.data,maxAvatars:4,shareLinkText:null==x?void 0:x.text}),"·",n.createElement("p",{className:"mb-0"},(0,r.WU)(M)),!!_&&n.createElement(n.Fragment,null,"·",n.createElement("p",{className:"mb-0"},n.createElement(v.x,{namespace:w,phrase:"views",options:{smartCount:_}})))),n.createElement(u.h,{appLink:(0,b.YK)(e.video),svgName:y.vn.Share,className:"btn btn-outline-dark"},n.createElement(v.x,{namespace:w,phrase:"share"})))),!L&&!U&&n.createElement(n.Fragment,null,n.createElement("div",{className:"h4 partial-loading-background w-25"}," "),n.createElement("div",{className:"p-3 rounded partial-loading-background"},n.createElement("p",{className:"mb-1"}," "))))}}}]);
2
- //# sourceMappingURL=5721-bfd734f968-lite.chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scripts/5721-bfd734f968-lite.chunk.js","mappings":"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","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/errors/handlers/HttpErrorHandlers.ts","file:///app/packages/libs/shared/src/flight-requests/VideoViewRequests.ts","file:///app/packages/libs/shared/src/hooks/UseHandleObjectError.ts","file:///app/packages/projects/lite/src/apps/my-shares/views/interactive/overview/InteractiveInsightsOverviewView.tsx","file:///app/packages/projects/lite/src/apps/my-shares/views/interactive/overview/InteractiveInsightsOverviewUtils.ts","file:///app/packages/projects/lite/src/apps/my-shares/views/share-info/ShareInfoView.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 { 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 { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/flight';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { AnalyticsRequestFilter, Engagement } from 'libs/shared/interfaces';\nimport { getAnalyticsRequestKey } from 'libs/shared/utils/AnalyticsRequestUtils';\n\nexport const VideoViewRequests = {\n individualEngagement(\n objectId: string,\n filter: AnalyticsRequestFilter,\n sharerId?: string,\n includeAnonViews?: boolean\n ): Flight.Request {\n const queryParams: HashObject = {\n objectId,\n ...filter\n };\n\n if (sharerId)\n queryParams.sharerId = sharerId;\n\n if (includeAnonViews)\n queryParams.includeAnonViews = true;\n\n return {\n url: UrlHelper.urlBuilder('{gateway}/v1/analytics/heat-map', queryParams),\n key: getAnalyticsRequestKey(`engagement:${objectId}:${includeAnonViews}`, filter, sharerId),\n formatData: (data: any) => {\n return {\n ...data,\n data: data.data?.map((d: any) => ({\n ...d,\n heatMap: d.heatMap ?? []\n }))\n };\n },\n normalize: false\n };\n },\n \n aggregateEngagement(\n objectId: string,\n filter: AnalyticsRequestFilter,\n sharerId?: string,\n includeAnonViews?: boolean\n ): Flight.Request {\n const queryParams: HashObject = {\n objectId,\n ...filter\n };\n\n if (sharerId)\n queryParams.sharerId = sharerId;\n \n if (includeAnonViews)\n queryParams.includeAnonViews = true;\n\n return {\n url: UrlHelper.urlBuilder('{gateway}/v1/analytics/heat-map/aggregations', queryParams),\n key: getAnalyticsRequestKey(`aggregate:engagement:${objectId}:${includeAnonViews}`, filter, sharerId),\n formatData: (data: Engagement) => {\n return {\n ...data,\n heatMap: data.heatMap ?? []\n };\n },\n normalize: false\n };\n },\n \n views(\n filter: AnalyticsRequestFilter,\n objectId?: string,\n sharerId?: string,\n includeAnonViews?: boolean\n ): Flight.Request {\n const queryParams: HashObject = {\n ...filter,\n timeOffset: DateHelper.getTimezoneOffset()\n };\n\n if (objectId)\n queryParams.objectId = objectId;\n\n if (sharerId)\n queryParams.sharerId = sharerId;\n \n if (includeAnonViews)\n queryParams.includeAnonViews = true;\n\n return {\n url: UrlHelper.urlBuilder('{gateway}/v1/analytics/video-views', queryParams),\n key: getAnalyticsRequestKey(`video:views:${objectId}:${includeAnonViews}`, filter, sharerId),\n normalize: false\n };\n }\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';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { useAnonSessions } from 'libs/shared/apps/analytics/hooks/UseAnonSessions';\nimport { useFetchInteractiveResults } from 'libs/shared/apps/analytics/hooks/UseFetchInteractiveResults';\nimport { BaseAnalyticsEventResponse } from 'libs/shared/apps/analytics/interfaces/BaseAnalyticsEvent';\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 { 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 { 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 { BasePaginatedCollection, Config, CurrentUser, Engagement, Interactive, InteractiveMetadata, User } from 'libs/shared/interfaces';\n\nimport { ClassroomRequests } from 'apps/classrooms/flight-requests/ClassroomRequests';\nimport { InsightsHeader } from 'apps/my-shares/components/insights-header/InsightsHeader';\nimport { InteractiveInsightsOverview } from 'apps/my-shares/components/interactive-insights-overview/InteractiveInsightsOverview';\nimport { getInsightsInteractiveTabs } from 'apps/my-shares/utils/InsightsAppLinkUtils';\nimport { getInteractiveInsightsAppLinks } from 'apps/my-shares/views/interactive/overview/InteractiveInsightsOverviewUtils';\nimport { ShareInfoView } from 'apps/my-shares/views/share-info/ShareInfoView';\n\nconst namespace = 'insights.interactiveInsightsOverviewView';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface InteractiveInsightsViewProps {\n interactiveId: string;\n shareId?: string;\n}\n\nexport function InteractiveInsightsOverviewView(props: InteractiveInsightsViewProps) {\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 { publicInteractiveAttempts } = useSettings(null);\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\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 audienceAppLinkParams = AnalyticsFilterHelper.getAudienceAppLinkParams();\n const dateRangeAppLinkParams = AnalyticsFilterHelper.getDateRangeAppLinkParams();\n const requestFilter = {\n ...getStartEndParams(getInsightsDateRangePresets(), dateRangeAppLinkParams),\n ...getAudienceParams(audienceAppLinkParams)\n };\n\n const results = useFetchInteractiveResults(props.interactiveId, requestFilter, true);\n\n const classroomFilterOnly =\n audienceAppLinkParams.classrooms?.length === 1 && !audienceAppLinkParams.classroomGroups?.length;\n const classroomStudents = Flight.useBasicFetch<BasePaginatedCollection<User>>(classroomFilterOnly &&\n ClassroomRequests.getClassroomStudents(ArrayHelper.first(audienceAppLinkParams.classrooms)));\n\n const aggregateEngagement = Flight.useBasicFetch<Engagement>(\n results.data && VideoViewRequests.aggregateEngagement(\n props.interactiveId,\n requestFilter,\n currentUser.data.id,\n publicInteractiveAttempts\n )\n );\n\n const videoViews = Flight.useBasicFetch<BaseAnalyticsEventResponse>(\n currentUser.data &&\n results.data &&\n VideoViewRequests.views(requestFilter, props.interactiveId, currentUser.data.id, publicInteractiveAttempts)\n );\n\n const anonSessions = useAnonSessions(props.shareId);\n\n const hasShared = !!props.shareId;\n\n useSetPageMetadata({ title: interactiveMetadata.data ? getPhrase('pageTitle', { video: interactiveMetadata.data?.name }) : null });\n\n useHandleObjectError([ interactive, interactiveMetadata, results ]);\n\n const hasDataLoaded =\n currentUser.data &&\n config.data &&\n interactiveMetadata.data &&\n interactive.data &&\n results.data &&\n (!classroomFilterOnly || classroomStudents.data) &&\n aggregateEngagement.data &&\n !!videoViews.data;\n\n const params = {\n ...audienceAppLinkParams,\n ...dateRangeAppLinkParams,\n shareId: props.shareId\n };\n\n const interactiveInsightsAppLinks = getInteractiveInsightsAppLinks(\n interactiveMetadata.data?.id,\n params\n );\n\n return (\n <div className='px-3'>\n <InsightsHeader\n video={interactiveMetadata.data}\n dateRangeAppLinkParams={dateRangeAppLinkParams}\n tabs={getInsightsInteractiveTabs(interactiveMetadata.data?.id, 'insights', params)}\n hasAnalytics={hasPermissions(PermissionName.ViewCustomerAnalytics)}\n analyticsWebUrl={config.data?.analyticsWebUrl}\n hasShareFlowV2={hasShareFlowV2}\n shareId={props.shareId}\n />\n\n <ShareInfoView\n audienceAppLinkParams={audienceAppLinkParams}\n dateRangeAppLinkParams={dateRangeAppLinkParams}\n video={interactiveMetadata.data}\n />\n\n <InteractiveInsightsOverview\n aggregateEngagement={aggregateEngagement.data}\n interactive={interactive.data}\n interactiveMetadata={interactiveMetadata.data}\n interactiveInsightsAppLinks={interactiveInsightsAppLinks}\n classroomStudents={classroomStudents.data}\n results={results.data}\n videoViews={videoViews.data}\n config={config.data}\n classroomFilterOnly={classroomFilterOnly}\n anonymiseUsers={anonymiseUsers}\n params={params}\n hasDataLoaded={hasDataLoaded}\n hasShared={hasShared}\n shareId={props.shareId}\n anonSessions={anonSessions}\n />\n </div>\n );\n}","import { HashObject } from 'libs/common/react/interfaces';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nexport function getInteractiveInsightsAppLinks(id: string, params?: HashObject) {\n return {\n resultsAppLink: {\n application: AppChannels.INSIGHTS,\n action: Actions.Insights.INTERACTIVE_STUDENTS,\n args: [id],\n params\n },\n questionsAppLink: {\n application: AppChannels.INSIGHTS,\n action: Actions.Insights.INTERACTIVE_QUESTIONS,\n args: [id],\n params\n },\n heatmapAppLink: {\n application: AppChannels.INSIGHTS,\n action: Actions.Insights.INTERACTIVE_HEATMAP,\n args: [id],\n params\n }\n };\n}","import React from 'react';\nimport { format as formatDate } from 'timeago.js';\n\nimport { Flight } from 'libs/common/react/index';\n\nimport { AudienceQueryParams } from 'libs/shared/apps/analytics/interfaces/AudienceQueryParams';\nimport { BaseAnalyticsEventResponse } from 'libs/shared/apps/analytics/interfaces/BaseAnalyticsEvent';\nimport { DateRangeQueryParams } from 'libs/shared/apps/analytics/interfaces/DateRangeQueryParams';\nimport { getAudienceParams } from 'libs/shared/apps/analytics/utils/AudienceUtils';\nimport { getInsightsDateRangePresets, getStartEndParams } from 'libs/shared/apps/analytics/utils/DateRangeUtils';\nimport { ShareRequests } from 'libs/shared/apps/share/flight-requests/ShareRequests';\nimport { SharePrivacyResponse } from 'libs/shared/apps/share/interfaces/responses/SharePrivacyResponse';\nimport { ShareLinkHelper } from 'libs/shared/apps/share/utils/ShareLinkHelper';\nimport { SharableRecipient, ShareViewHelper } from 'libs/shared/apps/share/views/share/ShareViewHelper';\nimport { IconButton } from 'libs/shared/components/icon-button/IconButton';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { CustomerRequests } from 'libs/shared/flight-requests/CustomerRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { VideoViewRequests } from 'libs/shared/flight-requests/VideoViewRequests';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { Config, CurrentUser, DirectShare, ShareLink, VideoTypes, YearGroup } from 'libs/shared/interfaces';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { getShareAppLink } from 'shared/utils/ObjectAppLinkHelper';\n\nimport { SharedToPill } from 'apps/my-shares/components/shared-to-pill/SharedToPill';\n\nconst namespace = 'insights.shareInfo';\n\ninterface ShareInfoViewProps {\n video: VideoTypes;\n audienceAppLinkParams: AudienceQueryParams;\n dateRangeAppLinkParams: DateRangeQueryParams;\n}\n\n// eslint-disable-next-line rulesdir/require-view-title\nexport function ShareInfoView(props: ShareInfoViewProps) {\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n\n const { publicInteractiveAttempts } = useSettings(null);\n\n const requestFilter = {\n ...getStartEndParams(getInsightsDateRangePresets(), props.dateRangeAppLinkParams),\n ...getAudienceParams(props.audienceAppLinkParams)\n };\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const shareLink = Flight.useBasicFetch<ShareLink>(props.video &&\n ShareRequests.getShareLinkByObjectId(props.video.id));\n const sentDirectShare = Flight.useBasicFetch<DirectShare>(props.video &&\n ShareRequests.getSentDirectShareByObjectId(props.video.id));\n const recipients = Flight.useBasicFetch<SharableRecipient[]>(currentUser.data?.customerId &&\n ShareViewHelper.getDirectShareRecipientsRequest(currentUser.data.customerId, sentDirectShare.data));\n const videoViews = Flight.useBasicFetch<BaseAnalyticsEventResponse>(currentUser.data && props.video &&\n VideoViewRequests.views(requestFilter, props.video.id, currentUser.data.id, publicInteractiveAttempts));\n const privacy = Flight.useBasicFetch<SharePrivacyResponse>(props.video && ShareRequests.getPrivacy(props.video.id));\n const yearGroups = Flight.useBasicFetch<YearGroup[]>(\n currentUser.data?.isAuthenticated && CustomerRequests.yearGroups(currentUser.data.customerId)\n );\n\n const notShared =\n (shareLink.hasCompleted && !shareLink.data) &&\n (sentDirectShare.hasCompleted && !sentDirectShare.data);\n\n const hasShareData =\n (shareLink.hasCompleted && shareLink.data) ||\n (sentDirectShare.hasCompleted && sentDirectShare.data) &&\n (!shareLink.data || privacy.data) &&\n (!shareLink.data || yearGroups.data) &&\n recipients.data &&\n videoViews.data;\n\n const shareLinkText = shareLink.data && privacy.data && yearGroups.data &&\n ShareLinkHelper.getIconAndText({\n entity: props.video,\n entityTypeId: props.video.typeId,\n hasStudentExp: false,\n isPasswordProtected: shareLink.data.isPasswordProtected,\n linkExpireDate: shareLink.data.linkExpireDate,\n privacy: privacy.data,\n status: shareLink.data.status,\n yearGroups: yearGroups.data\n });\n\n const viewCount = React.useMemo(() => {\n return videoViews.data?.data.reduce((acc, view) => view.count + acc, 0);\n }, [videoViews.data]);\n const dateShared = sentDirectShare.data?.dateCreated || shareLink.data?.dateCreated;\n\n return (\n <div className='mb-4'>\n {hasShareData &&\n <>\n <h2 className='h4'><Text namespace={namespace} phrase='shareInfo' /></h2>\n\n <div className='d-flex border p-3 rounded-3 align-items-center justify-content-between'>\n <div className='d-flex align-items-center gap-2'>\n <SharedToPill\n shareRecipients={recipients.data}\n imageCdnUrl={config.data?.imageCdnUrl}\n hasShareLink={!!shareLink.data}\n maxAvatars={4}\n shareLinkText={shareLinkText?.text}\n />\n ·\n <p className='mb-0'>{formatDate(dateShared)}</p>\n {!!viewCount && (\n <>\n ·\n <p className='mb-0'><Text namespace={namespace} phrase='views' options={{ smartCount: viewCount }} /></p>\n </>\n )}\n </div>\n <IconButton\n appLink={getShareAppLink(props.video)}\n svgName={cvSvgLibrary.Share}\n className='btn btn-outline-dark'\n >\n <Text namespace={namespace} phrase='share' />\n </IconButton>\n </div>\n </>\n }\n\n {!notShared && !hasShareData &&\n <>\n <div className='h4 partial-loading-background w-25'>&nbsp;</div>\n <div className='p-3 rounded partial-loading-background'>\n <p className='mb-1'>&nbsp;</p>\n </div>\n </>\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","defaultErrors","notFound","forbidden","rating","yearLevel","region","privacy","badRequest","internalServerError","handleHttpError","info","customErrorMap","ignoreMap","statusCode","status","errorMap","VideoViewRequests","individualEngagement","objectId","sharerId","includeAnonViews","queryParams","formatData","map","d","heatMap","aggregateEngagement","views","timeOffset","generateCacheKey","flightObjs","obj","join","useHandleObjectError","_flightObjs","customErrors","ignoreErrors","Array","isArray","useEffect","forEach","getPhrase","LanguageService","InteractiveInsightsOverviewView","props","anonymiseUsers","SharedViewModelKeys","useLockContentWidth","hasShareFlowV2","useSettings","hasPermissions","usePermissions","publicInteractiveAttempts","UserRequests","config","ConfigRequests","InteractiveRequests","audienceAppLinkParams","dateRangeAppLinkParams","results","classroomFilterOnly","classrooms","classroomGroups","classroomStudents","ClassroomRequests","ArrayHelper","videoViews","hasShared","useSetPageMetadata","title","video","name","hasDataLoaded","params","interactiveInsightsAppLinks","resultsAppLink","application","action","args","questionsAppLink","heatmapAppLink","getInteractiveInsightsAppLinks","className","InsightsHeader","tabs","hasAnalytics","PermissionName","analyticsWebUrl","ShareInfoView","InteractiveInsightsOverview","namespace","shareLink","sentDirectShare","recipients","yearGroups","isAuthenticated","notShared","hasCompleted","hasShareData","shareLinkText","entity","entityTypeId","typeId","hasStudentExp","isPasswordProtected","linkExpireDate","viewCount","acc","view","count","dateShared","dateCreated","phrase","shareRecipients","imageCdnUrl","hasShareLink","maxAvatars","text","options","smartCount","appLink","svgName"],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[5797],{5255:(t,e,a)=>{a.d(e,{Y:()=>o});var r=a(20354),n=a(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,a=r.a.useBasicFetch(t&&n.o.getAnonSessions(t));return(null===(e=a.data)||void 0===e?void 0:e.length)?a.data.reduce((function(t,e){return Object.assign(Object.assign({},t),(a={},r=e.sessionId,n=e,(r=function(t){var e=function(t){if("object"!=i(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var a=e.call(t,"string");if("object"!=i(a))return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==i(e)?e:e+""}(r))in a?Object.defineProperty(a,r,{value:n,enumerable:!0,configurable:!0,writable:!0}):a[r]=n,a));var a,r,n}),{}):{}}},41196:(t,e,a)=>{a.d(e,{W:()=>s});var r=a(20354),n=a(71553),i=a(20768),o=a(31949);function s(t,e,a){var s,c=r.a.useBasicFetch(o.N.currentUser()),u=r.a.useBasicFetch(!!t&&i.b.interactiveMetadata(t)),d=r.a.useBasicFetch(!!(null===(s=u.data)||void 0===s?void 0:s.interactiveId)&&i.b.interactive(u.data.interactiveId)),l=!!c.data&&!!d.data&&!!e;return r.a.useBasicFetch(l&&n.I.interactiveResultSet(u.data.interactiveId,u.data.id,c.data,e,a))}},94644:(t,e,a)=>{a.d(e,{r:()=>d});var r=a(50242),n=a(81886),i=a(67058),o=a(14553),s=a(49267),c=a(49075),u={notFound:i.d,forbidden:{rating:o.q,yearLevel:o.q,region:s.a,privacy:o.q},badRequest:c._,internalServerError:c._};function d(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=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!==r.o.InternalServer?i!==r.o.NotFound?i!==r.o.Forbidden?a.badRequest||n.Q.Ry.throw(new o.badRequest):a.forbidden||n.Q.Ry.throw(new o.forbidden.privacy):a.notFound||n.Q.Ry.throw(new o.notFound):a.internalServerError||n.Q.Ry.throw(new c._))}}},91286:(t,e,a)=>{a.d(e,{v:()=>o});var r=a(32735),n=a(94644);function i(t){return t.map((function(t){return t.statusCode})).join(":")}function o(t,e,a){var o=Array.isArray(t)?t:[t];(0,r.useEffect)((function(){o.forEach((function(t){(0,n.r)(t.statusCode,e,a)}))}),[i(o),e,a])}},24191:(t,e,a)=>{a.r(e),a.d(e,{InteractiveInsightsQuestionsView:()=>O});var r=a(32735),n=a(23481),i=a(2948),o=a(20354),s=a(5255),c=a(41196),u=a(26025),d=a(74901),l=a(40003),v=a(38143),f=a(16714),b=a(39151),y=a(20768),h=a(91286),m=a(93322),g=a(22902),p=a(79612),I=a(37802),w=a(53936),S=a(68536),j=a(10447);function F(t,e){(null==e||e>t.length)&&(e=t.length);for(var a=0,r=Array(e);a<e;a++)r[a]=t[a];return r}var A=n.T.encloseNamespace("shared.interactiveInsightsQuestionsView");function O(t){var e,a,n,O,B,E=(O=(0,i.D)(v.g.ANONYMISE_USERS),B=1,function(t){if(Array.isArray(t))return t}(O)||function(t,e){var a=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=a){var r,n,i,o,s=[],c=!0,u=!1;try{if(i=(a=a.call(t)).next,0===e){if(Object(a)!==a)return;c=!1}else for(;!(c=(r=i.call(a)).done)&&(s.push(r.value),s.length!==e);c=!0);}catch(t){u=!0,n=t}finally{try{if(!c&&null!=a.return&&(o=a.return(),Object(o)!==o))return}finally{if(u)throw n}}return s}}(O,B)||function(t,e){if(t){if("string"==typeof t)return F(t,e);var a={}.toString.call(t).slice(8,-1);return"Object"===a&&t.constructor&&(a=t.constructor.name),"Map"===a||"Set"===a?Array.from(t):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?F(t,e):void 0}}(O,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];(0,m.F)();var R=(0,I.r)(null).hasShareFlowV2,k=(0,g.T)().hasPermissions,C=o.a.useBasicFetch(b.L.config()),_=o.a.useBasicFetch(y.b.interactiveMetadata(t.interactiveId)),q=o.a.useBasicFetch((null===(e=_.data)||void 0===e?void 0:e.interactiveId)&&y.b.interactive(_.data.interactiveId)),P=(0,s.Y)(t.shareId),Q=u.B.getAudienceAppLinkParams(),L=u.B.getDateRangeAppLinkParams(),M=(0,c.W)(t.interactiveId,Object.assign(Object.assign({},(0,l.wO)((0,l.Hb)(),L)),(0,d.K)(Q)),!0);(0,p.M)({title:_.data?A("pageTitle",{video:null===(a=_.data)||void 0===a?void 0:a.name}):null}),(0,h.v)([q,_,M]);var N=q.data&&_.data&&!!M.data,U=Object.assign(Object.assign(Object.assign({},Q),L),{shareId:t.shareId});return r.createElement("div",{className:"px-3"},r.createElement(w.j,{dateRangeAppLinkParams:L,tabs:(0,j.kj)(t.interactiveId,"questions",U),video:_.data,hasAnalytics:k(f.C.ViewCustomerAnalytics),analyticsWebUrl:null===(n=C.data)||void 0===n?void 0:n.analyticsWebUrl,hasShareFlowV2:R,shareId:t.shareId}),r.createElement(S.x,{interactive:q.data,interactiveMetadata:_.data,interactionId:t.interactionId,config:C.data,sortBy:t.sortBy,isFetching:M.isFetching||q.isFetching,anonymiseUsers:E,results:M.data,hasDataLoaded:N,anonSessions:P}))}}}]);
2
- //# sourceMappingURL=5797-04d8a61b80-lite.chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scripts/5797-04d8a61b80-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/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 { 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","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,3 +0,0 @@
1
- /*! For license information please see 5829-82562ea6c2-lite.chunk.js.LICENSE.txt */
2
- "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[5829,6629],{18488:(e,t,n)=>{n.d(t,{o:()=>i});var r=n(99940),a=n(97395),o={namespace:"share-v2"},i={createShare:function(e,t,n,a){return{url:"/api/share/v2/shares",key:"create:share-v2",type:r.k.POST,data:e,normalizeOptions:o,invalidationKeys:["sent:shares-v2"],success:t,error:n,always:a}},updateShare:function(e,t,n,a,i){return{url:"/api/share/v2/shares/".concat(e),key:"update:share-v2:".concat(e),type:r.k.PUT,data:t,normalizeOptions:o,invalidationKeys:["share-v2:permanent-link:object","share-v2:".concat(e)],success:n,error:a,always:i}},getShare:function(e,t,n,a){return{url:"/api/share/v2/shares/".concat(e),key:"share-v2:".concat(e),bootstrapName:"share-v2:".concat(e),type:r.k.GET,normalizeOptions:o,success:t,error:n,always:a}},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,o=arguments.length>3?arguments[3]:void 0,i=Object.values(e).join(":");return{url:a._.urlBuilder("/api/share/v2/shares/sent",e),key:"sent:shares-v2:".concat(i),formatData:function(t){return{data:t,count:t.length,pagination:{cursors:{next:null,previous:e.cursor}}}},type:r.k.GET,normalize:!1,success:t,error:n,always:o}},getShareLinkByObjectId:function(e){return{url:a._.urlBuilder("/api/share/v2/shares/permanent-link",{objectId:e}),key:"share-v2:permanent-link:object:".concat(e),type:r.k.POST,normalizeOptions:o}},getPrivacy:function(e){return{url:"{gateway}/v1/objects/".concat(e,"/access"),key:"privacy:".concat(e),normalize:!1}}}},79145:(e,t,n)=>{n.d(t,{I:()=>b});var r,a=n(23481),o=n(20354),i=n(49985),c=n(65858);!function(e){e.InstantFeedback="instant_feedback",e.PreventSkipping="prevent_skipping"}(r||(r={}));var s=n(18488),l=n(21750),u=n(43012),d=n(20768),m=n(5112),f=n(60011),p=n(1575),h=n(40841);function v(e){return v="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},v(e)}function y(e,t,n){return(t=function(e){var t=function(e){if("object"!=v(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=v(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==v(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var g=a.T.encloseNamespace("sharev2.utils"),b={canEmbed:function(e){return["video","interactive","clip"].includes(e)},canAddPolicies:function(e){return["video","interactive","clip"].includes(e)},getEnabledIntegrations:function(e,t){return h._.getShareIntegrations(e,t).filter((function(e){return e.enabled})).map((function(e){return e.id}))},getFetchFunctionByType:function(e){switch(e){case"video":return function(e){return o.a.useBasicFetch(p.R.video(e))};case"playlist":return function(e){return o.a.useBasicFetch(m.C.getPlaylist(e))};case"subject":return function(e,t){return o.a.useBasicFetch(l.x.classification(e,t))};case"series":return function(e){return o.a.useBasicFetch(f.J.series(e))};case"interactive":return function(e){return o.a.useBasicFetch(d.b.interactiveMetadata(e))};case"clip":return function(e){return o.a.useBasicFetch(u.e.clip(e))}}},getAnalyticsEntity:function(e){switch(e){case"playlist":return c.py.Playlist;case"subject":return c.py.Classification;case"video":return c.py.Video;case"series":return c.py.Series;case"interactive":return c.py.Interactive;case"clip":return c.py.Clip}},getAnalyticsOptions:function(e){return{entity:b.getAnalyticsEntity(e),location:c.LZ.Popup,workflowPhase:c.eu.Complete}},updateShareLink:function(e,t,n,r,a,l,u,d){o.a.fetch(e,s.o.updateShare(r.shareId,a,(function(e){i.k.logUserAction(Object.assign(Object.assign({},e),{objectName:t.name}),i.k.mergeOptions(b.getAnalyticsOptions(n),{actionType:c.Vw.Edit,entity:c.py.ShareLink,eventVersion:c.eq.V3})),u&&u(e),l.success(g("editSuccess",{name:t.name,escapeText:!0}))}),(function(){d&&d(),l.error(g("editError",{name:t.name,escapeText:!0}))})))},getShareSettingsInitialValues:function(e,t){var n={preventSkipping:(null==t?void 0:t.preventScrubbing)||!1,instantFeedback:(null==t?void 0:t.immediateFeedback)||!1},a=y(y({},r.InstantFeedback,"instantFeedback"),r.PreventSkipping,"preventSkipping");return e.options.reduce((function(e,t){return Object.keys(a).includes(t.option)?("True"===t.value?e[a[t.option]]=!0:"False"===t.value&&(e[a[t.option]]=!1),e):e}),n)}}},9806:(e,t,n)=>{n.d(t,{k:()=>k});var r=n(32735),a=n(65858),o=n(64249),i=n(15611),c=n(7432),s=n(11834),l=n(83345),u=n(56754),d=n(86348),m=n(7733),f=n(54610),p=n(4594),h=n(68626),v=n(9085),y=n(67453),g=n(31908);const b={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",S="rounded overflow-hidden";function w(){return r.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"},r.createElement("div",{className:"position-absolute bg-dark bg-gradient opacity-50 w-100 h-100 z-0 rounded-3"}),r.createElement("div",{className:"d-flex align-items-end gap-2 h-50 z-1"},r.createElement("div",{className:"d-flex align-items-end h-50"},r.createElement("div",{className:"".concat(b.bar," ").concat(b.a," rounded shadow")})),r.createElement("div",{className:"d-flex align-items-end h-75"},r.createElement("div",{className:"".concat(b.bar," ").concat(b.b," rounded shadow")})),r.createElement("div",{className:"d-flex align-items-end h-100"},r.createElement("div",{className:"".concat(b.bar," ").concat(b.c," rounded shadow")}))))}function k(e){var t=r.useCallback((function(t){var n;t&&e.fixedHeight&&(t.style.width="".concat(t.offsetHeight*(n=e.object,g.M.isVideoType(n)?16/9:n.typeId===p.E.Playlist?1:n.typeId===p.E.Series?9/16:void 0),"px"))}),[]),n=g.M.isVideoType(e.object),k=function(e){var t=y.j.getDisplayImageFromObject(e);if(g.M.isVideoType(e))return{image:t,imageType:f.__.Thumbnails,imageClassName:S,imageFallbackComponent:r.createElement(s.oy,{type:s.mS.Video})};switch(e.typeId){case p.E.Series:return{image:t,imageType:f.__.TallPosters,imageClassName:S,imageFallbackComponent:r.createElement(s.oy,{type:s.mS.Series,svgContainerClassName:b.posterFallbackSvg})};case p.E.Playlist:return{image:t,imageType:f.__.Covers,imageClassName:(null==t?void 0:t.url)?S:"".concat(S," ").concat((0,v.x)(e.name,m.o)),imageFallbackComponent:r.createElement(s.oy,{type:s.mS.Playlist,svgContainerClassName:(null==t?void 0:t.url)?b.coverFallbackSvg:"d-none",extraClasses:!(null==t?void 0:t.url)&&"bg-transparent"})}}}(e.object),x=k.image,C=k.imageType,N=k.imageClassName,I=k.imageFallbackComponent,O=e.showVideoMetadata?{}:{hideDuration:!0,hideMask:!0,hideRating:!0,hideVideoTypeBadge:!0};return r.createElement("div",{className:"d-flex align-items-center justify-content-center w-100 h-100"},r.createElement("div",{ref:t,className:e.fixedHeight?"h-100":"w-100"},n&&r.createElement("div",{className:"".concat(b.thumbnailContainer," position-relative")},e.showInsightsMask&&r.createElement(w,null),r.createElement(i.F,{appLink:e.appLink},r.createElement(d.u,Object.assign({video:e.object,size:e.thumbnailSize,imageOptions:e.imageOptions,textPosition:h.z.Independent,type:"cosmetic"},O))),!!e.requireMarking&&r.createElement("div",{className:"".concat(e.showInsightsMask&&b.requireMarking," position-absolute bottom-0 end-0 z-1 m-2")},r.createElement("div",{className:"".concat(b.badge," d-flex align-items-center bg-light-ultramarine text-ultramarine fw-semibold rounded-pill w-fit mt-1 px-2")},r.createElement(l.x,{namespace:E,phrase:"requireMarking",options:{smartCount:e.requireMarking}})))),!n&&r.createElement(r.Fragment,null,"videos"in e.object?r.createElement(u.I,{collection:e.object,imageOptions:e.imageOptions,appLink:e.appLink,analyticsData:{id:e.object.id,name:e.object.name},analyticsOptions:{entity:o.I.getAnalyticsEntity(e.object.type),actionType:a.Vw.Click,location:e.locationContext},showMask:e.showCollectionMask,showVideoCount:e.showVideoCount}):r.createElement(c.Z,{data:null==x?void 0:x.url,imageType:C,imageOptions:e.imageOptions,appLink:e.appLink,className:N,analyticsData:{id:e.object.id,name:e.object.name},analyticsOptions:{entity:o.I.getAnalyticsEntity(e.object.type),actionType:a.Vw.Click,location:e.locationContext}},I))))}k.defaultProps={imageOptions:{size:f.h2.Small}}},56754:(e,t,n)=>{n.d(t,{I:()=>E});var r=n(32735),a=n(75896),o=n(65858),i=n(15611),c=n(83914),s=n(83345);const l={thumbnailTitle:"OsWjL"};function u(e){return r.createElement("h3",{title:e.title,className:"h6"},e.title)}function d(e){return e.appLink?r.createElement(i.F,{appLink:e.appLink,className:"".concat(l.thumbnailTitle)},r.createElement(u,Object.assign({},e))):r.createElement(u,Object.assign({},e))}var m=n(86348),f=n(62335),p=n(4594),h=n(68626),v=n(45778),y=n(35223);const g={badge:"M4zat",mask:"r0Ztg",thumbnailContainer:"uD9dz"};var b="shared.collectionThumbnail";function E(e){var t,n,l,u,E=function(){var t,n=null===(t=e.collection)||void 0===t?void 0:t.videos;if(n){if(!n.count&&e.collection.typeId===p.E.Playlist){var r=e.collection;r.clips.count&&(n=r.clips),r.interactives.count&&(n=r.interactives)}return a.m.first(n.data)}}(),S=function(){var t,n,r=0;if(e.collection.videos&&e.collection.videos.count&&(r+=e.collection.videos.count),e.collection.typeId===p.E.Playlist){var a=e.collection;(null===(t=a.interactives)||void 0===t?void 0:t.count)&&(r+=a.interactives.count),(null===(n=a.clips)||void 0===n?void 0:n.count)&&(r+=a.clips.count)}return r}(),w=(null===(t=e.title)||void 0===t?void 0:t.length)||(null===(n=e.subText)||void 0===n?void 0:n.length),k=Object.assign({id:e.collection.id.toString(),name:e.collection.name},e.analyticsData),x=Object.assign({actionType:o.Vw.Click,entity:(u=e.collection,v.G.isType(u,p.E.Playlist)?o.py.Playlist:v.G.isType(u,p.E.Series)?o.py.Series:void 0)},e.analyticsOptions);return r.createElement("div",null,r.createElement("div",{className:"position-relative ".concat(g.thumbnailContainer," z-1")},r.createElement(i.F,{appLink:e.appLink,analyticsData:k,analyticsOptions:x,preventFocus:!0},e.showMask&&r.createElement("div",{className:"".concat(g.mask," position-absolute w-100 h-100 rounded-3 bg-dark bg-gradient z-1 bg-opacity-50 pointer-events-none")},r.createElement("div",{className:"".concat(g.badge," d-flex align-items-center w-fit flex-grow-0 bg-dark rounded-pill ps-1 m-2")},r.createElement(c.x,{svgName:y.vn.Play,className:"svg-container text-white"}),r.createElement("p",{className:"d-inline fw-medium text-white mb-0"},(null===(l=e.hoverText)||void 0===l?void 0:l.length)?r.createElement("span",null,e.hoverText):r.createElement(s.x,{namespace:b,phrase:"playAll"})))),E&&r.createElement(m.u,{video:E,imageOptions:e.imageOptions,textPosition:h.z.Independent,type:"cosmetic",hideMask:!0,hideRating:!0,hideDuration:!0,hideVideoTypeBadge:!0}),!E&&r.createElement("div",{className:"ratio ratio-16x9 bg-light rounded-3"},r.createElement("div",{className:"d-flex justify-content-center align-items-center"},r.createElement(c.x,{svgName:y.vn.Play,className:"w-33 opacity-25 text-gray-400"}))),e.showVideoCount&&r.createElement("div",{className:"".concat(g.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")},r.createElement(c.x,{svgName:y.vn.Series,className:"svg-container text-white me-1"}),r.createElement("p",{className:"d-inline fw-semibold text-white mb-0"},r.createElement(s.x,{namespace:b,phrase:"videos",options:{count:S,smartCount:S}}))))),w&&r.createElement("div",{className:"mt-2 d-flex flex-column"},e.subText&&r.createElement(f.m,{title:e.subText,appLink:e.subTextAppLink},e.subText),e.title&&r.createElement(d,{title:e.collection.name,appLink:e.titleAppLink})))}},41661:(e,t,n)=>{var r;n.d(t,{D:()=>r}),function(e){e.GoogleClassroom="google-classroom",e.MicrosoftTeams="microsoft-teams",e.Vivi="vivi",e.AppleTv="apply-tv"}(r||(r={}))},40841:(e,t,n)=>{n.d(t,{_:()=>c});var r=n(23481),a=n(41661),o=n(65728),i=r.T.encloseNamespace("shared.shared-utils"),c={getShareIntegrations:function(e,t){return[{id:a.D.GoogleClassroom,name:i("googleClassroom"),enabled:e,settingName:o.E.ShareToGoogleClassroom},{id:a.D.MicrosoftTeams,name:i("msftTeams"),enabled:t,settingName:o.E.ShareToMicrosoftTeams}]}}},86995:(e,t,n)=>{n.d(t,{a:()=>f});var r=n(32735),a=n(68050),o=n(69111),i=n(42272),c=n(93975),s=n(89965);function l(e){var t=r.useId();return r.createElement("div",{className:"d-flex"},r.createElement(s.X,{id:t,onChange:e.onClick,checked:e.toggled}),r.createElement("div",{className:"d-flex flex-column"},r.createElement("label",{className:"m-0",htmlFor:""},e.title),r.createElement("p",{className:"m-0 text-secondary"},e.description)))}var u=n(82444),d=n(4315);function m(e){return"classroom"===e.type?r.createElement(u.b,{selectedClassroom:e.selectedClassroom,onChangeClassroom:e.onChangeClassroom}):"open-classroom"===e.type?r.createElement(d.e,{shareLink:{type:c.y.Open,privacy:i.e.PinCode}}):void 0}function f(e){return r.createElement("div",{className:"d-flex flex-column gap-4 ".concat(e.className)},r.createElement(m,Object.assign({},e)),r.createElement(a.Z,null,r.createElement(o.Z,{sm:12,lg:6},r.createElement(l,{title:"Prevent skipping ahead",description:"Students cannot skip ahead to parts of the video they have not watched",toggled:e.preventSkippingAhead,onClick:e.onTogglePreventSkippingAhead})),e.isInteractive&&r.createElement(o.Z,{sm:12,lg:6},r.createElement(l,{title:"Enable instant feedback",description:"Allow students to see feedback on their answers before continuing",toggled:e.enableInstantFeedback,onClick:e.onToggleEnableInstantFeedback}))),r.createElement("div",null,r.createElement("label",null,"Add a message for your students (optional)"),r.createElement("br",null),r.createElement("textarea",{className:"form-control",placeholder:"Type a message...",value:e.message,onChange:function(t){return e.onChangeMessage(t.target.value)}})))}},82444:(e,t,n)=>{n.d(t,{b:()=>c});var r=n(32735),a=n(42272),o=n(93975),i=n(4315);function c(e){return r.createElement("div",{className:"d-flex align-items-center w-100 rounded gap-2 justify-content-between"},r.createElement("div",{className:"flex-grow-1"},r.createElement(i.e,{shareLink:{type:o.y.Classroom,privacy:a.e.Direct},classroomName:e.selectedClassroom.name})),r.createElement("div",{className:"d-flex align-items-center"},r.createElement("a",{className:"cursor-pointer text-info",onClick:e.onChangeClassroom},"Change classroom")))}},4315:(e,t,n)=>{n.d(t,{e:()=>d});var r=n(32735),a=n(12528),o=n(4594),i=n(35223),c=n(42272),s=n(93975);function l(e){return l="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},l(e)}function u(e,t,n){return(t=function(e){var t=function(e){if("object"!=l(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=l(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==l(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function d(e){return r.createElement("div",{className:"d-flex align-items-center"},r.createElement("div",{className:"d-flex align-items-center justify-content-center"},r.createElement("div",null,r.createElement(a.f,{svgName:m[e.shareLink.type],variant:f[e.shareLink.type],textVariant:"white",svgWrapperClassName:"p-1"})),r.createElement("div",{className:"d-flex flex-column ms-2"},r.createElement("label",{className:"m-0"},(n=(t=e).shareLink,i=t.classroomName,n.type===s.y.Classroom&&i?i:p[n.type])),r.createElement("span",{className:"text-secondary"},function(e){var t,n,r,a,i=e.shareLink;if(i.type===s.y.Classroom){var l=null!==(n=null===(t=i.recipients)||void 0===t?void 0:t.filter((function(e){return e.recipientTypeId===o.E.ClassroomGroup})).length)&&void 0!==n?n:0,u=null!==(a=null===(r=i.recipients)||void 0===r?void 0:r.filter((function(e){return e.recipientTypeId===o.E.User})).length)&&void 0!==a?a:0;return l&&u?"".concat(l," ").concat(h(l,"group","groups"),", ").concat(u," ").concat(h(u,"student","students")," can view"):l?"".concat(l," ").concat(h(l,"group","groups")," can view"):u?"".concat(u," ").concat(h(u,"student","students")," can view"):"All students in classroom can view"}if(i.type===s.y.Open)return"Students watch using a PIN code";if(i.type===s.y.Link){if([c.e.JustMySchool,c.e.Protected].includes(i.privacy))return"Respect ratings and restrictions";if(i.privacy===c.e.JustMySchoolOverrideRestriction)return"Anyone in your school can view";if(i.privacy===c.e.ProtectedOverrideRestriction)return"Anyone signed into ClickView can view";if(i.privacy===c.e.Public)return"Anyone with a link can view";if(i.privacy===c.e.PinCode)return"Anyone with a PIN code can view"}return i.type===s.y.Live?"Live now":"Anyone signed into ClickView can view"}(e)))));var t,n,i}var m=u(u(u(u({},s.y.Open,i.vn.School),s.y.Link,i.vn.Link),s.y.Classroom,i.vn.Classrooms),s.y.Live,i.vn.Play),f=u(u(u(u({},s.y.Open,"blue"),s.y.Link,"black"),s.y.Classroom,"teal"),s.y.Live,"purple"),p=u(u(u(u({},s.y.Open,"Open classroom"),s.y.Link,"Link"),s.y.Classroom,"Classroom"),s.y.Live,"Live");function h(e,t,n){return 1===e?t:n}},42272:(e,t,n)=>{var r;n.d(t,{e:()=>r}),function(e){e.Public="Public",e.PinCode="PinCode",e.PasswordProtected="PasswordProtected",e.ProtectedOverrideRestriction="ProtectedOverrideRestriction",e.JustMySchoolOverrideRestriction="JustMySchoolOverrideRestriction",e.Protected="Protected",e.JustMySchool="JustMySchool",e.Direct="Direct"}(r||(r={}))},93975:(e,t,n)=>{var r;n.d(t,{y:()=>r}),function(e){e.Link="Link",e.Classroom="Classroom",e.Open="Open",e.Live="Live"}(r||(r={}))},91574:(e,t,n)=>{n.d(t,{o:()=>i});var r=n(99940),a=n(97395),o={namespace:"share-v2"},i={createShareLink:function(e,t,n,a){return{url:"/api/share/v2/shares",key:"create:share-v2:link",type:r.k.POST,data:e,normalizeOptions:o,invalidationKeys:["share:link:object:".concat(e.objectId),"privacy:".concat(e.objectId),"sent:shares","get:share-v2:shares:object"],success:t,error:n,always:a}},getShareLink:function(e,t,n,a){return{url:"/api/share/v2/shares/".concat(e),key:"get:share-v2:link:".concat(e),type:r.k.GET,normalizeOptions:o,success:t,error:n,always:a}},getSharesByObjectId:function(e,t,n,a){return{url:"/api/share/v2/shares/objects/".concat(e),key:"get:share-v2:shares:object:".concat(e),type:r.k.GET,normalizeOptions:o,success:t,error:n,always:a}},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,o=arguments.length>3?arguments[3]:void 0,i={scopeId:e.scopeId,limit:e.limit||25,offset:parseInt(e.cursor)||0},c=Object.values(i).join(":");return{url:a._.urlBuilder("/api/share/v2/shares/sent",i),key:"sent:shares-v2:".concat(c),formatData:function(e){return{data:e,count:e.length,pagination:{cursors:{next:i.offset+e.length}}}},type:r.k.GET,normalize:!1,success:t,error:n,always:o}},createPincode:function(e){return{url:"/api/share/v2/shares/".concat(e,"/pincode"),key:"create:share-v2:pincode",type:r.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")}}}},93779:(e,t,n)=>{n.d(t,{t:()=>d});var r=n(20354),a=n(30439),o=n(42272),i=n(93975),c=n(91574);function s(e){return s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},s(e)}function l(){l=function(){return t};var e,t={},n=Object.prototype,r=n.hasOwnProperty,a=Object.defineProperty||function(e,t,n){e[t]=n.value},o="function"==typeof Symbol?Symbol:{},i=o.iterator||"@@iterator",c=o.asyncIterator||"@@asyncIterator",u=o.toStringTag||"@@toStringTag";function d(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{d({},"")}catch(e){d=function(e,t,n){return e[t]=n}}function m(e,t,n,r){var o=t&&t.prototype instanceof b?t:b,i=Object.create(o.prototype),c=new P(r||[]);return a(i,"_invoke",{value:O(e,n,c)}),i}function f(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}t.wrap=m;var p="suspendedStart",h="suspendedYield",v="executing",y="completed",g={};function b(){}function E(){}function S(){}var w={};d(w,i,(function(){return this}));var k=Object.getPrototypeOf,x=k&&k(k(A([])));x&&x!==n&&r.call(x,i)&&(w=x);var C=S.prototype=b.prototype=Object.create(w);function N(e){["next","throw","return"].forEach((function(t){d(e,t,(function(e){return this._invoke(t,e)}))}))}function I(e,t){function n(a,o,i,c){var l=f(e[a],e,o);if("throw"!==l.type){var u=l.arg,d=u.value;return d&&"object"==s(d)&&r.call(d,"__await")?t.resolve(d.__await).then((function(e){n("next",e,i,c)}),(function(e){n("throw",e,i,c)})):t.resolve(d).then((function(e){u.value=e,i(u)}),(function(e){return n("throw",e,i,c)}))}c(l.arg)}var o;a(this,"_invoke",{value:function(e,r){function a(){return new t((function(t,a){n(e,r,t,a)}))}return o=o?o.then(a,a):a()}})}function O(t,n,r){var a=p;return function(o,i){if(a===v)throw Error("Generator is already running");if(a===y){if("throw"===o)throw i;return{value:e,done:!0}}for(r.method=o,r.arg=i;;){var c=r.delegate;if(c){var s=L(c,r);if(s){if(s===g)continue;return s}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(a===p)throw a=y,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);a=v;var l=f(t,n,r);if("normal"===l.type){if(a=r.done?y:h,l.arg===g)continue;return{value:l.arg,done:r.done}}"throw"===l.type&&(a=y,r.method="throw",r.arg=l.arg)}}}function L(t,n){var r=n.method,a=t.iterator[r];if(a===e)return n.delegate=null,"throw"===r&&t.iterator.return&&(n.method="return",n.arg=e,L(t,n),"throw"===n.method)||"return"!==r&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+r+"' method")),g;var o=f(a,t.iterator,n.arg);if("throw"===o.type)return n.method="throw",n.arg=o.arg,n.delegate=null,g;var i=o.arg;return i?i.done?(n[t.resultName]=i.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,g):i:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,g)}function j(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function T(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function P(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(j,this),this.reset(!0)}function A(t){if(t||""===t){var n=t[i];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var a=-1,o=function n(){for(;++a<t.length;)if(r.call(t,a))return n.value=t[a],n.done=!1,n;return n.value=e,n.done=!0,n};return o.next=o}}throw new TypeError(s(t)+" is not iterable")}return E.prototype=S,a(C,"constructor",{value:S,configurable:!0}),a(S,"constructor",{value:E,configurable:!0}),E.displayName=d(S,u,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===E||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,S):(e.__proto__=S,d(e,u,"GeneratorFunction")),e.prototype=Object.create(C),e},t.awrap=function(e){return{__await:e}},N(I.prototype),d(I.prototype,c,(function(){return this})),t.AsyncIterator=I,t.async=function(e,n,r,a,o){void 0===o&&(o=Promise);var i=new I(m(e,n,r,a),o);return t.isGeneratorFunction(n)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},N(C),d(C,u,"Generator"),d(C,i,(function(){return this})),d(C,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),n=[];for(var r in t)n.push(r);return n.reverse(),function e(){for(;n.length;){var r=n.pop();if(r in t)return e.value=r,e.done=!1,e}return e.done=!0,e}},t.values=A,P.prototype={constructor:P,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(T),!t)for(var n in this)"t"===n.charAt(0)&&r.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var n=this;function a(r,a){return c.type="throw",c.arg=t,n.next=r,a&&(n.method="next",n.arg=e),!!a}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],c=i.completion;if("root"===i.tryLoc)return a("end");if(i.tryLoc<=this.prev){var s=r.call(i,"catchLoc"),l=r.call(i,"finallyLoc");if(s&&l){if(this.prev<i.catchLoc)return a(i.catchLoc,!0);if(this.prev<i.finallyLoc)return a(i.finallyLoc)}else if(s){if(this.prev<i.catchLoc)return a(i.catchLoc,!0)}else{if(!l)throw Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return a(i.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var a=this.tryEntries[n];if(a.tryLoc<=this.prev&&r.call(a,"finallyLoc")&&this.prev<a.finallyLoc){var o=a;break}}o&&("break"===e||"continue"===e)&&o.tryLoc<=t&&t<=o.finallyLoc&&(o=null);var i=o?o.completion:{};return i.type=e,i.arg=t,o?(this.method="next",this.next=o.finallyLoc,g):this.complete(i)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),g},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),T(n),g}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var a=r.arg;T(n)}return a}}throw Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:A(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),g}},t}var u=function(e,t,n,r){return new(n||(n=Promise))((function(a,o){function i(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?a(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(i,c)}s((r=r.apply(e,t||[])).next())}))};function d(e){var t,n=r.a.useBasicFetch(a.o.getPrivacy(e)),s=r.a.useGetFetchAsync(),d=null===(t=n.data)||void 0===t?void 0:t.canManageAccess;return{createShareLink:function(e){return u(this,void 0,void 0,l().mark((function t(){var r;return l().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(n.data){t.next=2;break}return t.abrupt("return");case 2:return t.next=4,s(c.o.createShareLink({objectId:e.objectId,type:i.y.Link,privacy:e.privacy,optionRequest:{preventSkipping:e.preventSkipping,instantFeedback:e.instantFeedback}}));case 4:return r=t.sent,t.abrupt("return",r);case 6:case"end":return t.stop()}}),t)})))},createDirectShare:function(e){return u(this,void 0,void 0,l().mark((function t(){var r,a;return l().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(n.data){t.next=2;break}return t.abrupt("return");case 2:return r=e.requireSignIn?o.e.Direct:o.e.PinCode,t.next=5,s(c.o.createShareLink({objectId:e.objectId,type:i.y.Classroom,privacy:r,optionRequest:{preventSkipping:e.preventShipping,instantFeedback:e.instantFeedback},recipientRequest:e.recipients.map((function(t){return{recipientId:t,message:e.message,scopeId:e.scopeId}}))}));case 5:if(a=t.sent,r!==o.e.PinCode){t.next=9;break}return t.next=9,s(c.o.createPincode(a.shareId));case 9:return t.abrupt("return",a);case 10:case"end":return t.stop()}}),t)})))},createOpenSession:function(e){return u(this,void 0,void 0,l().mark((function t(){var r,a;return l().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(n.data){t.next=2;break}return t.abrupt("return");case 2:return r=o.e.PinCode,e.requireSignIn&&(r=e.respectRatingsAndRestrictions?d?o.e.JustMySchool:o.e.Protected:d?o.e.JustMySchoolOverrideRestriction:o.e.ProtectedOverrideRestriction),t.next=6,s(c.o.createShareLink({objectId:e.objectId,type:i.y.Open,privacy:r,optionRequest:{preventSkipping:e.preventSkipping,instantFeedback:e.instantFeedback}}));case 6:if(a=t.sent,r!==o.e.PinCode){t.next=10;break}return t.next=10,s(c.o.createPincode(a.shareId));case 10:return t.abrupt("return",a);case 11:case"end":return t.stop()}}),t)})))},canManageAccess:d,hasCompleted:n.hasCompleted}}},72951:(e,t,n)=>{n.d(t,{x:()=>o});var r=n(75896),a=n(4594),o={getFlattenedRecipients:function(e){return r.m.flatten(e.map((function(e){var t;return null!==(t=e.recipients)&&void 0!==t?t:[]})))},getClassoomIds:function(e){var t=o.getFlattenedRecipients(e).map((function(e){return e.scopeId?e.scopeId.toString():e.recipientId&&e.recipientTypeId===a.E.Classroom?e.recipientId.toString():void 0}));return r.m.uniq(t.filter((function(e){return!!e})))},getClassroomIdFromShare:function(e){var t,n=null===(t=e.recipients)||void 0===t?void 0:t[0];if(n)return n.scopeId?n.scopeId.toString():n.recipientId&&n.recipientTypeId===a.E.Classroom?n.recipientId.toString():void 0},getClassroomForShare:function(e,t){var n=o.getClassroomIdFromShare(e);if(n)return t.find((function(e){return e.id.toString()===n.toString()}))}}},35829:(e,t,n)=>{n.r(t),n.d(t,{FlowSelectorView:()=>ce});var r=n(32735),a=n(39202),o=n(20354),i=n(75896),c=n(79145),s=n(91693),l=n(9111),u=n(31949),d=n(35223),m=n(99742),f=n(14070),p=n(97291),h=n(88630),v=n(93975),y=n(91574),g=n(72951),b=n(11607);const E={optionImage:"_uLZl"};function S(e){return r.createElement("div",{className:"bg-white rounded-bottom-3 p-3 d-flex flex-column gap-3 justify-content-center align-items-center"},r.createElement("h2",{className:"h6 m-0"},e.title),r.createElement("div",{className:"d-flex justify-content-center align-items-center gap-3"},e.options.map((function(t){return r.createElement(b.L,{onClick:function(){return e.onClick(t)},className:"text-center cursor-pointer p-3 border rounded-3 user-select-none w-50",key:t.id},r.createElement("img",{src:t.image,className:"img-fluid my-3 w-75 ".concat(E.optionImage),draggable:!1}),r.createElement("h4",null,t.title),r.createElement("p",{className:"mb-0 font-size-sm"},t.description))}))))}var w=n(42648),k=n(82602),x=n(65858),C=n(9806),N=n(12528),I=n(83914),O=n(54610);const L={previousSharesList:"LZvYG",previousSharesListItem:"LEwrl"};function j(e){return r.createElement("div",{className:"d-flex flex-column mt-3 border rounded overflow-hidden ".concat(L.previousSharesList)},r.createElement(w.ZP,{autoHeight:!0,autoHeightMin:0,autoHeightMax:200},e.data.shares.reverse().map((function(t){return r.createElement(b.L,{key:t.shareId,onClick:function(){return e.onClick(t)},className:"p-3 ".concat(L.previousSharesListItem)},r.createElement("div",{className:"row"},r.createElement("div",{className:"col-1 d-flex align-items-center"},r.createElement(C.k,{locationContext:x.LZ.PlayPage,object:e.data.entity,imageOptions:{size:O.h2.Small},thumbnailSize:"sm",showVideoMetadata:!1})),r.createElement("div",{className:"col-3 d-flex align-items-center"},r.createElement("span",{className:"clamp-2 align-self-center"},e.data.entity.name)),r.createElement("div",{className:"col-3 d-flex align-items-center"},function(t){var n,a;return t.type===v.y.Classroom?r.createElement("div",{className:"d-flex flex-row gap-1 align-items-center"},r.createElement("div",null,r.createElement(N.f,{variant:"teal",textVariant:"white",svgName:d.vn.Classrooms,svgSize:I.S.Standard,svgWrapperClassName:"p-1"})),r.createElement("span",{className:"ms-1"},null!==(a=null===(n=g.x.getClassroomForShare(t,e.data.classrooms))||void 0===n?void 0:n.name)&&void 0!==a?a:"Unknown")):t.type===v.y.Open?r.createElement("div",{className:"d-flex flex-row gap-1 align-items-center"},r.createElement("div",null,r.createElement(N.f,{variant:"blue",textVariant:"white",svgName:d.vn.School,svgSize:I.S.Standard,svgWrapperClassName:"p-1"})),r.createElement("span",{className:"ms-1"},"Open classroom")):void 0}(t)),r.createElement("p",{className:"mb-0 col-2 d-flex align-items-center"},t.viewCount||0," views"),r.createElement("p",{className:"mb-0 col-2 d-flex align-items-center"},(0,k.WU)(t.dateCreated)),r.createElement("div",{className:"col-1 d-flex align-items-center"},r.createElement("a",{onClick:function(){return e.onClick(t)},className:"cursor-pointer text-info"},"View"))))}))))}var T=n(13876),P=n(39151),A=n(80130);const _={searchInput:"udDMG"};function F(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function R(e){return e.classrooms.length?r.createElement("div",{className:"d-flex flex-column gap-2"},r.createElement("h3",{className:"h6 m-0"},"My Classrooms"),r.createElement("div",null,e.classrooms.map((function(t){var n,a,o,i,c=null!==(a=null===(n=t.enrolments)||void 0===n?void 0:n.count)&&void 0!==a?a:0;return r.createElement("div",{className:"d-flex align-items-center",key:t.id,onClick:function(){return e.onClassroomSelected(t)}},r.createElement("div",{className:"d-flex align-items-center bg-light-hover px-2 py-1 w-100 rounded gap-2 cursor-pointer justify-content-between"},r.createElement("div",{className:"w-100 d-flex align-items-center gap-2"},r.createElement(A.Z.Check,{type:"radio",name:"classroom-radio",id:"classroom-radio",className:"form-check",value:t.id,onChange:function(){return e.onClassroomSelected(t)},checked:t.id===(null===(o=e.selectedClassroom)||void 0===o?void 0:o.id)}),r.createElement("div",{className:"d-flex align-items-center gap-2"},r.createElement("div",null,r.createElement(N.f,{svgName:d.vn.Classrooms,svgSize:I.S.Standard,variant:"teal",textVariant:"white",svgWrapperClassName:"p-1"})),r.createElement("div",{className:"w-100"},r.createElement("label",{className:"m-0"},null==t?void 0:t.name),r.createElement("p",{className:"m-0 text-muted font-size-sm"},c," ",c>1?"students":"student")))),(null===(i=e.selectedClassroom)||void 0===i?void 0:i.id)===t.id&&r.createElement("div",{className:"d-flex align-items-center justify-content-end w-100"},r.createElement("a",{className:"cursor-pointer text-info",onClick:e.onSelectGroupsOrStudents},"Select specific groups or students"))))})))):r.createElement("div",{className:"d-flex flex-column gap-2 justify-content-center align-items-center"},r.createElement("img",{src:m.W.EmptyStates.Search.RESULTS,width:"30%",alt:"No results found"}),r.createElement("h4",{className:"h6 m-0"},'No results found for "',e.searchQuery,'"'),r.createElement("p",{className:"mb-0"},"Contact your school administrator to assign you to a classroom or ",r.createElement("a",{className:"p-0 text-info cursor-pointer",onClick:e.onClickCreateOpenClassroom},"create an Open classroom.")))}function M(e){var t,n,a=(t=r.useState(""),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,o,i,c=[],s=!0,l=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(r=o.call(n)).done)&&(c.push(r.value),c.length!==t);s=!0);}catch(e){l=!0,a=e}finally{try{if(!s&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(l)throw a}}return c}}(t,n)||function(e,t){if(e){if("string"==typeof e)return F(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?F(e,t):void 0}}(t,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),o=a[0],i=a[1],c=o?e.classrooms.filter((function(e){return e.name.toLowerCase().includes(o.toLowerCase())})):e.classrooms;return r.createElement("div",{className:"d-flex flex-column gap-3 ".concat(e.className," mb-3")},r.createElement("div",{className:"position-relative"},r.createElement("div",{className:"position-absolute top-50 start-0 translate-middle-y p-1"},r.createElement(I.x,{svgName:d.vn.Search,size:I.S.Standard})),r.createElement("input",{type:"text",placeholder:"Search for a classroom you teach",value:o,onChange:function(e){return i(e.target.value)},className:"form-control pe-1 py-2 border-dark ".concat(_.searchInput)})),r.createElement(R,{searchQuery:o,classrooms:c,selectedClassroom:e.selectedClassroom,onSelectGroupsOrStudents:e.onSelectGroupsOrStudents,onClassroomSelected:e.onClassroomSelected,onClickCreateOpenClassroom:e.onClickCreateOpenClassroom}))}var G=n(86995),V=n(93779),z=n(97408),D=n(89965),B=n(64818),H=n(82444);const U={avatarContainer:"CEbd9"};function q(e){return function(e){if(Array.isArray(e))return Z(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||$(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 W(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,o,i,c=[],s=!0,l=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(r=o.call(n)).done)&&(c.push(r.value),c.length!==t);s=!0);}catch(e){l=!0,a=e}finally{try{if(!s&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(l)throw a}}return c}}(e,t)||$(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function $(e,t){if(e){if("string"==typeof e)return Z(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Z(e,t):void 0}}function Z(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function J(e){return e.entities.length?r.createElement("div",{className:"d-flex flex-column"},e.entities.map((function(t){var n=e.selectedEntities.includes(t);return r.createElement(b.L,{key:t.id,className:"d-flex align-items-center bg-light-hover px-2 py-1 w-100 rounded gap-2 cursor-pointer justify-content-between",onClick:function(){return e.onSelectEntity(t)}},r.createElement("div",{className:"w-100 d-flex align-items-center"},r.createElement(D.X,{name:"classroom-group",id:"classroom-group",onChange:function(){return e.onSelectEntity(t)},checked:n}),r.createElement("div",{className:"d-flex align-items-center gap-2"},r.createElement("div",null,e.renderIcon?e.renderIcon(t):r.createElement(N.f,{svgName:d.vn.Group,svgSize:I.S.Standard,variant:"pink",textVariant:"white",svgWrapperClassName:"p-1"})),r.createElement("div",{className:"w-100"},e.renderTitle?e.renderTitle(t):r.createElement("label",{className:"m-0"},t.name)))))}))):r.createElement(r.Fragment,null,e.emptyState)}function Y(e){return e.length?e.map((function(e){return e.id})):[]}function K(e){var t=W(r.useState("all"),2),n=t[0],a=t[1],o=W(r.useState([]),2),i=o[0],c=o[1],l=W(r.useState([]),2),u=l[0],m=l[1],f=W(r.useState(!1),2),p=f[0],h=f[1],v=W(r.useState(!1),2),y=v[0],g=v[1],b=e.students.length,E="".concat(b," ").concat(b>1?"students":"student");return r.createElement("div",{className:"d-flex flex-column gap-3"},r.createElement(H.b,{onChangeClassroom:e.onChangeClassroom,selectedClassroom:e.classroom}),r.createElement("div",{className:"d-flex flex-column gap-3"},r.createElement("h3",{className:"h6 m-0"},"Share to ",E,":"),r.createElement("div",null,r.createElement(D.X,{id:"all",checked:"all"===n,label:"All ".concat(E),onChange:function(){a("all"),c([]),m([]),e.onChangeRecipients([])}}))),r.createElement("div",{className:"d-flex flex-column gap-2"},r.createElement("div",null,r.createElement("div",{className:"d-flex align-items-center justify-content-between"},r.createElement("h3",{className:"h6 m-0 p-0"},"Groups (",e.groups.length,")"),r.createElement(s.h,{svgName:p?d.vn.ChevronUp:d.vn.ChevronDown,onClick:function(){return h(!p)}})),p&&r.createElement(J,{entities:e.groups,selectedEntities:i,onSelectEntity:function(t){m([]);var n=q(i);i.includes(t)?n=i.filter((function(e){return e!==t})):n.push(t),n.length?a("groups"):a("all"),c(n),e.onChangeRecipients(Y(n))},emptyState:r.createElement("div",null,"No groups found.")})),r.createElement("div",null,r.createElement("div",{className:"d-flex align-items-center justify-content-between"},r.createElement("h3",{className:"h6 m-0 p-0"},"Students (",e.students.length,")"),r.createElement(s.h,{svgName:y?d.vn.ChevronUp:d.vn.ChevronDown,onClick:function(){return g(!y)}})),y&&r.createElement(J,{entities:e.students,selectedEntities:u,onSelectEntity:function(t){c([]);var n=q(u);u.includes(t)?n=u.filter((function(e){return e!==t})):n.push(t),n.length?a("students"):a("all"),m(n),e.onChangeRecipients(Y(n))},emptyState:r.createElement("div",null,"No students found."),renderTitle:function(e){return r.createElement("label",{className:"m-0"},B.l.getFullName(e))},renderIcon:function(t){var n;return r.createElement("div",{className:U.avatarContainer},r.createElement(z.q,{imageCdnUrl:e.imageCdnUrl,initials:B.l.getInitials(t.name,t.surname),imageUrl:null===(n=t.avatar)||void 0===n?void 0:n.url}))}}))))}function X(e){return X="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},X(e)}function Q(){Q=function(){return t};var e,t={},n=Object.prototype,r=n.hasOwnProperty,a=Object.defineProperty||function(e,t,n){e[t]=n.value},o="function"==typeof Symbol?Symbol:{},i=o.iterator||"@@iterator",c=o.asyncIterator||"@@asyncIterator",s=o.toStringTag||"@@toStringTag";function l(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{l({},"")}catch(e){l=function(e,t,n){return e[t]=n}}function u(e,t,n,r){var o=t&&t.prototype instanceof y?t:y,i=Object.create(o.prototype),c=new j(r||[]);return a(i,"_invoke",{value:N(e,n,c)}),i}function d(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}t.wrap=u;var m="suspendedStart",f="suspendedYield",p="executing",h="completed",v={};function y(){}function g(){}function b(){}var E={};l(E,i,(function(){return this}));var S=Object.getPrototypeOf,w=S&&S(S(T([])));w&&w!==n&&r.call(w,i)&&(E=w);var k=b.prototype=y.prototype=Object.create(E);function x(e){["next","throw","return"].forEach((function(t){l(e,t,(function(e){return this._invoke(t,e)}))}))}function C(e,t){function n(a,o,i,c){var s=d(e[a],e,o);if("throw"!==s.type){var l=s.arg,u=l.value;return u&&"object"==X(u)&&r.call(u,"__await")?t.resolve(u.__await).then((function(e){n("next",e,i,c)}),(function(e){n("throw",e,i,c)})):t.resolve(u).then((function(e){l.value=e,i(l)}),(function(e){return n("throw",e,i,c)}))}c(s.arg)}var o;a(this,"_invoke",{value:function(e,r){function a(){return new t((function(t,a){n(e,r,t,a)}))}return o=o?o.then(a,a):a()}})}function N(t,n,r){var a=m;return function(o,i){if(a===p)throw Error("Generator is already running");if(a===h){if("throw"===o)throw i;return{value:e,done:!0}}for(r.method=o,r.arg=i;;){var c=r.delegate;if(c){var s=I(c,r);if(s){if(s===v)continue;return s}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(a===m)throw a=h,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);a=p;var l=d(t,n,r);if("normal"===l.type){if(a=r.done?h:f,l.arg===v)continue;return{value:l.arg,done:r.done}}"throw"===l.type&&(a=h,r.method="throw",r.arg=l.arg)}}}function I(t,n){var r=n.method,a=t.iterator[r];if(a===e)return n.delegate=null,"throw"===r&&t.iterator.return&&(n.method="return",n.arg=e,I(t,n),"throw"===n.method)||"return"!==r&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+r+"' method")),v;var o=d(a,t.iterator,n.arg);if("throw"===o.type)return n.method="throw",n.arg=o.arg,n.delegate=null,v;var i=o.arg;return i?i.done?(n[t.resultName]=i.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,v):i:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,v)}function O(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function L(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function j(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(O,this),this.reset(!0)}function T(t){if(t||""===t){var n=t[i];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var a=-1,o=function n(){for(;++a<t.length;)if(r.call(t,a))return n.value=t[a],n.done=!1,n;return n.value=e,n.done=!0,n};return o.next=o}}throw new TypeError(X(t)+" is not iterable")}return g.prototype=b,a(k,"constructor",{value:b,configurable:!0}),a(b,"constructor",{value:g,configurable:!0}),g.displayName=l(b,s,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===g||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,b):(e.__proto__=b,l(e,s,"GeneratorFunction")),e.prototype=Object.create(k),e},t.awrap=function(e){return{__await:e}},x(C.prototype),l(C.prototype,c,(function(){return this})),t.AsyncIterator=C,t.async=function(e,n,r,a,o){void 0===o&&(o=Promise);var i=new C(u(e,n,r,a),o);return t.isGeneratorFunction(n)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},x(k),l(k,s,"Generator"),l(k,i,(function(){return this})),l(k,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),n=[];for(var r in t)n.push(r);return n.reverse(),function e(){for(;n.length;){var r=n.pop();if(r in t)return e.value=r,e.done=!1,e}return e.done=!0,e}},t.values=T,j.prototype={constructor:j,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(L),!t)for(var n in this)"t"===n.charAt(0)&&r.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var n=this;function a(r,a){return c.type="throw",c.arg=t,n.next=r,a&&(n.method="next",n.arg=e),!!a}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],c=i.completion;if("root"===i.tryLoc)return a("end");if(i.tryLoc<=this.prev){var s=r.call(i,"catchLoc"),l=r.call(i,"finallyLoc");if(s&&l){if(this.prev<i.catchLoc)return a(i.catchLoc,!0);if(this.prev<i.finallyLoc)return a(i.finallyLoc)}else if(s){if(this.prev<i.catchLoc)return a(i.catchLoc,!0)}else{if(!l)throw Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return a(i.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var a=this.tryEntries[n];if(a.tryLoc<=this.prev&&r.call(a,"finallyLoc")&&this.prev<a.finallyLoc){var o=a;break}}o&&("break"===e||"continue"===e)&&o.tryLoc<=t&&t<=o.finallyLoc&&(o=null);var i=o?o.completion:{};return i.type=e,i.arg=t,o?(this.method="next",this.next=o.finallyLoc,v):this.complete(i)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),v},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),L(n),v}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var a=r.arg;L(n)}return a}}throw Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:T(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),v}},t}function ee(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,o,i,c=[],s=!0,l=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(r=o.call(n)).done)&&(c.push(r.value),c.length!==t);s=!0);}catch(e){l=!0,a=e}finally{try{if(!s&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(l)throw a}}return c}}(e,t)||function(e,t){if(e){if("string"==typeof e)return te(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)?te(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function te(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 ne=function(e,t,n,r){return new(n||(n=Promise))((function(a,o){function i(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?a(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(i,c)}s((r=r.apply(e,t||[])).next())}))};function re(e){var t=ee(r.useState("select-classroom"),2),n=t[0],i=t[1],c=ee(r.useState(),2),s=c[0],d=c[1],m=ee(r.useState([]),2),v=m[0],y=m[1],g=ee(r.useState(!1),2),b=g[0],E=g[1],S=ee(r.useState(!1),2),w=S[0],k=S[1],x=ee(r.useState(""),2),C=x[0],N=x[1],I=ee(r.useState(!1),2),O=I[0],L=I[1],j=(0,V.t)(e.objectId).createDirectShare,A=o.a.useBasicFetch(u.N.currentUser()),_=o.a.useBasicFetch(A.data&&h.F.getPublishedWithStudents(A.data.id)),F=o.a.useBasicFetch(P.L.config()),R=o.a.useBasicFetch("narrow-selection"===n&&s&&h.F.getClassroomStudents(s.id)),z=o.a.useBasicFetch("narrow-selection"===n&&s&&h.F.getClassroomGroups(s.id));function D(){a.C$.trigger({application:p.O.SHARE_V2,action:f.e.ShareV2.OPEN_CLASSROOM,args:[e.objectId],params:{objectId:e.objectId,entityType:e.entityType}})}var B=!!A.data&&!!_.data&&!!F.data,H=!!z.data&&!!R.data,U="narrow-selection"===n?B&&H:B;return r.createElement(l.G,Object.assign({title:"Assign to ClickView classroom",showLoadingSpinner:!U,size:"lg",bodyClassName:"d-flex flex-column gap-3"},e),function(){var t,a,o,c,l,u;if(!B)return null;switch(n){case"select-classroom":return r.createElement(M,{classrooms:null!==(a=null===(t=_.data)||void 0===t?void 0:t.data)&&void 0!==a?a:[],selectedClassroom:s,onClassroomSelected:d,onSelectGroupsOrStudents:function(){return i("narrow-selection")},onClickCreateOpenClassroom:D});case"narrow-selection":return r.createElement(K,{imageCdnUrl:F.data.imageCdnUrl,students:null!==(c=null===(o=null==R?void 0:R.data)||void 0===o?void 0:o.data)&&void 0!==c?c:[],groups:null!==(u=null===(l=null==z?void 0:z.data)||void 0===l?void 0:l.data)&&void 0!==u?u:[],classroom:s,onChangeRecipients:function(e){return y(e)},onChangeClassroom:function(){return i("select-classroom")}});case"settings":return r.createElement(G.a,{type:"classroom",selectedClassroom:s,enableInstantFeedback:w,preventSkippingAhead:b,isInteractive:"interactive"===e.entityType,message:C,onTogglePreventSkippingAhead:function(){return E(!b)},onToggleEnableInstantFeedback:function(){return k(!w)},onChangeClassroom:function(){return i("select-classroom")},onChangeMessage:N})}}(),r.createElement(T.u,{className:"settings"===n?"justify-content-end":"justify-content-between"},"settings"!==n&&r.createElement(T.u.Submit,{variant:"link",onClick:function(){console.log("Creating a new classroom..")},text:"Create a new classroom",className:"text-info p-0"}),r.createElement("div",null,r.createElement(T.u.Cancel,{variant:"link",onClick:function(){"select-classroom"!==n?["narrow-selection","settings"].includes(n)&&i("select-classroom"):e.closePopup()},text:"Back"}),r.createElement(T.u.Submit,{variant:"dark",onClick:function(){s&&(["select-classroom","narrow-selection"].includes(n)?i("settings"):"settings"!==n||function(){ne(this,void 0,void 0,Q().mark((function t(){var n,r;return Q().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(s){t.next=2;break}return t.abrupt("return");case 2:return L(!0),t.next=5,j({objectId:e.objectId,preventShipping:b,instantFeedback:w,requireSignIn:!0,message:C,recipients:v.length?v:[null==s?void 0:s.id],scopeId:null==s?void 0:s.id});case 5:n=t.sent,r={video:f.e.Insights.VIDEO_SHARE_OPTIONS,clip:f.e.Insights.CLIP_SHARE_OPTIONS,interactive:f.e.Insights.INTERACTIVE_SHARE_OPTIONS,series:f.e.Insights.SERIES_SHARE_OPTIONS,playlist:f.e.Insights.PLAYLIST_SHARE_OPTIONS},a.C$.trigger({application:p.O.INSIGHTS,action:r[e.entityType],args:[e.objectId],params:{shareId:n.shareId}}),L(!1);case 9:case"end":return t.stop()}}),t)})))}())},text:"settings"===n?"Assign":"Next",disabled:!s,showSpinner:O}))))}var ae=n(6629);function oe(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,o,i,c=[],s=!0,l=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(r=o.call(n)).done)&&(c.push(r.value),c.length!==t);s=!0);}catch(e){l=!0,a=e}finally{try{if(!s&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(l)throw a}}return c}}(e,t)||function(e,t){if(e){if("string"==typeof e)return ie(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)?ie(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ie(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function ce(e){var t,n,b=oe(r.useState(""),2),E=b[0],w=b[1],k=oe(r.useState(!0),2),x=k[0],C=k[1],N=o.a.useBasicFetch(y.o.getSharesByObjectId(e.objectId)),I=(null===(t=N.data)||void 0===t?void 0:t.filter((function(e){return e.type===v.y.Classroom||e.type===v.y.Open})))||[],O=o.a.useBasicFetch(u.N.currentUser()),L=c.I.getFetchFunctionByType(e.entityType)(e.objectId,null===(n=O.data)||void 0===n?void 0:n.id),T=i.m.uniq(I.map(g.x.getClassroomIdFromShare).filter((function(e){return!!e}))),P=o.a.useBasicFetch(N.hasCompleted&&h.F.getClassroomsByIds(T));if("classroom"===E)return r.createElement(re,Object.assign({},e,{closePopup:function(){return w("")}}));if("session"===E)return r.createElement(ae.SessionFlowView,Object.assign({},e,{closePopup:function(){return w("")}}));var A=[{id:"classroom",title:"Require students to sign in",description:"Select a ClickView classroom and instantly add video to your students’ feed to collect data.",image:m.W.Share.CLASSROOM_SHARE},{id:"session",title:"Students don’t need to sign in",description:"Create an open classroom. Students enter a name to access the video and data will be collected.",image:m.W.Share.OPEN_CLASSROOM}],_=!!(O.data&&L.data&&N.data&&P.data);return r.createElement(l.G,{size:"lg",title:"Assign",showLoadingSpinner:!_,closePopup:e.closePopup,contentClassName:_?"bg-transparent border-0":"",bodyClassName:"p-0 d-flex flex-column gap-3"},_?r.createElement(r.Fragment,null,r.createElement(S,{title:"How do you want your students to access the video?",options:A,onClick:function(e){return w(e.id)}}),I.length?r.createElement("div",{className:"bg-white rounded-3 p-3"},r.createElement("div",{className:"d-flex align-items-center justify-content-between"},r.createElement("h3",{className:"h6 m-0 p-0"},"Previous assignments (",I.length,")"),r.createElement(s.h,{svgName:x?d.vn.ChevronUp:d.vn.ChevronDown,onClick:function(){return C(!x)}})),x&&r.createElement(j,{data:{shares:I,classrooms:P.data,entity:L.data},onClick:function(t){var n={video:f.e.Insights.VIDEO_SHARE_OPTIONS,clip:f.e.Insights.CLIP_SHARE_OPTIONS,interactive:f.e.Insights.INTERACTIVE_SHARE_OPTIONS,series:f.e.Insights.SERIES_SHARE_OPTIONS,playlist:f.e.Insights.PLAYLIST_SHARE_OPTIONS};a.C$.trigger({application:p.O.INSIGHTS,action:n[e.entityType],args:[e.objectId],params:{shareId:t.shareId}})}})):null):null)}},6629:(e,t,n)=>{n.r(t),n.d(t,{SessionFlowView:()=>v});var r=n(32735),a=n(39202),o=n(9111),i=n(13876),c=n(14070),s=n(97291),l=n(93779),u=n(86995);function d(e){return d="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},d(e)}function m(){m=function(){return t};var e,t={},n=Object.prototype,r=n.hasOwnProperty,a=Object.defineProperty||function(e,t,n){e[t]=n.value},o="function"==typeof Symbol?Symbol:{},i=o.iterator||"@@iterator",c=o.asyncIterator||"@@asyncIterator",s=o.toStringTag||"@@toStringTag";function l(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{l({},"")}catch(e){l=function(e,t,n){return e[t]=n}}function u(e,t,n,r){var o=t&&t.prototype instanceof b?t:b,i=Object.create(o.prototype),c=new P(r||[]);return a(i,"_invoke",{value:O(e,n,c)}),i}function f(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}t.wrap=u;var p="suspendedStart",h="suspendedYield",v="executing",y="completed",g={};function b(){}function E(){}function S(){}var w={};l(w,i,(function(){return this}));var k=Object.getPrototypeOf,x=k&&k(k(A([])));x&&x!==n&&r.call(x,i)&&(w=x);var C=S.prototype=b.prototype=Object.create(w);function N(e){["next","throw","return"].forEach((function(t){l(e,t,(function(e){return this._invoke(t,e)}))}))}function I(e,t){function n(a,o,i,c){var s=f(e[a],e,o);if("throw"!==s.type){var l=s.arg,u=l.value;return u&&"object"==d(u)&&r.call(u,"__await")?t.resolve(u.__await).then((function(e){n("next",e,i,c)}),(function(e){n("throw",e,i,c)})):t.resolve(u).then((function(e){l.value=e,i(l)}),(function(e){return n("throw",e,i,c)}))}c(s.arg)}var o;a(this,"_invoke",{value:function(e,r){function a(){return new t((function(t,a){n(e,r,t,a)}))}return o=o?o.then(a,a):a()}})}function O(t,n,r){var a=p;return function(o,i){if(a===v)throw Error("Generator is already running");if(a===y){if("throw"===o)throw i;return{value:e,done:!0}}for(r.method=o,r.arg=i;;){var c=r.delegate;if(c){var s=L(c,r);if(s){if(s===g)continue;return s}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(a===p)throw a=y,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);a=v;var l=f(t,n,r);if("normal"===l.type){if(a=r.done?y:h,l.arg===g)continue;return{value:l.arg,done:r.done}}"throw"===l.type&&(a=y,r.method="throw",r.arg=l.arg)}}}function L(t,n){var r=n.method,a=t.iterator[r];if(a===e)return n.delegate=null,"throw"===r&&t.iterator.return&&(n.method="return",n.arg=e,L(t,n),"throw"===n.method)||"return"!==r&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+r+"' method")),g;var o=f(a,t.iterator,n.arg);if("throw"===o.type)return n.method="throw",n.arg=o.arg,n.delegate=null,g;var i=o.arg;return i?i.done?(n[t.resultName]=i.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,g):i:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,g)}function j(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function T(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function P(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(j,this),this.reset(!0)}function A(t){if(t||""===t){var n=t[i];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var a=-1,o=function n(){for(;++a<t.length;)if(r.call(t,a))return n.value=t[a],n.done=!1,n;return n.value=e,n.done=!0,n};return o.next=o}}throw new TypeError(d(t)+" is not iterable")}return E.prototype=S,a(C,"constructor",{value:S,configurable:!0}),a(S,"constructor",{value:E,configurable:!0}),E.displayName=l(S,s,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===E||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,S):(e.__proto__=S,l(e,s,"GeneratorFunction")),e.prototype=Object.create(C),e},t.awrap=function(e){return{__await:e}},N(I.prototype),l(I.prototype,c,(function(){return this})),t.AsyncIterator=I,t.async=function(e,n,r,a,o){void 0===o&&(o=Promise);var i=new I(u(e,n,r,a),o);return t.isGeneratorFunction(n)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},N(C),l(C,s,"Generator"),l(C,i,(function(){return this})),l(C,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),n=[];for(var r in t)n.push(r);return n.reverse(),function e(){for(;n.length;){var r=n.pop();if(r in t)return e.value=r,e.done=!1,e}return e.done=!0,e}},t.values=A,P.prototype={constructor:P,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(T),!t)for(var n in this)"t"===n.charAt(0)&&r.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var n=this;function a(r,a){return c.type="throw",c.arg=t,n.next=r,a&&(n.method="next",n.arg=e),!!a}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],c=i.completion;if("root"===i.tryLoc)return a("end");if(i.tryLoc<=this.prev){var s=r.call(i,"catchLoc"),l=r.call(i,"finallyLoc");if(s&&l){if(this.prev<i.catchLoc)return a(i.catchLoc,!0);if(this.prev<i.finallyLoc)return a(i.finallyLoc)}else if(s){if(this.prev<i.catchLoc)return a(i.catchLoc,!0)}else{if(!l)throw Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return a(i.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var a=this.tryEntries[n];if(a.tryLoc<=this.prev&&r.call(a,"finallyLoc")&&this.prev<a.finallyLoc){var o=a;break}}o&&("break"===e||"continue"===e)&&o.tryLoc<=t&&t<=o.finallyLoc&&(o=null);var i=o?o.completion:{};return i.type=e,i.arg=t,o?(this.method="next",this.next=o.finallyLoc,g):this.complete(i)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),g},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),T(n),g}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var a=r.arg;T(n)}return a}}throw Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:A(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),g}},t}function f(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,o,i,c=[],s=!0,l=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(r=o.call(n)).done)&&(c.push(r.value),c.length!==t);s=!0);}catch(e){l=!0,a=e}finally{try{if(!s&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(l)throw a}}return c}}(e,t)||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}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function 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 h=function(e,t,n,r){return new(n||(n=Promise))((function(a,o){function i(e){try{s(r.next(e))}catch(e){o(e)}}function c(e){try{s(r.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?a(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(i,c)}s((r=r.apply(e,t||[])).next())}))};function v(e){var t=(0,l.t)(e.objectId).createOpenSession,n=f(r.useState(!1),2),d=n[0],p=n[1],v=f(r.useState(!1),2),y=v[0],g=v[1],b=f(r.useState(""),2),E=b[0],S=b[1],w=f(r.useState(!1),2),k=w[0],x=w[1];return r.createElement(o.G,Object.assign({title:"Assign to an Open classroom",showLoadingSpinner:!1,size:"lg",bodyClassName:"d-flex flex-column gap-3"},e),r.createElement(u.a,{type:"open-classroom",enableInstantFeedback:y,preventSkippingAhead:d,isInteractive:"interactive"===e.entityType,message:E,onTogglePreventSkippingAhead:function(){return p(!d)},onToggleEnableInstantFeedback:function(){return g(!y)},onChangeMessage:S}),r.createElement(i.u,null,r.createElement(i.u.Cancel,{variant:"link",onClick:function(){e.closePopup()},text:"Back"}),r.createElement(i.u.Submit,{variant:"dark",onClick:function(){return h(this,void 0,void 0,m().mark((function n(){var r,o;return m().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return x(!0),n.next=3,t({instantFeedback:y,preventSkipping:d,requireSignIn:!1,respectRatingsAndRestrictions:!1,objectId:e.objectId});case 3:r=n.sent,o={video:c.e.Insights.VIDEO_SHARE_OPTIONS,clip:c.e.Insights.CLIP_SHARE_OPTIONS,interactive:c.e.Insights.INTERACTIVE_SHARE_OPTIONS,series:c.e.Insights.SERIES_SHARE_OPTIONS,playlist:c.e.Insights.PLAYLIST_SHARE_OPTIONS},a.C$.trigger({application:s.O.INSIGHTS,action:o[e.entityType],args:[e.objectId],params:{shareId:r.shareId}});case 6:case"end":return n.stop()}}),n)})))},showSpinner:k,text:"Assign"})))}},82602:(e,t,n)=>{n.d(t,{WU:()=>l});var r=["second","minute","hour","day","week","month","year"],a=["秒","分钟","小时","天","周","个月","年"],o={},i=function(e,t){o[e]=t},c=[60,60,24,7,365/7/12,12];function s(e){return e instanceof Date?e:!isNaN(e)||/^\d+$/.test(e)?new Date(parseInt(e)):(e=(e||"").trim().replace(/\.\d+/,"").replace(/-/,"/").replace(/-/,"/").replace(/(\d)T(\d)/,"$1 $2").replace(/Z/," UTC").replace(/([+-]\d\d):?(\d\d)/," $1$2"),new Date(e))}var l=function(e,t,n){var r=function(e,t){return(+(t?s(t):new Date)-+s(e))/1e3}(e,n&&n.relativeDate);return function(e,t){for(var n=e<0?1:0,r=e=Math.abs(e),a=0;e>=c[a]&&a<c.length;a++)e/=c[a];return(e=Math.floor(e))>(0==(a*=2)?9:1)&&(a+=1),t(e,a,r)[n].replace("%s",e.toString())}(r,function(e){return o[e]||o.en_US}(t))};i("en_US",(function(e,t){if(0===t)return["just now","right now"];var n=r[Math.floor(t/2)];return e>1&&(n+="s"),[e+" "+n+" ago","in "+e+" "+n]})),i("zh_CN",(function(e,t){if(0===t)return["刚刚","片刻后"];var n=a[~~(t/2)];return[e+" "+n+"前",e+" "+n+"后"]}))}}]);
3
- //# sourceMappingURL=5829-82562ea6c2-lite.chunk.js.map