@clickview/lite 0.66.0-rc.0 → 0.66.0-rc.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. package/dist/bundles.json +1 -1
  2. package/dist/scripts/1958-46fa15e385-lite.chunk.js +2 -0
  3. package/dist/scripts/1958-46fa15e385-lite.chunk.js.map +1 -0
  4. package/dist/scripts/2431-d7d95fc5e6-lite.chunk.js +2 -0
  5. package/dist/scripts/2431-d7d95fc5e6-lite.chunk.js.map +1 -0
  6. package/dist/scripts/301-eccaa4c313-lite.chunk.js +2 -0
  7. package/dist/scripts/301-eccaa4c313-lite.chunk.js.map +1 -0
  8. package/dist/scripts/4359-e928b3edc9-lite.chunk.js +2 -0
  9. package/dist/scripts/4359-e928b3edc9-lite.chunk.js.map +1 -0
  10. package/dist/scripts/6965-46edd86c90-lite.chunk.js +2 -0
  11. package/dist/scripts/6965-46edd86c90-lite.chunk.js.map +1 -0
  12. package/dist/scripts/9182-95605d2b04-lite.chunk.js +2 -0
  13. package/dist/scripts/9182-95605d2b04-lite.chunk.js.map +1 -0
  14. package/dist/scripts/{bundle-80560f5679.min.js → bundle-f772739f5d.min.js} +3 -3
  15. package/dist/scripts/{bundle-80560f5679.min.js.map → bundle-f772739f5d.min.js.map} +1 -1
  16. package/package.json +1 -1
  17. package/dist/scripts/1958-0883952491-lite.chunk.js +0 -2
  18. package/dist/scripts/1958-0883952491-lite.chunk.js.map +0 -1
  19. package/dist/scripts/2431-f91a102c7b-lite.chunk.js +0 -2
  20. package/dist/scripts/2431-f91a102c7b-lite.chunk.js.map +0 -1
  21. package/dist/scripts/301-089f4b9e0c-lite.chunk.js +0 -2
  22. package/dist/scripts/301-089f4b9e0c-lite.chunk.js.map +0 -1
  23. package/dist/scripts/4359-55d1d30bcf-lite.chunk.js +0 -2
  24. package/dist/scripts/4359-55d1d30bcf-lite.chunk.js.map +0 -1
  25. package/dist/scripts/6965-3ae3c81898-lite.chunk.js +0 -2
  26. package/dist/scripts/6965-3ae3c81898-lite.chunk.js.map +0 -1
  27. package/dist/scripts/9182-db74c44406-lite.chunk.js +0 -2
  28. package/dist/scripts/9182-db74c44406-lite.chunk.js.map +0 -1
  29. /package/dist/scripts/{bundle-80560f5679.min.js.LICENSE.txt → bundle-f772739f5d.min.js.LICENSE.txt} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scripts/4359-e928b3edc9-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/components/actions/Actions.tsx","file:///app/packages/libs/shared/src/flight-requests/InsightsDemoRequests.ts","file:///app/packages/libs/shared/src/hooks/UseBatchFetch.ts","file:///app/packages/libs/shared/src/utils/AnalyticsRequestUtils.ts","file:///app/packages/projects/lite/src/apps/insights/constants/DemoInsights.ts","file:///app/packages/projects/lite/src/apps/insights/views/insights-admin-alert/InsightsAdminAlert.tsx","file:///app/packages/projects/lite/src/apps/my-shares/constants/MySharesDemoInsights.ts","file:///app/packages/projects/lite/src/apps/insights/components/insights-list/type-filter/insights-type-filters.scss","file:///app/packages/projects/lite/src/apps/insights/components/insights-list/type-filter/InsightsTypeFilters.tsx","file:///app/packages/projects/lite/src/apps/my-shares/components/my-shares-table-row/my-shares-table-row.scss","file:///app/packages/projects/lite/src/apps/my-shares/components/my-shares-table-row/MySharesTableRow.tsx","file:///app/packages/projects/lite/src/apps/my-shares/components/my-shares-demo-insight/MySharesDemoInsight.tsx","file:///app/packages/projects/lite/src/apps/my-shares/components/my-shares-table/empty-state/MySharesTableEmptyState.tsx","file:///app/packages/projects/lite/src/apps/my-shares/components/my-shares-table/MySharesTableUtils.tsx","file:///app/packages/projects/lite/src/apps/my-shares/components/my-shares-table/MySharesTable.tsx","file:///app/packages/projects/lite/src/apps/my-shares/components/my-shares-table/partial-loading/partial-my-shares-table.scss","file:///app/packages/projects/lite/src/apps/my-shares/components/my-shares-table/partial-loading/PartialMySharesTable.tsx","file:///app/packages/projects/lite/src/apps/my-shares/views/my-shares/empty-state/MySharesEmptyState.tsx","file:///app/packages/projects/lite/src/apps/my-shares/views/my-shares/MySharesViewUtils.tsx","file:///app/packages/projects/lite/src/apps/my-shares/views/my-shares/MySharesView.tsx","file:///app/packages/libs/shared/src/utils/ShareHelper.ts","file:///app/packages/projects/lite/src/shared/hooks/useSharesTable.ts"],"sourcesContent":["import { HttpVerbs } from 'libs/common/backbone/enums/HttpVerbs';\nimport { Flight } from 'libs/common/react/index';\n\nimport { MarkInteractiveAnswer } from 'libs/shared/apps/analytics/interfaces/MarkInteractiveAnswer';\nimport { InteractiveResultsReport } from 'libs/shared/apps/analytics/interfaces/requests/InteractiveResultsReport';\nimport { InteractivesPendingReviewsRequest } from 'libs/shared/apps/analytics/interfaces/requests/InteractivesPendingReviewsRequest';\nimport { AnalyticsRequestFilter, CurrentUser, InteractiveResultSet } from 'libs/shared/interfaces';\nimport { getAnalyticsRequestKey } from 'libs/shared/utils/AnalyticsRequestUtils';\n\ninterface InteractiveResultFilters {\n currentUserId: string;\n currentCustomerId: string;\n dateRange?: { start: string, end: string }\n userIds?: string | string[];\n classroomsAndGroups?: string | string[];\n}\n\nfunction getInteractiveResultFilters(\n currentUser: CurrentUser,\n filter: AnalyticsRequestFilter\n): InteractiveResultFilters {\n return {\n currentUserId: currentUser.id,\n currentCustomerId: currentUser.customerId,\n dateRange: { start: filter.start, end: filter.end },\n userIds: filter.userId,\n classroomsAndGroups: filter.groupId\n };\n}\n\nexport const InteractiveResultsRequests = {\n /** \n * This endpoint returns data with a lot of duplicated ids,\n * e.g. student answers to the same question will have the same id.\n * Because of that, we don't normalize.\n */\n interactiveResultSet(\n interactiveId: string,\n interactiveMetadataId: string,\n currentUser: CurrentUser,\n filter: AnalyticsRequestFilter,\n includePublicResults: boolean,\n success?: (data: InteractiveResultSet) => void,\n error?: (data: any) => void,\n always?: () => void\n ): Flight.Request {\n return {\n url: includePublicResults ?\n `/api/domain/v3/analytics/interactives/${interactiveId}/metadata/${interactiveMetadataId}` :\n `/api/domain/v2/analytics/interactives/${interactiveId}/metadata/${interactiveMetadataId}`,\n key: getAnalyticsRequestKey(`interactive:result:set:${interactiveId}:${interactiveMetadataId}`, filter),\n data: getInteractiveResultFilters(currentUser, filter),\n type: HttpVerbs.POST,\n normalize: false,\n formatData: (data: any) => {\n return {\n ...data,\n students: data.students.map((student: any) => {\n if (!student.name || !student.profileId)\n return student;\n\n return {\n ...student,\n publicUser: {\n profileId: student.profileId,\n name: student.name\n }\n };\n })\n };\n },\n success,\n error,\n always\n };\n },\n \n /**\n * As the response from `interactiveResultSet` isn't normalised, we need to invalidate the cache\n * to update the results data.\n */\n mark(\n interactiveId: string,\n interactiveMetadataId: string,\n answerId: string,\n data: MarkInteractiveAnswer,\n success?: () => void,\n error?: (data: any) => void,\n always?: () => void\n ): Flight.Request {\n return {\n url: `/api/domain/v1/analytics/answers/${answerId}`,\n key: `mark:answer:${answerId}:${data.resultId}`,\n type: HttpVerbs.PUT,\n data,\n normalize: false,\n invalidationKeys: `interactive:result:set:${interactiveId}:${interactiveMetadataId}`,\n success,\n error,\n always\n };\n },\n\n pendingReviews(data: InteractivesPendingReviewsRequest): Flight.Request {\n return {\n url: `/api/domain/v1/analytics/interactives/pending-reviews/summary`,\n key: `interactives:pending:reviews`,\n type: HttpVerbs.POST,\n data\n };\n },\n\n interactiveResultsReport(data: InteractiveResultsReport): Flight.Request {\n return {\n url: '{gateway}/v2/analytics/interactives/report',\n key: 'interactive:results:report',\n data,\n type: HttpVerbs.POST,\n normalize: false\n };\n }\n};","import * as React from 'react';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { Core } from 'libs/common/core';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsOptions } from 'libs/analytics/interfaces';\n\nimport { IconButton } from 'libs/shared/components/icon-button/IconButton';\nimport { SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { BaseObject } from 'libs/shared/interfaces';\n\nimport { ActionButton } from './ActionButton';\nimport { ActionsDropdown } from './ActionsDropdown';\n\nexport interface ActionOptions {\n order?: number;\n label?: string | (() => JSX.Element);\n appLink?: Core.AppLink;\n href?: string;\n onClick?: () => void;\n svgName?: string;\n className?: string;\n button?: boolean; // If true, a button will be rendered. Otherwise the action will be rendered in the dropdown.\n tooltip?: string;\n showSpinner?: boolean;\n showBorder?: boolean; // only works for button without text label\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n disabled?: boolean;\n openInNewTab?: boolean; // Only used if appLink or href is provided\n group?: string;\n lazyPlaceholder?: boolean;\n}\n\nexport type ActionGenerator = (obj: BaseObject) => ActionOptions[];\n\ninterface ActionsProps {\n actions: ActionOptions[];\n className?: string;\n actionsDropdownClassName?: string;\n dropdownToggleSvgSize?: SvgContainerSize;\n sortComponent?: JSX.Element;\n customSize?: boolean;\n fetchMore?: () => void;\n}\n\nexport function Actions(props: ActionsProps): JSX.Element {\n const orderedActions = React.useMemo(() => props.actions.sort((a, b) => a.order - b.order), [props.actions]);\n\n const buttonActions: ActionOptions[] = [];\n const moreActions: ActionOptions[] = [];\n\n orderedActions.forEach(a => {\n if (a.button)\n buttonActions.push(a);\n else\n moreActions.push(a);\n });\n\n let className = 'd-flex';\n\n if (props.className)\n className += ` ${props.className}`;\n\n if (!buttonActions.length && !moreActions.length)\n return <></>;\n\n return (\n <div className={className}>\n {buttonActions.length ? buttonActions.map((a, idx) => (\n <React.Fragment key={idx}>\n {(() => {\n if (a.label) {\n const label = FunctionHelper.isFunction(a.label)\n ? a.label\n : () => <>{a.label}</>;\n\n return (\n <ActionButton\n appLink={a.appLink}\n href={a.href}\n onClick={a.onClick}\n svgName={a.svgName}\n svgSize={props.dropdownToggleSvgSize}\n className={a.className}\n tooltip={a.tooltip}\n showSpinner={a.showSpinner}\n analyticsData={a.analyticsData}\n analyticsOptions={a.analyticsOptions}\n openInNewTab={a.openInNewTab}\n disabled={a.disabled}\n >\n {label()}\n </ActionButton>\n );\n }\n\n const iconButton = (\n <IconButton\n appLink={a.appLink}\n href={a.href}\n onClick={a.onClick}\n svgName={a.svgName}\n className={a.className}\n analyticsData={a.analyticsData}\n analyticsOptions={a.analyticsOptions}\n openInNewTab={a.openInNewTab}\n disabled={a.disabled}\n showBorder={a.showBorder}\n customSize={props.customSize}\n ariaLabel={a.tooltip}\n />\n );\n\n return a.tooltip\n ? <Tooltip title={a.tooltip} spanHack>{iconButton}</Tooltip>\n : iconButton;\n })()}\n </React.Fragment>\n )) : <></>}\n {props.sortComponent && props.sortComponent}\n {moreActions.length ? (\n <ActionsDropdown\n actions={moreActions}\n dropdownToggleClassName={props.actionsDropdownClassName}\n dropdownToggleSvgSize={props.dropdownToggleSvgSize}\n fetchMore={props.fetchMore}\n />\n ) : <></>}\n </div>\n );\n}","import { Flight } from 'libs/common/react/index';\n\nexport const InsightsDemoRequests = {\n interactive(): Flight.Request {\n return {\n url: `/mocks/insights/interactive.json`,\n key: `demo:interactive`,\n normalize: false\n };\n },\n\n interactiveMetadata(): Flight.Request {\n return {\n url: `/mocks/insights/interactive-metadata.json`,\n key: `demo:interactive:metadata`,\n normalize: false\n };\n },\n\n interactiveResults(): Flight.Request {\n return {\n url: `/mocks/insights/interactive-results.json`,\n key: `demo:interactive:results`,\n normalize: false\n };\n },\n\n videoViews(): Flight.Request {\n return {\n url: `/mocks/insights/video-views.json`,\n key: `demo:video:views`,\n normalize: false\n };\n },\n\n users(): Flight.Request {\n return {\n url: `/mocks/insights/users.json`,\n key: `demo:users`,\n normalize: false\n };\n },\n\n individualHeatmap(): Flight.Request {\n return {\n url: `/mocks/insights/individual-heatmap.json`,\n key: `demo:individual:heatmap`,\n normalize: false\n };\n },\n\n aggregateHeatmap(): Flight.Request {\n return {\n url: `/mocks/insights/aggregate-heatmap.json`,\n key: `demo:aggregate:heatmap`,\n normalize: false\n };\n }\n};","import { Flight } from 'libs/common/flight';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { BaseObject } from 'libs/shared/interfaces';\n\nexport interface UseBatchFetchResult<T extends BaseObject> {\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, 25);\n\n const requests = chunks.map(chunk => getRequest(ArrayHelper.uniq(chunk)));\n\n const responses = Flight.useBasicFetchAll<T[]>(requests);\n\n const items = responses.data.length\n ? ArrayHelper.flatten(responses.data).reduce((acc, item) => ({ ...acc, [item.id]: item }), {})\n : null;\n\n return {\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}","export const DEMO_INTERACTIVE_STAGING_ID = 'D8qRe7';\nexport const DEMO_INTERACTIVE_PROD_ID = 'GRWx6w';","import React from 'react';\n\nimport { StorageType } from 'libs/common/backbone/utils/LocalStorageHelper';\nimport { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { useViewModel } from 'libs/common/react/hooks/UseViewModel';\n\nimport { IconButton } from 'libs/shared/components/icon-button/IconButton';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { VideoTypes } from 'libs/shared/interfaces';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { ViewModelKeys } from 'shared/constants/LiteViewModels';\n\nconst namespace = 'lite.insightsAdminAlert';\n\ninterface InsightsAdminAlertProps {\n hasAnalytics: boolean;\n analyticsUrl: string;\n video?: VideoTypes;\n}\n\n// eslint-disable-next-line rulesdir/require-view-title\nexport function InsightsAdminAlert(props: InsightsAdminAlertProps) {\n const [ show, setShow ] = useViewModel(\n ViewModelKeys.INSIGHTS_ADMIN_ALERT,\n true,\n { storage: StorageType.LocalStorage }\n );\n\n function onDismiss() {\n setShow(false);\n }\n\n function getAnalyticsUrl() {\n if (!props.video) return props.analyticsUrl;\n\n let videoRoute = '';\n\n if (props.video.typeId === MasterType.Interactive)\n videoRoute = `/interactives/${props.video.id}/views`;\n\n if (props.video.typeId === MasterType.Video)\n videoRoute = `/videos/${props.video.id}/views`;\n\n if (props.video.typeId === MasterType.Clip)\n videoRoute = `/clips/${props.video.id}/views`;\n\n return UrlHelper.safeUrlConcat(props.analyticsUrl, videoRoute);\n }\n\n if (!props.hasAnalytics || !show)\n return <></>;\n\n return (\n <div role='alert' className='d-flex justify-content-between align-items-center bg-light-blue rounded p-2 mb-4'>\n <div>\n <Text namespace={namespace} phrase='adminAlert' />\n <a className='text-info' href={getAnalyticsUrl()} target='_blank'>\n <Text namespace={namespace} phrase='analytics' />\n </a>.\n </div>\n <IconButton svgName={cvSvgLibrary.Close} className='text-blue' onClick={onDismiss} />\n </div>\n );\n}","import { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\nimport { ShareType } from 'libs/shared/enums/ShareType';\nimport { UnionShareObject } from 'libs/shared/interfaces';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nimport { MySharesTableData } from 'apps/my-shares/components/my-shares-table/MySharesTableUtils';\n\nconst namespace = 'myShares.demoInsights';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport const DEMO_INSIGHTS_SHARE: MySharesTableData = {\n share: {\n objectTypeId: 34,\n type: ShareType.ShareLink\n } as UnionShareObject,\n sharedObject: null,\n shareRecipients: null,\n dateShared: new Date().toISOString(),\n viewCount: 23\n};\n\nconst DEMO_INSIGHTS_APPLINK: Core.AppLink = {\n application: AppChannels.MY_SHARES,\n action: Actions.MyShares.INTERACTIVE_OVERVIEW_DEMO\n};\n\nexport const DEMO_INSIGHTS_ACTIONS: ActionOptions[] = [\n {\n svgName: cvSvgLibrary.Analytics,\n label: getPhrase('demoInsights'),\n appLink: DEMO_INSIGHTS_APPLINK,\n group: 'insights',\n button: true,\n className: 'btn btn-outline-dark'\n }\n];","// extracted by mini-css-extract-plugin\nexport default {\"noCaret\":\"TMpTN\"};","import React from 'react';\nimport { Dropdown } from 'react-bootstrap';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { Checkbox } from 'libs/shared/components/forms/form-checkbox/Checkbox';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { Breakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport styles from './insights-type-filters.scss';\n\nconst namespace = 'insights.insightsTypeFilters';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface InsightsTypeFilterProps {\n appLink: Core.AppLink;\n typeIdParams: MasterType[];\n breakpoints: Breakpoints;\n}\n\nexport function InsightsTypeFilters(props: InsightsTypeFilterProps) {\n const isMobile = props.breakpoints.xs || props.breakpoints.sm;\n\n const moreFilterOptions = [\n ...(isMobile ? [{\n label: getPhrase('interactives'),\n filter: MasterType.Interactive\n }, {\n label: getPhrase('videos'),\n filter: MasterType.Video\n }, {\n label: getPhrase('clips'),\n filter: MasterType.Clip\n }] : []),\n {\n label: getPhrase('playlists'),\n filter: MasterType.Playlist\n }, {\n label: getPhrase('series'),\n filter: MasterType.Series\n }];\n\n const moreFiltersSelected = getMoreFiltersSelected();\n\n const [ showDropdown, setShowDropdown ] = React.useState(false);\n const [ moreFilters, setMoreFilters ] = React.useState(moreFiltersSelected);\n\n function applyFilter() {\n const currentParams = props.appLink.params as HashObject;\n\n Core.AppLinkHelper.trigger({\n ...props.appLink,\n params: {\n ...currentParams,\n typeId: ArrayHelper.uniq([\n ...props.typeIdParams,\n ...moreFilters\n ])\n }\n });\n }\n\n function resetFilters() {\n setMoreFilters([]);\n\n const currentParams = props.appLink.params as HashObject;\n\n Core.AppLinkHelper.trigger({\n ...props.appLink,\n params: {\n ...currentParams,\n typeId: []\n }\n });\n }\n\n function onToggleDropdown(isShowing: boolean): void {\n setShowDropdown(isShowing);\n\n if (isShowing)\n return;\n\n applyFilter();\n }\n\n function onClickApply() {\n applyFilter();\n setShowDropdown(false);\n }\n\n function onClickReset() {\n resetFilters();\n setShowDropdown(false);\n }\n\n function onSelectFilter(filter: MasterType) {\n setMoreFilters(ArrayHelper.addOrRemoveImmutable(moreFilters, filter));\n }\n\n function isFilterSelected(filter: MasterType) {\n if (isMobile) {\n return !!moreFilters.find(selectedFilter => selectedFilter === filter) ||\n !!props.typeIdParams.find(selectedFilter => selectedFilter === filter);\n }\n\n return !!moreFilters.find(selectedFilter => selectedFilter === filter);\n }\n\n function getMoreFiltersSelected() {\n return props.typeIdParams.filter(typeId =>\n moreFilterOptions.some(option => typeId === option.filter));\n }\n\n return (\n <div className='d-flex align-items-center fw-semibold'>\n <p className='d-none d-md-inline h6 mb-0'><Text namespace={namespace} phrase='filters' /></p>\n <div className='d-flex flex-grow-1 flex-md-grow-0 border-md-start border-light ps-0 ps-md-3 ms-0 ms-md-3 gap-2'>\n <div className='d-none d-md-flex gap-2'>\n <InsightTypeFilterButton\n typeId={MasterType.Interactive}\n typeFilters={props.typeIdParams}\n appLink={props.appLink}\n />\n <InsightTypeFilterButton typeId={MasterType.Video} typeFilters={props.typeIdParams} appLink={props.appLink} />\n <InsightTypeFilterButton typeId={MasterType.Clip} typeFilters={props.typeIdParams} appLink={props.appLink} />\n </div>\n <Dropdown onToggle={onToggleDropdown} show={showDropdown} className='col'>\n <Dropdown.Toggle\n className={`${styles.noCaret} col-12 col-md-auto`}\n variant={moreFiltersSelected.length ? 'dark' : 'outline-dark'}\n >\n <div className='d-flex align-items-center justify-content-center gap-2 fw-semibold mb-0'>\n <SvgContainer svgName={cvSvgLibrary.Filter} className='svg-container d-inline-block d-md-none' />\n <Text namespace={namespace} phrase={isMobile ? 'filters' : 'moreFilters'} />\n {moreFiltersSelected.length ? ` - ${moreFiltersSelected.length}` : ''}\n </div>\n </Dropdown.Toggle>\n\n <Dropdown.Menu>\n <div className='mx-1 px-2 py-1 mb-0'>\n <h2 className='h6 mb-3'><Text namespace={namespace} phrase='types' /></h2>\n <ul className='list-unstyled me-5'>\n {moreFilterOptions.map(option => (\n <li key={`${option.label}-filter`} className='my-1'>\n <Checkbox\n id={`${option.label}-filter`}\n label={option.label}\n onChange={() => onSelectFilter(option.filter)}\n checked={isFilterSelected(option.filter)}\n />\n </li>\n ))}\n </ul>\n <div className='d-flex justify-content-between'>\n <button onClick={onClickReset} className='btn btn-link text-secondary p-0 mb-0'>\n <Text namespace={namespace} phrase='resetAll' />\n </button>\n <button onClick={onClickApply} className='btn btn-link text-info p-0 mb-0'>\n <Text namespace={namespace} phrase='apply' />\n </button>\n </div>\n </div>\n </Dropdown.Menu>\n </Dropdown>\n </div>\n {!!props.typeIdParams.length &&\n <button onClick={resetFilters} className='d-none d-md-block btn btn-link ms-1'>\n <Text namespace={namespace} phrase='resetAll' />\n </button>\n }\n </div>\n );\n}\n\ninterface InsightTypeFilterButtonProps {\n typeId: MasterType;\n typeFilters: MasterType[];\n appLink: Core.AppLink;\n}\n\nfunction InsightTypeFilterButton(props: InsightTypeFilterButtonProps) {\n const selected = props.typeFilters.includes(props.typeId);\n\n const currentAppLink = props.appLink;\n const currentParams = currentAppLink.params as HashObject;\n\n const newType: MasterType[] = ArrayHelper.addOrRemoveImmutable(props.typeFilters, props.typeId);\n\n const newAppLink = {\n ...currentAppLink,\n params: {\n ...currentParams,\n typeId: newType\n }\n };\n\n function getTypePhrase(): string {\n if (props.typeId === MasterType.Video) return 'videos';\n if (props.typeId === MasterType.Clip) return 'clips';\n if (props.typeId === MasterType.Interactive) return 'interactives';\n }\n\n return (\n <AppLink\n className={`btn ${selected ? 'btn-dark' : 'btn-outline-dark'} fw-semibold`}\n appLink={newAppLink}\n ariaLabel={`${getPhrase('ariaFilterBy')}: ${getPhrase(getTypePhrase())}`}\n >\n <Text namespace={namespace} phrase={getTypePhrase()} />\n </AppLink>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"mySharesTable\":\"hyaYe\",\"mySharesHeader\":\"WjfsD\",\"tableBorder\":\"tHBWr\"};","import React from 'react';\nimport { format as formatDate } from 'timeago.js';\n\nimport { Core } from 'libs/common/backbone/index';\n\nimport { LocationContext, UserAction } from 'libs/analytics/interfaces';\n\nimport { SharedObjectImage } from 'libs/shared/apps/share/components/shared-object-image/SharedObjectImage';\nimport { ShareLinkHelper } from 'libs/shared/apps/share/utils/ShareLinkHelper';\nimport { SharableEntity, ShareViewHelper } from 'libs/shared/apps/share/views/share/ShareViewHelper';\nimport { ActionOptions, Actions } from 'libs/shared/components/actions/Actions';\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { TitleSubText } from 'libs/shared/components/title-sub-text/TitleSubText';\nimport { VideoSubText } from 'libs/shared/components/video-sub-text/VideoSubText';\nimport { ImageSize } from 'libs/shared/enums/Images';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { ShareType } from 'libs/shared/enums/ShareType';\nimport { Breakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { BaseObject, YearGroup } from 'libs/shared/interfaces';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { getObjectAppLink } from 'shared/utils/ObjectAppLinkHelper';\n\nimport { MySharesTableData } from 'apps/my-shares/components/my-shares-table/MySharesTableUtils';\nimport { SharedToPill } from 'apps/my-shares/components/shared-to-pill/SharedToPill';\n\nimport styles from './my-shares-table-row.scss';\n\nconst namespace = 'myShares.tableRow';\n\ninterface MySharesTableHeadingProps {\n heading: string;\n isFirst: boolean;\n}\n\nexport function MySharesTableHeading(props: MySharesTableHeadingProps) {\n return (\n <div className={`${styles.mySharesHeader} d-block d-lg-grid gap-3 px-3`}>\n <p className='fw-semibold mb-2 ms-n3'>{props.heading}</p>\n\n {props.isFirst &&\n <>\n <div className='d-none d-xl-inline' />\n <p className='d-none d-xl-inline fw-semibold mb-2'><Text namespace={namespace} phrase='sharedToHeading' /></p>\n <p className='d-none d-xl-inline fw-semibold mb-2'><Text namespace={namespace} phrase='dateSharedHeading' /></p>\n <p className='d-none d-xl-inline fw-semibold mb-2'><Text namespace={namespace} phrase='viewsHeading' /></p>\n </>\n }\n </div>\n );\n}\n\ninterface ShareObjectTitleProps {\n sharedObject: SharableEntity;\n requireMarking?: number;\n appLink: Core.AppLink;\n}\n\nfunction ShareObjectTitle(props: ShareObjectTitleProps) {\n const { sharedObject } = props;\n\n if (!sharedObject.name) {\n return <Text namespace={namespace} phrase='videoUnavailable' />;\n }\n\n if (VideoHelper.isVideoType(sharedObject) &&\n !VideoHelper.getCanBeConsumed(sharedObject)?.canNavigate) {\n return (\n <span className='clamp-2'>\n {sharedObject.name}\n </span>\n );\n }\n\n function getSubTextPhrase(): string {\n switch (sharedObject.typeId) {\n case MasterType.Series: return 'series';\n case MasterType.Playlist: return 'playlist';\n }\n }\n\n const subTextPhrase = getSubTextPhrase();\n\n return (\n <div>\n {VideoHelper.isVideoType(sharedObject) && (\n <VideoSubText\n type='series'\n video={sharedObject}\n appLink={'series' in sharedObject && sharedObject.series ? getObjectAppLink(sharedObject.series) : null}\n analyticsOptions={{ location: LocationContext.Insights }}\n className='d-inline clamp-1'\n />\n )}\n\n {subTextPhrase &&\n <TitleSubText>\n <Text namespace={namespace} phrase={subTextPhrase} />\n </TitleSubText>\n }\n\n <AppLink\n appLink={props.appLink}\n className='clamp-1'\n analyticsData={{ id: sharedObject.id, name: sharedObject.name }}\n analyticsOptions={{\n entity: ShareViewHelper.getAnalyticsEntity(sharedObject.type),\n actionType: UserAction.Click,\n location: LocationContext.MyShares\n }}\n >\n {sharedObject.name}\n </AppLink>\n\n {!!props.requireMarking && (\n <div className={`font-size-sm d-flex align-items-center bg-light-ultramarine text-ultramarine rounded-pill w-fit mt-1 px-2`}>\n <Text namespace={namespace} phrase='requireMarking' options={{ smartCount: props.requireMarking }} />\n </div>\n )}\n </div>\n );\n}\n\ninterface MyShareRowProps extends React.PropsWithChildren {\n shareData: MySharesTableData;\n yearGroups?: YearGroup[];\n imageCdnUrl?: string;\n breakpoints?: Breakpoints;\n getObjectAppLink: (object: BaseObject) => Core.AppLink;\n getObjectActions: (object: BaseObject) => ActionOptions[];\n}\n\nexport function MySharesTableRow(props: MyShareRowProps) {\n const { shareData } = props;\n\n const sharedObject = shareData.sharedObject;\n\n const shareLinkText = shareData.share.type === ShareType.ShareLink &&\n ShareLinkHelper.getIconAndText({\n entity: sharedObject,\n entityTypeId: sharedObject.typeId,\n hasStudentExp: false,\n isPasswordProtected: shareData.share.isPasswordProtected,\n linkExpireDate: shareData.share.linkExpireDate,\n privacy: {\n privacy: shareData.privacy,\n overrideRestrictions: shareData.overrideRestrictions\n },\n status: shareData.share.status,\n yearGroups: props.yearGroups\n });\n\n const isMobile = props.breakpoints.xs || props.breakpoints.sm;\n const isDesktop = props.breakpoints.xl || props.breakpoints.xxl;\n const isCollection = sharedObject.typeId === MasterType.Playlist || sharedObject.typeId === MasterType.Series;\n\n return (\n <div key={shareData.share.id} className={`${styles.mySharesTable} ${styles.tableBorder} position-relative d-flex d-xl-grid flex-column flex-md-row align-items-md-center p-0 p-md-3 gap-3`}>\n <div className='col-12 col-md-3 col-xl-auto'>\n <SharedObjectImage\n object={sharedObject}\n appLink={props.getObjectAppLink(sharedObject)}\n showVideoMetadata\n locationContext={LocationContext.MyShares}\n imageOptions={{ size: ImageSize.Medium }}\n requireMarking={isMobile && shareData.pendingReview}\n showCollectionMask\n showVideoCount\n />\n </div>\n <div className='d-flex flex-column align-items-xl-center flex-xl-row gap-1 gap-xl-3'>\n <div className='col-xl-4'>\n <ShareObjectTitle\n sharedObject={shareData.sharedObject}\n appLink={props.getObjectAppLink(sharedObject)}\n requireMarking={isDesktop && shareData.pendingReview}\n />\n </div>\n {props.children}\n\n <div className='d-flex align-items-center gap-2 gap-xl-0 pe-4 pe-md-0 col-xl-8'>\n <div className='col-xl-5'>\n <SharedToPill\n shareLinkText={shareLinkText?.text}\n shareRecipients={shareData.shareRecipients}\n imageCdnUrl={props.imageCdnUrl}\n />\n </div>\n <span className='d-inline d-xl-none'>·</span>\n <p className='mb-0 col-xl-4'>{formatDate(shareData.dateShared)}</p>\n {!isCollection ? (\n <>\n <span className='d-inline d-xl-none'>·</span>\n <p className='mb-0 col-xl-3'><Text namespace={namespace} phrase='views' options={{ smartCount: shareData.viewCount }} /></p>\n </>\n ) : (\n <p className='mb-0 d-none d-xl-block'>-</p>\n )}\n </div>\n\n {!isDesktop && !isMobile && !!shareData.pendingReview && (\n <div className='font-size-sm d-flex align-items-center bg-light-ultramarine text-ultramarine rounded-pill w-fit mt-1 px-2'>\n <Text namespace={namespace} phrase='requireMarking' options={{ smartCount: shareData.pendingReview }} />\n </div>\n )}\n </div>\n\n <Actions\n className={`position-absolute bottom-0 end-0 position-md-static justify-content-end gap-2 ms-auto`}\n actionsDropdownClassName='btn-outline-dark rounded py-2'\n dropdownToggleSvgSize={SvgContainerSize.Standard}\n actions={props.getObjectActions(sharedObject)}\n />\n </div>\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { Text } from 'libs/shared/components/text/Text';\nimport { InteractiveMetadata } from 'libs/shared/interfaces';\n\nimport { DEMO_INTERACTIVE_PROD_ID, DEMO_INTERACTIVE_STAGING_ID } from 'apps/insights/constants/DemoInsights';\nimport { MySharesTableHeading, MySharesTableRow } from 'apps/my-shares/components/my-shares-table-row/MySharesTableRow';\nimport { DEMO_INSIGHTS_ACTIONS, DEMO_INSIGHTS_SHARE } from 'apps/my-shares/constants/MySharesDemoInsights';\n\nconst namespace = 'myShares.demoInsights';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface MySharesDemoInsightProps {\n demoInteractive: InteractiveMetadata;\n liteUrl: string;\n}\n\nexport function MySharesDemoInsight(props: MySharesDemoInsightProps) {\n const isStaging = props.liteUrl.includes('staging');\n\n function getDemoInteractive() {\n return {\n ...props.demoInteractive,\n id: isStaging ? DEMO_INTERACTIVE_STAGING_ID : DEMO_INTERACTIVE_PROD_ID\n };\n }\n\n return (\n <div>\n <MySharesTableHeading heading={getPhrase('demoHeading')} isFirst={true} />\n\n <div className='rounded-3 border border-light bg-light-orange mb-4'>\n <MySharesTableRow\n shareData={{ ...DEMO_INSIGHTS_SHARE, sharedObject: getDemoInteractive() }}\n getObjectActions={() => DEMO_INSIGHTS_ACTIONS}\n getObjectAppLink={() => null}\n >\n <div className='d-inline-block rounded-pill bg-light-blue text-info font-size-sm mt-1 px-2'>\n <Text namespace={namespace} phrase='demoInsightPill' />\n </div>\n </MySharesTableRow>\n </div>\n </div>\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nconst namespace = 'myShares.mySharesTableEmptyState';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function MySharesTableEmptyState(): JSX.Element {\n return (\n <EmptyState>\n <EmptyState.Image src={ImageUrls.EmptyStates.Share.SHARED_BY_ME} size='small' />\n <EmptyState.Heading>\n {getPhrase('heading')}\n </EmptyState.Heading>\n <EmptyState.Info>{getPhrase('info')}</EmptyState.Info>\n <EmptyState.Cta appLink={{ application: AppChannels.DASHBOARD, action: Actions.Dashboard.HOME }} text={getPhrase('cta')} />\n </EmptyState>\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { InteractivesPendingReviews } from 'libs/shared/apps/analytics/interfaces/response/InteractivesPendingReviewsResponse';\nimport { SharePrivacy } from 'libs/shared/apps/share/interfaces/SharePrivacy';\nimport { ShareHelper } from 'libs/shared/apps/share/utils/ShareHelper';\nimport { SharableEntity, SharableRecipient } from 'libs/shared/apps/share/views/share/ShareViewHelper';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { ShareType } from 'libs/shared/enums/ShareType';\nimport { InteractiveMetadata, UnionShareObject } from 'libs/shared/interfaces';\n\nconst namespace = 'myShares.mySharesTable';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nfunction getDateShared(share: UnionShareObject): string {\n if (share.type === ShareType.ShareLink || !share?.recipients?.length)\n return share.dateCreated;\n\n const datesShared = share.recipients.map(r => r.dateShared);\n\n datesShared.sort((date1, date2) => {\n if (DateHelper.isSame(date1, date2))\n return 0;\n\n return DateHelper.isAfter(date1, date2) ? 1 : -2;\n });\n\n\n if (!datesShared.length)\n return '';\n\n return ArrayHelper.last(datesShared);\n}\n\nexport interface MySharesTableData {\n share: UnionShareObject;\n sharedObject: SharableEntity;\n dateShared: string;\n shareRecipients?: SharableRecipient[];\n viewCount: number;\n pendingReview?: number;\n privacy?: SharePrivacy;\n overrideRestrictions?: boolean;\n}\n\ntype TableDataGroupings = { [date: string]: MySharesTableData[] };\n\nexport function useGetMySharesData(\n sentShares: UnionShareObject[],\n sharedObjects: SharableEntity[],\n shareRecipients: SharableRecipient[],\n groupByDate: boolean,\n interactivesPendingReviews: InteractivesPendingReviews[],\n dependencies: (string | boolean)[]\n): TableDataGroupings {\n return React.useMemo(() => {\n const tableData: MySharesTableData[] = [];\n\n const sharedObjectsMap = sharedObjects.reduce<Record<string, SharableEntity>>(\n (map, obj) => ({ [obj.id]: obj, ...map }),\n {}\n );\n const shareRecipientsMap = shareRecipients.reduce<Record<string, SharableRecipient>>(\n (map, obj) => ({ [obj.id]: obj, ...map }),\n {}\n );\n\n const interactivesPendingReviewsMap = interactivesPendingReviews?.reduce<\n Record<string, InteractivesPendingReviews>\n >(\n (map, obj) => ({ [obj.interactiveId]: obj, ...map }),\n {}\n );\n\n sentShares.forEach(s => {\n const sharedObject = sharedObjectsMap[s.objectId];\n\n let recipients: SharableRecipient[] | null = null;\n\n if (s.type === ShareType.DirectShare) {\n recipients = [];\n\n s.recipients?.forEach(r => {\n const recipient = shareRecipientsMap[r.id];\n\n if (recipient)\n recipients.push(recipient);\n });\n }\n\n // Skip if we don't have access to the shared object (e.g. if it's been deleted)\n if (sharedObject) {\n const pendingReview = sharedObject.typeId === MasterType.Interactive &&\n interactivesPendingReviewsMap?.[(sharedObject as InteractiveMetadata).interactiveId];\n\n tableData.push({\n share: s,\n sharedObject,\n shareRecipients: recipients,\n dateShared: getDateShared(s),\n viewCount: s.viewCount ?? 0,\n pendingReview: pendingReview?.pendingReviewCount,\n ...(s.type === ShareType.ShareLink ? {\n privacy: s.privacy,\n overrideRestrictions: s.overrideRestrictions\n } : {})\n });\n }\n });\n\n if (!groupByDate)\n return { [getPhrase('title')]: tableData };\n\n return ShareHelper.groupByDateShared(tableData);\n }, [...dependencies]);\n}","import React from 'react';\n\nimport { Core } from 'libs/common/core';\n\nimport { InteractivesPendingReviews } from 'libs/shared/apps/analytics/interfaces/response/InteractivesPendingReviewsResponse';\nimport { SharableEntity, SharableRecipient } from 'libs/shared/apps/share/views/share/ShareViewHelper';\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\nimport { Breakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { BaseObject, UnionShareObject, YearGroup } from 'libs/shared/interfaces';\n\nimport { useGetMySharesData } from 'apps/my-shares/components/my-shares-table/MySharesTableUtils';\nimport { MySharesTableHeading, MySharesTableRow } from 'apps/my-shares/components/my-shares-table-row/MySharesTableRow';\n\ninterface MySharesTableProps {\n sentShares: UnionShareObject[];\n sharedObjects: SharableEntity[];\n shareRecipients: SharableRecipient[];\n interactivesPendingReview: InteractivesPendingReviews[];\n getObjectAppLink: (object: BaseObject) => Core.AppLink;\n getObjectActions: (object: BaseObject) => ActionOptions[];\n imageCdnUrl: string;\n groupByDateShared?: boolean;\n showStatus?: boolean;\n showViewCount?: boolean;\n dependencies?: any[];\n breakpoints?: Breakpoints;\n yearGroups?: YearGroup[];\n hasDemoInsights?: boolean;\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 props.dependencies\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 border-light'>\n {data[heading].map(shareData => (\n <MySharesTableRow\n key={shareData.share.id}\n shareData={shareData}\n yearGroups={props.yearGroups}\n getObjectActions={props.getObjectActions}\n getObjectAppLink={props.getObjectAppLink}\n imageCdnUrl={props.imageCdnUrl}\n breakpoints={props.breakpoints}\n />\n ))}\n </div>\n </div>\n ))}\n </>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"table\":\"elIjR\",\"tableHeader\":\"xJKgP\",\"heading\":\"iWHol\",\"image\":\"TMQxq\",\"avatar\":\"_3GY1C\",\"date\":\"nz3va\",\"views\":\"FpDfX\",\"actions\":\"pOtyK\"};","import React from 'react';\n\nimport styles from './partial-my-shares-table.scss';\n\nfunction PartialRow(): JSX.Element {\n return (\n <div className={`${styles.table} position-relative d-flex d-xl-grid flex-column flex-md-row align-items-md-center p-0 p-md-3 gap-3`}>\n <div className='col-12 col-md-3 col-xl-auto'>\n <div className={`partial-loading-background rounded ratio ratio-16x9 `} />\n </div>\n <div className='d-flex flex-column align-items-xl-center flex-xl-row gap-1 gap-xl-3'>\n <div className={`partial-loading-background col-8 col-xl-4`}>&nbsp;</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`}>&nbsp;</div>\n </div>\n <div className='col-xl-3'>\n <div className={`${styles.views} partial-loading-background`}>&nbsp;</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}`}>&nbsp;</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}`}>&nbsp;</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}`}>&nbsp;</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}`}>&nbsp;</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-light'>\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}`}>&nbsp;</div>\n\n <div className='d-flex flex-column rounded-3 mb-4 gap-4 gap-md-0 border-md border-light'>\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}`}>&nbsp;</div>\n\n <div className='d-flex flex-column rounded-3 mb-4 gap-4 gap-md-0 border-md border-light'>\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n <PartialRow />\n </div>\n </div>\n </>\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { EntityType, LocationContext, SignUpDescriptors, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\nimport { Text } from 'libs/shared/components/text/Text';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\n\nconst namespace = 'myShares.mySharesEmptyState';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function MySharesEmptyState() {\n return (\n <EmptyState>\n <EmptyState.Image src={ImageUrls.EmptyStates.MY_VIDEOS_PUBLIC} altText={getPhrase('heading')} />\n <EmptyState.Heading><Text namespace={namespace} phrase='heading' /></EmptyState.Heading>\n <EmptyState.Info><Text namespace={namespace} phrase='info' /></EmptyState.Info>\n <EmptyState.Cta\n text={LanguageService.getPhrase(namespace, 'cta')}\n appLink={{\n application: AppChannels.SIGN_UP,\n action: Actions.SignUp.SIGN_UP\n }}\n analyticsData={{}}\n analyticsOptions={{\n actionType: UserAction.Click,\n location: LocationContext.MySharesLanding,\n entity: EntityType.AppLink,\n workflowPhase: WorkflowPhase.Start,\n descriptor: SignUpDescriptors.SignUp\n }}\n />\n </EmptyState>\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { EventVersion, ShareDescriptors, UserAction, WorkflowPhase } from 'libs/analytics/interfaces';\n\nimport { AudienceQueryParams } from 'libs/shared/apps/analytics/interfaces/AudienceQueryParams';\nimport { ActionOptions } from 'libs/shared/components/actions/Actions';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { Breakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { BaseObject } from 'libs/shared/interfaces';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { getInsightsAppLink, getShareAppLink } from 'shared/utils/ObjectAppLinkHelper';\n\nconst namespace = 'myShares.myShares';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport function getShareObjectActions(\n sharedObject: BaseObject,\n audienceParams?: AudienceQueryParams,\n hasInsights?: boolean,\n isPlugin?: boolean,\n breakpoints?: Breakpoints\n): ActionOptions[] {\n const insightObjectActions: ActionOptions[] = [];\n\n const isMobile = breakpoints.xs || breakpoints.sm;\n\n const buttonProps = {\n button: !isMobile,\n className: 'btn btn-outline-dark'\n };\n\n if (VideoHelper.isVideoType(sharedObject)) {\n const { canConsume } = VideoHelper.getCanBeConsumed(sharedObject);\n\n if (!canConsume)\n return [];\n\n if (isPlugin) {\n return [{\n label: getPhrase('embedVideo'),\n appLink: {\n application: AppChannels.DEFAULT,\n action: Actions.Default.PLUGIN_SHARE,\n args: [sharedObject.id],\n params: { entityType: sharedObject.type }\n },\n ...buttonProps,\n analyticsOptions: {\n actionType: UserAction.Share,\n descriptor: ShareDescriptors.PluginEmbed,\n workflowPhase: WorkflowPhase.Start,\n eventVersion: EventVersion.V5\n }\n }];\n }\n\n if (hasInsights)\n insightObjectActions.push({\n svgName: cvSvgLibrary.Analytics,\n label: !breakpoints.md && getPhrase('viewInsights'),\n tooltip: breakpoints.md && getPhrase('viewInsights'),\n appLink: { ...getInsightsAppLink(sharedObject), params: audienceParams },\n group: 'insights',\n ...buttonProps\n });\n }\n\n insightObjectActions.push({\n label: !breakpoints.md && getPhrase('share'),\n tooltip: breakpoints.md && getPhrase('share'),\n svgName: cvSvgLibrary.Share,\n appLink: getShareAppLink(sharedObject),\n group: 'share',\n ...buttonProps\n });\n\n return insightObjectActions;\n}\n\nexport function useGetShareObjectActions(\n audienceParams?: AudienceQueryParams,\n hasInsights?: boolean,\n isPlugin?: boolean,\n breakpoints?: Breakpoints\n): ((object: BaseObject) => ActionOptions[]) | null {\n const audienceParamsKey = JSON.stringify(audienceParams);\n\n return React.useCallback(\n (object: BaseObject) => getShareObjectActions(\n object,\n audienceParams,\n hasInsights,\n isPlugin,\n breakpoints\n ),\n [ audienceParamsKey, ...Object.values(breakpoints || {}) ]\n );\n}\n\n\nexport function getTypeIdParams(params: HashObject): MasterType[] {\n const typeIdParams = params?.typeId;\n\n if (!typeIdParams) return [];\n\n if (typeof typeIdParams === 'string')\n return [+typeIdParams];\n\n return params?.typeId.map((typeId: MasterType) => +typeId) || [];\n}","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/react/index';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsFilterHelper } from 'libs/shared/apps/analytics/utils/AnalyticsFilterUtils';\nimport { AudienceFilterView } from 'libs/shared/apps/analytics/views/audience-filter/AudienceFilterView';\nimport { GetSentItemsParams } from 'libs/shared/apps/share/interfaces/requests/GetSentItemsParams';\nimport { InfiniteScrollFooter } from 'libs/shared/components/infinite-scroll-footer/InfiniteScrollFooter';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { LocalPermissionName, PermissionName } from 'libs/shared/enums/PermissionName';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { CustomerRequests } from 'libs/shared/flight-requests/CustomerRequests';\nimport { InsightsDemoRequests } from 'libs/shared/flight-requests/InsightsDemoRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useAccessPolicy } from 'libs/shared/hooks/useAccessPolicy';\nimport { useBreakpoints } from 'libs/shared/hooks/useBreakpoints';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { useSettings } from 'libs/shared/hooks/useSettings';\nimport { Config, CurrentUser, InteractiveMetadata, YearGroup } from 'libs/shared/interfaces';\n\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { usePluginHelper } from 'shared/hooks/use-plugin-helper/usePluginHelper';\nimport { useSharesTable } from 'shared/hooks/useSharesTable';\nimport { getObjectAppLink } from 'shared/utils/ObjectAppLinkHelper';\n\nimport { InsightsTypeFilters } from 'apps/insights/components/insights-list/type-filter/InsightsTypeFilters';\nimport { InsightsAdminAlert } from 'apps/insights/views/insights-admin-alert/InsightsAdminAlert';\nimport { MySharesDemoInsight } from 'apps/my-shares/components/my-shares-demo-insight/MySharesDemoInsight';\nimport { MySharesTableEmptyState } from 'apps/my-shares/components/my-shares-table/empty-state/MySharesTableEmptyState';\nimport { MySharesTable } from 'apps/my-shares/components/my-shares-table/MySharesTable';\nimport { PartialMySharesTable } from 'apps/my-shares/components/my-shares-table/partial-loading/PartialMySharesTable';\nimport { MySharesEmptyState } from 'apps/my-shares/views/my-shares/empty-state/MySharesEmptyState';\nimport { getTypeIdParams, useGetShareObjectActions } from 'apps/my-shares/views/my-shares/MySharesViewUtils';\n\nconst namespace = 'myShares.myShares';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface MySharesViewProps {\n queryParams: HashObject;\n}\n\nexport function MySharesView(props: MySharesViewProps) {\n const { hasPermissions, hasLocalPermissions } = usePermissions();\n const { hasInsights } = useSettings(null);\n\n const { isPlugin } = usePluginHelper();\n\n const breakpoints = useBreakpoints();\n\n const typeIdAppLinkParams = getTypeIdParams(props.queryParams);\n const audienceAppLinkParams = AnalyticsFilterHelper.getAudienceAppLinkParams();\n const currentAppLink = getCurrentAppLink();\n const sentSharesParams = getSentSharesFilter();\n\n\n const shouldFetch = !hasLocalPermissions(LocalPermissionName.ViewMySharesLanding) ||\n hasPermissions(PermissionName.ViewMyShares) && hasInsights;\n\n const {\n sentShares,\n sharedObjects,\n shareRecipients,\n interactivesPendingReview,\n isFetching,\n showPartialLoading,\n nextCursor,\n hasMore,\n fetchNext,\n imageCdnUrl,\n dependencies\n } = useSharesTable(sentSharesParams, true, shouldFetch);\n\n useSetPageMetadata({ title: getPhrase('myShares') });\n const { hasClassrooms } = useSettings(null);\n\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const yearGroups = Flight.useBasicFetch<YearGroup[]>(\n currentUser.data?.isAuthenticated && CustomerRequests.yearGroups(currentUser.data.customerId)\n );\n\n const hasInsightsPermission = hasInsights && hasPermissions(PermissionName.ViewInsights);\n\n const getSharedObjectActions = useGetShareObjectActions(\n audienceAppLinkParams,\n hasInsightsPermission,\n isPlugin,\n breakpoints\n );\n\n const { accessPolicy } = useAccessPolicy();\n\n const showDemoInsight = accessPolicy?.metadata?.hasDemoInsights;\n\n const demoInteractive = Flight.useBasicFetch<InteractiveMetadata>(showDemoInsight &&\n InsightsDemoRequests.interactiveMetadata());\n\n React.useEffect(() => {\n if (!(hasPermissions(PermissionName.ViewMyShares) && hasInsights))\n Core.LocationUtils.PageLoad('/');\n }, [shouldFetch]);\n\n function getSentSharesFilter(): GetSentItemsParams {\n return {\n recipientUserId: audienceAppLinkParams?.users,\n recipientGroupId: [ ...audienceAppLinkParams?.classroomGroups || [], ...audienceAppLinkParams?.classrooms || [] ],\n objectTypeId: typeIdAppLinkParams.length ? typeIdAppLinkParams : undefined\n };\n }\n\n function getCurrentAppLink(): Core.AppLink {\n return {\n application: AppChannels.MY_SHARES,\n action: Actions.MyShares.HOME,\n params: {\n ...audienceAppLinkParams,\n typeId: typeIdAppLinkParams\n }\n };\n }\n\n if (!shouldFetch)\n return <MySharesEmptyState />;\n\n return (\n <div className='px-3'>\n <InsightsAdminAlert\n analyticsUrl={config.data?.analyticsWebUrl}\n hasAnalytics={hasPermissions(PermissionName.ViewCustomerAnalytics)}\n />\n\n <div className='d-flex justify-content-between border-bottom pb-3 mb-3'>\n <h1 className='mb-1'><Text namespace={namespace} phrase='myShares' /></h1>\n\n <AudienceFilterView hasClassroomsFeature={hasClassrooms} />\n </div>\n\n <div className='mb-3'>\n <InsightsTypeFilters appLink={currentAppLink} typeIdParams={typeIdAppLinkParams} breakpoints={breakpoints} />\n </div>\n\n {showDemoInsight && demoInteractive.data &&\n <MySharesDemoInsight demoInteractive={demoInteractive.data} liteUrl={config.data?.liteUrl} />\n }\n\n {(() => {\n if (showPartialLoading)\n return <PartialMySharesTable />;\n\n if (!sentShares.length)\n return (\n <MySharesTableEmptyState />\n );\n\n return (\n <>\n <MySharesTable\n sentShares={sentShares}\n sharedObjects={sharedObjects}\n shareRecipients={shareRecipients}\n interactivesPendingReview={interactivesPendingReview}\n getObjectAppLink={getObjectAppLink}\n getObjectActions={getSharedObjectActions}\n imageCdnUrl={imageCdnUrl}\n groupByDateShared\n dependencies={dependencies}\n breakpoints={breakpoints}\n yearGroups={yearGroups.data}\n hasDemoInsights={showDemoInsight}\n />\n {(hasMore || isFetching) &&\n <InfiniteScrollFooter isFetching={isFetching} fetchNext={fetchNext} nextCursor={nextCursor} />\n }\n </>\n );\n })()}\n </div>\n );\n}","import { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { ShareType } from 'libs/shared/enums/ShareType';\nimport { DirectShare, UnionShareObject } from 'libs/shared/interfaces';\n\nexport const ShareHelper = {\n getDirectShares(sentShares: UnionShareObject[]): DirectShare[] {\n return sentShares?.filter(s => s.type === ShareType.DirectShare) as DirectShare[] ?? [];\n },\n \n getRecipientIds(sentShares: UnionShareObject[]): string[] {\n return ArrayHelper.uniq(ArrayHelper.flatten(ShareHelper.getDirectShares(sentShares).map(d => d.recipients ?? [])), 'id').map(r => r.id);\n }\n};","import React from 'react';\n\nimport { 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 { InteractivesPendingReviews } from 'libs/shared/apps/analytics/interfaces/response/InteractivesPendingReviewsResponse';\nimport { ShareRequests } from 'libs/shared/apps/share/flight-requests/ShareRequests';\nimport { GetSentItemsParams } from 'libs/shared/apps/share/interfaces/requests/GetSentItemsParams';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useBatchFetch, UseBatchFetchResult } from 'libs/shared/hooks/UseBatchFetch';\nimport { useInfiniteList } from 'libs/shared/hooks/UseInfiniteList';\nimport { BaseObject, Config, CurrentUser, InteractiveMetadata, UnionShareObject } from 'libs/shared/interfaces';\nimport { ShareHelper } from 'libs/shared/utils/ShareHelper';\n\n\nexport function getBatchFetchResultAsArray(result: UseBatchFetchResult<BaseObject>): BaseObject[] {\n return result.items ? Object.values(result.items) : [];\n}\n\n/**\n * As we are displaying data in an infinite list, we only want to show partial loading\n * on the initial fetch.\n * Whenever a new page is fetched, `sharedObjects.data` and `recipients.data` will be `undefined`,\n * as their key will change. So instead of using those values to determine whether or not to\n * show partial loading, we save the first time that they load in state and then use that.\n */\nexport function usePartialLoading(\n sentShare: UnionShareObject[],\n sharedObjectsFetchResult: UseBatchFetchResult<BaseObject>,\n recipientIds: string[],\n recipientsFetchResult: UseBatchFetchResult<BaseObject>,\n filterKey: string\n): boolean {\n const [ initialSharedObjectsLoaded, setInitialSharedObjectsLoaded ] = React.useState(\n !!sharedObjectsFetchResult.items\n );\n const [ initialRecipientsLoaded, setInitialRecipientsLoaded ] = React.useState(\n !!recipientsFetchResult.items\n );\n\n React.useEffect(() => {\n setInitialSharedObjectsLoaded(false);\n setInitialRecipientsLoaded(false);\n }, [filterKey]);\n\n React.useEffect(() => {\n if (!sharedObjectsFetchResult.isFetching && sharedObjectsFetchResult.items)\n setInitialSharedObjectsLoaded(true);\n }, [ sharedObjectsFetchResult.isFetching, filterKey ]);\n\n React.useEffect(() => {\n if (!recipientsFetchResult.isFetching && recipientsFetchResult.items)\n setInitialRecipientsLoaded(true);\n }, [ recipientsFetchResult.isFetching, filterKey ]);\n\n if (sentShare && !sentShare.length)\n return false;\n\n return !sentShare\n || !initialSharedObjectsLoaded\n || (recipientIds.length && !initialRecipientsLoaded);\n}\n\nexport function useSharesTable(\n params?: GetSentItemsParams,\n interactiveInsights?: boolean,\n shouldFetch: boolean = true\n) {\n const fetch = Flight.useGetFetch();\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n\n const getRequest = (cursor?: string) => shouldFetch && ShareRequests.sentShare({\n cursor,\n ...params\n });\n const fetchNext = (cursor?: string) => fetch(getRequest(cursor));\n\n const {\n items: sentShares,\n hasMore,\n isFetching: isFetchingSentShares,\n nextCursor\n } = useInfiniteList<UnionShareObject>(getRequest, fetchNext);\n\n const sharedObjectIds = sentShares?.map(s => s.objectId) ?? [];\n\n const sharedObjectsFetchResult = useBatchFetch(sharedObjectIds, (ids: string[]) => {\n return ShareRequests.sharedObjectsById(ids);\n });\n\n const recipientIds = ShareHelper.getRecipientIds(sentShares);\n\n const shareRecipientsFetchResult = useBatchFetch(recipientIds, (ids: string[]) => {\n return ShareRequests.getRecipientsById(ids, currentUser.data.customerId);\n });\n \n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n\n const filterKey = JSON.stringify(params);\n\n const showPartialLoading = usePartialLoading(\n sentShares,\n sharedObjectsFetchResult,\n recipientIds,\n shareRecipientsFetchResult,\n filterKey\n );\n\n // Wait until all data is fetched before telling the table to re-render\n const isFetching = isFetchingSentShares\n || sharedObjectsFetchResult.isFetching\n || shareRecipientsFetchResult.isFetching;\n\n const sharedObjects = getBatchFetchResultAsArray(sharedObjectsFetchResult);\n\n const [ shareRecipients, setShareRecipients ] = React.useState<BaseObject[]>(\n getBatchFetchResultAsArray(shareRecipientsFetchResult)\n );\n\n React.useEffect(() => {\n if (ObjectHelper.isEmpty(shareRecipientsFetchResult.items)) return;\n\n setShareRecipients(getBatchFetchResultAsArray(shareRecipientsFetchResult));\n }, [ !!shareRecipientsFetchResult.items, shareRecipientsFetchResult.isFetching, filterKey ]);\n \n const interactiveIds = getInteractiveIds();\n \n const interactivesPendingReview = Flight.useBasicFetch<InteractivesPendingReviews[]>(\n interactiveInsights && !!sharedObjectsFetchResult.items && currentUser.data &&\n InteractiveResultsRequests.pendingReviews({\n interactives: interactiveIds,\n filters: {\n currentCustomerId: currentUser.data.customerId,\n currentUserId: currentUser.data.id\n }\n })\n );\n\n const dependencies = [ isFetching, filterKey, interactivesPendingReview.isFetching, shareRecipients.length ];\n \n function getInteractiveIds() {\n return interactiveInsights && sharedObjects?.length && sharedObjects.reduce(\n (acc, value) => {\n const isInteractive = value.typeId === MasterType.Interactive;\n\n if (!isInteractive) return acc;\n\n const interactive = value as InteractiveMetadata;\n return [ ...acc, { metadataId: interactive.id, interactiveId: interactive.interactiveId }];\n },\n []\n );\n }\n\n return {\n sentShares,\n sharedObjects,\n shareRecipients,\n interactivesPendingReview: interactivesPendingReview.data,\n isFetching,\n showPartialLoading,\n nextCursor,\n hasMore,\n fetchNext,\n imageCdnUrl: config.data?.imageCdnUrl,\n dependencies\n };\n}"],"names":["getInteractiveResultFilters","currentUser","filter","currentUserId","id","currentCustomerId","customerId","dateRange","start","end","userIds","userId","classroomsAndGroups","groupId","InteractiveResultsRequests","interactiveResultSet","interactiveId","interactiveMetadataId","includePublicResults","success","error","always","url","key","data","type","normalize","formatData","students","map","student","name","profileId","publicUser","mark","answerId","resultId","invalidationKeys","pendingReviews","interactiveResultsReport","Actions","props","orderedActions","actions","sort","a","b","order","buttonActions","moreActions","forEach","button","push","className","length","idx","label","appLink","href","onClick","svgName","svgSize","dropdownToggleSvgSize","tooltip","showSpinner","analyticsData","analyticsOptions","openInNewTab","disabled","iconButton","showBorder","customSize","ariaLabel","title","spanHack","sortComponent","dropdownToggleClassName","actionsDropdownClassName","fetchMore","InsightsDemoRequests","interactive","interactiveMetadata","interactiveResults","videoViews","users","individualHeatmap","aggregateHeatmap","useBatchFetch","itemIds","getRequest","requests","chunk","responses","items","reduce","acc","item","isFetching","getAnalyticsRequestKey","baseKey","sharerId","userIdKey","Array","isArray","join","groupIdKey","DEMO_INTERACTIVE_STAGING_ID","DEMO_INTERACTIVE_PROD_ID","namespace","InsightsAdminAlert","storage","show","setShow","hasAnalytics","role","phrase","video","analyticsUrl","videoRoute","typeId","getAnalyticsUrl","target","getPhrase","DEMO_INSIGHTS_SHARE","share","objectTypeId","sharedObject","shareRecipients","dateShared","Date","toISOString","viewCount","DEMO_INSIGHTS_APPLINK","application","action","DEMO_INSIGHTS_ACTIONS","group","LanguageService","InsightsTypeFilters","isMobile","breakpoints","xs","sm","moreFilterOptions","MasterType","moreFiltersSelected","typeIdParams","some","option","showDropdown","setShowDropdown","moreFilters","setMoreFilters","applyFilter","currentParams","params","ArrayHelper","resetFilters","Text","InsightTypeFilterButton","typeFilters","Dropdown","onToggle","isShowing","variant","SvgContainer","Checkbox","onChange","checked","find","selectedFilter","selected","includes","currentAppLink","newType","newAppLink","getTypePhrase","AppLink","MySharesTableHeading","heading","isFirst","ShareObjectTitle","VideoHelper","canNavigate","subTextPhrase","getSubTextPhrase","VideoSubText","series","location","TitleSubText","entity","ShareViewHelper","actionType","requireMarking","options","smartCount","MySharesTableRow","shareData","shareLinkText","ShareType","ShareLinkHelper","entityTypeId","hasStudentExp","isPasswordProtected","linkExpireDate","privacy","overrideRestrictions","status","yearGroups","isDesktop","xl","xxl","isCollection","SharedObjectImage","object","getObjectAppLink","showVideoMetadata","locationContext","imageOptions","size","pendingReview","showCollectionMask","showVideoCount","children","SharedToPill","text","imageCdnUrl","S","getObjectActions","MySharesDemoInsight","isStaging","liteUrl","demoInteractive","MySharesTableEmptyState","EmptyState","src","ImageUrls","getDateShared","recipients","dateCreated","datesShared","r","date1","date2","DateHelper","MySharesTable","sentShares","sharedObjects","groupByDate","interactivesPendingReviews","dependencies","groupByDateShared","interactivesPendingReview","tableData","sharedObjectsMap","obj","shareRecipientsMap","interactivesPendingReviewsMap","s","objectId","recipient","pendingReviewCount","ShareHelper","Object","keys","i","hasDemoInsights","PartialRow","PartialMySharesTable","MySharesEmptyState","altText","workflowPhase","descriptor","SignUp","useGetShareObjectActions","audienceParams","hasInsights","isPlugin","audienceParamsKey","JSON","stringify","insightObjectActions","buttonProps","canConsume","args","entityType","eventVersion","md","getShareObjectActions","values","MySharesView","usePermissions","hasPermissions","hasLocalPermissions","useSettings","usePluginHelper","useBreakpoints","typeIdAppLinkParams","queryParams","audienceAppLinkParams","sentSharesParams","recipientUserId","recipientGroupId","classroomGroups","classrooms","undefined","shouldFetch","PermissionName","useSharesTable","showPartialLoading","nextCursor","hasMore","fetchNext","useSetPageMetadata","hasClassrooms","config","ConfigRequests","UserRequests","isAuthenticated","CustomerRequests","getSharedObjectActions","accessPolicy","useAccessPolicy","showDemoInsight","metadata","analyticsWebUrl","AudienceFilterView","hasClassroomsFeature","InfiniteScrollFooter","getDirectShares","getRecipientIds","d","getBatchFetchResultAsArray","result","interactiveInsights","fetch","cursor","ShareRequests","isFetchingSentShares","sharedObjectIds","sharedObjectsFetchResult","ids","recipientIds","shareRecipientsFetchResult","filterKey","sentShare","recipientsFetchResult","initialSharedObjectsLoaded","setInitialSharedObjectsLoaded","initialRecipientsLoaded","setInitialRecipientsLoaded","usePartialLoading","setShareRecipients","ObjectHelper","interactiveIds","value","metadataId","I","interactives","filters"],"sourceRoot":""}
