@clickview/lite 0.75.0-rc.7 → 0.75.0-rc.9

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 (31) hide show
  1. package/dist/bundles.json +1 -1
  2. package/dist/scripts/1199-dc45a88be8-lite.chunk.js +2 -0
  3. package/dist/scripts/1199-dc45a88be8-lite.chunk.js.map +1 -0
  4. package/dist/scripts/4208-f22ed7a148-lite.chunk.js +2 -0
  5. package/dist/scripts/4208-f22ed7a148-lite.chunk.js.map +1 -0
  6. package/dist/scripts/6550-1d60d863e8-lite.chunk.js +2 -0
  7. package/dist/scripts/6550-1d60d863e8-lite.chunk.js.map +1 -0
  8. package/dist/scripts/{7148-50ccb48a44-lite.chunk.js → 7148-e314dd9a4e-lite.chunk.js} +2 -2
  9. package/dist/scripts/7148-e314dd9a4e-lite.chunk.js.map +1 -0
  10. package/dist/scripts/8856-361fe76b7a-lite.chunk.js +2 -0
  11. package/dist/scripts/8856-361fe76b7a-lite.chunk.js.map +1 -0
  12. package/dist/scripts/9042-544d97a05d-lite.chunk.js +2 -0
  13. package/dist/scripts/9042-544d97a05d-lite.chunk.js.map +1 -0
  14. package/dist/scripts/{9634-f10e5980bd-lite.chunk.js → 9634-0a07635b99-lite.chunk.js} +2 -2
  15. package/dist/scripts/9634-0a07635b99-lite.chunk.js.map +1 -0
  16. package/dist/scripts/{bundle-67a8b81035.min.js → bundle-cf4c360278.min.js} +3 -3
  17. package/dist/scripts/{bundle-67a8b81035.min.js.map → bundle-cf4c360278.min.js.map} +1 -1
  18. package/package.json +1 -1
  19. package/dist/scripts/1199-1cddf4e0e0-lite.chunk.js +0 -2
  20. package/dist/scripts/1199-1cddf4e0e0-lite.chunk.js.map +0 -1
  21. package/dist/scripts/4208-3ba21abb7c-lite.chunk.js +0 -2
  22. package/dist/scripts/4208-3ba21abb7c-lite.chunk.js.map +0 -1
  23. package/dist/scripts/6550-c621babbcb-lite.chunk.js +0 -2
  24. package/dist/scripts/6550-c621babbcb-lite.chunk.js.map +0 -1
  25. package/dist/scripts/7148-50ccb48a44-lite.chunk.js.map +0 -1
  26. package/dist/scripts/8856-8ac95bf4e0-lite.chunk.js +0 -2
  27. package/dist/scripts/8856-8ac95bf4e0-lite.chunk.js.map +0 -1
  28. package/dist/scripts/9042-3092af11d5-lite.chunk.js +0 -2
  29. package/dist/scripts/9042-3092af11d5-lite.chunk.js.map +0 -1
  30. package/dist/scripts/9634-f10e5980bd-lite.chunk.js.map +0 -1
  31. /package/dist/scripts/{bundle-67a8b81035.min.js.LICENSE.txt → bundle-cf4c360278.min.js.LICENSE.txt} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scripts/9042-544d97a05d-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/utils/AnalyticsRequestUtils.ts","file:///app/packages/libs/shared/src/apps/analytics/flight-requests/InteractiveResultsRequests.ts","file:///app/packages/libs/shared/src/apps/share-v2/enums/ShareType.ts","file:///app/packages/libs/shared/src/apps/share-v2/utils/ShareHelper.ts","file:///app/packages/libs/shared/src/apps/share/components/shared-to-avatar-list/shared-to-avatar-list.scss","file:///app/packages/libs/shared/src/apps/share/components/shared-to-avatar-list/SharedToAvatarList.tsx","file:///app/packages/libs/shared/src/apps/share/utils/ShareLinkHelper.ts","file:///app/packages/libs/shared/src/components/avatar-list/AvatarList.tsx","file:///app/packages/libs/shared/src/hooks/UseBatchFetch.ts","file:///app/packages/libs/shared/src/utils/GroupHelper.ts","file:///app/packages/libs/shared/src/apps/share/components/shared-by-me/empty-state/SharedByMeEmptyState.tsx","file:///app/packages/libs/shared/src/apps/share/components/shared-by-me/share-status-indicator/share-status-indicator.scss","file:///app/packages/libs/shared/src/apps/share/components/shared-by-me/share-status-indicator/ShareStatusIndicator.tsx","file:///app/packages/libs/shared/src/apps/share/components/shared-by-me/table/SharedByMeTableUtils.tsx","file:///app/packages/libs/shared/src/apps/share/components/shared-by-me/table/SharedByMeTable.tsx","file:///app/packages/libs/shared/src/utils/ShareHelper.ts","file:///app/packages/projects/lite/src/apps/share/views/shared-by-me/partial-loading/partial-shared-by-me-table.scss","file:///app/packages/projects/lite/src/apps/share/views/shared-by-me/partial-loading/PartialSharedByMeTable.tsx","file:///app/packages/projects/lite/src/apps/share/views/shared-by-me/SharedByMeViewUtils.tsx","file:///app/packages/projects/lite/src/apps/share/views/shared-by-me/SharedByMeView.tsx","file:///app/packages/projects/lite/src/shared/hooks/useSharedByMeTable.ts","file:///app/packages/projects/lite/src/shared/utils/ObjectAppLinkHelper.ts"],"sourcesContent":["import { AnalyticsRequestFilter } from 'libs/shared/interfaces';\n\nexport function getAnalyticsRequestKey(baseKey: string, filter: AnalyticsRequestFilter, extra?: string): string {\n if (!filter)\n return baseKey;\n\n let key = `${baseKey}:${filter.start}:${filter.end}`;\n\n const userIdKey = Array.isArray(filter.userId) ? filter.userId.sort().join(':') : filter.userId;\n const groupIdKey = Array.isArray(filter.groupId) ? filter.groupId.sort().join(':') : filter.groupId;\n const customerIdKey = Array.isArray(filter.customerId) ? filter.customerId.sort().join(':') : filter.customerId;\n\n if (userIdKey)\n key += `:${userIdKey}`;\n\n if (groupIdKey)\n key += `:${groupIdKey}`;\n\n if (customerIdKey)\n key += `:${customerIdKey}`;\n\n if (extra)\n key += `:${extra}`;\n\n return key;\n}","import { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\nimport { Flight } from 'libs/common/react/index';\n\nimport { MarkInteractiveAnswer } from 'libs/shared/apps/analytics/interfaces/MarkInteractiveAnswer';\nimport { InteractiveResultsReport } from 'libs/shared/apps/analytics/interfaces/requests/InteractiveResultsReport';\nimport { InteractivesPendingReviewsRequest } from 'libs/shared/apps/analytics/interfaces/requests/InteractivesPendingReviewsRequest';\nimport { AnalyticsRequestFilter, CurrentUser, InteractiveResultSet } from 'libs/shared/interfaces';\nimport { getAnalyticsRequestKey } from 'libs/shared/utils/AnalyticsRequestUtils';\n\ninterface InteractiveResultFilters {\n currentUserId: string;\n currentCustomerId: string;\n dateRange?: { start: string, end: string }\n userIds?: string | string[];\n classroomsAndGroups?: string | string[];\n shareId?: string;\n}\n\nfunction getInteractiveResultFilters(\n currentUser: CurrentUser,\n filter: AnalyticsRequestFilter,\n shareId?: string\n): InteractiveResultFilters {\n return {\n currentUserId: currentUser.id,\n currentCustomerId: currentUser.customerId,\n dateRange: filter ? { start: filter.start, end: filter.end } : undefined,\n userIds: filter?.userId,\n classroomsAndGroups: filter?.groupId,\n shareId: shareId\n };\n}\n\nexport const InteractiveResultsRequests = {\n /** \n * This endpoint returns data with a lot of duplicated ids,\n * e.g. student answers to the same question will have the same id.\n * Because of that, we don't normalize.\n */\n interactiveResultSet(\n interactiveId: string,\n interactiveMetadataId: string,\n currentUser: CurrentUser,\n filter?: AnalyticsRequestFilter,\n shareId?: string,\n success?: (data: InteractiveResultSet) => void,\n error?: (data: any) => void,\n always?: () => void\n ): Flight.Request {\n return {\n url: shareId ?\n `/api/domain/v3/analytics/interactives/${interactiveId}/metadata/${interactiveMetadataId}` :\n `/api/domain/v2/analytics/interactives/${interactiveId}/metadata/${interactiveMetadataId}`,\n key: getAnalyticsRequestKey(`interactive:result:set:${interactiveId}:${interactiveMetadataId}:${shareId}`, filter),\n data: getInteractiveResultFilters(currentUser, filter, shareId),\n type: HttpVerbs.POST,\n normalize: false,\n success,\n error,\n always\n };\n },\n \n /**\n * As the response from `interactiveResultSet` isn't normalised, we need to invalidate the cache\n * to update the results data.\n */\n mark(\n interactiveId: string,\n interactiveMetadataId: string,\n answerId: string,\n data: MarkInteractiveAnswer,\n success?: () => void,\n error?: (data: any) => void,\n always?: () => void\n ): Flight.Request {\n return {\n url: `/api/domain/v1/analytics/answers/${answerId}`,\n key: `mark:answer:${answerId}:${data.resultId}`,\n type: HttpVerbs.PUT,\n data,\n normalize: false,\n invalidationKeys: `interactive:result:set:${interactiveId}:${interactiveMetadataId}`,\n success,\n error,\n always\n };\n },\n\n pendingReviews(data: InteractivesPendingReviewsRequest): Flight.Request {\n return {\n url: `/api/domain/v1/analytics/interactives/pending-reviews/summary`,\n key: `interactives:pending:reviews`,\n type: HttpVerbs.POST,\n data\n };\n },\n\n interactiveResultsReport(data: InteractiveResultsReport): Flight.Request {\n return {\n url: '/api/domain/v3/analytics/interactives/report',\n key: 'interactive:results:report',\n data,\n type: HttpVerbs.POST,\n normalize: false\n };\n }\n};","export enum ShareType {\n Link = 'Link',\n Classroom = 'Classroom',\n Open = 'Open',\n Live = 'Live',\n LegacyDirect = 'LegacyDirect',\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};","// extracted by mini-css-extract-plugin\nexport default {\"avatarContainer\":\"ByxQa\",\"sm\":\"EgJ0v\",\"sharedAvatar\":\"cW0NT\"};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { Avatar } from 'libs/shared/components/avatar/Avatar';\nimport { AvatarItemProps, AvatarList } from 'libs/shared/components/avatar-list/AvatarList';\nimport { IconCircle } from 'libs/shared/components/icon-circle/IconCircle';\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { BaseObject, Classroom, ClassroomGroup, User } from 'libs/shared/interfaces';\nimport { mapColourToBsVariant } from 'libs/shared/utils/GroupHelper';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\nimport { UserHelper } from 'libs/shared/utils/UserHelper';\n\nimport styles from './shared-to-avatar-list.scss';\n\nconst namespace = 'reportsShare.sharedToAvatarList';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nfunction getHiddenRecipientText(hiddenRecipients: BaseObject[]): string {\n const counts = ArrayHelper.countBy(hiddenRecipients, 'typeId');\n const userCount = counts[MasterType.User];\n const classroomCount = counts[MasterType.Classroom];\n const groupCount = counts[MasterType.ClassroomGroup];\n\n if (userCount && classroomCount && groupCount)\n return getPhrase('classroomsGroupsAndUsers', { userCount, classroomCount, groupCount });\n\n if (userCount && classroomCount)\n return getPhrase('classroomsAndUsers', { userCount, classroomCount });\n\n if (userCount && groupCount)\n return getPhrase('groupsAndUsers', { userCount, groupCount });\n\n if (classroomCount && groupCount)\n return getPhrase('classroomsAndGroups', { classroomCount, groupCount });\n\n if (userCount)\n return getPhrase('users', { userCount });\n\n if (classroomCount)\n return getPhrase('classrooms', { classroomCount });\n\n if (groupCount)\n return getPhrase('groups', { groupCount });\n}\n\nfunction SharedToAvatar(props: AvatarItemProps): JSX.Element {\n const user: User = props.item?.typeId === MasterType.User && props.item as User;\n const classroom: Classroom = props.item?.typeId === MasterType.Classroom && props.item as Classroom;\n const classroomGroup: ClassroomGroup = props.item?.typeId === MasterType.ClassroomGroup\n && props.item as ClassroomGroup;\n\n const svgContainerClassName = 'd-flex justify-content-center align-items-center text-white rounded-circle h-100 w-100';\n\n return (\n <>\n {!!user &&\n <Tooltip title={`${user.name} ${user.surname}`} spanHack spanHackClassName='h-100 w-100'>\n <Avatar\n imageUrl={user.avatar?.url}\n imageCdnUrl={props.imageCdnUrl}\n initials={UserHelper.getInitials(user.name, user.surname)}\n extraClasses={styles.sharedAvatar}\n />\n </Tooltip>\n }\n {!!classroom &&\n <Tooltip title={classroom.name} spanHack spanHackClassName='h-100 w-100'>\n <div className={svgContainerClassName}>\n <IconCircle\n svgName={cvSvgLibrary.Classrooms}\n svgSize={SvgContainerSize.Large}\n variant='teal'\n />\n </div>\n </Tooltip>\n }\n {!!classroomGroup &&\n <Tooltip title={classroomGroup.name} spanHack spanHackClassName='h-100 w-100'>\n <div className={svgContainerClassName}>\n <IconCircle\n svgName={cvSvgLibrary.Group}\n variant={mapColourToBsVariant(classroomGroup.metadata?.colour)}\n />\n </div>\n </Tooltip>\n }\n </>\n );\n}\n\n\ninterface AnonymousSharedToAvatarProps {\n avatarSize?: 'md' | 'sm';\n}\n\nexport function AnonymousSharedToAvatar(props: AnonymousSharedToAvatarProps): JSX.Element {\n return (\n <div className={`${styles.avatarContainer} ${props.avatarSize === 'sm' ? styles.sm : ''}`}>\n <Tooltip\n title={getPhrase('anonymous')}\n spanHack\n spanHackClassName='bg-light text-dark d-flex justify-content-center align-items-center rounded-circle h-100 w-100'\n >\n <SvgContainer svgName={cvSvgLibrary.Anonymous} size={props.avatarSize === 'sm' ? SvgContainerSize.Small : null} />\n </Tooltip>\n </div>\n );\n}\n\ninterface SharedLinkAvatarProps {\n text?: string;\n avatarSize?: 'md' | 'sm';\n className?: string;\n}\n\nexport function SharedLinkAvatar(props: SharedLinkAvatarProps): JSX.Element {\n return (\n <div className={`${styles.avatarContainer} ${props.avatarSize === 'sm' ? styles.sm : ''}`}>\n <Tooltip\n title={props.text || getPhrase('sharedLink')}\n spanHack\n spanHackClassName={`bg-light text-dark d-flex justify-content-center align-items-center rounded-circle h-100 w-100 ${props.className || ''}`}\n >\n <SvgContainer svgName={cvSvgLibrary.Link} size={props.avatarSize === 'sm' ? SvgContainerSize.Small : null} />\n </Tooltip>\n </div>\n );\n}\n\ninterface SharedToAvatarListProps {\n recipients: BaseObject[];\n imageCdnUrl: string;\n maxAvatars?: number;\n hasShareLink?: boolean;\n avatarSize?: 'md' | 'sm';\n shareLinkText?: string;\n}\n\nSharedToAvatarList.defaultProps = {\n maxAvatars: 5\n};\n\nexport function SharedToAvatarList(props: SharedToAvatarListProps): JSX.Element {\n return (\n <AvatarList\n {...props}\n items={props.recipients}\n avatarItem={SharedToAvatar}\n avatarContainerClassname={`${styles.avatarContainer} ${props.avatarSize === 'sm' ? styles.sm : ''}`}\n getHiddenTooltip={getHiddenRecipientText}\n hasShareLink={props.hasShareLink}\n shareLinkText={props.shareLinkText}\n />\n );\n}","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { SharePrivacyResponse } from 'libs/shared/apps/share/interfaces/responses/SharePrivacyResponse';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { ShareLinkStatus } from 'libs/shared/enums/ShareLinkStatus';\nimport { BaseObject, YearGroup } from 'libs/shared/interfaces';\nimport { RestrictionHelper } from 'libs/shared/utils/RestrictionHelper';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nconst namespace = 'share.shareLinkInfo';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface GetIconAndTextOptions {\n linkExpireDate: string;\n isPasswordProtected: boolean;\n privacy: SharePrivacyResponse;\n status: ShareLinkStatus;\n entityTypeId: MasterType;\n hasStudentExp: boolean;\n entity: BaseObject;\n yearGroups: YearGroup[];\n}\n\n\nexport const ShareLinkHelper = {\n getPrivateIconAndText: (options: GetIconAndTextOptions) => {\n const { entityTypeId, privacy, hasStudentExp, entity, yearGroups } = options;\n \n if (entityTypeId === MasterType.Topic || entityTypeId === MasterType.Series)\n return { icon: cvSvgLibrary.VisibleOn, text: getPhrase(hasStudentExp ? 'justMySchoolTeachers' : 'justMySchoolDescription') };\n \n /**\n * This is mainly for typescript, privacy will be an array for playlists\n * but that is handled above\n */\n if (Array.isArray(privacy))\n return;\n \n switch (privacy.privacy) {\n case 'public':\n return { icon: cvSvgLibrary.VisibleOn, text: getPhrase('publicDescription') };\n case 'protected':\n if (privacy.overrideRestrictions)\n return { icon: cvSvgLibrary.VisibleOn, text: getPhrase('clickViewOnly') };\n return {\n icon: cvSvgLibrary.Lock,\n text: ShareLinkHelper.getRespectRatingText(entity, yearGroups, hasStudentExp)\n };\n case 'just_my_customer':\n if (privacy.overrideRestrictions)\n return { icon: cvSvgLibrary.Lock, text: getPhrase(hasStudentExp ? 'justMySchoolTeachers' : 'justMySchoolDescription') };\n return {\n icon: cvSvgLibrary.Lock,\n text: ShareLinkHelper.getRespectRatingText(entity, yearGroups, hasStudentExp)\n };\n /**\n * Because we plan to add restricted management later \n * for the time being we treat is the same as private \n */\n case 'restricted':\n case 'private':\n return { icon: cvSvgLibrary.Lock, text: getPhrase('privateDescription') };\n default:\n return {};\n }\n },\n\n getIconAndText: (options: GetIconAndTextOptions) => {\n const { linkExpireDate, isPasswordProtected, status } = options;\n if (!linkExpireDate && !isPasswordProtected)\n return ShareLinkHelper.getPrivateIconAndText(options);\n \n if (!linkExpireDate)\n return { icon: cvSvgLibrary.Lock, text: getPhrase('password') };\n \n const isToday = DateHelper.isToday(linkExpireDate);\n const dayDifference = DateHelper.diffBetween(linkExpireDate, new Date(), 'day');\n \n if (!isPasswordProtected) {\n let text = isToday\n ? getPhrase('expiryToday')\n : getPhrase('expiry', { days: dayDifference });\n \n if (status === ShareLinkStatus.Expired)\n text = getPhrase('expired');\n \n return { icon: cvSvgLibrary.Timer, text };\n }\n \n let text = isToday\n ? getPhrase('passwordExpiryToday')\n : getPhrase('passwordExpiry', { days: dayDifference });\n \n if (status === ShareLinkStatus.Expired)\n text = getPhrase('passwordExpired');\n \n return { icon: cvSvgLibrary.Lock, text };\n },\n\n getRespectRatingText(video: BaseObject, yearGroups: YearGroup[], hasStudentExp: boolean) {\n if (!video || !yearGroups)\n return null;\n \n if (hasStudentExp)\n return getPhrase('justMySchoolTeachers');\n \n if (!VideoHelper.isVideoType(video))\n return getPhrase('collectionRating');\n \n const restriction = RestrictionHelper.getWeightedRestriction(video._restrictions?.value);\n \n /**\n * Restrictions without a year level are teacher restricitons, which means only admins can see it.\n */\n if (restriction && !restriction.yearGroup)\n return getPhrase('onlyAdmins');\n \n const rating = VideoHelper.getRating(video);\n \n let maxYearGroup: YearGroup;\n let minAllowedYearGroup: YearGroup;\n \n for (const yearGroup of yearGroups) {\n /**\n * If our year level is our new highest so far, save it\n */\n if (!maxYearGroup || yearGroup.value > maxYearGroup.value)\n maxYearGroup = yearGroup;\n \n /**\n * If the restriction is higher than this year level, skip it.\n */\n if (restriction && yearGroup.value <= restriction.yearGroup)\n continue;\n \n /**\n * If therating is higher than this year level's rating value, skip it.\n */\n if (rating && yearGroup.rating.value < rating.value)\n continue;\n \n /**\n * If our year level is the new lowest so far, save it\n */\n if (!minAllowedYearGroup || yearGroup.value < minAllowedYearGroup.value)\n minAllowedYearGroup = yearGroup;\n }\n \n /**\n * If no year levels are allowed, then it's staff only.\n */\n if (!minAllowedYearGroup)\n return getPhrase('onlyStaff');\n \n \n /**\n * If there's only one year level, and it's allowed, then we can just\n * say that everyone in your school can access it.\n */\n if (yearGroups.length === 1)\n return getPhrase('clickViewOnly');\n \n /**\n * We differentiate the copy if it's the highest year level or not. \n * Basically if we need to say \"X and above\" or not.\n */\n if (minAllowedYearGroup.value === maxYearGroup.value)\n return getPhrase('maxYearGroup', { yearGroup: maxYearGroup.name });\n \n return getPhrase('yearGroupRange', { yearGroup: minAllowedYearGroup.name });\n }\n};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { SharedLinkAvatar } from 'libs/shared/apps/share/components/shared-to-avatar-list/SharedToAvatarList';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { BaseObject } from 'libs/shared/interfaces';\n\nconst namespace = 'shared.avatarList';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport interface AvatarItemProps {\n imageCdnUrl: string;\n index: number;\n item?: BaseObject;\n hiddenItems?: BaseObject[];\n maxAvatars?: number;\n}\n\ninterface AvatarListProps {\n items: BaseObject[];\n imageCdnUrl: string;\n maxAvatars?: number;\n avatarItem?: (props: AvatarItemProps) => JSX.Element;\n getHiddenTooltip?: (hiddenItems: BaseObject[]) => string;\n numberClassname?: string;\n avatarContainerClassname?: string;\n roleToDisplay?: 'student' | 'staff';\n hasShareLink?: boolean;\n avatarSize?: 'md' | 'sm';\n shareLinkText?: string;\n}\n\nAvatarList.defaultProps = {\n maxAvatars: 5\n};\n\nexport function AvatarList(props: AvatarListProps): JSX.Element {\n const itemsToDisplay = props.items.length > props.maxAvatars\n ? props.items.slice(0, props.maxAvatars - 1)\n : props.items;\n\n const hiddenItems = props.items.length > itemsToDisplay.length\n ? props.items.slice(props.maxAvatars - 1)\n : [];\n\n const AvatarItem = props.avatarItem;\n const hiddenItemsCounts = hiddenItems.length;\n const translateX = props.avatarSize === 'sm' ? 4 : 8;\n\n function getTooltip() {\n if (props.getHiddenTooltip)\n return props.getHiddenTooltip(hiddenItems);\n\n if (props.roleToDisplay)\n return getPhrase(props.roleToDisplay === 'staff' ? 'staff' : 'student', { count: hiddenItemsCounts, smartCount: hiddenItemsCounts });\n\n return getPhrase('users', { count: hiddenItemsCounts, smartCount: hiddenItemsCounts });\n }\n\n function getContainerStyles() {\n return {\n marginRight: `-${((itemsToDisplay.length - 1) + (hiddenItems.length ? 1 : 0) + (props.hasShareLink ? 1 : 0)) * translateX}px`\n };\n }\n\n function getAvatarStyles(idx: number) {\n return {\n transform: `translateX(${(props.hasShareLink ? idx + 1 : idx) * -translateX}px)`,\n zIndex: props.maxAvatars - idx\n };\n }\n\n if (itemsToDisplay.length === 0 && hiddenItems.length === 0)\n return <></>;\n\n return (\n <div\n className='d-flex'\n style={getContainerStyles()}\n >\n {props.hasShareLink && (\n <div style={{ zIndex: props.maxAvatars + 1 }}>\n <SharedLinkAvatar text={props.shareLinkText} avatarSize={props.avatarSize} className='bg-dark text-white' />\n </div>\n )}\n {itemsToDisplay.map((item, idx) => (\n <div\n className={`${props.avatarContainerClassname || ''}`} key={item.id}\n style={getAvatarStyles(idx)}\n >\n <AvatarItem\n item={item}\n imageCdnUrl={props.imageCdnUrl}\n index={idx}\n maxAvatars={props.maxAvatars}\n />\n </div>\n ))}\n\n {!!hiddenItems.length && (\n <div\n className={`${props.avatarContainerClassname || ''} bg-white rounded-circle`}\n style={{ transform: `translateX(${itemsToDisplay.length * -translateX}px)`, zIndex: props.maxAvatars - itemsToDisplay.length }}\n >\n <Tooltip title={getTooltip()} spanHack spanHackClassName='h-100 w-100'>\n <div className={`d-flex justify-content-center align-items-center border border-dark rounded-circle h-100 w-100 ${props.numberClassname || ''}`}>\n {`+${hiddenItems.length}`}\n </div>\n </Tooltip>\n </div>\n )}\n </div>\n );\n}","import React from 'react';\n\nimport { Flight } from 'libs/common/flight';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { BaseObject } from 'libs/shared/interfaces';\n\nconst CHUNK_SIZE = 50;\n\nexport interface UseBatchFetchResult<T extends BaseObject> {\n itemsArr: T[];\n items: { [key: string]: T} | null;\n isFetching: boolean;\n hasCompleted: boolean;\n}\n\n/**\n * Used to fetch multiple items by id with Flight. Will fetch 25 items at a time firing off multiple\n * requests if there are more than 25 items.\n * This will return items as null until we have all our items. Items will be returned as an object with\n * their ids as they key for easy mapping\n * \n * @param itemIds \n * @param getRequest \n */\nexport function useBatchFetch<T extends BaseObject>(\n itemIds: string[],\n getRequest: (ids: string[]) => Flight.Request\n): UseBatchFetchResult<T> {\n const chunks = ArrayHelper.chunk<string>(itemIds, CHUNK_SIZE);\n\n const requests = chunks.map(chunk => getRequest(ArrayHelper.uniq(chunk)));\n\n const responses = Flight.useBasicFetchAll<T[]>(requests);\n\n const itemsArr = ArrayHelper.flatten(responses.data);\n const items = responses.data.length\n ? itemsArr.reduce((acc, item) => ({ ...acc, [item.id]: item }), {})\n : null;\n\n return {\n itemsArr,\n items,\n isFetching: responses.isFetching,\n hasCompleted: responses.hasCompleted\n };\n}\n\n/**\n * When you need the useBatchFetch() behavior, but your list of objects to hydrate\n * will grow, such as on a scrolling page. useGrowingBatchFetch() will use local state\n * to determine what we've already built a request for and what items are new\n * as to not re-fetch items - Sha\n */\nexport function useGrowingBatchFetch<TResponse, TObjects = string>(\n objs: TObjects[],\n getRequest: (items: TObjects[]) => Flight.Request,\n _getKey?: (obj: TObjects) => string\n) {\n const getKey = _getKey ?? ((obj: any) => {\n if (typeof obj === 'object')\n return obj.id;\n\n return obj;\n });\n\n const { fetchItems, ...data } = useGrowingBatchFetchFunc<TResponse, TObjects>({ getRequest, _getKey });\n\n React.useEffect(() => {\n if (!objs?.length)\n return;\n\n fetchItems(objs);\n }, [objs?.map(getKey).join(',')]);\n\n return data;\n}\n\ninterface UseGrowingBatchFetchFuncOptions<TObjects> {\n getRequest: (items: TObjects[]) => Flight.Request;\n _getKey?: (obj: TObjects) => string;\n}\n\n/**\n * When you need the useGrowingBatchFetch() behaviour, but need to trigger the\n * fetch manually and update the objects - Nish \n */\nexport function useGrowingBatchFetchFunc<TResponse, TObjects = string>(\n options: UseGrowingBatchFetchFuncOptions<TObjects>\n) {\n const getKey = options._getKey ?? ((obj: any) => {\n if (typeof obj === 'object')\n return obj.id;\n\n return obj;\n });\n\n const fetchedItems = React.useRef<Set<string>>(new Set<string>());\n const [ requests, setRequests ] = React.useState<Flight.Request[]>([]);\n\n function fetchItems(objs: TObjects[]) {\n if (!objs?.length)\n return;\n\n const unfetchedItems: TObjects[] = [];\n \n objs.forEach(obj => {\n const key = getKey(obj);\n\n if (fetchedItems.current.has(key))\n return;\n\n unfetchedItems.push(obj);\n fetchedItems.current.add(key);\n });\n \n if (!unfetchedItems.length)\n return;\n \n setRequests(r => ([ ...r, ...ArrayHelper.chunk<TObjects>(unfetchedItems, CHUNK_SIZE).map(options.getRequest) ]));\n }\n\n const responses = Flight.useBasicFetchAll<TResponse[]>(requests);\n const itemsArr = ArrayHelper.flatten(responses.data);\n const items = responses.data.length\n ? itemsArr.reduce<Record<string, TResponse>>((acc, item) => ({ ...acc, [getKey(item)]: item }), {})\n : null;\n\n return {\n hasFirstRequestCompleted: !!responses.responses?.[0]?.hasCompleted,\n itemsArr,\n items,\n isFetching: responses.isFetching,\n fetchItems\n };\n}\n","import { ButtonProps } from 'react-bootstrap';\n\nimport { ClassroomGroupColour } from 'libs/shared/interfaces';\n\nexport function mapColourToBsVariant(groupColour: ClassroomGroupColour): ButtonProps['variant'] {\n switch (groupColour) {\n case ClassroomGroupColour.Pink:\n return 'pink';\n case ClassroomGroupColour.Orange:\n return 'orange';\n case ClassroomGroupColour.Green:\n return 'green';\n case ClassroomGroupColour.Blue:\n return 'blue';\n case ClassroomGroupColour.Purple:\n return 'purple';\n case ClassroomGroupColour.Indigo:\n return 'indigo';\n default:\n return 'pink';\n }\n}\n","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\n\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\n\nconst namespace = 'share.sharedByMeEmptyState';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface SharedByMeEmptyStateProps {\n imageUrl: string;\n appLink?: Core.AppLink;\n useInteractiveCopy?: boolean;\n}\n\nexport function SharedByMeEmptyState(props: SharedByMeEmptyStateProps): JSX.Element {\n return (\n <EmptyState>\n <EmptyState.Image src={props.imageUrl} size='small'/>\n <EmptyState.Heading>\n {getPhrase(props.useInteractiveCopy ? 'interactivesHeading' : 'genericHeading')}\n </EmptyState.Heading>\n <EmptyState.Info>{getPhrase(props.useInteractiveCopy ? 'interactivesInfo' : 'genericInfo')}</EmptyState.Info>\n {!!props.appLink &&\n <EmptyState.Cta appLink={props.appLink} text={getPhrase('cta')} />\n }\n </EmptyState>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"indicatorContainer\":\"T6YAv\",\"indicator\":\"_MRHG\"};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { ShareLinkStatus } from 'libs/shared/enums/ShareLinkStatus';\nimport { ShareType } from 'libs/shared/enums/ShareType';\nimport { UnionShareObject } from 'libs/shared/interfaces';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport styles from './share-status-indicator.scss';\n\nconst namespace = 'share.shareStatusIndicator';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nfunction getStatusPhrase(share: UnionShareObject): string {\n if (share.type === ShareType.DirectShare)\n return getPhrase('active');\n\n switch (share.status) {\n case ShareLinkStatus.Active:\n return getPhrase('active');\n\n case ShareLinkStatus.Expired:\n return getPhrase('expired');\n }\n}\n\nfunction getBgColourClassName(share: UnionShareObject): string {\n if (share.type === ShareType.DirectShare)\n return 'bg-success';\n \n switch (share.status) {\n case ShareLinkStatus.Active:\n return 'bg-success';\n\n case ShareLinkStatus.Expired:\n return 'bg-gray-500';\n }\n}\n\ninterface ShareStatusIndicatorProps {\n share: UnionShareObject;\n}\n\n/**\n * TODO: add support for deleted share links (currently the api doesn't return these.)\n */\nexport function ShareStatusIndicator(props: ShareStatusIndicatorProps): JSX.Element {\n if (props.share.type === ShareType.DirectShare && !props.share.recipients?.length)\n return <></>;\n\n if (props.share.type === ShareType.ShareLink && props.share.isPasswordProtected) {\n return (\n <Tooltip title={getPhrase('passwordProtected')} spanHack>\n <SvgContainer svgName={cvSvgLibrary.Lock} size={SvgContainerSize.Small} />\n </Tooltip>\n );\n }\n\n return (\n <Tooltip\n title={getStatusPhrase(props.share)}\n spanHack\n spanHackClassName={styles.indicatorContainer}\n >\n <div className={`${styles.indicator} ${getBgColourClassName(props.share)}`} />\n </Tooltip>\n );\n}","import React from 'react';\nimport { Column } from 'react-table';\nimport { format as formatDate } from 'timeago.js';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { LocationContext, UserAction } from 'libs/analytics/interfaces';\n\nimport {\n ShareStatusIndicator\n} from 'libs/shared/apps/share/components/shared-by-me/share-status-indicator/ShareStatusIndicator';\nimport { SharedObjectImage } from 'libs/shared/apps/share/components/shared-object-image/SharedObjectImage';\nimport {\n AnonymousSharedToAvatar,\n SharedLinkAvatar,\n SharedToAvatarList\n} from 'libs/shared/apps/share/components/shared-to-avatar-list/SharedToAvatarList';\nimport { ShareHelper } from 'libs/shared/apps/share/utils/ShareHelper';\nimport { ShareLinkHelper } from 'libs/shared/apps/share/utils/ShareLinkHelper';\nimport { SharableEntity, SharableRecipient, ShareViewHelper } from 'libs/shared/apps/share/views/share/ShareViewHelper';\nimport { ActionOptions, Actions } from 'libs/shared/components/actions/Actions';\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { TitleSubText } from 'libs/shared/components/title-sub-text/TitleSubText';\nimport { VideoSubText } from 'libs/shared/components/video-sub-text/VideoSubText';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { ShareType } from 'libs/shared/enums/ShareType';\nimport { Breakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { BaseObject, UnionShareObject, YearGroup } from 'libs/shared/interfaces';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nconst namespace = 'share.sharedByMeTable';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nfunction getDateShared(share: UnionShareObject): string {\n if (share.type === ShareType.ShareLink || !share?.recipients?.length)\n return share.dateCreated;\n\n const datesShared = share.recipients.map(r => r.dateShared);\n\n datesShared.sort((date1, date2) => {\n if (DateHelper.isSame(date1, date2))\n return 0;\n\n return DateHelper.isAfter(date1, date2) ? 1 : -2;\n });\n\n\n if (!datesShared.length)\n return '';\n\n return ArrayHelper.last(datesShared);\n}\n\ninterface SharedByMeTableData {\n share: UnionShareObject;\n sharedObject: SharableEntity;\n dateShared: string;\n sharedToData: {\n share: UnionShareObject;\n sharedObject: SharableEntity;\n recipients?: BaseObject[];\n };\n viewCount: number;\n}\n\ntype TableDataGroupings = { [date: string]: SharedByMeTableData[] };\n\ninterface GetColumnsOptions {\n index: number;\n dateHeading: string;\n getObjectAppLink: (object: BaseObject) => Core.AppLink;\n getObjectActions: (object: BaseObject) => ActionOptions[];\n imageCdnUrl: string;\n showStatus?: boolean;\n showViewCount?: boolean;\n breakpoints?: Breakpoints;\n yearGroups?: YearGroup[];\n}\n\nexport function getColumns(options: GetColumnsOptions): Column<SharedByMeTableData>[] {\n const {\n index,\n dateHeading,\n getObjectAppLink,\n getObjectActions,\n imageCdnUrl,\n showStatus,\n showViewCount,\n breakpoints,\n yearGroups\n } = options;\n const isMobile = breakpoints && (breakpoints.xs || breakpoints.sm);\n\n const columns: Column<SharedByMeTableData>[] = [\n {\n Header: showStatus ? '' : dateHeading,\n accessor: 'sharedObject',\n id: 'image',\n Cell: ({ value }) => (\n <div className='w-100'>\n <SharedObjectImage\n object={value}\n appLink={getObjectAppLink(value)}\n showVideoMetadata\n locationContext={LocationContext.SharedByMe}\n />\n </div>\n ),\n minWidth: 140,\n maxWidth: 30\n },\n {\n accessor: 'sharedObject',\n id: 'name',\n Cell: ({ value }) => {\n function getSubTextPhrase(): string {\n switch (value.typeId) {\n case MasterType.Series: return 'series';\n case MasterType.Playlist: return 'playlist';\n }\n }\n\n if (value.name) {\n if (VideoHelper.isVideoType(value) && !VideoHelper.getCanBeConsumed(value)?.canNavigate) {\n return (\n <span className='clamp-2'>\n {value.name}\n </span>\n );\n }\n\n const subTextPhrase = getSubTextPhrase();\n\n return (\n <div className='clamp-2'>\n {subTextPhrase &&\n <TitleSubText>\n <Text namespace={namespace} phrase={subTextPhrase} />\n </TitleSubText>\n }\n {VideoHelper.isVideoType(value) && (\n <VideoSubText\n type='series'\n video={value}\n appLink={'series' in value && value.series ? getObjectAppLink(value.series) : null}\n analyticsOptions={{ location: LocationContext.Insights }}\n />\n )}\n <AppLink\n appLink={getObjectAppLink(value)}\n analyticsData={{ id: value.id, name: value.name }}\n analyticsOptions={{\n entity: ShareViewHelper.getAnalyticsEntity(value.type),\n actionType: UserAction.Click,\n location: LocationContext.SharedByMe\n }}\n >\n {value.name}\n </AppLink>\n </div>\n );\n }\n\n return <span><Text namespace={namespace} phrase='videoUnavailable' /></span>;\n },\n width: 60\n },\n {\n Header: index === 0 ? getPhrase('sharedTo') : '',\n accessor: 'sharedToData',\n Cell: ({ value }) => {\n const { share, sharedObject, recipients } = value;\n\n if (!recipients) {\n const iconAndText = share.type === ShareType.ShareLink && ShareLinkHelper.getIconAndText({\n entity: sharedObject,\n entityTypeId: sharedObject.typeId,\n hasStudentExp: false,\n isPasswordProtected: share.isPasswordProtected,\n linkExpireDate: share.linkExpireDate,\n privacy: {\n privacy: share.privacy,\n overrideRestrictions: share.overrideRestrictions\n },\n status: share.status,\n yearGroups: yearGroups ?? []\n });\n\n return <SharedLinkAvatar text={iconAndText?.text} />;\n }\n \n if (!recipients?.length)\n return <AnonymousSharedToAvatar />;\n\n return (\n <SharedToAvatarList\n recipients={recipients}\n imageCdnUrl={imageCdnUrl}\n maxAvatars={isMobile ? 1 : 2}\n />\n );\n },\n width: 40\n },\n !isMobile && {\n Header: index === 0 ? getPhrase('shared') : '',\n id: 'dateShared',\n accessor: s => formatDate(s.dateShared),\n width: 40\n },\n {\n accessor: 'sharedObject',\n id: 'actions',\n Cell: ({ value }) => (\n <Actions\n actions={getObjectActions(value)}\n className='w-100 justify-content-end pe-2'\n />\n ),\n width: 20\n }\n ];\n\n const statusColumn: Column<SharedByMeTableData> = {\n Header: dateHeading,\n accessor: 'share',\n id: 'status',\n Cell: ({ value }) => (\n <ShareStatusIndicator share={value} />\n ),\n width: 5\n };\n\n const viewCountColumn: Column<SharedByMeTableData> = {\n Header: getPhrase('views'),\n accessor: 'viewCount',\n width: 30\n };\n\n if (showStatus)\n columns.splice(0, 0, statusColumn);\n\n if (showViewCount)\n columns.splice(columns.length - 1, 0, viewCountColumn);\n\n return columns.filter((Boolean));\n}\n\nexport function useGetData(\n sentShares: UnionShareObject[],\n sharedObjects: Record<string, SharableEntity>,\n shareRecipients: Record<string, SharableRecipient>,\n groupByDate: boolean\n): TableDataGroupings {\n const tableData: SharedByMeTableData[] = [];\n\n sentShares.forEach(s => {\n const sharedObject = sharedObjects?.[s.objectId];\n\n let recipients: BaseObject[] | null = null;\n\n if (s.type === ShareType.DirectShare) {\n recipients = [];\n\n s.recipients?.forEach(r => {\n const recipient = shareRecipients?.[r.id];\n\n if (recipient)\n recipients.push(recipient);\n });\n }\n\n // Skip if we don't have access to the shared object (e.g. if it's been deleted)\n if (sharedObject)\n tableData.push({\n share: s,\n sharedObject,\n sharedToData: {\n share: s,\n sharedObject,\n recipients\n },\n dateShared: getDateShared(s),\n viewCount: s.viewCount ?? 0\n });\n });\n\n if (!groupByDate)\n return { [getPhrase('title')]: tableData };\n\n return ShareHelper.groupByDateShared(tableData);\n}","import React from 'react';\n\nimport { Core } from 'libs/common/core';\n\nimport { SHARES_TABLE_THEME } from 'libs/shared/apps/share/constants/TableTheme';\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\nimport { Table } from 'libs/shared/components/table/Table';\nimport { Breakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { BaseObject, UnionShareObject, YearGroup } from 'libs/shared/interfaces';\n\nimport { SharableEntity, SharableRecipient } from '../../../views/share/ShareViewHelper';\n\nimport { getColumns, useGetData } from './SharedByMeTableUtils';\n\ninterface SharedByMeTableProps {\n sentShares: UnionShareObject[];\n sharedObjects: Record<string, SharableEntity>;\n shareRecipients: Record<string, SharableRecipient>;\n getObjectAppLink: (object: BaseObject) => Core.AppLink;\n getObjectActions: (object: BaseObject) => ActionOptions[];\n groupByDateShared?: boolean;\n showStatus?: boolean;\n showViewCount?: boolean;\n breakpoints?: Breakpoints;\n imageCdnUrl: string;\n yearGroups?: YearGroup[];\n}\n\nexport function SharedByMeTable(props: SharedByMeTableProps): JSX.Element {\n const data = useGetData(\n props.sentShares,\n props.sharedObjects,\n props.shareRecipients,\n !!props.groupByDateShared\n );\n\n return (\n <>\n {Object.keys(data).map((heading, index) => (\n <Table\n key={index}\n columns={getColumns({\n index,\n dateHeading: heading,\n getObjectAppLink: props.getObjectAppLink,\n getObjectActions: props.getObjectActions,\n imageCdnUrl: props.imageCdnUrl,\n showStatus: props.showStatus,\n showViewCount: props.showViewCount,\n breakpoints: props.breakpoints,\n yearGroups: props.yearGroups\n })}\n data={data[heading]}\n theme={SHARES_TABLE_THEME}\n />\n ))}\n </>\n );\n}","import { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { ShareType } from 'libs/shared/enums/ShareType';\nimport { DirectShare, ShareRecipient, UnionShareObject } from 'libs/shared/interfaces';\n\nexport const ShareHelper = {\n getDirectShares(sentShares: UnionShareObject[]): DirectShare[] {\n return sentShares?.filter(s => s.type === ShareType.DirectShare) as DirectShare[] ?? [];\n },\n \n getRecipients(sentShares: UnionShareObject[]): ShareRecipient[] {\n return ArrayHelper.flatten(ShareHelper.getDirectShares(sentShares).map(d => d.recipients ?? []));\n }\n};","// extracted by mini-css-extract-plugin\nexport default {\"imageColumn\":\"uIOaA\",\"nameColumn\":\"Nta2B\",\"sharedToColumn\":\"XTJBC\",\"dateSharedColumn\":\"HdARK\",\"actionsColumn\":\"DXyZw\",\"heading\":\"XZ6o7\",\"image\":\"MolfU\",\"name\":\"MM43m\",\"avatar\":\"EboYM\",\"date\":\"by_XM\",\"actions\":\"_S2M_\"};","import React from 'react';\n\nimport styles from './partial-shared-by-me-table.scss';\n\nfunction PartialRow(): JSX.Element {\n return (\n <div className={`d-flex striped-row rounded`}>\n <div className={`d-flex align-items-center justify-content-center p-2 ${styles.imageColumn}`}>\n <div className={`partial-loading-background rounded w-100 ${styles.image}`} />\n </div>\n <div className={`d-flex align-items-center p-2 ${styles.nameColumn}`}>\n <div className={`partial-loading-background w-75 ${styles.name}`} />\n </div>\n <div className={`d-flex align-items-center p-2 ${styles.sharedToColumn}`}>\n <div className={`partial-loading-background ${styles.avatar}`} />\n </div>\n <div className={`d-none d-md-flex align-items-center p-2 ${styles.dateSharedColumn}`}>\n <div className={`partial-loading-background ${styles.date}`} />\n </div>\n <div className={`d-flex align-items-center justify-content-end p-2 ${styles.actionsColumn}`}>\n <div className={`partial-loading-background rounded me-2 ${styles.actions}`} />\n </div>\n </div>\n );\n}\n\ninterface PartialHeaderProps {\n fullHeader?: boolean;\n}\n\nfunction PartialHeader(props: PartialHeaderProps): JSX.Element {\n return (\n <div className='d-flex mb-1'>\n <div className={`${styles.imageColumn} p-2`}>\n <div className={`partial-loading-background ${styles.heading}`} />\n </div>\n <div className={`${styles.nameColumn} p-2`}>\n &nbsp;\n </div>\n <div className={`${styles.sharedToColumn} p-2`}>\n {props.fullHeader\n ? <div className={`partial-loading-background ${styles.heading}`} />\n : <>&nbsp;</>\n }\n </div>\n <div className={`${styles.dateSharedColumn} p-2 d-none d-md-flex`}>\n {props.fullHeader\n ? <div className={`partial-loading-background ${styles.heading}`} />\n : <>&nbsp;</>\n }\n </div>\n <div className={`${styles.actionsColumn} p-2`}>\n &nbsp;\n </div>\n </div>\n );\n}\n\nexport function PartialSharedByMeTable(): JSX.Element {\n return (\n <>\n <div className='mb-3'>\n <PartialHeader fullHeader />\n\n <div className='striped-list no-full-width'>\n <PartialRow />\n <PartialRow />\n <PartialRow />\n </div>\n </div>\n\n <div className='mb-3'>\n <PartialHeader />\n\n <div className='striped-list no-full-width'>\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n </div>\n </div>\n\n <div className='mb-3'>\n <PartialHeader />\n\n <div className='striped-list no-full-width'>\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n </div>\n </div>\n </>\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/react/index';\n\nimport { SharableEntityType } from 'libs/shared/apps/share/views/share/ShareViewHelper';\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { Breakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { BaseObject, Config } from 'libs/shared/interfaces';\nimport { AnalyticsRouteHelper } from 'libs/shared/utils/AnalyticsRouteHelper';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nconst namespace = 'liteShare.sharedByMe';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nfunction getShareActionOptions(sharedObject: BaseObject, entityType: SharableEntityType): ActionOptions {\n return {\n label: getPhrase('editShareSettings'),\n appLink: {\n application: AppChannels.SHARE,\n action: Actions.Share.SHARE,\n args: [sharedObject.id],\n params: { entityType }\n }\n };\n}\n\ninterface SeeUsageActionProps {\n label: string;\n url?: string;\n}\n\nfunction SeeUsageAction(props: SeeUsageActionProps): JSX.Element {\n return (\n <Tooltip title={props.label} spanHack>\n <a\n href={props.url}\n target='_blank'\n >\n <SvgContainer svgName={cvSvgLibrary.Analytics} />\n </a>\n </Tooltip>\n );\n}\n\nfunction getSharedObjectActions(\n sharedObject: BaseObject,\n isMobile: boolean,\n config: Config\n): ActionOptions[] {\n let entityType: SharableEntityType;\n let analyticsPhrase = 'viewUsage';\n\n if (VideoHelper.isVideo(sharedObject))\n entityType = 'video';\n\n if (VideoHelper.isInteractive(sharedObject)) {\n entityType = 'interactive';\n analyticsPhrase = 'viewResults';\n }\n\n if (VideoHelper.isClip(sharedObject))\n entityType = 'clip';\n\n if (sharedObject.typeId === MasterType.Series)\n entityType = 'series';\n\n if (sharedObject.typeId === MasterType.Playlist)\n entityType = 'playlist';\n\n if (VideoHelper.isVideoType(sharedObject)) {\n const { canConsume } = VideoHelper.getCanBeConsumed(sharedObject);\n\n if (!canConsume)\n return [];\n }\n\n const sharedObjectActions = [getShareActionOptions(sharedObject, entityType)];\n\n const objectUrl = AnalyticsRouteHelper.getObjectUrl(config?.analyticsWebUrl, sharedObject);\n if (objectUrl) {\n sharedObjectActions.push({\n label: !isMobile\n ? () => <SeeUsageAction label={getPhrase(analyticsPhrase)} url={objectUrl} />\n : getPhrase(analyticsPhrase),\n\n className: 'btn btn-link',\n button: !isMobile,\n href: AnalyticsRouteHelper.getObjectUrl(config?.analyticsWebUrl, sharedObject),\n openInNewTab: true\n });\n }\n\n return sharedObjectActions;\n}\n\nexport function useGetSharedObjectActions(breakpoints: Breakpoints): ((object: BaseObject) => ActionOptions[]) | null {\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n\n const isMobile = breakpoints.xs || breakpoints.sm;\n\n return React.useCallback((object: BaseObject) =>\n getSharedObjectActions(object, isMobile, config.data), [isMobile]);\n}","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { SharedByMeEmptyState } from 'libs/shared/apps/share/components/shared-by-me/empty-state/SharedByMeEmptyState';\nimport { SharedByMeTable } from 'libs/shared/apps/share/components/shared-by-me/table/SharedByMeTable';\nimport { InfiniteScrollFooter } from 'libs/shared/components/infinite-scroll-footer/InfiniteScrollFooter';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { useSharedByMeTable } from 'shared/hooks/useSharedByMeTable';\nimport { getObjectAppLink } from 'shared/utils/ObjectAppLinkHelper';\n\nimport { SharesHeader } from 'apps/share/components/shares-header/SharesHeader';\n\nimport { PartialSharedByMeTable } from './partial-loading/PartialSharedByMeTable';\nimport {\n useGetSharedObjectActions\n} from './SharedByMeViewUtils';\n\nconst namespace = 'liteShare.sharedByMe';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function SharedByMeView(): JSX.Element {\n const { hasPermissions } = usePermissions();\n const { hasShareFlowV2 } = useSettings(null);\n\n const breakpoints = useBreakpoints();\n\n const {\n sentShares,\n sharedObjects,\n shareRecipients,\n isFetching,\n showPartialLoading,\n nextCursor,\n hasMore,\n fetchNext,\n imageCdnUrl,\n yearGroups\n } = useSharedByMeTable();\n\n const hasMyShares = hasPermissions(PermissionName.ViewMyShares) && hasShareFlowV2;\n\n React.useEffect(() => {\n if (hasMyShares)\n Core.AppLinkHelper.trigger({\n application: AppChannels.MY_SHARES,\n action: Actions.MyShares.HOME\n }, { replace: true });\n }, [hasMyShares]);\n\n useSetPageMetadata({ title: getPhrase('sharedByMe') });\n\n const getSharedObjectActions = useGetSharedObjectActions(breakpoints);\n\n return (\n <div className='px-3'>\n {!hasMyShares && <SharesHeader />}\n\n {(() => {\n if (showPartialLoading)\n return <PartialSharedByMeTable />;\n\n if (!sentShares.length)\n return (\n <SharedByMeEmptyState\n appLink={{ application: AppChannels.DASHBOARD, action: Actions.Dashboard.HOME }}\n imageUrl={ImageUrls.EmptyStates.Share.SHARED_WITH_ME}\n />\n );\n\n return (\n <>\n <SharedByMeTable\n sentShares={sentShares}\n sharedObjects={sharedObjects.items}\n shareRecipients={shareRecipients.items}\n getObjectAppLink={getObjectAppLink}\n getObjectActions={getSharedObjectActions}\n groupByDateShared\n breakpoints={breakpoints}\n yearGroups={yearGroups}\n imageCdnUrl={imageCdnUrl}\n />\n {(hasMore || isFetching) &&\n <InfiniteScrollFooter isFetching={isFetching} fetchNext={fetchNext} nextCursor={nextCursor} />\n }\n </>\n );\n })()}\n </div>\n );\n}","import { Flight } from 'libs/common/react/index';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\nimport { InteractiveResultsRequests } from 'libs/shared/apps/analytics/flight-requests/InteractiveResultsRequests';\nimport { ShareRequests } from 'libs/shared/apps/share/flight-requests/ShareRequests';\nimport { GetSentItemsParams } from 'libs/shared/apps/share/interfaces/requests/GetSentItemsParams';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { CustomerRequests } from 'libs/shared/flight-requests/CustomerRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { UseBatchFetchResult, useGrowingBatchFetch } from 'libs/shared/hooks/UseBatchFetch';\nimport { useInfiniteList } from 'libs/shared/hooks/UseInfiniteList';\nimport { BaseObject, Config, CurrentUser, UnionShareObject, YearGroup } from 'libs/shared/interfaces';\nimport { ShareHelper } from 'libs/shared/utils/ShareHelper';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\n\nexport function getBatchFetchResultAsArray(result: UseBatchFetchResult<BaseObject>): BaseObject[] {\n return result.items ? Object.values(result.items) : [];\n}\n\nexport function useSharedByMeTable(\n params?: GetSentItemsParams,\n interactiveInsights?: boolean,\n shouldFetch: boolean = true\n) {\n const fetch = Flight.useGetFetch();\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const yearGroups = Flight.useBasicFetch<YearGroup[]>(\n currentUser.data?.isAuthenticated && CustomerRequests.yearGroups(currentUser.data.customerId)\n );\n\n /**\n * Fetch sent shares\n */\n const getRequest = (cursor?: string) => shouldFetch && ShareRequests.sentShare({\n cursor,\n ...params\n });\n const fetchNext = (cursor?: string) => fetch(getRequest(cursor));\n const {\n items: sentShares,\n hasMore,\n isFetching: isFetchingSentShares,\n nextCursor,\n hasFirstPageCompleted\n } = useInfiniteList<UnionShareObject>(getRequest, fetchNext);\n\n /**\n * Fetch shared objects\n */\n const sharedObjects = useGrowingBatchFetch(\n sentShares?.map(obj => obj.objectId),\n ShareRequests.sharedObjectsById\n );\n\n /**\n * Fetch recipients\n */\n const shareRecipients = useGrowingBatchFetch(\n ShareHelper.getRecipients(sentShares).map(obj => obj.id),\n objs => (ShareRequests.getRecipientsById(objs, currentUser.data.customerId))\n );\n \n\n /**\n * Fetch which interactives required marking\n */\n const interactivesPendingReview = useGrowingBatchFetch(\n interactiveInsights ? ObjectHelper.values(sharedObjects.items || []) : [],\n objs => InteractiveResultsRequests.pendingReviews({\n interactives: objs\n .filter(VideoHelper.isInteractive)\n .map(obj => ({ interactiveId: obj.interactiveId, metadataId: obj.id })),\n filters: {\n currentCustomerId: currentUser.data.customerId,\n currentUserId: currentUser.data.id\n }\n }),\n obj => `${obj.id}:${obj.interactiveId}`\n );\n \n const isFetching = isFetchingSentShares\n || sharedObjects.isFetching\n || shareRecipients.isFetching\n || interactivesPendingReview.isFetching\n || yearGroups.isFetching;\n\n const showPartialLoading = !hasFirstPageCompleted || (sentShares?.length && !sharedObjects.hasFirstRequestCompleted);\n\n return {\n sentShares,\n sharedObjects,\n shareRecipients,\n yearGroups: yearGroups.data,\n interactivesPendingReview,\n isFetching,\n showPartialLoading,\n nextCursor,\n hasMore,\n fetchNext,\n imageCdnUrl: config.data?.imageCdnUrl\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":["getAnalyticsRequestKey","baseKey","filter","extra","key","start","end","userIdKey","Array","isArray","userId","sort","join","groupIdKey","groupId","customerIdKey","customerId","getInteractiveResultFilters","currentUser","shareId","currentUserId","id","currentCustomerId","dateRange","undefined","userIds","classroomsAndGroups","InteractiveResultsRequests","interactiveResultSet","interactiveId","interactiveMetadataId","success","error","always","url","data","type","HttpVerbs","normalize","mark","answerId","resultId","invalidationKeys","pendingReviews","interactiveResultsReport","ShareType","ShareHelper","getFlattenedRecipients","shares","map","s","recipients","getFlattenedUniqueScopes","r","scopeId","toString","x","getClassroomIdFromShare","share","firstRecipient","recipientId","recipientTypeId","getClassroomForShare","classrooms","classroomId","find","classroom","getRecipientsCount","length","hasShareExpired","expireDate","now","Date","calculateDaysToExpiry","remainingDays","getShareLocalExpiry","format","localDate","getPhrase","LanguageService","getHiddenRecipientText","hiddenRecipients","counts","ArrayHelper","userCount","MasterType","classroomCount","groupCount","SharedToAvatar","props","user","item","typeId","classroomGroup","svgContainerClassName","Tooltip","title","name","surname","spanHack","spanHackClassName","Avatar","imageUrl","avatar","imageCdnUrl","initials","UserHelper","extraClasses","className","IconCircle","svgName","svgSize","SvgContainer","S","variant","metadata","colour","AnonymousSharedToAvatar","avatarSize","size","SharedLinkAvatar","text","SharedToAvatarList","AvatarList","items","avatarItem","avatarContainerClassname","getHiddenTooltip","hasShareLink","shareLinkText","defaultProps","maxAvatars","ShareLinkHelper","getPrivateIconAndText","options","entityTypeId","privacy","hasStudentExp","entity","yearGroups","icon","overrideRestrictions","getRespectRatingText","getIconAndText","linkExpireDate","isPasswordProtected","status","isToday","dayDifference","days","video","restriction","_restrictions","value","yearGroup","maxYearGroup","minAllowedYearGroup","rating","itemsToDisplay","slice","hiddenItems","AvatarItem","hiddenItemsCounts","translateX","getAvatarStyles","idx","transform","zIndex","style","marginRight","index","roleToDisplay","count","smartCount","numberClassname","CHUNK_SIZE","useBatchFetch","itemIds","getRequest","requests","chunk","responses","itemsArr","reduce","acc","isFetching","hasCompleted","useGrowingBatchFetch","objs","_getKey","getKey","obj","useGrowingBatchFetchFunc","fetchItems","fetchedItems","Set","setRequests","hasFirstRequestCompleted","unfetchedItems","forEach","current","has","push","add","mapColourToBsVariant","groupColour","SharedByMeEmptyState","EmptyState","src","useInteractiveCopy","appLink","getStatusPhrase","ShareLinkStatus","getBgColourClassName","ShareStatusIndicator","getDateShared","dateCreated","datesShared","dateShared","date1","date2","DateHelper","getColumns","dateHeading","getObjectAppLink","getObjectActions","showStatus","showViewCount","breakpoints","isMobile","xs","sm","columns","Header","accessor","Cell","SharedObjectImage","object","showVideoMetadata","locationContext","minWidth","maxWidth","VideoHelper","canNavigate","subTextPhrase","getSubTextPhrase","TitleSubText","Text","namespace","phrase","VideoSubText","series","analyticsOptions","location","AppLink","analyticsData","ShareViewHelper","actionType","width","sharedObject","iconAndText","Actions","actions","statusColumn","viewCountColumn","splice","Boolean","SharedByMeTable","sentShares","sharedObjects","shareRecipients","groupByDate","tableData","groupByDateShared","objectId","recipient","sharedToData","viewCount","Object","keys","heading","Table","theme","getDirectShares","getRecipients","d","PartialRow","PartialHeader","fullHeader","PartialSharedByMeTable","getShareActionOptions","entityType","label","application","action","args","params","SeeUsageAction","href","target","SharedByMeView","hasPermissions","usePermissions","hasShareFlowV2","useSettings","useBreakpoints","interactiveInsights","shouldFetch","fetch","UserRequests","config","ConfigRequests","isAuthenticated","CustomerRequests","cursor","ShareRequests","fetchNext","hasMore","isFetchingSentShares","nextCursor","hasFirstPageCompleted","interactivesPendingReview","ObjectHelper","I","interactives","metadataId","filters","showPartialLoading","useSharedByMeTable","hasMyShares","PermissionName","replace","useSetPageMetadata","getSharedObjectActions","analyticsPhrase","canConsume","sharedObjectActions","objectUrl","AnalyticsRouteHelper","analyticsWebUrl","button","openInNewTab","useGetSharedObjectActions","SharesHeader","InfiniteScrollFooter","ImageUrls","INSIGHTS_WHITELIST","getInsightsOverviewAppLink","includes","objectTypeId","getInsightsHeatmapAppLink","getInsightsQuestionsAppLink","getInsightsStudentsAppLink","getShareOptionsAppLink","getSharableEntityType","detailsTitle","getDeleteShareAppLink","previousAppLink"],"sourceRoot":""}
