@clickview/lite 0.75.0-rc.9 → 0.75.0

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 (93) hide show
  1. package/dist/bundles.json +1 -1
  2. package/dist/css/{7103-lite-fef3024f61.chunk.css → 2878-lite-d8e0bf912a.chunk.css} +1 -1
  3. package/dist/css/{1243-lite-13eda8f6a0.chunk.css → 3615-lite-240342ff8e.chunk.css} +1 -1
  4. package/dist/css/{1867-lite-8baa8af02b.chunk.css → 4630-lite-0157b1c437.chunk.css} +1 -1
  5. package/dist/css/{4203-lite-9ffab89741.chunk.css → 8362-lite-10810fdef2.chunk.css} +1 -1
  6. package/dist/languages/en.json +1 -1
  7. package/dist/scripts/{104-7ee25cbbb8-lite.chunk.js → 104-da7394bcfa-lite.chunk.js} +2 -2
  8. package/dist/scripts/104-da7394bcfa-lite.chunk.js.map +1 -0
  9. package/dist/scripts/1192-bb27568f21-lite.chunk.js +2 -0
  10. package/dist/scripts/1192-bb27568f21-lite.chunk.js.map +1 -0
  11. package/dist/scripts/1199-cf2cb206b5-lite.chunk.js +2 -0
  12. package/dist/scripts/1199-cf2cb206b5-lite.chunk.js.map +1 -0
  13. package/dist/scripts/1502-9836df10cd-lite.chunk.js +2 -0
  14. package/dist/scripts/1502-9836df10cd-lite.chunk.js.map +1 -0
  15. package/dist/scripts/{1610-9ccecc428a-lite.chunk.js → 1610-0edaa98d40-lite.chunk.js} +2 -2
  16. package/dist/scripts/{1610-9ccecc428a-lite.chunk.js.map → 1610-0edaa98d40-lite.chunk.js.map} +1 -1
  17. package/dist/scripts/{7103-3b181ec69b-lite.chunk.js → 2878-487c4a8e1a-lite.chunk.js} +2 -2
  18. package/dist/scripts/2878-487c4a8e1a-lite.chunk.js.map +1 -0
  19. package/dist/scripts/{3057-1ae8087b3a-lite.chunk.js → 3057-a5bc753736-lite.chunk.js} +1 -1
  20. package/dist/scripts/{3057-1ae8087b3a-lite.chunk.js.map → 3057-a5bc753736-lite.chunk.js.map} +1 -1
  21. package/dist/scripts/3268-7be966dc82-lite.chunk.js +3 -0
  22. package/dist/scripts/3268-7be966dc82-lite.chunk.js.map +1 -0
  23. package/dist/scripts/{1243-72f3d31787-lite.chunk.js → 3615-a0da361aa5-lite.chunk.js} +2 -2
  24. package/dist/scripts/3615-a0da361aa5-lite.chunk.js.map +1 -0
  25. package/dist/scripts/{3872-6fe7371d39-lite.chunk.js → 3872-cf9a6bdae8-lite.chunk.js} +1 -1
  26. package/dist/scripts/{3872-6fe7371d39-lite.chunk.js.map → 3872-cf9a6bdae8-lite.chunk.js.map} +1 -1
  27. package/dist/scripts/4125-6d34b8b8f2-lite.chunk.js +2 -0
  28. package/dist/scripts/4125-6d34b8b8f2-lite.chunk.js.map +1 -0
  29. package/dist/scripts/4598-e25e9e03d6-lite.chunk.js +2 -0
  30. package/dist/scripts/4598-e25e9e03d6-lite.chunk.js.map +1 -0
  31. package/dist/scripts/{1867-0823a787c3-lite.chunk.js → 4630-4a35ecbf2b-lite.chunk.js} +2 -2
  32. package/dist/scripts/4630-4a35ecbf2b-lite.chunk.js.map +1 -0
  33. package/dist/scripts/6475-f019242ec2-lite.chunk.js +2 -0
  34. package/dist/scripts/6475-f019242ec2-lite.chunk.js.map +1 -0
  35. package/dist/scripts/{6695-4e01b4a18c-lite.chunk.js → 6695-4ae0acad94-lite.chunk.js} +1 -1
  36. package/dist/scripts/{6695-4e01b4a18c-lite.chunk.js.map → 6695-4ae0acad94-lite.chunk.js.map} +1 -1
  37. package/dist/scripts/6756-3c7f911759-lite.chunk.js +3 -0
  38. package/dist/scripts/6756-3c7f911759-lite.chunk.js.map +1 -0
  39. package/dist/scripts/6790-1695fcf576-lite.chunk.js +2 -0
  40. package/dist/scripts/6790-1695fcf576-lite.chunk.js.map +1 -0
  41. package/dist/scripts/7438-35b887a48e-lite.chunk.js +2 -0
  42. package/dist/scripts/7438-35b887a48e-lite.chunk.js.map +1 -0
  43. package/dist/scripts/{8323-d6d1d07ce5-lite.chunk.js → 8323-5694456903-lite.chunk.js} +2 -2
  44. package/dist/scripts/{8323-d6d1d07ce5-lite.chunk.js.map → 8323-5694456903-lite.chunk.js.map} +1 -1
  45. package/dist/scripts/{4203-83f90f92f3-lite.chunk.js → 8362-ed5df8f4fc-lite.chunk.js} +3 -3
  46. package/dist/scripts/8362-ed5df8f4fc-lite.chunk.js.LICENSE.txt +1 -0
  47. package/dist/scripts/{4203-83f90f92f3-lite.chunk.js.map → 8362-ed5df8f4fc-lite.chunk.js.map} +1 -1
  48. package/dist/scripts/{8732-3e8332e620-lite.chunk.js → 8732-dc5182fb69-lite.chunk.js} +1 -1
  49. package/dist/scripts/{8732-3e8332e620-lite.chunk.js.map → 8732-dc5182fb69-lite.chunk.js.map} +1 -1
  50. package/dist/scripts/8856-08061bbec5-lite.chunk.js +2 -0
  51. package/dist/scripts/8856-08061bbec5-lite.chunk.js.map +1 -0
  52. package/dist/scripts/{8957-bc83ea1180-lite.chunk.js → 8957-b3f0dbb85d-lite.chunk.js} +1 -1
  53. package/dist/scripts/{8957-bc83ea1180-lite.chunk.js.map → 8957-b3f0dbb85d-lite.chunk.js.map} +1 -1
  54. package/dist/scripts/{9042-544d97a05d-lite.chunk.js → 9042-7c30ffd4f0-lite.chunk.js} +2 -2
  55. package/dist/scripts/9042-7c30ffd4f0-lite.chunk.js.map +1 -0
  56. package/dist/scripts/9134-b0ae877597-lite.chunk.js +2 -0
  57. package/dist/scripts/9134-b0ae877597-lite.chunk.js.map +1 -0
  58. package/dist/scripts/{bundle-cf4c360278.min.js → bundle-941a464ef0.min.js} +3 -3
  59. package/dist/scripts/{bundle-cf4c360278.min.js.map → bundle-941a464ef0.min.js.map} +1 -1
  60. package/package.json +1 -1
  61. package/dist/scripts/104-7ee25cbbb8-lite.chunk.js.map +0 -1
  62. package/dist/scripts/1074-6dadbd8187-lite.chunk.js +0 -2
  63. package/dist/scripts/1074-6dadbd8187-lite.chunk.js.map +0 -1
  64. package/dist/scripts/1192-6ac54d734b-lite.chunk.js +0 -2
  65. package/dist/scripts/1192-6ac54d734b-lite.chunk.js.map +0 -1
  66. package/dist/scripts/1199-dc45a88be8-lite.chunk.js +0 -2
  67. package/dist/scripts/1199-dc45a88be8-lite.chunk.js.map +0 -1
  68. package/dist/scripts/1243-72f3d31787-lite.chunk.js.map +0 -1
  69. package/dist/scripts/1867-0823a787c3-lite.chunk.js.map +0 -1
  70. package/dist/scripts/3268-aa893d0068-lite.chunk.js +0 -2
  71. package/dist/scripts/3268-aa893d0068-lite.chunk.js.map +0 -1
  72. package/dist/scripts/4598-f5120153c2-lite.chunk.js +0 -2
  73. package/dist/scripts/4598-f5120153c2-lite.chunk.js.map +0 -1
  74. package/dist/scripts/6475-502e390010-lite.chunk.js +0 -2
  75. package/dist/scripts/6475-502e390010-lite.chunk.js.map +0 -1
  76. package/dist/scripts/6756-20c0ab9591-lite.chunk.js +0 -3
  77. package/dist/scripts/6756-20c0ab9591-lite.chunk.js.map +0 -1
  78. package/dist/scripts/6790-df00506bec-lite.chunk.js +0 -2
  79. package/dist/scripts/6790-df00506bec-lite.chunk.js.map +0 -1
  80. package/dist/scripts/7103-3b181ec69b-lite.chunk.js.map +0 -1
  81. package/dist/scripts/7438-1162aba8b6-lite.chunk.js +0 -2
  82. package/dist/scripts/7438-1162aba8b6-lite.chunk.js.map +0 -1
  83. package/dist/scripts/8856-361fe76b7a-lite.chunk.js +0 -2
  84. package/dist/scripts/8856-361fe76b7a-lite.chunk.js.map +0 -1
  85. package/dist/scripts/9003-36ab592cc5-lite.chunk.js +0 -2
  86. package/dist/scripts/9003-36ab592cc5-lite.chunk.js.map +0 -1
  87. package/dist/scripts/9042-544d97a05d-lite.chunk.js.map +0 -1
  88. package/dist/scripts/9134-7037c2c47a-lite.chunk.js +0 -2
  89. package/dist/scripts/9134-7037c2c47a-lite.chunk.js.map +0 -1
  90. /package/dist/scripts/{4203-83f90f92f3-lite.chunk.js.LICENSE.txt → 3268-7be966dc82-lite.chunk.js.LICENSE.txt} +0 -0
  91. /package/dist/scripts/{6756-20c0ab9591-lite.chunk.js.LICENSE.txt → 6756-3c7f911759-lite.chunk.js.LICENSE.txt} +0 -0
  92. /package/dist/scripts/{8323-d6d1d07ce5-lite.chunk.js.LICENSE.txt → 8323-5694456903-lite.chunk.js.LICENSE.txt} +0 -0
  93. /package/dist/scripts/{bundle-cf4c360278.min.js.LICENSE.txt → bundle-941a464ef0.min.js.LICENSE.txt} +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@clickview/lite",
3
- "version": "0.75.0-rc.9",
3
+ "version": "0.75.0",
4
4
  "description": "ClickView Lite",
5
5
  "main": "dist/scripts/bundle.js",
6
6
  "types": "dist/projects/lite/src/index.d.ts",
