@clickview/lite 0.74.0-rc.2 → 0.74.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bundles.json +1 -1
- package/dist/scripts/3677-43784effdf-lite.chunk.js +2 -0
- package/dist/scripts/3677-43784effdf-lite.chunk.js.map +1 -0
- package/dist/scripts/3978-84811f1db1-lite.chunk.js +2 -0
- package/dist/scripts/3978-84811f1db1-lite.chunk.js.map +1 -0
- package/dist/scripts/4400-e6d6e73b2c-lite.chunk.js +2 -0
- package/dist/scripts/4400-e6d6e73b2c-lite.chunk.js.map +1 -0
- package/dist/scripts/5135-c6eae4df36-lite.chunk.js +2 -0
- package/dist/scripts/5135-c6eae4df36-lite.chunk.js.map +1 -0
- package/dist/scripts/618-d8d8f7d8c1-lite.chunk.js +2 -0
- package/dist/scripts/618-d8d8f7d8c1-lite.chunk.js.map +1 -0
- package/dist/scripts/6379-4b78ae2469-lite.chunk.js +2 -0
- package/dist/scripts/6379-4b78ae2469-lite.chunk.js.map +1 -0
- package/dist/scripts/647-ad2e2f0add-lite.chunk.js +2 -0
- package/dist/scripts/647-ad2e2f0add-lite.chunk.js.map +1 -0
- package/dist/scripts/6909-7a8ac9f30a-lite.chunk.js +2 -0
- package/dist/scripts/6909-7a8ac9f30a-lite.chunk.js.map +1 -0
- package/dist/scripts/7234-5ccd8259d1-lite.chunk.js +2 -0
- package/dist/scripts/7234-5ccd8259d1-lite.chunk.js.map +1 -0
- package/dist/scripts/7577-12a01937f0-lite.chunk.js +2 -0
- package/dist/scripts/7577-12a01937f0-lite.chunk.js.map +1 -0
- package/dist/scripts/7742-c9755a67d4-lite.chunk.js +2 -0
- package/dist/scripts/7742-c9755a67d4-lite.chunk.js.map +1 -0
- package/dist/scripts/8451-2ef1dfce61-lite.chunk.js +2 -0
- package/dist/scripts/8451-2ef1dfce61-lite.chunk.js.map +1 -0
- package/dist/scripts/9241-238326bcb2-lite.chunk.js +2 -0
- package/dist/scripts/9241-238326bcb2-lite.chunk.js.map +1 -0
- package/dist/scripts/9345-a373f08fe5-lite.chunk.js +3 -0
- package/dist/scripts/9345-a373f08fe5-lite.chunk.js.map +1 -0
- package/dist/scripts/9630-9ca1798eee-lite.chunk.js +2 -0
- package/dist/scripts/9630-9ca1798eee-lite.chunk.js.map +1 -0
- package/dist/scripts/{9767-a23d603cc5-lite.chunk.js → 9767-281d5e0883-lite.chunk.js} +2 -2
- package/dist/scripts/9767-281d5e0883-lite.chunk.js.map +1 -0
- package/dist/scripts/{bundle-6a0c1aecd5.min.js → bundle-0260bfcbaa.min.js} +3 -3
- package/dist/scripts/{bundle-6a0c1aecd5.min.js.map → bundle-0260bfcbaa.min.js.map} +1 -1
- package/package.json +1 -1
- package/dist/scripts/3677-aadf9fd2cc-lite.chunk.js +0 -2
- package/dist/scripts/3677-aadf9fd2cc-lite.chunk.js.map +0 -1
- package/dist/scripts/3978-0e2106b5aa-lite.chunk.js +0 -2
- package/dist/scripts/3978-0e2106b5aa-lite.chunk.js.map +0 -1
- package/dist/scripts/4400-7381394a2e-lite.chunk.js +0 -2
- package/dist/scripts/4400-7381394a2e-lite.chunk.js.map +0 -1
- package/dist/scripts/5135-9fa172bfc3-lite.chunk.js +0 -2
- package/dist/scripts/5135-9fa172bfc3-lite.chunk.js.map +0 -1
- package/dist/scripts/618-33ead82bb3-lite.chunk.js +0 -2
- package/dist/scripts/618-33ead82bb3-lite.chunk.js.map +0 -1
- package/dist/scripts/6379-1fac9e5c3c-lite.chunk.js +0 -2
- package/dist/scripts/6379-1fac9e5c3c-lite.chunk.js.map +0 -1
- package/dist/scripts/647-cf8ade72c6-lite.chunk.js +0 -2
- package/dist/scripts/647-cf8ade72c6-lite.chunk.js.map +0 -1
- package/dist/scripts/6909-0cc76e0fcc-lite.chunk.js +0 -2
- package/dist/scripts/6909-0cc76e0fcc-lite.chunk.js.map +0 -1
- package/dist/scripts/7234-4fdc8f5ae3-lite.chunk.js +0 -2
- package/dist/scripts/7234-4fdc8f5ae3-lite.chunk.js.map +0 -1
- package/dist/scripts/7577-a930db95e5-lite.chunk.js +0 -2
- package/dist/scripts/7577-a930db95e5-lite.chunk.js.map +0 -1
- package/dist/scripts/7742-8a303defe5-lite.chunk.js +0 -2
- package/dist/scripts/7742-8a303defe5-lite.chunk.js.map +0 -1
- package/dist/scripts/8451-9ab30b6e35-lite.chunk.js +0 -2
- package/dist/scripts/8451-9ab30b6e35-lite.chunk.js.map +0 -1
- package/dist/scripts/9241-c523dc7aac-lite.chunk.js +0 -2
- package/dist/scripts/9241-c523dc7aac-lite.chunk.js.map +0 -1
- package/dist/scripts/9345-df0cbb196f-lite.chunk.js +0 -3
- package/dist/scripts/9345-df0cbb196f-lite.chunk.js.map +0 -1
- package/dist/scripts/9630-6bcd453382-lite.chunk.js +0 -2
- package/dist/scripts/9630-6bcd453382-lite.chunk.js.map +0 -1
- package/dist/scripts/9767-a23d603cc5-lite.chunk.js.map +0 -1
- /package/dist/scripts/{9345-df0cbb196f-lite.chunk.js.LICENSE.txt → 9345-a373f08fe5-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{bundle-6a0c1aecd5.min.js.LICENSE.txt → bundle-0260bfcbaa.min.js.LICENSE.txt} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scripts/6379-4b78ae2469-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/apps/analytics/flight-requests/InteractiveResultsRequests.ts","file:///app/packages/libs/shared/src/apps/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/AnalyticsRequestUtils.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/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/libs/shared/src/utils/ShareHelper.ts","file:///app/packages/projects/lite/src/shared/hooks/useSharesTable.ts"],"sourcesContent":["import { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\nimport { Flight } from 'libs/common/react/index';\n\nimport { MarkInteractiveAnswer } from 'libs/shared/apps/analytics/interfaces/MarkInteractiveAnswer';\nimport { InteractiveResultsReport } from 'libs/shared/apps/analytics/interfaces/requests/InteractiveResultsReport';\nimport { InteractivesPendingReviewsRequest } from 'libs/shared/apps/analytics/interfaces/requests/InteractivesPendingReviewsRequest';\nimport { AnalyticsRequestFilter, CurrentUser, InteractiveResultSet } from 'libs/shared/interfaces';\nimport { getAnalyticsRequestKey } from 'libs/shared/utils/AnalyticsRequestUtils';\n\ninterface InteractiveResultFilters {\n currentUserId: string;\n currentCustomerId: string;\n dateRange?: { start: string, end: string }\n userIds?: string | string[];\n classroomsAndGroups?: string | string[];\n}\n\nfunction getInteractiveResultFilters(\n currentUser: CurrentUser,\n filter: AnalyticsRequestFilter\n): InteractiveResultFilters {\n return {\n currentUserId: currentUser.id,\n currentCustomerId: currentUser.customerId,\n dateRange: { start: filter.start, end: filter.end },\n userIds: filter.userId,\n classroomsAndGroups: filter.groupId\n };\n}\n\nexport const InteractiveResultsRequests = {\n /** \n * This endpoint returns data with a lot of duplicated ids,\n * e.g. student answers to the same question will have the same id.\n * Because of that, we don't normalize.\n */\n interactiveResultSet(\n interactiveId: string,\n interactiveMetadataId: string,\n currentUser: CurrentUser,\n filter: AnalyticsRequestFilter,\n includePublicResults: boolean,\n success?: (data: InteractiveResultSet) => void,\n error?: (data: any) => void,\n always?: () => void\n ): Flight.Request {\n return {\n url: includePublicResults ?\n `/api/domain/v3/analytics/interactives/${interactiveId}/metadata/${interactiveMetadataId}` :\n `/api/domain/v2/analytics/interactives/${interactiveId}/metadata/${interactiveMetadataId}`,\n key: getAnalyticsRequestKey(`interactive:result:set:${interactiveId}:${interactiveMetadataId}`, filter),\n data: getInteractiveResultFilters(currentUser, filter),\n type: HttpVerbs.POST,\n normalize: false,\n formatData: (data: any) => {\n return {\n ...data,\n students: data.students.map((student: any) => {\n if (!student.name || !student.profileId)\n return student;\n\n return {\n ...student,\n publicUser: {\n profileId: student.profileId,\n name: student.name\n }\n };\n })\n };\n },\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};","// 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}\n\n/**\n * Used to fetch multiple items by id with Flight. Will fetch 25 items at a time firing off multiple\n * requests if there are more than 25 items.\n * This will return items as null until we have all our items. Items will be returned as an object with\n * their ids as they key for easy mapping\n * \n * @param itemIds \n * @param getRequest \n */\nexport function useBatchFetch<T extends BaseObject>(\n itemIds: string[],\n getRequest: (ids: string[]) => Flight.Request\n): UseBatchFetchResult<T> {\n const chunks = ArrayHelper.chunk<string>(itemIds, CHUNK_SIZE);\n\n const requests = chunks.map(chunk => getRequest(ArrayHelper.uniq(chunk)));\n\n const responses = Flight.useBasicFetchAll<T[]>(requests);\n\n const itemsArr = ArrayHelper.flatten(responses.data);\n const items = responses.data.length\n ? itemsArr.reduce((acc, item) => ({ ...acc, [item.id]: item }), {})\n : null;\n\n return {\n itemsArr,\n items,\n isFetching: responses.isFetching\n };\n}\n\n/**\n * When you need the useBatchFetch() behavior, but your list of objects to hydrate\n * will grow, such as on a scrolling page. useGrowingBatchFetch() will use local state\n * to determine what we've already built a request for and what items are new\n * as to not re-fetch items - Sha\n */\nexport function useGrowingBatchFetch<T>(\n objs: T[],\n getRequest: (items: T[]) => Flight.Request,\n _getKey?: (obj: T) => string\n) {\n const { fetchItems, ...data } = useGrowingBatchFetchFunc({ getRequest, _getKey });\n\n React.useEffect(() => {\n if (!objs?.length)\n return;\n\n fetchItems(objs);\n }, [objs?.length]);\n\n return data;\n}\n\ninterface UseGrowingBatchFetchFuncOptions<T> {\n getRequest: (items: T[]) => Flight.Request;\n _getKey?: (obj: T) => 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<T>(options: UseGrowingBatchFetchFuncOptions<T>) {\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: T[]) {\n if (!objs?.length)\n return;\n\n const unfetchedItems: T[] = [];\n \n objs.forEach(obj => {\n const key = getKey(obj);\n\n if (fetchedItems.current.has(key))\n return;\n\n unfetchedItems.push(obj);\n fetchedItems.current.add(key);\n });\n \n if (!unfetchedItems.length)\n return;\n \n setRequests(r => ([ ...r, ...ArrayHelper.chunk<T>(unfetchedItems, CHUNK_SIZE).map(options.getRequest) ]));\n }\n\n const responses = Flight.useBasicFetchAll<T[]>(requests);\n const itemsArr = ArrayHelper.flatten(responses.data);\n const items = responses.data.length\n ? itemsArr.reduce((acc, item) => ({ ...acc, [getKey(item)]: item }), {})\n : null;\n\n return {\n hasFirstRequestCompleted: !!responses.responses?.[0]?.hasCompleted,\n itemsArr,\n items,\n isFetching: responses.isFetching,\n fetchItems\n };\n}","import { AnalyticsRequestFilter } from 'libs/shared/interfaces';\n\nexport function getAnalyticsRequestKey(baseKey: string, filter: AnalyticsRequestFilter, sharerId?: string): string {\n let key = `${baseKey}:${filter.start}:${filter.end}`;\n\n const userIdKey = Array.isArray(filter.userId) ? filter.userId.sort().join(':') : filter.userId;\n const groupIdKey = Array.isArray(filter.groupId) ? filter.groupId.sort().join(':') : filter.groupId;\n\n if (userIdKey)\n key += `:${userIdKey}`;\n\n if (groupIdKey)\n key += `:${groupIdKey}`;\n\n if (sharerId)\n key += `:${sharerId}`;\n\n return key;\n}","import { 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 { VideoSubText } from 'libs/shared/components/video-sub-text/VideoSubText';\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 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 return (\n <div className='clamp-2'>\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}","// 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 \n </div>\n <div className={`${styles.sharedToColumn} p-2`}>\n {props.fullHeader\n ? <div className={`partial-loading-background ${styles.heading}`} />\n : <> </>\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 : <> </>\n }\n </div>\n <div className={`${styles.actionsColumn} p-2`}>\n \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.DEFAULT,\n action: Actions.Default.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, 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, 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 { useSharesTable } from 'shared/hooks/useSharesTable';\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 } = useSharesTable();\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 { 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};","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 useSharesTable(\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}"],"names":["getInteractiveResultFilters","currentUser","filter","currentUserId","id","currentCustomerId","customerId","dateRange","start","end","userIds","userId","classroomsAndGroups","groupId","InteractiveResultsRequests","interactiveResultSet","interactiveId","interactiveMetadataId","includePublicResults","success","error","always","url","key","data","type","normalize","formatData","students","map","student","name","profileId","publicUser","mark","answerId","resultId","invalidationKeys","pendingReviews","interactiveResultsReport","getPhrase","LanguageService","getHiddenRecipientText","hiddenRecipients","counts","ArrayHelper","userCount","MasterType","classroomCount","groupCount","SharedToAvatar","props","user","item","typeId","classroom","classroomGroup","svgContainerClassName","Tooltip","title","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","recipients","avatarItem","avatarContainerClassname","getHiddenTooltip","hasShareLink","shareLinkText","defaultProps","maxAvatars","ShareLinkHelper","getPrivateIconAndText","options","entityTypeId","privacy","hasStudentExp","entity","yearGroups","icon","Array","isArray","overrideRestrictions","getRespectRatingText","getIconAndText","linkExpireDate","isPasswordProtected","status","isToday","dayDifference","Date","days","video","restriction","_restrictions","value","yearGroup","maxYearGroup","minAllowedYearGroup","rating","length","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","useGrowingBatchFetch","objs","_getKey","useGrowingBatchFetchFunc","fetchItems","getKey","obj","fetchedItems","Set","setRequests","hasFirstRequestCompleted","hasCompleted","unfetchedItems","forEach","current","has","push","add","r","getAnalyticsRequestKey","baseKey","sharerId","userIdKey","sort","join","groupIdKey","mapColourToBsVariant","groupColour","SharedByMeEmptyState","EmptyState","src","useInteractiveCopy","appLink","getStatusPhrase","share","ShareType","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","VideoSubText","series","analyticsOptions","location","AppLink","analyticsData","ShareViewHelper","actionType","Text","namespace","phrase","width","sharedObject","iconAndText","s","Actions","actions","statusColumn","viewCountColumn","splice","Boolean","SharedByMeTable","sentShares","sharedObjects","shareRecipients","groupByDate","tableData","groupByDateShared","objectId","recipient","sharedToData","viewCount","ShareHelper","Object","keys","heading","Table","theme","PartialRow","PartialHeader","fullHeader","PartialSharedByMeTable","getShareActionOptions","entityType","label","application","action","args","params","SeeUsageAction","href","target","SharedByMeView","hasPermissions","usePermissions","hasShareFlowV2","useSettings","useBreakpoints","useSharesTable","showPartialLoading","nextCursor","hasMore","fetchNext","hasMyShares","PermissionName","replace","useSetPageMetadata","getSharedObjectActions","config","ConfigRequests","analyticsPhrase","canConsume","sharedObjectActions","objectUrl","AnalyticsRouteHelper","button","openInNewTab","useGetSharedObjectActions","SharesHeader","InfiniteScrollFooter","ImageUrls","getDirectShares","getRecipients","d","interactiveInsights","shouldFetch","fetch","UserRequests","isAuthenticated","CustomerRequests","cursor","ShareRequests","isFetchingSentShares","hasFirstPageCompleted","interactivesPendingReview","ObjectHelper","I","interactives","metadataId","filters"],"sourceRoot":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[647],{71553:(e,t,a)=>{a.d(t,{I:()=>l});var n=a(99940),r=a(62875);function i(e,t){return{currentUserId:e.id,currentCustomerId:e.customerId,dateRange:{start:t.start,end:t.end},userIds:t.userId,classroomsAndGroups:t.groupId}}var l={interactiveResultSet:function(e,t,a,l,s,c,o,m){return{url:s?"/api/domain/v3/analytics/interactives/".concat(e,"/metadata/").concat(t):"/api/domain/v2/analytics/interactives/".concat(e,"/metadata/").concat(t),key:(0,r.H)("interactive:result:set:".concat(e,":").concat(t),l),data:i(a,l),type:n.k.POST,normalize:!1,formatData:function(e){return Object.assign(Object.assign({},e),{students:e.students.map((function(e){return e.name&&e.profileId?Object.assign(Object.assign({},e),{publicUser:{profileId:e.profileId,name:e.name}}):e}))})},success:c,error:o,always:m}},mark:function(e,t,a,r,i,l,s){return{url:"/api/domain/v1/analytics/answers/".concat(a),key:"mark:answer:".concat(a,":").concat(r.resultId),type:n.k.PUT,data:r,normalize:!1,invalidationKeys:"interactive:result:set:".concat(e,":").concat(t),success:i,error:l,always:s}},pendingReviews:function(e){return{url:"/api/domain/v1/analytics/interactives/pending-reviews/summary",key:"interactives:pending:reviews",type:n.k.POST,data:e}},interactiveResultsReport:function(e){return{url:"/api/domain/v3/analytics/interactives/report",key:"interactive:results:report",data:e,type:n.k.POST,normalize:!1}}}},54405:(e,t,a)=>{a.d(t,{X:()=>n});var n={interactive:function(){return{url:"/mocks/insights/interactive.json",key:"demo:interactive",normalize:!1}},interactiveMetadata:function(){return{url:"/mocks/insights/interactive-metadata.json",key:"demo:interactive:metadata",normalize:!1}},interactiveResults:function(){return{url:"/mocks/insights/interactive-results.json",key:"demo:interactive:results",normalize:!1}},videoViews:function(){return{url:"/mocks/insights/video-views.json",key:"demo:video:views",normalize:!1}},users:function(){return{url:"/mocks/insights/users.json",key:"demo:users",normalize:!1}},individualHeatmap:function(){return{url:"/mocks/insights/individual-heatmap.json",key:"demo:individual:heatmap",normalize:!1}},aggregateHeatmap:function(){return{url:"/mocks/insights/aggregate-heatmap.json",key:"demo:aggregate:heatmap",normalize:!1}}}},39902:(e,t,a)=>{a.d(t,{FN:()=>g,SW:()=>f,fh:()=>p});var n=a(32735),r=a(20354),i=a(75896);function l(e){return function(e){if(Array.isArray(e))return c(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||s(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function s(e,t){if(e){if("string"==typeof e)return c(e,t);var a={}.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?c(e,t):void 0}}function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=Array(t);a<t;a++)n[a]=e[a];return n}function o(e){return o="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},o(e)}function m(e,t,a){return(t=function(e){var t=function(e){if("object"!=o(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var a=t.call(e,"string");if("object"!=o(a))return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==o(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}var d=function(e,t){var a={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(a[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(n=Object.getOwnPropertySymbols(e);r<n.length;r++)t.indexOf(n[r])<0&&Object.prototype.propertyIsEnumerable.call(e,n[r])&&(a[n[r]]=e[n[r]])}return a},u=50;function p(e,t){var a=i.m.chunk(e,u).map((function(e){return t(i.m.uniq(e))})),n=r.a.useBasicFetchAll(a),l=i.m.flatten(n.data),s=n.data.length?l.reduce((function(e,t){return Object.assign(Object.assign({},e),m({},t.id,t))}),{}):null;return{itemsArr:l,items:s,isFetching:n.isFetching}}function g(e,t,a){var r=f({getRequest:t,_getKey:a}),i=r.fetchItems,l=d(r,["fetchItems"]);return n.useEffect((function(){(null==e?void 0:e.length)&&i(e)}),[null==e?void 0:e.length]),l}function f(e){var t,a,c,d,p,g=null!==(t=e._getKey)&&void 0!==t?t:function(e){return"object"===o(e)?e.id:e},f=n.useRef(new Set),v=(d=n.useState([]),p=2,function(e){if(Array.isArray(e))return e}(d)||function(e,t){var a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var n,r,i,l,s=[],c=!0,o=!1;try{if(i=(a=a.call(e)).next,0===t){if(Object(a)!==a)return;c=!1}else for(;!(c=(n=i.call(a)).done)&&(s.push(n.value),s.length!==t);c=!0);}catch(e){o=!0,r=e}finally{try{if(!c&&null!=a.return&&(l=a.return(),Object(l)!==l))return}finally{if(o)throw r}}return s}}(d,p)||s(d,p)||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.")}()),b=v[0],y=v[1],h=r.a.useBasicFetchAll(b),E=i.m.flatten(h.data),k=h.data.length?E.reduce((function(e,t){return Object.assign(Object.assign({},e),m({},g(t),t))}),{}):null;return{hasFirstRequestCompleted:!!(null===(c=null===(a=h.responses)||void 0===a?void 0:a[0])||void 0===c?void 0:c.hasCompleted),itemsArr:E,items:k,isFetching:h.isFetching,fetchItems:function(t){if(null==t?void 0:t.length){var a=[];t.forEach((function(e){var t=g(e);f.current.has(t)||(a.push(e),f.current.add(t))})),a.length&&y((function(t){return[].concat(l(t),l(i.m.chunk(a,u).map(e.getRequest)))}))}}}}},62875:(e,t,a)=>{function n(e,t,a){var n="".concat(e,":").concat(t.start,":").concat(t.end),r=Array.isArray(t.userId)?t.userId.sort().join(":"):t.userId,i=Array.isArray(t.groupId)?t.groupId.sort().join(":"):t.groupId;return r&&(n+=":".concat(r)),i&&(n+=":".concat(i)),a&&(n+=":".concat(a)),n}a.d(t,{H:()=>n})},8807:(e,t,a)=>{a.d(t,{c:()=>n,q:()=>r});var n="D8qRe7",r="GRWx6w"},9566:(e,t,a)=>{a.d(t,{G:()=>m,V:()=>u});var n=a(23481),r=a(110),i=a(85063),l=a(35223),s=a(14070),c=a(97291),o=n.T.encloseNamespace("myShares.demoInsights"),m={share:{objectTypeId:34,type:i.y.ShareLink},sharedObject:null,shareRecipients:null,dateShared:r.O.subtract(new Date,7,"days").toISOString(),viewCount:23},d={application:c.O.MY_SHARES,action:s.e.MyShares.INTERACTIVE_OVERVIEW_DEMO},u={svgName:l.vn.Analytics,label:o("demoInsights"),appLink:d,group:"insights",className:"btn btn-outline-dark"}},94685:(e,t,a)=>{a.r(t),a.d(t,{MySharesView:()=>Re});var n=a(32735),r=a(81886),i=a(23481),l=a(20354),s=a(74917),c=a(87801),o=a(83345),m=a(16714),d=a(39151),u=a(1666),p=a(54405),g=a(31949),f=a(25882),v=a(79967),b=a(22902),y=a(79612),h=a(37802),E=a(46390),k=a(64208),x=a(86099),S=a(45474),I=a(8935),N=a(75896),O=a(15611),j=a(89965),w=a(83914),A=a(4594),C=a(35223);const L={noCaret:"TMpTN",filterContainer:"PNKOf"};function P(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var n,r,i,l,s=[],c=!0,o=!1;try{if(i=(a=a.call(e)).next,0===t){if(Object(a)!==a)return;c=!1}else for(;!(c=(n=i.call(a)).done)&&(s.push(n.value),s.length!==t);c=!0);}catch(e){o=!0,r=e}finally{try{if(!c&&null!=a.return&&(l=a.return(),Object(l)!==l))return}finally{if(o)throw r}}return s}}(e,t)||R(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 F(e){return function(e){if(Array.isArray(e))return T(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||R(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function R(e,t){if(e){if("string"==typeof e)return T(e,t);var a={}.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?T(e,t):void 0}}function T(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=Array(t);a<t;a++)n[a]=e[a];return n}var M="insights.insightsTypeFilters",U=i.T.encloseNamespace(M);function D(e){var t=e.breakpoints.xs||e.breakpoints.sm,a=[].concat(F(t?[{label:U("interactives"),filter:A.E.Interactive},{label:U("videos"),filter:A.E.Video},{label:U("clips"),filter:A.E.Clip}]:[]),[{label:U("playlists"),filter:A.E.Playlist},{label:U("series"),filter:A.E.Series}]),i=e.typeIdParams.filter((function(e){return a.some((function(t){return e===t.filter}))})),l=P(n.useState(!1),2),s=l[0],c=l[1],m=P(n.useState(i),2),d=m[0],u=m[1];function p(){var t=e.appLink.params;r.Q.C$.trigger(Object.assign(Object.assign({},e.appLink),{params:Object.assign(Object.assign({},t),{typeId:N.m.uniq([].concat(F(e.typeIdParams),F(d)))})}))}function g(){u([]);var t=e.appLink.params;r.Q.C$.trigger(Object.assign(Object.assign({},e.appLink),{params:Object.assign(Object.assign({},t),{typeId:[]})}))}return n.createElement("div",{className:"d-flex align-items-center fw-semibold"},n.createElement("p",{className:"d-none d-md-inline h6 mb-0"},n.createElement(o.x,{namespace:M,phrase:"filters"})),n.createElement("div",{className:"".concat(L.filterContainer," d-flex flex-grow-1 flex-md-grow-0 border-start ps-0 ps-md-3 ms-0 ms-md-3 gap-2")},n.createElement("div",{className:"d-none d-md-flex gap-2"},n.createElement(V,{typeId:A.E.Interactive,typeFilters:e.typeIdParams,appLink:e.appLink}),n.createElement(V,{typeId:A.E.Video,typeFilters:e.typeIdParams,appLink:e.appLink}),n.createElement(V,{typeId:A.E.Clip,typeFilters:e.typeIdParams,appLink:e.appLink})),n.createElement(I.Z,{onToggle:function(e){c(e),e||p()},show:s,className:"col"},n.createElement(I.Z.Toggle,{className:"".concat(L.noCaret," col-12 col-md-auto"),variant:i.length?"dark":"outline-dark"},n.createElement("div",{className:"d-flex align-items-center justify-content-center gap-2 fw-semibold mb-0"},n.createElement(w.x,{svgName:C.vn.Filter,className:"svg-container d-inline-block d-md-none"}),n.createElement(o.x,{namespace:M,phrase:t?"filters":"moreFilters"}),i.length?" - ".concat(i.length):"")),n.createElement(I.Z.Menu,null,n.createElement("div",{className:"mx-1 px-2 py-1 mb-0"},n.createElement("h2",{className:"h6 mb-3"},n.createElement(o.x,{namespace:M,phrase:"types"})),n.createElement("ul",{className:"list-unstyled me-5"},a.map((function(a){return n.createElement("li",{key:"".concat(a.label,"-filter"),className:"my-1"},n.createElement(j.X,{id:"".concat(a.label,"-filter"),label:a.label,onChange:function(){return e=a.filter,void u(N.m.addOrRemoveImmutable(d,e));var e},checked:(r=a.filter,t?!!d.find((function(e){return e===r}))||!!e.typeIdParams.find((function(e){return e===r})):!!d.find((function(e){return e===r})))}));var r}))),n.createElement("div",{className:"d-flex justify-content-between"},n.createElement("button",{onClick:function(){g(),c(!1)},className:"btn btn-link text-secondary p-0 mb-0"},n.createElement(o.x,{namespace:M,phrase:"resetAll"})),n.createElement("button",{onClick:function(){p(),c(!1)},className:"btn btn-link text-info p-0 mb-0"},n.createElement(o.x,{namespace:M,phrase:"apply"}))))))),!!e.typeIdParams.length&&n.createElement("button",{onClick:g,className:"d-none d-md-block btn btn-link ms-1"},n.createElement(o.x,{namespace:M,phrase:"resetAll"})))}function V(e){var t=e.typeFilters.includes(e.typeId),a=e.appLink,r=a.params,i=N.m.addOrRemoveImmutable(e.typeFilters,e.typeId),l=Object.assign(Object.assign({},a),{params:Object.assign(Object.assign({},r),{typeId:i})});function s(){return e.typeId===A.E.Video?"videos":e.typeId===A.E.Clip?"clips":e.typeId===A.E.Interactive?"interactives":void 0}return n.createElement(O.F,{className:"btn ".concat(t?"btn-dark":"btn-outline-dark"," fw-semibold"),appLink:l,ariaLabel:"".concat(U("ariaFilterBy"),": ").concat(U(s()))},n.createElement(o.x,{namespace:M,phrase:s()}))}var B=a(8807),G=a(82602),H=a(65858),_=a(9806),q=a(65853),z=a(64249),W=a(83657),Y=a(62335),K=a(26339),Z=a(54610),Q=a(85063),$=a(31908),X=a(24758);const J={mySharesTable:"hyaYe",mySharesHeader:"WjfsD",tableBorder:"tHBWr"};var ee="myShares.tableRow";function te(e){return n.createElement("div",{className:"".concat(J.mySharesHeader," d-block d-lg-grid gap-3 px-3")},n.createElement("p",{className:"fw-semibold mb-2 ms-n3"},e.heading),e.isFirst&&n.createElement(n.Fragment,null,n.createElement("div",{className:"d-none d-xl-inline"}),n.createElement("p",{className:"d-none d-xl-inline fw-semibold mb-2"},n.createElement(o.x,{namespace:ee,phrase:"sharedToHeading"})),n.createElement("p",{className:"d-none d-xl-inline fw-semibold mb-2"},n.createElement(o.x,{namespace:ee,phrase:"dateSharedHeading"})),n.createElement("p",{className:"d-none d-xl-inline fw-semibold mb-2"},n.createElement(o.x,{namespace:ee,phrase:"viewsHeading"}))))}function ae(e){var t,a=e.sharedObject;if(!a.name)return n.createElement(o.x,{namespace:ee,phrase:"videoUnavailable"});if($.M.isVideoType(a)&&!(null===(t=$.M.getCanBeConsumed(a))||void 0===t?void 0:t.canNavigate))return n.createElement("span",{className:"clamp-2"},a.name);var r=function(){switch(a.typeId){case A.E.Series:return"series";case A.E.Playlist:return"playlist"}}();return n.createElement("div",null,$.M.isVideoType(a)&&n.createElement(K.$,{type:"series",video:a,appLink:"series"in a&&a.series?(0,x.Qh)(a.series):null,analyticsOptions:{location:H.LZ.Insights},className:"d-inline clamp-1"}),r&&n.createElement(Y.m,null,n.createElement(o.x,{namespace:ee,phrase:r})),n.createElement(O.F,{appLink:e.appLink,className:"clamp-1",analyticsData:{id:a.id,name:a.name},analyticsOptions:{entity:z.I.getAnalyticsEntity(a.type),actionType:H.Vw.Click,location:H.LZ.MyShares}},a.name),!!e.requireMarking&&n.createElement("div",{className:"font-size-sm d-flex align-items-center bg-light-ultramarine text-ultramarine rounded-pill w-fit mt-1 px-2"},n.createElement(o.x,{namespace:ee,phrase:"requireMarking",options:{smartCount:e.requireMarking}})))}function ne(e){var t=e.shareData,a=t.sharedObject,r=t.share.type===Q.y.ShareLink&&q.R.getIconAndText({entity:a,entityTypeId:a.typeId,hasStudentExp:!1,isPasswordProtected:t.share.isPasswordProtected,linkExpireDate:t.share.linkExpireDate,privacy:{privacy:t.privacy,overrideRestrictions:t.overrideRestrictions},status:t.share.status,yearGroups:e.yearGroups}),i=e.breakpoints.xs||e.breakpoints.sm,l=e.breakpoints.xl||e.breakpoints.xxl,s=a.typeId===A.E.Playlist||a.typeId===A.E.Series;return n.createElement("div",{key:t.share.id,className:"".concat(J.mySharesTable," ").concat(J.tableBorder," position-relative d-flex d-xl-grid flex-column flex-md-row align-items-md-center p-0 p-md-3 gap-3")},n.createElement("div",{className:"col-12 col-md-3 col-xl-auto"},n.createElement(_.k,{object:a,appLink:e.getObjectAppLink(a),showVideoMetadata:!0,locationContext:H.LZ.MyShares,imageOptions:{size:Z.h2.Medium},requireMarking:i&&t.pendingReview,showCollectionMask:!0,showVideoCount:!0})),n.createElement("div",{className:"d-flex flex-column align-items-xl-center flex-xl-row gap-1 gap-xl-3"},n.createElement("div",{className:"col-xl-4"},n.createElement(ae,{sharedObject:t.sharedObject,appLink:e.getObjectAppLink(a),requireMarking:l&&t.pendingReview}),e.children),n.createElement("div",{className:"d-flex align-items-center gap-2 gap-xl-0 pe-4 pe-md-0 col-xl-8"},n.createElement("div",{className:"col-xl-5"},n.createElement(X.A,{shareLinkText:null==r?void 0:r.text,shareRecipients:t.shareRecipients,imageCdnUrl:e.imageCdnUrl})),n.createElement("span",{className:"d-inline d-xl-none"},"·"),n.createElement("p",{className:"mb-0 col-xl-4"},(0,G.WU)(t.dateShared)),s?n.createElement("p",{className:"mb-0 d-none d-xl-block"},"-"):n.createElement(n.Fragment,null,n.createElement("span",{className:"d-inline d-xl-none"},"·"),n.createElement("p",{className:"mb-0 col-xl-3"},n.createElement(o.x,{namespace:ee,phrase:"views",options:{smartCount:t.viewCount}})))),!l&&!i&&!!t.pendingReview&&n.createElement("div",{className:"font-size-sm d-flex align-items-center bg-light-ultramarine text-ultramarine rounded-pill w-fit mt-1 px-2"},n.createElement(o.x,{namespace:ee,phrase:"requireMarking",options:{smartCount:t.pendingReview}}))),n.createElement(W.e,{className:"position-absolute bottom-0 end-0 position-md-static justify-content-end gap-2 ms-auto",actionsDropdownClassName:"btn-outline-dark rounded py-2",dropdownToggleSvgSize:w.S.Standard,actions:e.getObjectActions(a)}))}var re=a(9566);const ie={background:"HAuP3"};var le="myShares.demoInsights",se=i.T.encloseNamespace(le);function ce(e){var t=e.liteUrl.includes("staging"),a=e.breakpoints.xs||e.breakpoints.sm;return n.createElement("div",null,n.createElement(te,{heading:se("demoHeading"),isFirst:!0}),n.createElement("div",{className:"".concat(ie.background," rounded-3 border-md bg-light-orange mb-4")},n.createElement(ne,{shareData:Object.assign(Object.assign({},re.G),{sharedObject:Object.assign(Object.assign({},e.demoInteractive),{id:t?B.c:B.q})}),getObjectActions:function(){return[Object.assign(Object.assign({},re.V),{button:!a})]},getObjectAppLink:function(){return null},imageCdnUrl:e.imageCdnUrl,yearGroups:e.yearGroups,breakpoints:e.breakpoints},n.createElement("div",{className:"d-inline-block rounded-pill bg-light-blue text-info font-size-sm mt-1 px-2"},n.createElement(o.x,{namespace:le,phrase:"demoInsightPill"})))))}var oe=a(97958),me=a(99742),de=a(14070),ue=a(97291),pe=i.T.encloseNamespace("myShares.mySharesTableEmptyState");function ge(){return n.createElement(oe.u,null,n.createElement(oe.u.Image,{src:me.W.EmptyStates.Share.SHARED_BY_ME,size:"small"}),n.createElement(oe.u.Heading,null,pe("heading")),n.createElement(oe.u.Info,null,pe("info")),n.createElement(oe.u.Cta,{appLink:{application:ue.O.DASHBOARD,action:de.e.Dashboard.HOME},text:pe("cta")}))}var fe=a(110),ve=a(31754);function be(e){return be="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},be(e)}function ye(e,t,a){return(t=function(e){var t=function(e){if("object"!=be(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var a=t.call(e,"string");if("object"!=be(a))return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==be(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}var he=i.T.encloseNamespace("myShares.mySharesTable");function Ee(e){var t;if(e.type===Q.y.ShareLink||!(null===(t=null==e?void 0:e.recipients)||void 0===t?void 0:t.length))return e.dateCreated;var a=e.recipients.map((function(e){return e.dateShared}));return a.sort((function(e,t){return fe.O.isSame(e,t)?0:fe.O.isAfter(e,t)?1:-2})),a.length?N.m.last(a):""}function ke(e){var t,a,r,i,l,s,c,o=(t=e.sentShares,a=e.sharedObjects,r=e.shareRecipients,i=!!e.groupByDateShared,l=e.interactivesPendingReview,s=[],c=null==l?void 0:l.reduce((function(e,t){return Object.assign(ye({},t.interactiveId,t),e)}),{}),t.forEach((function(e){var t,n,i=null==a?void 0:a[e.objectId],l=null;if(e.type===Q.y.DirectShare&&(l=[],null===(t=e.recipients)||void 0===t||t.forEach((function(e){var t=null==r?void 0:r[e.id];t&&l.push(t)}))),i){var o=i.typeId===A.E.Interactive&&(null==c?void 0:c[i.interactiveId]);s.push(Object.assign({share:e,sharedObject:i,shareRecipients:l,dateShared:Ee(e),viewCount:null!==(n=e.viewCount)&&void 0!==n?n:0,pendingReview:null==o?void 0:o.pendingReviewCount},e.type===Q.y.ShareLink?{privacy:e.privacy,overrideRestrictions:e.overrideRestrictions}:{}))}})),i?ve.x.groupByDateShared(s):ye({},he("title"),s));return n.createElement(n.Fragment,null,Object.keys(o).map((function(t,a){return n.createElement("div",{key:t},n.createElement(te,{heading:t,isFirst:!e.hasDemoInsights&&0===a}),n.createElement("div",{className:"d-flex flex-column rounded-3 mb-4 gap-4 gap-md-0 border-md"},o[t].map((function(t){return n.createElement(ne,{key:t.share.id,shareData:t,getObjectActions:e.getObjectActions,getObjectAppLink:e.getObjectAppLink,breakpoints:e.breakpoints,imageCdnUrl:e.imageCdnUrl,yearGroups:e.yearGroups})}))))})))}const xe={table:"elIjR",tableHeader:"xJKgP",heading:"iWHol",image:"TMQxq",avatar:"_3GY1C",date:"nz3va",views:"FpDfX",actions:"pOtyK"};function Se(){return n.createElement("div",{className:"".concat(xe.table," position-relative d-flex d-xl-grid flex-column flex-md-row align-items-md-center p-0 p-md-3 gap-3")},n.createElement("div",{className:"col-12 col-md-3 col-xl-auto"},n.createElement("div",{className:"partial-loading-background rounded ratio ratio-16x9 "})),n.createElement("div",{className:"d-flex flex-column align-items-xl-center flex-xl-row gap-1 gap-xl-3"},n.createElement("div",{className:"partial-loading-background col-8 col-xl-4"}," "),n.createElement("div",{className:"d-flex align-items-center gap-2 gap-xl-0 pe-4 pe-md-0 col-xl-8"},n.createElement("div",{className:"col-xl-5"},n.createElement("div",{className:"".concat(xe.avatar," partial-loading-background rounded-pill col-xl-8")})),n.createElement("div",{className:"col-xl-4"},n.createElement("div",{className:"".concat(xe.date," partial-loading-background")}," ")),n.createElement("div",{className:"col-xl-3"},n.createElement("div",{className:"".concat(xe.views," partial-loading-background")}," ")))),n.createElement("div",{className:"position-absolute bottom-0 end-0 position-md-static d-flex justify-content-end gap-2 ms-auto col col-xl-12"},n.createElement("div",{className:"".concat(xe.actions," partial-loading-background rounded d-none d-md-block px-3 p-lg-0 col-lg-6")}),n.createElement("div",{className:"".concat(xe.actions," partial-loading-background rounded px-3 p-lg-0 col-lg-4")})))}function Ie(){return n.createElement(n.Fragment,null,n.createElement("div",{className:"mb-3"},n.createElement("div",{className:"no-full-width"},n.createElement("div",{className:"".concat(xe.table," d-block d-xl-grid gap-3 px-3")},n.createElement("div",{className:"partial-loading-background mb-2 ms-n3 ".concat(xe.date)}," "),n.createElement("div",{className:"d-flex flex-column align-items-xl-center flex-xl-row gap-1 gap-xl-3"},n.createElement("div",{className:"col-xl-4"}),n.createElement("div",{className:"d-flex align-items-center gap-2 gap-xl-0 pe-4 pe-md-0 col-xl-8"},n.createElement("div",{className:"col-xl-5"},n.createElement("div",{className:"d-none d-xl-inline-block partial-loading-background mb-2 ".concat(xe.date)}," ")),n.createElement("div",{className:"col-xl-4"},n.createElement("div",{className:"d-none d-xl-inline-block partial-loading-background mb-2 ".concat(xe.date)}," ")),n.createElement("div",{className:"col-xl-3"},n.createElement("div",{className:"d-none d-xl-inline-block partial-loading-background mb-2 ".concat(xe.date)}," "))))),n.createElement("div",{className:"d-flex flex-column rounded-3 mb-4 gap-4 gap-md-0 border-md border"},n.createElement(Se,null),n.createElement(Se,null),n.createElement(Se,null)))),n.createElement("div",{className:"mb-3"},n.createElement("div",{className:"partial-loading-background mb-2 ".concat(xe.date)}," "),n.createElement("div",{className:"d-flex flex-column rounded-3 mb-4 gap-4 gap-md-0 border-md border"},n.createElement(Se,null),n.createElement(Se,null),n.createElement(Se,null),n.createElement(Se,null))),n.createElement("div",{className:"mb-3"},n.createElement("div",{className:"partial-loading-background mb-2 ".concat(xe.date)}," "),n.createElement("div",{className:"d-flex flex-column rounded-3 mb-4 gap-4 gap-md-0 border-md border"},n.createElement(Se,null),n.createElement(Se,null),n.createElement(Se,null),n.createElement(Se,null),n.createElement(Se,null),n.createElement(Se,null),n.createElement(Se,null),n.createElement(Se,null),n.createElement(Se,null),n.createElement(Se,null))))}var Ne="myShares.mySharesEmptyState",Oe=i.T.encloseNamespace(Ne);function je(){return n.createElement(oe.u,null,n.createElement(oe.u.Image,{src:me.W.EmptyStates.MY_VIDEOS_PUBLIC,altText:Oe("heading")}),n.createElement(oe.u.Heading,null,n.createElement(o.x,{namespace:Ne,phrase:"heading"})),n.createElement(oe.u.Info,null,n.createElement(o.x,{namespace:Ne,phrase:"info"})),n.createElement(oe.u.Cta,{text:i.T.getPhrase(Ne,"cta"),appLink:{application:ue.O.SIGN_UP,action:de.e.SignUp.SIGN_UP},analyticsData:{},analyticsOptions:{actionType:H.Vw.Click,location:H.LZ.MySharesLanding,entity:H.py.AppLink,workflowPhase:H.eu.Start,descriptor:H.Yu.SignUp}}))}var we=a(26025);function Ae(e){return function(e){if(Array.isArray(e))return Ce(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return Ce(e,t);var a={}.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?Ce(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Ce(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=Array(t);a<t;a++)n[a]=e[a];return n}var Le=i.T.encloseNamespace("myShares.myShares"),Pe="myShares.myShares",Fe=i.T.encloseNamespace(Pe);function Re(e){var t,a,i,I;(0,y.M)({title:Fe("myShares")});var N,O,j=(0,b.T)(),w=j.hasPermissions,A=j.hasLocalPermissions,L=(0,h.r)(null),P=L.hasShareFlowV2,F=L.hasClassrooms,R=(0,E.G)().isPlugin,T=(0,v.k)(),M=(0,f.v)().accessPolicy,U={typeIdAppLinkParams:N=function(e){return e?"string"==typeof e?[+e]:e.map((function(e){return+e}))||[]:[]}(e.typeId),audienceAppLinkParams:O=we.B.getAudienceAppLinkParams(),currentAppLink:{application:ue.O.MY_SHARES,action:de.e.MyShares.HOME,params:Object.assign(Object.assign({},O),{typeId:N})},sentSharesParams:{recipientUserId:null==O?void 0:O.users,recipientGroupId:[].concat(Ae((null==O?void 0:O.classroomGroups)||[]),Ae((null==O?void 0:O.classrooms)||[])),objectTypeId:N.length?N:void 0}},V=!A(m.E.ViewMySharesLanding)||w(m.C.ViewMyShares)&&P,B=P&&w(m.C.ViewInsights),G=null===(t=null==M?void 0:M.metadata)||void 0===t?void 0:t.hasDemoInsights,_=l.a.useBasicFetch(d.L.config()),q=l.a.useBasicFetch(g.N.currentUser()),z=l.a.useBasicFetch((null===(a=q.data)||void 0===a?void 0:a.isAuthenticated)&&u.h.yearGroups(q.data.customerId)),W=l.a.useBasicFetch(G&&p.X.interactiveMetadata()),Y=(0,k.a)(U.sentSharesParams,!0,V);return n.useEffect((function(){w(m.C.ViewMyShares)&&P||r.Q.Ab.PageLoad("/")}),[V]),V?n.createElement("div",{className:"px-3"},n.createElement(S.p,{analyticsUrl:null===(i=_.data)||void 0===i?void 0:i.analyticsWebUrl,hasAnalytics:w(m.C.ViewCustomerAnalytics)}),n.createElement("div",{className:"d-flex justify-content-between border-bottom pb-3 mb-3"},n.createElement("h1",{className:"mb-1"},n.createElement(o.x,{namespace:Pe,phrase:"myShares"})),n.createElement(s.B,{hasClassroomsFeature:F})),n.createElement("div",{className:"mb-3"},n.createElement(D,{appLink:U.currentAppLink,typeIdParams:U.typeIdAppLinkParams,breakpoints:T})),G&&W.data&&n.createElement(ce,{demoInteractive:W.data,liteUrl:null===(I=_.data)||void 0===I?void 0:I.liteUrl,breakpoints:T,imageCdnUrl:Y.imageCdnUrl,yearGroups:z.data}),function(){var e;return Y.showPartialLoading?n.createElement(Ie,null):Y.sentShares.length?n.createElement(n.Fragment,null,n.createElement(ke,{sentShares:Y.sentShares,sharedObjects:Y.sharedObjects.items,shareRecipients:Y.shareRecipients.items,interactivesPendingReview:Y.interactivesPendingReview.itemsArr,getObjectAppLink:x.Qh,getObjectActions:function(e){return function(e,t,a,n,r){var i=[],l={button:!(r.xs||r.sm),className:"btn btn-outline-dark"};if($.M.isVideoType(e)){if(!$.M.getCanBeConsumed(e).canConsume)return[];if(n)return[Object.assign(Object.assign({label:Le("embedVideo"),appLink:{application:ue.O.DEFAULT,action:de.e.Default.PLUGIN_SHARE,args:[e.id],params:{entityType:e.type}}},l),{analyticsOptions:{actionType:H.Vw.Share,descriptor:H.YM.PluginEmbed,workflowPhase:H.eu.Start,eventVersion:H.eq.V5}})];a&&i.push(Object.assign({svgName:C.vn.Analytics,label:!r.md&&Le("viewInsights"),tooltip:r.md&&Le("viewInsights"),appLink:Object.assign(Object.assign({},(0,x.Dw)(e)),{params:t}),group:"insights"},l))}return i.push(Object.assign({label:!r.md&&Le("share"),tooltip:r.md&&Le("share"),svgName:C.vn.Share,appLink:(0,x.YK)(e),group:"share"},l)),i}(e,U.audienceAppLinkParams,B,R,T)},groupByDateShared:!0,breakpoints:T,hasDemoInsights:G,imageCdnUrl:null===(e=_.data)||void 0===e?void 0:e.imageCdnUrl,yearGroups:z.data}),(Y.hasMore||Y.isFetching)&&n.createElement(c._,{isFetching:Y.isFetching,fetchNext:Y.fetchNext,nextCursor:Y.nextCursor})):n.createElement(ge,null)}()):n.createElement(je,null)}},64208:(e,t,a)=>{a.d(t,{a:()=>v});var n=a(20354),r=a(1048),i=a(71553),l=a(30439),s=a(39151),c=a(1666),o=a(31949),m=a(39902),d=a(60115),u=a(75896),p=a(85063),g={getDirectShares:function(e){var t;return null!==(t=null==e?void 0:e.filter((function(e){return e.type===p.y.DirectShare})))&&void 0!==t?t:[]},getRecipients:function(e){return u.m.flatten(g.getDirectShares(e).map((function(e){var t;return null!==(t=e.recipients)&&void 0!==t?t:[]})))}},f=a(31908);function v(e,t){var a,u,p=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],v=n.a.useGetFetch(),b=n.a.useBasicFetch(o.N.currentUser()),y=n.a.useBasicFetch(s.L.config()),h=n.a.useBasicFetch((null===(a=b.data)||void 0===a?void 0:a.isAuthenticated)&&c.h.yearGroups(b.data.customerId)),E=function(t){return p&&l.o.sentShare(Object.assign({cursor:t},e))},k=function(e){return v(E(e))},x=(0,d.K)(E,k),S=x.items,I=x.hasMore,N=x.isFetching,O=x.nextCursor,j=x.hasFirstPageCompleted,w=(0,m.FN)(null==S?void 0:S.map((function(e){return e.objectId})),l.o.sharedObjectsById),A=(0,m.FN)(g.getRecipients(S).map((function(e){return e.id})),(function(e){return l.o.getRecipientsById(e,b.data.customerId)})),C=(0,m.FN)(t?r.t.values(w.items||[]):[],(function(e){return i.I.pendingReviews({interactives:e.filter(f.M.isInteractive).map((function(e){return{interactiveId:e.interactiveId,metadataId:e.id}})),filters:{currentCustomerId:b.data.customerId,currentUserId:b.data.id}})}),(function(e){return"".concat(e.id,":").concat(e.interactiveId)})),L=N||w.isFetching||A.isFetching||C.isFetching||h.isFetching,P=!j||(null==S?void 0:S.length)&&!w.hasFirstRequestCompleted;return{sentShares:S,sharedObjects:w,shareRecipients:A,yearGroups:h.data,interactivesPendingReview:C,isFetching:L,showPartialLoading:P,nextCursor:O,hasMore:I,fetchNext:k,imageCdnUrl:null===(u=y.data)||void 0===u?void 0:u.imageCdnUrl}}}}]);
|
|
2
|
+
//# sourceMappingURL=647-ad2e2f0add-lite.chunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scripts/647-ad2e2f0add-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/apps/analytics/flight-requests/InteractiveResultsRequests.ts","file:///app/packages/libs/shared/src/flight-requests/InsightsDemoRequests.ts","file:///app/packages/libs/shared/src/hooks/UseBatchFetch.ts","file:///app/packages/libs/shared/src/utils/AnalyticsRequestUtils.ts","file:///app/packages/projects/lite/src/apps/insights/constants/DemoInsights.ts","file:///app/packages/projects/lite/src/apps/my-shares/constants/MySharesDemoInsights.ts","file:///app/packages/projects/lite/src/apps/insights/components/insights-list/type-filter/insights-type-filters.scss","file:///app/packages/projects/lite/src/apps/insights/components/insights-list/type-filter/InsightsTypeFilters.tsx","file:///app/packages/projects/lite/src/apps/my-shares/components/my-shares-table-row/my-shares-table-row.scss","file:///app/packages/projects/lite/src/apps/my-shares/components/my-shares-table-row/MySharesTableRow.tsx","file:///app/packages/projects/lite/src/apps/my-shares/components/my-shares-demo-insight/my-shares-demo-insights.scss","file:///app/packages/projects/lite/src/apps/my-shares/components/my-shares-demo-insight/MySharesDemoInsight.tsx","file:///app/packages/projects/lite/src/apps/my-shares/components/my-shares-table/empty-state/MySharesTableEmptyState.tsx","file:///app/packages/projects/lite/src/apps/my-shares/components/my-shares-table/MySharesTableUtils.ts","file:///app/packages/projects/lite/src/apps/my-shares/components/my-shares-table/MySharesTable.tsx","file:///app/packages/projects/lite/src/apps/my-shares/components/my-shares-table/partial-loading/partial-my-shares-table.scss","file:///app/packages/projects/lite/src/apps/my-shares/components/my-shares-table/partial-loading/PartialMySharesTable.tsx","file:///app/packages/projects/lite/src/apps/my-shares/views/my-shares/empty-state/MySharesEmptyState.tsx","file:///app/packages/projects/lite/src/apps/my-shares/views/my-shares/MySharesViewUtils.ts","file:///app/packages/projects/lite/src/apps/my-shares/views/my-shares/MySharesView.tsx","file:///app/packages/libs/shared/src/utils/ShareHelper.ts","file:///app/packages/projects/lite/src/shared/hooks/useSharesTable.ts"],"sourcesContent":["import { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\nimport { Flight } from 'libs/common/react/index';\n\nimport { MarkInteractiveAnswer } from 'libs/shared/apps/analytics/interfaces/MarkInteractiveAnswer';\nimport { InteractiveResultsReport } from 'libs/shared/apps/analytics/interfaces/requests/InteractiveResultsReport';\nimport { InteractivesPendingReviewsRequest } from 'libs/shared/apps/analytics/interfaces/requests/InteractivesPendingReviewsRequest';\nimport { AnalyticsRequestFilter, CurrentUser, InteractiveResultSet } from 'libs/shared/interfaces';\nimport { getAnalyticsRequestKey } from 'libs/shared/utils/AnalyticsRequestUtils';\n\ninterface InteractiveResultFilters {\n currentUserId: string;\n currentCustomerId: string;\n dateRange?: { start: string, end: string }\n userIds?: string | string[];\n classroomsAndGroups?: string | string[];\n}\n\nfunction getInteractiveResultFilters(\n currentUser: CurrentUser,\n filter: AnalyticsRequestFilter\n): InteractiveResultFilters {\n return {\n currentUserId: currentUser.id,\n currentCustomerId: currentUser.customerId,\n dateRange: { start: filter.start, end: filter.end },\n userIds: filter.userId,\n classroomsAndGroups: filter.groupId\n };\n}\n\nexport const InteractiveResultsRequests = {\n /** \n * This endpoint returns data with a lot of duplicated ids,\n * e.g. student answers to the same question will have the same id.\n * Because of that, we don't normalize.\n */\n interactiveResultSet(\n interactiveId: string,\n interactiveMetadataId: string,\n currentUser: CurrentUser,\n filter: AnalyticsRequestFilter,\n includePublicResults: boolean,\n success?: (data: InteractiveResultSet) => void,\n error?: (data: any) => void,\n always?: () => void\n ): Flight.Request {\n return {\n url: includePublicResults ?\n `/api/domain/v3/analytics/interactives/${interactiveId}/metadata/${interactiveMetadataId}` :\n `/api/domain/v2/analytics/interactives/${interactiveId}/metadata/${interactiveMetadataId}`,\n key: getAnalyticsRequestKey(`interactive:result:set:${interactiveId}:${interactiveMetadataId}`, filter),\n data: getInteractiveResultFilters(currentUser, filter),\n type: HttpVerbs.POST,\n normalize: false,\n formatData: (data: any) => {\n return {\n ...data,\n students: data.students.map((student: any) => {\n if (!student.name || !student.profileId)\n return student;\n\n return {\n ...student,\n publicUser: {\n profileId: student.profileId,\n name: student.name\n }\n };\n })\n };\n },\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};","import { Flight } from 'libs/common/react/index';\n\nexport const InsightsDemoRequests = {\n interactive(): Flight.Request {\n return {\n url: `/mocks/insights/interactive.json`,\n key: `demo:interactive`,\n normalize: false\n };\n },\n\n interactiveMetadata(): Flight.Request {\n return {\n url: `/mocks/insights/interactive-metadata.json`,\n key: `demo:interactive:metadata`,\n normalize: false\n };\n },\n\n interactiveResults(): Flight.Request {\n return {\n url: `/mocks/insights/interactive-results.json`,\n key: `demo:interactive:results`,\n normalize: false\n };\n },\n\n videoViews(): Flight.Request {\n return {\n url: `/mocks/insights/video-views.json`,\n key: `demo:video:views`,\n normalize: false\n };\n },\n\n users(): Flight.Request {\n return {\n url: `/mocks/insights/users.json`,\n key: `demo:users`,\n normalize: false\n };\n },\n\n individualHeatmap(): Flight.Request {\n return {\n url: `/mocks/insights/individual-heatmap.json`,\n key: `demo:individual:heatmap`,\n normalize: false\n };\n },\n\n aggregateHeatmap(): Flight.Request {\n return {\n url: `/mocks/insights/aggregate-heatmap.json`,\n key: `demo:aggregate:heatmap`,\n normalize: false\n };\n }\n};","import React from 'react';\n\nimport { Flight } from 'libs/common/flight';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { BaseObject } from 'libs/shared/interfaces';\n\nconst CHUNK_SIZE = 50;\n\nexport interface UseBatchFetchResult<T extends BaseObject> {\n itemsArr: T[];\n items: { [key: string]: T} | null;\n isFetching: boolean;\n}\n\n/**\n * Used to fetch multiple items by id with Flight. Will fetch 25 items at a time firing off multiple\n * requests if there are more than 25 items.\n * This will return items as null until we have all our items. Items will be returned as an object with\n * their ids as they key for easy mapping\n * \n * @param itemIds \n * @param getRequest \n */\nexport function useBatchFetch<T extends BaseObject>(\n itemIds: string[],\n getRequest: (ids: string[]) => Flight.Request\n): UseBatchFetchResult<T> {\n const chunks = ArrayHelper.chunk<string>(itemIds, CHUNK_SIZE);\n\n const requests = chunks.map(chunk => getRequest(ArrayHelper.uniq(chunk)));\n\n const responses = Flight.useBasicFetchAll<T[]>(requests);\n\n const itemsArr = ArrayHelper.flatten(responses.data);\n const items = responses.data.length\n ? itemsArr.reduce((acc, item) => ({ ...acc, [item.id]: item }), {})\n : null;\n\n return {\n itemsArr,\n items,\n isFetching: responses.isFetching\n };\n}\n\n/**\n * When you need the useBatchFetch() behavior, but your list of objects to hydrate\n * will grow, such as on a scrolling page. useGrowingBatchFetch() will use local state\n * to determine what we've already built a request for and what items are new\n * as to not re-fetch items - Sha\n */\nexport function useGrowingBatchFetch<T>(\n objs: T[],\n getRequest: (items: T[]) => Flight.Request,\n _getKey?: (obj: T) => string\n) {\n const { fetchItems, ...data } = useGrowingBatchFetchFunc({ getRequest, _getKey });\n\n React.useEffect(() => {\n if (!objs?.length)\n return;\n\n fetchItems(objs);\n }, [objs?.length]);\n\n return data;\n}\n\ninterface UseGrowingBatchFetchFuncOptions<T> {\n getRequest: (items: T[]) => Flight.Request;\n _getKey?: (obj: T) => 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<T>(options: UseGrowingBatchFetchFuncOptions<T>) {\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: T[]) {\n if (!objs?.length)\n return;\n\n const unfetchedItems: T[] = [];\n \n objs.forEach(obj => {\n const key = getKey(obj);\n\n if (fetchedItems.current.has(key))\n return;\n\n unfetchedItems.push(obj);\n fetchedItems.current.add(key);\n });\n \n if (!unfetchedItems.length)\n return;\n \n setRequests(r => ([ ...r, ...ArrayHelper.chunk<T>(unfetchedItems, CHUNK_SIZE).map(options.getRequest) ]));\n }\n\n const responses = Flight.useBasicFetchAll<T[]>(requests);\n const itemsArr = ArrayHelper.flatten(responses.data);\n const items = responses.data.length\n ? itemsArr.reduce((acc, item) => ({ ...acc, [getKey(item)]: item }), {})\n : null;\n\n return {\n hasFirstRequestCompleted: !!responses.responses?.[0]?.hasCompleted,\n itemsArr,\n items,\n isFetching: responses.isFetching,\n fetchItems\n };\n}","import { AnalyticsRequestFilter } from 'libs/shared/interfaces';\n\nexport function getAnalyticsRequestKey(baseKey: string, filter: AnalyticsRequestFilter, sharerId?: string): string {\n let key = `${baseKey}:${filter.start}:${filter.end}`;\n\n const userIdKey = Array.isArray(filter.userId) ? filter.userId.sort().join(':') : filter.userId;\n const groupIdKey = Array.isArray(filter.groupId) ? filter.groupId.sort().join(':') : filter.groupId;\n\n if (userIdKey)\n key += `:${userIdKey}`;\n\n if (groupIdKey)\n key += `:${groupIdKey}`;\n\n if (sharerId)\n key += `:${sharerId}`;\n\n return key;\n}","export const DEMO_INTERACTIVE_STAGING_ID = 'D8qRe7';\nexport const DEMO_INTERACTIVE_PROD_ID = 'GRWx6w';","import { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\nimport { ShareType } from 'libs/shared/enums/ShareType';\nimport { UnionShareObject } from 'libs/shared/interfaces';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nimport { MySharesTableData } from 'apps/my-shares/components/my-shares-table/MySharesTableUtils';\n\nconst namespace = 'myShares.demoInsights';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst DEMO_INSIGHT_DAYS_AGO = 7;\n\nexport const DEMO_INSIGHTS_SHARE: MySharesTableData = {\n share: {\n objectTypeId: 34,\n type: ShareType.ShareLink\n } as UnionShareObject,\n sharedObject: null,\n shareRecipients: null,\n dateShared: DateHelper.subtract(new Date(), DEMO_INSIGHT_DAYS_AGO, 'days').toISOString(),\n viewCount: 23\n};\n\nconst DEMO_INSIGHTS_APPLINK: Core.AppLink = {\n application: AppChannels.MY_SHARES,\n action: Actions.MyShares.INTERACTIVE_OVERVIEW_DEMO\n};\n\nexport const DEMO_INSIGHTS_ACTION: ActionOptions = {\n svgName: cvSvgLibrary.Analytics,\n label: getPhrase('demoInsights'),\n appLink: DEMO_INSIGHTS_APPLINK,\n group: 'insights',\n className: 'btn btn-outline-dark'\n};","// extracted by mini-css-extract-plugin\nexport default {\"noCaret\":\"TMpTN\",\"filterContainer\":\"PNKOf\"};","import React from 'react';\nimport { Dropdown } from 'react-bootstrap';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Checkbox } from 'libs/shared/components/forms/form-checkbox/Checkbox';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { Breakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport styles from './insights-type-filters.scss';\n\nconst namespace = 'insights.insightsTypeFilters';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface InsightsTypeFilterProps {\n appLink: Core.AppLink;\n typeIdParams: MasterType[];\n breakpoints: Breakpoints;\n}\n\nexport function InsightsTypeFilters(props: InsightsTypeFilterProps) {\n const isMobile = props.breakpoints.xs || props.breakpoints.sm;\n\n const moreFilterOptions = [\n ...(isMobile ? [{\n label: getPhrase('interactives'),\n filter: MasterType.Interactive\n }, {\n label: getPhrase('videos'),\n filter: MasterType.Video\n }, {\n label: getPhrase('clips'),\n filter: MasterType.Clip\n }] : []),\n {\n label: getPhrase('playlists'),\n filter: MasterType.Playlist\n }, {\n label: getPhrase('series'),\n filter: MasterType.Series\n }];\n\n const moreFiltersSelected = getMoreFiltersSelected();\n\n const [ showDropdown, setShowDropdown ] = React.useState(false);\n const [ moreFilters, setMoreFilters ] = React.useState(moreFiltersSelected);\n\n function applyFilter() {\n const currentParams = props.appLink.params as HashObject;\n\n Core.AppLinkHelper.trigger({\n ...props.appLink,\n params: {\n ...currentParams,\n typeId: ArrayHelper.uniq([\n ...props.typeIdParams,\n ...moreFilters\n ])\n }\n });\n }\n\n function resetFilters() {\n setMoreFilters([]);\n\n const currentParams = props.appLink.params as HashObject;\n\n Core.AppLinkHelper.trigger({\n ...props.appLink,\n params: {\n ...currentParams,\n typeId: []\n }\n });\n }\n\n function onToggleDropdown(isShowing: boolean): void {\n setShowDropdown(isShowing);\n\n if (isShowing)\n return;\n\n applyFilter();\n }\n\n function onClickApply() {\n applyFilter();\n setShowDropdown(false);\n }\n\n function onClickReset() {\n resetFilters();\n setShowDropdown(false);\n }\n\n function onSelectFilter(filter: MasterType) {\n setMoreFilters(ArrayHelper.addOrRemoveImmutable(moreFilters, filter));\n }\n\n function isFilterSelected(filter: MasterType) {\n if (isMobile) {\n return !!moreFilters.find(selectedFilter => selectedFilter === filter) ||\n !!props.typeIdParams.find(selectedFilter => selectedFilter === filter);\n }\n\n return !!moreFilters.find(selectedFilter => selectedFilter === filter);\n }\n\n function getMoreFiltersSelected() {\n return props.typeIdParams.filter(typeId =>\n moreFilterOptions.some(option => typeId === option.filter));\n }\n\n return (\n <div className='d-flex align-items-center fw-semibold'>\n <p className='d-none d-md-inline h6 mb-0'><Text namespace={namespace} phrase='filters' /></p>\n <div className={`${styles.filterContainer} d-flex flex-grow-1 flex-md-grow-0 border-start ps-0 ps-md-3 ms-0 ms-md-3 gap-2`}>\n <div className='d-none d-md-flex gap-2'>\n <InsightTypeFilterButton\n typeId={MasterType.Interactive}\n typeFilters={props.typeIdParams}\n appLink={props.appLink}\n />\n <InsightTypeFilterButton typeId={MasterType.Video} typeFilters={props.typeIdParams} appLink={props.appLink} />\n <InsightTypeFilterButton typeId={MasterType.Clip} typeFilters={props.typeIdParams} appLink={props.appLink} />\n </div>\n <Dropdown onToggle={onToggleDropdown} show={showDropdown} className='col'>\n <Dropdown.Toggle\n className={`${styles.noCaret} col-12 col-md-auto`}\n variant={moreFiltersSelected.length ? 'dark' : 'outline-dark'}\n >\n <div className='d-flex align-items-center justify-content-center gap-2 fw-semibold mb-0'>\n <SvgContainer svgName={cvSvgLibrary.Filter} className='svg-container d-inline-block d-md-none' />\n <Text namespace={namespace} phrase={isMobile ? 'filters' : 'moreFilters'} />\n {moreFiltersSelected.length ? ` - ${moreFiltersSelected.length}` : ''}\n </div>\n </Dropdown.Toggle>\n\n <Dropdown.Menu>\n <div className='mx-1 px-2 py-1 mb-0'>\n <h2 className='h6 mb-3'><Text namespace={namespace} phrase='types' /></h2>\n <ul className='list-unstyled me-5'>\n {moreFilterOptions.map(option => (\n <li key={`${option.label}-filter`} className='my-1'>\n <Checkbox\n id={`${option.label}-filter`}\n label={option.label}\n onChange={() => onSelectFilter(option.filter)}\n checked={isFilterSelected(option.filter)}\n />\n </li>\n ))}\n </ul>\n <div className='d-flex justify-content-between'>\n <button onClick={onClickReset} className='btn btn-link text-secondary p-0 mb-0'>\n <Text namespace={namespace} phrase='resetAll' />\n </button>\n <button onClick={onClickApply} className='btn btn-link text-info p-0 mb-0'>\n <Text namespace={namespace} phrase='apply' />\n </button>\n </div>\n </div>\n </Dropdown.Menu>\n </Dropdown>\n </div>\n {!!props.typeIdParams.length &&\n <button onClick={resetFilters} className='d-none d-md-block btn btn-link ms-1'>\n <Text namespace={namespace} phrase='resetAll' />\n </button>\n }\n </div>\n );\n}\n\ninterface InsightTypeFilterButtonProps {\n typeId: MasterType;\n typeFilters: MasterType[];\n appLink: Core.AppLink;\n}\n\nfunction InsightTypeFilterButton(props: InsightTypeFilterButtonProps) {\n const selected = props.typeFilters.includes(props.typeId);\n\n const currentAppLink = props.appLink;\n const currentParams = currentAppLink.params as HashObject;\n\n const newType: MasterType[] = ArrayHelper.addOrRemoveImmutable(props.typeFilters, props.typeId);\n\n const newAppLink = {\n ...currentAppLink,\n params: {\n ...currentParams,\n typeId: newType\n }\n };\n\n function getTypePhrase(): string {\n if (props.typeId === MasterType.Video) return 'videos';\n if (props.typeId === MasterType.Clip) return 'clips';\n if (props.typeId === MasterType.Interactive) return 'interactives';\n }\n\n return (\n <AppLink\n className={`btn ${selected ? 'btn-dark' : 'btn-outline-dark'} fw-semibold`}\n appLink={newAppLink}\n ariaLabel={`${getPhrase('ariaFilterBy')}: ${getPhrase(getTypePhrase())}`}\n >\n <Text namespace={namespace} phrase={getTypePhrase()} />\n </AppLink>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"mySharesTable\":\"hyaYe\",\"mySharesHeader\":\"WjfsD\",\"tableBorder\":\"tHBWr\"};","import React from 'react';\nimport { format as formatDate } from 'timeago.js';\n\nimport { Core } from 'libs/common/backbone/index';\n\nimport { LocationContext, UserAction } from 'libs/analytics/interfaces';\n\nimport { SharedObjectImage } from 'libs/shared/apps/share/components/shared-object-image/SharedObjectImage';\nimport { ShareLinkHelper } from 'libs/shared/apps/share/utils/ShareLinkHelper';\nimport { SharableEntity, 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 { SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\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 { ImageSize } from 'libs/shared/enums/Images';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { ShareType } from 'libs/shared/enums/ShareType';\nimport { Breakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { BaseObject, YearGroup } from 'libs/shared/interfaces';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { getObjectAppLink } from 'shared/utils/ObjectAppLinkHelper';\n\nimport { MySharesTableData } from 'apps/my-shares/components/my-shares-table/MySharesTableUtils';\nimport { SharedToPill } from 'apps/my-shares/components/shared-to-pill/SharedToPill';\n\nimport styles from './my-shares-table-row.scss';\n\nconst namespace = 'myShares.tableRow';\n\ninterface MySharesTableHeadingProps {\n heading: string;\n isFirst: boolean;\n}\n\nexport function MySharesTableHeading(props: MySharesTableHeadingProps) {\n return (\n <div className={`${styles.mySharesHeader} d-block d-lg-grid gap-3 px-3`}>\n <p className='fw-semibold mb-2 ms-n3'>{props.heading}</p>\n\n {props.isFirst &&\n <>\n <div className='d-none d-xl-inline' />\n <p className='d-none d-xl-inline fw-semibold mb-2'><Text namespace={namespace} phrase='sharedToHeading' /></p>\n <p className='d-none d-xl-inline fw-semibold mb-2'><Text namespace={namespace} phrase='dateSharedHeading' /></p>\n <p className='d-none d-xl-inline fw-semibold mb-2'><Text namespace={namespace} phrase='viewsHeading' /></p>\n </>\n }\n </div>\n );\n}\n\ninterface ShareObjectTitleProps {\n sharedObject: SharableEntity;\n requireMarking?: number;\n appLink: Core.AppLink;\n}\n\nfunction ShareObjectTitle(props: ShareObjectTitleProps) {\n const { sharedObject } = props;\n\n if (!sharedObject.name) {\n return <Text namespace={namespace} phrase='videoUnavailable' />;\n }\n\n if (VideoHelper.isVideoType(sharedObject) &&\n !VideoHelper.getCanBeConsumed(sharedObject)?.canNavigate) {\n return (\n <span className='clamp-2'>\n {sharedObject.name}\n </span>\n );\n }\n\n function getSubTextPhrase(): string {\n switch (sharedObject.typeId) {\n case MasterType.Series: return 'series';\n case MasterType.Playlist: return 'playlist';\n }\n }\n\n const subTextPhrase = getSubTextPhrase();\n\n return (\n <div>\n {VideoHelper.isVideoType(sharedObject) && (\n <VideoSubText\n type='series'\n video={sharedObject}\n appLink={'series' in sharedObject && sharedObject.series ? getObjectAppLink(sharedObject.series) : null}\n analyticsOptions={{ location: LocationContext.Insights }}\n className='d-inline clamp-1'\n />\n )}\n\n {subTextPhrase &&\n <TitleSubText>\n <Text namespace={namespace} phrase={subTextPhrase} />\n </TitleSubText>\n }\n\n <AppLink\n appLink={props.appLink}\n className='clamp-1'\n analyticsData={{ id: sharedObject.id, name: sharedObject.name }}\n analyticsOptions={{\n entity: ShareViewHelper.getAnalyticsEntity(sharedObject.type),\n actionType: UserAction.Click,\n location: LocationContext.MyShares\n }}\n >\n {sharedObject.name}\n </AppLink>\n\n {!!props.requireMarking && (\n <div className={`font-size-sm d-flex align-items-center bg-light-ultramarine text-ultramarine rounded-pill w-fit mt-1 px-2`}>\n <Text namespace={namespace} phrase='requireMarking' options={{ smartCount: props.requireMarking }} />\n </div>\n )}\n </div>\n );\n}\n\ninterface MyShareRowProps extends React.PropsWithChildren {\n shareData: MySharesTableData;\n breakpoints?: Breakpoints;\n getObjectAppLink: (object: BaseObject) => Core.AppLink;\n getObjectActions: (object: BaseObject) => ActionOptions[];\n yearGroups: YearGroup[];\n imageCdnUrl: string;\n}\n\nexport function MySharesTableRow(props: MyShareRowProps) {\n const { shareData } = props;\n\n const sharedObject = shareData.sharedObject;\n\n const shareLinkText = shareData.share.type === ShareType.ShareLink &&\n ShareLinkHelper.getIconAndText({\n entity: sharedObject,\n entityTypeId: sharedObject.typeId,\n hasStudentExp: false,\n isPasswordProtected: shareData.share.isPasswordProtected,\n linkExpireDate: shareData.share.linkExpireDate,\n privacy: {\n privacy: shareData.privacy,\n overrideRestrictions: shareData.overrideRestrictions\n },\n status: shareData.share.status,\n yearGroups: props.yearGroups\n });\n\n const isMobile = props.breakpoints.xs || props.breakpoints.sm;\n const isDesktop = props.breakpoints.xl || props.breakpoints.xxl;\n const isCollection = sharedObject.typeId === MasterType.Playlist || sharedObject.typeId === MasterType.Series;\n\n return (\n <div key={shareData.share.id} className={`${styles.mySharesTable} ${styles.tableBorder} position-relative d-flex d-xl-grid flex-column flex-md-row align-items-md-center p-0 p-md-3 gap-3`}>\n <div className='col-12 col-md-3 col-xl-auto'>\n <SharedObjectImage\n object={sharedObject}\n appLink={props.getObjectAppLink(sharedObject)}\n showVideoMetadata\n locationContext={LocationContext.MyShares}\n imageOptions={{ size: ImageSize.Medium }}\n requireMarking={isMobile && shareData.pendingReview}\n showCollectionMask\n showVideoCount\n />\n </div>\n <div className='d-flex flex-column align-items-xl-center flex-xl-row gap-1 gap-xl-3'>\n <div className='col-xl-4'>\n <ShareObjectTitle\n sharedObject={shareData.sharedObject}\n appLink={props.getObjectAppLink(sharedObject)}\n requireMarking={isDesktop && shareData.pendingReview}\n />\n {props.children}\n </div>\n\n <div className='d-flex align-items-center gap-2 gap-xl-0 pe-4 pe-md-0 col-xl-8'>\n <div className='col-xl-5'>\n <SharedToPill\n shareLinkText={shareLinkText?.text}\n shareRecipients={shareData.shareRecipients}\n imageCdnUrl={props.imageCdnUrl}\n />\n </div>\n <span className='d-inline d-xl-none'>·</span>\n <p className='mb-0 col-xl-4'>{formatDate(shareData.dateShared)}</p>\n {!isCollection ? (\n <>\n <span className='d-inline d-xl-none'>·</span>\n <p className='mb-0 col-xl-3'><Text namespace={namespace} phrase='views' options={{ smartCount: shareData.viewCount }} /></p>\n </>\n ) : (\n <p className='mb-0 d-none d-xl-block'>-</p>\n )}\n </div>\n\n {!isDesktop && !isMobile && !!shareData.pendingReview && (\n <div className='font-size-sm d-flex align-items-center bg-light-ultramarine text-ultramarine rounded-pill w-fit mt-1 px-2'>\n <Text namespace={namespace} phrase='requireMarking' options={{ smartCount: shareData.pendingReview }} />\n </div>\n )}\n </div>\n\n <Actions\n className={`position-absolute bottom-0 end-0 position-md-static justify-content-end gap-2 ms-auto`}\n actionsDropdownClassName='btn-outline-dark rounded py-2'\n dropdownToggleSvgSize={SvgContainerSize.Standard}\n actions={props.getObjectActions(sharedObject)}\n />\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"background\":\"HAuP3\"};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { Text } from 'libs/shared/components/text/Text';\nimport { Breakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { InteractiveMetadata, YearGroup } from 'libs/shared/interfaces';\n\nimport { DEMO_INTERACTIVE_PROD_ID, DEMO_INTERACTIVE_STAGING_ID } from 'apps/insights/constants/DemoInsights';\nimport { MySharesTableHeading, MySharesTableRow } from 'apps/my-shares/components/my-shares-table-row/MySharesTableRow';\nimport { DEMO_INSIGHTS_ACTION, DEMO_INSIGHTS_SHARE } from 'apps/my-shares/constants/MySharesDemoInsights';\n\nimport styles from './my-shares-demo-insights.scss';\n\nconst namespace = 'myShares.demoInsights';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface MySharesDemoInsightProps {\n demoInteractive: InteractiveMetadata;\n liteUrl: string;\n imageCdnUrl: string;\n yearGroups: YearGroup[];\n breakpoints: Breakpoints;\n}\n\nexport function MySharesDemoInsight(props: MySharesDemoInsightProps) {\n const isStaging = props.liteUrl.includes('staging');\n\n const isMobile = props.breakpoints.xs || props.breakpoints.sm;\n\n function getDemoInteractive() {\n return {\n ...props.demoInteractive,\n id: isStaging ? DEMO_INTERACTIVE_STAGING_ID : DEMO_INTERACTIVE_PROD_ID\n };\n }\n\n function getObjectActions() {\n return [\n {\n ...DEMO_INSIGHTS_ACTION,\n button: !isMobile\n }\n ];\n }\n\n return (\n <div>\n <MySharesTableHeading heading={getPhrase('demoHeading')} isFirst={true} />\n\n <div className={`${styles.background} rounded-3 border-md bg-light-orange mb-4`}>\n <MySharesTableRow\n shareData={{ ...DEMO_INSIGHTS_SHARE, sharedObject: getDemoInteractive() }}\n getObjectActions={getObjectActions}\n getObjectAppLink={() => null}\n imageCdnUrl={props.imageCdnUrl}\n yearGroups={props.yearGroups}\n breakpoints={props.breakpoints}\n >\n <div className='d-inline-block rounded-pill bg-light-blue text-info font-size-sm mt-1 px-2'>\n <Text namespace={namespace} phrase='demoInsightPill' />\n </div>\n </MySharesTableRow>\n </div>\n </div>\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nconst namespace = 'myShares.mySharesTableEmptyState';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function MySharesTableEmptyState(): JSX.Element {\n return (\n <EmptyState>\n <EmptyState.Image src={ImageUrls.EmptyStates.Share.SHARED_BY_ME} size='small' />\n <EmptyState.Heading>\n {getPhrase('heading')}\n </EmptyState.Heading>\n <EmptyState.Info>{getPhrase('info')}</EmptyState.Info>\n <EmptyState.Cta appLink={{ application: AppChannels.DASHBOARD, action: Actions.Dashboard.HOME }} text={getPhrase('cta')} />\n </EmptyState>\n );\n}","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { InteractivesPendingReviews } from 'libs/shared/apps/analytics/interfaces/response/InteractivesPendingReviewsResponse';\nimport { SharePrivacy } from 'libs/shared/apps/share/interfaces/SharePrivacy';\nimport { ShareHelper } from 'libs/shared/apps/share/utils/ShareHelper';\nimport { SharableEntity, SharableRecipient } from 'libs/shared/apps/share/views/share/ShareViewHelper';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { ShareType } from 'libs/shared/enums/ShareType';\nimport { InteractiveMetadata, UnionShareObject } from 'libs/shared/interfaces';\n\nconst namespace = 'myShares.mySharesTable';\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\nexport interface MySharesTableData {\n share: UnionShareObject;\n sharedObject: SharableEntity;\n dateShared: string;\n shareRecipients?: SharableRecipient[];\n viewCount: number;\n pendingReview?: number;\n privacy?: SharePrivacy;\n overrideRestrictions?: boolean;\n}\n\ntype TableDataGroupings = { [date: string]: MySharesTableData[] };\n\nexport function useGetMySharesData(\n sentShares: UnionShareObject[],\n sharedObjects: Record<string, SharableEntity>,\n shareRecipients: Record<string, SharableRecipient>,\n groupByDate: boolean,\n interactivesPendingReviews: InteractivesPendingReviews[]\n): TableDataGroupings {\n const tableData: MySharesTableData[] = [];\n\n const interactivesPendingReviewsMap = interactivesPendingReviews\n ?.reduce<Record<string, InteractivesPendingReviews>>(\n (map, obj) => ({ [obj.interactiveId]: obj, ...map }),\n {}\n );\n\n sentShares.forEach(s => {\n const sharedObject = sharedObjects?.[s.objectId];\n\n let recipients: SharableRecipient[] | 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 const pendingReview = sharedObject.typeId === MasterType.Interactive &&\n interactivesPendingReviewsMap?.[(sharedObject as InteractiveMetadata).interactiveId];\n\n tableData.push({\n share: s,\n sharedObject,\n shareRecipients: recipients,\n dateShared: getDateShared(s),\n viewCount: s.viewCount ?? 0,\n pendingReview: pendingReview?.pendingReviewCount,\n ...(s.type === ShareType.ShareLink ? {\n privacy: s.privacy,\n overrideRestrictions: s.overrideRestrictions\n } : {})\n });\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 { InteractivesPendingReviews } from 'libs/shared/apps/analytics/interfaces/response/InteractivesPendingReviewsResponse';\nimport { SharableEntity, SharableRecipient } from 'libs/shared/apps/share/views/share/ShareViewHelper';\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\nimport { Breakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { BaseObject, UnionShareObject, YearGroup } from 'libs/shared/interfaces';\n\nimport { useGetMySharesData } from 'apps/my-shares/components/my-shares-table/MySharesTableUtils';\nimport { MySharesTableHeading, MySharesTableRow } from 'apps/my-shares/components/my-shares-table-row/MySharesTableRow';\n\ninterface MySharesTableProps {\n sentShares: UnionShareObject[];\n sharedObjects: Record<string, SharableEntity>;\n shareRecipients: Record<string, SharableRecipient>;\n interactivesPendingReview: InteractivesPendingReviews[];\n getObjectAppLink: (object: BaseObject) => Core.AppLink;\n getObjectActions: (object: BaseObject) => ActionOptions[];\n groupByDateShared?: boolean;\n showStatus?: boolean;\n showViewCount?: boolean;\n dependencies?: any[];\n breakpoints?: Breakpoints;\n hasDemoInsights?: boolean;\n imageCdnUrl: string;\n yearGroups: YearGroup[];\n}\n\nexport function MySharesTable(props: MySharesTableProps): JSX.Element {\n const data = useGetMySharesData(\n props.sentShares,\n props.sharedObjects,\n props.shareRecipients,\n !!props.groupByDateShared,\n props.interactivesPendingReview\n );\n\n return (\n <>\n {Object.keys(data).map((heading, i) => (\n <div key={heading}>\n <MySharesTableHeading heading={heading} isFirst={!props.hasDemoInsights && i === 0} />\n\n <div className='d-flex flex-column rounded-3 mb-4 gap-4 gap-md-0 border-md'>\n {data[heading].map(shareData => (\n <MySharesTableRow\n key={shareData.share.id}\n shareData={shareData}\n getObjectActions={props.getObjectActions}\n getObjectAppLink={props.getObjectAppLink}\n breakpoints={props.breakpoints}\n imageCdnUrl={props.imageCdnUrl}\n yearGroups={props.yearGroups}\n />\n ))}\n </div>\n </div>\n ))}\n </>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"table\":\"elIjR\",\"tableHeader\":\"xJKgP\",\"heading\":\"iWHol\",\"image\":\"TMQxq\",\"avatar\":\"_3GY1C\",\"date\":\"nz3va\",\"views\":\"FpDfX\",\"actions\":\"pOtyK\"};","import React from 'react';\n\nimport styles from './partial-my-shares-table.scss';\n\nfunction PartialRow(): JSX.Element {\n return (\n <div className={`${styles.table} position-relative d-flex d-xl-grid flex-column flex-md-row align-items-md-center p-0 p-md-3 gap-3`}>\n <div className='col-12 col-md-3 col-xl-auto'>\n <div className={`partial-loading-background rounded ratio ratio-16x9 `} />\n </div>\n <div className='d-flex flex-column align-items-xl-center flex-xl-row gap-1 gap-xl-3'>\n <div className={`partial-loading-background col-8 col-xl-4`}> </div>\n <div className='d-flex align-items-center gap-2 gap-xl-0 pe-4 pe-md-0 col-xl-8'>\n <div className='col-xl-5'>\n <div className={`${styles.avatar} partial-loading-background rounded-pill col-xl-8`} />\n </div>\n <div className='col-xl-4'>\n <div className={`${styles.date} partial-loading-background`}> </div>\n </div>\n <div className='col-xl-3'>\n <div className={`${styles.views} partial-loading-background`}> </div>\n </div>\n </div>\n </div>\n <div className={`position-absolute bottom-0 end-0 position-md-static d-flex justify-content-end gap-2 ms-auto col col-xl-12`}>\n <div className={`${styles.actions} partial-loading-background rounded d-none d-md-block px-3 p-lg-0 col-lg-6`} />\n <div className={`${styles.actions} partial-loading-background rounded px-3 p-lg-0 col-lg-4`} />\n </div>\n </div>\n );\n}\n\nexport function PartialMySharesTable(): JSX.Element {\n return (\n <>\n <div className='mb-3'>\n <div className='no-full-width'>\n <div className={`${styles.table} d-block d-xl-grid gap-3 px-3`}>\n <div className={`partial-loading-background mb-2 ms-n3 ${styles.date}`}> </div>\n <div className='d-flex flex-column align-items-xl-center flex-xl-row gap-1 gap-xl-3'>\n <div className='col-xl-4' />\n <div className='d-flex align-items-center gap-2 gap-xl-0 pe-4 pe-md-0 col-xl-8'>\n <div className='col-xl-5'>\n <div className={`d-none d-xl-inline-block partial-loading-background mb-2 ${styles.date}`}> </div>\n </div>\n <div className='col-xl-4'>\n <div className={`d-none d-xl-inline-block partial-loading-background mb-2 ${styles.date}`}> </div>\n </div>\n <div className='col-xl-3'>\n <div className={`d-none d-xl-inline-block partial-loading-background mb-2 ${styles.date}`}> </div>\n </div>\n </div>\n </div>\n </div>\n\n <div className='d-flex flex-column rounded-3 mb-4 gap-4 gap-md-0 border-md border'>\n <PartialRow />\n <PartialRow />\n <PartialRow />\n </div>\n </div>\n </div>\n\n <div className='mb-3'>\n <div className={`partial-loading-background mb-2 ${styles.date}`}> </div>\n\n <div className='d-flex flex-column rounded-3 mb-4 gap-4 gap-md-0 border-md border'>\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n </div>\n </div>\n\n <div className='mb-3'>\n <div className={`partial-loading-background mb-2 ${styles.date}`}> </div>\n\n <div className='d-flex flex-column rounded-3 mb-4 gap-4 gap-md-0 border-md border'>\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';\n\nimport { EntityType, LocationContext, SignUpDescriptors, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\nimport { Text } from 'libs/shared/components/text/Text';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nconst namespace = 'myShares.mySharesEmptyState';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function MySharesEmptyState() {\n return (\n <EmptyState>\n <EmptyState.Image src={ImageUrls.EmptyStates.MY_VIDEOS_PUBLIC} altText={getPhrase('heading')} />\n <EmptyState.Heading><Text namespace={namespace} phrase='heading' /></EmptyState.Heading>\n <EmptyState.Info><Text namespace={namespace} phrase='info' /></EmptyState.Info>\n <EmptyState.Cta\n text={LanguageService.getPhrase(namespace, 'cta')}\n appLink={{\n application: AppChannels.SIGN_UP,\n action: Actions.SignUp.SIGN_UP\n }}\n analyticsData={{}}\n analyticsOptions={{\n actionType: UserAction.Click,\n location: LocationContext.MySharesLanding,\n entity: EntityType.AppLink,\n workflowPhase: WorkflowPhase.Start,\n descriptor: SignUpDescriptors.SignUp\n }}\n />\n </EmptyState>\n );\n}","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EventVersion, ShareDescriptors, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { AudienceQueryParams } from 'libs/shared/apps/analytics/interfaces/AudienceQueryParams';\nimport { AnalyticsFilterHelper } from 'libs/shared/apps/analytics/utils/AnalyticsFilterUtils';\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { Breakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { BaseObject } from 'libs/shared/interfaces';\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';\nimport { getInsightsAppLink, getShareAppLink } from 'shared/utils/ObjectAppLinkHelper';\n\nconst namespace = 'myShares.myShares';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function getShareObjectActions(\n sharedObject: BaseObject,\n audienceParams?: AudienceQueryParams,\n hasInsights?: boolean,\n isPlugin?: boolean,\n breakpoints?: Breakpoints\n): ActionOptions[] {\n const insightObjectActions: ActionOptions[] = [];\n\n const isMobile = breakpoints.xs || breakpoints.sm;\n\n const buttonProps = {\n button: !isMobile,\n className: 'btn btn-outline-dark'\n };\n\n if (VideoHelper.isVideoType(sharedObject)) {\n const { canConsume } = VideoHelper.getCanBeConsumed(sharedObject);\n\n if (!canConsume)\n return [];\n\n if (isPlugin) {\n return [{\n label: getPhrase('embedVideo'),\n appLink: {\n application: AppChannels.DEFAULT,\n action: Actions.Default.PLUGIN_SHARE,\n args: [sharedObject.id],\n params: { entityType: sharedObject.type }\n },\n ...buttonProps,\n analyticsOptions: {\n actionType: UserAction.Share,\n descriptor: ShareDescriptors.PluginEmbed,\n workflowPhase: WorkflowPhase.Start,\n eventVersion: EventVersion.V5\n }\n }];\n }\n\n if (hasInsights)\n insightObjectActions.push({\n svgName: cvSvgLibrary.Analytics,\n label: !breakpoints.md && getPhrase('viewInsights'),\n tooltip: breakpoints.md && getPhrase('viewInsights'),\n appLink: { ...getInsightsAppLink(sharedObject), params: audienceParams },\n group: 'insights',\n ...buttonProps\n });\n }\n\n insightObjectActions.push({\n label: !breakpoints.md && getPhrase('share'),\n tooltip: breakpoints.md && getPhrase('share'),\n svgName: cvSvgLibrary.Share,\n appLink: getShareAppLink(sharedObject),\n group: 'share',\n ...buttonProps\n });\n\n return insightObjectActions;\n}\n\nexport function getTypeIdParams(typeId: string | string[]): MasterType[] {\n if (!typeId) return [];\n\n if (typeof typeId === 'string')\n return [+typeId];\n\n return typeId.map(typeId => +typeId) || [];\n}\n\nexport function getSharesParams(typeId: string | string[]) {\n const typeIdAppLinkParams = getTypeIdParams(typeId);\n const audienceAppLinkParams = AnalyticsFilterHelper.getAudienceAppLinkParams();\n const currentAppLink = {\n application: AppChannels.MY_SHARES,\n action: Actions.MyShares.HOME,\n params: {\n ...audienceAppLinkParams,\n typeId: typeIdAppLinkParams\n }\n };\n const sentSharesParams = {\n recipientUserId: audienceAppLinkParams?.users,\n recipientGroupId: [ ...audienceAppLinkParams?.classroomGroups || [], ...audienceAppLinkParams?.classrooms || [] ],\n objectTypeId: typeIdAppLinkParams.length ? typeIdAppLinkParams : undefined\n };\n\n return {\n typeIdAppLinkParams,\n audienceAppLinkParams,\n currentAppLink,\n sentSharesParams\n };\n}","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/react/index';\n\nimport { AudienceFilterView } from 'libs/shared/apps/analytics/views/audience-filter/AudienceFilterView';\nimport { InfiniteScrollFooter } from 'libs/shared/components/infinite-scroll-footer/InfiniteScrollFooter';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { LocalPermissionName, PermissionName } from 'libs/shared/enums/PermissionName';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { CustomerRequests } from 'libs/shared/flight-requests/CustomerRequests';\nimport { InsightsDemoRequests } from 'libs/shared/flight-requests/InsightsDemoRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useAccessPolicy } from 'libs/shared/hooks/useAccessPolicy';\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';\nimport { Config, CurrentUser, InteractiveMetadata, YearGroup } from 'libs/shared/interfaces';\n\nimport { usePluginHelper } from 'shared/hooks/use-plugin-helper/usePluginHelper';\nimport { useSharesTable } from 'shared/hooks/useSharesTable';\nimport { getObjectAppLink } from 'shared/utils/ObjectAppLinkHelper';\n\nimport { InsightsAdminAlert } from 'apps/insights/components/insights-admin-alert/InsightsAdminAlert';\nimport { InsightsTypeFilters } from 'apps/insights/components/insights-list/type-filter/InsightsTypeFilters';\nimport { MySharesDemoInsight } from 'apps/my-shares/components/my-shares-demo-insight/MySharesDemoInsight';\nimport { MySharesTableEmptyState } from 'apps/my-shares/components/my-shares-table/empty-state/MySharesTableEmptyState';\nimport { MySharesTable } from 'apps/my-shares/components/my-shares-table/MySharesTable';\nimport { PartialMySharesTable } from 'apps/my-shares/components/my-shares-table/partial-loading/PartialMySharesTable';\nimport { MySharesEmptyState } from 'apps/my-shares/views/my-shares/empty-state/MySharesEmptyState';\nimport { getShareObjectActions, getSharesParams } from 'apps/my-shares/views/my-shares/MySharesViewUtils';\n\nconst namespace = 'myShares.myShares';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface MySharesViewProps {\n typeId: string | string[];\n}\n\nexport function MySharesView(props: MySharesViewProps) {\n // Shared hooks\n useSetPageMetadata({ title: getPhrase('myShares') });\n const { hasPermissions, hasLocalPermissions } = usePermissions();\n const { hasShareFlowV2, hasClassrooms } = useSettings(null);\n const { isPlugin } = usePluginHelper();\n const breakpoints = useBreakpoints();\n const { accessPolicy } = useAccessPolicy();\n\n const sharesParams = getSharesParams(props.typeId);\n\n // Local variables\n const shouldFetch = !hasLocalPermissions(LocalPermissionName.ViewMySharesLanding) ||\n hasPermissions(PermissionName.ViewMyShares) && hasShareFlowV2;\n const hasInsightsPermission = hasShareFlowV2 && hasPermissions(PermissionName.ViewInsights);\n const showDemoInsight = accessPolicy?.metadata?.hasDemoInsights;\n\n // Flight fetching\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const yearGroups = Flight.useBasicFetch<YearGroup[]>(\n currentUser.data?.isAuthenticated && CustomerRequests.yearGroups(currentUser.data.customerId)\n );\n const demoInteractive = Flight.useBasicFetch<InteractiveMetadata>(showDemoInsight &&\n InsightsDemoRequests.interactiveMetadata());\n\n const shareData = useSharesTable(sharesParams.sentSharesParams, true, shouldFetch);\n\n React.useEffect(() => {\n if (!(hasPermissions(PermissionName.ViewMyShares) && hasShareFlowV2))\n Core.LocationUtils.PageLoad('/');\n }, [shouldFetch]);\n\n if (!shouldFetch)\n return <MySharesEmptyState />;\n\n return (\n <div className='px-3'>\n <InsightsAdminAlert\n analyticsUrl={config.data?.analyticsWebUrl}\n hasAnalytics={hasPermissions(PermissionName.ViewCustomerAnalytics)}\n />\n\n <div className='d-flex justify-content-between border-bottom pb-3 mb-3'>\n <h1 className='mb-1'><Text namespace={namespace} phrase='myShares' /></h1>\n\n <AudienceFilterView hasClassroomsFeature={hasClassrooms} />\n </div>\n\n <div className='mb-3'>\n <InsightsTypeFilters\n appLink={sharesParams.currentAppLink}\n typeIdParams={sharesParams.typeIdAppLinkParams}\n breakpoints={breakpoints}\n />\n </div>\n\n {showDemoInsight && demoInteractive.data &&\n <MySharesDemoInsight\n demoInteractive={demoInteractive.data}\n liteUrl={config.data?.liteUrl}\n breakpoints={breakpoints}\n imageCdnUrl={shareData.imageCdnUrl}\n yearGroups={yearGroups.data}\n />\n }\n\n {(() => {\n if (shareData.showPartialLoading)\n return <PartialMySharesTable />;\n\n if (!shareData.sentShares.length)\n return (\n <MySharesTableEmptyState />\n );\n\n return (\n <>\n <MySharesTable\n sentShares={shareData.sentShares}\n sharedObjects={shareData.sharedObjects.items}\n shareRecipients={shareData.shareRecipients.items}\n interactivesPendingReview={shareData.interactivesPendingReview.itemsArr}\n getObjectAppLink={getObjectAppLink}\n getObjectActions={obj => getShareObjectActions(\n obj,\n sharesParams.audienceAppLinkParams,\n hasInsightsPermission,\n isPlugin,\n breakpoints\n )}\n groupByDateShared\n breakpoints={breakpoints}\n hasDemoInsights={showDemoInsight}\n imageCdnUrl={config.data?.imageCdnUrl}\n yearGroups={yearGroups.data}\n />\n {(shareData.hasMore || shareData.isFetching) &&\n <InfiniteScrollFooter\n isFetching={shareData.isFetching}\n fetchNext={shareData.fetchNext}\n nextCursor={shareData.nextCursor}\n />\n }\n </>\n );\n })()}\n </div>\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};","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 useSharesTable(\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}"],"names":["getInteractiveResultFilters","currentUser","filter","currentUserId","id","currentCustomerId","customerId","dateRange","start","end","userIds","userId","classroomsAndGroups","groupId","InteractiveResultsRequests","interactiveResultSet","interactiveId","interactiveMetadataId","includePublicResults","success","error","always","url","key","data","type","normalize","formatData","students","map","student","name","profileId","publicUser","mark","answerId","resultId","invalidationKeys","pendingReviews","interactiveResultsReport","InsightsDemoRequests","interactive","interactiveMetadata","interactiveResults","videoViews","users","individualHeatmap","aggregateHeatmap","CHUNK_SIZE","useBatchFetch","itemIds","getRequest","requests","chunk","responses","itemsArr","items","length","reduce","acc","item","isFetching","useGrowingBatchFetch","objs","_getKey","useGrowingBatchFetchFunc","fetchItems","options","getKey","obj","fetchedItems","Set","setRequests","hasFirstRequestCompleted","hasCompleted","unfetchedItems","forEach","current","has","push","add","r","getAnalyticsRequestKey","baseKey","sharerId","userIdKey","Array","isArray","sort","join","groupIdKey","DEMO_INTERACTIVE_STAGING_ID","DEMO_INTERACTIVE_PROD_ID","getPhrase","DEMO_INSIGHTS_SHARE","share","objectTypeId","sharedObject","shareRecipients","dateShared","Date","toISOString","viewCount","DEMO_INSIGHTS_APPLINK","application","action","DEMO_INSIGHTS_ACTION","svgName","label","appLink","group","className","namespace","LanguageService","InsightsTypeFilters","props","isMobile","breakpoints","xs","sm","moreFilterOptions","MasterType","moreFiltersSelected","typeIdParams","typeId","some","option","showDropdown","setShowDropdown","moreFilters","setMoreFilters","applyFilter","currentParams","params","ArrayHelper","resetFilters","Text","phrase","InsightTypeFilterButton","typeFilters","Dropdown","onToggle","isShowing","show","variant","SvgContainer","Checkbox","onChange","checked","find","selectedFilter","onClick","selected","includes","currentAppLink","newType","newAppLink","getTypePhrase","AppLink","ariaLabel","MySharesTableHeading","heading","isFirst","ShareObjectTitle","VideoHelper","canNavigate","subTextPhrase","getSubTextPhrase","VideoSubText","video","series","analyticsOptions","location","TitleSubText","analyticsData","entity","ShareViewHelper","actionType","requireMarking","smartCount","MySharesTableRow","shareData","shareLinkText","ShareType","ShareLinkHelper","entityTypeId","hasStudentExp","isPasswordProtected","linkExpireDate","privacy","overrideRestrictions","status","yearGroups","isDesktop","xl","xxl","isCollection","SharedObjectImage","object","getObjectAppLink","showVideoMetadata","locationContext","imageOptions","size","pendingReview","showCollectionMask","showVideoCount","children","SharedToPill","text","imageCdnUrl","Actions","actionsDropdownClassName","dropdownToggleSvgSize","S","actions","getObjectActions","MySharesDemoInsight","isStaging","liteUrl","demoInteractive","button","MySharesTableEmptyState","EmptyState","src","ImageUrls","getDateShared","recipients","dateCreated","datesShared","date1","date2","DateHelper","MySharesTable","sentShares","sharedObjects","groupByDate","interactivesPendingReviews","tableData","interactivesPendingReviewsMap","groupByDateShared","interactivesPendingReview","s","objectId","recipient","pendingReviewCount","ShareHelper","Object","keys","i","hasDemoInsights","PartialRow","PartialMySharesTable","MySharesEmptyState","altText","workflowPhase","descriptor","SignUp","MySharesView","useSetPageMetadata","title","typeIdAppLinkParams","audienceAppLinkParams","usePermissions","hasPermissions","hasLocalPermissions","useSettings","hasShareFlowV2","hasClassrooms","isPlugin","usePluginHelper","useBreakpoints","accessPolicy","useAccessPolicy","sharesParams","getTypeIdParams","sentSharesParams","recipientUserId","recipientGroupId","classroomGroups","classrooms","undefined","shouldFetch","PermissionName","hasInsightsPermission","showDemoInsight","metadata","config","ConfigRequests","UserRequests","isAuthenticated","CustomerRequests","useSharesTable","InsightsAdminAlert","analyticsUrl","analyticsWebUrl","hasAnalytics","AudienceFilterView","hasClassroomsFeature","showPartialLoading","audienceParams","hasInsights","insightObjectActions","buttonProps","canConsume","args","entityType","eventVersion","md","tooltip","getShareObjectActions","hasMore","InfiniteScrollFooter","fetchNext","nextCursor","getDirectShares","getRecipients","d","interactiveInsights","fetch","cursor","ShareRequests","isFetchingSentShares","hasFirstPageCompleted","ObjectHelper","I","interactives","metadataId","filters"],"sourceRoot":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[6909],{22406:(e,t,n)=>{n.d(t,{r:()=>u});var r=n(32735),a=n(23481),o=n(83914),i=n(36532),l=n(35223);const c={tag:"XRj8d",tooltip:"X6mLk"};var s="specialEventCalendar.comingSoonTag";function u(e){return r.createElement(i.u,{title:a.T.getPhrase(s,"tooltip"),spanHackClassName:"d-block ".concat(c.tooltip),spanHack:!0},r.createElement("div",{className:"d-flex text-dark align-items-center ".concat(c.tag," ").concat(e.className)},r.createElement(o.x,{svgName:l.vn.Timer}),!e.onlyIcon&&a.T.getPhrase(s,"comingSoon")))}},78408:(e,t,n)=>{n.d(t,{s:()=>i});var r=n(32735),a=n(15611);const o={dateItem:"I3SBm",label:"PRORs",body:"RfiM_",bodyDay:"ZOVny",bodyRange:"vYhXN",bodyMonth:"mYslO",month:"EPkkQ"};function i(e){var t,n,i;return r.createElement(a.F,{appLink:null===(t=e.getAppLink)||void 0===t?void 0:t.call(e),className:"text-decoration-none text-center bg-white text-dark border border-3 ".concat(null===(n=e.theme)||void 0===n?void 0:n.border," rounded-3 d-block fw-semibold ").concat(e.className),analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions},r.createElement("div",{className:"position-relative ".concat(o.dateItem)},r.createElement("div",{className:"".concat(null===(i=e.theme)||void 0===i?void 0:i.background," py-1 ").concat(o.label," d-flex align-items-center justify-content-center")},e.label?e.label:r.createElement(r.Fragment,null," ")),r.createElement("div",{className:"".concat(function(){switch(e.body.type){case"range":return o.bodyRange;case"day":return o.bodyDay;case"month":return o.bodyMonth}}()," ").concat(o.body," my-2")},e.body.text),r.createElement("div",{className:"mb-0 ".concat(o.month)},e.month)))}},67814:(e,t,n)=>{n.d(t,{p:()=>N,v:()=>F});var r=n(32735),a=n(110),o=n(50690),i=n(22406),l=n(78408),c=n(83657),s=n(23481),u=n(15611),d=n(83914),m=n(35223),f="shared.backButton";function v(e){var t=Object.assign({textShadow:!0},e),n=t.backToName,a=t.appLink,o=t.color,i=t.extraClasses,l=t.textShadow,c=n?s.T.getPhrase(f,"backTo",{backToName:n}):s.T.getPhrase(f,"back"),v="black"===o?"":"text-white",p=l?"text-shadow":"";return r.createElement(u.F,{appLink:a,className:"d-inline-flex align-items-center h5 mb-0 ".concat(i," ").concat(v," ").concat(p)},r.createElement(d.x,{svgName:m.vn.ChevronLeft,size:d.S.Medium}),r.createElement("span",{className:"ms-1"},c))}v.defaultProps={color:"black",extraClasses:""};var p=n(4527),g=n(83345),h=n(7733),b=n(10587),y=n(94232),E=n(54610),C=n(79967),S=n(9085),w=n(67453);const k={bannerContent:"sSCTB",actionsContainer:"Z5WI2",bannerContentWithLogo:"rgs7Q",container:"M51HJ",logoContainer:"vkeJk",logoContainerLeft:"M3U9B",logoHeading:"EtRwC",specialEventContainer:"rOxDc",headingLarge:"_8pnV",heading:"JXVBH"};var A="".concat(b.y[E.__.Banners].width,":").concat(b.y[E.__.Banners].height);function x(e){return e.length<160?"h1":k.headingLarge}var N=r.memo((function(e){var t,n,s,u,d=e.heading,m=e.banner,f=e.imageCdnUrl,b=e.actions,N=e.sortComponent,F=e.blockColourClass,O=e.specialEvent,L=r.useContext(y.n),I=(0,C.k)().xxl?1920:1200,P=r.useMemo((function(){if(!O||e.showComingSoon)return!1;var t=a.O.format(new Date,"YYYY-MM-DD");return O.endDate?O.startDate<=t&&O.endDate>=t:O.startDate===t}),[O]),T=e.imageOptions||{width:I,ratio:A,resizeType:E.Nq.Cover},M=!!m&&!!f&&w.j.createBannerUrl(m,{fallbackBaseUrl:f,fallbackCategoryName:d,type:E.__.Banners},T),j={className:"banner banner-header ".concat(e.bannerClassName),style:M?{backgroundImage:"url('".concat(M,"')")}:{}};!m&&F&&(delete j.style,j.className+=" ".concat(F));var D=e.detailsComponent,B=(0,S.x)(e.heading,h.o);return o.b.renderInPortalIfExists(r.createElement("header",Object.assign({},j),r.createElement("div",{className:"container ".concat(k.container," position-relative inner-banner")},e.backButtonAppLink&&r.createElement("div",{className:"pt-3"},r.createElement(v,{appLink:e.backButtonAppLink,backToName:e.backButtonText,extraClasses:e.backButtonClasses,color:"white"})),r.createElement("div",{className:"".concat(e.alignLogoLeft?"position-absolute top-50 start-0 translate-middle-y w-100 ps-4":"".concat(k.bannerContent," px-2 ").concat((null===(t=e.logo)||void 0===t?void 0:t.url)?k.bannerContentWithLogo:""))},!!O&&r.createElement("div",{className:"position-relative ".concat(k.specialEventContainer)},r.createElement(l.s,{body:{type:O.endDate?"range":"day",text:O.endDate?"".concat(a.O.format(O.startDate,"DD"),"-").concat(a.O.format(O.endDate,"DD")):a.O.format(O.startDate,"DD")},month:function(e){return e.endDate?a.O.isSame(e.startDate,e.endDate,"month")?a.O.format(e.startDate,"MMMM"):"".concat(a.O.format(e.startDate,"MMM")," - ").concat(a.O.format(e.endDate,"MMM")):a.O.format(e.startDate,"MMMM")}(O),theme:e.calendarTheme})),r.createElement("div",null,P&&r.createElement("div",{className:"rounded-pill py-1 px-2 my-1 me-1 fw-semibold bg-light-blue lh-1 d-inline-block"},r.createElement(g.x,{namespace:"shared.bannerHeader",phrase:"onToday"})),e.showComingSoon&&r.createElement(i.r,{className:"pe-2 fw-semibold mb-1 rounded-pill justify-content-start text-nowrap"}),r.createElement("div",{className:"d-flex align-items-center"},e.alignLogoLeft&&(null===(n=e.logo)||void 0===n?void 0:n.url)&&r.createElement("div",{className:"".concat(k.logoContainerLeft," d-none d-md-block rounded-circle overflow-hidden me-3 ").concat(B)},r.createElement(p.w,{src:w.j.createUrl(null===(s=e.logo)||void 0===s?void 0:s.url,{size:E.h2.Medium}),style:{backgroundColor:e.logoBgColour}})),r.createElement("h1",{className:"text-white text-shadow pe-3 position-static ".concat(k.heading," ").concat(x(d)," ").concat(e.alignLogoLeft?"w-50":"")},d,D&&r.createElement(D,null)))),!!b&&r.createElement("div",{className:k.actionsContainer},r.createElement(c.e,{actions:b,sortComponent:N,actionsDropdownClassName:e.actionsDropdownClassName}))),!e.alignLogoLeft&&!!(null===(u=e.logo)||void 0===u?void 0:u.url)&&r.createElement("div",{className:k.logoContainer},r.createElement("img",{src:w.j.createUrl(e.logo.url,{size:E.h2.Medium}),className:"rounded-circle"})))),null==L?void 0:L.container)}),(function(e,t){var n,r;return e.actions===t.actions&&e.heading===t.heading&&(null===(n=e.logo)||void 0===n?void 0:n.url)===(null===(r=t.logo)||void 0===r?void 0:r.url)}));function F(){var e=r.useContext(y.n);return o.b.renderInPortalIfExists(r.createElement("div",{className:"partial-banner partial-loading-background ".concat(k.banner)}),null==e?void 0:e.container)}},94644:(e,t,n)=>{n.d(t,{r:()=>u});var r=n(50242),a=n(81886),o=n(67058),i=n(14553),l=n(49267),c=n(49075),s={notFound:o.d,forbidden:{rating:i.q,yearLevel:i.q,region:l.a,privacy:i.q},badRequest:c._,internalServerError:c._};function u(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e){var o;o="number"==typeof e?e:e.status;var i=Object.assign(Object.assign({},s),t);o&&a.Q.Ry.isStatusCodeError(o)&&(o!==r.o.InternalServer?o!==r.o.NotFound?o!==r.o.Forbidden?n.badRequest||a.Q.Ry.throw(new i.badRequest):n.forbidden||a.Q.Ry.throw(new i.forbidden.privacy):n.notFound||a.Q.Ry.throw(new i.notFound):n.internalServerError||a.Q.Ry.throw(new c._))}}},39902:(e,t,n)=>{n.d(t,{FN:()=>v,SW:()=>p,fh:()=>f});var r=n(32735),a=n(20354),o=n(75896);function i(e){return function(e){if(Array.isArray(e))return c(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||l(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function l(e,t){if(e){if("string"==typeof e)return c(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)?c(e,t):void 0}}function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function s(e){return s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},s(e)}function u(e,t,n){return(t=function(e){var t=function(e){if("object"!=s(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=s(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==s(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var d=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]])}return n},m=50;function f(e,t){var n=o.m.chunk(e,m).map((function(e){return t(o.m.uniq(e))})),r=a.a.useBasicFetchAll(n),i=o.m.flatten(r.data),l=r.data.length?i.reduce((function(e,t){return Object.assign(Object.assign({},e),u({},t.id,t))}),{}):null;return{itemsArr:i,items:l,isFetching:r.isFetching}}function v(e,t,n){var a=p({getRequest:t,_getKey:n}),o=a.fetchItems,i=d(a,["fetchItems"]);return r.useEffect((function(){(null==e?void 0:e.length)&&o(e)}),[null==e?void 0:e.length]),i}function p(e){var t,n,c,d,f,v=null!==(t=e._getKey)&&void 0!==t?t:function(e){return"object"===s(e)?e.id:e},p=r.useRef(new Set),g=(d=r.useState([]),f=2,function(e){if(Array.isArray(e))return e}(d)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,o,i,l=[],c=!0,s=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=o.call(n)).done)&&(l.push(r.value),l.length!==t);c=!0);}catch(e){s=!0,a=e}finally{try{if(!c&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(s)throw a}}return l}}(d,f)||l(d,f)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),h=g[0],b=g[1],y=a.a.useBasicFetchAll(h),E=o.m.flatten(y.data),C=y.data.length?E.reduce((function(e,t){return Object.assign(Object.assign({},e),u({},v(t),t))}),{}):null;return{hasFirstRequestCompleted:!!(null===(c=null===(n=y.responses)||void 0===n?void 0:n[0])||void 0===c?void 0:c.hasCompleted),itemsArr:E,items:C,isFetching:y.isFetching,fetchItems:function(t){if(null==t?void 0:t.length){var n=[];t.forEach((function(e){var t=v(e);p.current.has(t)||(n.push(e),p.current.add(t))})),n.length&&b((function(t){return[].concat(i(t),i(o.m.chunk(n,m).map(e.getRequest)))}))}}}}},60115:(e,t,n)=>{n.d(t,{K:()=>s});var r=n(32735),a=n(50242),o=n(91967),i=400,l=n(45719);function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function s(e,t,n,s,u,d){var m,f,v,p,g=(m=(0,r.useState)(0),f=2,function(e){if(Array.isArray(e))return e}(m)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,o,i,l=[],c=!0,s=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=o.call(n)).done)&&(l.push(r.value),l.length!==t);c=!0);}catch(e){s=!0,a=e}finally{try{if(!c&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(s)throw a}}return l}}(m,f)||function(e,t){if(e){if("string"==typeof e)return c(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)?c(e,t):void 0}}(m,f)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),h=g[0],b=g[1],y=t,E=(0,l.P)((function(t){if(!e)return null;var n=e(t);return n?n.key:null}),s,u);return v={fetchNextPage:function(){if(t&&e&&E)return b((function(e){return e+1})),y(E.nextCursor)},hasMore:!!(null==E?void 0:E.nextCursor),isFetching:null==E?void 0:E.isFetching,scrollContainer:d},p=function(){if(!v.isFetching){if(v.scrollContainer){var e=v.scrollContainer;if(e.getBoundingClientRect().height+e.scrollTop<e.scrollHeight-i)return}else if(window.innerHeight+document.documentElement.scrollTop<document.documentElement.scrollHeight-i)return;v.fetchNextPage()}},(0,r.useEffect)((function(){var e=o.q.throttle(p,200),t=v.scrollContainer||window;return v.hasMore&&t.addEventListener("scroll",e),function(){return t.removeEventListener("scroll",e)}}),[v.hasMore,v.fetchNextPage,v.scrollContainer]),(0,r.useEffect)((function(){E&&E.shouldInitialFetch&&t&&(y(),b((function(e){return e+1})))}),[null==E?void 0:E.shouldInitialFetch,t]),(0,r.useEffect)((function(){var e,t;if((null==E?void 0:E.statusCode)&&o.q.isFunction(n)){var r=+(null===(t=null===(e=E.statusCode)||void 0===e?void 0:e.toString())||void 0===t?void 0:t.substr(0,1));r!==a.k.ClientError&&r!==a.k.ServerError||n(h,E.statusCode)}}),[null==E?void 0:E.statusCode]),{items:null==E?void 0:E.items,hasMore:!!(null==E?void 0:E.nextCursor),nextCursor:null==E?void 0:E.nextCursor,isFetching:null==E?void 0:E.isFetching,totalItems:null==E?void 0:E.totalItems,hasFirstPageCompleted:null==E?void 0:E.hasFirstPageCompleted}}},63719:(e,t,n)=>{n.d(t,{h:()=>l});var r=n(32735),a=n(77316);function o(e,t){if(e){if("string"==typeof e)return i(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)?i(e,t):void 0}}function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function l(e){var t,n,l=(t=r.useMemo((function(){return a.p.getBuilder()}),[]),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,o,i,l=[],c=!0,s=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=o.call(n)).done)&&(l.push(r.value),l.length!==t);c=!0);}catch(e){s=!0,a=e}finally{try{if(!c&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(s)throw a}}return l}}(t,n)||o(t,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),c=l[0],s=(0,l[1])(c);return s&&e?[].concat(function(e){return function(e){if(Array.isArray(e))return i(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||o(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}(s),[Object.assign(Object.assign({},e),{active:!0})]):s}},58321:(e,t,n)=>{n.d(t,{U:()=>v});var r=n(20354),a=n(16714),o=n(39151),i=n(1666),l=n(31949),c=n(22902),s=n(37802),u=n(22490),d=n(82431),m=n(46390),f=n(27638);function v(e){var t,n,v,p=e||{},g=p.locationContext,h=p.mtv,b=p.flightNamespace,y=p.sharedPlaylist,E=(0,m.G)(),C=E.isPlugin,S=E.params,w=(0,f.u)(g,b),k=w.setFavourite,A=w.canFavourite,x=(0,s.r)(null),N=x.hasTopicDirectories,F=x.isLoadingSettings,O=(0,c.T)(),L=O.hasPermissions,I=O.isLoaded,P=L(a.C.StudentExperience),T=r.a.useBasicFetch(o.L.config()),M=r.a.useBasicFetch(l.N.currentUser()),j=r.a.useBasicFetch((null===(t=M.data)||void 0===t?void 0:t.isAuthenticated)&&i.h.yearGroups(M.data.customerId));return{hasCommonVideoPropsCompleted:!F&&I&&T.hasCompleted&&M.hasCompleted&&(!(null===(n=M.data)||void 0===n?void 0:n.isAuthenticated)||j.hasCompleted),commonVideoProps:{subTextType:"series",getSubTextAppLink:function(e){var t;return"series"in e?y&&!(null===(t=M.data)||void 0===t?void 0:t.isAuthenticated)?null:d.j.getSeriesAppLink(e.series,{mtv:h}):null},isPlugin:C,isPluginPopup:!!(null==S?void 0:S.popup),canFavourite:A,setFavourite:k,imageCdnUrl:null===(v=T.data)||void 0===v?void 0:v.imageCdnUrl,yearGroups:j.data,getClassroomGuideAppLink:u.W.getClassroomGuideAppLink,getInteractiveGuidanceAppLink:u.W.getInteractiveGuidanceAppLink,getResourceGuidanceAppLink:u.W.getResourceGuidanceAppLink,showNewVideoIndicator:N,companyLogoFallbackUrl:null,hasStudentExperience:P}}}},44110:(e,t,n)=>{n.d(t,{i:()=>i});var r=n(20354),a=n(89454),o=n(86698),i=function(){var e=(0,o.y)({redirectOnError:!0}),t=e.activePresentation,n=e.getFallbackPresentation,i=t||n();return r.a.useBasicFetch(!!i&&a.O.presentationAudiences(i.id))}},97816:(e,t,n)=>{n.d(t,{V:()=>l,l:()=>c});var r=n(1575),a=n(39902),o=n(31908);function i(e){return e?Array.isArray(e)?e.filter((function(e){return!!e&&(o.M.isVideo(e)||o.M.isClip(e))})):"data"in e?e.data.filter((function(e){return!!e&&(o.M.isVideo(e)||o.M.isClip(e))})):[]:[]}function l(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=i(e).map((function(e){return e.id}));(0,a.FN)(n,(function(e){return r.R.videoMixinAssocs(e,t.flightNamespace)}),null)}function c(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=(0,a.SW)({getRequest:function(t){return r.R.videoMixinAssocs(t,e.flightNamespace)}}).fetchItems;return{fetchObjects:function(e){return t(i(e).map((function(e){return e.id})))}}}},96909:(e,t,n)=>{n.r(t),n.d(t,{FavouritesView:()=>Y});var r=n(32735),a=n(70680),o=n(23481),i=n(20354),l=n(65858),c=n(67814),s=n(49935),u=n(87801),d=n(83345),m=n(1860),f=n(75100),v=n(51365),p=n(16714),g=n(94644),h=n(39151),b=n(63419),y=n(31949),E=n(69883),C=n(63719),S=n(60115),w=n(22902),k=n(79612),A=n(99742),x=n(58321),N=n(44110),F=n(97816),O=n(10741),L=n(22490),I=n(97958),P=n(14070),T=n(97291);const M={image:"ZfpQv"};var j="shared.favouritesEmptyState",D=o.T.encloseNamespace(j);function B(){return r.createElement(d.D.Provider,{value:j},r.createElement(I.u,null,r.createElement(I.u.Image,{src:A.W.EmptyStates.FAVOURITED_VIDEOS,altText:D("info"),className:M.image}),r.createElement(I.u.Heading,{className:"h3"},r.createElement(d.x,{phrase:"heading"})),r.createElement(I.u.Info,null,r.createElement(d.x,{phrase:"info"})),r.createElement(I.u.Cta,{text:o.T.getPhrase(j,"cta"),appLink:{application:T.O.DASHBOARD,action:P.e.Dashboard.HOME}})))}function R(){return r.createElement(d.D.Provider,{value:j},r.createElement(I.u,null,r.createElement(I.u.Image,{src:A.W.EmptyStates.FAVOURITED_VIDEOS_PUBLIC,altText:D("publicInfo")}),r.createElement(I.u.Heading,null,r.createElement(d.x,{phrase:"publicHeading"})),r.createElement(I.u.Info,null,r.createElement(d.x,{phrase:"publicInfo"})),r.createElement(I.u.Cta,{text:o.T.getPhrase(j,"publicCta"),appLink:{application:T.O.SIGN_UP,action:P.e.SignUp.SIGN_UP},analyticsData:{},analyticsOptions:{actionType:l.Vw.Click,location:l.LZ.MyFavouritesLanding,entity:l.py.AppLink,workflowPhase:l.eu.Start,descriptor:l.Yu.SignUp}})))}var V=n(26323),U=n(35223),_=n(31908),q=n(10671),H=n(27638),W="shared.favourites";const G={banner:"FEWd3"};var Q="shared.favourites";function Y(){var e,t,n=(0,a.I0)(),I=(0,E.Z)(),P=(0,x.U)({locationContext:l.LZ.VideoThumbnail}).commonVideoProps,T=function(){var e=(0,q._)({location:q.i.VideoItem}),t=(0,H.u)(l.LZ.VideoThumbnail).setFavourite;return Object.assign(Object.assign({},e),{getVideoActions:function(n){return _.M.getCanBeConsumed(n).canConsume?e.getVideoActions(n):[{label:o.T.getPhrase(W,"removeFromFavourites"),svgName:U.vn.Delete,button:!1,className:"btn btn-link text-danger",onClick:function(){return t(n,!1)}}]}})}();(0,k.M)({title:o.T.getPhrase(Q,"pageTitle")});var M=(0,w.T)(),j=M.hasLocalPermissions,D=M.hasPermissions,Y=i.a.useBasicFetch(y.N.currentUser()),Z=i.a.useBasicFetch(h.L.config()),z=function(e){return b.P.getFavourites(Y.data.id,e)},K=function(e){return i.a.getFetch(n)(z(e))},X=!j(p.E.ViewMyFavouritesLanding)&&Y.hasCompleted,$=(0,S.K)(!!X&&z,K,(function(e,t){if(1===e)return(0,g.r)(t);I.error(o.T.getPhrase(Q,"error"))})),J=$.items,ee=$.hasMore,te=$.isFetching;(0,F.V)(J);var ne=(0,N.i)(),re=(0,C.h)({name:o.T.getPhrase(Q,"header")}),ae=(0,V.B)(null===(e=Y.data)||void 0===e?void 0:e.id),oe=ae.count;return ae.isLoading?r.createElement(r.Fragment,null):j(p.E.ViewMyFavouritesLanding)?r.createElement(R,null):r.createElement(v.M.Provider,{value:T},r.createElement("div",{className:"p-3"},r.createElement(c.p,{heading:o.T.getPhrase(Q,"header"),banner:{url:A.W.FAVOURITES_PLAYLIST.FAV_PLAYLIST_BANNER},bannerClassName:"".concat(G.banner," bg-pink"),imageCdnUrl:null===(t=Z.data)||void 0===t?void 0:t.imageCdnUrl,detailsComponent:function(){return r.createElement("div",{className:"mb-n1 font-size-normal fw-normal mt-1"},r.createElement(d.x,{namespace:Q,phrase:"videos",options:{smartCount:oe}}))}}),(null==re?void 0:re.length)&&r.createElement("div",{className:"border-bottom pb-3"},r.createElement(s.Oo,{breadcrumbs:re})),J?J.length?r.createElement("div",{className:"mt-2"},r.createElement(f.E4,{videos:J,getVideoAppLink:L.W.getAppLink,hasPermissions:D,presentationAudiences:ne.data,getPreviewQuestionsAppLink:function(e){return O.j.getPreviewQuestionsAppLink(e)},commonVideoProps:P}),(ee||te)&&r.createElement(u._,{isFetching:te,fetchNext:K})):r.createElement(B,null):r.createElement(m.S,null)))}},26323:(e,t,n)=>{n.d(t,{B:()=>l});var r=n(20354),a=n(63419);function o(e){return function(e){if(Array.isArray(e))return i(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return i(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)?i(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function l(e){var t,n,i,l,c,s,u,d,m,f=r.a.useBasicFetch(e&&a.P.getFavouritesVideosCount(e)),v=r.a.useBasicFetch(e&&a.P.getFavouritesClipsCount(e)),p=r.a.useBasicFetch(e&&a.P.getFavouritesInteractivesCount(e));return{count:(null===(t=f.data)||void 0===t?void 0:t.count)+(null===(n=p.data)||void 0===n?void 0:n.count)+(null===(i=v.data)||void 0===i?void 0:i.count),favourites:[].concat(o((null===(l=f.data)||void 0===l?void 0:l.data)||[]),o((null===(c=v.data)||void 0===c?void 0:c.data)||[]),o((null===(s=p.data)||void 0===s?void 0:s.data)||[])),isLoading:!(null===(u=f.data)||void 0===u?void 0:u.data)||!(null===(d=v.data)||void 0===d?void 0:d.data)||!(null===(m=p.data)||void 0===m?void 0:m.data)}}}}]);
|
|
2
|
+
//# sourceMappingURL=6909-7a8ac9f30a-lite.chunk.js.map
|