@@ -1,2 +1,2 @@
1
- "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[9634],{30357:(e,t,n)=>{n.d(t,{V:()=>s});var a=n(32735),r=n(23999),i=n(89965),o=n(83345),l="share.embedSize";function s(e){var t=e.autoplay,n=e.setAutoplay,s=e.videoSize,c=e.setVideoSize,u=e.videoSizes;return a.createElement("div",{className:"d-flex align-items-center"},!!u.length&&a.createElement(a.Fragment,null,a.createElement("div",{className:"me-1"},a.createElement(o.x,{namespace:l,phrase:"videoSize"})),a.createElement("div",{className:"pe-3"},a.createElement(r.Z,null,a.createElement(r.Z.Toggle,{id:"embed-resolution",variant:"outline-dark"},s.label),a.createElement(r.Z.Menu,null,u.map(function(e){return a.createElement(r.Z.Item,{key:"".concat(e.width,"x").concat(e.height),onClick:function(){return c(e)}},e.label)}))))),a.createElement("div",{className:"me-2"},a.createElement(o.x,{namespace:l,phrase:"autoplay"})),a.createElement(i.X,{id:"autoplay-checkbox",checked:t,onChange:function(){return n(!t)}}))}},41661:(e,t,n)=>{var a;n.d(t,{D:()=>a}),function(e){e.GoogleClassroom="google-classroom",e.MicrosoftTeams="microsoft-teams",e.Vivi="vivi",e.AppleTv="apply-tv"}(a||(a={}))},40841:(e,t,n)=>{n.d(t,{_:()=>l});var a=n(23481),r=n(41661),i=n(65728),o=a.T.encloseNamespace("shared.shared-utils"),l={getShareIntegrations:function(e,t){return[{id:r.D.GoogleClassroom,name:o("googleClassroom"),enabled:e,settingName:i.E.ShareToGoogleClassroom},{id:r.D.MicrosoftTeams,name:o("msftTeams"),enabled:t,settingName:i.E.ShareToMicrosoftTeams}]}}},83351:(e,t,n)=>{n.d(t,{P:()=>s});var a=n(32735),r=n(23481),i=n(13876),o=n(36532),l=r.T.encloseNamespace("assign.flowControls");function s(e){var t=e.hideBackButton||!e.onClickBack,n=e.hideNextButton||!e.onClickNext,r=e.hideCreateClassroomButton||!e.onClickCreateClassroom;return t&&n&&r?a.createElement(a.Fragment,null):a.createElement(i.u,{className:"justify-content-between"},a.createElement("div",null,!!e.leftComponent&&e.leftComponent,!r&&a.createElement(i.u.Submit,{variant:"link",onClick:e.onClickCreateClassroom,text:l("createClassroom"),className:"text-info p-0"})),a.createElement("div",{className:"d-flex"},!t&&a.createElement(i.u.Cancel,{variant:"link",onClick:e.onClickBack,text:e.backButtonText||l("back")}),!n&&a.createElement(o.u,{title:e.nextButtonTooltip,disable:!e.nextButtonTooltip,placement:"top",spanHack:!0},a.createElement(i.u.Submit,{variant:"dark",onClick:e.onClickNext,text:e.nextButtonText||l("next"),disabled:e.disableNextButton,showSpinner:e.showSpinner}))))}},89547:(e,t,n)=>{n.r(t),n.d(t,{PluginShareStageView:()=>Re});var a=n(32735),r=n(37802),i=n(70680),o=n(23481),l=n(81886),s=n(20354),c=n(110),u=n(28400),d=n(49985),p=n(65858),m=n(30439),y=n(38648),f=n(64249),v=n(9111),h=n(5960),b=n(4594),S=n(16714),E=n(39151),g=n(1666),k=n(31949),C=n(69883),T=n(22902),P=n(26450),I=n(45778),w=n(14070),x=n(97291),O=n(46390),A=n(13876),N=n(50023),z=n(83345),j=n(99742),V="share.postMessageSuccess",L=o.T.encloseNamespace(V);function G(e){return(0,O.G)().params.singleSelectMode?a.createElement("div",null,a.createElement("img",{className:"img-fluid mx-auto d-block",alt:"Success",src:j.W.SUCCESS,style:{maxWidth:"14rem"}}),a.createElement("p",{className:"text-center"},a.createElement("strong",null,a.createElement(z.x,{namespace:V,phrase:"success"}))),a.createElement(A.u,null,a.createElement(A.u.Submit,{onClick:e.closePopup,text:L("close"),variant:"outline-dark"}))):a.createElement(N.E,null)}var B=n(86348),R=n(70872),F=n(26339),_=n(54610),D=n(68626),M="share.smartEmbedConfirmation",U=o.T.encloseNamespace(M);function Z(e){return a.createElement(a.Fragment,null,a.createElement("div",{className:"row mb-3"},a.createElement("div",{className:"col-4"},a.createElement(B.u,{video:e.entity,type:"cosmetic",imageOptions:{size:_.h2.Small},textPosition:D.z.Independent,preload:!0})),a.createElement("div",{className:"col-8"},a.createElement(F.$,{type:"series",analyticsOptions:{},video:e.entity}),a.createElement(R.u,{video:e.entity,analyticsOptions:{},appLink:null,yearGroups:null,showPadlock:!1}))),a.createElement("p",null,a.createElement(z.x,{namespace:M,phrase:"prompt"})),a.createElement(A.u,null,a.createElement(A.u.Cancel,{onClick:e.closePopup}),a.createElement(A.u.Submit,{text:U("embed"),onClick:e.embed,variant:"dark"})))}var $=n(47663);function H(e){return H="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},H(e)}function Q(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,q(a.key),a)}}function q(e){var t=function(e){if("object"!=H(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=H(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==H(t)?t:t+""}function W(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(W=function(){return!!e})()}function X(e){return X=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},X(e)}function Y(e,t){return Y=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},Y(e,t)}var J="share.embedUnpublishedInteractiveError",K=function(e){function t(e){var n;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),(n=function(e,t,n){return t=X(t),function(e,t){if(t&&("object"==H(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,W()?Reflect.construct(t,n||[],X(e).constructor):t.apply(e,n))}(this,t,["Embed unpublished interactive error"])).externalLink=e,n}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Y(e,t)}(t,e),n=t,(a=[{key:"name",get:function(){return"EmbedUnpublishedInteractiveError"}},{key:"dialogOptions",get:function(){return{title:o.T.getPhrase(J,"title"),text:o.T.getPhrase(J,"body",{externalLink:this.externalLink}),buttons:[{text:o.T.getPhrase(J,"close"),className:"btn btn-dark",success:!0}]}}}])&&Q(n.prototype,a),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,a}($.S),ee=n(98269),te=n(80247),ne=n(92802),ae=n(30357),re=n(97330),ie=n(61193),oe=n(82644),le="share.pluginShareSettings";function se(e){var t=(0,ne.u6)(),n=(0,T.T)().hasPermissions,r=(0,O.G)(),i=r.params.sizeSelector,o=r.consumerName;return a.createElement(ne.l0,null,a.createElement("div",{className:"d-flex justify-content-between align-items-center mb-2"},a.createElement(re.s,{linkExpireDate:e.shareLink.linkExpireDate,isPasswordProtected:e.shareLink.isPasswordProtected,privacy:e.privacy,entityTypeId:e.shareLink.objectTypeId,status:e.shareLink.status,onClickSavePrivacy:e.onClickSavePrivacy,hasStudentExp:e.hasStudentExp,entity:e.entity,yearGroups:e.yearGroups,shareOverrideRestrictions:e.shareOverrideRestrictions})),a.createElement("div",{className:"mb-2"},a.createElement(ae.V,{autoplay:e.autoplay,setAutoplay:e.setAutoplay,videoSize:e.videoSize,setVideoSize:e.setVideoSize,videoSizes:i?e.videoSizes:[]})),n(S.C.ManageShareLinkSettings)&&a.createElement(ee.Z,{type:"button",variant:"link",className:"text-info ps-0",onClick:e.onClickShowAdvanced},a.createElement(z.x,{namespace:le,phrase:"showAdvanced"})),a.createElement(A.u,null,a.createElement(ee.Z,{className:"me-2",variant:"link",onClick:e.onClickCancel},"Cancel"),a.createElement(ee.Z,{variant:"dark",type:"submit"},t.isSubmitting?a.createElement(te.Z,{as:"span",animation:"border",role:"status",size:"sm"}):a.createElement(z.x,{namespace:le,phrase:o?"embedInto":"embed",options:{consumerName:o}}))))}function ce(e){var t,n,r={password:"",removePassword:!1,linkExpireDate:null===(t=e.shareLink)||void 0===t?void 0:t.linkExpireDate,overrideRestrictions:null===(n=e.shareLink)||void 0===n?void 0:n.overrideRestrictions};return a.createElement(oe.n,{initialValues:r,onSubmit:e.onClickEmbed,castInitialValues:!1,validationSchema:ie.d},a.createElement(se,{shareLink:e.shareLink,onClickCancel:e.onClickCancel,autoplay:e.autoplay,setAutoplay:e.setAutoplay,videoSize:e.videoSize,setVideoSize:e.setVideoSize,videoSizes:e.videoSizes,privacy:e.privacy,entityType:e.entityType,hasStudentExp:e.hasStudentExp,entity:e.entity,yearGroups:e.yearGroups,shareOverrideRestrictions:e.shareOverrideRestrictions,onClickSavePrivacy:e.onClickSavePrivacy,onClickShowAdvanced:e.onClickShowAdvanced}))}function ue(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,i,o,l=[],s=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(a=i.call(n)).done)&&(l.push(a.value),l.length!==t);s=!0);}catch(e){c=!0,r=e}finally{try{if(!s&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(c)throw r}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return de(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)?de(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function de(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}var pe=o.T.encloseNamespace("share.pluginShare");function me(e){var t,n,o,A,N=(0,i.I0)(),z=(0,C.Z)(),j=(0,T.T)().hasPermissions,V=(0,r.r)(null),L=V.shareOverrideRestrictions,B=V.isLoadingSettings,R=(0,O.G)(),F=R.embed,_=R.smartEmbed,D=(0,R.isConsumer)(O.A.SmartEmbed),M=s.a.useBasicFetch(E.L.config()),U=s.a.useBasicFetch(k.N.currentUser()),$=f.I.getFetchFunctionByType(e.entityType)(e.entityId,null===(t=U.data)||void 0===t?void 0:t.id),H=s.a.useBasicFetch(m.o.getShareLinkByObjectId(e.entityId)),Q=s.a.useBasicFetch(m.o.getPrivacy(e.entityId)),q=s.a.useBasicFetch((null===(n=U.data)||void 0===n?void 0:n.isAuthenticated)&&g.h.yearGroups(U.data.customerId)),W=P.i.getEmbedResolutions(!1),X=ue(a.useState(W[0]),2),Y=X[0],J=X[1],ee=ue(a.useState(!1),2),te=ee[0],ne=ee[1],ae=ue(a.useState(D?"smart-embed-main":"main"),2),re=ae[0],ie=ae[1];function oe(t){f.I.updateLink(N,$.data,e.entityType,H.data,t,z,function(){return ie("main")})}function le(){f.I.deleteLink(N,$.data,e.entityType,H.data,z,function(){return ie("main")})}function se(){var t;t=H.data,F({entity:$.data,entityType:e.entityType,shareLink:t,videoSize:Y,autoplay:te,liteUrl:M.data.liteUrl}),d.k.logUserAction(Object.assign(Object.assign({},$.data),{shareLink:t}),d.k.mergeOptions(f.I.getAnalyticsOptions(e.entityType),{actionType:p.Vw.Share,descriptor:p.YM.PluginEmbed,workflowPhase:p.eu.Complete,eventVersion:p.eq.V4})),ie("post-message-sent")}function de(){_($.data),ie("post-message-sent")}function me(e,t){s.a.fetch(N,m.o.updatePrivacy(H.data.id,e,t,function(){return z.success(pe("privaciesSuccess",{name:$.data.name}))},function(){return z.error(pe("privaciesError",{name:$.data.name}))}))}a.useEffect(function(){if($.hasCompleted&&I.G.isType($.data,b.E.Interactive)&&$.data.status!==h.X.Published){var e=l.Q.C$.getHref({application:x.O.INTERACTIVES,action:w.e.Interactives.EDIT_INTERACTIVE,args:[$.data.id,u.m.slugify($.data.name)]});l.Q.Ry.throw(new K(e))}},[$.hasCompleted]),a.useEffect(function(){D||$.hasCompleted&&H.hasCompleted&&(H.data||f.I.createLink({dispatch:N,entity:$.data,entityType:e.entityType,alerts:z}))},[H.data,$.data]);var ye=(null===(o=H.data)||void 0===o?void 0:o.linkExpireDate)&&c.O.isBefore(null===(A=H.data)||void 0===A?void 0:A.linkExpireDate,new Date),fe=M.data&&U.data&&$.data&&(D||H.data)&&Q.data&&q.hasCompleted&&!B;return a.createElement(v.G,{title:pe("title"),closePopup:e.closePopup,showLoadingSpinner:!fe||null===re},function(){if(!fe)return a.createElement(a.Fragment,null);switch(re){case"post-message-sent":return a.createElement(G,{closePopup:e.closePopup});case"main":return a.createElement(ce,{shareLink:H.data,analyticsOptions:f.I.getAnalyticsOptions(e.entityType),onClickCancel:e.closePopup,onClickEmbed:se,videoSize:Y,setVideoSize:J,videoSizes:W,autoplay:te,setAutoplay:ne,privacy:Q.data,entityType:e.entityType,hasStudentExp:j(S.C.StudentExperience),entity:$.data,yearGroups:q.data,shareOverrideRestrictions:L,onClickSavePrivacy:me,onClickShowAdvanced:function(){return ie("link-settings")}});case"link-settings":return a.createElement(y.G,{entity:$.data,entityType:e.entityType,config:M.data,shareLink:H.data,entityId:e.entityId,analyticsOptions:f.I.getAnalyticsOptions(e.entityType),onClickSaveLink:oe,onClickCancel:function(){return ie("main")},privacy:Q.data,hasStudentExp:j(S.C.StudentExperience),shareOverrideRestrictions:L,onClickDeleteLink:ye&&le});case"smart-embed-main":return a.createElement(Z,{entity:$.data,closePopup:e.closePopup,embed:de})}}())}var ye=n(89067),fe=o.T.encloseNamespace("shareV2.pluginShareConfirmation");function ve(e){return a.createElement(v.G,{size:"md",title:fe("title"),closePopup:e.closePopup},a.createElement(G,{closePopup:e.closePopup}))}var he=n(25752),be=n(81192),Se=n(93563),Ee=n(31138),ge=n(2267),ke=n(83351),Ce=n(31121),Te=n(28161),Pe=n(2867);function Ie(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,i,o,l=[],s=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(a=i.call(n)).done)&&(l.push(a.value),l.length!==t);s=!0);}catch(e){c=!0,r=e}finally{try{if(!s&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(c)throw r}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return we(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)?we(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function we(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 xe(e){var t=P.i.getEmbedResolutions(!1),n=Ie(a.useState(!1),2),r=n[0],i=n[1],o=Ie(a.useState(t.find(function(e){return"100%"===e.width})),2),l=o[0],s=o[1],c=(0,Ce.j)({data:{entity:{id:e.entityId,type:e.entityType}},analyticsOptions:{location:p.LZ.Popup,productArea:"plugin-embed",eventVersion:p.eq.V5}}).log,u=(0,Te.F)({entityId:e.entityId,entityType:e.entityType,log:c}),d=u.data,m=u.onClickSavePrivacy,y=d.entity,f=d.loaded,v=d.privacy,h=d.share,b=d.shareOverrideRestrictions,E=d.yearGroups,g=d.config,k=(0,Pe.W)({entityId:e.entityId,entityType:e.entityType,log:c}),C=(0,O.G)(),I=C.embedV2,w=C.smartEmbed,x=C.isConsumer,A=(0,(0,T.T)().hasPermissions)(S.C.StudentExperience),N=x(O.A.SmartEmbed),z=f&&!!E.data&&k.data.loaded;return{data:{entity:y,share:h,privacy:v,yearGroups:E,loaded:z},autoplay:r,setAutoplay:i,videoSizes:t,videoSize:l,setVideoSize:s,hasStudentExp:A,shareOverrideRestrictions:b,initialSettings:k.initialValues,onSaveSettings:k.onClickSaveLink,onClickSavePrivacy:m,onSmartEmbed:function(){w(y.data)},postMessage:function(t){I({entity:y.data,entityType:e.entityType,share:h.data||t,videoSize:l,autoplay:r,liteUrl:g.data.liteUrl}),c({type:"plugin-share-embed",share:h.data||t,embedDetails:{autoplay:r,size:l}},{entity:ge.I.getAnalyticsEntity(e.entityType)})},isSmartEmbed:N}}function Oe(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,i,o,l=[],s=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(a=i.call(n)).done)&&(l.push(a.value),l.length!==t);s=!0);}catch(e){c=!0,r=e}finally{try{if(!s&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(c)throw r}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return Ae(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)?Ae(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Ae(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}var Ne=o.T.encloseNamespace("shareV2.pluginShareEmbed");function ze(e){var t,n,r=xe({entityId:e.entityId,entityType:e.entityType}),i=r.data,o=r.autoplay,s=r.hasStudentExp,c=r.initialSettings,d=r.onSaveSettings,p=r.setAutoplay,m=r.setVideoSize,y=r.shareOverrideRestrictions,f=r.videoSize,S=r.isSmartEmbed,E=r.videoSizes,g=r.onClickSavePrivacy,k=r.postMessage,C=i.entity,T=i.privacy,P=i.yearGroups,O=i.share,A=(0,Se._)({entityId:e.entityId}),N=A.createShareLink,z=A.loaded,j=O.hasCompleted&&!!C.data&&!!P.data&&!!T.data&&!!z,V=Oe(a.useState(),2),L=V[0],G=V[1],B=Oe(a.useState(c),2),R=B[0],F=B[1],_=O.hasCompleted&&!!O.data,D=_?null===(t=O.data)||void 0===t?void 0:t.privacy:L,M=_?c:R,U=ge.I.getEnabledSettingsField(e.entityType),Z=U.showImmediateFeedbackField,$=U.showPreventScrubbingField;return a.useEffect(function(){if(j&&!_){var e=(0,Ee.B)({entity:C.data,entityPrivacy:T.data,yearGroups:P.data,hasStudentExp:s});e&&G(e)}},[C.data,T.data,P.data,s,_,j]),a.useEffect(function(){if(C.hasCompleted&&I.G.isType(C.data,b.E.Interactive)&&C.data.status!==h.X.Published){var e=l.Q.C$.getHref({application:x.O.INTERACTIVES,action:w.e.Interactives.EDIT_INTERACTIVE,args:[C.data.id,u.m.slugify(C.data.name)]});l.Q.Ry.throw(new K(e))}},[C.hasCompleted]),a.createElement(v.G,{size:"md",showLoadingSpinner:!j,closePopup:e.closePopup,title:Ne("title")},a.createElement("div",{className:"d-flex flex-column gap-2 align-items-start mb-3"},a.createElement(he.q,{entity:C.data,entityPrivacy:T.data,entityTypeId:null===(n=C.data)||void 0===n?void 0:n.typeId,hasStudentExp:s,sharePrivacy:D,shareOverrideRestrictions:y,yearGroups:P.data,onClickSavePrivacy:function(e){_?g(e):G(e)}}),a.createElement(ae.V,{autoplay:o,setAutoplay:p,videoSize:f,setVideoSize:m,videoSizes:E}),a.createElement(be.Z,{hideFormHeading:!0,onSubmit:function(e,t){_?d({options:{immediateFeedback:e.immediateFeedback,preventScrubbing:e.preventScrubbing}},t):F(e)},initialValues:M,showImmediateFeedbackField:Z,showPreventScrubbingField:$})),a.createElement(ke.P,{backButtonText:Ne("cancel"),nextButtonText:Ne("embed"),hideCreateClassroomButton:!0,onClickBack:e.closePopup,onClickNext:function(){_||S?(k(),e.goToConfirmationStep()):N(L).then(function(t){k(t),e.goToConfirmationStep()})}}))}var je=o.T.encloseNamespace("shareV2.pluginShareSmartEmbed");function Ve(e){var t=xe({entityId:e.entityId,entityType:e.entityType}),n=t.data,r=t.onSmartEmbed,i=n.entity,o=n.loaded;return a.createElement(v.G,{size:"md",title:je("title"),closePopup:e.closePopup,showLoadingSpinner:!o},a.createElement(Z,{embed:function(){r(),e.goToConfirmationStep()},entity:i.data,closePopup:e.closePopup}))}function Le(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,i,o,l=[],s=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(a=i.call(n)).done)&&(l.push(a.value),l.length!==t);s=!0);}catch(e){c=!0,r=e}finally{try{if(!s&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(c)throw r}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return Ge(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)?Ge(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Ge(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 Be(e){var t=(0,(0,O.G)().isConsumer)(O.A.SmartEmbed)?"smart-embed":"main-embed",n=Le(a.useState(!0),2),r=n[0],i=n[1],o=Le(a.useState(t),2),l=o[0],s=o[1];function c(e){i(!1),s(e)}var u={entityId:e.entityId,entityType:e.entityType,closePopup:e.closePopup,goToConfirmationStep:function(){return c("confirmation")}};return a.createElement(ye.r,{animate:r,data:u,step:l,setStep:c,steps:{"main-embed":{view:ze},"smart-embed":{view:Ve},confirmation:{view:ve}},closePopup:e.closePopup})}function Re(e){return(0,r.r)(null).hasShareFlowV2?a.createElement(Be,{entityId:e.entityId,entityType:e.entityType,closePopup:e.closePopup}):a.createElement(me,{entityId:e.entityId,entityType:e.entityType,closePopup:e.closePopup})}}}]);
2
- //# sourceMappingURL=9634-f10e5980bd-lite.chunk.js.map
1
+ "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[9634],{30357:(e,t,n)=>{n.d(t,{V:()=>s});var a=n(32735),r=n(23999),i=n(89965),o=n(83345),l="share.embedSize";function s(e){var t=e.autoplay,n=e.setAutoplay,s=e.videoSize,c=e.setVideoSize,u=e.videoSizes;return a.createElement("div",{className:"d-flex align-items-center"},!!u.length&&a.createElement(a.Fragment,null,a.createElement("div",{className:"me-1"},a.createElement(o.x,{namespace:l,phrase:"videoSize"})),a.createElement("div",{className:"pe-3"},a.createElement(r.Z,null,a.createElement(r.Z.Toggle,{id:"embed-resolution",variant:"outline-dark"},s.label),a.createElement(r.Z.Menu,null,u.map(function(e){return a.createElement(r.Z.Item,{key:"".concat(e.width,"x").concat(e.height),onClick:function(){return c(e)}},e.label)}))))),a.createElement("div",{className:"me-2"},a.createElement(o.x,{namespace:l,phrase:"autoplay"})),a.createElement(i.X,{id:"autoplay-checkbox",checked:t,onChange:function(){return n(!t)}}))}},41661:(e,t,n)=>{var a;n.d(t,{D:()=>a}),function(e){e.GoogleClassroom="google-classroom",e.MicrosoftTeams="microsoft-teams",e.Vivi="vivi",e.AppleTv="apply-tv"}(a||(a={}))},40841:(e,t,n)=>{n.d(t,{_:()=>l});var a=n(23481),r=n(41661),i=n(65728),o=a.T.encloseNamespace("shared.shared-utils"),l={getShareIntegrations:function(e,t){return[{id:r.D.GoogleClassroom,name:o("googleClassroom"),enabled:e,settingName:i.E.ShareToGoogleClassroom},{id:r.D.MicrosoftTeams,name:o("msftTeams"),enabled:t,settingName:i.E.ShareToMicrosoftTeams}]}}},83351:(e,t,n)=>{n.d(t,{P:()=>s});var a=n(32735),r=n(23481),i=n(13876),o=n(36532),l=r.T.encloseNamespace("assign.flowControls");function s(e){var t=e.hideBackButton||!e.onClickBack,n=e.hideNextButton||!e.onClickNext,r=e.hideCreateClassroomButton||!e.onClickCreateClassroom;return t&&n&&r?a.createElement(a.Fragment,null):a.createElement(i.u,{className:"justify-content-between"},a.createElement("div",null,!!e.leftComponent&&e.leftComponent,!r&&a.createElement(i.u.Submit,{variant:"link",onClick:e.onClickCreateClassroom,text:l("createClassroom"),className:"text-info p-0"})),a.createElement("div",{className:"d-flex"},!t&&a.createElement(i.u.Cancel,{variant:"link",onClick:e.onClickBack,text:e.backButtonText||l("back")}),!n&&a.createElement(o.u,{title:e.nextButtonTooltip,disable:!e.nextButtonTooltip,placement:"top",spanHack:!0},a.createElement(i.u.Submit,{variant:"dark",onClick:e.onClickNext,text:e.nextButtonText||l("next"),disabled:e.disableNextButton,showSpinner:e.showSpinner}))))}},89547:(e,t,n)=>{n.r(t),n.d(t,{PluginShareStageView:()=>Re});var a=n(32735),r=n(37802),i=n(70680),o=n(23481),l=n(81886),s=n(20354),c=n(110),u=n(28400),d=n(49985),p=n(65858),m=n(30439),y=n(38648),f=n(64249),v=n(9111),h=n(5960),b=n(4594),S=n(16714),E=n(39151),g=n(1666),k=n(31949),C=n(69883),T=n(22902),P=n(26450),I=n(45778),w=n(14070),x=n(97291),O=n(46390),A=n(13876),N=n(50023),z=n(83345),j=n(99742),V="share.postMessageSuccess",L=o.T.encloseNamespace(V);function G(e){return(0,O.G)().params.singleSelectMode?a.createElement("div",null,a.createElement("img",{className:"img-fluid mx-auto d-block",alt:"Success",src:j.W.SUCCESS,style:{maxWidth:"14rem"}}),a.createElement("p",{className:"text-center"},a.createElement("strong",null,a.createElement(z.x,{namespace:V,phrase:"success"}))),a.createElement(A.u,null,a.createElement(A.u.Submit,{onClick:e.closePopup,text:L("close"),variant:"outline-dark"}))):a.createElement(N.E,null)}var B=n(86348),R=n(70872),F=n(26339),_=n(54610),D=n(68626),M="share.smartEmbedConfirmation",U=o.T.encloseNamespace(M);function Z(e){return a.createElement(a.Fragment,null,a.createElement("div",{className:"row mb-3"},a.createElement("div",{className:"col-4"},a.createElement(B.u,{video:e.entity,type:"cosmetic",imageOptions:{size:_.h2.Small},textPosition:D.z.Independent,preload:!0})),a.createElement("div",{className:"col-8"},a.createElement(F.$,{type:"series",analyticsOptions:{},video:e.entity}),a.createElement(R.u,{video:e.entity,analyticsOptions:{},appLink:null,yearGroups:null,showPadlock:!1}))),a.createElement("p",null,a.createElement(z.x,{namespace:M,phrase:"prompt"})),a.createElement(A.u,null,a.createElement(A.u.Cancel,{onClick:e.closePopup}),a.createElement(A.u.Submit,{text:U("embed"),onClick:e.embed,variant:"dark"})))}var $=n(47663);function H(e){return H="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},H(e)}function Q(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,q(a.key),a)}}function q(e){var t=function(e){if("object"!=H(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=H(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==H(t)?t:t+""}function W(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(W=function(){return!!e})()}function X(e){return X=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},X(e)}function Y(e,t){return Y=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},Y(e,t)}var J="share.embedUnpublishedInteractiveError",K=function(e){function t(e){var n;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),(n=function(e,t,n){return t=X(t),function(e,t){if(t&&("object"==H(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,W()?Reflect.construct(t,n||[],X(e).constructor):t.apply(e,n))}(this,t,["Embed unpublished interactive error"])).externalLink=e,n}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Y(e,t)}(t,e),n=t,(a=[{key:"name",get:function(){return"EmbedUnpublishedInteractiveError"}},{key:"dialogOptions",get:function(){return{title:o.T.getPhrase(J,"title"),text:o.T.getPhrase(J,"body",{externalLink:this.externalLink}),buttons:[{text:o.T.getPhrase(J,"close"),className:"btn btn-dark",success:!0}]}}}])&&Q(n.prototype,a),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,a}($.S),ee=n(98269),te=n(80247),ne=n(92802),ae=n(30357),re=n(97330),ie=n(61193),oe=n(82644),le="share.pluginShareSettings";function se(e){var t=(0,ne.u6)(),n=(0,T.T)().hasPermissions,r=(0,O.G)(),i=r.params.sizeSelector,o=r.consumerName;return a.createElement(ne.l0,null,a.createElement("div",{className:"d-flex justify-content-between align-items-center mb-2"},a.createElement(re.s,{linkExpireDate:e.shareLink.linkExpireDate,isPasswordProtected:e.shareLink.isPasswordProtected,privacy:e.privacy,entityTypeId:e.shareLink.objectTypeId,status:e.shareLink.status,onClickSavePrivacy:e.onClickSavePrivacy,hasStudentExp:e.hasStudentExp,entity:e.entity,yearGroups:e.yearGroups,shareOverrideRestrictions:e.shareOverrideRestrictions})),a.createElement("div",{className:"mb-2"},a.createElement(ae.V,{autoplay:e.autoplay,setAutoplay:e.setAutoplay,videoSize:e.videoSize,setVideoSize:e.setVideoSize,videoSizes:i?e.videoSizes:[]})),n(S.C.ManageShareLinkSettings)&&a.createElement(ee.Z,{type:"button",variant:"link",className:"text-info ps-0",onClick:e.onClickShowAdvanced},a.createElement(z.x,{namespace:le,phrase:"showAdvanced"})),a.createElement(A.u,null,a.createElement(ee.Z,{className:"me-2",variant:"link",onClick:e.onClickCancel},"Cancel"),a.createElement(ee.Z,{variant:"dark",type:"submit"},t.isSubmitting?a.createElement(te.Z,{as:"span",animation:"border",role:"status",size:"sm"}):a.createElement(z.x,{namespace:le,phrase:o?"embedInto":"embed",options:{consumerName:o}}))))}function ce(e){var t,n,r={password:"",removePassword:!1,linkExpireDate:null===(t=e.shareLink)||void 0===t?void 0:t.linkExpireDate,overrideRestrictions:null===(n=e.shareLink)||void 0===n?void 0:n.overrideRestrictions};return a.createElement(oe.n,{initialValues:r,onSubmit:e.onClickEmbed,castInitialValues:!1,validationSchema:ie.d},a.createElement(se,{shareLink:e.shareLink,onClickCancel:e.onClickCancel,autoplay:e.autoplay,setAutoplay:e.setAutoplay,videoSize:e.videoSize,setVideoSize:e.setVideoSize,videoSizes:e.videoSizes,privacy:e.privacy,entityType:e.entityType,hasStudentExp:e.hasStudentExp,entity:e.entity,yearGroups:e.yearGroups,shareOverrideRestrictions:e.shareOverrideRestrictions,onClickSavePrivacy:e.onClickSavePrivacy,onClickShowAdvanced:e.onClickShowAdvanced}))}function ue(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,i,o,l=[],s=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(a=i.call(n)).done)&&(l.push(a.value),l.length!==t);s=!0);}catch(e){c=!0,r=e}finally{try{if(!s&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(c)throw r}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return de(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)?de(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function de(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}var pe=o.T.encloseNamespace("share.pluginShare");function me(e){var t,n,o,A,N=(0,i.I0)(),z=(0,C.Z)(),j=(0,T.T)().hasPermissions,V=(0,r.r)(null),L=V.shareOverrideRestrictions,B=V.isLoadingSettings,R=(0,O.G)(),F=R.embed,_=R.smartEmbed,D=(0,R.isConsumer)(O.A.SmartEmbed),M=s.a.useBasicFetch(E.L.config()),U=s.a.useBasicFetch(k.N.currentUser()),$=f.I.getFetchFunctionByType(e.entityType)(e.entityId,null===(t=U.data)||void 0===t?void 0:t.id),H=s.a.useBasicFetch(m.o.getShareLinkByObjectId(e.entityId)),Q=s.a.useBasicFetch(m.o.getPrivacy(e.entityId)),q=s.a.useBasicFetch((null===(n=U.data)||void 0===n?void 0:n.isAuthenticated)&&g.h.yearGroups(U.data.customerId)),W=P.i.getEmbedResolutions(!1),X=ue(a.useState(W[0]),2),Y=X[0],J=X[1],ee=ue(a.useState(!1),2),te=ee[0],ne=ee[1],ae=ue(a.useState(D?"smart-embed-main":"main"),2),re=ae[0],ie=ae[1];function oe(t){f.I.updateLink(N,$.data,e.entityType,H.data,t,z,function(){return ie("main")})}function le(){f.I.deleteLink(N,$.data,e.entityType,H.data,z,function(){return ie("main")})}function se(){var t;t=H.data,F({entity:$.data,entityType:e.entityType,shareLink:t,videoSize:Y,autoplay:te,liteUrl:M.data.liteUrl}),d.k.logUserAction(Object.assign(Object.assign({},$.data),{shareLink:t}),d.k.mergeOptions(f.I.getAnalyticsOptions(e.entityType),{actionType:p.Vw.Share,descriptor:p.YM.PluginEmbed,workflowPhase:p.eu.Complete,eventVersion:p.eq.V4})),ie("post-message-sent")}function de(){_($.data),ie("post-message-sent")}function me(e,t){s.a.fetch(N,m.o.updatePrivacy(H.data.id,e,t,function(){return z.success(pe("privaciesSuccess",{name:$.data.name}))},function(){return z.error(pe("privaciesError",{name:$.data.name}))}))}a.useEffect(function(){if($.hasCompleted&&I.G.isType($.data,b.E.Interactive)&&$.data.status!==h.X.Published){var e=l.Q.C$.getHref({application:x.O.INTERACTIVES,action:w.e.Interactives.EDIT_INTERACTIVE,args:[$.data.id,u.m.slugify($.data.name)]});l.Q.Ry.throw(new K(e))}},[$.hasCompleted]),a.useEffect(function(){D||$.hasCompleted&&H.hasCompleted&&(H.data||f.I.createLink({dispatch:N,entity:$.data,entityType:e.entityType,alerts:z}))},[H.data,$.data]);var ye=(null===(o=H.data)||void 0===o?void 0:o.linkExpireDate)&&c.O.isBefore(null===(A=H.data)||void 0===A?void 0:A.linkExpireDate,new Date),fe=M.data&&U.data&&$.data&&(D||H.data)&&Q.data&&q.hasCompleted&&!B;return a.createElement(v.G,{title:pe("title"),closePopup:e.closePopup,showLoadingSpinner:!fe||null===re},function(){if(!fe)return a.createElement(a.Fragment,null);switch(re){case"post-message-sent":return a.createElement(G,{closePopup:e.closePopup});case"main":return a.createElement(ce,{shareLink:H.data,analyticsOptions:f.I.getAnalyticsOptions(e.entityType),onClickCancel:e.closePopup,onClickEmbed:se,videoSize:Y,setVideoSize:J,videoSizes:W,autoplay:te,setAutoplay:ne,privacy:Q.data,entityType:e.entityType,hasStudentExp:j(S.C.StudentExperience),entity:$.data,yearGroups:q.data,shareOverrideRestrictions:L,onClickSavePrivacy:me,onClickShowAdvanced:function(){return ie("link-settings")}});case"link-settings":return a.createElement(y.G,{entity:$.data,entityType:e.entityType,config:M.data,shareLink:H.data,entityId:e.entityId,analyticsOptions:f.I.getAnalyticsOptions(e.entityType),onClickSaveLink:oe,onClickCancel:function(){return ie("main")},privacy:Q.data,hasStudentExp:j(S.C.StudentExperience),shareOverrideRestrictions:L,onClickDeleteLink:ye&&le});case"smart-embed-main":return a.createElement(Z,{entity:$.data,closePopup:e.closePopup,embed:de})}}())}var ye=n(89067),fe=o.T.encloseNamespace("shareV2.pluginShareConfirmation");function ve(e){return a.createElement(v.G,{size:"md",title:fe("title"),closePopup:e.closePopup},a.createElement(G,{closePopup:e.closePopup}))}var he=n(25752),be=n(81192),Se=n(93563),Ee=n(31138),ge=n(2267),ke=n(83351),Ce=n(31121),Te=n(28161),Pe=n(2867);function Ie(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,i,o,l=[],s=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(a=i.call(n)).done)&&(l.push(a.value),l.length!==t);s=!0);}catch(e){c=!0,r=e}finally{try{if(!s&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(c)throw r}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return we(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)?we(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function we(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 xe(e){var t=P.i.getEmbedResolutions(!1),n=Ie(a.useState(!1),2),r=n[0],i=n[1],o=Ie(a.useState(t[0]),2),l=o[0],s=o[1],c=(0,Ce.j)({data:{entity:{id:e.entityId,type:e.entityType}},analyticsOptions:{location:p.LZ.Popup,productArea:"plugin-embed",eventVersion:p.eq.V5}}).log,u=(0,Te.F)({entityId:e.entityId,entityType:e.entityType,log:c}),d=u.data,m=u.onClickSavePrivacy,y=d.entity,f=d.loaded,v=d.privacy,h=d.share,b=d.shareOverrideRestrictions,E=d.yearGroups,g=d.config,k=(0,Pe.W)({entityId:e.entityId,entityType:e.entityType,log:c}),C=(0,O.G)(),I=C.embedV2,w=C.smartEmbed,x=C.isConsumer,A=(0,(0,T.T)().hasPermissions)(S.C.StudentExperience),N=x(O.A.SmartEmbed),z=f&&!!E.data&&k.data.loaded;return{data:{entity:y,share:h,privacy:v,yearGroups:E,loaded:z},autoplay:r,setAutoplay:i,videoSizes:t,videoSize:l,setVideoSize:s,hasStudentExp:A,shareOverrideRestrictions:b,initialSettings:k.initialValues,onSaveSettings:k.onClickSaveLink,onClickSavePrivacy:m,onSmartEmbed:function(){w(y.data)},postMessage:function(t){I({entity:y.data,entityType:e.entityType,share:h.data||t,videoSize:l,autoplay:r,liteUrl:g.data.liteUrl}),c({type:"plugin-share-embed",share:h.data||t,embedDetails:{autoplay:r,size:l}},{entity:ge.I.getAnalyticsEntity(e.entityType)})},isSmartEmbed:N}}function Oe(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,i,o,l=[],s=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(a=i.call(n)).done)&&(l.push(a.value),l.length!==t);s=!0);}catch(e){c=!0,r=e}finally{try{if(!s&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(c)throw r}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return Ae(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)?Ae(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Ae(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}var Ne=o.T.encloseNamespace("shareV2.pluginShareEmbed");function ze(e){var t,n,r=xe({entityId:e.entityId,entityType:e.entityType}),i=r.data,o=r.autoplay,s=r.hasStudentExp,c=r.initialSettings,d=r.onSaveSettings,p=r.setAutoplay,m=r.setVideoSize,y=r.shareOverrideRestrictions,f=r.videoSize,S=r.isSmartEmbed,E=r.videoSizes,g=r.onClickSavePrivacy,k=r.postMessage,C=i.entity,T=i.privacy,P=i.yearGroups,O=i.share,A=(0,Se._)({entityId:e.entityId}),N=A.createShareLink,z=A.loaded,j=O.hasCompleted&&!!C.data&&!!P.data&&!!T.data&&!!z,V=Oe(a.useState(),2),L=V[0],G=V[1],B=Oe(a.useState(c),2),R=B[0],F=B[1],_=O.hasCompleted&&!!O.data,D=_?null===(t=O.data)||void 0===t?void 0:t.privacy:L,M=_?c:R,U=ge.I.getEnabledSettingsField(e.entityType),Z=U.showImmediateFeedbackField,$=U.showPreventScrubbingField;return a.useEffect(function(){if(j&&!_){var e=(0,Ee.B)({entity:C.data,entityPrivacy:T.data,yearGroups:P.data,hasStudentExp:s});e&&G(e)}},[C.data,T.data,P.data,s,_,j]),a.useEffect(function(){if(C.hasCompleted&&I.G.isType(C.data,b.E.Interactive)&&C.data.status!==h.X.Published){var e=l.Q.C$.getHref({application:x.O.INTERACTIVES,action:w.e.Interactives.EDIT_INTERACTIVE,args:[C.data.id,u.m.slugify(C.data.name)]});l.Q.Ry.throw(new K(e))}},[C.hasCompleted]),a.createElement(v.G,{size:"md",showLoadingSpinner:!j,closePopup:e.closePopup,title:Ne("title")},a.createElement("div",{className:"d-flex flex-column gap-2 align-items-start mb-3"},a.createElement(he.q,{entity:C.data,entityPrivacy:T.data,entityTypeId:null===(n=C.data)||void 0===n?void 0:n.typeId,hasStudentExp:s,sharePrivacy:D,shareOverrideRestrictions:y,yearGroups:P.data,onClickSavePrivacy:function(e){_?g(e):G(e)}}),a.createElement(ae.V,{autoplay:o,setAutoplay:p,videoSize:f,setVideoSize:m,videoSizes:E}),a.createElement(be.Z,{hideFormHeading:!0,onSubmit:function(e,t){_?d({options:{immediateFeedback:e.immediateFeedback,preventScrubbing:e.preventScrubbing}},t):F(e)},initialValues:M,showImmediateFeedbackField:Z,showPreventScrubbingField:$})),a.createElement(ke.P,{backButtonText:Ne("cancel"),nextButtonText:Ne("embed"),hideCreateClassroomButton:!0,onClickBack:e.closePopup,onClickNext:function(){_||S?(k(),e.goToConfirmationStep()):N(L).then(function(t){k(t),e.goToConfirmationStep()})}}))}var je=o.T.encloseNamespace("shareV2.pluginShareSmartEmbed");function Ve(e){var t=xe({entityId:e.entityId,entityType:e.entityType}),n=t.data,r=t.onSmartEmbed,i=n.entity,o=n.loaded;return a.createElement(v.G,{size:"md",title:je("title"),closePopup:e.closePopup,showLoadingSpinner:!o},a.createElement(Z,{embed:function(){r(),e.goToConfirmationStep()},entity:i.data,closePopup:e.closePopup}))}function Le(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,i,o,l=[],s=!0,c=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(a=i.call(n)).done)&&(l.push(a.value),l.length!==t);s=!0);}catch(e){c=!0,r=e}finally{try{if(!s&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(c)throw r}}return l}}(e,t)||function(e,t){if(e){if("string"==typeof e)return Ge(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)?Ge(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Ge(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 Be(e){var t=(0,(0,O.G)().isConsumer)(O.A.SmartEmbed)?"smart-embed":"main-embed",n=Le(a.useState(!0),2),r=n[0],i=n[1],o=Le(a.useState(t),2),l=o[0],s=o[1];function c(e){i(!1),s(e)}var u={entityId:e.entityId,entityType:e.entityType,closePopup:e.closePopup,goToConfirmationStep:function(){return c("confirmation")}};return a.createElement(ye.r,{animate:r,data:u,step:l,setStep:c,steps:{"main-embed":{view:ze},"smart-embed":{view:Ve},confirmation:{view:ve}},closePopup:e.closePopup})}function Re(e){return(0,r.r)(null).hasShareFlowV2?a.createElement(Be,{entityId:e.entityId,entityType:e.entityType,closePopup:e.closePopup}):a.createElement(me,{entityId:e.entityId,entityType:e.entityType,closePopup:e.closePopup})}}}]);
2
+ //# sourceMappingURL=9634-0a07635b99-lite.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scripts/9634-0a07635b99-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/apps/share/components/embed-size/EmbedSize.tsx","file:///app/packages/libs/shared/src/enums/IntegrationId.ts","file:///app/packages/libs/shared/src/utils/IntegrationHelper.ts","file:///app/packages/projects/lite/src/apps/assign/components/flow-controls/FlowControls.tsx","file:///app/packages/projects/lite/src/apps/share/components/post-message-sent/PostMessageSent.tsx","file:///app/packages/projects/lite/src/apps/share/components/smart-embed-confirmation/SmartEmbedConfirmation.tsx","file:///app/packages/projects/lite/src/apps/share/errors/embed-unpublished-interactive/EmbedUnpublishedInteractiveError.ts","file:///app/packages/projects/lite/src/apps/share/views/plugin-share/components/plugin-share-settings/PluginShareSettings.tsx","file:///app/packages/projects/lite/src/apps/share/views/plugin-share/PluginShareView.tsx","file:///app/packages/projects/lite/src/apps/share/views/v2/plugin-share-confirmation-view/PluginShareConfirmationView.tsx","file:///app/packages/projects/lite/src/apps/share/views/v2/hooks/usePluginShareData.ts","file:///app/packages/projects/lite/src/apps/share/views/v2/plugin-share-embed-view/PluginShareEmbedView.tsx","file:///app/packages/projects/lite/src/apps/share/views/v2/plugin-share-smart-embed-view/PluginShareSmartEmbedView.tsx","file:///app/packages/projects/lite/src/apps/share/views/v2/plugin-share/PluginShareView.tsx","file:///app/packages/projects/lite/src/apps/share/views/v2/PluginShareStageView.tsx"],"sourcesContent":["import React from 'react';\nimport { Dropdown } from 'react-bootstrap';\n\nimport { Checkbox } from 'libs/shared/components/forms/form-checkbox/Checkbox';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { EmbedResolution } from 'libs/shared/utils/EmbedHelper';\n\nconst namespace = 'share.embedSize';\n\ninterface EmbedSizeProps {\n autoplay: boolean;\n setAutoplay: (autoplay: boolean) => void;\n videoSize: EmbedResolution;\n setVideoSize: (videoSize: EmbedResolution) => void;\n videoSizes: EmbedResolution[];\n}\n\nexport function EmbedSize(props: EmbedSizeProps): React.ReactElement {\n const {\n autoplay,\n setAutoplay,\n videoSize,\n setVideoSize,\n videoSizes\n } = props;\n\n return (\n <div className='d-flex align-items-center'>\n {!!videoSizes.length &&\n <>\n <div className='me-1'>\n <Text namespace={namespace} phrase='videoSize' />\n </div>\n <div className='pe-3'>\n <Dropdown>\n <Dropdown.Toggle id='embed-resolution' variant='outline-dark'>\n {videoSize.label}\n </Dropdown.Toggle>\n\n <Dropdown.Menu>\n {videoSizes.map(size => (\n <Dropdown.Item\n key={`${size.width}x${size.height}`}\n onClick={() => setVideoSize(size)}\n >\n {size.label}\n </Dropdown.Item>\n ))}\n </Dropdown.Menu>\n </Dropdown>\n </div>\n </>\n }\n <div className='me-2'>\n <Text namespace={namespace} phrase='autoplay' />\n </div>\n <Checkbox id='autoplay-checkbox' checked={autoplay} onChange={() => setAutoplay(!autoplay)} />\n </div>\n );\n}","export enum IntegrationId {\n GoogleClassroom = 'google-classroom',\n MicrosoftTeams = 'microsoft-teams',\n Vivi = 'vivi',\n AppleTv = 'apply-tv'\n}","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { IntegrationId } from 'libs/shared/enums/IntegrationId';\nimport { SettingName } from 'libs/shared/enums/SettingName';\nimport { Integration } from 'libs/shared/interfaces';\n\nconst namespace = 'shared.shared-utils';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport const IntegrationHelper = {\n getShareIntegrations(googleClassroomSetting: boolean, msftTeamsSetting: boolean): Integration[] {\n return [\n {\n id: IntegrationId.GoogleClassroom,\n name: getPhrase('googleClassroom'),\n enabled: googleClassroomSetting,\n settingName: SettingName.ShareToGoogleClassroom\n },\n {\n id: IntegrationId.MicrosoftTeams,\n name: getPhrase('msftTeams'),\n enabled: msftTeamsSetting,\n settingName: SettingName.ShareToMicrosoftTeams\n }\n ];\n }\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 React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\nimport { PopupLoadingSpinner } from 'libs/shared/components/popup/PopupLoadingSpinner';\nimport { Text } from 'libs/shared/components/text/Text';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\nimport { usePluginHelper } from 'shared/hooks/use-plugin-helper/usePluginHelper';\n\nconst namespace = 'share.postMessageSuccess';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface PostMessageSentProps {\n closePopup: () => void;\n}\n\nexport function PostMessageSent(props: PostMessageSentProps): React.ReactElement {\n const { params: { singleSelectMode } } = usePluginHelper();\n\n if (!singleSelectMode)\n return <PopupLoadingSpinner />;\n\n return (\n <div>\n <img\n className='img-fluid mx-auto d-block'\n alt='Success'\n src={ImageUrls.SUCCESS}\n style={{ maxWidth: '14rem' }}\n />\n <p className='text-center'>\n <strong><Text namespace={namespace} phrase='success' /></strong>\n </p>\n <PopupButtons>\n <PopupButtons.Submit onClick={props.closePopup} text={getPhrase('close')} variant='outline-dark' />\n </PopupButtons>\n </div>\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 { Text } from 'libs/shared/components/text/Text';\nimport { VideoThumbnail } from 'libs/shared/components/thumbnails/video/VideoThumbnail';\nimport { VideoItemTitle } from 'libs/shared/components/video-list/components/video-item-title/VideoItemTitle';\nimport { VideoSubText } from 'libs/shared/components/video-sub-text/VideoSubText';\nimport { ImageSize } from 'libs/shared/enums/Images';\nimport { ThumbnailTextPosition } from 'libs/shared/enums/ThumbnailTextPosition';\nimport { VideoTypes } from 'libs/shared/interfaces';\n\nconst namespace = 'share.smartEmbedConfirmation';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface SmartEmbedConfirmation {\n closePopup: () => void;\n embed: () => void;\n entity: VideoTypes;\n}\n\nexport function SmartEmbedConfirmation(props: SmartEmbedConfirmation): JSX.Element {\n return (\n <>\n <div className='row mb-3'>\n <div className='col-4'>\n <VideoThumbnail\n video={props.entity}\n type='cosmetic'\n imageOptions={{ size: ImageSize.Small }}\n textPosition={ThumbnailTextPosition.Independent}\n preload\n />\n </div>\n <div className='col-8'>\n <VideoSubText type='series' analyticsOptions={{}} video={props.entity} />\n <VideoItemTitle\n video={props.entity}\n analyticsOptions={{}}\n appLink={null}\n yearGroups={null}\n showPadlock={false}\n />\n </div>\n </div>\n <p><Text namespace={namespace} phrase='prompt' /></p>\n <PopupButtons>\n <PopupButtons.Cancel onClick={props.closePopup} />\n <PopupButtons.Submit\n text={getPhrase('embed')}\n onClick={props.embed}\n variant='dark'\n />\n </PopupButtons>\n </>\n );\n}","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { DialogError } from 'libs/shared/errors/primitives/DialogError';\nimport { DialogOptions } from 'libs/shared/interfaces';\n\nconst namespace = 'share.embedUnpublishedInteractiveError';\n\nexport class EmbedUnpublishedInteractiveError extends DialogError {\n private externalLink: string;\n\n constructor(externalLink: string) {\n super('Embed unpublished interactive error');\n\n this.externalLink = externalLink;\n }\n\n // @ts-ignore\n public get name(): string {\n return 'EmbedUnpublishedInteractiveError';\n }\n\n // @ts-ignore\n public get dialogOptions(): DialogOptions {\n return {\n title: LanguageService.getPhrase(namespace, 'title'),\n text: LanguageService.getPhrase(namespace, 'body', {\n externalLink: this.externalLink\n }),\n buttons: [{\n text: LanguageService.getPhrase(namespace, 'close'),\n className: `btn btn-dark`,\n success: true\n }]\n };\n }\n}","import React from 'react';\nimport { Button, Spinner } from 'react-bootstrap';\nimport { Form, useFormikContext } from 'formik';\n\nimport { EmbedSize } from 'libs/shared/apps/share/components/embed-size/EmbedSize';\nimport { ShareLinkInfo } from 'libs/shared/apps/share/components/share-link-info/ShareLinkInfo';\nimport { EditShareLinkRequest } from 'libs/shared/apps/share/interfaces/requests/EditShareLinkRequest';\nimport { SharePrivacyResponse } from 'libs/shared/apps/share/interfaces/responses/SharePrivacyResponse';\nimport { SharePrivacy } from 'libs/shared/apps/share/interfaces/SharePrivacy';\nimport { ShareLinkSettingsValidationSchema } from 'libs/shared/apps/share/validation/ShareLinkSettingsValidationSchema';\nimport { SharableEntityType } from 'libs/shared/apps/share/views/share/ShareViewHelper';\nimport { FormWrapper } from 'libs/shared/components/forms/form-wrapper/FormWrapper';\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { BaseObject, PropsWithAnalyticsOptions, ShareLink, YearGroup } from 'libs/shared/interfaces';\nimport { EmbedResolution } from 'libs/shared/utils/EmbedHelper';\n\nimport { usePluginHelper } from 'shared/hooks/use-plugin-helper/usePluginHelper';\n\nconst namespace = 'share.pluginShareSettings';\n\ninterface PluginShareSettingsFormProps {\n shareLink: ShareLink;\n privacy: SharePrivacyResponse;\n onClickCancel: () => void;\n videoSize: EmbedResolution;\n setVideoSize: (videoSize: EmbedResolution) => void;\n videoSizes: EmbedResolution[];\n autoplay: boolean;\n setAutoplay: (autoplay: boolean) => void;\n entityType: SharableEntityType;\n hasStudentExp: boolean;\n entity: BaseObject;\n yearGroups: YearGroup[];\n shareOverrideRestrictions: boolean;\n onClickSavePrivacy: (privacy: SharePrivacy, overrideRestrictions: boolean) => void;\n onClickShowAdvanced: () => void;\n}\n\nfunction PluginShareSettingsForm(props: PluginShareSettingsFormProps): React.ReactElement {\n const formikProps = useFormikContext<EditShareLinkRequest>();\n \n const { hasPermissions } = usePermissions();\n\n const { params: { sizeSelector }, consumerName } = usePluginHelper();\n\n return (\n <Form>\n <div className='d-flex justify-content-between align-items-center mb-2'>\n <ShareLinkInfo\n linkExpireDate={props.shareLink.linkExpireDate}\n isPasswordProtected={props.shareLink.isPasswordProtected}\n privacy={props.privacy}\n entityTypeId={props.shareLink.objectTypeId}\n status={props.shareLink.status}\n onClickSavePrivacy={props.onClickSavePrivacy}\n hasStudentExp={props.hasStudentExp}\n entity={props.entity}\n yearGroups={props.yearGroups}\n shareOverrideRestrictions={props.shareOverrideRestrictions}\n />\n </div>\n <div className='mb-2'>\n <EmbedSize\n autoplay={props.autoplay}\n setAutoplay={props.setAutoplay}\n videoSize={props.videoSize}\n setVideoSize={props.setVideoSize}\n videoSizes={sizeSelector ? props.videoSizes : []}\n />\n </div>\n {hasPermissions(PermissionName.ManageShareLinkSettings) && (\n <Button type='button' variant='link' className='text-info ps-0' onClick={props.onClickShowAdvanced}>\n <Text namespace={namespace} phrase='showAdvanced' />\n </Button>\n )}\n <PopupButtons>\n <Button className='me-2' variant='link' onClick={props.onClickCancel}>Cancel</Button>\n <Button\n variant='dark'\n type='submit'\n >\n {formikProps.isSubmitting\n ? <Spinner as='span' animation='border' role='status' size='sm' />\n : <Text namespace={namespace} phrase={consumerName ? 'embedInto' : 'embed'} options={{ consumerName }} />}\n </Button>\n </PopupButtons>\n </Form>\n );\n}\n\ninterface PluginShareSettingsProps {\n shareLink: ShareLink;\n videoSize: EmbedResolution;\n setVideoSize: (videoSize: EmbedResolution) => void;\n videoSizes: EmbedResolution[];\n autoplay: boolean;\n setAutoplay: (autoplay: boolean) => void;\n onClickEmbed: (data: EditShareLinkRequest) => void;\n onClickCancel: () => void;\n privacy: SharePrivacyResponse;\n entityType: SharableEntityType;\n hasStudentExp: boolean;\n entity: BaseObject;\n yearGroups: YearGroup[];\n shareOverrideRestrictions: boolean;\n onClickSavePrivacy: (privacy: SharePrivacy, overrideRestrictions: boolean) => void;\n onClickShowAdvanced: () => void;\n}\n\nexport function PluginShareSettings(\n props: PropsWithAnalyticsOptions<PluginShareSettingsProps>\n): React.ReactElement {\n const initialValues: EditShareLinkRequest = {\n password: '',\n removePassword: false,\n linkExpireDate: props.shareLink?.linkExpireDate,\n overrideRestrictions: props.shareLink?.overrideRestrictions\n };\n\n return (\n <FormWrapper<EditShareLinkRequest>\n initialValues={initialValues}\n onSubmit={props.onClickEmbed}\n castInitialValues={false}\n validationSchema={ShareLinkSettingsValidationSchema}\n >\n <PluginShareSettingsForm\n shareLink={props.shareLink}\n onClickCancel={props.onClickCancel}\n autoplay={props.autoplay}\n setAutoplay={props.setAutoplay}\n videoSize={props.videoSize}\n setVideoSize={props.setVideoSize}\n videoSizes={props.videoSizes}\n privacy={props.privacy}\n entityType={props.entityType}\n hasStudentExp={props.hasStudentExp}\n entity={props.entity}\n yearGroups={props.yearGroups}\n shareOverrideRestrictions={props.shareOverrideRestrictions}\n onClickSavePrivacy={props.onClickSavePrivacy}\n onClickShowAdvanced={props.onClickShowAdvanced}\n />\n </FormWrapper>\n );\n}","import React from 'react';\nimport { useDispatch } from 'react-redux';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\nimport { Flight } from 'libs/common/flight';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { EventVersion, ShareDescriptors, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { ShareRequests } from 'libs/shared/apps/share/flight-requests/ShareRequests';\nimport { EditShareLinkRequest } from 'libs/shared/apps/share/interfaces/requests/EditShareLinkRequest';\nimport { SharePrivacyResponse } from 'libs/shared/apps/share/interfaces/responses/SharePrivacyResponse';\nimport { SharePrivacy } from 'libs/shared/apps/share/interfaces/SharePrivacy';\nimport { ShareSettings } from 'libs/shared/apps/share/views/share/components/share-settings/ShareSettings';\nimport { SharableEntityType, ShareViewHelper } from 'libs/shared/apps/share/views/share/ShareViewHelper';\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { CurationStatus } from 'libs/shared/enums/CurationStatus';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { CustomerRequests } from 'libs/shared/flight-requests/CustomerRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useAlerts } from 'libs/shared/hooks/UseAlerts';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { Config, CurrentUser, InteractiveMetadata, PopupViewProps, ShareLink, VideoTypes, YearGroup } from 'libs/shared/interfaces';\nimport { EmbedHelper, EmbedResolution } from 'libs/shared/utils/EmbedHelper';\nimport { MasterTypeHelper } from 'libs/shared/utils/MasterTypeHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { PluginConsumers, usePluginHelper } from 'shared/hooks/use-plugin-helper/usePluginHelper';\n\nimport { PostMessageSent } from 'apps/share/components/post-message-sent/PostMessageSent';\nimport { SmartEmbedConfirmation } from 'apps/share/components/smart-embed-confirmation/SmartEmbedConfirmation';\nimport { EmbedUnpublishedInteractiveError } from 'apps/share/errors/embed-unpublished-interactive/EmbedUnpublishedInteractiveError';\n\nimport { PluginShareSettings } from './components/plugin-share-settings/PluginShareSettings';\n\nconst namespace = 'share.pluginShare';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface PluginShareViewProps extends PopupViewProps {\n entityId: string;\n entityType: SharableEntityType;\n}\n\ntype ShareScreen = 'main' | 'post-message-sent' | 'restriction-warning' | 'smart-embed-main' | 'link-settings';\n\nexport function PluginShareView(props: PluginShareViewProps): React.ReactElement {\n const dispatch = useDispatch();\n\n const alerts = useAlerts();\n\n const { hasPermissions } = usePermissions();\n const { shareOverrideRestrictions, isLoadingSettings } = useSettings(null);\n\n const { embed, smartEmbed, isConsumer } = usePluginHelper();\n const isSmartEmbed = isConsumer(PluginConsumers.SmartEmbed);\n\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const entity = ShareViewHelper.getFetchFunctionByType(props.entityType)(props.entityId, currentUser.data?.id);\n const shareLink = Flight.useBasicFetch<ShareLink>(ShareRequests.getShareLinkByObjectId(props.entityId));\n\n const privacy = Flight.useBasicFetch<SharePrivacyResponse>(ShareRequests.getPrivacy(props.entityId));\n\n const yearGroups = Flight.useBasicFetch<YearGroup[]>(\n currentUser.data?.isAuthenticated && CustomerRequests.yearGroups(currentUser.data.customerId)\n );\n\n const videoSizes = EmbedHelper.getEmbedResolutions(false);\n const [ videoSize, setVideoSize ] = React.useState<EmbedResolution>(videoSizes[0]);\n const [ autoplay, setAutoplay ] = React.useState(false);\n const [ screen, setScreen ] = React.useState<ShareScreen>(isSmartEmbed ? 'smart-embed-main' : 'main');\n\n function postMessage(updatedShareLink: ShareLink): void {\n embed({\n entity: entity.data,\n entityType: props.entityType,\n shareLink: updatedShareLink,\n videoSize,\n autoplay,\n liteUrl: config.data.liteUrl\n });\n\n AnalyticsHelper.logUserAction({\n ...entity.data,\n shareLink: updatedShareLink\n }, AnalyticsHelper.mergeOptions(ShareViewHelper.getAnalyticsOptions(props.entityType), {\n actionType: UserAction.Share,\n descriptor: ShareDescriptors.PluginEmbed,\n workflowPhase: WorkflowPhase.Complete,\n eventVersion: EventVersion.V4\n }));\n\n setScreen('post-message-sent');\n }\n\n function onClickSave(data: EditShareLinkRequest): void {\n ShareViewHelper.updateLink(\n dispatch,\n entity.data,\n props.entityType,\n shareLink.data,\n data,\n alerts,\n () => setScreen('main')\n );\n }\n\n function onClickDeleteLink(): void {\n ShareViewHelper.deleteLink(\n dispatch,\n entity.data,\n props.entityType,\n shareLink.data,\n alerts,\n () => setScreen('main')\n );\n }\n\n function onClickEmbed(): void {\n postMessage(shareLink.data);\n }\n\n function onClickSmartEmbed(): void {\n smartEmbed(entity.data as VideoTypes);\n\n // TODO: Log analytics.\n\n setScreen('post-message-sent');\n }\n\n function onClickSavePrivacy(privacy: SharePrivacy, overrideRestrictions: boolean): void {\n Flight.fetch(\n dispatch,\n ShareRequests.updatePrivacy(\n shareLink.data.id,\n privacy,\n overrideRestrictions,\n () => alerts.success(getPhrase('privaciesSuccess', { name: entity.data.name })),\n () => alerts.error(getPhrase('privaciesError', { name: entity.data.name }))\n )\n );\n }\n\n React.useEffect(() => {\n if (!entity.hasCompleted)\n return;\n\n // If the user is attempting to share an unpublished interactive, throw an error.\n if (\n MasterTypeHelper.isType<InteractiveMetadata>(entity.data, MasterType.Interactive) &&\n entity.data.status !== CurationStatus.Published\n ) {\n const interactiveUrl = Core.AppLinkHelper.getHref({\n application: AppChannels.INTERACTIVES,\n action: Actions.Interactives.EDIT_INTERACTIVE,\n args: [ entity.data.id, TextHelper.slugify(entity.data.name) ]\n });\n\n Core.ErrorHelper.throw(new EmbedUnpublishedInteractiveError(interactiveUrl));\n }\n }, [entity.hasCompleted]);\n\n React.useEffect(() => {\n // Don't need to create a share link for smart embeds\n if (isSmartEmbed)\n return;\n\n // Data not loaded\n if (!entity.hasCompleted || !shareLink.hasCompleted)\n return;\n\n // Share link already exists\n if (shareLink.data)\n return;\n\n // Create a share link\n ShareViewHelper.createLink({\n dispatch,\n entity: entity.data,\n entityType: props.entityType,\n alerts\n });\n }, [ shareLink.data, entity.data ]);\n\n const isExpired = shareLink.data?.linkExpireDate && DateHelper.isBefore(shareLink.data?.linkExpireDate, new Date());\n\n const loaded = config.data\n && currentUser.data\n && entity.data\n && (isSmartEmbed || shareLink.data)\n && privacy.data\n && yearGroups.hasCompleted\n && !isLoadingSettings;\n\n return (\n <Popup\n title={getPhrase('title')}\n closePopup={props.closePopup}\n showLoadingSpinner={!loaded || screen === null}\n >\n {(() => {\n if (!loaded)\n return <></>;\n\n switch (screen) {\n case 'post-message-sent':\n return <PostMessageSent closePopup={props.closePopup} />;\n case 'main':\n return (\n <PluginShareSettings\n shareLink={shareLink.data}\n analyticsOptions={ShareViewHelper.getAnalyticsOptions(props.entityType)}\n onClickCancel={props.closePopup}\n onClickEmbed={onClickEmbed}\n videoSize={videoSize}\n setVideoSize={setVideoSize}\n videoSizes={videoSizes}\n autoplay={autoplay}\n setAutoplay={setAutoplay}\n privacy={privacy.data}\n entityType={props.entityType}\n hasStudentExp={hasPermissions(PermissionName.StudentExperience)}\n entity={entity.data}\n yearGroups={yearGroups.data}\n shareOverrideRestrictions={shareOverrideRestrictions}\n onClickSavePrivacy={onClickSavePrivacy}\n onClickShowAdvanced={() => setScreen('link-settings')}\n />\n );\n case 'link-settings':\n return (\n <ShareSettings\n entity={entity.data}\n entityType={props.entityType}\n config={config.data}\n shareLink={shareLink.data}\n entityId={props.entityId}\n analyticsOptions={ShareViewHelper.getAnalyticsOptions(props.entityType)}\n onClickSaveLink={onClickSave}\n onClickCancel={() => setScreen('main')}\n privacy={privacy.data}\n hasStudentExp={hasPermissions(PermissionName.StudentExperience)}\n shareOverrideRestrictions={shareOverrideRestrictions}\n onClickDeleteLink={isExpired && onClickDeleteLink}\n />\n );\n case 'smart-embed-main':\n return (\n <SmartEmbedConfirmation\n entity={entity.data as VideoTypes}\n closePopup={props.closePopup}\n embed={onClickSmartEmbed}\n />\n );\n }\n })()}\n </Popup>\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { MultiStepPopupViewProps } from 'libs/shared/components/multistep-popup/MultiStepPopup';\nimport { Popup } from 'libs/shared/components/popup/Popup';\n\nimport { PostMessageSent } from 'apps/share/components/post-message-sent/PostMessageSent';\n\nconst namespace = 'shareV2.pluginShareConfirmation';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport interface PluginShareConfirmationViewProps extends MultiStepPopupViewProps {}\n\nexport function PluginShareConfirmationView(props: PluginShareConfirmationViewProps): JSX.Element {\n return (\n <Popup\n size='md'\n title={getPhrase('title')}\n closePopup={props.closePopup}\n >\n <PostMessageSent closePopup={props.closePopup} />\n </Popup>\n );\n}","import React from 'react';\n\nimport { EventVersion, LocationContext } from 'libs/analytics/interfaces';\n\nimport { Share } from 'libs/shared/apps/share-v2/interfaces/Share';\nimport { getShareEventLogger } from 'libs/shared/apps/share-v2/utils/get-share-event-logger/getShareEventLogger';\nimport { SharableEntityType, ShareViewHelper } from 'libs/shared/apps/share-v2/utils/ShareViewHelper';\nimport { useMainShareData } from 'libs/shared/apps/share-v2/views/main-share-view/hooks/use-main-share-data/useMainShareData';\nimport { useShareSettingsData } from 'libs/shared/apps/share-v2/views/share-settings-view/hooks/use-share-settings-data/useShareSettingsData';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { VideoTypes } from 'libs/shared/interfaces';\nimport { EmbedHelper, EmbedResolution } from 'libs/shared/utils/EmbedHelper';\n\nimport { PluginConsumers, usePluginHelper } from 'shared/hooks/use-plugin-helper/usePluginHelper';\n\ninterface UsePluginShareDataOptions {\n entityId: string;\n entityType: SharableEntityType;\n}\n\nexport function usePluginShareData(options: UsePluginShareDataOptions) {\n const videoSizes = EmbedHelper.getEmbedResolutions(false);\n const [ autoplay, setAutoplay ] = React.useState(false);\n const [ videoSize, setVideoSize ] = React.useState<EmbedResolution>(videoSizes[0]);\n\n const { log } = getShareEventLogger({\n data: {\n entity: {\n id: options.entityId,\n type: options.entityType\n }\n },\n analyticsOptions: {\n location: LocationContext.Popup,\n productArea: 'plugin-embed',\n eventVersion: EventVersion.V5\n }\n });\n\n const { data, onClickSavePrivacy } = useMainShareData({\n entityId: options.entityId,\n entityType: options.entityType,\n log\n });\n\n const { entity, loaded: dataLoaded, privacy, share, shareOverrideRestrictions, yearGroups, config } = data;\n \n const shareSettings = useShareSettingsData({\n entityId: options.entityId,\n entityType: options.entityType,\n log\n });\n\n const { embedV2, smartEmbed, isConsumer } = usePluginHelper();\n \n const { hasPermissions } = usePermissions();\n const hasStudentExp = hasPermissions(PermissionName.StudentExperience);\n\n const isSmartEmbed = isConsumer(PluginConsumers.SmartEmbed);\n\n function postMessage(newShare?: Share) {\n embedV2({\n entity: entity.data,\n entityType: options.entityType,\n share: share.data || newShare,\n videoSize,\n autoplay,\n liteUrl: config.data.liteUrl\n });\n\n log({\n type: 'plugin-share-embed',\n share: share.data || newShare,\n embedDetails: {\n autoplay,\n size: videoSize\n }\n }, {\n entity: ShareViewHelper.getAnalyticsEntity(options.entityType)\n });\n }\n\n function onSmartEmbed() {\n smartEmbed(entity.data as VideoTypes);\n }\n \n const loaded = dataLoaded && !!yearGroups.data && shareSettings.data.loaded;\n\n return {\n data: {\n entity,\n share,\n privacy,\n yearGroups,\n loaded\n },\n autoplay,\n setAutoplay,\n videoSizes,\n videoSize,\n setVideoSize,\n hasStudentExp,\n shareOverrideRestrictions,\n initialSettings: shareSettings.initialValues,\n onSaveSettings: shareSettings.onClickSaveLink,\n onClickSavePrivacy,\n onSmartEmbed,\n postMessage,\n isSmartEmbed\n };\n}","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { EmbedSize } from 'libs/shared/apps/share/components/embed-size/EmbedSize';\nimport { ShareLinkPrivacy } from 'libs/shared/apps/share-v2/components/share-link-privacy/ShareLinkPrivacy';\nimport { ShareSettingsForm } from 'libs/shared/apps/share-v2/components/share-settings-form/ShareSettingsForm';\nimport { SharePrivacy } from 'libs/shared/apps/share-v2/enums/SharePrivacy';\nimport { useShareLinkActions } from 'libs/shared/apps/share-v2/hooks/useShareLinkActions';\nimport { getDefaultSharePrivacy } from 'libs/shared/apps/share-v2/utils/get-share-privacy-config/getSharePrivacyConfig';\nimport { SharableEntityType, ShareSettingsFormFields, ShareViewHelper } from 'libs/shared/apps/share-v2/utils/ShareViewHelper';\nimport { FormSubmissionOptions } from 'libs/shared/components/forms/form-wrapper/FormWrapper';\nimport { MultiStepPopupViewProps } from 'libs/shared/components/multistep-popup/MultiStepPopup';\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { CurationStatus } from 'libs/shared/enums/CurationStatus';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { InteractiveMetadata } from 'libs/shared/interfaces';\nimport { MasterTypeHelper } from 'libs/shared/utils/MasterTypeHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nimport { FlowControls } from 'apps/assign/components/flow-controls/FlowControls';\nimport { EmbedUnpublishedInteractiveError } from 'apps/share/errors/embed-unpublished-interactive/EmbedUnpublishedInteractiveError';\n\nimport { usePluginShareData } from '../hooks/usePluginShareData';\n\nconst namespace = 'shareV2.pluginShareEmbed';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport interface PluginShareEmbedViewProps extends MultiStepPopupViewProps {\n entityId: string;\n entityType: SharableEntityType;\n goToConfirmationStep: () => void;\n}\n\nexport function PluginShareEmbedView(props: PluginShareEmbedViewProps): JSX.Element {\n const {\n data,\n autoplay,\n hasStudentExp,\n initialSettings,\n onSaveSettings,\n setAutoplay,\n setVideoSize,\n shareOverrideRestrictions,\n videoSize,\n isSmartEmbed,\n videoSizes,\n onClickSavePrivacy,\n postMessage\n } = usePluginShareData({\n entityId: props.entityId,\n entityType: props.entityType\n });\n\n const {\n entity,\n privacy,\n yearGroups,\n share\n } = data;\n\n const { createShareLink, loaded: shareActionsLoaded } = useShareLinkActions({\n entityId: props.entityId\n });\n\n const loaded = share.hasCompleted\n && !!entity.data\n && !!yearGroups.data\n && !!privacy.data\n && !!shareActionsLoaded;\n\n const [ localPrivacy, setLocalPrivacy ] = React.useState<SharePrivacy>();\n const [ localSettings, setLocalSettings ] = React.useState<ShareSettingsFormFields>(initialSettings);\n\n const hasShareData = share.hasCompleted && !!share.data;\n const sharePrivacy = hasShareData ? share.data?.privacy : localPrivacy;\n const shareSettings = hasShareData ? initialSettings : localSettings;\n const {\n showImmediateFeedbackField,\n showPreventScrubbingField\n } = ShareViewHelper.getEnabledSettingsField(props.entityType);\n\n function onChangePrivacy(updatedPrivacy: SharePrivacy) {\n if (hasShareData) {\n onClickSavePrivacy(updatedPrivacy);\n return;\n }\n\n setLocalPrivacy(updatedPrivacy);\n }\n \n function onClickEmbed() {\n if (!hasShareData && !isSmartEmbed) {\n createShareLink(localPrivacy).then(share => {\n postMessage(share);\n props.goToConfirmationStep();\n });\n return;\n }\n \n postMessage();\n props.goToConfirmationStep();\n }\n\n function onSubmitSettings(\n data: ShareSettingsFormFields,\n onDone: (options?: FormSubmissionOptions<ShareSettingsFormFields>) => void\n ): void {\n if (!hasShareData) {\n setLocalSettings(data);\n return;\n }\n \n onSaveSettings({\n options: {\n immediateFeedback: data.immediateFeedback,\n preventScrubbing: data.preventScrubbing\n }\n }, onDone);\n }\n\n /**\n * Side effects below\n */\n\n React.useEffect(() => {\n if (!loaded || hasShareData)\n return;\n \n const defaultPrivacy = getDefaultSharePrivacy({\n entity: entity.data,\n entityPrivacy: privacy.data,\n yearGroups: yearGroups.data,\n hasStudentExp\n });\n\n if (!defaultPrivacy)\n return;\n\n setLocalPrivacy(defaultPrivacy);\n }, [ entity.data, privacy.data, yearGroups.data, hasStudentExp, hasShareData, loaded ]);\n\n React.useEffect(() => {\n if (!entity.hasCompleted)\n return;\n \n // If the user is attempting to share an unpublished interactive, throw an error.\n if (\n MasterTypeHelper.isType<InteractiveMetadata>(entity.data, MasterType.Interactive) &&\n entity.data.status !== CurationStatus.Published\n ) {\n const interactiveUrl = Core.AppLinkHelper.getHref({\n application: AppChannels.INTERACTIVES,\n action: Actions.Interactives.EDIT_INTERACTIVE,\n args: [ entity.data.id, TextHelper.slugify(entity.data.name) ]\n });\n \n Core.ErrorHelper.throw(new EmbedUnpublishedInteractiveError(interactiveUrl));\n }\n }, [entity.hasCompleted]);\n\n return (\n <Popup\n size='md'\n showLoadingSpinner={!loaded}\n closePopup={props.closePopup}\n title={getPhrase('title')}\n >\n <div className='d-flex flex-column gap-2 align-items-start mb-3'>\n <ShareLinkPrivacy\n entity={entity.data}\n entityPrivacy={privacy.data}\n entityTypeId={entity.data?.typeId}\n hasStudentExp={hasStudentExp}\n sharePrivacy={sharePrivacy}\n shareOverrideRestrictions={shareOverrideRestrictions}\n yearGroups={yearGroups.data}\n onClickSavePrivacy={onChangePrivacy}\n />\n <EmbedSize\n autoplay={autoplay}\n setAutoplay={setAutoplay}\n videoSize={videoSize}\n setVideoSize={setVideoSize}\n videoSizes={videoSizes}\n />\n <ShareSettingsForm\n hideFormHeading\n onSubmit={onSubmitSettings}\n initialValues={shareSettings}\n showImmediateFeedbackField={showImmediateFeedbackField}\n showPreventScrubbingField={showPreventScrubbingField}\n />\n </div>\n\n <FlowControls\n backButtonText={getPhrase('cancel')}\n nextButtonText={getPhrase('embed')}\n hideCreateClassroomButton\n onClickBack={props.closePopup}\n onClickNext={onClickEmbed}\n />\n </Popup>\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { SharableEntityType } from 'libs/shared/apps/share-v2/utils/ShareViewHelper';\nimport { MultiStepPopupViewProps } from 'libs/shared/components/multistep-popup/MultiStepPopup';\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { VideoTypes } from 'libs/shared/interfaces';\n\nimport { SmartEmbedConfirmation } from 'apps/share/components/smart-embed-confirmation/SmartEmbedConfirmation';\n\nimport { usePluginShareData } from '../hooks/usePluginShareData';\n\nconst namespace = 'shareV2.pluginShareSmartEmbed';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport interface PluginShareSmartEmbedViewProps extends MultiStepPopupViewProps {\n entityId: string;\n entityType: SharableEntityType;\n goToConfirmationStep: () => void;\n}\n\nexport function PluginShareSmartEmbedView(props: PluginShareSmartEmbedViewProps): JSX.Element {\n const { data, onSmartEmbed } = usePluginShareData({\n entityId: props.entityId,\n entityType: props.entityType\n });\n\n const { entity, loaded } = data;\n\n function onEmbed() {\n onSmartEmbed();\n \n props.goToConfirmationStep();\n }\n\n return (\n <Popup\n size='md'\n title={getPhrase('title')}\n closePopup={props.closePopup}\n showLoadingSpinner={!loaded}\n >\n <SmartEmbedConfirmation\n embed={onEmbed}\n entity={entity.data as VideoTypes}\n closePopup={props.closePopup}\n />\n </Popup>\n );\n}","import React from 'react';\n\nimport { SharableEntityType } from 'libs/shared/apps/share-v2/utils/ShareViewHelper';\nimport { MultiStepPopup } from 'libs/shared/components/multistep-popup/MultiStepPopup';\nimport { PopupViewProps } from 'libs/shared/interfaces';\n\nimport { PluginConsumers, usePluginHelper } from 'shared/hooks/use-plugin-helper/usePluginHelper';\n\nimport { PluginShareConfirmationView, PluginShareConfirmationViewProps } from '../plugin-share-confirmation-view/PluginShareConfirmationView';\nimport { PluginShareEmbedView, PluginShareEmbedViewProps } from '../plugin-share-embed-view/PluginShareEmbedView';\nimport { PluginShareSmartEmbedView, PluginShareSmartEmbedViewProps } from '../plugin-share-smart-embed-view/PluginShareSmartEmbedView';\n\ninterface PluginShareViewProps extends PopupViewProps {\n entityId: string;\n entityType: SharableEntityType;\n}\n\ntype AllPluginShareStepProps =\n | PluginShareEmbedViewProps\n | PluginShareSmartEmbedViewProps\n | PluginShareConfirmationViewProps;\n \ntype PluginShareSteps = 'main-embed' | 'smart-embed' | 'confirmation';\n\nexport function PluginShareView(props: PluginShareViewProps): JSX.Element {\n const { isConsumer } = usePluginHelper();\n const isSmartEmbed = isConsumer(PluginConsumers.SmartEmbed);\n\n const mainStep: PluginShareSteps = isSmartEmbed ? 'smart-embed' : 'main-embed';\n\n const [ animate, setAnimate ] = React.useState(true);\n const [ screen, setScreen ] = React.useState<PluginShareSteps>(mainStep);\n \n function setStep(step: PluginShareSteps) {\n setAnimate(false);\n setScreen(step);\n }\n\n const data: AllPluginShareStepProps = {\n entityId: props.entityId,\n entityType: props.entityType,\n closePopup: props.closePopup,\n goToConfirmationStep: () => setStep('confirmation')\n };\n \n return (\n <MultiStepPopup<AllPluginShareStepProps, PluginShareSteps>\n animate={animate}\n data={data}\n step={screen}\n setStep={setStep}\n steps={{\n 'main-embed': { view: PluginShareEmbedView },\n 'smart-embed': { view: PluginShareSmartEmbedView },\n 'confirmation': { view: PluginShareConfirmationView }\n }}\n closePopup={props.closePopup}\n />\n );\n}","/**\n * Temporary view to switch to v2 plugin share view.\n * Will be removed once we have completely migrated to share v2.\n * - Nish\n */\n\nimport React from 'react';\n\nimport { SharableEntityType } from 'libs/shared/apps/share-v2/utils/ShareViewHelper';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { PopupViewProps } from 'libs/shared/interfaces';\n\nimport { PluginShareView as OldPluginShareView } from '../plugin-share/PluginShareView';\n\nimport { PluginShareView as NewPluginShareView } from './plugin-share/PluginShareView';\n\ninterface PluginShareStageView extends PopupViewProps {\n entityId: string;\n entityType: SharableEntityType;\n}\n\n// eslint-disable-next-line rulesdir/require-view-title\nexport function PluginShareStageView(props: PluginShareStageView): JSX.Element {\n const { hasShareFlowV2 } = useSettings(null);\n\n if (hasShareFlowV2) {\n return (\n <NewPluginShareView\n entityId={props.entityId}\n entityType={props.entityType}\n closePopup={props.closePopup}\n />\n );\n }\n\n return (\n <OldPluginShareView\n entityId={props.entityId}\n entityType={props.entityType}\n closePopup={props.closePopup}\n />\n );\n}"],"names":["namespace","EmbedSize","props","autoplay","setAutoplay","videoSize","setVideoSize","videoSizes","className","length","phrase","id","variant","label","map","size","key","width","height","onClick","checked","onChange","IntegrationId","getPhrase","IntegrationHelper","getShareIntegrations","googleClassroomSetting","msftTeamsSetting","name","enabled","settingName","FlowControls","hideBackButton","onClickBack","hideNextButton","onClickNext","hideCreateClassroomButton","onClickCreateClassroom","leftComponent","text","backButtonText","title","nextButtonTooltip","disable","placement","spanHack","nextButtonText","disabled","disableNextButton","showSpinner","LanguageService","PostMessageSent","usePluginHelper","params","singleSelectMode","alt","src","ImageUrls","style","maxWidth","Text","PopupButtons","closePopup","PopupLoadingSpinner","SmartEmbedConfirmation","VideoThumbnail","video","entity","type","imageOptions","textPosition","ThumbnailTextPosition","preload","VideoSubText","analyticsOptions","VideoItemTitle","appLink","yearGroups","showPadlock","embed","EmbedUnpublishedInteractiveError","externalLink","this","buttons","success","DialogError","PluginShareSettingsForm","formikProps","hasPermissions","usePermissions","sizeSelector","consumerName","ShareLinkInfo","linkExpireDate","shareLink","isPasswordProtected","privacy","entityTypeId","objectTypeId","status","onClickSavePrivacy","hasStudentExp","shareOverrideRestrictions","PermissionName","Button","onClickShowAdvanced","onClickCancel","isSubmitting","Spinner","as","animation","role","options","PluginShareSettings","initialValues","password","removePassword","overrideRestrictions","FormWrapper","onSubmit","onClickEmbed","castInitialValues","validationSchema","ShareLinkSettingsValidationSchema","entityType","PluginShareView","dispatch","alerts","useSettings","isLoadingSettings","smartEmbed","isSmartEmbed","isConsumer","config","ConfigRequests","currentUser","UserRequests","ShareViewHelper","entityId","data","ShareRequests","isAuthenticated","CustomerRequests","customerId","EmbedHelper","screen","setScreen","onClickSave","onClickDeleteLink","updatedShareLink","liteUrl","AnalyticsHelper","actionType","descriptor","workflowPhase","eventVersion","onClickSmartEmbed","error","hasCompleted","MasterTypeHelper","MasterType","CurationStatus","interactiveUrl","application","action","args","TextHelper","isExpired","DateHelper","Date","loaded","Popup","showLoadingSpinner","ShareSettings","onClickSaveLink","PluginShareConfirmationView","usePluginShareData","log","getShareEventLogger","location","productArea","useMainShareData","dataLoaded","share","shareSettings","useShareSettingsData","embedV2","initialSettings","onSaveSettings","onSmartEmbed","postMessage","newShare","embedDetails","PluginShareEmbedView","useShareLinkActions","createShareLink","shareActionsLoaded","localPrivacy","setLocalPrivacy","localSettings","setLocalSettings","hasShareData","sharePrivacy","showImmediateFeedbackField","showPreventScrubbingField","defaultPrivacy","entityPrivacy","ShareLinkPrivacy","typeId","updatedPrivacy","ShareSettingsForm","hideFormHeading","onDone","immediateFeedback","preventScrubbing","goToConfirmationStep","then","PluginShareSmartEmbedView","mainStep","animate","setAnimate","setStep","step","MultiStepPopup","steps","view","PluginShareStageView","hasShareFlowV2"],"sourceRoot":""}