@@ -1 +0,0 @@
1
- {"version":3,"file":"scripts/104-7ee25cbbb8-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/apps/share-v2/enums/SharePrivacy.ts","file:///app/packages/libs/shared/src/apps/share-v2/enums/ShareType.ts","file:///app/packages/libs/shared/src/apps/share-v2/flight-requests/ShareRequests.ts","file:///app/packages/libs/shared/src/apps/share-v2/utils/ShareHelper.ts","file:///app/packages/libs/shared/src/apps/share-v2/utils/ShareViewHelper.tsx","file:///app/packages/projects/lite/src/apps/assign/components/flow-controls/FlowControls.tsx","file:///app/packages/projects/lite/src/apps/assign/hooks/useAssignSharedData.ts","file:///app/packages/projects/lite/src/shared/utils/ObjectAppLinkHelper.ts"],"sourcesContent":["export enum SharePrivacy {\n Public = 'Public',\n PinCode = 'PinCode',\n PasswordProtected = 'PasswordProtected',\n ProtectedOverrideRestriction = 'ProtectedOverrideRestriction',\n JustMySchoolOverrideRestriction = 'JustMySchoolOverrideRestriction',\n Protected = 'Protected',\n JustMySchool = 'JustMySchool',\n Direct = 'Direct'\n}","export enum ShareType {\n Link = 'Link',\n Classroom = 'Classroom',\n Open = 'Open',\n Live = 'Live',\n LegacyDirect = 'LegacyDirect',\n}","import { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/flight';\n\nimport { ShareType } from 'libs/shared/apps/share-v2/enums/ShareType';\nimport { CreateShareLinkRequest } from 'libs/shared/apps/share-v2/interfaces/CreateShareLinkRequest';\nimport { CreateShareRequest } from 'libs/shared/apps/share-v2/interfaces/CreateShareRequest';\nimport { UpdateShareRequest } from 'libs/shared/apps/share-v2/interfaces/UpdateShareRequest';\n\nconst normalizeOptions: Flight.NormalizeOptions = {\n namespace: 'share-v2'\n};\n\nexport interface GetSentSharesParams {\n cursor?: string;\n scopeId?: string;\n objectTypeId?: number;\n type?: ShareType[];\n}\n\nexport const ShareRequests = {\n createShare(\n data: CreateShareRequest\n ): Flight.Request {\n return {\n url: '{gateway}/v2/shares',\n key: 'create:share-v2',\n type: HttpVerbs.POST,\n data,\n normalizeOptions,\n invalidationKeys: [ 'sent:share-v2', 'get:share-v2:shares:object' ]\n };\n },\n\n updateShare(\n shareId: string,\n data: UpdateShareRequest\n ): Flight.Request {\n return {\n url: `{gateway}/v2/shares/${shareId}`,\n key: `update:share-v2`,\n type: HttpVerbs.PUT,\n data,\n normalizeOptions,\n invalidationKeys: [ 'share-v2:permanent-link:object', `share-v2:${shareId}`, 'get:share-v2:shares:object' ]\n };\n },\n \n deleteShare(\n shareId: string\n ): Flight.Request {\n return {\n type: HttpVerbs.DELETE,\n url: `{gateway}/v2/shares/${shareId}`,\n key: `delete:share-v2`,\n normalizeOptions,\n invalidationKeys: [ 'share-v2:permanent-link:object', 'sent:share-v2', `share-v2:${shareId}`, 'get:share-v2:shares:object' ]\n };\n },\n\n getShare(\n shareId: string\n ): Flight.Request {\n return {\n url: `{gateway}/v2/shares/${shareId}`,\n key: `share-v2:${shareId}`,\n bootstrapName: `share-v2:${shareId}`,\n type: HttpVerbs.GET,\n normalizeOptions\n };\n },\n\n getSentShares(\n params: GetSentSharesParams = {}\n ): Flight.Request {\n const key = Object.values(params).sort().join(':');\n\n return {\n url: UrlHelper.urlBuilder('{gateway}/v2/shares/sent', params),\n key: `sent:share-v2:${key}`,\n type: HttpVerbs.GET,\n normalize: false\n };\n },\n\n getShareLink(\n id: string\n ): Flight.Request {\n return {\n url: UrlHelper.urlBuilder('{gateway}/v2/shares/permanent-link', { objectId: id }),\n key: `share-v2:permanent-link:object:${id}`,\n normalizeOptions\n };\n },\n\n createShareLink(\n data: CreateShareLinkRequest\n ): Flight.Request {\n return {\n type: HttpVerbs.POST,\n url: UrlHelper.urlBuilder('{gateway}/v2/shares/permanent-link', { ...data }),\n key: `create:share-v2:permanent-link:object:${data.objectId}`,\n invalidationKeys: [ `share-v2:permanent-link:object:${data.objectId}`, 'sent:share-v2', `get:share-v2:shares:object:${data.objectId}` ],\n normalizeOptions\n };\n },\n\n getPrivacy(id: string): Flight.Request {\n return {\n url: `{gateway}/v1/objects/${id}/access`,\n key: `privacy:${id}`,\n normalize: false\n };\n },\n \n getSharesByObjectId(\n objectId: string | number\n ): Flight.Request {\n return {\n url: `{gateway}/v2/shares/objects/${objectId}`,\n key: `get:share-v2:shares:object:${objectId}`,\n type: HttpVerbs.GET,\n normalizeOptions\n };\n },\n\n createSharePincode(shareId: string): Flight.Request {\n return {\n url: `{gateway}/v2/shares/${shareId}/pincode`,\n key: `create:share-v2:${shareId}:pincode`,\n type: HttpVerbs.POST\n };\n },\n\n getPincodeByShareId(shareId: string): Flight.Request {\n return {\n url: `{gateway}/v2/shares/${shareId}/pincode`,\n key: `get:share-v2:${shareId}:pincode`\n };\n },\n\n getPincodeByCode(code: string): Flight.Request {\n return {\n url: `{gateway}/v2/shares/pincode?code=${code}`,\n key: `get:share-v2:pincode:${code}`\n };\n }\n};\n","import { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { Share } from 'libs/shared/apps/share-v2/interfaces/Share';\nimport { ShareRecipient } from 'libs/shared/apps/share-v2/interfaces/ShareRecipient';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { Classroom } from 'libs/shared/interfaces';\n\nexport const ShareHelper = {\n getFlattenedRecipients(shares: Share[]): ShareRecipient[] {\n return ArrayHelper.flatten(shares.map(s => s.recipients ?? []));\n },\n\n getFlattenedUniqueScopes(shares: Share[]): string[] {\n const recipients = ShareHelper.getFlattenedRecipients(shares);\n return ArrayHelper.uniq(recipients.map(r => r.scopeId?.toString())).filter(x => !!x);\n },\n \n getClassroomIdFromShare(share: Share): string | undefined {\n const firstRecipient = share.recipients?.[0];\n \n if (!firstRecipient) return;\n \n if (firstRecipient.scopeId)\n return firstRecipient.scopeId.toString();\n \n if (firstRecipient.recipientId && firstRecipient.recipientTypeId === MasterType.Classroom)\n return firstRecipient.recipientId.toString();\n },\n\n getClassroomForShare(share: Share, classrooms: Classroom[]): Classroom | undefined {\n const classroomId = ShareHelper.getClassroomIdFromShare(share);\n \n if (!classroomId) return;\n \n return classrooms.find(classroom => classroom.id.toString() === classroomId.toString());\n },\n\n getRecipientsCount(share: Share, type?: MasterType.ClassroomGroup | MasterType.User): number {\n if (!type) return share.recipients?.length ?? 0;\n \n return share.recipients?.filter(r => r.recipientTypeId === type).length ?? 0;\n },\n\n hasShareExpired(share: Share): boolean {\n if (share.expireDate) {\n const now = new Date();\n const expireDate = new Date(share.expireDate);\n\n if (DateHelper.isAfter(now, expireDate))\n return true;\n }\n\n return false;\n },\n\n calculateDaysToExpiry(share: Share): number | undefined {\n if (!share.expireDate) return;\n\n const remainingDays = DateHelper.diffBetween(new Date(share.expireDate), new Date(), 'day') || 1;\n const smartCount = remainingDays === 0 ? 1 : remainingDays; // Prevent zero count\n\n return smartCount;\n },\n\n getShareLocalExpiry(share: Share, format: string): string | null {\n if (!share.expireDate)\n return null;\n \n const localDate = DateHelper.convertUTCToLocal(share.expireDate);\n return DateHelper.format(localDate, format);\n }\n};","import { AnalyticsOptions, EntityType } from 'libs/analytics/interfaces';\n\nimport { ShareViewHelper as OldShareViewHelper } from 'libs/shared/apps/share/views/share/ShareViewHelper';\nimport type { Share } from 'libs/shared/apps/share-v2/interfaces/Share';\nimport { IntegrationId } from 'libs/shared/enums/IntegrationId';\nimport type { Clip, Interactive, InteractiveMetadata, Playlist, Series, Subject, Video } from 'libs/shared/interfaces';\nimport { IntegrationHelper } from 'libs/shared/utils/IntegrationHelper';\n\nexport type SharableEntityType = 'video' | 'playlist' | 'subject' | 'series' | 'interactive' | 'clip';\nexport type SharableEntity = Video | Playlist | Subject | Series | InteractiveMetadata | Clip;\nexport interface ShareSettingsFormFields {\n preventScrubbing: boolean;\n immediateFeedback: boolean;\n}\n\nexport const ShareViewHelper = {\n canEmbed(type: SharableEntityType): boolean {\n return [ 'video', 'interactive', 'clip' ].includes(type);\n },\n\n /**\n * Only interactive entities can update share settings currently\n */\n canAddPolicies(type: SharableEntityType): boolean {\n return ['interactive'].includes(type);\n },\n\n getEnabledIntegrations(googleClassroomSetting: boolean, msftTeamsSetting: boolean): IntegrationId[] {\n const integrations = IntegrationHelper.getShareIntegrations(googleClassroomSetting, msftTeamsSetting);\n return integrations.filter(i => i.enabled).map(i => i.id);\n },\n\n getShareSettingsInitialValues(share: Share, interactive: Interactive | null) {\n return {\n preventScrubbing: share?.options?.preventScrubbing ?? interactive?.preventScrubbing ?? false,\n immediateFeedback: share?.options?.immediateFeedback ?? interactive?.immediateFeedback ?? false\n };\n },\n \n getEnabledSettingsField(entityType: SharableEntityType): {[key in `show${Capitalize<keyof ShareSettingsFormFields>}Field`]: boolean} {\n return {\n showImmediateFeedbackField: entityType === 'interactive',\n showPreventScrubbingField: entityType === 'interactive'\n };\n },\n\n /**\n * Methods from old ShareViewHelper imported here for namespacing\n */\n getFetchFunctionByType: (type: SharableEntityType) => {\n return OldShareViewHelper.getFetchFunctionByType(type);\n },\n\n getAnalyticsEntity(entityType: string): EntityType {\n return OldShareViewHelper.getAnalyticsEntity(entityType);\n },\n\n getAnalyticsOptions(entityType: SharableEntityType): AnalyticsOptions {\n return OldShareViewHelper.getAnalyticsOptions(entityType);\n }\n};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\n\nconst namespace = 'assign.flowControls';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface FlowControlsProps {\n showSpinner?: boolean;\n hideNextButton?: boolean;\n hideBackButton?: boolean;\n disableNextButton?: boolean;\n disableBackButton?: boolean;\n backButtonText?: string;\n hideCreateClassroomButton?: boolean;\n nextButtonText?: string;\n nextButtonTooltip?: string;\n onClickNext?: () => void;\n onClickBack?: () => void;\n onClickCreateClassroom?: () => void;\n leftComponent?: JSX.Element;\n}\n\nexport function FlowControls(props: FlowControlsProps): JSX.Element {\n const hideBackButton = props.hideBackButton || !props.onClickBack;\n const hideNextButton = props.hideNextButton || !props.onClickNext;\n const hideCreateClassroomButton = props.hideCreateClassroomButton || !props.onClickCreateClassroom;\n \n if (hideBackButton && hideNextButton && hideCreateClassroomButton)\n return <></>;\n \n return (\n <PopupButtons className='justify-content-between'>\n <div>\n {!!props.leftComponent && props.leftComponent}\n {!hideCreateClassroomButton && (\n <PopupButtons.Submit variant='link' onClick={props.onClickCreateClassroom} text={getPhrase('createClassroom')} className='text-info p-0' />\n )}\n </div>\n <div className='d-flex'>\n {!hideBackButton && (\n <PopupButtons.Cancel variant='link' onClick={props.onClickBack} text={props.backButtonText || getPhrase('back')} />\n )}\n {!hideNextButton && (\n <Tooltip title={props.nextButtonTooltip} disable={!props.nextButtonTooltip} placement='top' spanHack>\n <PopupButtons.Submit\n variant='dark'\n onClick={props.onClickNext}\n text={props.nextButtonText || getPhrase('next')}\n disabled={props.disableNextButton}\n showSpinner={props.showSpinner}\n />\n </Tooltip>\n )}\n </div>\n </PopupButtons>\n );\n}","import { Flight } from 'libs/common/react/index';\n\nimport { SharableEntityType, ShareViewHelper } from 'libs/shared/apps/share-v2/utils/ShareViewHelper';\nimport { MasterType } from 'libs/shared/enums/MasterType';\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 { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { Config, CurrentUser, Interactive, InteractiveMetadata } from 'libs/shared/interfaces';\nimport { MasterTypeHelper } from 'libs/shared/utils/MasterTypeHelper';\n\nexport interface UseAssignSharedDataOptions {\n objectId: string;\n entityType: SharableEntityType;\n}\n\nexport function useAssignSharedData(options: UseAssignSharedDataOptions) {\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const entity = ShareViewHelper.getFetchFunctionByType(options.entityType)(options.objectId, currentUser.data?.id);\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n\n /**\n * Fetch interactive videos options to set them as defaults\n * if the interactive share data does not have any options set.\n * We only fetch this if its an interactive share entity\n */\n const interactive = Flight.useBasicFetch<Interactive>(\n MasterTypeHelper.isType<InteractiveMetadata>(entity.data, MasterType.Interactive) && entity.data.interactiveId &&\n InteractiveRequests.interactive(entity.data.interactiveId)\n );\n\n const { hasPermissions, isLoaded } = usePermissions();\n\n const hasStudentExp = hasPermissions(PermissionName.StudentExperience);\n const canCreateClassrooms = hasPermissions(PermissionName.CreateClassrooms);\n \n const dataLoaded = (\n !!currentUser.data &&\n !!entity.data &&\n !!config.data &&\n !!isLoaded\n );\n \n return {\n loaded: dataLoaded,\n currentUser,\n entity,\n interactive,\n config,\n hasStudentExp,\n canCreateClassrooms\n };\n}","import { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { SharableEntityType } from 'libs/shared/apps/share/views/share/ShareViewHelper';\nimport { ShareType } from 'libs/shared/apps/share-v2/enums/ShareType';\nimport { Share } from 'libs/shared/apps/share-v2/interfaces/Share';\nimport { ShareHelper } from 'libs/shared/apps/share-v2/utils/ShareHelper';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { BaseObject, Series } from 'libs/shared/interfaces';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nimport { AssignAppLinkHelper } from 'apps/assign/utils/AssignAppLinkHelper';\nimport { SeriesAppLinkHelper } from 'apps/series/SeriesAppLinkHelper';\n\nconst namespace = 'shared.utils';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst INSIGHTS_WHITELIST = [\n MasterType.Video,\n MasterType.Clip,\n MasterType.Interactive\n];\n\nexport function getObjectAppLink(object: BaseObject): Core.AppLink {\n if (VideoHelper.isInteractive(object)) {\n return {\n application: AppChannels.INTERACTIVES,\n action: Actions.Interactives.VIEW_INTERACTIVE,\n args: [ object.id, TextHelper.slugify(object.name) ]\n };\n }\n\n if (VideoHelper.isClip(object)) {\n return {\n application: AppChannels.CLIPS,\n action: Actions.Clips.PLAY_CLIP,\n args: [ object.id, TextHelper.slugify(object.name) ]\n };\n }\n\n if (VideoHelper.isVideo(object)) {\n return {\n application: AppChannels.VIDEOS,\n action: Actions.Videos.PLAY_VIDEO,\n args: [ object.id, TextHelper.slugify(object.name) ]\n };\n }\n\n if (object.typeId === MasterType.Playlist) {\n return {\n application: AppChannels.PLAYLISTS,\n action: Actions.Playlists.PLAYLIST,\n args: [ object.id, TextHelper.slugify(object.name) ]\n };\n }\n\n if (object.typeId === MasterType.Series) {\n return SeriesAppLinkHelper.getSeriesAppLink(object as Series);\n }\n}\n\nexport function getInsightsOverviewAppLink(share: Share, params?: HashObject): Core.AppLink {\n if (!share)\n return null;\n\n if (!INSIGHTS_WHITELIST.includes(share.objectTypeId))\n return getObjectAppLink({ id: share.objectId.toString(), typeId: share.objectTypeId });\n\n if (share.type === ShareType.Classroom) {\n const classroomId = ShareHelper.getClassroomIdFromShare(share);\n\n return {\n application: AppChannels.CLASSROOMS,\n action: Actions.Classrooms.INSIGHTS_OVERVIEW,\n args: [ classroomId, share.shareId ],\n params\n };\n }\n\n if (share.type === ShareType.Open) {\n return {\n application: AppChannels.CLASSROOMS,\n action: Actions.Classrooms.OPEN_CLASSROOM_INSIGHTS_OVERVIEW,\n args: [share.shareId],\n params\n };\n }\n\n return {\n application: AppChannels.MY_SHARES,\n action: Actions.MyShares.INSIGHTS_OVERVIEW,\n args: [share.shareId],\n params\n };\n}\n\nexport function getInsightsHeatmapAppLink(share: Share, params?: HashObject): Core.AppLink {\n if (!share)\n return null;\n\n if (!INSIGHTS_WHITELIST.includes(share.objectTypeId))\n return getObjectAppLink({ id: share.objectId.toString(), typeId: share.objectTypeId });\n\n if (share.type === ShareType.Classroom) {\n const classroomId = ShareHelper.getClassroomIdFromShare(share);\n\n return {\n application: AppChannels.CLASSROOMS,\n action: Actions.Classrooms.INSIGHTS_HEATMAP,\n args: [ classroomId, share.shareId ],\n params\n };\n }\n\n if (share.type === ShareType.Open) {\n return {\n application: AppChannels.CLASSROOMS,\n action: Actions.Classrooms.OPEN_CLASSROOM_INSIGHTS_HEATMAP,\n args: [share.shareId],\n params\n };\n }\n\n return {\n application: AppChannels.MY_SHARES,\n action: Actions.MyShares.INSIGHTS_HEATMAP,\n args: [share.shareId],\n params\n };\n}\n\nexport function getInsightsQuestionsAppLink(share: Share, params?: HashObject): Core.AppLink {\n if (!share)\n return null;\n\n if (!INSIGHTS_WHITELIST.includes(share.objectTypeId))\n return getObjectAppLink({ id: share.objectId.toString(), typeId: share.objectTypeId });\n\n if (share.type === ShareType.Classroom) {\n const classroomId = ShareHelper.getClassroomIdFromShare(share);\n\n return {\n application: AppChannels.CLASSROOMS,\n action: Actions.Classrooms.INSIGHTS_QUESTIONS,\n args: [ classroomId, share.shareId ],\n params\n };\n }\n\n if (share.type === ShareType.Open) {\n return {\n application: AppChannels.CLASSROOMS,\n action: Actions.Classrooms.OPEN_CLASSROOM_INSIGHTS_QUESTIONS,\n args: [share.shareId],\n params\n };\n }\n\n return {\n application: AppChannels.MY_SHARES,\n action: Actions.MyShares.INSIGHTS_QUESTIONS,\n args: [share.shareId],\n params\n };\n}\n\nexport function getInsightsStudentsAppLink(share: Share, params?: HashObject): Core.AppLink {\n if (!share)\n return null;\n \n if (!INSIGHTS_WHITELIST.includes(share.objectTypeId))\n return getObjectAppLink({ id: share.objectId.toString(), typeId: share.objectTypeId });\n\n if (share.type === ShareType.Classroom) {\n const classroomId = ShareHelper.getClassroomIdFromShare(share);\n\n return {\n application: AppChannels.CLASSROOMS,\n action: Actions.Classrooms.INSIGHTS_STUDENTS,\n args: [ classroomId, share.shareId ],\n params\n };\n }\n\n if (share.type === ShareType.Open) {\n return {\n application: AppChannels.CLASSROOMS,\n action: Actions.Classrooms.OPEN_CLASSROOM_INSIGHTS_STUDENTS,\n args: [share.shareId],\n params\n };\n }\n\n return {\n application: AppChannels.MY_SHARES,\n action: Actions.MyShares.INSIGHTS_STUDENTS,\n args: [share.shareId],\n params\n };\n}\n\nexport function getShareOptionsAppLink(share: Share): Core.AppLink {\n if (!share) return;\n\n const entityType = getSharableEntityType(share);\n\n if (share.type === ShareType.Link) {\n return {\n application: AppChannels.SHARE,\n action: Actions.Share.SHARE,\n args: [share.objectId],\n params: { entityType }\n };\n }\n\n return AssignAppLinkHelper.assignDetails({\n objectId: share.objectId.toString(),\n shareId: share.shareId,\n entityType,\n detailsTitle: getPhrase('shareOptions')\n });\n}\n\nexport function getDeleteShareAppLink(share: Share): Core.AppLink {\n if (!share) return;\n\n const entityType = getSharableEntityType(share);\n\n if (share.type === ShareType.Link) {\n return {\n application: AppChannels.SHARE,\n action: Actions.Share.DELETE_SHARE_LINK,\n args: [share.objectId],\n params: {\n entityType,\n previousAppLink: {\n application: AppChannels.MY_SHARES,\n action: Actions.MyShares.HOME\n } as Core.AppLink\n }\n };\n }\n\n if (share.type === ShareType.LegacyDirect) {\n return {\n application: AppChannels.SHARE,\n action: Actions.Share.DELETE_LEGACY_SHARE,\n args: [share.shareId],\n params: {\n previousAppLink: {\n application: AppChannels.MY_SHARES,\n action: Actions.MyShares.HOME\n } as Core.AppLink\n }\n };\n }\n\n if (share.type === ShareType.Classroom) {\n return {\n application: AppChannels.SHARE,\n action: Actions.Share.DELETE_ASSIGNMENT,\n args: [share.shareId],\n params: {\n previousAppLink: {\n application: AppChannels.CLASSROOMS,\n action: Actions.Classrooms.CLASSROOM_HOME,\n args: [ShareHelper.getClassroomIdFromShare(share)]\n } as Core.AppLink\n }\n };\n }\n\n if (share.type === ShareType.Open) {\n return {\n application: AppChannels.SHARE,\n action: Actions.Share.DELETE_OPEN_CLASSROOM,\n args: [share.shareId],\n params: {\n previousAppLink: {\n application: AppChannels.CLASSROOMS,\n action: Actions.Classrooms.OPEN_CLASSROOMS,\n args: [ShareHelper.getClassroomIdFromShare(share)]\n } as Core.AppLink\n }\n };\n }\n}\n\nexport function getInsightsReportAppLink(share: Share): Core.AppLink {\n if (!share) return;\n if (share.objectTypeId !== MasterType.Interactive) return;\n\n return {\n application: AppChannels.MY_SHARES,\n action: Actions.MyShares.INTERACTIVE_GENERATE_REPORT,\n args: [share.objectId]\n };\n}\n\nfunction getSharableEntityType(share: Share): SharableEntityType {\n if (share.objectTypeId === MasterType.Video)\n return 'video';\n\n if (share.objectTypeId === MasterType.Interactive)\n return 'interactive';\n \n if (share.objectTypeId === MasterType.Clip)\n return 'clip';\n\n if (share.objectTypeId === MasterType.Series)\n return 'series';\n\n if (share.objectTypeId === MasterType.Playlist)\n return 'playlist';\n}"],"names":["SharePrivacy","ShareType","normalizeOptions","namespace","ShareRequests","createShare","data","url","key","type","invalidationKeys","updateShare","shareId","deleteShare","getShare","bootstrapName","getSentShares","params","Object","values","sort","join","normalize","getShareLink","id","objectId","createShareLink","getPrivacy","getSharesByObjectId","createSharePincode","getPincodeByShareId","getPincodeByCode","code","ShareHelper","getFlattenedRecipients","shares","map","s","recipients","getFlattenedUniqueScopes","r","scopeId","toString","filter","x","getClassroomIdFromShare","share","firstRecipient","recipientId","recipientTypeId","getClassroomForShare","classrooms","classroomId","find","classroom","getRecipientsCount","length","hasShareExpired","expireDate","now","Date","calculateDaysToExpiry","remainingDays","getShareLocalExpiry","format","localDate","ShareViewHelper","canEmbed","includes","canAddPolicies","getEnabledIntegrations","googleClassroomSetting","msftTeamsSetting","i","enabled","getShareSettingsInitialValues","interactive","preventScrubbing","options","immediateFeedback","getEnabledSettingsField","entityType","showImmediateFeedbackField","showPreventScrubbingField","getFetchFunctionByType","getAnalyticsEntity","getAnalyticsOptions","getPhrase","FlowControls","props","hideBackButton","onClickBack","hideNextButton","onClickNext","hideCreateClassroomButton","onClickCreateClassroom","className","leftComponent","variant","onClick","text","backButtonText","title","nextButtonTooltip","disable","placement","spanHack","nextButtonText","disabled","disableNextButton","showSpinner","useAssignSharedData","currentUser","entity","config","interactiveId","hasPermissions","isLoaded","hasStudentExp","canCreateClassrooms","loaded","INSIGHTS_WHITELIST","getObjectAppLink","object","application","action","args","name","typeId","getInsightsOverviewAppLink","objectTypeId","getInsightsHeatmapAppLink","getInsightsQuestionsAppLink","getInsightsStudentsAppLink","getShareOptionsAppLink","getSharableEntityType","detailsTitle","getDeleteShareAppLink","previousAppLink"],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[1074],{26136:(e,t,n)=>{n.d(t,{B:()=>c});var r=n(76198),a=n(23481),i=n(64818),o=a.T.encloseNamespace("shared.analyticsUtils");function c(e,t){return e?t?(0,r._8)((n=e.id,a=e.sessionId,c=+"".concat(n||function(e){if(!e)return 0;for(var t=0,n=0;n<e.length;n++)t=(t<<5)-t+e.charCodeAt(n),t|=0;return Math.abs(t)}(a)).concat(Math.floor((new Date).getMinutes()/5)),{dictionaries:[r.O9,r.yd],separator:" ",length:2,style:"capital",seed:c})):i.l.getFullName(e)||o("anonUser"):o("anonUser");var n,a,c}},1619:(e,t,n)=>{n.d(t,{e:()=>f});var r=n(32735),a=n(23481),i=n(12528),o=n(83914),c=n(35223),l=n(33518),s=n(2510);function u(e){return u="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},u(e)}function m(e,t,n){return(t=function(e){var t=function(e){if("object"!=u(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=u(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==u(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var p=a.T.encloseNamespace("sharev2.shareAvatar"),d=m(m(m(m(m({},s.y.Open,c.vn.Classrooms),s.y.Link,c.vn.Link),s.y.Classroom,c.vn.Classrooms),s.y.Live,c.vn.Play),s.y.LegacyDirect,c.vn.Share),y=m(m(m(m(m({},s.y.Open,"blue"),s.y.Link,"black"),s.y.Classroom,"teal"),s.y.Live,"purple"),s.y.LegacyDirect,"indigo"),v=m(m(m(m(m({},s.y.Open,"openShareType"),s.y.Link,"linkShareType"),s.y.Classroom,"classroomShareType"),s.y.Live,"liveShareType"),s.y.LegacyDirect,"legacyDirectShareType");function f(e){var t,n;return r.createElement("div",{className:"d-flex align-items-center gap-2"},r.createElement("div",null,r.createElement(i.f,{svgName:d[e.type],variant:y[e.type],textVariant:"white",svgWrapperClassName:"p-1",svgSize:null!==(t=e.svgSize)&&void 0!==t?t:o.S.Standard})),r.createElement("div",{className:"d-flex flex-column"},r.createElement("p",{className:"m-0"},function(e){var t=e.type,n=e.classroomName,r=e.additionalTitleText;if(t===s.y.Classroom&&n)return n;var a=p(v[t]);return r&&(a+=" "+r),a}(e)),!e.hideSubtitle&&r.createElement("span",{className:"text-secondary"},null!==(n=e.subtitleText)&&void 0!==n?n:function(e){var t=e.type,n=e.privacy,r=e.studentCount,a=void 0===r?0:r,i=e.classroomGroupCount,o=void 0===i?0:i;switch(t){case s.y.Classroom:return function(e,t){return e&&t?"".concat(p("classroomGroupCount",{smartCount:e}),", ").concat(p("studentSubTitle",{smartCount:t})):e?p("groupSubTitle",{smartCount:e}):t?p("studentSubTitle",{smartCount:t}):p("allStudentsSubTitle")}(o,a);case s.y.Open:return p("openShareTypeSubTitle");case s.y.Link:return function(e){return[l.e.JustMySchool,l.e.Protected].includes(e)?p("respectRatingsSubTitle"):e===l.e.JustMySchoolOverrideRestriction?p("anyoneInSchoolSubTitle"):e===l.e.ProtectedOverrideRestriction?p("anyoneSignedInSubTitle"):e===l.e.Public?p("anyoneWithLinkSubTitle"):e===l.e.PinCode?p("anyoneWithPinSubTitle"):void 0}(n);case s.y.Live:return p("liveShareTypeSubTitle");case s.y.LegacyDirect:return p("legacyDirectTypeSubTitle");default:return p("publicShareTypeSubTitle")}}(e))))}},33518:(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={}))},8233:(e,t,n)=>{n.d(t,{R:()=>d});var r=n(23481),a=n(110),i=n(33518),o=n(4594),c=n(49080),l=n(26361),s=n(35223),u=n(31908);function m(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var p=r.T.encloseNamespace("sharev2.utils"),d={getPrivateIconAndText:function(e){var t=e.entityTypeId,n=e.privacy,r=e.hasStudentExp,a=e.entity,c=e.yearGroups;if(t===o.E.Topic||t===o.E.Series)return{icon:s.vn.VisibleOn,text:p(r?"justMySchoolTeachers":"justMySchoolDescription")};if(!Array.isArray(n))switch(n){case i.e.Public:return{icon:s.vn.VisibleOn,text:p("publicDescription")};case i.e.ProtectedOverrideRestriction:return{icon:s.vn.VisibleOn,text:p("clickViewOnly")};case i.e.Protected:return{icon:s.vn.Lock,text:d.getRespectRatingText(a,c,r)};case i.e.JustMySchoolOverrideRestriction:return{icon:s.vn.Lock,text:p(r?"justMySchoolTeachers":"justMySchoolDescription")};case i.e.JustMySchool:return{icon:s.vn.Lock,text:d.getRespectRatingText(a,c,r)};case i.e.PinCode:return{icon:s.vn.Lock,text:p("pinDescription")};case i.e.PasswordProtected:return{icon:s.vn.Lock,text:p("privateDescription")};default:return{}}},getIconAndText:function(e){var t=e.linkExpireDate,n=e.isPasswordProtected,r=e.status;if(!t&&!n)return d.getPrivateIconAndText(e);if(!t)return{icon:s.vn.Lock,text:p("password")};var i=a.O.isToday(t),o=a.O.diffBetween(t,new Date,"day");if(!n){var l=i?p("expiryToday"):p("expiry",{days:o});return r===c.F.Expired&&(l=p("expired")),{icon:s.vn.Timer,text:l}}var u=i?p("passwordExpiryToday"):p("passwordExpiry",{days:o});return r===c.F.Expired&&(u=p("passwordExpired")),{icon:s.vn.Lock,text:u}},getRespectRatingText:function(e,t,n){var r;if(!e||!t)return null;if(n)return p("justMySchoolTeachers");if(!u.M.isVideoType(e))return p("collectionRating");var a=l.l.getWeightedRestriction(null===(r=e._restrictions)||void 0===r?void 0:r.value);if(a&&!a.yearGroup)return p("onlyAdmins");var i,o,c,s=u.M.getRating(e),d=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return m(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?m(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,a=function(){};return{s:a,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:a}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,o=!0,c=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return o=e.done,e},e:function(e){c=!0,i=e},f:function(){try{o||null==n.return||n.return()}finally{if(c)throw i}}}}(t);try{for(d.s();!(c=d.n()).done;){var y=c.value;(!i||y.value>i.value)&&(i=y),a&&y.value<=a.yearGroup||s&&y.rating.value<s.value||(!o||y.value<o.value)&&(o=y)}}catch(e){d.e(e)}finally{d.f()}return o?1===t.length?p("clickViewOnly"):o.value===i.value?p("maxYearGroup",{yearGroup:i.name}):p("yearGroupRange",{yearGroup:o.name}):p("onlyStaff")},getShareLinkAccessType:function(e){return e.isTvContent||e.isClickViewContent?"protected":e.canManageAccess?"owner":"private"}}},40782:(e,t,n)=>{n.d(t,{I:()=>r,O:()=>l});var r,a=n(32735),i=n(2606),o=n(362);function c(e){var t=a.useCallback(function(t){if(t){var n=t.r.baseVal.value,r=2*Math.PI*n,a=r-e.percentage*r;t.style.strokeDasharray="".concat(r," ").concat(r),t.style.strokeDashoffset=a.toString()}},[e.percentage]);return a.createElement("svg",null,a.createElement("circle",{r:(0,i.pu)(e.size),className:o.Z.backgroundCircle}),!(0,i.zR)(e.percentage)&&a.createElement("circle",{ref:t,r:(0,i.pu)(e.size),className:(0,i.V4)(e.percentage,e.scoreThresholds)}))}function l(e){var t,n=(0,i.Ki)(e.percentage),l=e.size||(e.layout===r.LabelInside?i.Mk.Large:i.Mk.Small),s=e.customLabel||(0,i.DV)(n);return e.layout===r.LabelOnly?a.createElement("span",{className:(0,i.IA)(n)},s):a.createElement("div",{className:"d-flex align-items-center justify-content-between ".concat(null!==(t=e.className)&&void 0!==t?t:"")},e.layout===r.LabelBefore&&a.createElement("span",{className:"me-2"},s),a.createElement("div",{className:(0,i.tw)(l,n)},a.createElement(c,{percentage:n,size:l,scoreThresholds:e.scoreThresholds}),e.layout===r.LabelInside&&a.createElement("span",{className:o.Z.centredPercentageText},s)))}!function(e){e.CircleOnly="circle_only",e.LabelOnly="label_only",e.LabelBefore="label_before",e.LabelInside="label_inside"}(r||(r={})),l.defaultProps={layout:r.CircleOnly}},2606:(e,t,n)=>{n.d(t,{DV:()=>f,IA:()=>d,Ki:()=>v,Mk:()=>c,V4:()=>p,pu:()=>m,tw:()=>y,zR:()=>b});var r=n(94892),a=n(362);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 o(e,t,n){return(t=function(e){var t=function(e){if("object"!=i(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=i(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==i(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var c,l=.2,s=.36;!function(e){e.Small="small",e.Large="large",e.ExtraSmall="extraSmall"}(c||(c={}));var u=o(o(o({},c.ExtraSmall,{size:2}),c.Small,{size:2}),c.Large,{size:5.8});function m(e){var t=u[e].size,n=e===c.Large?s:l;return"".concat(t/2-2*n,"rem")}function p(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:r.i;return e>=t.HIGH?a.Z.circleSuccess:e>=t.MODERATE?a.Z.circleWarning:a.Z.circleDanger}function d(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:r.i;return e>=t.HIGH?"text-success":e>=t.MODERATE?"text-warning":"text-danger"}function y(e,t){var n="d-inline-block ".concat(a.Z.circleContainer);return e===c.Large&&(n+=" ".concat(a.Z.lgCircleContainer)),e===c.ExtraSmall&&(n+=" ".concat(a.Z.xsCircleContainer)),b(t)&&(n+=" ".concat(a.Z.pendingCircle)),n}function v(e){if(!b(e))return+e.toFixed(2)}function f(e){return b(e)?"--%":"".concat(Math.round(100*e),"%")}function b(e){return"number"!=typeof e}},38502:(e,t,n)=>{n.d(t,{r:()=>m});var r=n(32735),a=n(49985),i=n(15611),o=n(18559),c=n(11607),l=n(83914),s=n(22771);function u(e){return r.createElement(r.Fragment,null,!!e.tab.svgName&&r.createElement("div",{className:e.tab.name?"pe-1":""},r.createElement(l.x,{svgName:e.tab.svgName})),e.tab.name,"number"==typeof e.tab.count&&r.createElement("div",{className:"ps-2"},r.createElement(o.C,{type:o.g.Count,data:e.tab.count})))}function m(e){var t;return r.createElement("nav",{className:null!==(t=e.className)&&void 0!==t?t:"",ref:e.containerRef},r.createElement("ul",{className:"\n list-unstyled d-inline-block m-0 ".concat(s.Z.pillTabSelector,"\n ").concat(e.borderRadius?s.Z.radiusSmall:"","\n ").concat(e.listClassName,"\n ")},e.tabs.map(function(e,t){return r.createElement("li",{className:"\n p-0 ".concat(s.Z.tab," ").concat(e.active?"btn btn-dark":"btn btn-outline-dark","\n ").concat(e.name?s.Z.minWidth:""," ").concat(e.className,"\n "),key:t},e.appLink?r.createElement(i.F,{appLink:e.appLink,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions,className:"\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ".concat(s.Z.tabLink,"\n ")},r.createElement(u,{tab:e})):r.createElement(c.L,{className:"\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ".concat(s.Z.tabLink,"\n "),onClick:function(){return function(e){!e.active&&e.onSelect&&(e.onSelect(),e.analyticsData&&e.analyticsOptions&&a.k.logUserAction(e.analyticsData,e.analyticsOptions))}(e)}},r.createElement(u,{tab:e})))})))}m.defaultProps={borderRadius:"lg"}},94892:(e,t,n)=>{n.d(t,{T:()=>a,i:()=>r});var r={HIGH:.75,MODERATE:.5},a={HIGH:.7,MODERATE:.7}},93322:(e,t,n)=>{n.d(t,{F:()=>i});var r=n(32735),a=n(13126);function i(){r.useEffect(function(){return a.e.lockContentWidth(),function(){return a.e.unlockContentWidth()}},[])}},99746:(e,t,n)=>{n.d(t,{p:()=>y});var r=n(32735),a=n(57900),i=n(97395),o=n(2948),c=n(91693),l=n(83345),s=n(4594),u=n(35223),m=n(86702);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 d="lite.insightsAdminAlert";function y(e){var t,n,y=(t=(0,o.D)(m.y.INSIGHTS_ADMIN_ALERT,!0,{storage:a.Z1.LocalStorage}),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i,o,c=[],l=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=i.call(n)).done)&&(c.push(r.value),c.length!==t);l=!0);}catch(e){s=!0,a=e}finally{try{if(!l&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(s)throw a}}return c}}(t,n)||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}}(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.")}()),v=y[0],f=y[1];return e.hasAnalytics&&v?r.createElement("div",{role:"alert",className:"d-flex justify-content-between align-items-center bg-light-blue rounded p-2 mb-4"},r.createElement("div",null,r.createElement(l.x,{namespace:d,phrase:"adminAlert"}),r.createElement("a",{className:"text-info",href:function(){if(!e.video)return e.analyticsUrl;var t="";return e.video.typeId===s.E.Interactive&&(t="/interactives/".concat(e.video.id,"/views")),e.video.typeId===s.E.Video&&(t="/videos/".concat(e.video.id,"/views")),e.video.typeId===s.E.Clip&&(t="/clips/".concat(e.video.id,"/views")),i._.safeUrlConcat(e.analyticsUrl,t)}(),target:"_blank"},r.createElement(l.x,{namespace:d,phrase:"analytics"})),"."),r.createElement(c.h,{svgName:u.vn.Close,className:"text-blue",onClick:function(){f(!1)}})):r.createElement(r.Fragment,null)}},9540:(e,t,n)=>{n.d(t,{j:()=>W});var r=n(32735),a=n(23481),i=n(57900),o=n(2948),c=n(31453),l=n(2510),s=n(76306),u=n(49935),m=n(91693),p=n(38502),d=n(83914),y=n(83345),v=n(83523),f=n(36532),b=n(38143),h=n(4594),g=n(16714),S=n(22902),E=n(70227),T=n(35223),x=n(14070),N=n(97291),k=n(46390),O=n(86099),C=n(22490),A=n(99746),w=n(1619),L=n(21789),I=n(8233);const R={withDivider:"Tum3w"};var M=a.T.encloseNamespace("insights.shareInfo"),D="DD/MM/YY";function P(e){if(!e.sharedObject)return r.createElement(r.Fragment,null);var t=!!e.share.expireDate,n=L.x.hasShareExpired(e.share),a=I.R.getPrivateIconAndText({privacy:e.share.privacy,entityTypeId:e.sharedObject.typeId,hasStudentExp:!1,entity:e.entity,yearGroups:e.yearGroups}).text;return r.createElement("div",{className:(0,c.A)("d-flex flex-row align-items-center",R.withDivider,e.className)},r.createElement(w.e,{privacy:e.share.privacy,type:e.share.type,svgSize:d.S.Small,classroomName:e.classroomName,additionalTitleText:t&&"(".concat(n?M("expired"):L.x.getShareLocalExpiry(e.share,D),")"),hideSubtitle:!0}),!t&&!!a&&r.createElement("p",{className:"mb-0"},a))}var j=n(69003);const _={withDivider:"ZSzT3"};function V(e,t){if(e){if("string"==typeof e)return Z(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Z(e,t):void 0}}function Z(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var G="insights.header",H=a.T.encloseNamespace(G);function U(e){return r.createElement("div",null,r.createElement("label",{htmlFor:"anonymiseNames",className:"mb-0 pe-3"},r.createElement(y.x,{namespace:G,phrase:"anonymiseNames"})),r.createElement(v.Z,{id:"anonymiseNames",on:e.anonymiseUsers,onClick:e.toggleAnonymiseUsers}))}function z(e){return r.createElement(f.u,{id:"audienceFilter",title:H("demoOnly"),spanHack:e.isDemo},r.createElement("div",{className:e.isDemo?"pointer-events-none":""},e.children))}function W(e){var t,n,a,v=(n=(0,o.D)(b.g.ANONYMISE_USERS,!1,{storage:i.Z1.LocalStorage}),a=2,function(e){if(Array.isArray(e))return e}(n)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,i,o,c=[],l=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=i.call(n)).done)&&(c.push(r.value),c.length!==t);l=!0);}catch(e){s=!0,a=e}finally{try{if(!l&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(s)throw a}}return c}}(n,a)||V(n,a)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),w=v[0],L=v[1],I=(0,k.G)().isPlugin,R=(0,S.T)().hasPermissions,M=R(g.C.ViewAnalyticsProduct)&&R(g.C.ViewCustomerAnalytics),D=(0,O.Zm)(e.share);return r.createElement("div",null,r.createElement(A.p,{analyticsUrl:e.analyticsWebUrl,hasAnalytics:e.hasAnalytics,video:e.video}),r.createElement("section",{className:"mb-4"},r.createElement("div",{className:"d-flex justify-content-between mb-3"},e.video?r.createElement(u.Oo,{breadcrumbs:function(){if(!e.video)return[];if(!e.share)return[];var t={name:H("shares"),appLink:{application:N.O.MY_SHARES,action:x.e.MyShares.HOME}};return e.share.type===l.y.Classroom&&(t={name:H("classrooms"),appLink:{application:N.O.CLASSROOMS,action:x.e.Classrooms.HOME}}),e.share.type===l.y.Open&&(t={name:H("openClassrooms"),appLink:{application:N.O.CLASSROOMS,action:x.e.Classrooms.OPEN_CLASSROOMS}}),[t,{name:e.video.name,active:!0}]}()}):r.createElement(u.b2,null),r.createElement("div",{className:"d-flex gap-2"},!I&&r.createElement(z,{isDemo:e.isDemo},r.createElement(m.h,{svgName:T.vn.Share,className:"btn btn-outline-dark",appLink:D},r.createElement(y.x,{namespace:G,phrase:"shareOptions"}))),r.createElement(z,{isDemo:e.isDemo},r.createElement(s.m,{dropdownToggleClassName:"btn btn-outline-dark",actions:function(){var t,n=[];return(null===(t=e.video)||void 0===t?void 0:t.typeId)===h.E.Interactive&&n.push({label:H("generateReport"),svgName:T.vn.Print,appLink:{application:N.O.MY_SHARES,action:x.e.MyShares.INTERACTIVE_GENERATE_REPORT,args:[e.video.id]}}),M&&n.push({label:H("viewInAnalytics"),svgName:T.vn.Analytics,href:E.c.getObjectUrl(e.analyticsWebUrl,e.video,!0),openInNewTab:!0}),[].concat(n,function(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)||V(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.")}()}((0,j.sD)({share:e.share,sharedObject:e.video,isPlugin:I,hideShareOptionsActions:!0})))}()})))),r.createElement("div",{className:"d-flex justify-content-between mb-3"},r.createElement("div",{className:"me-2"},e.video&&r.createElement(r.Fragment,null,r.createElement("h1",{className:"mb-0 d-inline me-2"},e.video.name),!e.isDemo&&r.createElement(f.u,{title:H(e.video.typeId===h.E.Interactive?"viewInteractive":e.video.typeId===h.E.Clip?"viewClip":"viewVideo"),type:"text",spanHack:!0,spanHackClassName:"d-inline-block align-text-bottom"},r.createElement(m.h,{svgName:T.vn.NewWindow,appLink:C.W.getAppLink(e.video),svgSize:d.S.Large,className:"d-inline-block",customSize:!0}))),!e.video&&r.createElement("h1",{className:"partial-loading-background",style:{width:"20rem"}}," "))),r.createElement("div",{className:(0,c.A)("d-flex flex-row align-items-center mb-3",_.withDivider)},r.createElement(P,{sharedObject:e.video,share:e.share,entity:e.video,yearGroups:e.yearGroups,classroomName:null===(t=e.classroom)||void 0===t?void 0:t.name}),r.createElement(U,{anonymiseUsers:w,toggleAnonymiseUsers:function(){return L(!w)}})),r.createElement("div",{className:"d-flex align-items-center mb-4"},r.createElement(p.r,{tabs:e.tabs}))))}},10447:(e,t,n)=>{n.d(t,{$6:()=>l,aq:()=>u,kj:()=>s});var r=n(23481),a=n(14070),i=n(97291),o=n(86099),c=r.T.encloseNamespace("shared.insightsUtils");function l(e,t,n){return[{name:c("insights"),active:"insights"===t,appLink:(0,o.pY)(e,n)},{name:c("heatmap"),active:"heatmap"===t,appLink:(0,o.Rv)(e,n)}]}function s(e,t){return[{name:c("insights"),active:"insights"===t,appLink:(0,o.pY)(e)},{name:c("results"),active:"results"===t,appLink:(0,o.rq)(e)},{name:c("questions"),active:"questions"===t,appLink:(0,o.Sj)(e)},{name:c("heatmap"),active:"heatmap"===t,appLink:(0,o.Rv)(e)}]}function u(e,t,n){return[{name:c("insights"),active:"insights"===t,appLink:{application:i.O.MY_SHARES,action:a.e.MyShares.INTERACTIVE_OVERVIEW_DEMO,args:[e],params:n}},{name:c("results"),active:"results"===t,appLink:{application:i.O.MY_SHARES,action:a.e.MyShares.INTERACTIVE_STUDENTS_DEMO,args:[e],params:n}},{name:c("questions"),active:"questions"===t,appLink:{application:i.O.MY_SHARES,action:a.e.MyShares.INTERACTIVE_QUESTIONS_DEMO,args:[e],params:n}},{name:c("heatmap"),active:"heatmap"===t,appLink:{application:i.O.MY_SHARES,action:a.e.MyShares.INTERACTIVE_HEATMAP_DEMO,args:[e],params:n}}]}},362:(e,t,n)=>{n.d(t,{Z:()=>r});const r={circleContainer:"p8Vgz",backgroundCircle:"asGGE",circleSuccess:"PXLNj",circleWarning:"ZckRN",circleDanger:"slBRg",lgCircleContainer:"N8KCI",xsCircleContainer:"RPqZ2",pendingCircle:"DKrcq",centredPercentageText:"tpmLR"}},22771:(e,t,n)=>{n.d(t,{Z:()=>r});const r={pillTabSelector:"Hdi6o",tab:"RvNxr",minWidth:"GHSz9",radiusSmall:"VhJJa",tabLink:"WFyvo"}}}]);
2
- //# sourceMappingURL=1074-6dadbd8187-lite.chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scripts/1074-6dadbd8187-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/apps/analytics/utils/AnonymiseUserUtils.ts","file:///app/packages/libs/shared/src/apps/share-v2/components/share-avatar/ShareAvatar.tsx","file:///app/packages/libs/shared/src/apps/share-v2/enums/SharePrivacy.ts","file:///app/packages/libs/shared/src/apps/share-v2/utils/ShareLinkHelper.ts","file:///app/packages/libs/shared/src/components/percentage-indicator/PercentageIndicator.tsx","file:///app/packages/libs/shared/src/components/percentage-indicator/PercentageIndicatorUtils.ts","file:///app/packages/libs/shared/src/components/pill-tab-selector/PillTabSelector.tsx","file:///app/packages/libs/shared/src/constants/ScoreThresholds.ts","file:///app/packages/libs/shared/src/hooks/useLockContentWidth.ts","file:///app/packages/projects/lite/src/apps/my-shares/components/insights-admin-alert/InsightsAdminAlert.tsx","file:///app/packages/projects/lite/src/apps/my-shares/components/share-info/share-info.scss","file:///app/packages/projects/lite/src/apps/my-shares/components/share-info/ShareInfo.tsx","file:///app/packages/projects/lite/src/apps/my-shares/components/insights-header/insights-header.scss","file:///app/packages/projects/lite/src/apps/my-shares/components/insights-header/InsightsHeader.tsx","file:///app/packages/projects/lite/src/apps/my-shares/utils/InsightsAppLinkUtils.ts","file:///app/packages/libs/shared/src/components/percentage-indicator/percentage-indicator.scss","file:///app/packages/libs/shared/src/components/pill-tab-selector/pill-tab-selector.scss"],"sourcesContent":["import { animals, colors, Config as UniqueNamesConfig, uniqueNamesGenerator } from 'unique-names-generator';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { AnonUser } from 'libs/shared/interfaces/models/interactive-results/AnonUser';\nimport { UserHelper } from 'libs/shared/utils/UserHelper';\n\nconst namespace = 'shared.analyticsUtils';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nfunction guidToSeed(guid: string): number {\n if (!guid)\n return 0;\n\n // Simple hash function (DJB2-like) for browsers\n let hash = 0;\n for (let i = 0; i < guid.length; i++) {\n const char = guid.charCodeAt(i);\n hash = ((hash << 5) - hash) + char;\n hash |= 0; // Convert to 32bit integer\n }\n return Math.abs(hash);\n}\n\nfunction getUniqueNamesConfig(userId: string, sessionId: string): UniqueNamesConfig {\n /**\n * Generate a seed that is unique to each user but changes every 5 minutes.\n * \n * We use a seed so that if the same user's name is anonymised multiple times\n * in quick succession (e.g. multiple renders), the same name will be returned each time.\n * \n * We change the seed every 5 minutes so that students don't always have the same name.\n */\n const seed = +`${userId || guidToSeed(sessionId)}${Math.floor((new Date()).getMinutes() / 5)}`;\n\n return {\n dictionaries: [ colors, animals ],\n separator: ' ',\n length: 2,\n style: 'capital',\n seed\n };\n}\n\nexport function anonymiseUserName(user: AnonUser, shouldAnonymise: boolean): string {\n if (!user) {\n return getPhrase('anonUser');\n }\n\n if (!shouldAnonymise)\n return UserHelper.getFullName(user) || getPhrase('anonUser');\n\n return uniqueNamesGenerator(getUniqueNamesConfig(user.id, user.sessionId));\n}\n","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { IconCircle } from 'libs/shared/components/icon-circle/IconCircle';\nimport { SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { SharePrivacy } from '../../enums/SharePrivacy';\nimport { ShareType } from '../../enums/ShareType';\n\nconst namespace = 'sharev2.shareAvatar';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst icons = {\n [ShareType.Open]: cvSvgLibrary.Classrooms,\n [ShareType.Link]: cvSvgLibrary.Link,\n [ShareType.Classroom]: cvSvgLibrary.Classrooms,\n [ShareType.Live]: cvSvgLibrary.Play,\n [ShareType.LegacyDirect]: cvSvgLibrary.Share\n};\n\nconst iconColours = {\n [ShareType.Open]: 'blue',\n [ShareType.Link]: 'black',\n [ShareType.Classroom]: 'teal',\n [ShareType.Live]: 'purple',\n [ShareType.LegacyDirect]: 'indigo'\n};\n\nconst shareTypeTitlePhraseMap = {\n [ShareType.Open]: 'openShareType',\n [ShareType.Link]: 'linkShareType',\n [ShareType.Classroom]: 'classroomShareType',\n [ShareType.Live]: 'liveShareType',\n [ShareType.LegacyDirect]: 'legacyDirectShareType'\n};\n\nfunction getTitle({ type, classroomName, additionalTitleText }: ShareAvatarProps) {\n if (type === ShareType.Classroom && classroomName)\n return classroomName;\n\n let title = getPhrase(shareTypeTitlePhraseMap[type]);\n\n if (additionalTitleText)\n title += ' ' + additionalTitleText;\n\n return title;\n}\n\nfunction getClassroomSubtitle(classroomGroupCount: number, studentCount: number): string {\n if (classroomGroupCount && studentCount)\n return `${getPhrase('classroomGroupCount', { smartCount: classroomGroupCount })}, ${getPhrase('studentSubTitle', { smartCount: studentCount })}`;\n\n if (classroomGroupCount)\n return getPhrase('groupSubTitle', { smartCount: classroomGroupCount });\n\n if (studentCount)\n return getPhrase('studentSubTitle', { smartCount: studentCount });\n\n return getPhrase('allStudentsSubTitle');\n}\n\nfunction getLinkSubtitle(privacy: SharePrivacy) {\n if ([ SharePrivacy.JustMySchool, SharePrivacy.Protected ].includes(privacy))\n return getPhrase('respectRatingsSubTitle');\n\n if (privacy === SharePrivacy.JustMySchoolOverrideRestriction)\n return getPhrase('anyoneInSchoolSubTitle');\n\n if (privacy === SharePrivacy.ProtectedOverrideRestriction)\n return getPhrase('anyoneSignedInSubTitle');\n\n if (privacy === SharePrivacy.Public)\n return getPhrase('anyoneWithLinkSubTitle');\n\n if (privacy === SharePrivacy.PinCode)\n return getPhrase('anyoneWithPinSubTitle');\n}\n\nfunction getSubtitle({ type, privacy, studentCount = 0, classroomGroupCount = 0 }: ShareAvatarProps) {\n switch (type) {\n case ShareType.Classroom:\n return getClassroomSubtitle(classroomGroupCount, studentCount);\n\n case ShareType.Open:\n return getPhrase('openShareTypeSubTitle');\n\n case ShareType.Link:\n return getLinkSubtitle(privacy);\n \n case ShareType.Live:\n return getPhrase('liveShareTypeSubTitle');\n\n case ShareType.LegacyDirect:\n return getPhrase('legacyDirectTypeSubTitle');\n\n default:\n return getPhrase('publicShareTypeSubTitle');\n }\n}\n\ninterface ShareAvatarProps {\n type: ShareType;\n privacy: SharePrivacy;\n studentCount?: number;\n classroomGroupCount?: number;\n classroomName?: string;\n hideSubtitle?: boolean;\n subtitleText?: string;\n svgSize?: SvgContainerSize;\n additionalTitleText?: string;\n}\n\nexport function ShareAvatar(props: ShareAvatarProps): JSX.Element {\n return (\n <div className='d-flex align-items-center gap-2'>\n <div>\n <IconCircle\n svgName={icons[props.type]}\n variant={iconColours[props.type]}\n textVariant='white'\n svgWrapperClassName='p-1'\n svgSize={props.svgSize ?? SvgContainerSize.Standard}\n />\n </div>\n <div className='d-flex flex-column'>\n <p className='m-0'>{getTitle(props)}</p>\n {!props.hideSubtitle && <span className='text-secondary'>{props.subtitleText ?? getSubtitle(props)}</span>}\n </div>\n </div>\n );\n}","export enum SharePrivacy {\n Public = 'Public',\n PinCode = 'PinCode',\n PasswordProtected = 'PasswordProtected',\n ProtectedOverrideRestriction = 'ProtectedOverrideRestriction',\n JustMySchoolOverrideRestriction = 'JustMySchoolOverrideRestriction',\n Protected = 'Protected',\n JustMySchool = 'JustMySchool',\n Direct = 'Direct'\n}","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { SharePrivacy } from 'libs/shared/apps/share-v2/enums/SharePrivacy';\nimport type { SharePrivacyResponse } from 'libs/shared/apps/share-v2/interfaces/SharePrivacyResponse';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { ShareLinkStatus } from 'libs/shared/enums/ShareLinkStatus';\nimport type { BaseObject, YearGroup } from 'libs/shared/interfaces';\nimport { RestrictionHelper } from 'libs/shared/utils/RestrictionHelper';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nconst namespace = 'sharev2.utils';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface GetIconAndTextOptions {\n linkExpireDate: string;\n isPasswordProtected: boolean;\n privacy: SharePrivacy;\n status: ShareLinkStatus;\n entityTypeId: MasterType;\n hasStudentExp: boolean;\n entity: BaseObject;\n yearGroups: YearGroup[];\n}\n\ninterface GetPrivateIconAndTextOptions {\n privacy: SharePrivacy;\n entityTypeId: MasterType;\n hasStudentExp: boolean;\n entity: BaseObject;\n yearGroups: YearGroup[];\n}\n\nexport const ShareLinkHelper = {\n getPrivateIconAndText: (options: GetPrivateIconAndTextOptions) => {\n const { entityTypeId, privacy, hasStudentExp, entity, yearGroups } = options;\n \n if (entityTypeId === MasterType.Topic || entityTypeId === MasterType.Series)\n return { icon: cvSvgLibrary.VisibleOn, text: getPhrase(hasStudentExp ? 'justMySchoolTeachers' : 'justMySchoolDescription') };\n \n /**\n * This is mainly for typescript, privacy will be an array for playlists\n * but that is handled above\n */\n if (Array.isArray(privacy))\n return;\n \n switch (privacy) {\n case SharePrivacy.Public:\n return { icon: cvSvgLibrary.VisibleOn, text: getPhrase('publicDescription') };\n case SharePrivacy.ProtectedOverrideRestriction:\n return { icon: cvSvgLibrary.VisibleOn, text: getPhrase('clickViewOnly') };\n case SharePrivacy.Protected:\n return {\n icon: cvSvgLibrary.Lock,\n text: ShareLinkHelper.getRespectRatingText(entity, yearGroups, hasStudentExp)\n };\n case SharePrivacy.JustMySchoolOverrideRestriction:\n return { icon: cvSvgLibrary.Lock, text: getPhrase(hasStudentExp ? 'justMySchoolTeachers' : 'justMySchoolDescription') };\n case SharePrivacy.JustMySchool:\n return {\n icon: cvSvgLibrary.Lock,\n text: ShareLinkHelper.getRespectRatingText(entity, yearGroups, hasStudentExp)\n };\n case SharePrivacy.PinCode:\n return { icon: cvSvgLibrary.Lock, text: getPhrase('pinDescription') };\n case SharePrivacy.PasswordProtected:\n return { icon: cvSvgLibrary.Lock, text: getPhrase('privateDescription') };\n default:\n return {};\n }\n },\n\n getIconAndText: (options: GetIconAndTextOptions) => {\n const { linkExpireDate, isPasswordProtected, status } = options;\n if (!linkExpireDate && !isPasswordProtected)\n return ShareLinkHelper.getPrivateIconAndText(options);\n \n if (!linkExpireDate)\n return { icon: cvSvgLibrary.Lock, text: getPhrase('password') };\n \n const isToday = DateHelper.isToday(linkExpireDate);\n const dayDifference = DateHelper.diffBetween(linkExpireDate, new Date(), 'day');\n \n if (!isPasswordProtected) {\n let text = isToday\n ? getPhrase('expiryToday')\n : getPhrase('expiry', { days: dayDifference });\n \n if (status === ShareLinkStatus.Expired)\n text = getPhrase('expired');\n \n return { icon: cvSvgLibrary.Timer, text };\n }\n \n let text = isToday\n ? getPhrase('passwordExpiryToday')\n : getPhrase('passwordExpiry', { days: dayDifference });\n \n if (status === ShareLinkStatus.Expired)\n text = getPhrase('passwordExpired');\n \n return { icon: cvSvgLibrary.Lock, text };\n },\n\n getRespectRatingText(video: BaseObject, yearGroups: YearGroup[], hasStudentExp: boolean) {\n if (!video || !yearGroups)\n return null;\n \n if (hasStudentExp)\n return getPhrase('justMySchoolTeachers');\n \n if (!VideoHelper.isVideoType(video))\n return getPhrase('collectionRating');\n \n const restriction = RestrictionHelper.getWeightedRestriction(video._restrictions?.value);\n \n /**\n * Restrictions without a year level are teacher restricitons, which means only admins can see it.\n */\n if (restriction && !restriction.yearGroup)\n return getPhrase('onlyAdmins');\n \n const rating = VideoHelper.getRating(video);\n \n let maxYearGroup: YearGroup;\n let minAllowedYearGroup: YearGroup;\n \n for (const yearGroup of yearGroups) {\n /**\n * If our year level is our new highest so far, save it\n */\n if (!maxYearGroup || yearGroup.value > maxYearGroup.value)\n maxYearGroup = yearGroup;\n \n /**\n * If the restriction is higher than this year level, skip it.\n */\n if (restriction && yearGroup.value <= restriction.yearGroup)\n continue;\n \n /**\n * If therating is higher than this year level's rating value, skip it.\n */\n if (rating && yearGroup.rating.value < rating.value)\n continue;\n \n /**\n * If our year level is the new lowest so far, save it\n */\n if (!minAllowedYearGroup || yearGroup.value < minAllowedYearGroup.value)\n minAllowedYearGroup = yearGroup;\n }\n \n /**\n * If no year levels are allowed, then it's staff only.\n */\n if (!minAllowedYearGroup)\n return getPhrase('onlyStaff');\n \n \n /**\n * If there's only one year level, and it's allowed, then we can just\n * say that everyone in your school can access it.\n */\n if (yearGroups.length === 1)\n return getPhrase('clickViewOnly');\n \n /**\n * We differentiate the copy if it's the highest year level or not. \n * Basically if we need to say \"X and above\" or not.\n */\n if (minAllowedYearGroup.value === maxYearGroup.value)\n return getPhrase('maxYearGroup', { yearGroup: maxYearGroup.name });\n \n return getPhrase('yearGroupRange', { yearGroup: minAllowedYearGroup.name });\n },\n\n getShareLinkAccessType(privacy: SharePrivacyResponse): 'private' | 'owner' | 'protected' {\n /**\n * If an entity is not a ClickView content and they cannot manage access\n * settings of the entity (which they can if its their private entity)\n * it means that its a TV content\n */\n if (privacy.isTvContent || privacy.isClickViewContent)\n return 'protected';\n\n if (privacy.canManageAccess)\n return 'owner';\n\n return 'private';\n }\n};","import React from 'react';\n\nimport { ScoreThresholds } from 'libs/shared/constants/ScoreThresholds';\n\nimport {\n getCircleClassName,\n getCircleContainerClassName,\n getCircleRadius,\n getColouredLabelClassName,\n getFormattedPercentage,\n getPercentageToFixed,\n isPending,\n ProgressCircleSize\n} from './PercentageIndicatorUtils';\n\nimport styles from './percentage-indicator.scss';\n\ninterface ProgressCircleProps {\n size: ProgressCircleSize;\n scoreThresholds?: ScoreThresholds;\n percentage?: number;\n}\n\nfunction ProgressCircle(props: ProgressCircleProps): JSX.Element {\n const ref = React.useCallback((circle: SVGCircleElement) => {\n if (!circle)\n return;\n\n const radius = circle.r.baseVal.value;\n const circumference = 2 * Math.PI * radius;\n const offset = circumference - props.percentage * circumference;\n\n circle.style.strokeDasharray = `${circumference} ${circumference}`;\n circle.style.strokeDashoffset = offset.toString();\n }, [props.percentage]);\n\n return (\n <svg>\n <circle r={getCircleRadius(props.size)} className={styles.backgroundCircle} />\n {!isPending(props.percentage) &&\n <circle\n ref={ref}\n r={getCircleRadius(props.size)}\n className={getCircleClassName(props.percentage, props.scoreThresholds)}\n />\n }\n </svg>\n );\n}\n\nexport enum PercentageIndicatorLayout {\n CircleOnly = 'circle_only',\n LabelOnly = 'label_only',\n LabelBefore = 'label_before',\n LabelInside = 'label_inside'\n}\n\ninterface PercentageIndicatorProps {\n layout: PercentageIndicatorLayout;\n percentage?: number; // Between 0 and 1 or undefined for pending\n className?: string;\n customLabel?: string;\n scoreThresholds?: ScoreThresholds;\n size?: ProgressCircleSize;\n}\n\nPercentageIndicator.defaultProps = {\n layout: PercentageIndicatorLayout.CircleOnly\n};\n\nexport function PercentageIndicator(props: PercentageIndicatorProps): JSX.Element {\n const percentageToFixed = getPercentageToFixed(props.percentage);\n\n const size = props.size ||\n (props.layout === PercentageIndicatorLayout.LabelInside\n ? ProgressCircleSize.Large\n : ProgressCircleSize.Small\n );\n\n const label = props.customLabel || getFormattedPercentage(percentageToFixed);\n\n if (props.layout === PercentageIndicatorLayout.LabelOnly)\n return (\n <span className={getColouredLabelClassName(percentageToFixed)}>\n {label}\n </span>\n );\n\n return (\n <div className={`d-flex align-items-center justify-content-between ${props.className ?? ''}`}>\n {props.layout === PercentageIndicatorLayout.LabelBefore &&\n <span className='me-2'>\n {label}\n </span>\n }\n <div className={getCircleContainerClassName(size, percentageToFixed)}>\n <ProgressCircle percentage={percentageToFixed} size={size} scoreThresholds={props.scoreThresholds} />\n {props.layout === PercentageIndicatorLayout.LabelInside &&\n <span className={styles.centredPercentageText}>\n {label}\n </span>\n }\n </div>\n </div>\n );\n}","import { ScoreThresholdDefaults, ScoreThresholds } from 'libs/shared/constants/ScoreThresholds';\n\nimport styles from './percentage-indicator.scss';\n\n/**\n * Values for width and strokeWidth are taken from progress-circle.scss.\n * If either are changed, they must be updated in both places.\n */\nconst CIRCLE_WIDTH = 2; // rem\nconst CIRCLE_WIDTH_LG = 5.8; // rem\nconst CIRCLE_STROKE_WIDTH = 0.2; // rem\nconst CIRCLE_STROKE_WIDTH_LG = 0.36; // rem\n \nexport enum ProgressCircleSize {\n Small = 'small',\n Large = 'large',\n ExtraSmall = 'extraSmall'\n}\n\nconst ProgressCircleSizeMap = {\n [ProgressCircleSize.ExtraSmall]: {\n size: CIRCLE_WIDTH\n },\n [ProgressCircleSize.Small]: {\n size: CIRCLE_WIDTH\n },\n [ProgressCircleSize.Large]: {\n size: CIRCLE_WIDTH_LG\n }\n};\n\n/**\n * radius = width / 2 - strokeWidth * 2\n */\nexport function getCircleRadius(size: ProgressCircleSize): string {\n const width = ProgressCircleSizeMap[size].size;\n const strokeWidth = size === ProgressCircleSize.Large ? CIRCLE_STROKE_WIDTH_LG : CIRCLE_STROKE_WIDTH;\n return `${width / 2 - strokeWidth * 2}rem`;\n}\n \nexport function getCircleClassName(\n percentage: number,\n scoreThresholds: ScoreThresholds = ScoreThresholdDefaults\n): string {\n if (percentage >= scoreThresholds.HIGH)\n return styles.circleSuccess;\n \n if (percentage >= scoreThresholds.MODERATE)\n return styles.circleWarning;\n \n return styles.circleDanger;\n}\n \nexport function getColouredLabelClassName(\n percentage: number,\n scoreThresholds: ScoreThresholds = ScoreThresholdDefaults\n): string {\n if (percentage >= scoreThresholds.HIGH)\n return 'text-success';\n \n if (percentage >= scoreThresholds.MODERATE)\n return 'text-warning';\n \n return 'text-danger';\n}\n \nexport function getCircleContainerClassName(size: ProgressCircleSize, percentage?: number): string {\n let className = `d-inline-block ${styles.circleContainer}`;\n \n if (size === ProgressCircleSize.Large)\n className += ` ${styles.lgCircleContainer}`;\n\n if (size === ProgressCircleSize.ExtraSmall)\n className += ` ${styles.xsCircleContainer}`;\n\n if (isPending(percentage))\n className += ` ${styles.pendingCircle}`;\n \n return className;\n}\n\nexport function getPercentageToFixed(percentage?: number): number | undefined {\n if (isPending(percentage))\n return;\n \n return +percentage.toFixed(2);\n}\n \nexport function getFormattedPercentage(percentage?: number): string {\n if (isPending(percentage))\n return `--%`;\n\n return `${Math.round(percentage * 100)}%`;\n}\n\nexport function isPending(percentage?: number): boolean {\n return typeof percentage !== 'number';\n}","import React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { AnalyticsOptions } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Badge, BadgeType } from 'libs/shared/components/badges/Badge';\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\n\nimport { SvgContainer } from '../svg-container/SvgContainer';\n\nimport styles from './pill-tab-selector.scss';\n\ninterface TabContentsProps {\n tab: PillTab;\n}\n\nfunction TabContents(props: TabContentsProps): JSX.Element {\n return (\n <>\n {!!props.tab.svgName && (\n <div className={props.tab.name ? 'pe-1' : ''}>\n <SvgContainer svgName={props.tab.svgName} />\n </div>\n )}\n\n {props.tab.name}\n\n {typeof (props.tab.count) === 'number' && (\n <div className='ps-2'>\n <Badge type={BadgeType.Count} data={props.tab.count} />\n </div>\n )}\n </>\n );\n}\n\nexport interface PillTab {\n name: string;\n active: boolean;\n svgName?: string;\n\n className?: string;\n\n appLink?: Core.AppLink;\n onSelect?: () => void;\n\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n\n count?: number;\n}\n\ninterface PillTabSelectorProps {\n tabs: PillTab[];\n containerRef?: (el: HTMLElement) => void;\n listClassName?: string;\n className?: string;\n borderRadius?: 'sm' | 'lg'\n}\n\nPillTabSelector.defaultProps = {\n borderRadius: 'lg'\n};\n\nexport function PillTabSelector(props: PillTabSelectorProps): JSX.Element {\n function onSelectTab(tab: PillTab): void {\n if (tab.active || !tab.onSelect)\n return;\n\n tab.onSelect();\n\n if (tab.analyticsData && tab.analyticsOptions)\n AnalyticsHelper.logUserAction(tab.analyticsData, tab.analyticsOptions);\n }\n\n return (\n <nav className={props.className ?? ''} ref={props.containerRef}>\n <ul className={`\n list-unstyled d-inline-block m-0 ${styles.pillTabSelector}\n ${props.borderRadius ? styles.radiusSmall : ''}\n ${props.listClassName}\n `}>\n {props.tabs.map((tab, index) => {\n return (\n <li\n className={`\n p-0 ${styles.tab} ${tab.active ? 'btn btn-dark' : 'btn btn-outline-dark'}\n ${tab.name ? styles.minWidth : ''} ${tab.className}\n `}\n key={index}\n >\n {tab.appLink ? (\n <AppLink\n appLink={tab.appLink}\n analyticsData={tab.analyticsData}\n analyticsOptions={tab.analyticsOptions}\n className={`\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ${styles.tabLink}\n `}\n >\n <TabContents tab={tab} />\n </AppLink>\n ) : (\n <DivButton\n className={`\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ${styles.tabLink}\n `}\n onClick={() => onSelectTab(tab)}\n >\n <TabContents tab={tab} />\n </DivButton>\n )}\n </li>\n );\n })}\n </ul>\n </nav>\n );\n}\n","export interface ScoreThresholds {\n HIGH: number;\n MODERATE: number;\n}\n\nexport const ScoreThresholdDefaults: ScoreThresholds = {\n HIGH: 0.75,\n MODERATE: 0.5\n};\n\nexport const ScoreThresholdInsights: ScoreThresholds = {\n HIGH: 0.7,\n MODERATE: 0.7\n};","import React from 'react';\n\nimport { LayoutHelper } from 'libs/shared/utils/LayoutHelper';\n\nexport function useLockContentWidth(): void {\n React.useEffect(() => {\n LayoutHelper.lockContentWidth();\n return () => LayoutHelper.unlockContentWidth();\n }, []);\n}","import React from 'react';\n\nimport { StorageType } from 'libs/common/backbone/utils/LocalStorageHelper';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { useViewModel } from 'libs/common/react/hooks/UseViewModel';\n\nimport { IconButton } from 'libs/shared/components/icon-button/IconButton';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { VideoTypes } from 'libs/shared/interfaces';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { ViewModelKeys } from 'shared/constants/LiteViewModels';\n\nconst namespace = 'lite.insightsAdminAlert';\n\ninterface InsightsAdminAlertProps {\n hasAnalytics: boolean;\n analyticsUrl: string;\n video?: VideoTypes;\n}\n\n// eslint-disable-next-line rulesdir/require-view-title\nexport function InsightsAdminAlert(props: InsightsAdminAlertProps) {\n const [ show, setShow ] = useViewModel(\n ViewModelKeys.INSIGHTS_ADMIN_ALERT,\n true,\n { storage: StorageType.LocalStorage }\n );\n\n function onDismiss() {\n setShow(false);\n }\n\n function getAnalyticsUrl() {\n if (!props.video) return props.analyticsUrl;\n\n let videoRoute = '';\n\n if (props.video.typeId === MasterType.Interactive)\n videoRoute = `/interactives/${props.video.id}/views`;\n\n if (props.video.typeId === MasterType.Video)\n videoRoute = `/videos/${props.video.id}/views`;\n\n if (props.video.typeId === MasterType.Clip)\n videoRoute = `/clips/${props.video.id}/views`;\n\n return UrlHelper.safeUrlConcat(props.analyticsUrl, videoRoute);\n }\n\n if (!props.hasAnalytics || !show)\n return <></>;\n\n return (\n <div role='alert' className='d-flex justify-content-between align-items-center bg-light-blue rounded p-2 mb-4'>\n <div>\n <Text namespace={namespace} phrase='adminAlert' />\n <a className='text-info' href={getAnalyticsUrl()} target='_blank'>\n <Text namespace={namespace} phrase='analytics' />\n </a>.\n </div>\n <IconButton svgName={cvSvgLibrary.Close} className='text-blue' onClick={onDismiss} />\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"withDivider\":\"Tum3w\"};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { classNames } from 'libs/common/react/utils/ClassNameHelper';\n\nimport { ShareAvatar } from 'libs/shared/apps/share-v2/components/share-avatar/ShareAvatar';\nimport { Share } from 'libs/shared/apps/share-v2/interfaces/Share';\nimport { ShareHelper } from 'libs/shared/apps/share-v2/utils/ShareHelper';\nimport { ShareLinkHelper } from 'libs/shared/apps/share-v2/utils/ShareLinkHelper';\nimport { SharableEntity } from 'libs/shared/apps/share-v2/utils/ShareViewHelper';\nimport { SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { BaseObject, YearGroup } from 'libs/shared/interfaces';\n\nimport styles from './share-info.scss';\n\nconst namespace = 'insights.shareInfo';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst EXPIRE_DATE_FORMAT = 'DD/MM/YY';\n\ninterface ShareInfoProps {\n sharedObject: SharableEntity;\n share: Share;\n entity: BaseObject;\n yearGroups: YearGroup[];\n className?: string;\n classroomName?: string;\n}\n\nexport function ShareInfo(props: ShareInfoProps): JSX.Element {\n if (!props.sharedObject)\n return <></>;\n\n const hasExpiry = !!props.share.expireDate;\n const hasExpired = ShareHelper.hasShareExpired(props.share);\n const { text: privacyText } = ShareLinkHelper.getPrivateIconAndText({\n privacy: props.share.privacy,\n entityTypeId: props.sharedObject.typeId,\n hasStudentExp: false,\n entity: props.entity,\n yearGroups: props.yearGroups\n });\n\n function getExpiryText(): string {\n if (hasExpired)\n return `(${getPhrase('expired')})`;\n\n return `(${ShareHelper.getShareLocalExpiry(props.share, EXPIRE_DATE_FORMAT)})`;\n }\n\n return (\n <div className={classNames('d-flex flex-row align-items-center', styles.withDivider, props.className)}>\n <ShareAvatar\n privacy={props.share.privacy}\n type={props.share.type}\n svgSize={SvgContainerSize.Small}\n classroomName={props.classroomName}\n additionalTitleText={hasExpiry && getExpiryText()}\n hideSubtitle\n />\n {!hasExpiry && !!privacyText && <p className='mb-0'>{privacyText}</p>}\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"withDivider\":\"ZSzT3\"};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { StorageType } from 'libs/common/backbone/utils/LocalStorageHelper';\nimport { useViewModel } from 'libs/common/react/hooks/UseViewModel';\nimport { classNames } from 'libs/common/react/utils/ClassNameHelper';\n\nimport { DateRangeQueryParams } from 'libs/shared/apps/analytics/interfaces/DateRangeQueryParams';\nimport { ShareType } from 'libs/shared/apps/share-v2/enums/ShareType';\nimport { Share } from 'libs/shared/apps/share-v2/interfaces/Share';\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\nimport { ActionsDropdown } from 'libs/shared/components/actions/ActionsDropdown';\nimport { Breadcrumb, Breadcrumbs, PartialBreadcrumbs } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { IconButton } from 'libs/shared/components/icon-button/IconButton';\nimport { PillTab, PillTabSelector } from 'libs/shared/components/pill-tab-selector/PillTabSelector';\nimport { SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { ToggleSwitch } from 'libs/shared/components/toggle-switch/ToggleSwitch';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { SharedViewModelKeys } from 'libs/shared/constants/SharedViewModelKeys';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { Classroom, VideoTypes, YearGroup } from 'libs/shared/interfaces';\nimport { AnalyticsRouteHelper } from 'libs/shared/utils/AnalyticsRouteHelper';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { usePluginHelper } from 'shared/hooks/use-plugin-helper/usePluginHelper';\nimport { getShareOptionsAppLink } from 'shared/utils/ObjectAppLinkHelper';\nimport { VideoAppLinkHelper } from 'shared/utils/VideoAppLinkHelper';\n\nimport { InsightsAdminAlert } from 'apps/my-shares/components/insights-admin-alert/InsightsAdminAlert';\nimport { ShareInfo } from 'apps/my-shares/components/share-info/ShareInfo';\nimport { getShareObjectActions } from 'apps/my-shares/views/my-shares/MySharesViewUtils';\n\nimport styles from './insights-header.scss';\n\nconst namespace = 'insights.header';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface AnonymiseNamesToggleProps {\n anonymiseUsers: boolean;\n toggleAnonymiseUsers: () => void;\n}\n\nfunction AnonymiseNamesToggle(props: AnonymiseNamesToggleProps) {\n return (\n <div>\n <label htmlFor='anonymiseNames' className='mb-0 pe-3'><Text namespace={namespace} phrase='anonymiseNames' /></label>\n <ToggleSwitch id='anonymiseNames' on={props.anonymiseUsers} onClick={props.toggleAnonymiseUsers} />\n </div>\n );\n}\n\ninterface DemoTooltipProps extends React.PropsWithChildren {\n isDemo: boolean;\n}\n\nfunction DemoTooltip(props: DemoTooltipProps) {\n return (\n <Tooltip\n id='audienceFilter'\n title={getPhrase('demoOnly')}\n spanHack={props.isDemo}\n >\n <div className={props.isDemo ? 'pointer-events-none' : ''}>\n {props.children}\n </div>\n </Tooltip>\n );\n}\n\ninterface InsightsHeaderProps {\n video: VideoTypes;\n hasClassrooms?: boolean;\n dateRangeAppLinkParams?: DateRangeQueryParams;\n tabs: PillTab[]\n isDemo?: boolean;\n analyticsWebUrl?: string;\n hasAnalytics?: boolean;\n share: Share;\n yearGroups: YearGroup[];\n classroom?: Classroom;\n}\n\nexport function InsightsHeader(props: InsightsHeaderProps) {\n const [ anonymiseUsers, setAnonymiseUsers ] = useViewModel<boolean>(\n SharedViewModelKeys.ANONYMISE_USERS,\n false,\n { storage: StorageType.LocalStorage }\n );\n\n const { isPlugin } = usePluginHelper();\n const { hasPermissions } = usePermissions();\n\n const canViewSchoolAnalytics =\n hasPermissions(PermissionName.ViewAnalyticsProduct) &&\n hasPermissions(PermissionName.ViewCustomerAnalytics);\n\n const shareOptionsAppLink = getShareOptionsAppLink(props.share);\n\n function getBreadcrumbs(): Breadcrumb[] {\n if (!props.video) return [];\n if (!props.share) return [];\n\n let rootBreadcrumb: Breadcrumb = {\n name: getPhrase('shares'),\n appLink: {\n application: AppChannels.MY_SHARES,\n action: Actions.MyShares.HOME\n }\n };\n\n if (props.share.type === ShareType.Classroom) {\n rootBreadcrumb = {\n name: getPhrase('classrooms'),\n appLink: {\n application: AppChannels.CLASSROOMS,\n action: Actions.Classrooms.HOME\n }\n };\n }\n\n if (props.share.type === ShareType.Open) {\n rootBreadcrumb = {\n name: getPhrase('openClassrooms'),\n appLink: {\n application: AppChannels.CLASSROOMS,\n action: Actions.Classrooms.OPEN_CLASSROOMS\n }\n };\n }\n\n return [\n rootBreadcrumb,\n {\n name: props.video.name,\n active: true\n }\n ];\n }\n\n function getActions() {\n const actions: ActionOptions[] = [];\n\n if (props.video?.typeId === MasterType.Interactive) {\n actions.push({\n label: getPhrase('generateReport'),\n svgName: cvSvgLibrary.Print,\n appLink: {\n application: AppChannels.MY_SHARES,\n action: Actions.MyShares.INTERACTIVE_GENERATE_REPORT,\n args: [props.video.id]\n }\n });\n }\n\n if (canViewSchoolAnalytics) {\n actions.push({\n label: getPhrase('viewInAnalytics'),\n svgName: cvSvgLibrary.Analytics,\n href: AnalyticsRouteHelper.getObjectUrl(props.analyticsWebUrl, props.video, true),\n openInNewTab: true\n });\n }\n\n return [ ...actions, ...getShareObjectActions({\n share: props.share,\n sharedObject: props.video,\n isPlugin,\n hideShareOptionsActions: true\n }) ];\n }\n\n function getVideoEntityPhrase() {\n if (props.video.typeId === MasterType.Interactive) return 'viewInteractive';\n if (props.video.typeId === MasterType.Clip) return 'viewClip';\n\n return 'viewVideo';\n }\n\n return (\n <div>\n <InsightsAdminAlert\n analyticsUrl={props.analyticsWebUrl}\n hasAnalytics={props.hasAnalytics}\n video={props.video}\n />\n <section className='mb-4'>\n <div className='d-flex justify-content-between mb-3'>\n {props.video\n ? <Breadcrumbs breadcrumbs={getBreadcrumbs()} />\n : <PartialBreadcrumbs />\n }\n <div className='d-flex gap-2'>\n {!isPlugin &&\n <DemoTooltip isDemo={props.isDemo}>\n <IconButton svgName={cvSvgLibrary.Share} className='btn btn-outline-dark' appLink={shareOptionsAppLink}>\n <Text namespace={namespace} phrase='shareOptions' />\n </IconButton>\n </DemoTooltip>\n }\n <DemoTooltip isDemo={props.isDemo}>\n <ActionsDropdown\n dropdownToggleClassName='btn btn-outline-dark'\n actions={getActions()}\n />\n </DemoTooltip>\n </div>\n </div>\n \n <div className='d-flex justify-content-between mb-3'>\n <div className='me-2'>\n {props.video && (\n <>\n <h1 className='mb-0 d-inline me-2'>{props.video.name}</h1>\n {!props.isDemo &&\n <Tooltip title={getPhrase(getVideoEntityPhrase())} type='text' spanHack spanHackClassName='d-inline-block align-text-bottom'>\n <IconButton\n svgName={cvSvgLibrary.NewWindow}\n appLink={VideoAppLinkHelper.getAppLink(props.video)}\n svgSize={SvgContainerSize.Large}\n className='d-inline-block'\n customSize\n />\n </Tooltip>\n }\n </>\n )}\n {!props.video && <h1 className='partial-loading-background' style={{ width: '20rem' }}>&nbsp;</h1>}\n </div>\n </div>\n <div className={classNames('d-flex flex-row align-items-center mb-3', styles.withDivider)}>\n <ShareInfo\n sharedObject={props.video}\n share={props.share}\n entity={props.video}\n yearGroups={props.yearGroups}\n classroomName={props.classroom?.name}\n />\n <AnonymiseNamesToggle\n anonymiseUsers={anonymiseUsers}\n toggleAnonymiseUsers={() => setAnonymiseUsers(!anonymiseUsers)}\n />\n </div>\n <div className='d-flex align-items-center mb-4'>\n <PillTabSelector tabs={props.tabs} />\n </div>\n </section>\n </div>\n );\n}","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { Share } from 'libs/shared/apps/share-v2/interfaces/Share';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { getInsightsHeatmapAppLink, getInsightsOverviewAppLink, getInsightsQuestionsAppLink, getInsightsStudentsAppLink } from 'shared/utils/ObjectAppLinkHelper';\n\nconst namespace = 'shared.insightsUtils';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport type InsightsTabs = 'insights' | 'heatmap' | 'results' | 'questions';\n\nexport function getInsightsVideoTabs(share: Share, active: InsightsTabs, params?: HashObject) {\n return [\n {\n name: getPhrase('insights'),\n active: active === 'insights',\n appLink: getInsightsOverviewAppLink(share, params)\n },\n {\n name: getPhrase('heatmap'),\n active: active === 'heatmap',\n appLink: getInsightsHeatmapAppLink(share, params)\n }\n ];\n}\n\nexport function getInsightsInteractiveTabs(share: Share, active: InsightsTabs) {\n return [\n {\n name: getPhrase('insights'),\n active: active === 'insights',\n appLink: getInsightsOverviewAppLink(share)\n },\n {\n name: getPhrase('results'),\n active: active === 'results',\n appLink: getInsightsStudentsAppLink(share)\n },\n {\n name: getPhrase('questions'),\n active: active === 'questions',\n appLink: getInsightsQuestionsAppLink(share)\n },\n {\n name: getPhrase('heatmap'),\n active: active === 'heatmap',\n appLink: getInsightsHeatmapAppLink(share)\n }\n ];\n}\n\nexport function getInsightsDemoInteractiveTabs(id: string, active: InsightsTabs, params: HashObject) {\n return [\n {\n name: getPhrase('insights'),\n active: active === 'insights',\n appLink: {\n application: AppChannels.MY_SHARES,\n action: Actions.MyShares.INTERACTIVE_OVERVIEW_DEMO,\n args: [id],\n params\n }\n },\n {\n name: getPhrase('results'),\n active: active === 'results',\n appLink: {\n application: AppChannels.MY_SHARES,\n action: Actions.MyShares.INTERACTIVE_STUDENTS_DEMO,\n args: [id],\n params\n }\n },\n {\n name: getPhrase('questions'),\n active: active === 'questions',\n appLink: {\n application: AppChannels.MY_SHARES,\n action: Actions.MyShares.INTERACTIVE_QUESTIONS_DEMO,\n args: [id],\n params\n }\n },\n {\n name: getPhrase('heatmap'),\n active: active === 'heatmap',\n appLink: {\n application: AppChannels.MY_SHARES,\n action: Actions.MyShares.INTERACTIVE_HEATMAP_DEMO,\n args: [id],\n params\n }\n }\n ];\n}","// extracted by mini-css-extract-plugin\nexport default {\"circleContainer\":\"p8Vgz\",\"backgroundCircle\":\"asGGE\",\"circleSuccess\":\"PXLNj\",\"circleWarning\":\"ZckRN\",\"circleDanger\":\"slBRg\",\"lgCircleContainer\":\"N8KCI\",\"xsCircleContainer\":\"RPqZ2\",\"pendingCircle\":\"DKrcq\",\"centredPercentageText\":\"tpmLR\"};","// extracted by mini-css-extract-plugin\nexport default {\"pillTabSelector\":\"Hdi6o\",\"tab\":\"RvNxr\",\"minWidth\":\"GHSz9\",\"radiusSmall\":\"VhJJa\",\"tabLink\":\"WFyvo\"};"],"names":["getPhrase","anonymiseUserName","user","shouldAnonymise","userId","id","sessionId","seed","guid","hash","i","length","charCodeAt","Math","abs","guidToSeed","floor","Date","getMinutes","dictionaries","separator","style","icons","iconColours","shareTypeTitlePhraseMap","ShareAvatar","props","className","svgName","type","variant","textVariant","svgWrapperClassName","svgSize","S","classroomName","additionalTitleText","title","getTitle","hideSubtitle","subtitleText","privacy","studentCount","classroomGroupCount","smartCount","getClassroomSubtitle","includes","getLinkSubtitle","getSubtitle","SharePrivacy","ShareLinkHelper","getPrivateIconAndText","options","entityTypeId","hasStudentExp","entity","yearGroups","icon","text","Array","isArray","getRespectRatingText","getIconAndText","linkExpireDate","isPasswordProtected","status","isToday","dayDifference","days","video","restriction","_restrictions","value","yearGroup","maxYearGroup","minAllowedYearGroup","rating","name","getShareLinkAccessType","isTvContent","isClickViewContent","canManageAccess","PercentageIndicatorLayout","ProgressCircle","ref","circle","radius","r","baseVal","circumference","PI","offset","percentage","strokeDasharray","strokeDashoffset","toString","size","scoreThresholds","PercentageIndicator","percentageToFixed","layout","LabelInside","label","customLabel","LabelOnly","LabelBefore","defaultProps","CircleOnly","ProgressCircleSize","CIRCLE_STROKE_WIDTH","CIRCLE_STROKE_WIDTH_LG","ProgressCircleSizeMap","ExtraSmall","Small","Large","getCircleRadius","width","strokeWidth","getCircleClassName","HIGH","MODERATE","getColouredLabelClassName","getCircleContainerClassName","isPending","getPercentageToFixed","toFixed","getFormattedPercentage","round","TabContents","tab","count","data","PillTabSelector","containerRef","borderRadius","listClassName","tabs","map","index","active","key","appLink","analyticsData","analyticsOptions","onClick","onSelect","onSelectTab","ScoreThresholdDefaults","ScoreThresholdInsights","useLockContentWidth","namespace","InsightsAdminAlert","storage","show","setShow","hasAnalytics","role","phrase","href","analyticsUrl","videoRoute","typeId","getAnalyticsUrl","target","LanguageService","EXPIRE_DATE_FORMAT","ShareInfo","sharedObject","hasExpiry","share","expireDate","hasExpired","ShareHelper","privacyText","SvgContainer","AnonymiseNamesToggle","htmlFor","Text","ToggleSwitch","on","anonymiseUsers","toggleAnonymiseUsers","DemoTooltip","Tooltip","spanHack","isDemo","children","InsightsHeader","SharedViewModelKeys","setAnonymiseUsers","isPlugin","usePluginHelper","hasPermissions","usePermissions","canViewSchoolAnalytics","PermissionName","shareOptionsAppLink","analyticsWebUrl","Breadcrumbs","breadcrumbs","rootBreadcrumb","application","action","ShareType","getBreadcrumbs","IconButton","ActionsDropdown","dropdownToggleClassName","actions","MasterType","push","args","AnalyticsRouteHelper","openInNewTab","hideShareOptionsActions","getActions","spanHackClassName","VideoAppLinkHelper","customSize","classroom","getInsightsVideoTabs","params","getInsightsInteractiveTabs","getInsightsDemoInteractiveTabs"],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[1192],{29923:(e,t,r)=>{r.d(t,{F:()=>l});var n=r(32735),a=r(23481),o=r(89965),i=r(13876);function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}var s=a.T.encloseNamespace("sharev2.deleteShareContent");function l(e){var t,r,a,l=(r=n.useState(!1),a=2,function(e){if(Array.isArray(e))return e}(r)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,a,o,i,c=[],s=!0,l=!1;try{if(o=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;s=!1}else for(;!(s=(n=o.call(r)).done)&&(c.push(n.value),c.length!==t);s=!0);}catch(e){l=!0,a=e}finally{try{if(!s&&null!=r.return&&(i=r.return(),Object(i)!==i))return}finally{if(l)throw a}}return c}}(r,a)||function(e,t){if(e){if("string"==typeof e)return c(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?c(e,t):void 0}}(r,a)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),u=l[0],d=l[1];return n.createElement("div",{className:"d-flex flex-column gap-3"},n.createElement("p",{className:"m-0"},e.phrases.leadingSentence),n.createElement("ul",{className:"m-0"},e.phrases.bulletPoints.map(function(e,t){return n.createElement("li",{key:t},e)})),n.createElement(o.X,{id:"ack",checked:u,onChange:function(e){return d(e.target.checked)},label:e.phrases.acknowledgement}),n.createElement(i.u,null,e.onBack&&n.createElement(i.u.Cancel,{onClick:e.onBack,text:null!==(t=e.phrases.backButton)&&void 0!==t?t:s("backButton"),variant:"link"}),n.createElement(i.u.Submit,{onClick:function(){u&&!e.loading&&e.onDelete()},text:e.phrases.deleteButton,variant:"danger",disabled:!u||e.loading,showSpinner:e.loading})))}},33518:(e,t,r)=>{var n;r.d(t,{e:()=>n}),function(e){e.Public="Public",e.PinCode="PinCode",e.PasswordProtected="PasswordProtected",e.ProtectedOverrideRestriction="ProtectedOverrideRestriction",e.JustMySchoolOverrideRestriction="JustMySchoolOverrideRestriction",e.Protected="Protected",e.JustMySchool="JustMySchool",e.Direct="Direct"}(n||(n={}))},18488:(e,t,r)=>{r.d(t,{o:()=>i});var n=r(99940),a=r(97395),o={namespace:"share-v2"},i={createShare:function(e){return{url:"{gateway}/v2/shares",key:"create:share-v2",type:n.k.POST,data:e,normalizeOptions:o,invalidationKeys:["sent:share-v2","get:share-v2:shares:object"]}},updateShare:function(e,t){return{url:"{gateway}/v2/shares/".concat(e),key:"update:share-v2",type:n.k.PUT,data:t,normalizeOptions:o,invalidationKeys:["share-v2:permanent-link:object","share-v2:".concat(e),"get:share-v2:shares:object"]}},deleteShare:function(e){return{type:n.k.DELETE,url:"{gateway}/v2/shares/".concat(e),key:"delete:share-v2",normalizeOptions:o,invalidationKeys:["share-v2:permanent-link:object","sent:share-v2","share-v2:".concat(e),"get:share-v2:shares:object"]}},getShare:function(e){return{url:"{gateway}/v2/shares/".concat(e),key:"share-v2:".concat(e),bootstrapName:"share-v2:".concat(e),type:n.k.GET,normalizeOptions:o}},getSentShares:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=Object.values(e).sort().join(":");return{url:a._.urlBuilder("{gateway}/v2/shares/sent",e),key:"sent:share-v2:".concat(t),type:n.k.GET,normalize:!1}},getShareLink:function(e){return{url:a._.urlBuilder("{gateway}/v2/shares/permanent-link",{objectId:e}),key:"share-v2:permanent-link:object:".concat(e),normalizeOptions:o}},createShareLink:function(e){return{type:n.k.POST,url:a._.urlBuilder("{gateway}/v2/shares/permanent-link",Object.assign({},e)),key:"create:share-v2:permanent-link:object:".concat(e.objectId),invalidationKeys:["share-v2:permanent-link:object:".concat(e.objectId),"sent:share-v2","get:share-v2:shares:object:".concat(e.objectId)],normalizeOptions:o}},getPrivacy:function(e){return{url:"{gateway}/v1/objects/".concat(e,"/access"),key:"privacy:".concat(e),normalize:!1}},getSharesByObjectId:function(e){return{url:"{gateway}/v2/shares/objects/".concat(e),key:"get:share-v2:shares:object:".concat(e),type:n.k.GET,normalizeOptions:o}},createSharePincode:function(e){return{url:"{gateway}/v2/shares/".concat(e,"/pincode"),key:"create:share-v2:".concat(e,":pincode"),type:n.k.POST}},getPincodeByShareId:function(e){return{url:"{gateway}/v2/shares/".concat(e,"/pincode"),key:"get:share-v2:".concat(e,":pincode")}},getPincodeByCode:function(e){return{url:"{gateway}/v2/shares/pincode?code=".concat(e),key:"get:share-v2:pincode:".concat(e)}}}},93563:(e,t,r)=>{r.d(t,{_:()=>c});var n=r(20354),a=r(33518),o=r(18488),i=r(8233);function c(e){var t=n.a.useGetFetchAsync(),r=n.a.useBasicFetch(o.o.getPrivacy(e.entityId));return{loaded:!!r.data,updateShareLink:function(e,r){return t(o.o.updateShare(e,r))},createShareLink:function(n){var c=null!=n?n:"protected"===i.R.getShareLinkAccessType(r.data)?a.e.Protected:a.e.JustMySchool;return t(o.o.createShareLink({objectId:e.entityId,privacy:c}))},deleteShareLink:function(e){return t(o.o.deleteShare(e))}}}},8233:(e,t,r)=>{r.d(t,{R:()=>y});var n=r(23481),a=r(110),o=r(33518),i=r(4594),c=r(49080),s=r(26361),l=r(35223),u=r(31908);function d(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}var v=n.T.encloseNamespace("sharev2.utils"),y={getPrivateIconAndText:function(e){var t=e.entityTypeId,r=e.privacy,n=e.hasStudentExp,a=e.entity,c=e.yearGroups;if(t===i.E.Topic||t===i.E.Series)return{icon:l.vn.VisibleOn,text:v(n?"justMySchoolTeachers":"justMySchoolDescription")};if(!Array.isArray(r))switch(r){case o.e.Public:return{icon:l.vn.VisibleOn,text:v("publicDescription")};case o.e.ProtectedOverrideRestriction:return{icon:l.vn.VisibleOn,text:v("clickViewOnly")};case o.e.Protected:return{icon:l.vn.Lock,text:y.getRespectRatingText(a,c,n)};case o.e.JustMySchoolOverrideRestriction:return{icon:l.vn.Lock,text:v(n?"justMySchoolTeachers":"justMySchoolDescription")};case o.e.JustMySchool:return{icon:l.vn.Lock,text:y.getRespectRatingText(a,c,n)};case o.e.PinCode:return{icon:l.vn.Lock,text:v("pinDescription")};case o.e.PasswordProtected:return{icon:l.vn.Lock,text:v("privateDescription")};default:return{}}},getIconAndText:function(e){var t=e.linkExpireDate,r=e.isPasswordProtected,n=e.status;if(!t&&!r)return y.getPrivateIconAndText(e);if(!t)return{icon:l.vn.Lock,text:v("password")};var o=a.O.isToday(t),i=a.O.diffBetween(t,new Date,"day");if(!r){var s=o?v("expiryToday"):v("expiry",{days:i});return n===c.F.Expired&&(s=v("expired")),{icon:l.vn.Timer,text:s}}var u=o?v("passwordExpiryToday"):v("passwordExpiry",{days:i});return n===c.F.Expired&&(u=v("passwordExpired")),{icon:l.vn.Lock,text:u}},getRespectRatingText:function(e,t,r){var n;if(!e||!t)return null;if(r)return v("justMySchoolTeachers");if(!u.M.isVideoType(e))return v("collectionRating");var a=s.l.getWeightedRestriction(null===(n=e._restrictions)||void 0===n?void 0:n.value);if(a&&!a.yearGroup)return v("onlyAdmins");var o,i,c,l=u.M.getRating(e),y=function(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return d(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?d(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,a=function(){};return{s:a,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:a}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,i=!0,c=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return i=e.done,e},e:function(e){c=!0,o=e},f:function(){try{i||null==r.return||r.return()}finally{if(c)throw o}}}}(t);try{for(y.s();!(c=y.n()).done;){var h=c.value;(!o||h.value>o.value)&&(o=h),a&&h.value<=a.yearGroup||l&&h.rating.value<l.value||(!i||h.value<i.value)&&(i=h)}}catch(e){y.e(e)}finally{y.f()}return i?1===t.length?v("clickViewOnly"):i.value===o.value?v("maxYearGroup",{yearGroup:o.name}):v("yearGroupRange",{yearGroup:i.name}):v("onlyStaff")},getShareLinkAccessType:function(e){return e.isTvContent||e.isClickViewContent?"protected":e.canManageAccess?"owner":"private"}}},31192:(e,t,r)=>{r.r(t),r.d(t,{DeleteLegacyShareConfirmationView:()=>h});var n=r(32735),a=r(6044),o=r(23481),i=r(20354),c=r(29923),s=r(18488),l=r(93563),u=r(9111),d=r(69883);function v(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}var y=o.T.encloseNamespace("sharev2.deleteLegacyShareConfirmation");function h(e){var t,r,o,h=(0,d.Z)(),p=i.a.useBasicFetch(s.o.getShare(e.shareId)),f=(r=n.useState(!1),o=2,function(e){if(Array.isArray(e))return e}(r)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,a,o,i,c=[],s=!0,l=!1;try{if(o=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;s=!1}else for(;!(s=(n=o.call(r)).done)&&(c.push(n.value),c.length!==t);s=!0);}catch(e){l=!0,a=e}finally{try{if(!s&&null!=r.return&&(i=r.return(),Object(i)!==i))return}finally{if(l)throw a}}return c}}(r,o)||function(e,t){if(e){if("string"==typeof e)return v(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?v(e,t):void 0}}(r,o)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),g=f[0],m=f[1],k=(0,l._)({entityId:null===(t=p.data)||void 0===t?void 0:t.objectId.toString()}).deleteShareLink,b=p.hasCompleted;return n.createElement(u.G,{title:y("title"),closePopup:e.closePopup,showLoadingSpinner:!b},n.createElement(c.F,{loading:g,phrases:{leadingSentence:y("intro"),bulletPoints:[y("loseAccessInfo"),y("loseAccessUsage")],acknowledgement:y("acknowledgement"),deleteButton:y("delete")},onDelete:function(){var t;m(!0),k(null===(t=p.data)||void 0===t?void 0:t.shareId).then(function(){m(!1),h.success(y("deleteSuccess")),e.closePopup(),e.previousAppLink&&a.C$.trigger(e.previousAppLink)}).catch(function(){h.error(y("deleteFailed"))}).finally(function(){m(!1)})}}))}}}]);
2
- //# sourceMappingURL=1192-6ac54d734b-lite.chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scripts/1192-6ac54d734b-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/apps/share-v2/components/delete-share-content/DeleteShareContent.tsx","file:///app/packages/libs/shared/src/apps/share-v2/enums/SharePrivacy.ts","file:///app/packages/libs/shared/src/apps/share-v2/flight-requests/ShareRequests.ts","file:///app/packages/libs/shared/src/apps/share-v2/hooks/useShareLinkActions.ts","file:///app/packages/libs/shared/src/apps/share-v2/utils/ShareLinkHelper.ts","file:///app/packages/libs/shared/src/apps/share-v2/views/delete-legacy-share-confirmation-view/DeleteLegacyShareConfirmationView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { Checkbox } from 'libs/shared/components/forms/form-checkbox/Checkbox';\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\n\nconst namespace = 'sharev2.deleteShareContent';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport interface DeleteShareContentProps {\n loading: boolean;\n phrases: {\n leadingSentence: string;\n bulletPoints: string[];\n acknowledgement: string;\n deleteButton: string;\n backButton?: string;\n };\n onDelete: () => void;\n onBack?: () => void;\n}\n\nexport function DeleteShareContent(props: DeleteShareContentProps) {\n const [ ack, setAck ] = React.useState(false);\n\n function onDelete() {\n if (!ack || props.loading)\n return;\n\n props.onDelete();\n }\n\n return (\n <div className='d-flex flex-column gap-3'>\n <p className='m-0'>{props.phrases.leadingSentence}</p>\n <ul className='m-0'>\n {props.phrases.bulletPoints.map((phrase, index) => (\n <li key={index}>\n {phrase}\n </li>\n ))}\n </ul>\n <Checkbox\n id='ack'\n checked={ack}\n onChange={e => setAck(e.target.checked)}\n label={props.phrases.acknowledgement}\n />\n <PopupButtons>\n {props.onBack && (\n <PopupButtons.Cancel\n onClick={props.onBack}\n text={props.phrases.backButton ?? getPhrase('backButton')}\n variant='link'\n />\n )}\n <PopupButtons.Submit\n onClick={onDelete}\n text={props.phrases.deleteButton}\n variant='danger'\n disabled={!ack || props.loading}\n showSpinner={props.loading}\n />\n </PopupButtons>\n </div>\n );\n}","export enum SharePrivacy {\n Public = 'Public',\n PinCode = 'PinCode',\n PasswordProtected = 'PasswordProtected',\n ProtectedOverrideRestriction = 'ProtectedOverrideRestriction',\n JustMySchoolOverrideRestriction = 'JustMySchoolOverrideRestriction',\n Protected = 'Protected',\n JustMySchool = 'JustMySchool',\n Direct = 'Direct'\n}","import { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/flight';\n\nimport { ShareType } from 'libs/shared/apps/share-v2/enums/ShareType';\nimport { CreateShareLinkRequest } from 'libs/shared/apps/share-v2/interfaces/CreateShareLinkRequest';\nimport { CreateShareRequest } from 'libs/shared/apps/share-v2/interfaces/CreateShareRequest';\nimport { UpdateShareRequest } from 'libs/shared/apps/share-v2/interfaces/UpdateShareRequest';\n\nconst normalizeOptions: Flight.NormalizeOptions = {\n namespace: 'share-v2'\n};\n\nexport interface GetSentSharesParams {\n cursor?: string;\n scopeId?: string;\n objectTypeId?: number;\n type?: ShareType[];\n}\n\nexport const ShareRequests = {\n createShare(\n data: CreateShareRequest\n ): Flight.Request {\n return {\n url: '{gateway}/v2/shares',\n key: 'create:share-v2',\n type: HttpVerbs.POST,\n data,\n normalizeOptions,\n invalidationKeys: [ 'sent:share-v2', 'get:share-v2:shares:object' ]\n };\n },\n\n updateShare(\n shareId: string,\n data: UpdateShareRequest\n ): Flight.Request {\n return {\n url: `{gateway}/v2/shares/${shareId}`,\n key: `update:share-v2`,\n type: HttpVerbs.PUT,\n data,\n normalizeOptions,\n invalidationKeys: [ 'share-v2:permanent-link:object', `share-v2:${shareId}`, 'get:share-v2:shares:object' ]\n };\n },\n \n deleteShare(\n shareId: string\n ): Flight.Request {\n return {\n type: HttpVerbs.DELETE,\n url: `{gateway}/v2/shares/${shareId}`,\n key: `delete:share-v2`,\n normalizeOptions,\n invalidationKeys: [ 'share-v2:permanent-link:object', 'sent:share-v2', `share-v2:${shareId}`, 'get:share-v2:shares:object' ]\n };\n },\n\n getShare(\n shareId: string\n ): Flight.Request {\n return {\n url: `{gateway}/v2/shares/${shareId}`,\n key: `share-v2:${shareId}`,\n bootstrapName: `share-v2:${shareId}`,\n type: HttpVerbs.GET,\n normalizeOptions\n };\n },\n\n getSentShares(\n params: GetSentSharesParams = {}\n ): Flight.Request {\n const key = Object.values(params).sort().join(':');\n\n return {\n url: UrlHelper.urlBuilder('{gateway}/v2/shares/sent', params),\n key: `sent:share-v2:${key}`,\n type: HttpVerbs.GET,\n normalize: false\n };\n },\n\n getShareLink(\n id: string\n ): Flight.Request {\n return {\n url: UrlHelper.urlBuilder('{gateway}/v2/shares/permanent-link', { objectId: id }),\n key: `share-v2:permanent-link:object:${id}`,\n normalizeOptions\n };\n },\n\n createShareLink(\n data: CreateShareLinkRequest\n ): Flight.Request {\n return {\n type: HttpVerbs.POST,\n url: UrlHelper.urlBuilder('{gateway}/v2/shares/permanent-link', { ...data }),\n key: `create:share-v2:permanent-link:object:${data.objectId}`,\n invalidationKeys: [ `share-v2:permanent-link:object:${data.objectId}`, 'sent:share-v2', `get:share-v2:shares:object:${data.objectId}` ],\n normalizeOptions\n };\n },\n\n getPrivacy(id: string): Flight.Request {\n return {\n url: `{gateway}/v1/objects/${id}/access`,\n key: `privacy:${id}`,\n normalize: false\n };\n },\n \n getSharesByObjectId(\n objectId: string | number\n ): Flight.Request {\n return {\n url: `{gateway}/v2/shares/objects/${objectId}`,\n key: `get:share-v2:shares:object:${objectId}`,\n type: HttpVerbs.GET,\n normalizeOptions\n };\n },\n\n createSharePincode(shareId: string): Flight.Request {\n return {\n url: `{gateway}/v2/shares/${shareId}/pincode`,\n key: `create:share-v2:${shareId}:pincode`,\n type: HttpVerbs.POST\n };\n },\n\n getPincodeByShareId(shareId: string): Flight.Request {\n return {\n url: `{gateway}/v2/shares/${shareId}/pincode`,\n key: `get:share-v2:${shareId}:pincode`\n };\n },\n\n getPincodeByCode(code: string): Flight.Request {\n return {\n url: `{gateway}/v2/shares/pincode?code=${code}`,\n key: `get:share-v2:pincode:${code}`\n };\n }\n};\n","import { Flight } from 'libs/common/react/index';\n\nimport { SharePrivacy } from '../enums/SharePrivacy';\nimport { ShareRequests } from '../flight-requests/ShareRequests';\nimport { Share } from '../interfaces/Share';\nimport { SharePrivacyResponse } from '../interfaces/SharePrivacyResponse';\nimport { UpdateShareRequest } from '../interfaces/UpdateShareRequest';\nimport { ShareLinkHelper } from '../utils/ShareLinkHelper';\n\ninterface UseShareLinkActionsOptions {\n entityId: string;\n}\n\nexport function useShareLinkActions(options: UseShareLinkActionsOptions) {\n const fetchAsync = Flight.useGetFetchAsync();\n\n const entityPrivacy = Flight.useBasicFetch<SharePrivacyResponse>(ShareRequests.getPrivacy(options.entityId));\n\n function getCreateSharePrivacy() {\n const accessType = ShareLinkHelper.getShareLinkAccessType(entityPrivacy.data);\n\n return accessType === 'protected'\n ? SharePrivacy.Protected\n : SharePrivacy.JustMySchool;\n }\n\n function updateShareLink(shareId: string, data: UpdateShareRequest): Promise<Share> {\n return fetchAsync<Share>(ShareRequests.updateShare(shareId, data));\n }\n\n function createShareLink(privacy?: SharePrivacy): Promise<Share> {\n const requestPrivacy = privacy ?? getCreateSharePrivacy();\n return fetchAsync<Share>(ShareRequests.createShareLink({ objectId: options.entityId, privacy: requestPrivacy }));\n }\n\n function deleteShareLink(shareId: string): Promise<void> {\n return fetchAsync(ShareRequests.deleteShare(shareId));\n }\n\n return {\n loaded: !!entityPrivacy.data,\n updateShareLink,\n createShareLink,\n deleteShareLink\n };\n}","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { SharePrivacy } from 'libs/shared/apps/share-v2/enums/SharePrivacy';\nimport type { SharePrivacyResponse } from 'libs/shared/apps/share-v2/interfaces/SharePrivacyResponse';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { ShareLinkStatus } from 'libs/shared/enums/ShareLinkStatus';\nimport type { BaseObject, YearGroup } from 'libs/shared/interfaces';\nimport { RestrictionHelper } from 'libs/shared/utils/RestrictionHelper';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nconst namespace = 'sharev2.utils';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface GetIconAndTextOptions {\n linkExpireDate: string;\n isPasswordProtected: boolean;\n privacy: SharePrivacy;\n status: ShareLinkStatus;\n entityTypeId: MasterType;\n hasStudentExp: boolean;\n entity: BaseObject;\n yearGroups: YearGroup[];\n}\n\ninterface GetPrivateIconAndTextOptions {\n privacy: SharePrivacy;\n entityTypeId: MasterType;\n hasStudentExp: boolean;\n entity: BaseObject;\n yearGroups: YearGroup[];\n}\n\nexport const ShareLinkHelper = {\n getPrivateIconAndText: (options: GetPrivateIconAndTextOptions) => {\n const { entityTypeId, privacy, hasStudentExp, entity, yearGroups } = options;\n \n if (entityTypeId === MasterType.Topic || entityTypeId === MasterType.Series)\n return { icon: cvSvgLibrary.VisibleOn, text: getPhrase(hasStudentExp ? 'justMySchoolTeachers' : 'justMySchoolDescription') };\n \n /**\n * This is mainly for typescript, privacy will be an array for playlists\n * but that is handled above\n */\n if (Array.isArray(privacy))\n return;\n \n switch (privacy) {\n case SharePrivacy.Public:\n return { icon: cvSvgLibrary.VisibleOn, text: getPhrase('publicDescription') };\n case SharePrivacy.ProtectedOverrideRestriction:\n return { icon: cvSvgLibrary.VisibleOn, text: getPhrase('clickViewOnly') };\n case SharePrivacy.Protected:\n return {\n icon: cvSvgLibrary.Lock,\n text: ShareLinkHelper.getRespectRatingText(entity, yearGroups, hasStudentExp)\n };\n case SharePrivacy.JustMySchoolOverrideRestriction:\n return { icon: cvSvgLibrary.Lock, text: getPhrase(hasStudentExp ? 'justMySchoolTeachers' : 'justMySchoolDescription') };\n case SharePrivacy.JustMySchool:\n return {\n icon: cvSvgLibrary.Lock,\n text: ShareLinkHelper.getRespectRatingText(entity, yearGroups, hasStudentExp)\n };\n case SharePrivacy.PinCode:\n return { icon: cvSvgLibrary.Lock, text: getPhrase('pinDescription') };\n case SharePrivacy.PasswordProtected:\n return { icon: cvSvgLibrary.Lock, text: getPhrase('privateDescription') };\n default:\n return {};\n }\n },\n\n getIconAndText: (options: GetIconAndTextOptions) => {\n const { linkExpireDate, isPasswordProtected, status } = options;\n if (!linkExpireDate && !isPasswordProtected)\n return ShareLinkHelper.getPrivateIconAndText(options);\n \n if (!linkExpireDate)\n return { icon: cvSvgLibrary.Lock, text: getPhrase('password') };\n \n const isToday = DateHelper.isToday(linkExpireDate);\n const dayDifference = DateHelper.diffBetween(linkExpireDate, new Date(), 'day');\n \n if (!isPasswordProtected) {\n let text = isToday\n ? getPhrase('expiryToday')\n : getPhrase('expiry', { days: dayDifference });\n \n if (status === ShareLinkStatus.Expired)\n text = getPhrase('expired');\n \n return { icon: cvSvgLibrary.Timer, text };\n }\n \n let text = isToday\n ? getPhrase('passwordExpiryToday')\n : getPhrase('passwordExpiry', { days: dayDifference });\n \n if (status === ShareLinkStatus.Expired)\n text = getPhrase('passwordExpired');\n \n return { icon: cvSvgLibrary.Lock, text };\n },\n\n getRespectRatingText(video: BaseObject, yearGroups: YearGroup[], hasStudentExp: boolean) {\n if (!video || !yearGroups)\n return null;\n \n if (hasStudentExp)\n return getPhrase('justMySchoolTeachers');\n \n if (!VideoHelper.isVideoType(video))\n return getPhrase('collectionRating');\n \n const restriction = RestrictionHelper.getWeightedRestriction(video._restrictions?.value);\n \n /**\n * Restrictions without a year level are teacher restricitons, which means only admins can see it.\n */\n if (restriction && !restriction.yearGroup)\n return getPhrase('onlyAdmins');\n \n const rating = VideoHelper.getRating(video);\n \n let maxYearGroup: YearGroup;\n let minAllowedYearGroup: YearGroup;\n \n for (const yearGroup of yearGroups) {\n /**\n * If our year level is our new highest so far, save it\n */\n if (!maxYearGroup || yearGroup.value > maxYearGroup.value)\n maxYearGroup = yearGroup;\n \n /**\n * If the restriction is higher than this year level, skip it.\n */\n if (restriction && yearGroup.value <= restriction.yearGroup)\n continue;\n \n /**\n * If therating is higher than this year level's rating value, skip it.\n */\n if (rating && yearGroup.rating.value < rating.value)\n continue;\n \n /**\n * If our year level is the new lowest so far, save it\n */\n if (!minAllowedYearGroup || yearGroup.value < minAllowedYearGroup.value)\n minAllowedYearGroup = yearGroup;\n }\n \n /**\n * If no year levels are allowed, then it's staff only.\n */\n if (!minAllowedYearGroup)\n return getPhrase('onlyStaff');\n \n \n /**\n * If there's only one year level, and it's allowed, then we can just\n * say that everyone in your school can access it.\n */\n if (yearGroups.length === 1)\n return getPhrase('clickViewOnly');\n \n /**\n * We differentiate the copy if it's the highest year level or not. \n * Basically if we need to say \"X and above\" or not.\n */\n if (minAllowedYearGroup.value === maxYearGroup.value)\n return getPhrase('maxYearGroup', { yearGroup: maxYearGroup.name });\n \n return getPhrase('yearGroupRange', { yearGroup: minAllowedYearGroup.name });\n },\n\n getShareLinkAccessType(privacy: SharePrivacyResponse): 'private' | 'owner' | 'protected' {\n /**\n * If an entity is not a ClickView content and they cannot manage access\n * settings of the entity (which they can if its their private entity)\n * it means that its a TV content\n */\n if (privacy.isTvContent || privacy.isClickViewContent)\n return 'protected';\n\n if (privacy.canManageAccess)\n return 'owner';\n\n return 'private';\n }\n};","import React from 'react';\n\nimport { AppLinkHelper } from 'libs/common/backbone/core';\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/react/index';\n\nimport { DeleteShareContent } from 'libs/shared/apps/share-v2/components/delete-share-content/DeleteShareContent';\nimport { ShareRequests } from 'libs/shared/apps/share-v2/flight-requests/ShareRequests';\nimport { useShareLinkActions } from 'libs/shared/apps/share-v2/hooks/useShareLinkActions';\nimport { Share } from 'libs/shared/apps/share-v2/interfaces/Share';\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { PopupViewProps } from 'libs/shared/interfaces';\n\nconst namespace = 'sharev2.deleteLegacyShareConfirmation';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport interface DeleteLegacyShareConfirmationViewProps extends PopupViewProps {\n shareId: string;\n previousAppLink?: Core.AppLink;\n}\n\nexport function DeleteLegacyShareConfirmationView(props: DeleteLegacyShareConfirmationViewProps) {\n const alerts = useAlerts();\n const share = Flight.useBasicFetch<Share>(ShareRequests.getShare(props.shareId));\n\n const [ loading, setLoading ] = React.useState(false);\n\n const { deleteShareLink: deleteShare } = useShareLinkActions({\n entityId: share.data?.objectId.toString()\n });\n \n function onClickDelete() {\n setLoading(true);\n\n deleteShare(share.data?.shareId).then(() => {\n setLoading(false);\n alerts.success(getPhrase('deleteSuccess'));\n props.closePopup();\n\n if (props.previousAppLink) {\n AppLinkHelper.trigger(props.previousAppLink);\n }\n }).catch(() => {\n alerts.error(getPhrase('deleteFailed'));\n }).finally(() => {\n setLoading(false);\n });\n }\n\n const loaded = share.hasCompleted;\n\n return (\n <Popup\n title={getPhrase('title')}\n closePopup={props.closePopup}\n showLoadingSpinner={!loaded}\n >\n <DeleteShareContent\n loading={loading}\n phrases={{\n leadingSentence: getPhrase('intro'),\n bulletPoints: [\n getPhrase('loseAccessInfo'),\n getPhrase('loseAccessUsage')\n ],\n acknowledgement: getPhrase('acknowledgement'),\n deleteButton: getPhrase('delete')\n }}\n onDelete={onClickDelete}\n />\n </Popup>\n );\n}"],"names":["getPhrase","DeleteShareContent","props","ack","setAck","className","phrases","leadingSentence","bulletPoints","map","phrase","index","key","id","checked","onChange","e","target","label","acknowledgement","onBack","onClick","text","backButton","variant","loading","onDelete","deleteButton","disabled","showSpinner","SharePrivacy","normalizeOptions","namespace","ShareRequests","createShare","data","url","type","invalidationKeys","updateShare","shareId","deleteShare","getShare","bootstrapName","getSentShares","params","Object","values","sort","join","normalize","getShareLink","objectId","createShareLink","getPrivacy","getSharesByObjectId","createSharePincode","getPincodeByShareId","getPincodeByCode","code","useShareLinkActions","options","fetchAsync","entityPrivacy","entityId","loaded","updateShareLink","privacy","requestPrivacy","deleteShareLink","ShareLinkHelper","getPrivateIconAndText","entityTypeId","hasStudentExp","entity","yearGroups","icon","Array","isArray","getRespectRatingText","getIconAndText","linkExpireDate","isPasswordProtected","status","isToday","dayDifference","Date","days","video","restriction","_restrictions","value","yearGroup","maxYearGroup","minAllowedYearGroup","rating","length","name","getShareLinkAccessType","isTvContent","isClickViewContent","canManageAccess","DeleteLegacyShareConfirmationView","alerts","share","setLoading","toString","hasCompleted","title","closePopup","showLoadingSpinner","then","success","previousAppLink","error"],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[1199],{93479:(e,t,n)=>{n.d(t,{I:()=>c});var a=n(99940);function r(e,t,n){if(!t)return e;var a="".concat(e,":").concat(t.start,":").concat(t.end),r=Array.isArray(t.userId)?t.userId.sort().join(":"):t.userId,i=Array.isArray(t.groupId)?t.groupId.sort().join(":"):t.groupId,c=Array.isArray(t.customerId)?t.customerId.sort().join(":"):t.customerId;return r&&(a+=":".concat(r)),i&&(a+=":".concat(i)),c&&(a+=":".concat(c)),n&&(a+=":".concat(n)),a}function i(e,t,n){return{currentUserId:e.id,currentCustomerId:e.customerId,dateRange:t?{start:t.start,end:t.end}:void 0,userIds:null==t?void 0:t.userId,classroomsAndGroups:null==t?void 0:t.groupId,shareId:n}}var c={interactiveResultSet:function(e,t,n,c,l,o,s,u){return{url:l?"/api/domain/v3/analytics/interactives/".concat(e,"/metadata/").concat(t):"/api/domain/v2/analytics/interactives/".concat(e,"/metadata/").concat(t),key:r("interactive:result:set:".concat(e,":").concat(t,":").concat(l),c),data:i(n,c,l),type:a.k.POST,normalize:!1,success:o,error:s,always:u}},mark:function(e,t,n,r,i,c,l){return{url:"/api/domain/v1/analytics/answers/".concat(n),key:"mark:answer:".concat(n,":").concat(r.resultId),type:a.k.PUT,data:r,normalize:!1,invalidationKeys:"interactive:result:set:".concat(e,":").concat(t),success:i,error:c,always:l}},pendingReviews:function(e){return{url:"/api/domain/v1/analytics/interactives/pending-reviews/summary",key:"interactives:pending:reviews",type:a.k.POST,data:e}},interactiveResultsReport:function(e){return{url:"/api/domain/v3/analytics/interactives/report",key:"interactive:results:report",data:e,type:a.k.POST,normalize:!1}}}},18488:(e,t,n)=>{n.d(t,{o:()=>c});var a=n(99940),r=n(97395),i={namespace:"share-v2"},c={createShare:function(e){return{url:"{gateway}/v2/shares",key:"create:share-v2",type:a.k.POST,data:e,normalizeOptions:i,invalidationKeys:["sent:share-v2","get:share-v2:shares:object"]}},updateShare:function(e,t){return{url:"{gateway}/v2/shares/".concat(e),key:"update:share-v2",type:a.k.PUT,data:t,normalizeOptions:i,invalidationKeys:["share-v2:permanent-link:object","share-v2:".concat(e),"get:share-v2:shares:object"]}},deleteShare:function(e){return{type:a.k.DELETE,url:"{gateway}/v2/shares/".concat(e),key:"delete:share-v2",normalizeOptions:i,invalidationKeys:["share-v2:permanent-link:object","sent:share-v2","share-v2:".concat(e),"get:share-v2:shares:object"]}},getShare:function(e){return{url:"{gateway}/v2/shares/".concat(e),key:"share-v2:".concat(e),bootstrapName:"share-v2:".concat(e),type:a.k.GET,normalizeOptions:i}},getSentShares:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=Object.values(e).sort().join(":");return{url:r._.urlBuilder("{gateway}/v2/shares/sent",e),key:"sent:share-v2:".concat(t),type:a.k.GET,normalize:!1}},getShareLink:function(e){return{url:r._.urlBuilder("{gateway}/v2/shares/permanent-link",{objectId:e}),key:"share-v2:permanent-link:object:".concat(e),normalizeOptions:i}},createShareLink:function(e){return{type:a.k.POST,url:r._.urlBuilder("{gateway}/v2/shares/permanent-link",Object.assign({},e)),key:"create:share-v2:permanent-link:object:".concat(e.objectId),invalidationKeys:["share-v2:permanent-link:object:".concat(e.objectId),"sent:share-v2","get:share-v2:shares:object:".concat(e.objectId)],normalizeOptions:i}},getPrivacy:function(e){return{url:"{gateway}/v1/objects/".concat(e,"/access"),key:"privacy:".concat(e),normalize:!1}},getSharesByObjectId:function(e){return{url:"{gateway}/v2/shares/objects/".concat(e),key:"get:share-v2:shares:object:".concat(e),type:a.k.GET,normalizeOptions:i}},createSharePincode:function(e){return{url:"{gateway}/v2/shares/".concat(e,"/pincode"),key:"create:share-v2:".concat(e,":pincode"),type:a.k.POST}},getPincodeByShareId:function(e){return{url:"{gateway}/v2/shares/".concat(e,"/pincode"),key:"get:share-v2:".concat(e,":pincode")}},getPincodeByCode:function(e){return{url:"{gateway}/v2/shares/pincode?code=".concat(e),key:"get:share-v2:pincode:".concat(e)}}}},39902:(e,t,n)=>{n.d(t,{FN:()=>p,SW:()=>f,fh:()=>v});var a=n(32735),r=n(20354),i=n(75896);function c(e){return function(e){if(Array.isArray(e))return o(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||l(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 l(e,t){if(e){if("string"==typeof e)return o(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)?o(e,t):void 0}}function o(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}function 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 u(e,t,n){return(t=function(e){var t=function(e){if("object"!=s(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=s(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==s(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var m=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(a=Object.getOwnPropertySymbols(e);r<a.length;r++)t.indexOf(a[r])<0&&Object.prototype.propertyIsEnumerable.call(e,a[r])&&(n[a[r]]=e[a[r]])}return n},d=50;function v(e,t){var n=i.m.chunk(e,d).map(function(e){return t(i.m.uniq(e))}),a=r.a.useBasicFetchAll(n),c=i.m.flatten(a.data),l=a.data.length?c.reduce(function(e,t){return Object.assign(Object.assign({},e),u({},t.id,t))},{}):null;return{itemsArr:c,items:l,isFetching:a.isFetching,hasCompleted:a.hasCompleted}}function p(e,t,n){var r=null!=n?n:function(e){return"object"===s(e)?e.id:e},i=f({getRequest:t,_getKey:n}),c=i.fetchItems,l=m(i,["fetchItems"]);return a.useEffect(function(){(null==e?void 0:e.length)&&c(e)},[null==e?void 0:e.map(r).join(",")]),l}function f(e){var t,n,o,m,v,p=null!==(t=e._getKey)&&void 0!==t?t:function(e){return"object"===s(e)?e.id:e},f=a.useRef(new Set),y=(m=a.useState([]),v=2,function(e){if(Array.isArray(e))return e}(m)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,i,c,l=[],o=!0,s=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;o=!1}else for(;!(o=(a=i.call(n)).done)&&(l.push(a.value),l.length!==t);o=!0);}catch(e){s=!0,r=e}finally{try{if(!o&&null!=n.return&&(c=n.return(),Object(c)!==c))return}finally{if(s)throw r}}return l}}(m,v)||l(m,v)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),h=y[0],b=y[1],g=r.a.useBasicFetchAll(h),E=i.m.flatten(g.data),S=g.data.length?E.reduce(function(e,t){return Object.assign(Object.assign({},e),u({},p(t),t))},{}):null;return{hasFirstRequestCompleted:!!(null===(o=null===(n=g.responses)||void 0===n?void 0:n[0])||void 0===o?void 0:o.hasCompleted),itemsArr:E,items:S,isFetching:g.isFetching,fetchItems:function(t){if(null==t?void 0:t.length){var n=[];t.forEach(function(e){var t=p(e);f.current.has(t)||(n.push(e),f.current.add(t))}),n.length&&b(function(t){return[].concat(c(t),c(i.m.chunk(n,d).map(e.getRequest)))})}}}}},84073:(e,t,n)=>{n.d(t,{g:()=>M,F:()=>L});var a=n(32735),r=n(65858),i=n(9806),c=n(64249),l=n(15611),o=n(83345),s=n(62335),u=n(26339),m=n(4594),d=n(31908),v="shared.sharedObjectTitle";function p(e){var t,n,i,p=e.sharedObject,f=e.titleClassName,y=e.subTextClassName,h=function(){switch(p.typeId){case m.E.Series:return"series";case m.E.Playlist:return"playlist"}}(),b=null===(t=e.getObjectAppLink)||void 0===t?void 0:t.call(e,p);return p.name?d.M.isVideoType(p)&&!(null===(n=d.M.getCanBeConsumed(p))||void 0===n?void 0:n.canNavigate)?a.createElement("span",{className:"clamp-2 ".concat(null!=f?f:"")},p.name):a.createElement("div",null,d.M.isVideoType(p)&&a.createElement(u.$,{type:"series",video:p,appLink:"series"in p&&p.series?null===(i=e.getObjectAppLink)||void 0===i?void 0:i.call(e,p.series):null,analyticsOptions:{location:r.LZ.Insights},className:"d-inline clamp-1 ".concat(null!=y?y:"")}),h&&a.createElement(s.m,null,a.createElement(o.x,{namespace:v,phrase:h})),b?a.createElement(l.F,{appLink:b,className:"clamp-1",analyticsData:{id:p.id,name:p.name},analyticsOptions:{entity:c.I.getAnalyticsEntity(p.type),actionType:r.Vw.Click,location:r.LZ.MyShares}},a.createElement("span",{className:"clamp-2 ".concat(null!=f?f:"")},p.name)):a.createElement("span",{className:"clamp-2 ".concat(null!=f?f:"")},p.name)):a.createElement(o.x,{namespace:v,phrase:"videoUnavailable"})}var f=n(23481),y=n(110),h=n(21789),b=n(36532);const g={indicator:"sybF_"};function E(e){return E="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},E(e)}function S(e,t,n){return(t=function(e){var t=function(e){if("object"!=E(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=E(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==E(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var N,k=f.T.encloseNamespace("share-v2.shareStatusIndicator");!function(e){e[e.Active=0]="Active",e[e.Expired=1]="Expired",e[e.MarkingRequired=2]="MarkingRequired"}(N||(N={}));var w=S(S(S({},N.Active,function(){return k("activeStatusLabel")}),N.Expired,function(){return k("expiredStatusLabel")}),N.MarkingRequired,function(){return k("markingRequiredStatusLabel")}),j=S(S(S({},N.Active,"bg-success"),N.Expired,"bg-danger"),N.MarkingRequired,"bg-blue"),I=S(S(S({},N.Active,function(){return k("activeStatusTooltip")}),N.Expired,function(){return k("expiredStatusTooltip")}),N.MarkingRequired,function(){return k("markingRequiredStatusTooltip")});function x(e){var t=function(e){return e.markingRequired?N.MarkingRequired:h.x.hasShareExpired(e.share)?N.Expired:N.Active}(e),n=function(e,t){if(e===N.Active&&t){var n=y.O.convertUTCToLocal(t),a=y.O.format(n,"MMMM Do");return k("expiryTooltip",{date:a})}return I[e]()}(t,e.share.expireDate),r=j[t];return a.createElement(b.u,{title:n,spanHack:!0,spanHackClassName:"d-inline-flex"},a.createElement("div",{className:"d-flex align-items-center"},a.createElement("div",{className:"".concat(g.indicator," ").concat(r," me-2 flex-shrink-0")}),function(){var n=w[t](),r=e.share.expireDate;if(t===N.Active&&r){var i=h.x.calculateDaysToExpiry(e.share),c=k("expiryHint",{smartCount:i});return a.createElement("p",{className:"mb-0"},n," · ",c)}return a.createElement("p",{className:"mb-0"},n)}()))}var O=n(76306),C=n(83914),A=n(54610),R=n(35223),F=n(86099);const T={thumbnailContainer:"XNQc8",tableRow:"R3dYa",viewCta:"ssCq6"};var P="myShares.tableRow";function M(e){return a.createElement("div",{className:"d-flex"},a.createElement("div",{className:"col-auto ".concat(T.thumbnailContainer)},a.createElement("p",{className:"fw-semibold mb-2"},e.heading)),a.createElement("div",{className:"".concat(e.isFirst?"d-flex":"d-none"," col align-items-center")},a.createElement("div",{className:"col-10 col-md-4"}),a.createElement("div",{className:"d-none d-md-flex col-6"},a.createElement("div",{className:"col-4"},a.createElement("p",{className:"fw-semibold mb-2"},a.createElement(o.x,{namespace:P,phrase:"viewsHeading"}))),a.createElement("div",{className:"col-3"},a.createElement("p",{className:"fw-semibold mb-2"},a.createElement(o.x,{namespace:P,phrase:"viewedByHeading"}))),a.createElement("div",{className:"col-5"},a.createElement("p",{className:"fw-semibold mb-2"},a.createElement(o.x,{namespace:P,phrase:"statusHeading"})))),a.createElement("div",{className:"col-2"})))}function L(e){var t,n=e.shareData,c=n.sharedObject,s=c.typeId===m.E.Playlist||c.typeId===m.E.Series,u=(0,F.pY)(n.share);return a.createElement("div",{className:"position-relative hover-bg-light-blue ".concat(T.tableRow," ").concat(null!==(t=e.className)&&void 0!==t?t:"")},a.createElement(l.F,{appLink:u,className:"p-2 cursor-pointer d-flex text-decoration-none"},a.createElement("div",{className:"col-auto ".concat(T.thumbnailContainer)},a.createElement(i.k,{object:c,showVideoMetadata:!0,locationContext:r.LZ.MyShares,imageOptions:{size:A.h2.Medium},showCollectionMask:!1,showVideoCount:!0,onlyCount:!0})),a.createElement("div",{className:"col d-flex align-items-center"},a.createElement("div",{className:"px-3 col-10 col-md-4"},a.createElement(p,{sharedObject:n.sharedObject})),a.createElement("div",{className:"d-none d-md-flex col-6"},a.createElement("div",{className:"col-4"},s?a.createElement("p",{className:"mb-0"},"-"):a.createElement("p",{className:"mb-0"},a.createElement(o.x,{namespace:P,phrase:"views",options:{smartCount:n.share.viewCount}}))),a.createElement("div",{className:"col-3"},s?a.createElement("p",{className:"mb-0"},"-"):a.createElement("div",{className:"d-flex align-items-center"},a.createElement(C.x,{svgName:R.vn.User,size:C.S.Standard,className:"me-2 svg-container"}),a.createElement("p",{className:"mb-0"},n.share.accessCount))),a.createElement("div",{className:"col-5"},a.createElement(x,{share:n.share,markingRequired:n.pendingReview>0}))))),a.createElement("div",{className:"position-absolute end-0 top-0 bottom-0 d-flex align-items-center pe-2"},a.createElement(l.F,{appLink:u,className:"me-4 text-info d-none ".concat(T.viewCta)},a.createElement(o.x,{namespace:P,phrase:"viewCta"})),a.createElement(O.m,{dropdownToggleSvgSize:C.S.Standard,actions:e.getObjectActions(n),dropdownToggleClassName:"btn btn-link"})))}},5056:(e,t,n)=>{n.d(t,{R:()=>f});var a=n(32735),r=n(23481),i=n(75896),c=n(110),l=n(31754),o=n(2510),s=n(4594);function u(e){return u="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},u(e)}function m(e,t,n){return(t=function(e){var t=function(e){if("object"!=u(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=u(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==u(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var d=r.T.encloseNamespace("myShares.mySharesTable");function v(e){var t;if(e.type===o.y.Link||!(null===(t=null==e?void 0:e.recipients)||void 0===t?void 0:t.length))return e.dateCreated;var n=e.recipients.map(function(e){return e.dateCreated});return n.length?(n.sort(function(e,t){return c.O.isSame(e,t)?0:c.O.isAfter(e,t)?1:-2}),i.m.last(n)):""}var p=n(84073);function f(e){var t,n,r,i,c,u,f,y=(t=e.sentShares,n=e.sharedObjects,r=e.shareRecipients,i=!!e.groupByDateShared,c=e.interactivesPendingReview,u=[],f=null==c?void 0:c.reduce(function(e,t){return Object.assign(m({},t.interactiveId,t),e)},{}),t.forEach(function(e){var t,a=null==n?void 0:n[e.objectId],i=null;if(e.type===o.y.Classroom&&(i=[],null===(t=e.recipients)||void 0===t||t.forEach(function(e){var t=null==r?void 0:r[e.recipientId];t&&i.push(t)})),a){var c=a.typeId===s.E.Interactive&&(null==f?void 0:f[a.interactiveId]);u.push({share:e,sharedObject:a,shareRecipients:i,dateShared:v(e),pendingReview:null==c?void 0:c.pendingReviewCount,privacy:e.privacy})}}),i?l.x.groupByDateShared(u):m({},d("title"),u));return a.createElement(a.Fragment,null,Object.keys(y).map(function(t,n){return a.createElement("div",{key:n},a.createElement(p.g,{heading:t,isFirst:!e.hasDemoInsights&&0===n}),a.createElement("div",{className:"d-flex flex-column mb-4"},y[t].map(function(t,n){return a.createElement(p.F,{key:n,shareData:t,getObjectActions:e.getObjectActions,breakpoints:e.breakpoints,imageCdnUrl:e.imageCdnUrl,yearGroups:e.yearGroups})})))}))}},67467:(e,t,n)=>{n.d(t,{o:()=>u});var a=n(32735),r=n(23481),i=n(97958),c=n(99742),l=n(14070),o=n(97291),s=r.T.encloseNamespace("myShares.mySharesTableEmptyState");function u(){return a.createElement(i.u,null,a.createElement(i.u.Image,{src:c.W.EmptyStates.Share.SHARED_BY_ME,size:"small"}),a.createElement(i.u.Heading,null,s("heading")),a.createElement(i.u.Info,null,s("info")),a.createElement(i.u.Cta,{appLink:{application:o.O.DASHBOARD,action:l.e.Dashboard.HOME},text:s("cta")}))}},28001:(e,t,n)=>{n.d(t,{L:()=>l});var a=n(32735);const r={heading:"iWHol",thumbnailContainer:"zrcDh"};function i(e){return a.createElement("div",{className:"d-flex"},a.createElement("div",{className:"col-auto ".concat(r.thumbnailContainer)},a.createElement("div",{className:"partial-loading-background mb-2"}," ")),a.createElement("div",{className:"".concat(e.isFirst?"d-flex":"d-none"," col align-items-center")},a.createElement("div",{className:"col-10 col-md-4"}),a.createElement("div",{className:"d-none d-md-flex col-6"},a.createElement("div",{className:"col-4"},a.createElement("div",{className:"partial-loading-background mb-2 ".concat(r.heading)}," ")),a.createElement("div",{className:"col-3"},a.createElement("div",{className:"partial-loading-background mb-2 ".concat(r.heading)}," ")),a.createElement("div",{className:"col-5"},a.createElement("div",{className:"partial-loading-background mb-2 ".concat(r.heading)}," "))),a.createElement("div",{className:"col-2"})))}function c(){return a.createElement("div",{className:"p-2 d-flex"},a.createElement("div",{className:"col-auto ".concat(r.thumbnailContainer)},a.createElement("div",{className:"partial-loading-background rounded ratio ratio-16x9"})),a.createElement("div",{className:"col d-flex align-items-center"},a.createElement("div",{className:"px-3 col-10 col-md-4"},a.createElement("div",{className:"partial-loading-background w-75"}," ")),a.createElement("div",{className:"d-none d-md-flex col-6"},a.createElement("div",{className:"col-4"},a.createElement("div",{className:"partial-loading-background w-50"}," ")),a.createElement("div",{className:"col-3"},a.createElement("div",{className:"partial-loading-background w-50"}," ")),a.createElement("div",{className:"col-5"},a.createElement("div",{className:"partial-loading-background w-75"}," "))),a.createElement("div",{className:"col-2 d-flex justify-content-end align-items-center"},a.createElement("div",{className:"partial-loading-background w-25"}," "))))}function l(){return a.createElement(a.Fragment,null,a.createElement("div",null,a.createElement(i,{isFirst:!0}),a.createElement("div",{className:"d-flex flex-column rounded-3 mb-4 border"},a.createElement(c,null),a.createElement(c,null),a.createElement(c,null),a.createElement(c,null))),a.createElement("div",null,a.createElement(i,null),a.createElement("div",{className:"d-flex flex-column rounded-3 mb-4 border"},a.createElement(c,null),a.createElement(c,null),a.createElement(c,null),a.createElement(c,null))),a.createElement("div",null,a.createElement(i,null),a.createElement("div",{className:"d-flex flex-column rounded-3 mb-4 border"},a.createElement(c,null),a.createElement(c,null),a.createElement(c,null),a.createElement(c,null),a.createElement(c,null),a.createElement(c,null),a.createElement(c,null),a.createElement(c,null),a.createElement(c,null),a.createElement(c,null))))}},98623:(e,t,n)=>{n.d(t,{a:()=>y});var a=n(20354),r=n(1048),i=n(93479),c=n(30439),l=n(18488),o=n(21789),s=n(39151),u=n(1666),m=n(31949),d=n(39902),v=n(60115),p=n(31908);function f(e){return f="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},f(e)}function y(e){var t,n,y=e.params,h=e.interactiveInsights,b=e.shouldFetch,g=a.a.useGetFetch(),E=a.a.useBasicFetch(m.N.currentUser()),S=a.a.useBasicFetch(s.L.config()),N=a.a.useBasicFetch((null===(t=E.data)||void 0===t?void 0:t.isAuthenticated)&&u.h.yearGroups(E.data.customerId)),k=function(e){return b&&l.o.getSentShares(Object.assign({cursor:e},y))},w=function(e){return g(k(e))},j=(0,v.K)(k,w),I=j.items,x=j.hasMore,O=j.isFetching,C=j.nextCursor,A=j.hasFirstPageCompleted,R=(0,d.FN)(null==I?void 0:I.map(function(e){return e.objectId.toString()}),c.o.sharedObjectsById),F=(0,d.FN)(o.x.getFlattenedRecipients(null!=I?I:[]).map(function(e){return e.recipientId.toString()}),function(e){return c.o.getRecipientsById(e,E.data.customerId)}),T=null==I?void 0:I.reduce(function(e,t){return Object.assign(Object.assign({},e),(n={},a=t.objectId,r=t,(a=function(e){var t=function(e){if("object"!=f(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=f(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==f(t)?t:t+""}(a))in n?Object.defineProperty(n,a,{value:r,enumerable:!0,configurable:!0,writable:!0}):n[a]=r,n));var n,a,r},{}),P=(0,d.FN)(h?r.t.values(R.items||[]):[],function(e){return i.I.pendingReviews({interactives:e.filter(p.M.isInteractive).map(function(e){var t;return{interactiveId:e.interactiveId,metadataId:e.id,shareId:null===(t=T[e.id])||void 0===t?void 0:t.shareId}}),filters:{currentCustomerId:E.data.customerId,currentUserId:E.data.id}})},function(e){return"".concat(e.id,":").concat("interactiveId"in e?e.interactiveId:"")}),M=O||R.isFetching||F.isFetching||P.isFetching||N.isFetching,L=!A||(null==I?void 0:I.length)&&!R.hasFirstRequestCompleted;return{sentShares:I,sharedObjects:R,shareRecipients:F,yearGroups:N.data,interactivesPendingReview:P,isFetching:M,showPartialLoading:L,nextCursor:C,hasMore:x,fetchNext:w,imageCdnUrl:null===(n=S.data)||void 0===n?void 0:n.imageCdnUrl}}}}]);
2
- //# sourceMappingURL=1199-dc45a88be8-lite.chunk.js.map