@@ -0,0 +1,2 @@
1
+ "use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[6965],{71553:(e,t,a)=>{a.d(t,{I:()=>c});var n=a(99940),r=a(62875);function i(e,t){return{currentUserId:e.id,currentCustomerId:e.customerId,dateRange:{start:t.start,end:t.end},userIds:t.userId,classroomsAndGroups:t.groupId}}var c={interactiveResultSet:function(e,t,a,c,l,s,o,u){return{url:l?"/api/domain/v3/analytics/interactives/".concat(e,"/metadata/").concat(t):"/api/domain/v2/analytics/interactives/".concat(e,"/metadata/").concat(t),key:(0,r.H)("interactive:result:set:".concat(e,":").concat(t),c),data:i(a,c),type:n.k.POST,normalize:!1,formatData:function(e){return Object.assign(Object.assign({},e),{students:e.students.map((function(e){return e.name&&e.profileId?Object.assign(Object.assign({},e),{publicUser:{profileId:e.profileId,name:e.name}}):e}))})},success:s,error:o,always:u}},mark:function(e,t,a,r,i,c,l){return{url:"/api/domain/v1/analytics/answers/".concat(a),key:"mark:answer:".concat(a,":").concat(r.resultId),type:n.k.PUT,data:r,normalize:!1,invalidationKeys:"interactive:result:set:".concat(e,":").concat(t),success:i,error:c,always:l}},pendingReviews:function(e){return{url:"/api/domain/v1/analytics/interactives/pending-reviews/summary",key:"interactives:pending:reviews",type:n.k.POST,data:e}},interactiveResultsReport:function(e){return{url:"{gateway}/v2/analytics/interactives/report",key:"interactive:results:report",data:e,type:n.k.POST,normalize:!1}}}},40391:(e,t,a)=>{a.d(t,{m9:()=>E,Ad:()=>b,Kh:()=>N});var n=a(32735),r=a(23481),i=a(75896),c=a(20789),l=a(18995),s=a(60376),o=a(83914),u=a(36532),m=a(4594),d=a(36511),p=a(35223),v=a(64818);const g={avatarContainer:"ByxQa",sm:"EgJ0v",sharedAvatar:"cW0NT"};var f=r.T.encloseNamespace("reportsShare.sharedToAvatarList");function h(e){var t=i.m.countBy(e,"typeId"),a=t[m.E.User],n=t[m.E.Classroom],r=t[m.E.ClassroomGroup];return a&&n&&r?f("classroomsGroupsAndUsers",{userCount:a,classroomCount:n,groupCount:r}):a&&n?f("classroomsAndUsers",{userCount:a,classroomCount:n}):a&&r?f("groupsAndUsers",{userCount:a,groupCount:r}):n&&r?f("classroomsAndGroups",{classroomCount:n,groupCount:r}):a?f("users",{userCount:a}):n?f("classrooms",{classroomCount:n}):r?f("groups",{groupCount:r}):void 0}function y(e){var t,a,r,i,l,f=(null===(t=e.item)||void 0===t?void 0:t.typeId)===m.E.User&&e.item,h=(null===(a=e.item)||void 0===a?void 0:a.typeId)===m.E.Classroom&&e.item,y=(null===(r=e.item)||void 0===r?void 0:r.typeId)===m.E.ClassroomGroup&&e.item,E="d-flex justify-content-center align-items-center text-white rounded-circle h-100 w-100";return n.createElement(n.Fragment,null,!!f&&n.createElement(u.u,{title:"".concat(f.name," ").concat(f.surname),spanHack:!0,spanHackClassName:"h-100 w-100"},n.createElement(c.q,{imageUrl:null===(i=f.avatar)||void 0===i?void 0:i.url,imageCdnUrl:e.imageCdnUrl,initials:v.l.getInitials(f.name,f.surname),extraClasses:g.sharedAvatar})),!!h&&n.createElement(u.u,{title:h.name,spanHack:!0,spanHackClassName:"h-100 w-100"},n.createElement("div",{className:E},n.createElement(s.f,{svgName:p.vn.Classrooms,svgSize:o.S.Large,variant:"teal"}))),!!y&&n.createElement(u.u,{title:y.name,spanHack:!0,spanHackClassName:"h-100 w-100"},n.createElement("div",{className:E},n.createElement(s.f,{svgName:p.vn.Group,variant:(0,d.I)(null===(l=y.metadata)||void 0===l?void 0:l.colour)}))))}function E(e){return n.createElement("div",{className:"".concat(g.avatarContainer," ").concat("sm"===e.avatarSize?g.sm:"")},n.createElement(u.u,{title:f("anonymous"),spanHack:!0,spanHackClassName:"bg-light text-dark d-flex justify-content-center align-items-center rounded-circle h-100 w-100"},n.createElement(o.x,{svgName:p.vn.Anonymous,size:"sm"===e.avatarSize?o.S.Small:null})))}function b(e){return n.createElement("div",{className:"".concat(g.avatarContainer," ").concat("sm"===e.avatarSize?g.sm:"")},n.createElement(u.u,{title:e.text||f("sharedLink"),spanHack:!0,spanHackClassName:"bg-light text-dark d-flex justify-content-center align-items-center rounded-circle h-100 w-100 ".concat(e.className||"")},n.createElement(o.x,{svgName:p.vn.Link,size:"sm"===e.avatarSize?o.S.Small:null})))}function N(e){return n.createElement(l.e,Object.assign({},e,{items:e.recipients,avatarItem:y,avatarContainerClassname:"".concat(g.avatarContainer," ").concat("sm"===e.avatarSize?g.sm:""),getHiddenTooltip:h,hasShareLink:e.hasShareLink,shareLinkText:e.shareLinkText}))}N.defaultProps={maxAvatars:5}},95834:(e,t,a)=>{a.d(t,{J:()=>n});var n={table:"striped-list no-full-width pb-3",header:"fw-semibold pb-1",headerCell:"py-2 ps-2 text-nowrap",row:"striped-row rounded",cell:"d-flex align-items-center p-2"}},83657:(e,t,a)=>{a.d(t,{e:()=>o});var n=a(32735),r=a(91967),i=a(10874),c=a(36532),l=a(42735),s=a(86509);function o(e){var t=n.useMemo((function(){return e.actions.sort((function(e,t){return e.order-t.order}))}),[e.actions]),a=[],o=[];t.forEach((function(e){e.button?a.push(e):o.push(e)}));var u="d-flex";return e.className&&(u+=" ".concat(e.className)),a.length||o.length?n.createElement("div",{className:u},a.length?a.map((function(t,a){return n.createElement(n.Fragment,{key:a},function(){if(t.label){var a=r.q.isFunction(t.label)?t.label:function(){return n.createElement(n.Fragment,null,t.label)};return n.createElement(l.K,{appLink:t.appLink,href:t.href,onClick:t.onClick,svgName:t.svgName,svgSize:e.dropdownToggleSvgSize,className:t.className,tooltip:t.tooltip,showSpinner:t.showSpinner,analyticsData:t.analyticsData,analyticsOptions:t.analyticsOptions,openInNewTab:t.openInNewTab,disabled:t.disabled},a())}var s=n.createElement(i.h,{appLink:t.appLink,href:t.href,onClick:t.onClick,svgName:t.svgName,className:t.className,analyticsData:t.analyticsData,analyticsOptions:t.analyticsOptions,openInNewTab:t.openInNewTab,disabled:t.disabled,showBorder:t.showBorder,customSize:e.customSize,ariaLabel:t.tooltip});return t.tooltip?n.createElement(c.u,{title:t.tooltip,spanHack:!0},s):s}())})):n.createElement(n.Fragment,null),e.sortComponent&&e.sortComponent,o.length?n.createElement(s.m,{actions:o,dropdownToggleClassName:e.actionsDropdownClassName,dropdownToggleSvgSize:e.dropdownToggleSvgSize,fetchMore:e.fetchMore}):n.createElement(n.Fragment,null)):n.createElement(n.Fragment,null)}},86509:(e,t,a)=>{a.d(t,{m:()=>f});var n=a(32735),r=a(91967),i=a(81886),c=a(45157),l=a(49985),s=a(36848),o=a(83914),u=a(36532),m=a(35223);const d={dropdownToggle:"UCAnJ"};function p(){return n.createElement(n.Fragment,null,n.createElement("div",{style:{padding:"0.53125rem 1rem"}},n.createElement("div",{className:"partial-loading-background",style:{height:"1.0625rem",width:"8rem"}})),n.createElement("div",{style:{padding:"0.53125rem 1rem"}},n.createElement("div",{className:"partial-loading-background",style:{height:"1.0625rem",width:"12rem"}})),n.createElement("div",{style:{padding:"0.53125rem 1rem"}},n.createElement("div",{className:"partial-loading-background",style:{height:"1.0625rem",width:"11rem"}})),n.createElement("div",{style:{padding:"0.53125rem 1rem"}},n.createElement("div",{className:"partial-loading-background",style:{height:"1.0625rem",width:"9rem"}})))}function v(e){var t="dropdown-item";return e&&(t+=" ".concat(e)),t}function g(e){var t=r.q.isFunction(e.action.label)?e.action.label:function(){return n.createElement(n.Fragment,null,e.action.label)};if(e.action.appLink)return n.createElement(s.F,{appLink:e.action.appLink,onClick:e.action.onClick,className:v(e.action.className),analyticsData:e.action.analyticsData,analyticsOptions:e.action.analyticsOptions,openInNewTab:e.action.openInNewTab,disabled:e.action.disabled},e.action.svgName&&n.createElement(o.x,{svgName:e.action.svgName,className:"d-inline-block svg-container me-2 align-middle"}),n.createElement("span",{className:"align-middle"},t()));function a(t){t.preventDefault(),e.action.analyticsData&&e.action.analyticsOptions&&l.k.logUserAction(e.action.analyticsData,e.action.analyticsOptions),r.q.isFunction(e.action.onClick)&&e.action.onClick(),e.action.href&&i.Q.Ab.PageLoad(e.action.href,e.action.openInNewTab)}return e.action.href?n.createElement("a",{className:v(e.action.className),onClick:a,href:e.action.href},e.action.svgName&&n.createElement(o.x,{svgName:e.action.svgName,className:"d-inline-block svg-container me-2 align-middle"}),n.createElement("span",{className:"align-middle"},t())):n.createElement("span",{className:"cursor-pointer ".concat(v(e.action.className)),onClick:a,role:"button",tabIndex:0,onKeyDown:function(e){return"Enter"===e.key&&a(e)}},e.action.svgName&&n.createElement(o.x,{svgName:e.action.svgName,className:"d-inline-block svg-container me-2"}),t())}function f(e){if(!e.actions||!e.actions.length)return n.createElement(n.Fragment,null);var t=e.actions.some((function(e){return e.lazyPlaceholder})),a="dropdown";e.className&&(a+=" ".concat(e.className));var r,i="actions-dropdown-".concat(c.Y.getRandomInt()),l="dropdown-toggle px-0 ".concat(d.dropdownToggle);return e.dropdownToggleClassName&&(l+=" ".concat(e.dropdownToggleClassName)),n.createElement("div",{className:a},n.createElement("button",{className:l,type:"button",id:i,"data-bs-toggle":"dropdown","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false","aria-label":"More actions dropdown",onClick:t?e.fetchMore:null},n.createElement(o.x,{svgName:m.vn.More,size:e.dropdownToggleSvgSize})),n.createElement("ul",{className:"dropdown-menu dropdown-menu-end dropdown-menu-right font-size-normal","aria-labelledby":i},t?n.createElement(p,null):e.actions.map((function(e,t){var a=void 0!==r&&r!==e.group;return r=e.group,e.tooltip?n.createElement("li",{key:t},a&&n.createElement("hr",{className:"dropdown-divider",role:"separator"}),n.createElement(u.u,{title:e.tooltip,spanHack:!0},n.createElement(g,{action:e}))):n.createElement("li",{key:t},a&&n.createElement("hr",{className:"dropdown-divider",role:"separator"}),n.createElement(g,{action:e}))}))))}f.defaultProps={dropdownToggleClassName:"btn btn-light",dropdownToggleSvgSize:o.S.Small}},18995:(e,t,a)=>{a.d(t,{e:()=>s});var n=a(32735),r=a(23481),i=a(40391),c=a(36532),l=r.T.encloseNamespace("shared.avatarList");function s(e){var t=e.items.length>e.maxAvatars?e.items.slice(0,e.maxAvatars-1):e.items,a=e.items.length>t.length?e.items.slice(e.maxAvatars-1):[],r=e.avatarItem,s=a.length,o="sm"===e.avatarSize?4:8;function u(t){return{transform:"translateX(".concat((e.hasShareLink?t+1:t)*-o,"px)"),zIndex:e.maxAvatars-t}}return 0===t.length&&0===a.length?n.createElement(n.Fragment,null):n.createElement("div",{className:"d-flex",style:{marginRight:"-".concat((t.length-1+(a.length?1:0)+(e.hasShareLink?1:0))*o,"px")}},e.hasShareLink&&n.createElement("div",{style:{zIndex:e.maxAvatars+1}},n.createElement(i.Ad,{text:e.shareLinkText,avatarSize:e.avatarSize,className:"bg-dark text-white"})),t.map((function(t,a){return n.createElement("div",{className:"".concat(e.avatarContainerClassname||""),key:t.id,style:u(a)},n.createElement(r,{item:t,imageCdnUrl:e.imageCdnUrl,index:a,maxAvatars:e.maxAvatars}))})),!!a.length&&n.createElement("div",{className:"".concat(e.avatarContainerClassname||""," bg-white rounded-circle"),style:{transform:"translateX(".concat(t.length*-o,"px)"),zIndex:e.maxAvatars-t.length}},n.createElement(c.u,{title:e.getHiddenTooltip?e.getHiddenTooltip(a):e.roleToDisplay?l("staff"===e.roleToDisplay?"staff":"student",{count:s,smartCount:s}):l("users",{count:s,smartCount:s}),spanHack:!0,spanHackClassName:"h-100 w-100"},n.createElement("div",{className:"d-flex justify-content-center align-items-center border border-dark rounded-circle h-100 w-100 ".concat(e.numberClassname||"")},"+".concat(a.length)))))}s.defaultProps={maxAvatars:5}},38502:(e,t,a)=>{a.d(t,{r:()=>m});var n=a(32735),r=a(49985),i=a(36848),c=a(18559),l=a(11607),s=a(83914),o=a(87432);function u(e){return n.createElement(n.Fragment,null,!!e.tab.svgName&&n.createElement("div",{className:e.tab.name?"pe-1":""},n.createElement(s.x,{svgName:e.tab.svgName})),e.tab.name,"number"==typeof e.tab.count&&n.createElement("div",{className:"ps-2"},n.createElement(c.C,{type:c.g.Count,data:e.tab.count})))}function m(e){var t;return n.createElement("nav",{className:null!==(t=e.className)&&void 0!==t?t:"",ref:e.containerRef},n.createElement("ul",{className:"\n list-unstyled d-inline-block m-0 ".concat(o.Z.pillTabSelector,"\n ").concat(e.borderRadius?o.Z.radiusSmall:"","\n ").concat(e.listClassName,"\n ")},e.tabs.map((function(e,t){return n.createElement("li",{className:"\n p-0 ".concat(o.Z.tab," ").concat(e.active?"btn btn-dark":"btn btn-outline-dark","\n ").concat(e.name?o.Z.minWidth:""," ").concat(e.className,"\n "),key:t},e.appLink?n.createElement(i.F,{appLink:e.appLink,analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions,className:"\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ".concat(o.Z.tabLink,"\n ")},n.createElement(u,{tab:e})):n.createElement(l.L,{className:"\n cursor-pointer d-flex align-items-center justify-content-center\n text-decoration-none text-reset px-2 text-nowrap ".concat(o.Z.tabLink,"\n "),onClick:function(){return function(e){!e.active&&e.onSelect&&(e.onSelect(),e.analyticsData&&e.analyticsOptions&&r.k.logUserAction(e.analyticsData,e.analyticsOptions))}(e)}},n.createElement(u,{tab:e})))}))))}m.defaultProps={borderRadius:"lg"}},39902:(e,t,a)=>{a.d(t,{f:()=>c});var n=a(20354),r=a(75896);function i(e){return i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i(e)}function c(e,t){var a=r.m.chunk(e,25).map((function(e){return t(r.m.uniq(e))})),c=n.a.useBasicFetchAll(a);return{items:c.data.length?r.m.flatten(c.data).reduce((function(e,t){return Object.assign(Object.assign({},e),(a={},n=t.id,r=t,(n=function(e){var t=function(e){if("object"!=i(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var a=t.call(e,"string");if("object"!=i(a))return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==i(t)?t:t+""}(n))in a?Object.defineProperty(a,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):a[n]=r,a));var a,n,r}),{}):null,isFetching:c.isFetching}}},62875:(e,t,a)=>{function n(e,t,a){var n="".concat(e,":").concat(t.start,":").concat(t.end),r=Array.isArray(t.userId)?t.userId.sort().join(":"):t.userId,i=Array.isArray(t.groupId)?t.groupId.sort().join(":"):t.groupId;return r&&(n+=":".concat(r)),i&&(n+=":".concat(i)),a&&(n+=":".concat(a)),n}a.d(t,{H:()=>n})},70227:(e,t,a)=>{a.d(t,{c:()=>i});var n=a(97395),r=a(4594),i={getObjectUrl:function(e,t){var a=e.analyticsWebUrl;if(a){var i="";switch(t.typeId){case r.E.Video:i="/videos/".concat(t.id,"/overview");break;case r.E.Clip:i="/clips/".concat(t.id,"/overview");break;case r.E.Interactive:i="/interactives/".concat(t.id,"/overview")}if(i)return n._.safeUrlConcat(a,i)}}}},36511:(e,t,a)=>{a.d(t,{I:()=>r});var n=a(40424);function r(e){switch(e){case n.R.Pink:return"pink";case n.R.Orange:return"orange";case n.R.Green:return"green";case n.R.Blue:return"blue";case n.R.Purple:return"purple";case n.R.Indigo:return"indigo";default:return"pink"}}},2523:(e,t,a)=>{a.d(t,{w:()=>p});var n=a(32735),r=a(23481),i=a(81886),c=a(38502),l=a(75795),s=a(14070),o=a(97291),u=r.T.encloseNamespace("share.sharesHeader"),m={application:o.O.MY_SHARES,action:s.e.MyShares.SHARED_BY_ME},d={application:o.O.MY_SHARES,action:s.e.MyShares.SHARED_WITH_ME};function p(){return n.createElement("div",{className:"pb-3"},n.createElement("h1",{className:"h2 mb-3"},u("shares")),n.createElement(c.r,{tabs:(t=null===(e=l.O.getCurrentRoute())||void 0===e?void 0:e.appLink,[{name:u("sharedByMe"),onSelect:function(){return i.Q.C$.trigger(m)},active:(null==t?void 0:t.action)===m.action},{name:u("sharedWithMe"),onSelect:function(){return i.Q.C$.trigger(d)},active:(null==t?void 0:t.action)===d.action}])}));var e,t}},76233:(e,t,a)=>{a.r(t),a.d(t,{SharedByMeView:()=>ue});var n=a(32735),r=a(81886),i=a(23481),c=a(23232),l=i.T.encloseNamespace("share.sharedByMeEmptyState");function s(e){return n.createElement(c.u,null,n.createElement(c.u.Image,{src:e.imageUrl,size:"small"}),n.createElement(c.u.Heading,null,l(e.useInteractiveCopy?"interactivesHeading":"genericHeading")),n.createElement(c.u.Info,null,l(e.useInteractiveCopy?"interactivesInfo":"genericInfo")),!!e.appLink&&n.createElement(c.u.Cta,{appLink:e.appLink,text:l("cta")}))}var o=a(95834),u=a(69674),m=a(82602),d=a(75896),p=a(110),v=a(65858),g=a(83914),f=a(36532),h=a(49080),y=a(85063),E=a(35223);var b=i.T.encloseNamespace("share.shareStatusIndicator");function N(e){if(e.type===y.y.DirectShare)return b("active");switch(e.status){case h.F.Active:return b("active");case h.F.Expired:return b("expired")}}function S(e){if(e.type===y.y.DirectShare)return"bg-success";switch(e.status){case h.F.Active:return"bg-success";case h.F.Expired:return"bg-gray-500"}}function w(e){var t;return e.share.type!==y.y.DirectShare||(null===(t=e.share.recipients)||void 0===t?void 0:t.length)?e.share.type===y.y.ShareLink&&e.share.isPasswordProtected?n.createElement(f.u,{title:b("passwordProtected"),spanHack:!0},n.createElement(g.x,{svgName:E.vn.Lock,size:g.S.Small})):n.createElement(f.u,{title:N(e.share),spanHack:!0,spanHackClassName:"T6YAv"},n.createElement("div",{className:"".concat("_MRHG"," ").concat(S(e.share))})):n.createElement(n.Fragment,null)}var k=a(29024),C=a(40391),x=a(31754),I=a(64249),A=a(83657),T=a(36848),O=a(83345),j=a(11882),M=a(31908);function H(e){return H="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},H(e)}function L(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=Array(t);a<t;a++)n[a]=e[a];return n}var F="share.sharedByMeTable",D=i.T.encloseNamespace(F);function U(e){var t;if(e.type===y.y.ShareLink||!(null===(t=null==e?void 0:e.recipients)||void 0===t?void 0:t.length))return e.dateCreated;var a=e.recipients.map((function(e){return e.dateShared}));return a.sort((function(e,t){return p.O.isSame(e,t)?0:p.O.isAfter(e,t)?1:-2})),a.length?d.m.last(a):""}function R(e,t,a,r,i,c,l,s){var o=s&&(s.xs||s.sm),u=[{Header:c?"":t,accessor:"sharedObject",id:"image",Cell:function(e){var t=e.value;return n.createElement("div",{className:"w-100"},n.createElement(k.k,{object:t,appLink:a(t),showVideoMetadata:!0,locationContext:v.LZ.SharedByMe}))},minWidth:140,maxWidth:30},{accessor:"sharedObject",id:"name",Cell:function(e){var t,r=e.value;return r.name?M.M.isVideoType(r)&&!(null===(t=M.M.getCanBeConsumed(r))||void 0===t?void 0:t.canNavigate)?n.createElement("span",{className:"clamp-2"},r.name):n.createElement("div",{className:"clamp-2"},M.M.isVideoType(r)&&n.createElement(j.$,{type:"series",video:r,appLink:"series"in r&&r.series?a(r.series):null,analyticsOptions:{location:v.LZ.Insights}}),n.createElement(T.F,{appLink:a(r),analyticsData:{id:r.id,name:r.name},analyticsOptions:{entity:I.I.getAnalyticsEntity(r.type),actionType:v.Vw.Click,location:v.LZ.SharedByMe}},r.name)):n.createElement("span",null,n.createElement(O.x,{namespace:F,phrase:"videoUnavailable"}))},width:60},{Header:0===e?D("sharedTo"):"",accessor:"shareRecipients",Cell:function(e){var t=e.value;return t?t.length?n.createElement(C.Kh,{recipients:t,imageCdnUrl:i,maxAvatars:o?1:2}):n.createElement(C.m9,null):n.createElement(C.Ad,null)},width:40},!o&&{Header:0===e?D("shared"):"",id:"dateShared",accessor:function(e){return(0,m.WU)(e.dateShared)},width:40},{accessor:"sharedObject",id:"actions",Cell:function(e){var t=e.value;return n.createElement(A.e,{actions:r(t),className:"w-100 justify-content-end pe-2"})},width:20}],d={Header:t,accessor:"share",id:"status",Cell:function(e){var t=e.value;return n.createElement(w,{share:t})},width:5},p={Header:D("views"),accessor:"viewCount",width:30};return c&&u.splice(0,0,d),l&&u.splice(u.length-1,0,p),u.filter(Boolean)}var z=n.memo((function(e){var t,a,r,i,c,l,s=(t=e.sentShares,a=e.sharedObjects,r=e.shareRecipients,i=!!e.groupByDateShared,c=e.dependencies,n.useMemo((function(){var e,n,c,l=[];return t.forEach((function(e){var t,n,i=a.find((function(t){return t.id===e.objectId})),c=null;e.type===y.y.DirectShare&&(c=[],null===(t=e.recipients)||void 0===t||t.forEach((function(e){var t=r.find((function(t){return t.id===e.id}));t&&c.push(t)}))),i&&l.push({share:e,sharedObject:i,shareRecipients:c,dateShared:U(e),viewCount:null!==(n=e.viewCount)&&void 0!==n?n:0})})),i?x.x.groupByDateShared(l):(e={},n=D("title"),c=l,(n=function(e){var t=function(e){if("object"!=H(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var a=t.call(e,"string");if("object"!=H(a))return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==H(t)?t:t+""}(n))in e?Object.defineProperty(e,n,{value:c,enumerable:!0,configurable:!0,writable:!0}):e[n]=c,e)}),function(e){if(Array.isArray(e))return L(e)}(l=c)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(l)||function(e,t){if(e){if("string"==typeof e)return L(e,t);var a={}.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?L(e,t):void 0}}(l)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()));return n.createElement(n.Fragment,null,Object.keys(s).map((function(t,a){return n.createElement(u.i,{key:a,columns:R(a,t,e.getObjectAppLink,e.getObjectActions,e.imageCdnUrl,e.showStatus,e.showViewCount,e.breakpoints),data:s[t],theme:o.J})})))})),B=a(71020),P=a(16714),_=a(79967),W=a(22902),Z=a(79612),V=a(37802),$=a(99742),G=a(14070),J=a(97291),K=a(64208),Y=a(86099),q=a(2523);const Q={imageColumn:"uIOaA",nameColumn:"Nta2B",sharedToColumn:"XTJBC",dateSharedColumn:"HdARK",actionsColumn:"DXyZw",heading:"XZ6o7",image:"MolfU",name:"MM43m",avatar:"EboYM",date:"by_XM",actions:"_S2M_"};function X(){return n.createElement("div",{className:"d-flex striped-row rounded"},n.createElement("div",{className:"d-flex align-items-center justify-content-center p-2 ".concat(Q.imageColumn)},n.createElement("div",{className:"partial-loading-background rounded w-100 ".concat(Q.image)})),n.createElement("div",{className:"d-flex align-items-center p-2 ".concat(Q.nameColumn)},n.createElement("div",{className:"partial-loading-background w-75 ".concat(Q.name)})),n.createElement("div",{className:"d-flex align-items-center p-2 ".concat(Q.sharedToColumn)},n.createElement("div",{className:"partial-loading-background ".concat(Q.avatar)})),n.createElement("div",{className:"d-none d-md-flex align-items-center p-2 ".concat(Q.dateSharedColumn)},n.createElement("div",{className:"partial-loading-background ".concat(Q.date)})),n.createElement("div",{className:"d-flex align-items-center justify-content-end p-2 ".concat(Q.actionsColumn)},n.createElement("div",{className:"partial-loading-background rounded me-2 ".concat(Q.actions)})))}function ee(e){return n.createElement("div",{className:"d-flex mb-1"},n.createElement("div",{className:"".concat(Q.imageColumn," p-2")},n.createElement("div",{className:"partial-loading-background ".concat(Q.heading)})),n.createElement("div",{className:"".concat(Q.nameColumn," p-2")}," "),n.createElement("div",{className:"".concat(Q.sharedToColumn," p-2")},e.fullHeader?n.createElement("div",{className:"partial-loading-background ".concat(Q.heading)}):n.createElement(n.Fragment,null," ")),n.createElement("div",{className:"".concat(Q.dateSharedColumn," p-2 d-none d-md-flex")},e.fullHeader?n.createElement("div",{className:"partial-loading-background ".concat(Q.heading)}):n.createElement(n.Fragment,null," ")),n.createElement("div",{className:"".concat(Q.actionsColumn," p-2")}," "))}function te(){return n.createElement(n.Fragment,null,n.createElement("div",{className:"mb-3"},n.createElement(ee,{fullHeader:!0}),n.createElement("div",{className:"striped-list no-full-width"},n.createElement(X,null),n.createElement(X,null),n.createElement(X,null))),n.createElement("div",{className:"mb-3"},n.createElement(ee,null),n.createElement("div",{className:"striped-list no-full-width"},n.createElement(X,null),n.createElement(X,null),n.createElement(X,null),n.createElement(X,null))),n.createElement("div",{className:"mb-3"},n.createElement(ee,null),n.createElement("div",{className:"striped-list no-full-width"},n.createElement(X,null),n.createElement(X,null),n.createElement(X,null),n.createElement(X,null),n.createElement(X,null),n.createElement(X,null),n.createElement(X,null),n.createElement(X,null),n.createElement(X,null),n.createElement(X,null))))}var ae=a(20354),ne=a(4594),re=a(39151),ie=a(70227),ce=i.T.encloseNamespace("liteShare.sharedByMe");function le(e,t){return{label:ce("editShareSettings"),appLink:{application:J.O.DEFAULT,action:G.e.Default.SHARE,args:[e.id],params:{entityType:t}}}}function se(e){return n.createElement(f.u,{title:e.label,spanHack:!0},n.createElement("a",{href:e.url,target:"_blank"},n.createElement(g.x,{svgName:E.vn.Analytics})))}var oe=i.T.encloseNamespace("liteShare.sharedByMe");function ue(){var e=(0,W.T)().hasPermissions,t=(0,V.r)(null).hasInsights,a=(0,_.k)(),i=(0,K.aH)(),c=i.sentShares,l=i.sharedObjects,o=i.shareRecipients,u=i.isFetching,m=i.showPartialLoading,d=i.nextCursor,p=i.hasMore,v=i.fetchNext,g=i.imageCdnUrl,f=e(P.C.ViewMyShares)&&t;n.useEffect((function(){f&&r.Q.C$.trigger({application:J.O.MY_SHARES,action:G.e.MyShares.HOME},{replace:!0})}),[f]),(0,Z.M)({title:oe("sharedByMe")});var h=function(e){var t=ae.a.useBasicFetch(re.L.config()),a=e.xs||e.sm;return n.useCallback((function(e){return function(e,t,a){var r,i="viewUsage";if(M.M.isVideo(e)&&(r="video"),M.M.isInteractive(e)&&(r="interactive",i="viewResults"),M.M.isClip(e)&&(r="clip"),e.typeId===ne.E.Series&&(r="series"),e.typeId===ne.E.Playlist&&(r="playlist"),M.M.isVideoType(e)&&!M.M.getCanBeConsumed(e).canConsume)return[];var c=[le(e,r)],l=ie.c.getObjectUrl(a,e);return l&&c.push({label:t?ce(i):function(){return n.createElement(se,{label:ce(i),url:l})},className:"btn btn-link",button:!t,href:ie.c.getObjectUrl(a,e),openInNewTab:!0}),c}(e,a,t.data)}),[a])}(a);return n.createElement("div",{className:"px-3"},!f&&n.createElement(q.w,null),m?n.createElement(te,null):c.length?n.createElement(n.Fragment,null,n.createElement(z,{sentShares:c,sharedObjects:l,shareRecipients:o,getObjectAppLink:Y.Qh,getObjectActions:h,imageCdnUrl:g,groupByDateShared:!0,dependencies:[u],breakpoints:a}),(p||u)&&n.createElement(B._,{isFetching:u,fetchNext:v,nextCursor:d})):n.createElement(s,{appLink:{application:J.O.DASHBOARD,action:G.e.Dashboard.HOME},imageUrl:$.W.EmptyStates.Share.SHARED_WITH_ME}))}},64208:(e,t,a)=>{a.d(t,{aH:()=>b});var n=a(32735),r=a(20354),i=a(1048),c=a(71553),l=a(30439),s=a(4594),o=a(39151),u=a(31949),m=a(39902),d=a(60115),p=a(75896),v=a(85063),g={getDirectShares:function(e){var t;return null!==(t=null==e?void 0:e.filter((function(e){return e.type===v.y.DirectShare})))&&void 0!==t?t:[]},getRecipientIds:function(e){return p.m.uniq(p.m.flatten(g.getDirectShares(e).map((function(e){var t;return null!==(t=e.recipients)&&void 0!==t?t:[]}))),"id").map((function(e){return e.id}))}};function f(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var n,r,i,c,l=[],s=!0,o=!1;try{if(i=(a=a.call(e)).next,0===t){if(Object(a)!==a)return;s=!1}else for(;!(s=(n=i.call(a)).done)&&(l.push(n.value),l.length!==t);s=!0);}catch(e){o=!0,r=e}finally{try{if(!s&&null!=a.return&&(c=a.return(),Object(c)!==c))return}finally{if(o)throw r}}return l}}(e,t)||h(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 h(e,t){if(e){if("string"==typeof e)return y(e,t);var a={}.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?y(e,t):void 0}}function y(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=Array(t);a<t;a++)n[a]=e[a];return n}function E(e){return e.items?Object.values(e.items):[]}function b(e,t){var a,p,v=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],b=r.a.useGetFetch(),N=r.a.useBasicFetch(u.N.currentUser()),S=function(t){return v&&l.o.sentShare(Object.assign({cursor:t},e))},w=function(e){return b(S(e))},k=(0,d.K)(S,w),C=k.items,x=k.hasMore,I=k.isFetching,A=k.nextCursor,T=null!==(a=null==C?void 0:C.map((function(e){return e.objectId})))&&void 0!==a?a:[],O=(0,m.f)(T,(function(e){return l.o.sharedObjectsById(e)})),j=g.getRecipientIds(C),M=(0,m.f)(j,(function(e){return l.o.getRecipientsById(e,N.data.customerId)})),H=r.a.useBasicFetch(o.L.config()),L=JSON.stringify(e),F=function(e,t,a,r,i){var c=f(n.useState(!!t.items),2),l=c[0],s=c[1],o=f(n.useState(!!r.items),2),u=o[0],m=o[1];return n.useEffect((function(){s(!1),m(!1)}),[i]),n.useEffect((function(){!t.isFetching&&t.items&&s(!0)}),[t.isFetching,i]),n.useEffect((function(){!r.isFetching&&r.items&&m(!0)}),[r.isFetching,i]),!(e&&!e.length)&&(!e||!l||a.length&&!u)}(C,O,j,M,L),D=I||O.isFetching||M.isFetching,U=E(O),R=f(n.useState(E(M)),2),z=R[0],B=R[1];n.useEffect((function(){i.t.isEmpty(M.items)||B(E(M))}),[!!M.items,M.isFetching,L]);var P=t&&(null==U?void 0:U.length)&&U.reduce((function(e,t){if(t.typeId!==s.E.Interactive)return e;var a,n=t;return[].concat(function(e){if(Array.isArray(e))return y(e)}(a=e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(a)||h(a)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),[{metadataId:n.id,interactiveId:n.interactiveId}])}),[]),_=r.a.useBasicFetch(t&&!!O.items&&N.data&&c.I.pendingReviews({interactives:P,filters:{currentCustomerId:N.data.customerId,currentUserId:N.data.id}})),W=[D,L,_.isFetching,z.length];return{sentShares:C,sharedObjects:U,shareRecipients:z,interactivesPendingReview:_.data,isFetching:D,showPartialLoading:F,nextCursor:A,hasMore:x,fetchNext:w,imageCdnUrl:null===(p=H.data)||void 0===p?void 0:p.imageCdnUrl,dependencies:W}}},87432:(e,t,a)=>{a.d(t,{Z:()=>n});const n={pillTabSelector:"Hdi6o",tab:"RvNxr",minWidth:"GHSz9",radiusSmall:"VhJJa",tabLink:"WFyvo"}},82602:(e,t,a)=>{a.d(t,{WU:()=>o});var n=["second","minute","hour","day","week","month","year"],r=["秒","分钟","小时","天","周","个月","年"],i={},c=function(e,t){i[e]=t},l=[60,60,24,7,365/7/12,12];function s(e){return e instanceof Date?e:!isNaN(e)||/^\d+$/.test(e)?new Date(parseInt(e)):(e=(e||"").trim().replace(/\.\d+/,"").replace(/-/,"/").replace(/-/,"/").replace(/(\d)T(\d)/,"$1 $2").replace(/Z/," UTC").replace(/([+-]\d\d):?(\d\d)/," $1$2"),new Date(e))}var o=function(e,t,a){var n=function(e,t){return(+(t?s(t):new Date)-+s(e))/1e3}(e,a&&a.relativeDate);return function(e,t){for(var a=e<0?1:0,n=e=Math.abs(e),r=0;e>=l[r]&&r<l.length;r++)e/=l[r];return(e=Math.floor(e))>(0==(r*=2)?9:1)&&(r+=1),t(e,r,n)[a].replace("%s",e.toString())}(n,function(e){return i[e]||i.en_US}(t))};c("en_US",(function(e,t){if(0===t)return["just now","right now"];var a=n[Math.floor(t/2)];return e>1&&(a+="s"),[e+" "+a+" ago","in "+e+" "+a]})),c("zh_CN",(function(e,t){if(0===t)return["刚刚","片刻后"];var a=r[~~(t/2)];return[e+" "+a+"前",e+" "+a+"后"]}))}}]);
2
+ //# sourceMappingURL=6965-46edd86c90-lite.chunk.js.map