@clickview/lite 0.69.1-dev.0 → 0.69.1-dev.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bundles.json +1 -1
- package/dist/css/{9985-lite-3c49d1b796.chunk.css → 3902-lite-5eaa7e7ae0.chunk.css} +1 -2
- package/dist/css/{555-lite-1b5aa9652d.chunk.css → 4356-lite-b05b606d3d.chunk.css} +1 -2
- package/dist/css/{2636-lite-f995954232.chunk.css → 4527-lite-4d1b877b3f.chunk.css} +4 -0
- package/dist/css/{1239-lite-8152f713c8.chunk.css → 7210-lite-a568e8ec1e.chunk.css} +1 -0
- package/dist/languages/en.json +1 -1
- package/dist/scripts/1210-7afb28caac-lite.chunk.js +2 -0
- package/dist/scripts/1210-7afb28caac-lite.chunk.js.map +1 -0
- package/dist/scripts/1386-332e63f68c-lite.chunk.js +2 -0
- package/dist/scripts/1386-332e63f68c-lite.chunk.js.map +1 -0
- package/dist/scripts/232-1522c00252-lite.chunk.js +3 -0
- package/dist/scripts/232-1522c00252-lite.chunk.js.map +1 -0
- package/dist/scripts/2392-19e4bb187b-lite.chunk.js +3 -0
- package/dist/scripts/2392-19e4bb187b-lite.chunk.js.map +1 -0
- package/dist/scripts/{2640-536c550749-lite.chunk.js → 2640-052f4606f6-lite.chunk.js} +2 -2
- package/dist/scripts/2640-052f4606f6-lite.chunk.js.map +1 -0
- package/dist/scripts/300-3d9f3cd4e3-lite.chunk.js +2 -0
- package/dist/scripts/300-3d9f3cd4e3-lite.chunk.js.map +1 -0
- package/dist/scripts/3079-0a333d6805-lite.chunk.js +2 -0
- package/dist/scripts/3079-0a333d6805-lite.chunk.js.map +1 -0
- package/dist/scripts/3110-eee18143c6-lite.chunk.js +2 -0
- package/dist/scripts/3110-eee18143c6-lite.chunk.js.map +1 -0
- package/dist/scripts/312-693aa30814-lite.chunk.js +2 -0
- package/dist/scripts/312-693aa30814-lite.chunk.js.map +1 -0
- package/dist/scripts/3902-39aaff7ce9-lite.chunk.js +2 -0
- package/dist/scripts/3902-39aaff7ce9-lite.chunk.js.map +1 -0
- package/dist/scripts/4229-477b1858dc-lite.chunk.js +2 -0
- package/dist/scripts/4229-477b1858dc-lite.chunk.js.map +1 -0
- package/dist/scripts/4356-36ce3ceec1-lite.chunk.js +2 -0
- package/dist/scripts/4356-36ce3ceec1-lite.chunk.js.map +1 -0
- package/dist/scripts/4527-42075d96f4-lite.chunk.js +2 -0
- package/dist/scripts/4527-42075d96f4-lite.chunk.js.map +1 -0
- package/dist/scripts/{4845-f3646fb657-lite.chunk.js → 4845-9b4657e696-lite.chunk.js} +2 -2
- package/dist/scripts/4845-9b4657e696-lite.chunk.js.map +1 -0
- package/dist/scripts/5679-444d9a7f76-lite.chunk.js +2 -0
- package/dist/scripts/5679-444d9a7f76-lite.chunk.js.map +1 -0
- package/dist/scripts/6046-104677f08c-lite.chunk.js +2 -0
- package/dist/scripts/6046-104677f08c-lite.chunk.js.map +1 -0
- package/dist/scripts/{6188-e108abca25-lite.chunk.js → 6188-77fc2f3ec5-lite.chunk.js} +2 -2
- package/dist/scripts/6188-77fc2f3ec5-lite.chunk.js.map +1 -0
- package/dist/scripts/6351-dff9edbb16-lite.chunk.js +3 -0
- package/dist/scripts/6351-dff9edbb16-lite.chunk.js.map +1 -0
- package/dist/scripts/6973-c4cb114bd7-lite.chunk.js +2 -0
- package/dist/scripts/6973-c4cb114bd7-lite.chunk.js.map +1 -0
- package/dist/scripts/7210-2e4563178c-lite.chunk.js +3 -0
- package/dist/scripts/7210-2e4563178c-lite.chunk.js.map +1 -0
- package/dist/scripts/7480-3564c0c2da-lite.chunk.js +2 -0
- package/dist/scripts/7480-3564c0c2da-lite.chunk.js.map +1 -0
- package/dist/scripts/7482-13e6f78c32-lite.chunk.js +2 -0
- package/dist/scripts/7482-13e6f78c32-lite.chunk.js.map +1 -0
- package/dist/scripts/9040-be65e4eb1e-lite.chunk.js +2 -0
- package/dist/scripts/9040-be65e4eb1e-lite.chunk.js.map +1 -0
- package/dist/scripts/{bundle-90d3c7fd15.min.js → bundle-32e967af87.min.js} +3 -3
- package/dist/scripts/{bundle-90d3c7fd15.min.js.map → bundle-32e967af87.min.js.map} +1 -1
- package/package.json +1 -1
- package/dist/scripts/1210-3cbdc62b0a-lite.chunk.js +0 -2
- package/dist/scripts/1210-3cbdc62b0a-lite.chunk.js.map +0 -1
- package/dist/scripts/1239-ed9b8aadb4-lite.chunk.js +0 -3
- package/dist/scripts/1239-ed9b8aadb4-lite.chunk.js.map +0 -1
- package/dist/scripts/1386-d93ee75e0c-lite.chunk.js +0 -2
- package/dist/scripts/1386-d93ee75e0c-lite.chunk.js.map +0 -1
- package/dist/scripts/2392-acfd69dfa3-lite.chunk.js +0 -3
- package/dist/scripts/2392-acfd69dfa3-lite.chunk.js.map +0 -1
- package/dist/scripts/2636-63e5f2c9e6-lite.chunk.js +0 -2
- package/dist/scripts/2636-63e5f2c9e6-lite.chunk.js.map +0 -1
- package/dist/scripts/2640-536c550749-lite.chunk.js.map +0 -1
- package/dist/scripts/3036-d18c598435-lite.chunk.js +0 -2
- package/dist/scripts/3036-d18c598435-lite.chunk.js.map +0 -1
- package/dist/scripts/4229-75ba28a266-lite.chunk.js +0 -2
- package/dist/scripts/4229-75ba28a266-lite.chunk.js.map +0 -1
- package/dist/scripts/4266-e856b96643-lite.chunk.js +0 -3
- package/dist/scripts/4266-e856b96643-lite.chunk.js.map +0 -1
- package/dist/scripts/4598-f326dc1aec-lite.chunk.js +0 -2
- package/dist/scripts/4598-f326dc1aec-lite.chunk.js.map +0 -1
- package/dist/scripts/4845-f3646fb657-lite.chunk.js.map +0 -1
- package/dist/scripts/555-d811b49435-lite.chunk.js +0 -2
- package/dist/scripts/555-d811b49435-lite.chunk.js.map +0 -1
- package/dist/scripts/6046-44c115a89c-lite.chunk.js +0 -2
- package/dist/scripts/6046-44c115a89c-lite.chunk.js.map +0 -1
- package/dist/scripts/6188-e108abca25-lite.chunk.js.map +0 -1
- package/dist/scripts/6317-49be898c73-lite.chunk.js +0 -2
- package/dist/scripts/6317-49be898c73-lite.chunk.js.map +0 -1
- package/dist/scripts/6973-ede6601614-lite.chunk.js +0 -2
- package/dist/scripts/6973-ede6601614-lite.chunk.js.map +0 -1
- package/dist/scripts/7075-9a76ce47c9-lite.chunk.js +0 -3
- package/dist/scripts/7075-9a76ce47c9-lite.chunk.js.map +0 -1
- package/dist/scripts/7480-02bc4e08a3-lite.chunk.js +0 -2
- package/dist/scripts/7480-02bc4e08a3-lite.chunk.js.map +0 -1
- package/dist/scripts/9040-9393c59004-lite.chunk.js +0 -2
- package/dist/scripts/9040-9393c59004-lite.chunk.js.map +0 -1
- package/dist/scripts/9985-c488ab5f65-lite.chunk.js +0 -2
- package/dist/scripts/9985-c488ab5f65-lite.chunk.js.map +0 -1
- /package/dist/css/{3036-lite-1b3e9aa905.chunk.css → 3079-lite-1b3e9aa905.chunk.css} +0 -0
- /package/dist/css/{7075-lite-a377febbb0.chunk.css → 6351-lite-a377febbb0.chunk.css} +0 -0
- /package/dist/scripts/{4266-e856b96643-lite.chunk.js.LICENSE.txt → 232-1522c00252-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{1239-ed9b8aadb4-lite.chunk.js.LICENSE.txt → 2392-19e4bb187b-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{2392-acfd69dfa3-lite.chunk.js.LICENSE.txt → 6351-dff9edbb16-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{7075-9a76ce47c9-lite.chunk.js.LICENSE.txt → 7210-2e4563178c-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{bundle-90d3c7fd15.min.js.LICENSE.txt → bundle-32e967af87.min.js.LICENSE.txt} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scripts/1386-d93ee75e0c-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/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/projects/lite/src/apps/share-v2/utils/ShareLinkHelper.ts","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-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/empty-state/MySharesTableEmptyState.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/components/shared-to-pill/SharedToPill.tsx","file:///app/packages/projects/lite/src/apps/my-shares/hooks/useMySharesTable.ts","file:///app/packages/projects/lite/src/apps/my-shares/views/my-shares/MySharesViewUtils.ts","file:///app/packages/projects/lite/src/apps/share-v2/enums/SharePrivacy.ts","file:///app/packages/projects/lite/src/apps/share-v2/enums/ShareType.ts","file:///app/packages/projects/lite/src/apps/share-v2/flight-requests/ShareRequests.ts","file:///app/packages/projects/lite/src/apps/share-v2/utils/ShareHelper.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 success,\n error,\n always\n };\n },\n \n /**\n * As the response from `interactiveResultSet` isn't normalised, we need to invalidate the cache\n * to update the results data.\n */\n mark(\n interactiveId: string,\n interactiveMetadataId: string,\n answerId: string,\n data: MarkInteractiveAnswer,\n success?: () => void,\n error?: (data: any) => void,\n always?: () => void\n ): Flight.Request {\n return {\n url: `/api/domain/v1/analytics/answers/${answerId}`,\n key: `mark:answer:${answerId}:${data.resultId}`,\n type: HttpVerbs.PUT,\n data,\n normalize: false,\n invalidationKeys: `interactive:result:set:${interactiveId}:${interactiveMetadataId}`,\n success,\n error,\n always\n };\n },\n\n pendingReviews(data: InteractivesPendingReviewsRequest): Flight.Request {\n return {\n url: `/api/domain/v1/analytics/interactives/pending-reviews/summary`,\n key: `interactives:pending:reviews`,\n type: HttpVerbs.POST,\n data\n };\n },\n\n interactiveResultsReport(data: InteractiveResultsReport): Flight.Request {\n return {\n url: '{gateway}/v2/analytics/interactives/report',\n key: 'interactive:results:report',\n data,\n type: HttpVerbs.POST,\n normalize: false\n };\n }\n};","// 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 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 getKey = _getKey || ((obj: any) => {\n if (typeof obj === 'object')\n return obj.id;\n\n return obj;\n });\n\n const fetchedItems = React.useRef<Set<string>>(new Set<string>());\n\n const [ requests, setRequests ] = React.useState<Flight.Request[]>([]);\n\n React.useEffect(() => {\n if (!objs?.length)\n return;\n\n const unfetchedItems: T[] = [];\n \n objs.forEach(obj => {\n const key = getKey(obj);\n\n if (fetchedItems.current.has(key))\n return;\n\n unfetchedItems.push(obj);\n fetchedItems.current.add(key);\n });\n \n if (!unfetchedItems.length)\n return;\n\n setRequests(r => ([ ...r, ...ArrayHelper.chunk<T>(unfetchedItems, CHUNK_SIZE).map(getRequest) ]));\n }, [objs?.length]);\n\n const responses = Flight.useBasicFetchAll<T[]>(requests);\n\n const itemsArr = ArrayHelper.flatten(responses.data);\n const items = responses.data.length\n ? itemsArr.reduce((acc, item) => ({ ...acc, [getKey(item)]: item }), {})\n : null;\n\n return {\n hasFirstRequestCompleted: !!responses.responses?.[0]?.hasCompleted,\n itemsArr,\n items,\n isFetching: responses.isFetching\n };\n}","import { 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 { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\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\nimport { SharePrivacy } from '../enums/SharePrivacy';\n\nconst namespace = 'share.shareLinkInfo';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface GetIconAndTextOptions {\n linkExpireDate: string;\n isPasswordProtected: boolean;\n privacy: SharePrivacy;\n status: ShareLinkStatus;\n entityTypeId: MasterType;\n hasStudentExp: boolean;\n entity: BaseObject;\n yearGroups: YearGroup[];\n}\n\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) {\n case SharePrivacy.Public:\n return { icon: cvSvgLibrary.VisibleOn, text: getPhrase('publicDescription') };\n case SharePrivacy.ProtectedOverrideRestriction:\n return { icon: cvSvgLibrary.VisibleOn, text: getPhrase('clickViewOnly') };\n case SharePrivacy.Protected:\n return {\n icon: cvSvgLibrary.Lock,\n text: ShareLinkHelper.getRespectRatingText(entity, yearGroups, hasStudentExp)\n };\n case SharePrivacy.JustMySchoolOverrideRestriction:\n return { icon: cvSvgLibrary.Lock, text: getPhrase(hasStudentExp ? 'justMySchoolTeachers' : 'justMySchoolDescription') };\n case SharePrivacy.JustMySchool:\n return {\n icon: cvSvgLibrary.Lock,\n text: ShareLinkHelper.getRespectRatingText(entity, yearGroups, hasStudentExp)\n };\n case SharePrivacy.PinCode:\n case SharePrivacy.PasswordProtected:\n return { icon: cvSvgLibrary.Lock, text: getPhrase('privateDescription') };\n default:\n return {};\n }\n },\n\n getIconAndText: (options: GetIconAndTextOptions) => {\n const { linkExpireDate, isPasswordProtected, status } = options;\n if (!linkExpireDate && !isPasswordProtected)\n return ShareLinkHelper.getPrivateIconAndText(options);\n \n if (!linkExpireDate)\n return { icon: cvSvgLibrary.Lock, text: getPhrase('password') };\n \n const isToday = DateHelper.isToday(linkExpireDate);\n const dayDifference = DateHelper.diffBetween(linkExpireDate, new Date(), 'day');\n \n if (!isPasswordProtected) {\n let text = isToday\n ? getPhrase('expiryToday')\n : getPhrase('expiry', { days: dayDifference });\n \n if (status === ShareLinkStatus.Expired)\n text = getPhrase('expired');\n \n return { icon: cvSvgLibrary.Timer, text };\n }\n \n let text = isToday\n ? getPhrase('passwordExpiryToday')\n : getPhrase('passwordExpiry', { days: dayDifference });\n \n if (status === ShareLinkStatus.Expired)\n text = getPhrase('passwordExpired');\n \n return { icon: cvSvgLibrary.Lock, text };\n },\n\n getRespectRatingText(video: BaseObject, yearGroups: YearGroup[], hasStudentExp: boolean) {\n if (!video || !yearGroups)\n return null;\n \n if (hasStudentExp)\n return getPhrase('justMySchoolTeachers');\n \n if (!VideoHelper.isVideoType(video))\n return getPhrase('collectionRating');\n \n const restriction = RestrictionHelper.getWeightedRestriction(video._restrictions?.value);\n \n /**\n * Restrictions without a year level are teacher restricitons, which means only admins can see it.\n */\n if (restriction && !restriction.yearGroup)\n return getPhrase('onlyAdmins');\n \n const rating = VideoHelper.getRating(video);\n \n let maxYearGroup: YearGroup;\n let minAllowedYearGroup: YearGroup;\n \n for (const yearGroup of yearGroups) {\n /**\n * If our year level is our new highest so far, save it\n */\n if (!maxYearGroup || yearGroup.value > maxYearGroup.value)\n maxYearGroup = yearGroup;\n \n /**\n * If the restriction is higher than this year level, skip it.\n */\n if (restriction && yearGroup.value <= restriction.yearGroup)\n continue;\n \n /**\n * If therating is higher than this year level's rating value, skip it.\n */\n if (rating && yearGroup.rating.value < rating.value)\n continue;\n \n /**\n * If our year level is the new lowest so far, save it\n */\n if (!minAllowedYearGroup || yearGroup.value < minAllowedYearGroup.value)\n minAllowedYearGroup = yearGroup;\n }\n \n /**\n * If no year levels are allowed, then it's staff only.\n */\n if (!minAllowedYearGroup)\n return getPhrase('onlyStaff');\n \n \n /**\n * If there's only one year level, and it's allowed, then we can just\n * say that everyone in your school can access it.\n */\n if (yearGroups.length === 1)\n return getPhrase('clickViewOnly');\n \n /**\n * We differentiate the copy if it's the highest year level or not. \n * Basically if we need to say \"X and above\" or not.\n */\n if (minAllowedYearGroup.value === maxYearGroup.value)\n return getPhrase('maxYearGroup', { yearGroup: maxYearGroup.name });\n \n return getPhrase('yearGroupRange', { yearGroup: minAllowedYearGroup.name });\n }\n};","// 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 { AppLinkHelper } from 'libs/common/backbone/core';\nimport { Core } from 'libs/common/backbone/index';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { SharedObjectImage } from 'libs/shared/apps/share/components/shared-object-image/SharedObjectImage';\nimport { SharableEntity } from 'libs/shared/apps/share/views/share/ShareViewHelper';\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\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 { ShareLinkStatus } from 'libs/shared/enums/ShareLinkStatus';\nimport { Breakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { BaseObject, YearGroup } from 'libs/shared/interfaces';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { MySharesTableData } from 'apps/my-shares/components/my-shares-table/MySharesTableUtils';\nimport { SharedToPill } from 'apps/my-shares/components/shared-to-pill/SharedToPill';\nimport { SharePrivacy } from 'apps/share-v2/enums/SharePrivacy';\nimport { ShareType } from 'apps/share-v2/enums/ShareType';\nimport { ShareLinkHelper } from 'apps/share-v2/utils/ShareLinkHelper';\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 {sharedObject.name}\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, shareId: string) => 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.Link &&\n ShareLinkHelper.getIconAndText({\n entity: sharedObject,\n entityTypeId: sharedObject.typeId,\n hasStudentExp: false,\n isPasswordProtected: shareData.privacy === SharePrivacy.PasswordProtected,\n linkExpireDate: '', // TODO: Share V2 - fix hardcoded value\n privacy: shareData.privacy,\n status: ShareLinkStatus.Active, // TODO: Share V2 - fix hardcoded value\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 function onRowClick() {\n const [goToReport] = props.getObjectActions(sharedObject, shareData.share.shareId);\n\n AppLinkHelper.trigger(goToReport.appLink);\n }\n\n return (\n <div key={shareData.share.shareId} onClick={onRowClick} 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 <p onClick={onRowClick} className='cursor-pointer p-0 m-0 text-info'>View report</p>\n </div>\n );\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 { 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 { InteractiveMetadata } from 'libs/shared/interfaces';\n\nimport { SharePrivacy } from 'apps/share-v2/enums/SharePrivacy';\nimport { ShareType } from 'apps/share-v2/enums/ShareType';\nimport { ShareLink } from 'apps/share-v2/interfaces/ShareLink';\n\nconst namespace = 'myShares.mySharesTable';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nfunction getDateShared(share: ShareLink): string {\n if (share.type === ShareType.Link || !share?.recipients?.length)\n return share.dateCreated;\n\n const datesShared = share.recipients.map(r => r.dateCreated);\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: ShareLink;\n sharedObject: SharableEntity;\n dateShared: string;\n shareRecipients?: SharableRecipient[];\n viewCount: number;\n pendingReview?: number;\n privacy?: SharePrivacy;\n}\n\ntype TableDataGroupings = { [date: string]: MySharesTableData[] };\n\nexport function useGetMySharesData(\n sentShares: ShareLink[],\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.Classroom) {\n recipients = [];\n\n s.recipients?.forEach(r => {\n const recipient = shareRecipients?.[r.recipientId];\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 privacy: s.privacy\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, 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';\nimport { ShareLink } from 'apps/share-v2/interfaces/ShareLink';\n\ninterface MySharesTableProps {\n sentShares: ShareLink[];\n sharedObjects: Record<string, SharableEntity>;\n shareRecipients: Record<string, SharableRecipient>;\n interactivesPendingReview: InteractivesPendingReviews[];\n getObjectAppLink: (object: BaseObject) => Core.AppLink;\n getObjectActions: (object: BaseObject, shareId: string) => 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.shareId}\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}","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}","// 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 { AnonymousSharedToAvatar, SharedLinkAvatar, SharedToAvatarList } from 'libs/shared/apps/share/components/shared-to-avatar-list/SharedToAvatarList';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { BaseObject } from 'libs/shared/interfaces';\n\nconst namespace = 'myShares.sharedToPill';\n\ninterface SharedToPillProps {\n shareRecipients: BaseObject[];\n hasShareLink?: boolean;\n maxAvatars?: number;\n imageCdnUrl: string;\n shareLinkText?: string;\n}\n\nSharedToPill.defaultProps = {\n maxAvatars: 3\n};\n\nexport function SharedToPill(props: SharedToPillProps) {\n const { shareRecipients } = props;\n\n return (\n <div className='d-flex align-items-center bg-gray-100 rounded-pill w-fit gap-2 p-2'>\n <span className='text-nowrap'><Text namespace={namespace} phrase={!shareRecipients ? 'sharedVia' : 'sharedTo'} /></span>\n\n {!shareRecipients &&\n <SharedLinkAvatar text={props.shareLinkText} avatarSize='sm' className='bg-dark text-white' />\n }\n\n {shareRecipients && !shareRecipients?.length &&\n <AnonymousSharedToAvatar avatarSize='sm' />\n }\n\n {shareRecipients &&\n <SharedToAvatarList\n recipients={shareRecipients}\n imageCdnUrl={props.imageCdnUrl}\n maxAvatars={props.maxAvatars}\n avatarSize='sm'\n hasShareLink={props.hasShareLink}\n shareLinkText={props.shareLinkText}\n />\n }\n </div>\n );\n}","import { Flight } from 'libs/common/react/index';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\nimport { InteractiveResultsRequests } from 'libs/shared/apps/analytics/flight-requests/InteractiveResultsRequests';\nimport { ShareRequests as ShareRequestsV1 } from 'libs/shared/apps/share/flight-requests/ShareRequests';\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, YearGroup } from 'libs/shared/interfaces';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { ClassroomRequests } from 'apps/classrooms/flight-requests/ClassroomRequests';\nimport { GetSentSharesParams, ShareRequests as ShareRequestsV2 } from 'apps/share-v2/flight-requests/ShareRequests';\nimport { ShareLink } from 'apps/share-v2/interfaces/ShareLink';\nimport { ShareHelper } from 'apps/share-v2/utils/ShareHelper';\n\nexport function getBatchFetchResultAsArray(result: UseBatchFetchResult<BaseObject>): BaseObject[] {\n return result.items ? Object.values(result.items) : [];\n}\n\nexport function useMySharesTable(\n params?: GetSentSharesParams,\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 && ShareRequestsV2.getSentShares({\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<ShareLink>(getRequest, fetchNext);\n\n /**\n * Fetch shared objects\n */\n const sharedObjects = useGrowingBatchFetch(\n sentShares?.map(obj => obj.objectId.toString()),\n ShareRequestsV1.sharedObjectsById\n );\n\n /**\n * Fetch recipients\n */\n const shareRecipients = useGrowingBatchFetch(\n ShareHelper.getFlattenedRecipients(sentShares ?? []).map(obj => obj.recipientId.toString()),\n objs => (ShareRequestsV1.getRecipientsById(objs, currentUser.data.customerId))\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 /**\n * Fetch classrooms\n */\n const shareClassrooms = useGrowingBatchFetch(\n ShareHelper.getClassoomIds(sentShares ?? []),\n objs => (ClassroomRequests.getClassroomsByIds(objs))\n );\n \n const isFetching = isFetchingSentShares\n || sharedObjects.isFetching\n || shareRecipients.isFetching\n || interactivesPendingReview.isFetching\n || yearGroups.isFetching;\n\n const showPartialLoading = !hasFirstPageCompleted || !sharedObjects.hasFirstRequestCompleted;\n\n return {\n sentShares,\n sharedObjects,\n shareRecipients,\n shareClassrooms,\n yearGroups: yearGroups.data,\n interactivesPendingReview,\n isFetching,\n showPartialLoading,\n nextCursor,\n hasMore,\n fetchNext,\n imageCdnUrl: config.data?.imageCdnUrl\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 shareId: string,\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\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, shareId } },\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}","export enum SharePrivacy {\n Public = 'Public',\n PinCode = 'PinCode',\n PasswordProtected = 'PasswordProtected',\n ProtectedOverrideRestriction = 'ProtectedOverrideRestriction',\n JustMySchoolOverrideRestriction = 'JustMySchoolOverrideRestriction',\n Protected = 'Protected',\n JustMySchool = 'JustMySchool',\n Direct = 'Direct'\n}","export enum ShareType {\n Link = 'Link',\n Classroom = 'Classroom',\n Open = 'Open',\n Live = 'Live'\n}","import { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/flight';\n\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { BasePaginatedCollection } from 'libs/shared/interfaces';\n\nimport { CreateShareLinkRequest } from 'apps/share-v2/interfaces/CreateShareLinkRequest';\nimport { ShareLink } from 'apps/share-v2/interfaces/ShareLink';\n\nconst normalizeOptions: Flight.NormalizeOptions = {\n namespace: 'share-v2'\n};\n\nexport interface GetSentSharesParams {\n cursor?: string;\n limit?: number;\n objectTypeId?: MasterType | MasterType[];\n recipientUserId?: string | string[];\n recipientGroupId?: string | string[];\n start?: string;\n end?: string;\n scopeId?: string;\n}\n\nexport const ShareRequests = {\n createShareLink(\n data: CreateShareLinkRequest,\n success?: (shareLink: ShareLink) => void,\n error?: () => void,\n always?: () => void\n ): Flight.Request {\n return {\n url: '/api/share/v2/shares',\n key: 'create:share-v2:link',\n type: HttpVerbs.POST,\n data,\n normalizeOptions,\n invalidationKeys: [\n `share:link:object:${data.objectId}`,\n `privacy:${data.objectId}`,\n 'sent:shares',\n 'get:share-v2:shares:object'\n ],\n success,\n error,\n always\n };\n },\n\n getShareLink(\n shareId: string,\n success?: (shareLink: ShareLink) => void,\n error?: () => void,\n always?: () => void\n ): Flight.Request {\n return {\n url: `/api/share/v2/shares/${shareId}`,\n key: `get:share-v2:link:${shareId}`,\n type: HttpVerbs.GET,\n normalizeOptions,\n success,\n error,\n always\n };\n },\n\n getSharesByObjectId(\n objectId: string | number,\n success?: (shares: ShareLink[]) => void,\n error?: () => void,\n always?: () => void\n ): Flight.Request {\n return {\n url: `/api/share/v2/shares/objects/${objectId}`,\n key: `get:share-v2:shares:object:${objectId}`,\n type: HttpVerbs.GET,\n normalizeOptions,\n success,\n error,\n always\n };\n },\n\n getSentShares(\n params: GetSentSharesParams = {},\n success?: (response: BasePaginatedCollection<ShareLink>[]) => void,\n error?: () => void,\n always?: () => void\n ): Flight.Request {\n const adaptedParams = {\n scopeId: params.scopeId,\n limit: params.limit || 25,\n offset: parseInt(params.cursor) || 0\n };\n\n const key = Object.values(adaptedParams).join(':');\n\n return {\n url: UrlHelper.urlBuilder('/api/share/v2/shares/sent', adaptedParams),\n key: `sent:shares-v2:${key}`,\n formatData: (response: ShareLink[]) => {\n return {\n data: response,\n count: response.length,\n pagination: {\n cursors: {\n next: adaptedParams.offset + response.length\n }\n }\n };\n },\n type: HttpVerbs.GET,\n normalize: false,\n success,\n error,\n always\n };\n },\n\n createPincode(shareId: string): Flight.Request {\n return {\n url: `/api/share/v2/shares/${shareId}/pincode`,\n key: 'create:share-v2:pincode',\n type: HttpVerbs.POST\n };\n },\n\n getPincode(code: string): Flight.Request {\n return {\n url: `/api/share/v2/shares/pincode?code=${code}`,\n key: `get:share-v2:pincode:${code}`\n };\n },\n\n getPincodeByShareId(shareId: string): Flight.Request {\n return {\n url: `/api/share/v2/shares/${shareId}/pincode`,\n key: `get:share-v2:${shareId}:pincode`\n };\n }\n};","import { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { Classroom } from 'libs/shared/interfaces';\n\nimport { ShareLink, ShareRecipient } from '../interfaces/ShareLink';\n\nexport const ShareHelper = {\n getFlattenedRecipients(shares: ShareLink[]): ShareRecipient[] {\n return ArrayHelper.flatten(shares.map(s => s.recipients ?? []));\n },\n\n getClassoomIds(shares: ShareLink[]): string[] {\n const recipients = ShareHelper.getFlattenedRecipients(shares);\n\n const classroomIds = recipients.map(r => {\n if (r.scopeId)\n return r.scopeId.toString();\n\n if (r.recipientId && r.recipientTypeId === MasterType.Classroom)\n return r.recipientId.toString();\n });\n\n return ArrayHelper.uniq(classroomIds.filter(x => !!x));\n },\n\n getClassroomIdFromShare(share: ShareLink): string | undefined {\n const firstRecipient = share.recipients?.[0];\n \n if (!firstRecipient) return;\n \n if (firstRecipient.scopeId)\n return firstRecipient.scopeId.toString();\n \n if (firstRecipient.recipientId && firstRecipient.recipientTypeId === MasterType.Classroom)\n return firstRecipient.recipientId.toString();\n },\n \n getClassroomForShare(share: ShareLink, classrooms: Classroom[]): Classroom | undefined {\n const classroomId = ShareHelper.getClassroomIdFromShare(share);\n \n if (!classroomId) return;\n \n return classrooms.find(classroom => classroom.id.toString() === classroomId.toString());\n }\n};"],"names":["getInteractiveResultFilters","currentUser","filter","currentUserId","id","currentCustomerId","customerId","dateRange","start","end","userIds","userId","classroomsAndGroups","groupId","InteractiveResultsRequests","interactiveResultSet","interactiveId","interactiveMetadataId","includePublicResults","success","error","always","url","key","data","type","normalize","mark","answerId","resultId","invalidationKeys","pendingReviews","interactiveResultsReport","getPhrase","LanguageService","getHiddenRecipientText","hiddenRecipients","counts","ArrayHelper","userCount","MasterType","classroomCount","groupCount","SharedToAvatar","props","user","item","typeId","classroom","classroomGroup","svgContainerClassName","Tooltip","title","name","surname","spanHack","spanHackClassName","Avatar","imageUrl","avatar","imageCdnUrl","initials","UserHelper","extraClasses","className","IconCircle","svgName","svgSize","SvgContainer","S","variant","metadata","colour","AnonymousSharedToAvatar","avatarSize","size","SharedLinkAvatar","text","SharedToAvatarList","AvatarList","items","recipients","avatarItem","avatarContainerClassname","getHiddenTooltip","hasShareLink","shareLinkText","defaultProps","maxAvatars","itemsToDisplay","length","slice","hiddenItems","AvatarItem","hiddenItemsCounts","translateX","getAvatarStyles","idx","transform","zIndex","style","marginRight","map","index","roleToDisplay","count","smartCount","numberClassname","CHUNK_SIZE","useBatchFetch","itemIds","getRequest","requests","chunk","responses","itemsArr","reduce","acc","isFetching","useGrowingBatchFetch","objs","_getKey","getKey","obj","fetchedItems","Set","setRequests","unfetchedItems","forEach","current","has","push","add","r","hasFirstRequestCompleted","hasCompleted","getAnalyticsRequestKey","baseKey","sharerId","userIdKey","Array","isArray","sort","join","groupIdKey","ShareLinkHelper","getPrivateIconAndText","options","entityTypeId","privacy","hasStudentExp","entity","yearGroups","icon","SharePrivacy","getRespectRatingText","getIconAndText","linkExpireDate","isPasswordProtected","status","isToday","DateHelper","dayDifference","Date","days","ShareLinkStatus","video","VideoHelper","restriction","RestrictionHelper","_restrictions","value","yearGroup","maxYearGroup","minAllowedYearGroup","rating","MySharesTableHeading","heading","isFirst","Text","namespace","phrase","ShareObjectTitle","sharedObject","canNavigate","subTextPhrase","getSubTextPhrase","VideoSubText","analyticsOptions","location","TitleSubText","requireMarking","MySharesTableRow","shareData","share","ShareType","isMobile","breakpoints","xs","sm","isDesktop","xl","xxl","isCollection","onRowClick","goToReport","getObjectActions","shareId","appLink","onClick","SharedObjectImage","object","showVideoMetadata","locationContext","imageOptions","pendingReview","showCollectionMask","showVideoCount","children","SharedToPill","shareRecipients","dateShared","viewCount","getDateShared","dateCreated","datesShared","date1","date2","MySharesTable","sentShares","sharedObjects","groupByDate","interactivesPendingReviews","tableData","interactivesPendingReviewsMap","groupByDateShared","interactivesPendingReview","s","objectId","recipient","recipientId","pendingReviewCount","ShareHelper","Object","keys","i","hasDemoInsights","getObjectAppLink","MySharesTableEmptyState","src","application","action","PartialRow","PartialMySharesTable","useMySharesTable","params","interactiveInsights","shouldFetch","fetch","config","isAuthenticated","cursor","fetchNext","hasMore","isFetchingSentShares","nextCursor","hasFirstPageCompleted","toString","I","interactives","metadataId","filters","shareClassrooms","showPartialLoading","getShareObjectActions","audienceParams","hasInsights","isPlugin","insightObjectActions","buttonProps","button","canConsume","label","args","entityType","actionType","descriptor","workflowPhase","eventVersion","md","tooltip","group","getSharesParams","typeIdAppLinkParams","getTypeIdParams","audienceAppLinkParams","currentAppLink","sentSharesParams","recipientUserId","users","recipientGroupId","classroomGroups","classrooms","objectTypeId","undefined","normalizeOptions","ShareRequests","createShareLink","getShareLink","getSharesByObjectId","getSentShares","adaptedParams","scopeId","limit","offset","parseInt","values","formatData","response","pagination","cursors","next","createPincode","getPincode","code","getPincodeByShareId","getFlattenedRecipients","shares","getClassoomIds","classroomIds","recipientTypeId","x","getClassroomIdFromShare","firstRecipient","getClassroomForShare","classroomId","find"],"sourceRoot":""}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
/*! For license information please see 2392-acfd69dfa3-lite.chunk.js.LICENSE.txt */
|
|
2
|
-
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[2392],{58518:(e,t,r)=>{r.d(t,{k:()=>i});var n=r(32735),o=r(83523);function i(e){return n.createElement("div",{className:"d-flex justify-content-between align-items-start"},n.createElement("div",null,n.createElement("label",{className:"m-0",htmlFor:""},e.title),n.createElement("p",{className:"m-0 text-secondary"},e.description)),n.createElement("div",null,n.createElement(o.Z,{onClick:e.onClick,on:e.toggled})))}},42272:(e,t,r)=>{var n;r.d(t,{e:()=>n}),function(e){e.Public="Public",e.PinCode="PinCode",e.PasswordProtected="PasswordProtected",e.ProtectedOverrideRestriction="ProtectedOverrideRestriction",e.JustMySchoolOverrideRestriction="JustMySchoolOverrideRestriction",e.Protected="Protected",e.JustMySchool="JustMySchool",e.Direct="Direct"}(n||(n={}))},93975:(e,t,r)=>{var n;r.d(t,{y:()=>n}),function(e){e.Link="Link",e.Classroom="Classroom",e.Open="Open",e.Live="Live"}(n||(n={}))},91574:(e,t,r)=>{r.d(t,{o:()=>a});var n=r(99940),o=r(97395),i={namespace:"share-v2"},a={createShareLink:function(e,t,r,o){return{url:"/api/share/v2/shares",key:"create:share-v2:link",type:n.k.POST,data:e,normalizeOptions:i,invalidationKeys:["share:link:object:".concat(e.objectId),"privacy:".concat(e.objectId),"sent:shares","get:share-v2:shares:object"],success:t,error:r,always:o}},getShareLink:function(e,t,r,o){return{url:"/api/share/v2/shares/".concat(e),key:"get:share-v2:link:".concat(e),type:n.k.GET,normalizeOptions:i,success:t,error:r,always:o}},getSharesByObjectId:function(e,t,r,o){return{url:"/api/share/v2/shares/objects/".concat(e),key:"get:share-v2:shares:object:".concat(e),type:n.k.GET,normalizeOptions:i,success:t,error:r,always:o}},getSentShares:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0,r=arguments.length>2?arguments[2]:void 0,i=arguments.length>3?arguments[3]:void 0,a={scopeId:e.scopeId,limit:e.limit||25,offset:parseInt(e.cursor)||0},c=Object.values(a).join(":");return{url:o._.urlBuilder("/api/share/v2/shares/sent",a),key:"sent:shares-v2:".concat(c),formatData:function(e){return{data:e,count:e.length,pagination:{cursors:{next:a.offset+e.length}}}},type:n.k.GET,normalize:!1,success:t,error:r,always:i}},createPincode:function(e){return{url:"/api/share/v2/shares/".concat(e,"/pincode"),key:"create:share-v2:pincode",type:n.k.POST}},getPincode:function(e){return{url:"/api/share/v2/shares/pincode?code=".concat(e),key:"get:share-v2:pincode:".concat(e)}},getPincodeByShareId:function(e){return{url:"/api/share/v2/shares/".concat(e,"/pincode"),key:"get:share-v2:".concat(e,":pincode")}}}},93779:(e,t,r)=>{r.d(t,{t:()=>f});var n=r(20354),o=r(30439),i=r(42272),a=r(93975),c=r(91574);function s(e){return s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},s(e)}function u(){u=function(){return t};var e,t={},r=Object.prototype,n=r.hasOwnProperty,o=Object.defineProperty||function(e,t,r){e[t]=r.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",c=i.asyncIterator||"@@asyncIterator",l=i.toStringTag||"@@toStringTag";function f(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{f({},"")}catch(e){f=function(e,t,r){return e[t]=r}}function h(e,t,r,n){var i=t&&t.prototype instanceof b?t:b,a=Object.create(i.prototype),c=new T(n||[]);return o(a,"_invoke",{value:P(e,r,c)}),a}function p(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}t.wrap=h;var d="suspendedStart",v="suspendedYield",y="executing",g="completed",m={};function b(){}function w(){}function k(){}var E={};f(E,a,(function(){return this}));var S=Object.getPrototypeOf,x=S&&S(S(A([])));x&&x!==r&&n.call(x,a)&&(E=x);var L=k.prototype=b.prototype=Object.create(E);function O(e){["next","throw","return"].forEach((function(t){f(e,t,(function(e){return this._invoke(t,e)}))}))}function I(e,t){function r(o,i,a,c){var u=p(e[o],e,i);if("throw"!==u.type){var l=u.arg,f=l.value;return f&&"object"==s(f)&&n.call(f,"__await")?t.resolve(f.__await).then((function(e){r("next",e,a,c)}),(function(e){r("throw",e,a,c)})):t.resolve(f).then((function(e){l.value=e,a(l)}),(function(e){return r("throw",e,a,c)}))}c(u.arg)}var i;o(this,"_invoke",{value:function(e,n){function o(){return new t((function(t,o){r(e,n,t,o)}))}return i=i?i.then(o,o):o()}})}function P(t,r,n){var o=d;return function(i,a){if(o===y)throw Error("Generator is already running");if(o===g){if("throw"===i)throw a;return{value:e,done:!0}}for(n.method=i,n.arg=a;;){var c=n.delegate;if(c){var s=j(c,n);if(s){if(s===m)continue;return s}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===d)throw o=g,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=y;var u=p(t,r,n);if("normal"===u.type){if(o=n.done?g:v,u.arg===m)continue;return{value:u.arg,done:n.done}}"throw"===u.type&&(o=g,n.method="throw",n.arg=u.arg)}}}function j(t,r){var n=r.method,o=t.iterator[n];if(o===e)return r.delegate=null,"throw"===n&&t.iterator.return&&(r.method="return",r.arg=e,j(t,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),m;var i=p(o,t.iterator,r.arg);if("throw"===i.type)return r.method="throw",r.arg=i.arg,r.delegate=null,m;var a=i.arg;return a?a.done?(r[t.resultName]=a.value,r.next=t.nextLoc,"return"!==r.method&&(r.method="next",r.arg=e),r.delegate=null,m):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,m)}function N(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function _(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function T(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(N,this),this.reset(!0)}function A(t){if(t||""===t){var r=t[a];if(r)return r.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var o=-1,i=function r(){for(;++o<t.length;)if(n.call(t,o))return r.value=t[o],r.done=!1,r;return r.value=e,r.done=!0,r};return i.next=i}}throw new TypeError(s(t)+" is not iterable")}return w.prototype=k,o(L,"constructor",{value:k,configurable:!0}),o(k,"constructor",{value:w,configurable:!0}),w.displayName=f(k,l,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===w||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,k):(e.__proto__=k,f(e,l,"GeneratorFunction")),e.prototype=Object.create(L),e},t.awrap=function(e){return{__await:e}},O(I.prototype),f(I.prototype,c,(function(){return this})),t.AsyncIterator=I,t.async=function(e,r,n,o,i){void 0===i&&(i=Promise);var a=new I(h(e,r,n,o),i);return t.isGeneratorFunction(r)?a:a.next().then((function(e){return e.done?e.value:a.next()}))},O(L),f(L,l,"Generator"),f(L,a,(function(){return this})),f(L,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),r=[];for(var n in t)r.push(n);return r.reverse(),function e(){for(;r.length;){var n=r.pop();if(n in t)return e.value=n,e.done=!1,e}return e.done=!0,e}},t.values=A,T.prototype={constructor:T,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(_),!t)for(var r in this)"t"===r.charAt(0)&&n.call(this,r)&&!isNaN(+r.slice(1))&&(this[r]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var r=this;function o(n,o){return c.type="throw",c.arg=t,r.next=n,o&&(r.method="next",r.arg=e),!!o}for(var i=this.tryEntries.length-1;i>=0;--i){var a=this.tryEntries[i],c=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var s=n.call(a,"catchLoc"),u=n.call(a,"finallyLoc");if(s&&u){if(this.prev<a.catchLoc)return o(a.catchLoc,!0);if(this.prev<a.finallyLoc)return o(a.finallyLoc)}else if(s){if(this.prev<a.catchLoc)return o(a.catchLoc,!0)}else{if(!u)throw Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return o(a.finallyLoc)}}}},abrupt:function(e,t){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===e||"continue"===e)&&i.tryLoc<=t&&t<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=e,a.arg=t,i?(this.method="next",this.next=i.finallyLoc,m):this.complete(a)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),m},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),_(r),m}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var o=n.arg;_(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(t,r,n){return this.delegate={iterator:A(t),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=e),m}},t}var l=function(e,t,r,n){return new(r||(r=Promise))((function(o,i){function a(e){try{s(n.next(e))}catch(e){i(e)}}function c(e){try{s(n.throw(e))}catch(e){i(e)}}function s(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(a,c)}s((n=n.apply(e,t||[])).next())}))};function f(e){var t,r=n.a.useBasicFetch(o.o.getPrivacy(e)),s=n.a.useGetFetchAsync(),f=null===(t=r.data)||void 0===t?void 0:t.canManageAccess;return{createShareLink:function(e){return l(this,void 0,void 0,u().mark((function t(){var n;return u().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(r.data){t.next=2;break}return t.abrupt("return");case 2:return t.next=4,s(c.o.createShareLink({objectId:e.objectId,type:a.y.Link,privacy:e.privacy,optionRequest:{preventSkipping:e.preventSkipping,instantFeedback:e.instantFeedback}}));case 4:return n=t.sent,t.abrupt("return",n);case 6:case"end":return t.stop()}}),t)})))},createDirectShare:function(e){return l(this,void 0,void 0,u().mark((function t(){var n,o;return u().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(r.data){t.next=2;break}return t.abrupt("return");case 2:return n=e.requireSignIn?i.e.Direct:i.e.PinCode,t.next=5,s(c.o.createShareLink({objectId:e.objectId,type:a.y.Classroom,privacy:n,optionRequest:{preventSkipping:e.preventShipping,instantFeedback:e.instantFeedback},recipientRequest:e.recipients.map((function(t){return{recipientId:t,message:e.message,scopeId:e.scopeId}}))}));case 5:if(o=t.sent,n!==i.e.PinCode){t.next=9;break}return t.next=9,s(c.o.createPincode(o.shareId));case 9:return t.abrupt("return",o);case 10:case"end":return t.stop()}}),t)})))},createOpenSession:function(e){return l(this,void 0,void 0,u().mark((function t(){var n,o;return u().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(r.data){t.next=2;break}return t.abrupt("return");case 2:return n=i.e.PinCode,e.requireSignIn&&(n=e.respectRatingsAndRestrictions?f?i.e.JustMySchool:i.e.Protected:f?i.e.JustMySchoolOverrideRestriction:i.e.ProtectedOverrideRestriction),t.next=6,s(c.o.createShareLink({objectId:e.objectId,type:a.y.Open,privacy:n,optionRequest:{preventSkipping:e.preventSkipping,instantFeedback:e.instantFeedback}}));case 6:if(o=t.sent,n!==i.e.PinCode){t.next=10;break}return t.next=10,s(c.o.createPincode(o.shareId));case 10:return t.abrupt("return",o);case 11:case"end":return t.stop()}}),t)})))},canManageAccess:f,hasCompleted:r.hasCompleted}}},22392:(e,t,r)=>{r.r(t),r.d(t,{SessionFlowView:()=>b});var n=r(32735),o=r(39202),i=r(9111),a=r(13876),c=r(14070),s=r(97291),u=r(12528),l=r(35223),f=r(58518);function h(e){var t=e.requireSignIn,r=e.respectRatingsAndRestrictions,o=e.preventSkippingAhead,i=e.enableInstantFeedback,a=e.className,c=e.message,s=e.onToggleRequireSignIn,h=e.onToggleRespectRatingsAndRestrictions,p=e.onTogglePreventSkippingAhead,d=e.onToggleEnableInstantFeedback,v=e.onChangeMessage;return n.createElement("div",{className:"d-flex flex-column gap-4 ".concat(a)},n.createElement("div",{className:"d-flex align-items-center"},n.createElement("div",{className:"d-flex align-items-center justify-content-center"},n.createElement("div",null,n.createElement(u.f,{svgName:l.vn.VisibleOn,variant:"blue",textVariant:"white",svgWrapperClassName:"p-1"})),n.createElement("div",{className:"d-flex flex-column ms-2"},n.createElement("label",{className:"m-0"},"Open Session"),n.createElement("span",{className:"text-secondary"},"Anyone can view for 30 days")))),n.createElement("div",{className:"d-flex flex-column gap-2"},n.createElement("h4",{className:"h6 m-0"},"Access"),n.createElement("div",{className:"d-flex flex-column gap-3"},n.createElement(f.k,{title:"Require students to sign in",description:"Best way to gather student data linked to their ClickView accounts",toggled:t,onClick:s}),n.createElement(f.k,{title:"Respect ratings and restrictions of video",description:"Only students from Year 4 and above can view this video. Will require students to sign in.",toggled:r,onClick:h}))),n.createElement("div",{className:"d-flex flex-column gap-2"},n.createElement("h4",{className:"h6 m-0"},"Settings"),n.createElement("div",{className:"d-flex flex-column gap-3"},n.createElement(f.k,{title:"Prevent skipping ahead",description:"Students cannot skip ahead to parts of the video they have not watched",toggled:o,onClick:p}),n.createElement(f.k,{title:"Enable instant feedback",description:"Allow students to see feedback on their answers before continuing",toggled:i,onClick:d}))),n.createElement("div",{className:"d-flex flex-column gap-2"},n.createElement("label",{className:"m-0"},"Add a message (optional)"),n.createElement("textarea",{value:c,className:"form-control rounded w-100 h-100",placeholder:"Type a message...",onChange:function(e){return v(e.target.value)}})))}var p=r(93779);function d(e){return d="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},d(e)}function v(){v=function(){return t};var e,t={},r=Object.prototype,n=r.hasOwnProperty,o=Object.defineProperty||function(e,t,r){e[t]=r.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",c=i.asyncIterator||"@@asyncIterator",s=i.toStringTag||"@@toStringTag";function u(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{u({},"")}catch(e){u=function(e,t,r){return e[t]=r}}function l(e,t,r,n){var i=t&&t.prototype instanceof b?t:b,a=Object.create(i.prototype),c=new T(n||[]);return o(a,"_invoke",{value:P(e,r,c)}),a}function f(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}t.wrap=l;var h="suspendedStart",p="suspendedYield",y="executing",g="completed",m={};function b(){}function w(){}function k(){}var E={};u(E,a,(function(){return this}));var S=Object.getPrototypeOf,x=S&&S(S(A([])));x&&x!==r&&n.call(x,a)&&(E=x);var L=k.prototype=b.prototype=Object.create(E);function O(e){["next","throw","return"].forEach((function(t){u(e,t,(function(e){return this._invoke(t,e)}))}))}function I(e,t){function r(o,i,a,c){var s=f(e[o],e,i);if("throw"!==s.type){var u=s.arg,l=u.value;return l&&"object"==d(l)&&n.call(l,"__await")?t.resolve(l.__await).then((function(e){r("next",e,a,c)}),(function(e){r("throw",e,a,c)})):t.resolve(l).then((function(e){u.value=e,a(u)}),(function(e){return r("throw",e,a,c)}))}c(s.arg)}var i;o(this,"_invoke",{value:function(e,n){function o(){return new t((function(t,o){r(e,n,t,o)}))}return i=i?i.then(o,o):o()}})}function P(t,r,n){var o=h;return function(i,a){if(o===y)throw Error("Generator is already running");if(o===g){if("throw"===i)throw a;return{value:e,done:!0}}for(n.method=i,n.arg=a;;){var c=n.delegate;if(c){var s=j(c,n);if(s){if(s===m)continue;return s}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===h)throw o=g,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=y;var u=f(t,r,n);if("normal"===u.type){if(o=n.done?g:p,u.arg===m)continue;return{value:u.arg,done:n.done}}"throw"===u.type&&(o=g,n.method="throw",n.arg=u.arg)}}}function j(t,r){var n=r.method,o=t.iterator[n];if(o===e)return r.delegate=null,"throw"===n&&t.iterator.return&&(r.method="return",r.arg=e,j(t,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),m;var i=f(o,t.iterator,r.arg);if("throw"===i.type)return r.method="throw",r.arg=i.arg,r.delegate=null,m;var a=i.arg;return a?a.done?(r[t.resultName]=a.value,r.next=t.nextLoc,"return"!==r.method&&(r.method="next",r.arg=e),r.delegate=null,m):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,m)}function N(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function _(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function T(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(N,this),this.reset(!0)}function A(t){if(t||""===t){var r=t[a];if(r)return r.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var o=-1,i=function r(){for(;++o<t.length;)if(n.call(t,o))return r.value=t[o],r.done=!1,r;return r.value=e,r.done=!0,r};return i.next=i}}throw new TypeError(d(t)+" is not iterable")}return w.prototype=k,o(L,"constructor",{value:k,configurable:!0}),o(k,"constructor",{value:w,configurable:!0}),w.displayName=u(k,s,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===w||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,k):(e.__proto__=k,u(e,s,"GeneratorFunction")),e.prototype=Object.create(L),e},t.awrap=function(e){return{__await:e}},O(I.prototype),u(I.prototype,c,(function(){return this})),t.AsyncIterator=I,t.async=function(e,r,n,o,i){void 0===i&&(i=Promise);var a=new I(l(e,r,n,o),i);return t.isGeneratorFunction(r)?a:a.next().then((function(e){return e.done?e.value:a.next()}))},O(L),u(L,s,"Generator"),u(L,a,(function(){return this})),u(L,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),r=[];for(var n in t)r.push(n);return r.reverse(),function e(){for(;r.length;){var n=r.pop();if(n in t)return e.value=n,e.done=!1,e}return e.done=!0,e}},t.values=A,T.prototype={constructor:T,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(_),!t)for(var r in this)"t"===r.charAt(0)&&n.call(this,r)&&!isNaN(+r.slice(1))&&(this[r]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var r=this;function o(n,o){return c.type="throw",c.arg=t,r.next=n,o&&(r.method="next",r.arg=e),!!o}for(var i=this.tryEntries.length-1;i>=0;--i){var a=this.tryEntries[i],c=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var s=n.call(a,"catchLoc"),u=n.call(a,"finallyLoc");if(s&&u){if(this.prev<a.catchLoc)return o(a.catchLoc,!0);if(this.prev<a.finallyLoc)return o(a.finallyLoc)}else if(s){if(this.prev<a.catchLoc)return o(a.catchLoc,!0)}else{if(!u)throw Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return o(a.finallyLoc)}}}},abrupt:function(e,t){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===e||"continue"===e)&&i.tryLoc<=t&&t<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=e,a.arg=t,i?(this.method="next",this.next=i.finallyLoc,m):this.complete(a)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),m},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),_(r),m}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var o=n.arg;_(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(t,r,n){return this.delegate={iterator:A(t),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=e),m}},t}function y(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,o,i,a,c=[],s=!0,u=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;s=!1}else for(;!(s=(n=i.call(r)).done)&&(c.push(n.value),c.length!==t);s=!0);}catch(e){u=!0,o=e}finally{try{if(!s&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(u)throw o}}return c}}(e,t)||function(e,t){if(e){if("string"==typeof e)return g(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?g(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function g(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}var m=function(e,t,r,n){return new(r||(r=Promise))((function(o,i){function a(e){try{s(n.next(e))}catch(e){i(e)}}function c(e){try{s(n.throw(e))}catch(e){i(e)}}function s(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(a,c)}s((n=n.apply(e,t||[])).next())}))};function b(e){var t=(0,p.t)(e.objectId).createOpenSession,r=y(n.useState(!1),2),u=r[0],l=r[1],f=y(n.useState(!1),2),d=f[0],g=f[1],b=y(n.useState(!1),2),w=b[0],k=b[1],E=y(n.useState(!1),2),S=E[0],x=E[1],L=y(n.useState(""),2),O=L[0],I=L[1],P=y(n.useState(!1),2),j=P[0],N=P[1];return n.createElement(i.G,Object.assign({title:"Assign to an Open classroom",showLoadingSpinner:!1,size:"lg",bodyClassName:"d-flex flex-column gap-3"},e),n.createElement(h,{requireSignIn:w,respectRatingsAndRestrictions:S,enableInstantFeedback:d,preventSkippingAhead:u,message:O,onToggleRequireSignIn:function(){return k(!w)},onToggleRespectRatingsAndRestrictions:function(){return x(!S)},onTogglePreventSkippingAhead:function(){return l(!u)},onToggleEnableInstantFeedback:function(){return g(!d)},onChangeMessage:I}),n.createElement(a.u,null,n.createElement(a.u.Cancel,{variant:"link",onClick:function(){e.closePopup()}}),n.createElement(a.u.Submit,{variant:"dark",onClick:function(){return m(this,void 0,void 0,v().mark((function r(){var n,i;return v().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return N(!0),r.next=3,t({instantFeedback:d,preventSkipping:u,requireSignIn:w,respectRatingsAndRestrictions:S,objectId:e.objectId});case 3:n=r.sent,i={video:c.e.Insights.VIDEO_SHARE_OPTIONS,clip:c.e.Insights.CLIP_SHARE_OPTIONS,interactive:c.e.Insights.INTERACTIVE_SHARE_OPTIONS,series:c.e.Insights.SERIES_SHARE_OPTIONS,playlist:c.e.Insights.PLAYLIST_SHARE_OPTIONS},o.C$.trigger({application:s.O.INSIGHTS,action:i[e.entityType],args:[e.objectId],params:{shareId:n.shareId}});case 6:case"end":return r.stop()}}),r)})))},showSpinner:j,text:"Assign"})))}}}]);
|
|
3
|
-
//# sourceMappingURL=2392-acfd69dfa3-lite.chunk.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scripts/2392-acfd69dfa3-lite.chunk.js","mappings":"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","sources":["file:///app/packages/projects/lite/src/apps/share-v2/components/section-setting-toggle-item/SectionSettingToggleItem.tsx","file:///app/packages/projects/lite/src/apps/share-v2/enums/SharePrivacy.ts","file:///app/packages/projects/lite/src/apps/share-v2/enums/ShareType.ts","file:///app/packages/projects/lite/src/apps/share-v2/flight-requests/ShareRequests.ts","file:///app/packages/projects/lite/src/apps/share-v2/hooks/useCreateShare.ts","file:///app/packages/projects/lite/src/apps/share-v2/components/SessionSettingsSectioned.tsx","file:///app/packages/projects/lite/src/apps/share-v2/views/SessionFlowView.tsx"],"sourcesContent":["import React from 'react';\n\nimport { ToggleSwitch } from 'libs/shared/components/toggle-switch/ToggleSwitch';\n\ninterface SectionSettingToggleItemProps {\n title: string;\n description: string;\n toggled: boolean;\n onClick: () => void;\n}\n\nexport function SectionSettingToggleItem(props: SectionSettingToggleItemProps): JSX.Element {\n return (\n <div className='d-flex justify-content-between align-items-start'>\n <div>\n <label className='m-0' htmlFor=''>{props.title}</label>\n <p className='m-0 text-secondary'>{props.description}</p>\n </div>\n <div>\n <ToggleSwitch\n onClick={props.onClick}\n on={props.toggled}\n />\n </div>\n </div>\n );\n}\n","export enum SharePrivacy {\n Public = 'Public',\n PinCode = 'PinCode',\n PasswordProtected = 'PasswordProtected',\n ProtectedOverrideRestriction = 'ProtectedOverrideRestriction',\n JustMySchoolOverrideRestriction = 'JustMySchoolOverrideRestriction',\n Protected = 'Protected',\n JustMySchool = 'JustMySchool',\n Direct = 'Direct'\n}","export enum ShareType {\n Link = 'Link',\n Classroom = 'Classroom',\n Open = 'Open',\n Live = 'Live'\n}","import { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/flight';\n\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { BasePaginatedCollection } from 'libs/shared/interfaces';\n\nimport { CreateShareLinkRequest } from 'apps/share-v2/interfaces/CreateShareLinkRequest';\nimport { ShareLink } from 'apps/share-v2/interfaces/ShareLink';\n\nconst normalizeOptions: Flight.NormalizeOptions = {\n namespace: 'share-v2'\n};\n\nexport interface GetSentSharesParams {\n cursor?: string;\n limit?: number;\n objectTypeId?: MasterType | MasterType[];\n recipientUserId?: string | string[];\n recipientGroupId?: string | string[];\n start?: string;\n end?: string;\n scopeId?: string;\n}\n\nexport const ShareRequests = {\n createShareLink(\n data: CreateShareLinkRequest,\n success?: (shareLink: ShareLink) => void,\n error?: () => void,\n always?: () => void\n ): Flight.Request {\n return {\n url: '/api/share/v2/shares',\n key: 'create:share-v2:link',\n type: HttpVerbs.POST,\n data,\n normalizeOptions,\n invalidationKeys: [\n `share:link:object:${data.objectId}`,\n `privacy:${data.objectId}`,\n 'sent:shares',\n 'get:share-v2:shares:object'\n ],\n success,\n error,\n always\n };\n },\n\n getShareLink(\n shareId: string,\n success?: (shareLink: ShareLink) => void,\n error?: () => void,\n always?: () => void\n ): Flight.Request {\n return {\n url: `/api/share/v2/shares/${shareId}`,\n key: `get:share-v2:link:${shareId}`,\n type: HttpVerbs.GET,\n normalizeOptions,\n success,\n error,\n always\n };\n },\n\n getSharesByObjectId(\n objectId: string | number,\n success?: (shares: ShareLink[]) => void,\n error?: () => void,\n always?: () => void\n ): Flight.Request {\n return {\n url: `/api/share/v2/shares/objects/${objectId}`,\n key: `get:share-v2:shares:object:${objectId}`,\n type: HttpVerbs.GET,\n normalizeOptions,\n success,\n error,\n always\n };\n },\n\n getSentShares(\n params: GetSentSharesParams = {},\n success?: (response: BasePaginatedCollection<ShareLink>[]) => void,\n error?: () => void,\n always?: () => void\n ): Flight.Request {\n const adaptedParams = {\n scopeId: params.scopeId,\n limit: params.limit || 25,\n offset: parseInt(params.cursor) || 0\n };\n\n const key = Object.values(adaptedParams).join(':');\n\n return {\n url: UrlHelper.urlBuilder('/api/share/v2/shares/sent', adaptedParams),\n key: `sent:shares-v2:${key}`,\n formatData: (response: ShareLink[]) => {\n return {\n data: response,\n count: response.length,\n pagination: {\n cursors: {\n next: adaptedParams.offset + response.length\n }\n }\n };\n },\n type: HttpVerbs.GET,\n normalize: false,\n success,\n error,\n always\n };\n },\n\n createPincode(shareId: string): Flight.Request {\n return {\n url: `/api/share/v2/shares/${shareId}/pincode`,\n key: 'create:share-v2:pincode',\n type: HttpVerbs.POST\n };\n },\n\n getPincode(code: string): Flight.Request {\n return {\n url: `/api/share/v2/shares/pincode?code=${code}`,\n key: `get:share-v2:pincode:${code}`\n };\n },\n\n getPincodeByShareId(shareId: string): Flight.Request {\n return {\n url: `/api/share/v2/shares/${shareId}/pincode`,\n key: `get:share-v2:${shareId}:pincode`\n };\n }\n};","import { Flight } from 'libs/common/react/index';\n\nimport { ShareRequests as ShareRequestsV1 } from 'libs/shared/apps/share/flight-requests/ShareRequests';\nimport { SharePrivacyResponse } from 'libs/shared/apps/share/interfaces/responses/SharePrivacyResponse';\n\nimport { SharePrivacy } from 'apps/share-v2/enums/SharePrivacy';\nimport { ShareType } from 'apps/share-v2/enums/ShareType';\nimport { ShareRequests as ShareRequestsV2 } from 'apps/share-v2/flight-requests/ShareRequests';\nimport { ShareLink } from 'apps/share-v2/interfaces/ShareLink';\n\ninterface CreateShareLinkOptions {\n objectId: string;\n privacy: SharePrivacy;\n preventSkipping: boolean;\n instantFeedback: boolean;\n}\n\ninterface CreateDirectShareOptions {\n objectId: string;\n preventShipping: boolean;\n instantFeedback: boolean;\n requireSignIn: boolean;\n message?: string;\n recipients: string[];\n scopeId: string | number;\n}\n\ninterface CreateOpenSessionOptions {\n objectId: string;\n preventSkipping: boolean;\n instantFeedback: boolean;\n requireSignIn: boolean;\n respectRatingsAndRestrictions: boolean;\n}\n\nexport function useCreateShare(objectId: string) {\n const accessPermissions = Flight.useBasicFetch<SharePrivacyResponse>(ShareRequestsV1.getPrivacy(objectId));\n const fetchAsync = Flight.useGetFetchAsync();\n const canManageAccess = accessPermissions.data?.canManageAccess;\n\n async function createShareLink(options: CreateShareLinkOptions) {\n if (!accessPermissions.data) return;\n\n const shareLink = await fetchAsync<ShareLink>(ShareRequestsV2.createShareLink({\n objectId: options.objectId,\n type: ShareType.Link,\n privacy: options.privacy,\n optionRequest: {\n preventSkipping: options.preventSkipping,\n instantFeedback: options.instantFeedback\n }\n }));\n\n return shareLink;\n }\n\n async function createDirectShare(options: CreateDirectShareOptions) {\n if (!accessPermissions.data) return;\n\n const privacy = options.requireSignIn ? SharePrivacy.Direct : SharePrivacy.PinCode;\n\n const shareLink = await fetchAsync<ShareLink>(ShareRequestsV2.createShareLink({\n objectId: options.objectId,\n type: ShareType.Classroom,\n privacy,\n optionRequest: {\n preventSkipping: options.preventShipping,\n instantFeedback: options.instantFeedback\n },\n recipientRequest: options\n .recipients\n .map(recipientId => ({ recipientId, message: options.message, scopeId: options.scopeId }))\n }));\n\n if (privacy === SharePrivacy.PinCode)\n await fetchAsync(ShareRequestsV2.createPincode(shareLink.shareId));\n\n return shareLink;\n }\n\n async function createOpenSession(options: CreateOpenSessionOptions) {\n if (!accessPermissions.data) return;\n\n let privacy = SharePrivacy.PinCode;\n\n if (options.requireSignIn) {\n if (options.respectRatingsAndRestrictions) {\n privacy = canManageAccess ? SharePrivacy.JustMySchool : SharePrivacy.Protected;\n } else {\n privacy = canManageAccess\n ? SharePrivacy.JustMySchoolOverrideRestriction\n : SharePrivacy.ProtectedOverrideRestriction;\n }\n }\n\n const shareLink = await fetchAsync<ShareLink>(ShareRequestsV2.createShareLink({\n objectId: options.objectId,\n type: ShareType.Open,\n privacy,\n optionRequest: {\n preventSkipping: options.preventSkipping,\n instantFeedback: options.instantFeedback\n }\n }));\n\n if (privacy === SharePrivacy.PinCode)\n await fetchAsync(ShareRequestsV2.createPincode(shareLink.shareId));\n\n return shareLink;\n }\n\n return {\n createShareLink,\n createDirectShare,\n createOpenSession,\n canManageAccess,\n hasCompleted: accessPermissions.hasCompleted\n };\n}","import React from 'react';\n\nimport { IconCircle } from 'libs/shared/components/icon-circle/IconCircle';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { SectionSettingToggleItem } from './section-setting-toggle-item/SectionSettingToggleItem';\n\ninterface SessionSettingsSectionedProps {\n requireSignIn: boolean;\n respectRatingsAndRestrictions: boolean;\n preventSkippingAhead: boolean;\n enableInstantFeedback: boolean;\n className?: string;\n message?: string;\n onToggleRequireSignIn: () => void;\n onToggleRespectRatingsAndRestrictions: () => void;\n onTogglePreventSkippingAhead: () => void;\n onToggleEnableInstantFeedback: () => void;\n onChangeMessage: (message: string) => void;\n}\n\nexport function SessionSettingsSectioned({\n requireSignIn,\n respectRatingsAndRestrictions,\n preventSkippingAhead,\n enableInstantFeedback,\n className,\n message,\n onToggleRequireSignIn,\n onToggleRespectRatingsAndRestrictions,\n onTogglePreventSkippingAhead,\n onToggleEnableInstantFeedback,\n onChangeMessage\n}: SessionSettingsSectionedProps): JSX.Element {\n return (\n <div className={`d-flex flex-column gap-4 ${className}`}>\n <div className='d-flex align-items-center'>\n <div className='d-flex align-items-center justify-content-center'>\n <div>\n <IconCircle\n svgName={cvSvgLibrary.VisibleOn}\n variant='blue'\n textVariant='white'\n svgWrapperClassName='p-1'\n />\n </div>\n <div className='d-flex flex-column ms-2'>\n <label className='m-0'>Open Session</label>\n <span className='text-secondary'>Anyone can view for 30 days</span>\n </div>\n </div>\n </div>\n <div className='d-flex flex-column gap-2'>\n <h4 className='h6 m-0'>Access</h4>\n <div className='d-flex flex-column gap-3'>\n <SectionSettingToggleItem\n title='Require students to sign in'\n description='Best way to gather student data linked to their ClickView accounts'\n toggled={requireSignIn}\n onClick={onToggleRequireSignIn}\n />\n <SectionSettingToggleItem\n title='Respect ratings and restrictions of video'\n description='Only students from Year 4 and above can view this video. Will require students to sign in.'\n toggled={respectRatingsAndRestrictions}\n onClick={onToggleRespectRatingsAndRestrictions}\n />\n </div>\n </div>\n <div className='d-flex flex-column gap-2'>\n <h4 className='h6 m-0'>Settings</h4>\n <div className='d-flex flex-column gap-3'>\n <SectionSettingToggleItem\n title='Prevent skipping ahead'\n description='Students cannot skip ahead to parts of the video they have not watched'\n toggled={preventSkippingAhead}\n onClick={onTogglePreventSkippingAhead}\n />\n <SectionSettingToggleItem\n title='Enable instant feedback'\n description='Allow students to see feedback on their answers before continuing'\n toggled={enableInstantFeedback}\n onClick={onToggleEnableInstantFeedback}\n />\n </div>\n </div>\n <div className='d-flex flex-column gap-2'>\n <label className='m-0'>Add a message (optional)</label>\n <textarea\n value={message}\n className='form-control rounded w-100 h-100'\n placeholder='Type a message...'\n onChange={e => onChangeMessage(e.target.value)}\n />\n </div>\n </div>\n );\n}","import React from 'react';\n\nimport { AppLinkHelper } from 'libs/common/backbone/core';\n\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\nimport { PopupViewProps } from 'libs/shared/interfaces';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nimport { SessionSettingsSectioned } from 'apps/share-v2/components/SessionSettingsSectioned';\nimport { useCreateShare } from 'apps/share-v2/hooks/useCreateShare';\n\ninterface SessionFlowViewProps extends PopupViewProps {\n objectId: string;\n entityType: 'video' | 'clip' | 'interactive' | 'series' | 'playlist';\n}\n\nexport function SessionFlowView(props: SessionFlowViewProps): JSX.Element {\n const { createOpenSession } = useCreateShare(props.objectId);\n const [ preventSkippingAhead, setPreventSkippingAhead ] = React.useState(false);\n const [ enableInstantFeedback, setEnableInstantFeedback ] = React.useState(false);\n const [ requireSignIn, setRequireSignIn ] = React.useState(false);\n const [ respectRatingsAndRestrictions, setRespectRatingsAndRestrictions ] = React.useState(false);\n const [ message, setMessage ] = React.useState('');\n const [ working, setWorking ] = React.useState(false);\n\n function onBack() {\n props.closePopup();\n }\n\n async function onCreate() {\n setWorking(true);\n\n const shareLink = await createOpenSession({\n instantFeedback: enableInstantFeedback,\n preventSkipping: preventSkippingAhead,\n requireSignIn,\n respectRatingsAndRestrictions,\n objectId: props.objectId\n });\n\n const actions = {\n video: Actions.Insights.VIDEO_SHARE_OPTIONS,\n clip: Actions.Insights.CLIP_SHARE_OPTIONS,\n interactive: Actions.Insights.INTERACTIVE_SHARE_OPTIONS,\n series: Actions.Insights.SERIES_SHARE_OPTIONS,\n playlist: Actions.Insights.PLAYLIST_SHARE_OPTIONS\n };\n\n AppLinkHelper.trigger({\n application: AppChannels.INSIGHTS,\n action: actions[props.entityType],\n args: [props.objectId],\n params: {\n shareId: shareLink.shareId\n }\n });\n }\n\n return (\n <Popup\n title={'Assign to an Open classroom'}\n showLoadingSpinner={false}\n size='lg'\n bodyClassName='d-flex flex-column gap-3'\n {...props}\n >\n <SessionSettingsSectioned\n requireSignIn={requireSignIn}\n respectRatingsAndRestrictions={respectRatingsAndRestrictions}\n enableInstantFeedback={enableInstantFeedback}\n preventSkippingAhead={preventSkippingAhead}\n message={message}\n onToggleRequireSignIn={() => setRequireSignIn(!requireSignIn)}\n onToggleRespectRatingsAndRestrictions={() => setRespectRatingsAndRestrictions(!respectRatingsAndRestrictions)}\n onTogglePreventSkippingAhead={() => setPreventSkippingAhead(!preventSkippingAhead)}\n onToggleEnableInstantFeedback={() => setEnableInstantFeedback(!enableInstantFeedback)}\n onChangeMessage={setMessage}\n />\n <PopupButtons>\n <PopupButtons.Cancel variant='link' onClick={onBack} />\n <PopupButtons.Submit variant='dark' onClick={onCreate} showSpinner={working} text='Assign' />\n </PopupButtons>\n </Popup>\n );\n}"],"names":["SectionSettingToggleItem","props","className","htmlFor","title","description","onClick","on","toggled","SharePrivacy","ShareType","normalizeOptions","namespace","ShareRequests","createShareLink","data","success","error","always","url","key","type","invalidationKeys","objectId","getShareLink","shareId","getSharesByObjectId","getSentShares","params","adaptedParams","scopeId","limit","offset","parseInt","cursor","Object","values","join","formatData","response","count","length","pagination","cursors","next","normalize","createPincode","getPincode","code","getPincodeByShareId","useCreateShare","accessPermissions","fetchAsync","canManageAccess","options","privacy","optionRequest","preventSkipping","instantFeedback","shareLink","createDirectShare","requireSignIn","preventShipping","recipientRequest","recipients","map","recipientId","message","createOpenSession","respectRatingsAndRestrictions","hasCompleted","SessionSettingsSectioned","preventSkippingAhead","enableInstantFeedback","onToggleRequireSignIn","onToggleRespectRatingsAndRestrictions","onTogglePreventSkippingAhead","onToggleEnableInstantFeedback","onChangeMessage","IconCircle","svgName","variant","textVariant","svgWrapperClassName","value","placeholder","onChange","e","target","SessionFlowView","setPreventSkippingAhead","setEnableInstantFeedback","setRequireSignIn","setRespectRatingsAndRestrictions","setMessage","working","setWorking","Popup","showLoadingSpinner","size","bodyClassName","PopupButtons","closePopup","actions","video","clip","interactive","series","playlist","application","action","entityType","args","showSpinner","text"],"sourceRoot":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[2636],{9806:(e,t,n)=>{"use strict";n.d(t,{k:()=>C});var a=n(32735),o=n(65858),i=n(64249),r=n(15611),c=n(7432),l=n(11834),s=n(83345),d=n(56754),u=n(86348),p=n(7733),m=n(54610),v=n(4594),y=n(68626),f=n(9085),b=n(67453),h=n(31908);const g={thumbnailFallbackSvg:"D4JFs",posterFallbackSvg:"bjUWl",coverFallbackSvg:"kdLpt",thumbnailContainer:"d3CKN",insightsMask:"KM76U",requireMarking:"peLH7",badge:"mVu0E",bar:"zO3MS",a:"K1jW5",expandBar:"YITJl",b:"tCpLF",c:"lC0cq"};var E="shared.sharedObjectImage",k="rounded overflow-hidden";function w(){return a.createElement("div",{className:"d-flex pointer-events-none position-absolute bottom-0 start-0 h-100 w-100 z-1 justify-content-center align-items-center"},a.createElement("div",{className:"position-absolute bg-dark bg-gradient opacity-50 w-100 h-100 z-0 rounded-3"}),a.createElement("div",{className:"d-flex align-items-end gap-2 h-50 z-1"},a.createElement("div",{className:"d-flex align-items-end h-50"},a.createElement("div",{className:"".concat(g.bar," ").concat(g.a," rounded shadow")})),a.createElement("div",{className:"d-flex align-items-end h-75"},a.createElement("div",{className:"".concat(g.bar," ").concat(g.b," rounded shadow")})),a.createElement("div",{className:"d-flex align-items-end h-100"},a.createElement("div",{className:"".concat(g.bar," ").concat(g.c," rounded shadow")}))))}function C(e){var t=a.useCallback((function(t){var n;t&&e.fixedHeight&&(t.style.width="".concat(t.offsetHeight*(n=e.object,h.M.isVideoType(n)?16/9:n.typeId===v.E.Playlist?1:n.typeId===v.E.Series?9/16:void 0),"px"))}),[]),n=h.M.isVideoType(e.object),C=function(e){var t=b.j.getDisplayImageFromObject(e);if(h.M.isVideoType(e))return{image:t,imageType:m.__.Thumbnails,imageClassName:k,imageFallbackComponent:a.createElement(l.oy,{type:l.mS.Video})};switch(e.typeId){case v.E.Series:return{image:t,imageType:m.__.TallPosters,imageClassName:k,imageFallbackComponent:a.createElement(l.oy,{type:l.mS.Series,svgContainerClassName:g.posterFallbackSvg})};case v.E.Playlist:return{image:t,imageType:m.__.Covers,imageClassName:(null==t?void 0:t.url)?k:"".concat(k," ").concat((0,f.x)(e.name,p.o)),imageFallbackComponent:a.createElement(l.oy,{type:l.mS.Playlist,svgContainerClassName:(null==t?void 0:t.url)?g.coverFallbackSvg:"d-none",extraClasses:!(null==t?void 0:t.url)&&"bg-transparent"})}}}(e.object),x=C.image,O=C.imageType,j=C.imageClassName,N=C.imageFallbackComponent;return a.createElement("div",{className:"d-flex align-items-center justify-content-center w-100 h-100"},a.createElement("div",{ref:t,className:e.fixedHeight?"h-100":"w-100"},n&&a.createElement("div",{className:"".concat(g.thumbnailContainer," position-relative")},e.showInsightsMask&&a.createElement(w,null),a.createElement(r.F,{appLink:e.appLink},a.createElement(u.u,{video:e.object,imageOptions:e.imageOptions,textPosition:y.z.Independent,type:"cosmetic",hideDuration:!0,hideMask:!0})),!!e.requireMarking&&a.createElement("div",{className:"".concat(e.showInsightsMask&&g.requireMarking," position-absolute bottom-0 end-0 z-1 m-2")},a.createElement("div",{className:"".concat(g.badge," d-flex align-items-center bg-light-ultramarine text-ultramarine fw-semibold rounded-pill w-fit mt-1 px-2")},a.createElement(s.x,{namespace:E,phrase:"requireMarking",options:{smartCount:e.requireMarking}})))),!n&&a.createElement(a.Fragment,null,"videos"in e.object?a.createElement(d.I,{collection:e.object,imageOptions:e.imageOptions,appLink:e.appLink,analyticsData:{id:e.object.id,name:e.object.name},analyticsOptions:{entity:i.I.getAnalyticsEntity(e.object.type),actionType:o.Vw.Click,location:e.locationContext},showMask:e.showCollectionMask,showVideoCount:e.showVideoCount}):a.createElement(c.Z,{data:null==x?void 0:x.url,imageType:O,imageOptions:e.imageOptions,appLink:e.appLink,className:j,analyticsData:{id:e.object.id,name:e.object.name},analyticsOptions:{entity:i.I.getAnalyticsEntity(e.object.type),actionType:o.Vw.Click,location:e.locationContext}},N))))}C.defaultProps={imageOptions:{size:m.h2.Small}}},56754:(e,t,n)=>{"use strict";n.d(t,{I:()=>E});var a=n(32735),o=n(75896),i=n(65858),r=n(15611),c=n(83914),l=n(83345);const s={thumbnailTitle:"OsWjL"};function d(e){return a.createElement("h3",{title:e.title,className:"h6"},e.title)}function u(e){return e.appLink?a.createElement(r.F,{appLink:e.appLink,className:"".concat(s.thumbnailTitle)},a.createElement(d,Object.assign({},e))):a.createElement(d,Object.assign({},e))}var p=n(86348),m=n(62335),v=n(4594),y=n(68626),f=n(45778),b=n(35223);const h={badge:"M4zat",mask:"r0Ztg",thumbnailContainer:"uD9dz"};var g="shared.collectionThumbnail";function E(e){var t,n,s,d,E=function(){var t,n=null===(t=e.collection)||void 0===t?void 0:t.videos;if(n){if(!n.count&&e.collection.typeId===v.E.Playlist){var a=e.collection;a.clips.count&&(n=a.clips),a.interactives.count&&(n=a.interactives)}return o.m.first(n.data)}}(),k=function(){var t,n,a=0;if(e.collection.videos&&e.collection.videos.count&&(a+=e.collection.videos.count),e.collection.typeId===v.E.Playlist){var o=e.collection;(null===(t=o.interactives)||void 0===t?void 0:t.count)&&(a+=o.interactives.count),(null===(n=o.clips)||void 0===n?void 0:n.count)&&(a+=o.clips.count)}return a}(),w=(null===(t=e.title)||void 0===t?void 0:t.length)||(null===(n=e.subText)||void 0===n?void 0:n.length),C=Object.assign({id:e.collection.id.toString(),name:e.collection.name},e.analyticsData),x=Object.assign({actionType:i.Vw.Click,entity:(d=e.collection,f.G.isType(d,v.E.Playlist)?i.py.Playlist:f.G.isType(d,v.E.Series)?i.py.Series:void 0)},e.analyticsOptions);return a.createElement("div",null,a.createElement("div",{className:"position-relative ".concat(h.thumbnailContainer," z-1")},a.createElement(r.F,{appLink:e.appLink,analyticsData:C,analyticsOptions:x,preventFocus:!0},e.showMask&&a.createElement("div",{className:"".concat(h.mask," position-absolute w-100 h-100 rounded-3 bg-dark bg-gradient z-1 bg-opacity-50 pointer-events-none")},a.createElement("div",{className:"".concat(h.badge," d-flex align-items-center w-fit flex-grow-0 bg-dark rounded-pill ps-1 m-2")},a.createElement(c.x,{svgName:b.vn.Play,className:"svg-container text-white"}),a.createElement("p",{className:"d-inline fw-medium text-white mb-0"},(null===(s=e.hoverText)||void 0===s?void 0:s.length)?a.createElement("span",null,e.hoverText):a.createElement(l.x,{namespace:g,phrase:"playAll"})))),E&&a.createElement(p.u,{video:E,imageOptions:e.imageOptions,textPosition:y.z.Independent,type:"cosmetic",hideMask:!0,hideRating:!0,hideDuration:!0,hideVideoTypeBadge:!0}),!E&&a.createElement("div",{className:"ratio ratio-16x9 bg-light rounded-3"},a.createElement("div",{className:"d-flex justify-content-center align-items-center"},a.createElement(c.x,{svgName:b.vn.Play,className:"w-33 opacity-25 text-gray-400"}))),e.showVideoCount&&a.createElement("div",{className:"".concat(h.badge," d-flex align-items-center w-fit bg-dark bg-opacity-75 rounded-pill position-absolute bottom-0 end-0 ps-1 m-2")},a.createElement(c.x,{svgName:b.vn.Series,className:"svg-container text-white me-1"}),a.createElement("p",{className:"d-inline fw-semibold text-white mb-0"},a.createElement(l.x,{namespace:g,phrase:"videos",options:{count:k,smartCount:k}}))))),w&&a.createElement("div",{className:"mt-2 d-flex flex-column"},e.subText&&a.createElement(m.m,{title:e.subText,appLink:e.subTextAppLink},e.subText),e.title&&a.createElement(u,{title:e.collection.name,appLink:e.titleAppLink})))}},94644:(e,t,n)=>{"use strict";n.d(t,{r:()=>d});var a=n(50242),o=n(81886),i=n(67058),r=n(14553),c=n(49267),l=n(49075),s={notFound:i.d,forbidden:{rating:r.q,yearLevel:r.q,region:c.a,privacy:r.q},badRequest:l._,internalServerError:l._};function d(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 i;i="number"==typeof e?e:e.status;var r=Object.assign(Object.assign({},s),t);i&&o.Q.Ry.isStatusCodeError(i)&&(i!==a.o.InternalServer?i!==a.o.NotFound?i!==a.o.Forbidden?n.badRequest||o.Q.Ry.throw(new r.badRequest):n.forbidden||o.Q.Ry.throw(new r.forbidden.privacy):n.notFound||o.Q.Ry.throw(new r.notFound):n.internalServerError||o.Q.Ry.throw(new l._))}}},91286:(e,t,n)=>{"use strict";n.d(t,{v:()=>r});var a=n(32735),o=n(94644);function i(e){return e.map((function(e){return e.statusCode})).join(":")}function r(e,t,n){var r=Array.isArray(e)?e:[e];(0,a.useEffect)((function(){r.forEach((function(e){(0,o.r)(e.statusCode,t,n)}))}),[i(r),t,n])}},93322:(e,t,n)=>{"use strict";n.d(t,{F:()=>i});var a=n(32735),o=n(13126);function i(){a.useEffect((function(){return o.e.lockContentWidth(),function(){return o.e.unlockContentWidth()}}),[])}},31932:(e,t,n)=>{"use strict";n.r(t),n.d(t,{ShareOptionsView:()=>M});var a=n(32735),o=n(20354),i=n(26025),r=n(91693),c=n(4594),l=n(16714),s=n(39151),d=n(5112),u=n(60011),p=n(91286),m=n(93322),v=n(22902),y=n(79612),f=n(37802),b=n(35223),h=n(31908),g=n(59087),E=n(65858),k=n(9806),w=n(54610),C=n(14070),x=n(97291),O=n(12528),j=n(93975);function N(e){return N="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},N(e)}function S(e,t,n){return(t=function(e){var t=function(e){if("object"!=N(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=N(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==N(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function I(e){return a.createElement("div",{className:"d-flex align-items-center"},a.createElement("div",{className:"d-flex align-items-center justify-content-center"},a.createElement("div",null,a.createElement(O.f,{svgName:L[e.shareLink.type],variant:P[e.shareLink.type],textVariant:"white",svgWrapperClassName:"p-1"})),a.createElement("div",{className:"d-flex flex-column ms-2"},a.createElement("label",{className:"m-0"},(n=(t=e).shareLink,o=t.classroomName,n.type===j.y.Classroom&&o?o:T[n.type])),a.createElement("span",{className:"text-secondary"},function(e){var t,n,a,o,i=e.shareLink;if(i.type===j.y.Classroom){var r=null!==(n=null===(t=i.recipients)||void 0===t?void 0:t.filter((function(e){return e.recipientTypeId===c.E.ClassroomGroup})).length)&&void 0!==n?n:0,l=null!==(o=null===(a=i.recipients)||void 0===a?void 0:a.filter((function(e){return e.recipientTypeId===c.E.User})).length)&&void 0!==o?o:0;return r&&l?"".concat(r," ").concat(D(r,"group","groups"),", ").concat(l," ").concat(D(l,"student","students")):r?"".concat(r," ").concat(D(r,"group","groups")):l?"".concat(l," ").concat(D(l,"student","students")):"All students in classroom can view"}return i.type===j.y.Open?"Anyone in my school can view":i.type===j.y.Link?"Anyone with a link can view":i.type===j.y.Live?"Live now":"Anyone can view for 30 days"}(e)))));var t,n,o}var L=S(S(S(S({},j.y.Open,b.vn.School),j.y.Link,b.vn.Link),j.y.Classroom,b.vn.Classrooms),j.y.Live,b.vn.Play),P=S(S(S(S({},j.y.Open,"blue"),j.y.Link,"black"),j.y.Classroom,"teal"),j.y.Live,"purple"),T=S(S(S(S({},j.y.Open,"Open classroom"),j.y.Link,"Link"),j.y.Classroom,"Classroom"),j.y.Live,"Live");function D(e,t,n){return 1===e?t:n}function F(e){var t,n,o,i,c,l,s,d;console.log("ShareOptions",e);var u=null!==(o=null===(n=null===(t=e.shareLink)||void 0===t?void 0:t.link)||void 0===n?void 0:n.shortenedUrl)&&void 0!==o?o:"";return a.createElement("div",{className:"mb-4"},a.createElement("div",{className:"d-flex gap-2"},e.sharedObject&&a.createElement("div",{style:{minWidth:180},className:"d-flex flex-column"},a.createElement(k.k,{object:e.sharedObject,showVideoMetadata:!0,locationContext:E.LZ.Insights,imageOptions:{size:w.h2.Medium},showCollectionMask:!0,showVideoCount:!0})),a.createElement("div",{className:"d-flex flex-column justify-content-end"},a.createElement("div",{className:"flex-grow-1"}),e.shareLink&&a.createElement(I,{shareLink:e.shareLink}),a.createElement("div",{className:"flex-grow-1"}),a.createElement("div",{className:"d-flex gap-2"},a.createElement(r.h,{svgName:b.vn.Share,className:"btn btn-outline-dark",appLink:{application:x.O.SHARE_V2,action:C.e.ShareV2.LINK,args:[null===(i=e.sharedObject)||void 0===i?void 0:i.id],params:{entityType:null===(c=e.sharedObject)||void 0===c?void 0:c.type,shareId:null===(l=e.shareLink)||void 0===l?void 0:l.shareId}}},"Share a link or embed"),a.createElement(r.h,{svgName:b.vn.Download,onClick:function(){return console.log("QR code..")},className:"btn btn-outline-dark",appLink:{application:x.O.INSIGHTS,action:C.e.Insights.QR_CODE,params:{value:u}}},"QR code"))),a.createElement("div",{className:"flex-grow-1"}),e.pinCode&&a.createElement("div",{className:"border p-3 rounded-3 d-flex flex-column align-items-center"},a.createElement("p",null,"Go to ",a.createElement("a",{href:"https://staging.clickview.net/pin",target:"_blank",className:"text-info"},"staging.clickview.net/pin")," and enter PIN:"),a.createElement("div",{className:"d-flex align-items-center"},a.createElement("h4",{className:"mb-0 pb-0 me-1"},null===(s=e.pinCode)||void 0===s?void 0:s.code),a.createElement(g.CopyToClipboard,{text:null===(d=e.pinCode)||void 0===d?void 0:d.code},a.createElement(r.h,{svgName:b.vn.Copy,className:"btn"})),a.createElement(r.h,{svgName:b.vn.NewWindow,onClick:function(){console.log("Expanding code..")},className:"btn"})))))}var R=n(26203),_=n(10447),A=n(91574);function M(e){var t,n,g,E,k,w,C,x,O,N,S,I=o.a.useBasicFetch(s.L.config()),L=o.a.useBasicFetch(e.shareId&&A.o.getShareLink(e.shareId)),P=o.a.useBasicFetch(e.shareId&&A.o.getPincodeByShareId(e.shareId)),T=(0,f.r)(null).hasShareFlowV2,D=(0,v.T)().hasPermissions,M=[c.E.Video,c.E.Clip,c.E.Interactive].includes(e.typeId)&&h.M.getVideoRequest(e.objectId,e.typeId),V=o.a.useBasicFetch(M),z=e.typeId===c.E.Series&&u.J.series(e.objectId),B=o.a.useBasicFetch(z),q=e.typeId===c.E.Playlist&&d.C.getPlaylist(e.objectId),U=o.a.useBasicFetch(q),W=i.B.getAudienceAppLinkParams(),G=i.B.getDateRangeAppLinkParams(),Q=Object.assign(Object.assign({},W),G);return(0,m.F)(),(0,y.M)({title:null!==(E=null!==(n=null===(t=V.data)||void 0===t?void 0:t.name)&&void 0!==n?n:null===(g=B.data)||void 0===g?void 0:g.name)&&void 0!==E?E:null===(k=U.data)||void 0===k?void 0:k.name}),(0,p.v)([V,B,U]),a.createElement("div",{className:"px-3"},a.createElement(R.j,{video:null!==(C=null!==(w=V.data)&&void 0!==w?w:B.data)&&void 0!==C?C:U.data,dateRangeAppLinkParams:G,tabs:e.typeId===c.E.Interactive?(0,_.kj)(e.objectId,"shareOptions",Q,T):e.typeId===c.E.Clip?(0,_.$o)(e.objectId,"shareOptions",Q,T):e.typeId===c.E.Video?(0,_.$6)(e.objectId,"shareOptions",Q,T):e.typeId===c.E.Series?(0,_.lo)(e.objectId,"shareOptions",Q):e.typeId===c.E.Playlist?(0,_.W_)(e.objectId,"shareOptions",Q):void 0,hasAnalytics:D(l.C.ViewCustomerAnalytics),analyticsWebUrl:null===(x=I.data)||void 0===x?void 0:x.analyticsWebUrl,hasShareFlowV2:T,shareId:e.shareId}),a.createElement(F,{sharedObject:null!==(N=null!==(O=V.data)&&void 0!==O?O:B.data)&&void 0!==N?N:U.data,shareLink:L.data,pinCode:P.data}),a.createElement("div",{className:"d-flex align-items-center"},a.createElement("h3",{className:"p-0 m-0"},"Students who have viewed this video"),(null===(S=L.data)||void 0===S?void 0:S.type)===j.y.Classroom&&a.createElement(r.h,{svgName:b.vn.Plus,onClick:function(){return console.log("Add new student..")},className:"btn btn-outline-dark ms-auto"},"Add new student")),a.createElement("div",{className:"border rounded-1 d-flex flex-column mt-3"},a.createElement("div",{className:"d-flex flex-row border-bottom p-2"},a.createElement("h5",{className:"w-25"},"Name"),a.createElement("h5",{className:"w-25"},"Views"),a.createElement("h5",{className:"w-50"},"Engagement")),a.createElement("div",{className:"d-flex flex-column justify-content-center align-items-center p-5"},a.createElement("h3",{className:"mt-3 mb-3"},"⏱️ Waiting for students to view..."))))}},93975:(e,t,n)=>{"use strict";var a;n.d(t,{y:()=>a}),function(e){e.Link="Link",e.Classroom="Classroom",e.Open="Open",e.Live="Live"}(a||(a={}))},91574:(e,t,n)=>{"use strict";n.d(t,{o:()=>r});var a=n(99940),o=n(97395),i={namespace:"share-v2"},r={createShareLink:function(e,t,n,o){return{url:"/api/share/v2/shares",key:"create:share-v2:link",type:a.k.POST,data:e,normalizeOptions:i,invalidationKeys:["share:link:object:".concat(e.objectId),"privacy:".concat(e.objectId),"sent:shares","get:share-v2:shares:object"],success:t,error:n,always:o}},getShareLink:function(e,t,n,o){return{url:"/api/share/v2/shares/".concat(e),key:"get:share-v2:link:".concat(e),type:a.k.GET,normalizeOptions:i,success:t,error:n,always:o}},getSharesByObjectId:function(e,t,n,o){return{url:"/api/share/v2/shares/objects/".concat(e),key:"get:share-v2:shares:object:".concat(e),type:a.k.GET,normalizeOptions:i,success:t,error:n,always:o}},getSentShares:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0,n=arguments.length>2?arguments[2]:void 0,i=arguments.length>3?arguments[3]:void 0,r={scopeId:e.scopeId,limit:e.limit||25,offset:parseInt(e.cursor)||0},c=Object.values(r).join(":");return{url:o._.urlBuilder("/api/share/v2/shares/sent",r),key:"sent:shares-v2:".concat(c),formatData:function(e){return{data:e,count:e.length,pagination:{cursors:{next:r.offset+e.length}}}},type:a.k.GET,normalize:!1,success:t,error:n,always:i}},createPincode:function(e){return{url:"/api/share/v2/shares/".concat(e,"/pincode"),key:"create:share-v2:pincode",type:a.k.POST}},getPincode:function(e){return{url:"/api/share/v2/shares/pincode?code=".concat(e),key:"get:share-v2:pincode:".concat(e)}},getPincodeByShareId:function(e){return{url:"/api/share/v2/shares/".concat(e,"/pincode"),key:"get:share-v2:".concat(e,":pincode")}}}},91969:(e,t,n)=>{"use strict";var a=n(47033),o={"text/plain":"Text","text/html":"Url",default:"Text"};e.exports=function(e,t){var n,i,r,c,l,s,d=!1;t||(t={}),n=t.debug||!1;try{if(r=a(),c=document.createRange(),l=document.getSelection(),(s=document.createElement("span")).textContent=e,s.ariaHidden="true",s.style.all="unset",s.style.position="fixed",s.style.top=0,s.style.clip="rect(0, 0, 0, 0)",s.style.whiteSpace="pre",s.style.webkitUserSelect="text",s.style.MozUserSelect="text",s.style.msUserSelect="text",s.style.userSelect="text",s.addEventListener("copy",(function(a){if(a.stopPropagation(),t.format)if(a.preventDefault(),void 0===a.clipboardData){n&&console.warn("unable to use e.clipboardData"),n&&console.warn("trying IE specific stuff"),window.clipboardData.clearData();var i=o[t.format]||o.default;window.clipboardData.setData(i,e)}else a.clipboardData.clearData(),a.clipboardData.setData(t.format,e);t.onCopy&&(a.preventDefault(),t.onCopy(a.clipboardData))})),document.body.appendChild(s),c.selectNodeContents(s),l.addRange(c),!document.execCommand("copy"))throw new Error("copy command was unsuccessful");d=!0}catch(a){n&&console.error("unable to copy using execCommand: ",a),n&&console.warn("trying IE specific stuff");try{window.clipboardData.setData(t.format||"text",e),t.onCopy&&t.onCopy(window.clipboardData),d=!0}catch(a){n&&console.error("unable to copy using clipboardData: ",a),n&&console.error("falling back to prompt"),i=function(e){var t=(/mac os x/i.test(navigator.userAgent)?"⌘":"Ctrl")+"+C";return e.replace(/#{\s*key\s*}/g,t)}("message"in t?t.message:"Copy to clipboard: #{key}, Enter"),window.prompt(i,e)}}finally{l&&("function"==typeof l.removeRange?l.removeRange(c):l.removeAllRanges()),s&&document.body.removeChild(s),r()}return d}},44818:(e,t,n)=>{"use strict";function a(e){return a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.CopyToClipboard=void 0;var o=c(n(32735)),i=c(n(91969)),r=["text","onCopy","options","children"];function c(e){return e&&e.__esModule?e:{default:e}}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?l(Object(n),!0).forEach((function(t){v(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function d(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function u(e,t){return u=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},u(e,t)}function p(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function m(e){return m=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},m(e)}function v(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var y=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&u(e,t)}(f,e);var t,n,c,l,y=(c=f,l=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,t=m(c);if(l){var n=m(this).constructor;e=Reflect.construct(t,arguments,n)}else e=t.apply(this,arguments);return function(e,t){if(t&&("object"===a(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return p(e)}(this,e)});function f(){var e;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,f);for(var t=arguments.length,n=new Array(t),a=0;a<t;a++)n[a]=arguments[a];return v(p(e=y.call.apply(y,[this].concat(n))),"onClick",(function(t){var n=e.props,a=n.text,r=n.onCopy,c=n.children,l=n.options,s=o.default.Children.only(c),d=(0,i.default)(a,l);r&&r(a,d),s&&s.props&&"function"==typeof s.props.onClick&&s.props.onClick(t)})),e}return t=f,(n=[{key:"render",value:function(){var e=this.props,t=(e.text,e.onCopy,e.options,e.children),n=function(e,t){if(null==e)return{};var n,a,o=function(e,t){if(null==e)return{};var n,a,o={},i=Object.keys(e);for(a=0;a<i.length;a++)n=i[a],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a<i.length;a++)n=i[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,r),a=o.default.Children.only(t);return o.default.cloneElement(a,s(s({},n),{},{onClick:this.onClick}))}}])&&d(t.prototype,n),Object.defineProperty(t,"prototype",{writable:!1}),f}(o.default.PureComponent);t.CopyToClipboard=y,v(y,"defaultProps",{onCopy:void 0,options:void 0})},59087:(e,t,n)=>{"use strict";var a=n(44818).CopyToClipboard;a.CopyToClipboard=a,e.exports=a},47033:e=>{e.exports=function(){var e=document.getSelection();if(!e.rangeCount)return function(){};for(var t=document.activeElement,n=[],a=0;a<e.rangeCount;a++)n.push(e.getRangeAt(a));switch(t.tagName.toUpperCase()){case"INPUT":case"TEXTAREA":t.blur();break;default:t=null}return e.removeAllRanges(),function(){"Caret"===e.type&&e.removeAllRanges(),e.rangeCount||n.forEach((function(t){e.addRange(t)})),t&&t.focus()}}}}]);
|
|
2
|
-
//# sourceMappingURL=2636-63e5f2c9e6-lite.chunk.js.map
|