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

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scripts/4359-c35e271cf2-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 = ArrayHelper.flatten(responses.data)\n .reduce((acc, item) => ({ ...acc, [item.id]: item }), {});\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?: (string | boolean)[];\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';\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 hasFetchedSharedObjects: boolean,\n recipientIds: string[],\n hasFetchedRecipients: boolean,\n config: Flight.Response<Config>\n): boolean {\n const [ initialSharedObjectsLoaded, setInitialSharedObjectsLoaded ] = React.useState(hasFetchedSharedObjects);\n const [ initialRecipientsLoaded, setInitialRecipientsLoaded ] = React.useState(hasFetchedRecipients);\n\n React.useEffect(() => {\n if (hasFetchedSharedObjects)\n setInitialSharedObjectsLoaded(true);\n }, [hasFetchedSharedObjects]);\n\n React.useEffect(() => {\n if (hasFetchedRecipients)\n setInitialRecipientsLoaded(true);\n }, [hasFetchedRecipients]);\n\n if (sentShare && !sentShare.length)\n return false;\n\n return !sentShare\n || !initialSharedObjectsLoaded\n || (recipientIds.length && !initialRecipientsLoaded)\n || !config.data;\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 showPartialLoading = usePartialLoading(\n sentShares,\n !!sharedObjectsFetchResult.items,\n recipientIds,\n !!shareRecipientsFetchResult.items,\n config\n );\n\n const filterKey = JSON.stringify(params);\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 const shareRecipients = getBatchFetchResultAsArray(shareRecipientsFetchResult);\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 ];\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","sentShare","hasFetchedSharedObjects","hasFetchedRecipients","initialSharedObjectsLoaded","setInitialSharedObjectsLoaded","initialRecipientsLoaded","setInitialRecipientsLoaded","usePartialLoading","filterKey","interactiveIds","value","metadataId","I","interactives","filters"],"sourceRoot":""}