@clickview/lite 0.75.0-rc.2 → 0.75.0-rc.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bundles.json +1 -1
- package/dist/css/{119-lite-a1f592f602.chunk.css → 1243-lite-13eda8f6a0.chunk.css} +2 -4
- package/dist/css/{7230-lite-36ff6e6d53.chunk.css → 1867-lite-8baa8af02b.chunk.css} +3 -5
- package/dist/css/{5241-lite-baab687563.chunk.css → 4203-lite-9ffab89741.chunk.css} +3 -5
- package/dist/css/{8364-lite-99938dea56.chunk.css → 5193-lite-d434056013.chunk.css} +1 -0
- package/dist/css/{7339-lite-05c396fed3.chunk.css → 6756-lite-839687d3d7.chunk.css} +1 -0
- package/dist/css/{9527-lite-1d2221b6a8.chunk.css → 7103-lite-fef3024f61.chunk.css} +2 -4
- package/dist/css/{8856-lite-827b34aed7.chunk.css → 8856-lite-c114ab5c89.chunk.css} +1 -1
- package/dist/languages/en.json +1 -1
- package/dist/scripts/104-7abe2b09dd-lite.chunk.js +2 -0
- package/dist/scripts/104-7abe2b09dd-lite.chunk.js.map +1 -0
- package/dist/scripts/1074-2ab8b03e30-lite.chunk.js +2 -0
- package/dist/scripts/1074-2ab8b03e30-lite.chunk.js.map +1 -0
- package/dist/scripts/1087-861be5211f-lite.chunk.js +2 -0
- package/dist/scripts/1087-861be5211f-lite.chunk.js.map +1 -0
- package/dist/scripts/1199-6522b1d291-lite.chunk.js +2 -0
- package/dist/scripts/1199-6522b1d291-lite.chunk.js.map +1 -0
- package/dist/scripts/121-1b744469ee-lite.chunk.js +2 -0
- package/dist/scripts/121-1b744469ee-lite.chunk.js.map +1 -0
- package/dist/scripts/{1221-502395e693-lite.chunk.js → 1221-894d8474d5-lite.chunk.js} +3 -3
- package/dist/scripts/1221-894d8474d5-lite.chunk.js.map +1 -0
- package/dist/scripts/1243-ede924125c-lite.chunk.js +2 -0
- package/dist/scripts/1243-ede924125c-lite.chunk.js.map +1 -0
- package/dist/scripts/147-44ee7e9a78-lite.chunk.js +2 -0
- package/dist/scripts/147-44ee7e9a78-lite.chunk.js.map +1 -0
- package/dist/scripts/{1610-7f58bb25a9-lite.chunk.js → 1610-bf848cce4d-lite.chunk.js} +2 -2
- package/dist/scripts/{1610-7f58bb25a9-lite.chunk.js.map → 1610-bf848cce4d-lite.chunk.js.map} +1 -1
- package/dist/scripts/{7230-71f8d6d1bd-lite.chunk.js → 1867-3b447a1b85-lite.chunk.js} +2 -2
- package/dist/scripts/{7230-71f8d6d1bd-lite.chunk.js.map → 1867-3b447a1b85-lite.chunk.js.map} +1 -1
- package/dist/scripts/2258-ed7383502f-lite.chunk.js +3 -0
- package/dist/scripts/2258-ed7383502f-lite.chunk.js.map +1 -0
- package/dist/scripts/3268-2736356687-lite.chunk.js +2 -0
- package/dist/scripts/{3268-faca1bf46e-lite.chunk.js.map → 3268-2736356687-lite.chunk.js.map} +1 -1
- package/dist/scripts/3836-425334ab13-lite.chunk.js +2 -0
- package/dist/scripts/{3836-f2a0c9f713-lite.chunk.js.map → 3836-425334ab13-lite.chunk.js.map} +1 -1
- package/dist/scripts/3837-e4c5bb738b-lite.chunk.js +2 -0
- package/dist/scripts/3837-e4c5bb738b-lite.chunk.js.map +1 -0
- package/dist/scripts/4185-1f65c7adc9-lite.chunk.js +2 -0
- package/dist/scripts/4185-1f65c7adc9-lite.chunk.js.map +1 -0
- package/dist/scripts/4203-ee50e89841-lite.chunk.js +3 -0
- package/dist/scripts/4203-ee50e89841-lite.chunk.js.map +1 -0
- package/dist/scripts/4598-bcd3f6f8a7-lite.chunk.js +2 -0
- package/dist/scripts/{4598-2b1daca7ae-lite.chunk.js.map → 4598-bcd3f6f8a7-lite.chunk.js.map} +1 -1
- package/dist/scripts/4948-f21dad2ca1-lite.chunk.js +2 -0
- package/dist/scripts/4948-f21dad2ca1-lite.chunk.js.map +1 -0
- package/dist/scripts/{5153-079b4125ae-lite.chunk.js → 5153-acc6c13153-lite.chunk.js} +3 -3
- package/dist/scripts/5153-acc6c13153-lite.chunk.js.map +1 -0
- package/dist/scripts/6137-bc8b193237-lite.chunk.js +2 -0
- package/dist/scripts/6137-bc8b193237-lite.chunk.js.map +1 -0
- package/dist/scripts/6756-e90680dfcd-lite.chunk.js +3 -0
- package/dist/scripts/6756-e90680dfcd-lite.chunk.js.map +1 -0
- package/dist/scripts/6790-c8a9efba50-lite.chunk.js +2 -0
- package/dist/scripts/6790-c8a9efba50-lite.chunk.js.map +1 -0
- package/dist/scripts/705-10a85bae7a-lite.chunk.js +2 -0
- package/dist/scripts/705-10a85bae7a-lite.chunk.js.map +1 -0
- package/dist/scripts/7103-14bd3771d2-lite.chunk.js +2 -0
- package/dist/scripts/7103-14bd3771d2-lite.chunk.js.map +1 -0
- package/dist/scripts/7205-12a6b2ac55-lite.chunk.js +2 -0
- package/dist/scripts/7205-12a6b2ac55-lite.chunk.js.map +1 -0
- package/dist/scripts/7438-88d11bb89a-lite.chunk.js +2 -0
- package/dist/scripts/7438-88d11bb89a-lite.chunk.js.map +1 -0
- package/dist/scripts/7480-e0749592fc-lite.chunk.js +2 -0
- package/dist/scripts/7480-e0749592fc-lite.chunk.js.map +1 -0
- package/dist/scripts/8010-e9163f5bee-lite.chunk.js +2 -0
- package/dist/scripts/8010-e9163f5bee-lite.chunk.js.map +1 -0
- package/dist/scripts/8410-1f1fd5ccf0-lite.chunk.js +3 -0
- package/dist/scripts/8410-1f1fd5ccf0-lite.chunk.js.map +1 -0
- package/dist/scripts/8705-ecd20ef6cb-lite.chunk.js +2 -0
- package/dist/scripts/8705-ecd20ef6cb-lite.chunk.js.map +1 -0
- package/dist/scripts/8856-02dd2e486c-lite.chunk.js +2 -0
- package/dist/scripts/8856-02dd2e486c-lite.chunk.js.map +1 -0
- package/dist/scripts/9003-1db925f5ec-lite.chunk.js +2 -0
- package/dist/scripts/9003-1db925f5ec-lite.chunk.js.map +1 -0
- package/dist/scripts/9042-1a42fcbba2-lite.chunk.js +2 -0
- package/dist/scripts/9042-1a42fcbba2-lite.chunk.js.map +1 -0
- package/dist/scripts/9103-4eec16d73b-lite.chunk.js +2 -0
- package/dist/scripts/9103-4eec16d73b-lite.chunk.js.map +1 -0
- package/dist/scripts/9134-19912ca3ee-lite.chunk.js +2 -0
- package/dist/scripts/9134-19912ca3ee-lite.chunk.js.map +1 -0
- package/dist/scripts/9266-f0ad8d5cb3-lite.chunk.js +2 -0
- package/dist/scripts/9266-f0ad8d5cb3-lite.chunk.js.map +1 -0
- package/dist/scripts/9740-9d50d31b72-lite.chunk.js +2 -0
- package/dist/scripts/9740-9d50d31b72-lite.chunk.js.map +1 -0
- package/dist/scripts/{bundle-95a6fc2722.min.js → bundle-828ca65de8.min.js} +3 -3
- package/dist/scripts/{bundle-95a6fc2722.min.js.map → bundle-828ca65de8.min.js.map} +1 -1
- package/package.json +1 -1
- package/dist/scripts/104-b62a8447f0-lite.chunk.js +0 -2
- package/dist/scripts/104-b62a8447f0-lite.chunk.js.map +0 -1
- package/dist/scripts/107-989ac2dc47-lite.chunk.js +0 -2
- package/dist/scripts/107-989ac2dc47-lite.chunk.js.map +0 -1
- package/dist/scripts/119-e3a8bd94dd-lite.chunk.js +0 -2
- package/dist/scripts/119-e3a8bd94dd-lite.chunk.js.map +0 -1
- package/dist/scripts/1199-a2ac2338d0-lite.chunk.js +0 -2
- package/dist/scripts/1199-a2ac2338d0-lite.chunk.js.map +0 -1
- package/dist/scripts/121-bf7a153eb8-lite.chunk.js +0 -2
- package/dist/scripts/121-bf7a153eb8-lite.chunk.js.map +0 -1
- package/dist/scripts/1221-502395e693-lite.chunk.js.map +0 -1
- package/dist/scripts/2258-4d0639c9fe-lite.chunk.js +0 -3
- package/dist/scripts/2258-4d0639c9fe-lite.chunk.js.map +0 -1
- package/dist/scripts/3268-faca1bf46e-lite.chunk.js +0 -2
- package/dist/scripts/3836-f2a0c9f713-lite.chunk.js +0 -2
- package/dist/scripts/3837-fe321e8deb-lite.chunk.js +0 -2
- package/dist/scripts/3837-fe321e8deb-lite.chunk.js.map +0 -1
- package/dist/scripts/4025-306e0fbdd5-lite.chunk.js +0 -2
- package/dist/scripts/4025-306e0fbdd5-lite.chunk.js.map +0 -1
- package/dist/scripts/4164-5d3af57b67-lite.chunk.js +0 -2
- package/dist/scripts/4164-5d3af57b67-lite.chunk.js.map +0 -1
- package/dist/scripts/4185-e8e40dab72-lite.chunk.js +0 -2
- package/dist/scripts/4185-e8e40dab72-lite.chunk.js.map +0 -1
- package/dist/scripts/4562-545f04c53f-lite.chunk.js +0 -2
- package/dist/scripts/4562-545f04c53f-lite.chunk.js.map +0 -1
- package/dist/scripts/4598-2b1daca7ae-lite.chunk.js +0 -2
- package/dist/scripts/4948-66ba60c8e3-lite.chunk.js +0 -2
- package/dist/scripts/4948-66ba60c8e3-lite.chunk.js.map +0 -1
- package/dist/scripts/5153-079b4125ae-lite.chunk.js.map +0 -1
- package/dist/scripts/5241-163f5ac64c-lite.chunk.js +0 -3
- package/dist/scripts/5241-163f5ac64c-lite.chunk.js.map +0 -1
- package/dist/scripts/5349-bc0fcb4083-lite.chunk.js +0 -2
- package/dist/scripts/5349-bc0fcb4083-lite.chunk.js.map +0 -1
- package/dist/scripts/6135-a878a9cff0-lite.chunk.js +0 -3
- package/dist/scripts/6135-a878a9cff0-lite.chunk.js.map +0 -1
- package/dist/scripts/6509-23fdb20a4b-lite.chunk.js +0 -2
- package/dist/scripts/6509-23fdb20a4b-lite.chunk.js.map +0 -1
- package/dist/scripts/6790-5086b72662-lite.chunk.js +0 -2
- package/dist/scripts/6790-5086b72662-lite.chunk.js.map +0 -1
- package/dist/scripts/7205-2428f775a5-lite.chunk.js +0 -2
- package/dist/scripts/7205-2428f775a5-lite.chunk.js.map +0 -1
- package/dist/scripts/7339-5793c921bb-lite.chunk.js +0 -3
- package/dist/scripts/7339-5793c921bb-lite.chunk.js.map +0 -1
- package/dist/scripts/7438-a5f96e58fc-lite.chunk.js +0 -2
- package/dist/scripts/7438-a5f96e58fc-lite.chunk.js.map +0 -1
- package/dist/scripts/7926-6b040931aa-lite.chunk.js +0 -2
- package/dist/scripts/7926-6b040931aa-lite.chunk.js.map +0 -1
- package/dist/scripts/8536-f75009dd87-lite.chunk.js +0 -2
- package/dist/scripts/8536-f75009dd87-lite.chunk.js.map +0 -1
- package/dist/scripts/8856-df102acdff-lite.chunk.js +0 -2
- package/dist/scripts/8856-df102acdff-lite.chunk.js.map +0 -1
- package/dist/scripts/9134-42dc2390ce-lite.chunk.js +0 -2
- package/dist/scripts/9134-42dc2390ce-lite.chunk.js.map +0 -1
- package/dist/scripts/9266-c5d6705147-lite.chunk.js +0 -2
- package/dist/scripts/9266-c5d6705147-lite.chunk.js.map +0 -1
- package/dist/scripts/9284-402a14d41c-lite.chunk.js +0 -2
- package/dist/scripts/9284-402a14d41c-lite.chunk.js.map +0 -1
- package/dist/scripts/9470-11c8c2ca71-lite.chunk.js +0 -2
- package/dist/scripts/9470-11c8c2ca71-lite.chunk.js.map +0 -1
- package/dist/scripts/9527-111c8586a7-lite.chunk.js +0 -2
- package/dist/scripts/9527-111c8586a7-lite.chunk.js.map +0 -1
- package/dist/scripts/9591-230bcf0935-lite.chunk.js +0 -2
- package/dist/scripts/9591-230bcf0935-lite.chunk.js.map +0 -1
- /package/dist/css/{5349-lite-829df3b4e7.chunk.css → 6137-lite-829df3b4e7.chunk.css} +0 -0
- /package/dist/css/{9470-lite-edb2d29928.chunk.css → 8010-lite-edb2d29928.chunk.css} +0 -0
- /package/dist/css/{6135-lite-41bdd1c5a3.chunk.css → 8410-lite-41bdd1c5a3.chunk.css} +0 -0
- /package/dist/css/{121-lite-1337d9acf0.chunk.css → 9042-lite-1337d9acf0.chunk.css} +0 -0
- /package/dist/scripts/{1221-502395e693-lite.chunk.js.LICENSE.txt → 1221-894d8474d5-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{2258-4d0639c9fe-lite.chunk.js.LICENSE.txt → 2258-ed7383502f-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{5153-079b4125ae-lite.chunk.js.LICENSE.txt → 4203-ee50e89841-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{5241-163f5ac64c-lite.chunk.js.LICENSE.txt → 5153-acc6c13153-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{6135-a878a9cff0-lite.chunk.js.LICENSE.txt → 6756-e90680dfcd-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{7339-5793c921bb-lite.chunk.js.LICENSE.txt → 8410-1f1fd5ccf0-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{bundle-95a6fc2722.min.js.LICENSE.txt → bundle-828ca65de8.min.js.LICENSE.txt} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scripts/3837-e4c5bb738b-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/constants/DragOverlayStyles.ts","file:///app/packages/libs/shared/src/components/table/TableUtils.ts","file:///app/packages/libs/shared/src/components/table/table.scss","file:///app/packages/libs/shared/src/components/table/Table.tsx","file:///app/packages/libs/shared/src/apps/user-manager/components/bulk-upload/user-duplicates/empty-state/UserDuplicatesEmptyState.tsx","file:///app/packages/libs/shared/src/apps/user-manager/components/bulk-upload/user-duplicates/user-duplicate-set/UserDuplicateSetUtils.tsx","file:///app/packages/libs/shared/src/apps/user-manager/components/bulk-upload/user-duplicates/user-duplicate-set/UserDuplicateSet.tsx","file:///app/packages/libs/shared/src/apps/user-manager/components/bulk-upload/user-duplicates/UserDuplicates.tsx","file:///app/packages/projects/lite/src/apps/user-manager/views/bulk-user-upload/fix-duplicates/BulkUserUploadFixDuplicatesView.tsx"],"sourcesContent":["export const DragOverlayStyles = { opacity: '0.8', cursor: 'grabbing' };","import React from 'react';\nimport { PluginHook, useBlockLayout, useFilters, useFlexLayout, useGlobalFilter, useRowSelect, useSortBy } from 'react-table';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { HashObject } from 'libs/common/react/interfaces';\n\ninterface PluginOptions {\n allowFiltering?: boolean;\n allowGlobalFiltering?: boolean;\n layout?: 'flex' | 'block';\n}\n\nexport function getPlugins<T extends HashObject>(props: PluginOptions): PluginHook<T>[] {\n let plugins: PluginHook<T>[] = [\n useSortBy,\n useRowSelect,\n props.layout === 'flex' ? useFlexLayout : useBlockLayout\n ];\n\n if (props.allowFiltering)\n plugins = [\n ...plugins,\n useFilters\n ];\n\n if (props.allowGlobalFiltering)\n plugins = [\n ...plugins,\n useGlobalFilter\n ];\n\n return plugins;\n}\n\nexport function getSelectedRowIds(ids: string[]): Record<string, boolean> {\n const idHash: Record<string, boolean> = {};\n\n ids.forEach(id => idHash[id] = true);\n\n return idHash;\n}\n\ninterface TableScrollState {\n canScrollLeft: boolean;\n canScrollRight: boolean;\n}\n\nfunction calculateScrollState(ref: React.MutableRefObject<HTMLDivElement>): TableScrollState {\n const canScrollLeft = ref.current?.scrollLeft > 0;\n const canScrollRight = (ref.current?.scrollLeft + 1) < ref.current?.scrollWidth - ref.current?.clientWidth;\n\n return { canScrollLeft, canScrollRight };\n}\n\ninterface UseTableScroll {\n ref: (el: HTMLDivElement) => void;\n scrollState: TableScrollState;\n scroll: (scrollBy: number) => void;\n}\n\nexport function useTableScroll(): UseTableScroll {\n const elRef = React.useRef<HTMLDivElement>(null);\n const [ scrollState, setScrollState ] = React.useState<TableScrollState>(calculateScrollState(elRef));\n\n function onScroll(): void {\n setScrollState(calculateScrollState(elRef));\n }\n\n function scroll(scrollBy: number): void {\n elRef.current?.scrollBy({ left: scrollBy, top: 0, behavior: 'smooth' });\n }\n\n const throttledOnScroll = FunctionHelper.throttle(onScroll, 200);\n\n const ref = React.useCallback((el: HTMLDivElement) => {\n if (elRef.current) {\n elRef.current?.removeEventListener('scroll', throttledOnScroll);\n }\n\n if (el) {\n setScrollState(calculateScrollState(elRef));\n el.addEventListener('scroll', throttledOnScroll);\n }\n\n elRef.current = el;\n }, []);\n\n React.useEffect(() => {\n if (elRef?.current) {\n setScrollState(calculateScrollState(elRef));\n }\n }, [elRef]);\n\n return { ref, scrollState, scroll };\n}","// extracted by mini-css-extract-plugin\nexport default {\"sortIndicator\":\"gFhu0\",\"scrollContainer\":\"sWUp9\",\"scrollbarTrack\":\"Vn2qM\"};","import React from 'react';\nimport { Scrollbars } from 'react-custom-scrollbars-2';\nimport {\n Cell,\n Column as BaseColumn,\n HeaderGroup,\n HeaderProps as BaseHeaderProps,\n IdType,\n Row,\n SortingRule,\n TableOptions,\n TableRowProps,\n useTable } from 'react-table';\nimport { DragEndEvent } from '@dnd-kit/core';\n\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { Core } from 'libs/common/core';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { SortableContainerWrapper } from 'libs/shared/components/sortable/SortableContainerWrapper';\nimport { PropsWithSortableItemProps, SortableItemWrapper } from 'libs/shared/components/sortable/SortableItemWrapper';\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { WidgetButton, WidgetButtonDirection } from 'libs/shared/components/widgets/widget-button/WidgetButton';\nimport { DragOverlayStyles } from 'libs/shared/constants/DragOverlayStyles';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { getPlugins, getSelectedRowIds, useTableScroll } from './TableUtils';\n\nimport styles from './table.scss';\n\nexport interface TableTheme {\n table?: string;\n header?: string;\n headerRow?: string;\n headerCell?: string;\n body?: string;\n row?: string | ((row: Row<any>) => string);\n selectedRow?: string;\n cell?: string | ((row?: Row<any>, cell?: Cell<any, any>) => string);\n sortIndicator?: string;\n}\n\nexport type HeaderProps<T extends HashObject> = BaseHeaderProps<T> & {\n renderSortIndicator: () => void;\n}\n\nexport type Column<T extends HashObject> = BaseColumn<T> & {\n hideSortIndicator?: boolean;\n}\n\ninterface SortIndicatorProps<T extends HashObject> {\n column: HeaderGroup<T>;\n theme?: TableTheme;\n}\n\nfunction SortIndicator<T extends HashObject>(props: SortIndicatorProps<T>): JSX.Element {\n if (!props.column.canSort)\n return <></>;\n\n return (\n <span\n className={\n `${styles.sortIndicator}\n ${!props.column.isSorted ? 'text-secondary' : ''}\n ${props.theme?.sortIndicator ?? ''}`\n }\n >\n <SvgContainer\n svgName={(props.column.isSortedDesc || !props.column.isSorted)\n ? cvSvgLibrary.ArrowRight\n : cvSvgLibrary.ArrowLeft\n }\n size={SvgContainerSize.Small}\n />\n </span>\n );\n}\n\ninterface BaseTableProps<T extends HashObject> {\n /**\n * Must be memoized.\n */\n data: T[];\n\n /**\n * Must be memoized.\n * \n * For documentation on Column Options, see https://react-table.tanstack.com/docs/api/useTable#column-options\n */\n columns: Column<T>[];\n\n theme?: TableTheme;\n\n onSelectRow?: (row: Row<T>) => void;\n\n onSelectCell?: (cell: Cell<T>) => void;\n\n onRowMouseOver?: (row: Row<T>) => void;\n\n onRowMouseLeave?: (row: Row<T>) => void;\n\n allowSelectMultipleRows?: boolean;\n\n initialSelectedRowIds?: string[];\n\n getRowId?: (row: T) => string;\n\n getRowAppLink?: (row: Row<T>) => Core.AppLink;\n\n enableSort?: boolean;\n\n manualSort?: boolean;\n\n onSort?: (sortingRule: SortingRule<T>[]) => void;\n \n // Opt-in to utilise react-table's useFilter hook.\n allowFiltering?: boolean;\n\n // Opt-in to utilise react-table's useGlobalFilter hook.\n allowGlobalFiltering?: boolean;\n\n // Use either a flex layout or a block layout. Default is flex.\n layout?: 'flex' | 'block';\n\n // Used by useGlobalFilter hook, needs to be enabled by prop above.\n globalFilter?: string;\n\n // Set initial state of hidden columns in react-table.\n hiddenColumns?: IdType<T>[];\n\n // Determine whether hidden columns should be preserved on a table update event.\n autoResetHiddenColumns?: boolean;\n\n // Determine whether sort order state should be preserved on a table update event.\n autoResetSortBy?: boolean;\n\n // Determine whether rows are sortable by drag and drop\n enableSortableRows?: boolean;\n\n onSortingRowsEnd?: (event: DragEndEvent) => void;\n\n // Set initial state of sorting in react-table\n initialSortBy?: SortingRule<T>[];\n\n emptyState?: JSX.Element;\n}\n \ntype SortableRowProps = PropsWithSortableItemProps<TableRowProps>;\n\nfunction BaseTable<T extends HashObject>(props: BaseTableProps<T>): JSX.Element {\n const tableOptions: TableOptions<T> = {\n columns: props.columns,\n data: props.data,\n disableSortBy: !props.enableSort,\n manualSortBy: props.manualSort,\n autoResetHiddenColumns: props.autoResetHiddenColumns,\n autoResetSortBy: props.autoResetSortBy,\n initialState: {\n sortBy: props.initialSortBy || []\n }\n };\n\n if (props.initialSelectedRowIds)\n tableOptions.initialState = { selectedRowIds: getSelectedRowIds(props.initialSelectedRowIds) };\n\n if (props.getRowId)\n tableOptions.getRowId = props.getRowId;\n\n const {\n getTableProps,\n getTableBodyProps,\n headerGroups,\n rows,\n prepareRow,\n toggleAllRowsSelected,\n setGlobalFilter,\n setHiddenColumns,\n state: { sortBy }\n } = useTable<T>(tableOptions, ...getPlugins<T>({ ...props }));\n\n function getTableRowsClass(row: Row<T>) {\n let className = FunctionHelper.isFunction(props.theme?.row)\n ? props.theme.row(row)\n : props.theme?.row ?? '';\n\n if (row.isSelected && props.theme?.selectedRow)\n className += ` ${props.theme?.selectedRow}`;\n\n if (props.onSelectRow)\n className += ' cursor-pointer';\n\n if (props.enableSortableRows)\n className += ' cursor-grab';\n\n return className;\n }\n\n function renderTableRows() {\n if (!rows.length && props.emptyState)\n return props.emptyState;\n \n return rows.map(row => {\n prepareRow(row);\n \n const className = getTableRowsClass(row);\n const rowAppLink = !!props.getRowAppLink && props.getRowAppLink(row);\n\n function onClickRow(): void {\n if (!props.onSelectRow)\n return;\n\n if (!props.allowSelectMultipleRows)\n toggleAllRowsSelected(false);\n \n props.onSelectRow(row);\n row.toggleRowSelected(true);\n }\n\n function getSortableProps(props: TableRowProps | PropsWithSortableItemProps<TableRowProps>, ref?: any) {\n if ('dragAttributes' in props && 'dragListeners' in props) {\n return {\n ...props.dragAttributes,\n ...props.dragListeners,\n 'aria-roledescription': 'Sortable row',\n ref\n };\n }\n\n return {};\n }\n\n function renderRow(props: TableRowProps | PropsWithSortableItemProps<TableRowProps>, ref?: any): JSX.Element {\n const sortableProps = getSortableProps(props, ref);\n\n if (rowAppLink) {\n return (\n <div\n role='row'\n key={row.id}\n >\n <AppLink\n {...props}\n {...sortableProps}\n className={className}\n appLink={rowAppLink}\n >\n {renderCells(row)}\n </AppLink>\n </div>\n );\n }\n\n return (\n <div\n {...props}\n {...sortableProps}\n key={row.id}\n role='row'\n className={className}\n onClick={onClickRow}\n >\n {renderCells(row)}\n </div>\n );\n }\n\n const rowProps = row.getRowProps();\n\n if (props.enableSortableRows) {\n return (\n <SortableItemWrapper\n id={row.original.id}\n key={row.id}\n childProps={rowProps}\n childComponent={React.forwardRef(\n (props: SortableRowProps, ref: React.LegacyRef<HTMLDivElement>) => (renderRow(props, ref))\n )}\n />\n );\n }\n\n return renderRow(rowProps);\n });\n }\n\n function getDragOverlayClassName(theme: TableTheme): string {\n let className = 'g-0 ';\n\n if (theme)\n className += theme.row;\n\n return className;\n }\n\n function getDragOverlay(id: string) {\n const rowIndex = rows.findIndex(item => item.original.id === id);\n const row = rows[rowIndex];\n \n return (\n <div\n {...props}\n className={getDragOverlayClassName(props.theme)}\n style={DragOverlayStyles}\n >\n {renderCells(row)}\n </div>\n );\n }\n\n function getCellClassName(row: Row<T>, cell: Cell<T>): string {\n let cellClassName = '';\n\n if (typeof props.theme?.cell === 'function')\n cellClassName = props.theme.cell(row, cell);\n\n if (typeof props.theme?.cell === 'string')\n cellClassName = props.theme.cell;\n\n if (props.onSelectCell)\n cellClassName += ' cursor-pointer';\n\n return cellClassName;\n }\n\n function renderCells(row: Row<T>): JSX.Element[] {\n return row.cells.map(cell => {\n const cellClassName = getCellClassName(row, cell);\n\n function onClickCell(): void {\n props.onSelectCell && props.onSelectCell(cell);\n }\n\n return (\n <div key={cell.column.id} {...cell.getCellProps()} className={cellClassName} onClick={onClickCell} >\n {cell.render('Cell')}\n </div>\n );\n });\n }\n\n React.useEffect(() => {\n if (!props.onSort)\n return;\n\n props.onSort(sortBy);\n }, [sortBy]);\n\n React.useEffect(() => {\n if (!props.globalFilter)\n return;\n\n setGlobalFilter(props.globalFilter);\n }, [props.globalFilter]);\n\n React.useEffect(() => {\n if (!props.hiddenColumns)\n return;\n\n setHiddenColumns(props.hiddenColumns);\n }, [props.hiddenColumns && props.hiddenColumns.length]);\n\n return (\n <div {...getTableProps()} className={props.theme?.table ?? ''}>\n <div className={props.theme?.header ?? ''}>\n {headerGroups.map(headerGroup => (\n <div {...headerGroup.getHeaderGroupProps()} className={props.theme?.headerRow ?? ''}>\n {headerGroup.headers.map(column => (\n <div {...column.getHeaderProps(column.getSortByToggleProps())} className={props.theme?.headerCell ?? ''}>\n {column.render('Header', { renderSortIndicator: () => <SortIndicator column={column} theme={props.theme} /> })}\n {!(column as Column<T>).hideSortIndicator &&\n <SortIndicator column={column} theme={props.theme} />\n }\n </div>\n ))}\n </div>\n ))}\n </div>\n <div {...getTableBodyProps()} className={props.theme?.body ?? ''}>\n { props.enableSortableRows ? (\n <SortableContainerWrapper\n ids={rows.map(row => row.original.id)}\n getDragOverlay={getDragOverlay}\n onSortEnd={props.onSortingRowsEnd}\n >\n {renderTableRows()}\n </SortableContainerWrapper>\n ) : (\n renderTableRows()\n )}\n </div>\n </div>\n );\n}\n\ninterface TableProps<T extends HashObject> extends BaseTableProps<T> {\n enableSlider?: boolean;\n scrollIncrement?: number;\n scrollContainerClassName?: string;\n scrollable?: boolean;\n initialSortBy?: SortingRule<T>[];\n}\n\nTable.defaultProps = {\n scrollIncrement: 250,\n scrollable: false,\n layout: 'flex'\n};\n\nexport function Table<T extends HashObject>(props: TableProps<T>): JSX.Element {\n const { enableSlider, scrollIncrement, scrollable, ...tableProps } = props;\n\n const { ref, scrollState, scroll } = useTableScroll();\n\n if (scrollable) {\n return (\n <Scrollbars\n renderTrackHorizontal={() => <div className={styles.scrollbarTrack} />}\n autoHeightMax={10000}\n autoHeight\n >\n <BaseTable {...tableProps} />\n </Scrollbars>\n );\n }\n\n if (!enableSlider)\n return <BaseTable {...tableProps} />;\n\n function onClickScroll(direction: 'left' | 'right'): void {\n scroll(scrollIncrement * (direction === 'right' ? 1 : -1));\n }\n\n return (\n <div className='mx-n4 overflow-x-hidden overflow-y-hidden'>\n <div className='px-4'>\n <div className='position-relative'>\n <WidgetButton\n direction={WidgetButtonDirection.Left}\n onClick={() => onClickScroll('left')}\n hide={!scrollState.canScrollLeft}\n />\n <div className={`${styles.scrollContainer} ${props.scrollContainerClassName}`} ref={ref}>\n <BaseTable {...tableProps } />\n </div>\n <WidgetButton\n direction={WidgetButtonDirection.Right}\n onClick={() => onClickScroll('right')}\n hide={!scrollState.canScrollRight}\n />\n </div>\n </div>\n </div>\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { useBulkUploadUsers } from 'libs/shared/apps/user-manager/hooks/useBulkUploadUsers';\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\nimport { Text } from 'libs/shared/components/text/Text';\n\nconst namespace = 'userManager.userDuplicatesEmptyState';\n\ninterface UserDuplicatesEmptyStateProps {\n imageUrl: string;\n onClickConfirm: () => void;\n}\n\nexport function UserDuplicatesEmptyState(props: UserDuplicatesEmptyStateProps): JSX.Element {\n const { existingUsersHash } = useBulkUploadUsers();\n\n const goNext = !!Object.keys(existingUsersHash).length;\n\n return (\n <EmptyState>\n <EmptyState.Image src={props.imageUrl} />\n <EmptyState.Heading>\n <Text namespace={namespace} phrase='heading' />\n </EmptyState.Heading>\n <EmptyState.Cta\n text={LanguageService.getPhrase(namespace, goNext ? 'next' : 'create')}\n onClick={props.onClickConfirm}\n className='btn btn-dark'\n />\n </EmptyState>\n );\n}","import React from 'react';\nimport { CellProps, Column } from 'react-table';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { UserValidationCode } from 'libs/shared/apps/user-manager/enums/UserValidationCode';\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nconst namespace = 'userManager.userDuplicateSet';\n\ninterface UserDuplicateData {\n lookupId: string;\n firstName: string;\n surname: string;\n email: string;\n username: string;\n errorCodes: UserValidationCode[];\n}\n\nexport const getColumns = (\n onClickEdit: (id: string) => void,\n onClickDelete: (id: string) => void\n): Column<UserDuplicateData>[] => ([\n {\n Header: LanguageService.getPhrase(namespace, 'firstName'),\n id: 'firstName',\n accessor: 'firstName',\n Cell: ({ value }) => (\n <div className='w-100'>\n {value}\n </div>\n ),\n width: 12.5\n },\n {\n Header: LanguageService.getPhrase(namespace, 'lastName'),\n id: 'surname',\n accessor: 'surname',\n Cell: ({ value }) => (\n <div className='w-100'>\n {value}\n </div>\n ),\n width: 12.5\n },\n {\n Header: LanguageService.getPhrase(namespace, 'email'),\n id: 'email',\n Cell: (cell: CellProps<UserDuplicateData>) => {\n const data = cell.row.original;\n const hasError = data.errorCodes.find(e => e === UserValidationCode.EmailAlreadyExisted);\n\n return (\n <div className={`w-100 ${hasError ? 'text-danger' : ''}`}>\n {data.email}\n </div>\n );\n },\n width: 39\n },\n {\n Header: LanguageService.getPhrase(namespace, 'username'),\n id: 'username',\n Cell: (cell: CellProps<UserDuplicateData>) => {\n const data = cell.row.original;\n const hasError = data.errorCodes.find(e => e === UserValidationCode.UsernameAlreadyExisted);\n\n return (\n <div className={`w-100 ${hasError ? 'text-danger' : ''}`}>\n {data.username}\n </div>\n );\n },\n width: 29\n },\n {\n Header: '',\n id: 'actions',\n accessor: 'lookupId',\n Cell: ({ value: lookupId }) => (\n <div className='w-100 d-flex align-items-center'>\n <DivButton className='me-2 cursor-pointer' onClick={() => onClickEdit(lookupId)}>\n <SvgContainer\n svgName={cvSvgLibrary.Edit}\n title={LanguageService.getPhrase(namespace, 'editTooltip')}\n tooltipPlacement='top'\n tooltipSpanHack\n />\n </DivButton>\n <DivButton className='cursor-pointer' onClick={() => onClickDelete(lookupId)}>\n <SvgContainer\n svgName={cvSvgLibrary.Close}\n title={LanguageService.getPhrase(namespace, 'deleteTooltip')}\n tooltipPlacement='top'\n tooltipSpanHack\n />\n </DivButton>\n </div>\n ),\n width: 7\n }\n]);","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { UserValidationCode } from 'libs/shared/apps/user-manager/enums/UserValidationCode';\nimport { EditUserRequest } from 'libs/shared/apps/user-manager/interfaces';\nimport { DuplicateUserSet } from 'libs/shared/apps/user-manager/interfaces/viewmodels/BulkUserUploadViewModel';\nimport { Table, TableTheme } from 'libs/shared/components/table/Table';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { UserGroup } from 'libs/shared/enums/UserGroup';\n\nimport { getColumns } from './UserDuplicateSetUtils';\n\nconst namespace = 'userManager.userDuplicateSet';\n\nconst TABLE_THEME: TableTheme = {\n header: 'fw-semibold pb-1',\n headerCell: 'px-2 py-1',\n cell: 'px-2 py-1'\n};\n\nfunction getErrorMessage(errorCodes: UserValidationCode[], userType: UserGroup): string {\n const isStudent = userType === UserGroup.Learner;\n\n if (errorCodes.length === 2)\n return LanguageService.getPhrase(namespace, isStudent ? 'duplicateUsernameAndEmailStudents' : 'duplicateUsernameAndEmailStaff');\n\n if (errorCodes.find(c => c === UserValidationCode.UsernameAlreadyExisted))\n return LanguageService.getPhrase(namespace, isStudent ? 'duplicateUsernamesStudents' : 'duplicateUsernamesStaff');\n\n if (errorCodes.find(c => c === UserValidationCode.EmailAlreadyExisted))\n return LanguageService.getPhrase(namespace, isStudent ? 'duplicateEmailsStudents' : 'duplicateEmailsStaff');\n\n return '';\n}\n\ninterface UserDuplicateSetProps {\n index: number;\n set: DuplicateUserSet;\n userType: UserGroup;\n\n onClickEdit: (user: EditUserRequest) => void;\n onClickDelete: (users: string[]) => void;\n}\n\nexport function UserDuplicateSet(props: UserDuplicateSetProps): JSX.Element {\n const errorMessage = getErrorMessage(props.set.errorCodes, props.userType);\n\n const onClickEdit = (id: string) => props.onClickEdit(props.set.users.find(u => u.lookupId === id));\n const onClickDelete = (id: string) => props.onClickDelete([id]);\n\n if (!errorMessage)\n return <></>;\n\n return (\n <div className='pb-4'>\n <h3 className='h5'>\n <Text namespace={namespace} phrase='heading' options={{ counter: props.index + 1 }} />\n </h3>\n <p className='text-danger mb-1'>\n {errorMessage}\n </p>\n\n <div className='p-2 border rounded-3'>\n <Table\n columns={getColumns(onClickEdit, onClickDelete)}\n data={props.set.users.map(u => ({\n lookupId: u.lookupId,\n firstName: u.firstName,\n surname: u.surname,\n email: u.email,\n username: u.username,\n errorCodes: props.set.errorCodes\n }))}\n theme={TABLE_THEME}\n />\n </div>\n </div>\n );\n}","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { HashObject } from 'libs/common/react/interfaces';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\nimport { onCloseDeletePopup, onCloseEditPopup } from 'libs/shared/apps/user-manager/components/bulk-upload/BulkUserUploadEvents';\nimport { DeleteUploadedUserPopup } from 'libs/shared/apps/user-manager/components/delete-uploaded-user-popup/DeleteUploadedUserPopup';\nimport { EditUploadedUserPopup } from 'libs/shared/apps/user-manager/components/edit-uploaded-user-popup/EditUploadedUserPopup';\nimport { useBulkUploadUsers } from 'libs/shared/apps/user-manager/hooks/useBulkUploadUsers';\nimport { BulkUserEmailCheckResponse, EditUserRequest, ErroredUsers, UserManagerAppLinks } from 'libs/shared/apps/user-manager/interfaces';\nimport { SecuritySettingsResponse } from 'libs/shared/apps/user-manager/interfaces/SecuritySettingsResponse';\nimport { DuplicateUserSet } from 'libs/shared/apps/user-manager/interfaces/viewmodels/BulkUserUploadViewModel';\nimport { BulkUserUploadHelper } from 'libs/shared/apps/user-manager/utils/BulkUserUploadHelper';\nimport { FormSize } from 'libs/shared/components/forms/form-field/FormField';\nimport { IconButton } from 'libs/shared/components/icon-button/IconButton';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { WizardLayoutContext } from 'libs/shared/context/WizardLayoutContext';\nimport { UserGroup } from 'libs/shared/enums/UserGroup';\nimport { CurrentUser, PropsWithPopupViewProps, YearGroup } from 'libs/shared/interfaces';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { UserDuplicatesEmptyState } from './empty-state/UserDuplicatesEmptyState';\nimport { UserDuplicateSet } from './user-duplicate-set/UserDuplicateSet';\n\ntype UserDuplicatesProps = PropsWithPopupViewProps<{\n userType: UserGroup;\n appLinks: UserManagerAppLinks;\n currentUser: CurrentUser;\n yearGroups: YearGroup[];\n validateUser: (user: EditUserRequest) => Promise<ErroredUsers>;\n validateEmail?: (email: string) => Promise<BulkUserEmailCheckResponse>;\n emailRequired: boolean;\n passwordPolicy: SecuritySettingsResponse;\n emptyStateImageUrl: string;\n onClickConfirm: () => void;\n formSize?: FormSize;\n localErrorMessage?: HashObject;\n}>;\n\nexport function UserDuplicates(props: UserDuplicatesProps): JSX.Element {\n const { users, duplicateSets } = useBulkUploadUsers();\n\n const { setDisableNext, setOnClickConfirm } = React.useContext(WizardLayoutContext);\n\n const namespace = props.userType === UserGroup.Learner\n ? 'userManager.studentDuplicates'\n : 'userManager.staffDuplicates';\n\n const getPhrase = LanguageService.encloseNamespace(namespace);\n\n const [ deletingUsers, setDeletingUsers ] = React.useState<string[]>([]);\n const [ editingUser, setEditingUser ] = React.useState<EditUserRequest>();\n\n const [initialSets] = React.useState<DuplicateUserSet[]>(duplicateSets);\n\n React.useEffect(() => {\n setDisableNext(!!duplicateSets?.length);\n }, [duplicateSets?.length]);\n\n React.useEffect(() => {\n setOnClickConfirm(() => props.onClickConfirm);\n }, [props.onClickConfirm]);\n\n if (!users?.length)\n return <></>;\n\n return (\n <>\n <h2 className='h4'><Text namespace={namespace} phrase='heading' /></h2>\n\n <main className='pb-3'>\n {duplicateSets?.length ? (\n <>\n <p className='mb-3 fw-semibold'>\n <Text namespace={namespace} phrase='subheading' />\n </p>\n\n <div className='pb-3'>\n <IconButton svgName={cvSvgLibrary.Upload} appLink={props.appLinks.userUploadPopup} className='btn btn-outline-dark me-2'>\n <Text namespace={namespace} phrase='reupload' />\n </IconButton>\n </div>\n\n {initialSets.map((initialSet, index) => {\n const initialSetIds = initialSet.users.map(u => u.lookupId);\n\n const updatedSet = duplicateSets.find(updatedSet => {\n const updatedSetIds = updatedSet.users.map(u => u.lookupId);\n\n return ObjectHelper.isEqual(initialSetIds, updatedSetIds);\n });\n\n const isResolved = !updatedSet.errorCodes.length;\n\n if (isResolved)\n return <React.Fragment key={index}></React.Fragment>;\n\n return (\n <UserDuplicateSet\n key={index}\n index={index}\n set={updatedSet}\n userType={props.userType}\n onClickEdit={setEditingUser}\n onClickDelete={setDeletingUsers}\n />\n );\n })}\n </>\n ) : (\n <>\n <p className='mb-3'>\n <Text namespace={namespace} phrase='emptyStateSubheading' />\n </p>\n <UserDuplicatesEmptyState imageUrl={props.emptyStateImageUrl} onClickConfirm={props.onClickConfirm} />\n </>\n )}\n \n </main>\n\n {!!editingUser && (\n <EditUploadedUserPopup\n key={editingUser.lookupId}\n user={editingUser}\n setUser={setEditingUser}\n closePopup={() => onCloseEditPopup(setEditingUser, props.closePopup)}\n title={getPhrase('editUser')}\n userType={props.userType}\n analyticsOptions={BulkUserUploadHelper.getAnalyticsOptions(props.userType)}\n currentUser={props.currentUser}\n yearGroups={props.yearGroups}\n validateUser={props.validateUser}\n formSize={props.formSize}\n emailRequired={props.emailRequired}\n passwordPolicy={props.passwordPolicy}\n appLinks={props.appLinks}\n localErrorMessage={props.localErrorMessage}\n validateEmail={props.validateEmail}\n />\n )}\n\n {!!deletingUsers.length && (\n <DeleteUploadedUserPopup\n users={deletingUsers}\n userType={props.userType}\n closePopup={() => onCloseDeletePopup(setDeletingUsers, props.closePopup)}\n analyticsOptions={BulkUserUploadHelper.getAnalyticsOptions(props.userType)}\n />\n )}\n </>\n );\n}\n","import React from 'react';\nimport { useDispatch } from 'react-redux';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\nimport { Flight } from 'libs/common/flight';\n\nimport { BulkUserUploadWizardLayout } from 'libs/shared/apps/user-manager/components/bulk-upload/layout/BulkUserUploadWizardLayout';\nimport { UserDuplicates } from 'libs/shared/apps/user-manager/components/bulk-upload/user-duplicates/UserDuplicates';\nimport { UserManagerClientContext } from 'libs/shared/apps/user-manager/context/UserManagerClientContext';\nimport { UserManagerClient } from 'libs/shared/apps/user-manager/enums/UserManagerClient';\nimport { useBulkUploadUsers } from 'libs/shared/apps/user-manager/hooks/useBulkUploadUsers';\nimport { BulkUserEmailCheckRequest, BulkUserEmailCheckResponse, EditUserRequest, ErroredUsers } from 'libs/shared/apps/user-manager/interfaces';\nimport { UserWizardParams } from 'libs/shared/apps/user-manager/interfaces/query-params/UserWizardParams';\nimport { SecuritySettingsResponse } from 'libs/shared/apps/user-manager/interfaces/SecuritySettingsResponse';\nimport { BulkUserActionsHelper } from 'libs/shared/apps/user-manager/utils/BulkUserActionsHelper';\nimport { BulkUserUploadHelper } from 'libs/shared/apps/user-manager/utils/BulkUserUploadHelper';\nimport { UserManagerHelper } from 'libs/shared/apps/user-manager/utils/UserManagerHelper';\nimport { UserGroup } from 'libs/shared/enums/UserGroup';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { BatchJob, CurrentUser, PropsWithPopupViewProps, YearGroup } from 'libs/shared/interfaces';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\nimport { JobRequests } from 'shared/flight-requests/JobRequests';\n\nimport { SecuritySettingsRequests } from 'apps/settings/flight-requests/SecuritySettingsRequests';\nimport { UserManagerRequests } from 'apps/user-manager/flight-requests/UserManagerRequests';\nimport { getUserManagerAppLinks } from 'apps/user-manager/utils/LiteUserManagerAppLinks';\n\nconst namespace = 'userManager.bulkUploadFixDuplicates';\n\nexport function BulkUserUploadFixDuplicatesView(props: PropsWithPopupViewProps<UserWizardParams>): JSX.Element {\n const { users, existingUsersHash } = useBulkUploadUsers();\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const yearGroups = Flight.useBasicFetch<YearGroup[]>(\n currentUser.data && UserManagerRequests.yearGroups(currentUser.data.customerId)\n );\n const passwordPolicy = Flight.useBasicFetch<SecuritySettingsResponse>(currentUser.data &&\n SecuritySettingsRequests.getCustomerSecuritySettings(currentUser.data.customerId));\n\n const dispatch = useDispatch();\n const fetchAsync = Flight.useGetFetchAsync();\n const appLinks = getUserManagerAppLinks(props.userType);\n useSetPageMetadata({ title: LanguageService.getPhrase(namespace, 'pageTitle') });\n\n function validateUser(_user: EditUserRequest): Promise<ErroredUsers> {\n const data = UserManagerHelper.formatCreateOrValidateUserRequest(\n [_user],\n props.userType,\n currentUser.data.customerId\n );\n\n return fetchAsync(UserManagerRequests.bulkValidate(data));\n }\n\n function validateEmail(email: string): Promise<BulkUserEmailCheckResponse> {\n const body: BulkUserEmailCheckRequest = {\n userEmails: [{ email, userType: props.userType }]\n };\n\n return fetchAsync(UserManagerRequests.bulkCheckEmail(body, currentUser.data.customerId));\n }\n\n const onCreateJobError = BulkUserActionsHelper.useCreateJobErrorAlert();\n\n function onClickConfirm() {\n if (Object.keys(existingUsersHash).length) {\n goToNextStep();\n return;\n }\n startBulkUpload();\n }\n\n function goToNextStep() {\n Core.AppLinkHelper.trigger(appLinks.userUploadReviewExistingAccounts);\n return;\n }\n\n function startBulkUpload(): void {\n const jobData = BulkUserUploadHelper.getJobData({\n users, customerId: currentUser.data.customerId, userType: props.userType\n });\n Flight.fetch(dispatch, JobRequests.createJob(jobData, onCreateJob, onCreateJobError));\n }\n\n function onCreateJob(job: BatchJob): void {\n Core.AppLinkHelper.trigger({\n ...appLinks.userUploadStatus.polling,\n params: {\n userType: props.userType,\n jobId: job.id\n }\n });\n }\n\n if (!currentUser.data || !yearGroups.data)\n return <></>;\n \n return (\n <UserManagerClientContext.Provider value={UserManagerClient.Primary}>\n <BulkUserUploadWizardLayout\n appLinks={appLinks}\n userType={props.userType}\n currentStep='fix-duplicates'\n canAddExistingUsers\n >\n <div className='px-3'>\n <UserDuplicates\n onClickConfirm={onClickConfirm}\n closePopup={props.closePopup}\n appLinks={appLinks}\n userType={props.userType}\n currentUser={currentUser.data}\n yearGroups={yearGroups.data}\n validateUser={validateUser}\n validateEmail={validateEmail}\n emailRequired={props.userType === UserGroup.Staff}\n passwordPolicy={passwordPolicy.data}\n emptyStateImageUrl={ImageUrls.EmptyStates.UserManager.DUPLICATES}\n localErrorMessage={BulkUserUploadHelper.getErrorMessageOverride(props.userType)}\n />\n </div>\n </BulkUserUploadWizardLayout>\n </UserManagerClientContext.Provider>\n );\n}"],"names":["DragOverlayStyles","opacity","cursor","calculateScrollState","ref","canScrollLeft","current","scrollLeft","canScrollRight","scrollWidth","clientWidth","SortIndicator","props","column","canSort","className","isSorted","theme","sortIndicator","SvgContainer","svgName","isSortedDesc","size","S","BaseTable","ids","idHash","tableOptions","columns","data","disableSortBy","enableSort","manualSortBy","manualSort","autoResetHiddenColumns","autoResetSortBy","initialState","sortBy","initialSortBy","initialSelectedRowIds","selectedRowIds","forEach","id","getRowId","useTable","plugins","useSortBy","useRowSelect","layout","useFlexLayout","useBlockLayout","allowFiltering","useFilters","allowGlobalFiltering","useGlobalFilter","getPlugins","getTableProps","getTableBodyProps","headerGroups","rows","prepareRow","toggleAllRowsSelected","setGlobalFilter","setHiddenColumns","state","renderTableRows","length","emptyState","map","row","FunctionHelper","isSelected","selectedRow","onSelectRow","enableSortableRows","getTableRowsClass","rowAppLink","getRowAppLink","onClickRow","allowSelectMultipleRows","toggleRowSelected","renderRow","sortableProps","dragAttributes","dragListeners","getSortableProps","role","key","AppLink","appLink","renderCells","onClick","rowProps","getRowProps","SortableItemWrapper","original","childProps","childComponent","cells","cell","cellClassName","onSelectCell","getCellClassName","getCellProps","render","onSort","globalFilter","hiddenColumns","table","header","headerGroup","getHeaderGroupProps","headerRow","headers","getHeaderProps","getSortByToggleProps","headerCell","renderSortIndicator","hideSortIndicator","body","SortableContainerWrapper","getDragOverlay","rowIndex","findIndex","item","style","onSortEnd","onSortingRowsEnd","Table","enableSlider","scrollIncrement","scrollable","tableProps","elRef","scrollState","setScrollState","throttledOnScroll","el","removeEventListener","addEventListener","scroll","scrollBy","left","top","behavior","useTableScroll","renderTrackHorizontal","autoHeightMax","autoHeight","onClickScroll","direction","WidgetButton","W","hide","scrollContainerClassName","defaultProps","namespace","UserDuplicatesEmptyState","existingUsersHash","useBulkUploadUsers","goNext","Object","keys","EmptyState","src","imageUrl","Text","phrase","text","LanguageService","onClickConfirm","getColumns","onClickEdit","onClickDelete","Header","accessor","Cell","value","width","hasError","errorCodes","find","e","UserValidationCode","email","username","lookupId","DivButton","title","tooltipPlacement","tooltipSpanHack","TABLE_THEME","UserDuplicateSet","isStudent","errorMessage","set","userType","UserGroup","c","options","counter","index","users","u","firstName","surname","UserDuplicates","duplicateSets","WizardLayoutContext","setDisableNext","setOnClickConfirm","getPhrase","deletingUsers","setDeletingUsers","editingUser","setEditingUser","initialSets","IconButton","appLinks","userUploadPopup","initialSet","initialSetIds","updatedSet","updatedSetIds","ObjectHelper","emptyStateImageUrl","EditUploadedUserPopup","user","setUser","closePopup","analyticsOptions","BulkUserUploadHelper","currentUser","yearGroups","validateUser","formSize","emailRequired","passwordPolicy","localErrorMessage","validateEmail","DeleteUploadedUserPopup","BulkUserUploadFixDuplicatesView","UserRequests","UserManagerRequests","customerId","SecuritySettingsRequests","dispatch","fetchAsync","useSetPageMetadata","onCreateJobError","BulkUserActionsHelper","onCreateJob","job","userUploadStatus","polling","params","jobId","UserManagerClientContext","UserManagerClient","BulkUserUploadWizardLayout","currentStep","canAddExistingUsers","jobData","userUploadReviewExistingAccounts","JobRequests","_user","UserManagerHelper","userEmails","ImageUrls"],"sourceRoot":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[4185],{1619:(e,t,n)=>{n.d(t,{e:()=>g});var a=n(32735),r=n(23481),s=n(12528),l=n(83914),o=n(35223),i=n(33518),c=n(2510);function m(e){return m="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},m(e)}function u(e,t,n){return(t=function(e){var t=function(e){if("object"!=m(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=m(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==m(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var p=r.T.encloseNamespace("sharev2.shareAvatar"),d=u(u(u(u({},c.y.Open,o.vn.Classrooms),c.y.Link,o.vn.Link),c.y.Classroom,o.vn.Classrooms),c.y.Live,o.vn.Play),v=u(u(u(u({},c.y.Open,"blue"),c.y.Link,"black"),c.y.Classroom,"teal"),c.y.Live,"purple"),h=u(u(u(u({},c.y.Open,"openShareType"),c.y.Link,"linkShareType"),c.y.Classroom,"classroomShareType"),c.y.Live,"liveShareType");function g(e){var t,n;return a.createElement("div",{className:"d-flex align-items-center gap-2"},a.createElement("div",null,a.createElement(s.f,{svgName:d[e.type],variant:v[e.type],textVariant:"white",svgWrapperClassName:"p-1",svgSize:null!==(t=e.svgSize)&&void 0!==t?t:l.S.Standard})),a.createElement("div",{className:"d-flex flex-column"},a.createElement("p",{className:"m-0"},function(e){var t=e.type,n=e.classroomName,a=e.additionalTitleText;if(t===c.y.Classroom&&n)return n;var r=p(h[t]);return a&&(r+=" "+a),r}(e)),!e.hideSubtitle&&a.createElement("span",{className:"text-secondary"},null!==(n=e.subtitleText)&&void 0!==n?n:function(e){var t=e.type,n=e.privacy,a=e.studentCount,r=void 0===a?0:a,s=e.classroomGroupCount,l=void 0===s?0:s;switch(t){case c.y.Classroom:return function(e,t){return e&&t?"".concat(p("classroomGroupCount",{smartCount:e}),", ").concat(p("studentSubTitle",{smartCount:t})):e?p("groupSubTitle",{smartCount:e}):t?p("studentSubTitle",{smartCount:t}):p("allStudentsSubTitle")}(l,r);case c.y.Open:return p("openShareTypeSubTitle");case c.y.Link:return function(e){return[i.e.JustMySchool,i.e.Protected].includes(e)?p("respectRatingsSubTitle"):e===i.e.JustMySchoolOverrideRestriction?p("anyoneInSchoolSubTitle"):e===i.e.ProtectedOverrideRestriction?p("anyoneSignedInSubTitle"):e===i.e.Public?p("anyoneWithLinkSubTitle"):e===i.e.PinCode?p("anyoneWithPinSubTitle"):void 0}(n);case c.y.Live:return p("liveShareTypeSubTitle");default:return p("publicShareTypeSubTitle")}}(e))))}},41661:(e,t,n)=>{var a;n.d(t,{D:()=>a}),function(e){e.GoogleClassroom="google-classroom",e.MicrosoftTeams="microsoft-teams",e.Vivi="vivi",e.AppleTv="apply-tv"}(a||(a={}))},40841:(e,t,n)=>{n.d(t,{_:()=>o});var a=n(23481),r=n(41661),s=n(65728),l=a.T.encloseNamespace("shared.shared-utils"),o={getShareIntegrations:function(e,t){return[{id:r.D.GoogleClassroom,name:l("googleClassroom"),enabled:e,settingName:s.E.ShareToGoogleClassroom},{id:r.D.MicrosoftTeams,name:l("msftTeams"),enabled:t,settingName:s.E.ShareToMicrosoftTeams}]}}},5655:(e,t,n)=>{n.d(t,{QD:()=>C,Qv:()=>T,__:()=>S});var a=n(32735),r=n(68050),s=n(69111),l=n(42648),o=n(82602),i=n(31453),c=n(1619),m=n(83914),u=n(35223),p=n(2510);function d(e){return a.createElement("span",{className:"d-inline-flex flex-row gap-2 align-items-center"},a.createElement(m.x,{svgName:u.vn.User}),a.createElement("span",null,function(){var t=e.share.accessCount||0;if(e.share.type===p.y.Open)return"".concat(t);if(e.share.type===p.y.Classroom){var n=e.share.recipients.length;return"".concat(t,"/").concat(n)}return"-"}()))}var v=n(21789),h=n(15611),g=n(91693),y=n(83345);const f={shareListItem:"vLROV",visibleOnHover:"o2KJH"};var b="assign.previousAssignments";function E(e){return a.createElement("div",{className:(0,i.A)("d-flex align-items-center justify-content-between",e.show&&"mb-3")},a.createElement("h3",{className:"h6 m-0 p-0"},a.createElement(y.x,{namespace:b,phrase:"heading",options:{count:e.count}})),a.createElement(g.h,{svgName:e.show?u.vn.ChevronUp:u.vn.ChevronDown,onClick:e.onToggle}))}function S(){var e="d-flex align-items-end justify-content-start fw-medium";return a.createElement(y.D.Provider,{value:b},a.createElement(r.Z,{className:"gx-2 px-3 mb-2"},a.createElement(s.Z,{xs:4,className:e},a.createElement(y.x,{phrase:"assignedTo"})),a.createElement(s.Z,{xs:2,className:e},a.createElement(y.x,{phrase:"views"})),a.createElement(s.Z,{xs:2,className:e},a.createElement(y.x,{phrase:"viewedBy"})),a.createElement(s.Z,{xs:4,className:e},a.createElement(y.x,{phrase:"dateCreated"}))))}function x(e){var t,n=v.x.getClassroomForShare(e.share,e.classrooms),l=null===(t=e.getItemAnalytics)||void 0===t?void 0:t.call(e,e.share);return a.createElement(h.F,{key:e.share.shareId,appLink:e.getItemAppLink(e.share),analyticsData:null==l?void 0:l.data,analyticsOptions:null==l?void 0:l.options,className:(0,i.A)("d-block p-3 hover-bg-light-blue border border-top-0 no-hover-text-underline",f.shareListItem,e.className)},a.createElement(r.Z,{className:"gx-2"},a.createElement(s.Z,{xs:4,className:"d-flex align-items-center"},a.createElement(c.e,{type:e.share.type,privacy:e.share.privacy,classroomName:null==n?void 0:n.name,svgSize:m.S.Small,hideSubtitle:!0})),a.createElement(s.Z,{xs:2,className:"d-flex align-items-center justify-content-start"},a.createElement(y.x,{namespace:b,phrase:"viewCount",options:{smartCount:e.share.viewCount||0}})),a.createElement(s.Z,{xs:2,className:"d-flex align-items-center justify-content-start"},a.createElement(d,{share:e.share})),a.createElement(s.Z,{xs:4,lg:3,className:"d-flex align-items-center justify-content-start"},a.createElement("span",null,(0,o.WU)(e.share.dateCreated))),a.createElement(s.Z,{lg:1,className:"align-items-center justify-content-end d-none d-lg-flex"},a.createElement("span",{className:(0,i.A)("cursor-pointer text-info hover-text-underline",f.visibleOnHover)},a.createElement(y.x,{namespace:b,phrase:"view"})))))}function T(e){var t;return a.createElement("div",{className:(0,i.A)("d-flex flex-column border-top rounded-top overflow-hidden")},a.createElement(l.ZP,{autoHeight:!0,autoHeightMin:0,autoHeightMax:null!==(t=e.scrollHeightMax)&&void 0!==t?t:215,autoHide:!0},e.assignments.reverse().map((function(t,n){return a.createElement(x,{share:t,classrooms:e.classrooms,getItemAppLink:e.getItemAppLink,getItemAnalytics:function(t){var a;return null===(a=e.getItemAnalytics)||void 0===a?void 0:a.call(e,t,n)},className:(0,i.A)(n%2==0&&"bg-gray-100"),key:t.shareId})}))))}function C(e){if(!e.assignments.length)return a.createElement(a.Fragment,null);var t=e.show&&e.assignments.length>3;return a.createElement("div",{className:(0,i.A)("bg-white rounded-3 p-3",t&&"pb-0")},a.createElement(E,{count:e.assignments.length,onToggle:e.onToggle,show:e.show}),e.show&&a.createElement(a.Fragment,null,a.createElement(S,null),a.createElement(T,Object.assign({},e))))}},63398:(e,t,n)=>{n.r(t),n.d(t,{ShowAssignmentsView:()=>C});var a=n(32735),r=n(23481),s=n(20354),l=n(75896),o=n(2510),i=n(18488),c=n(21789),m=n(97958),u=n(9111),p=n(83345),d=n(99742),v=n(86099),h=n(83351),g=n(5655),y=n(95890),f=n(40254),b=n(88630),E="assign.showAssignmentsView",S=r.T.encloseNamespace(E),x=400;function T(e){return a.createElement(m.u,{className:"py-4"},a.createElement(m.u.Image,{src:d.W.EmptyStates.Share.MY_SHARES}),a.createElement(m.u.Heading,null,a.createElement(p.x,{phrase:"emptyTitle",namespace:E})),a.createElement(m.u.Cta,{text:S("emptyCta"),appLink:e.appLink}))}function C(e){var t,n,r=(0,y._)({objectId:e.objectId,entityType:e.entityType}),m=s.a.useBasicFetch(i.o.getSharesByObjectId(e.objectId)),p=(null===(t=m.data)||void 0===t?void 0:t.filter((function(e){return[o.y.Classroom,o.y.Open].includes(e.type)})))||[],d=l.m.uniq(p.map(c.x.getClassroomIdFromShare).filter((function(e){return!!e}))),E=s.a.useBasicFetch(m.hasCompleted&&b.F.getClassroomsByIds(d,null===(n=r.currentUser.data)||void 0===n?void 0:n.customerId)),C=r.loaded&&!!m.data&&!!E.data;return a.createElement(u.G,{size:"lg",title:S("title"),showLoadingSpinner:!C,closePopup:e.closePopup},!p.length&&a.createElement(T,{appLink:f.W.flowSelector({entityType:e.entityType,objectId:e.objectId})}),!!p.length&&a.createElement(a.Fragment,null,a.createElement(g.__,null),a.createElement(g.Qv,{assignments:p,classrooms:E.data,getItemAppLink:function(e){var t=(0,v.pY)(e);if(t)return t},scrollHeightMax:x})),a.createElement(h.P,{hideNextButton:!0,hideCreateClassroomButton:!0,onClickBack:e.closePopup,backButtonText:S("close")}))}},82602:(e,t,n)=>{n.d(t,{WU:()=>c});var a=["second","minute","hour","day","week","month","year"],r=["秒","分钟","小时","天","周","个月","年"],s={},l=function(e,t){s[e]=t},o=[60,60,24,7,365/7/12,12];function i(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 c=function(e,t,n){var a=function(e,t){return(+(t?i(t):new Date)-+i(e))/1e3}(e,n&&n.relativeDate);return function(e,t){for(var n=e<0?1:0,a=e=Math.abs(e),r=0;e>=o[r]&&r<o.length;r++)e/=o[r];return(e=Math.floor(e))>(0==(r*=2)?9:1)&&(r+=1),t(e,r,a)[n].replace("%s",e.toString())}(a,function(e){return s[e]||s.en_US}(t))};l("en_US",(function(e,t){if(0===t)return["just now","right now"];var n=a[Math.floor(t/2)];return e>1&&(n+="s"),[e+" "+n+" ago","in "+e+" "+n]})),l("zh_CN",(function(e,t){if(0===t)return["刚刚","片刻后"];var n=r[~~(t/2)];return[e+" "+n+"前",e+" "+n+"后"]}))}}]);
|
|
2
|
+
//# sourceMappingURL=4185-1f65c7adc9-lite.chunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scripts/4185-1f65c7adc9-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/apps/share-v2/components/share-avatar/ShareAvatar.tsx","file:///app/packages/libs/shared/src/enums/IntegrationId.ts","file:///app/packages/libs/shared/src/utils/IntegrationHelper.ts","file:///app/packages/libs/shared/src/apps/share-v2/components/share-view-count/ShareViewCount.tsx","file:///app/packages/projects/lite/src/apps/assign/components/previous-assignments/previous-assignments.scss","file:///app/packages/projects/lite/src/apps/assign/components/previous-assignments/PreviousAssignments.tsx","file:///app/packages/projects/lite/src/apps/assign/views/show-assignments-view/ShowAssignmentsView.tsx","file:///app/node_modules/timeago.js/esm/lang/en_US.js","file:///app/node_modules/timeago.js/esm/lang/zh_CN.js","file:///app/node_modules/timeago.js/esm/register.js","file:///app/node_modules/timeago.js/esm/utils/date.js","file:///app/node_modules/timeago.js/esm/format.js","file:///app/node_modules/timeago.js/esm/index.js"],"sourcesContent":["import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { IconCircle } from 'libs/shared/components/icon-circle/IconCircle';\nimport { SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { SharePrivacy } from '../../enums/SharePrivacy';\nimport { ShareType } from '../../enums/ShareType';\n\nconst namespace = 'sharev2.shareAvatar';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst icons = {\n [ShareType.Open]: cvSvgLibrary.Classrooms,\n [ShareType.Link]: cvSvgLibrary.Link,\n [ShareType.Classroom]: cvSvgLibrary.Classrooms,\n [ShareType.Live]: cvSvgLibrary.Play\n};\n\nconst iconColours = {\n [ShareType.Open]: 'blue',\n [ShareType.Link]: 'black',\n [ShareType.Classroom]: 'teal',\n [ShareType.Live]: 'purple'\n};\n\nconst shareTypeTitlePhraseMap = {\n [ShareType.Open]: 'openShareType',\n [ShareType.Link]: 'linkShareType',\n [ShareType.Classroom]: 'classroomShareType',\n [ShareType.Live]: 'liveShareType'\n};\n\nfunction getTitle({ type, classroomName, additionalTitleText }: ShareAvatarProps) {\n if (type === ShareType.Classroom && classroomName)\n return classroomName;\n\n let title = getPhrase(shareTypeTitlePhraseMap[type]);\n\n if (additionalTitleText)\n title += ' ' + additionalTitleText;\n\n return title;\n}\n\nfunction getClassroomSubtitle(classroomGroupCount: number, studentCount: number): string {\n if (classroomGroupCount && studentCount)\n return `${getPhrase('classroomGroupCount', { smartCount: classroomGroupCount })}, ${getPhrase('studentSubTitle', { smartCount: studentCount })}`;\n\n if (classroomGroupCount)\n return getPhrase('groupSubTitle', { smartCount: classroomGroupCount });\n\n if (studentCount)\n return getPhrase('studentSubTitle', { smartCount: studentCount });\n\n return getPhrase('allStudentsSubTitle');\n}\n\nfunction getLinkSubtitle(privacy: SharePrivacy) {\n if ([ SharePrivacy.JustMySchool, SharePrivacy.Protected ].includes(privacy))\n return getPhrase('respectRatingsSubTitle');\n\n if (privacy === SharePrivacy.JustMySchoolOverrideRestriction)\n return getPhrase('anyoneInSchoolSubTitle');\n\n if (privacy === SharePrivacy.ProtectedOverrideRestriction)\n return getPhrase('anyoneSignedInSubTitle');\n\n if (privacy === SharePrivacy.Public)\n return getPhrase('anyoneWithLinkSubTitle');\n\n if (privacy === SharePrivacy.PinCode)\n return getPhrase('anyoneWithPinSubTitle');\n}\n\nfunction getSubtitle({ type, privacy, studentCount = 0, classroomGroupCount = 0 }: ShareAvatarProps) {\n switch (type) {\n case ShareType.Classroom:\n return getClassroomSubtitle(classroomGroupCount, studentCount);\n\n case ShareType.Open:\n return getPhrase('openShareTypeSubTitle');\n\n case ShareType.Link:\n return getLinkSubtitle(privacy);\n \n case ShareType.Live:\n return getPhrase('liveShareTypeSubTitle');\n\n default:\n return getPhrase('publicShareTypeSubTitle');\n }\n}\n\ninterface ShareAvatarProps {\n type: ShareType;\n privacy: SharePrivacy;\n studentCount?: number;\n classroomGroupCount?: number;\n classroomName?: string;\n hideSubtitle?: boolean;\n subtitleText?: string;\n svgSize?: SvgContainerSize;\n additionalTitleText?: string;\n}\n\nexport function ShareAvatar(props: ShareAvatarProps): JSX.Element {\n return (\n <div className='d-flex align-items-center gap-2'>\n <div>\n <IconCircle\n svgName={icons[props.type]}\n variant={iconColours[props.type]}\n textVariant='white'\n svgWrapperClassName='p-1'\n svgSize={props.svgSize ?? SvgContainerSize.Standard}\n />\n </div>\n <div className='d-flex flex-column'>\n <p className='m-0'>{getTitle(props)}</p>\n {!props.hideSubtitle && <span className='text-secondary'>{props.subtitleText ?? getSubtitle(props)}</span>}\n </div>\n </div>\n );\n}","export enum IntegrationId {\n GoogleClassroom = 'google-classroom',\n MicrosoftTeams = 'microsoft-teams',\n Vivi = 'vivi',\n AppleTv = 'apply-tv'\n}","import { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { IntegrationId } from 'libs/shared/enums/IntegrationId';\nimport { SettingName } from 'libs/shared/enums/SettingName';\nimport { Integration } from 'libs/shared/interfaces';\n\nconst namespace = 'shared.shared-utils';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nexport const IntegrationHelper = {\n getShareIntegrations(googleClassroomSetting: boolean, msftTeamsSetting: boolean): Integration[] {\n return [\n {\n id: IntegrationId.GoogleClassroom,\n name: getPhrase('googleClassroom'),\n enabled: googleClassroomSetting,\n settingName: SettingName.ShareToGoogleClassroom\n },\n {\n id: IntegrationId.MicrosoftTeams,\n name: getPhrase('msftTeams'),\n enabled: msftTeamsSetting,\n settingName: SettingName.ShareToMicrosoftTeams\n }\n ];\n }\n};\n","import React from 'react';\n\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport { ShareType } from '../../enums/ShareType';\nimport { Share } from '../../interfaces/Share';\n\n\ninterface ShareViewCountProps {\n share: Share;\n}\n\nexport function ShareViewCount(props: ShareViewCountProps): JSX.Element {\n function getViewCount(): string {\n const shareAccessCount = props.share.accessCount || 0;\n if (props.share.type === ShareType.Open)\n return `${shareAccessCount}`;\n\n if (props.share.type === ShareType.Classroom) {\n const totalRecipients = props.share.recipients.length;\n return `${shareAccessCount}/${totalRecipients}`;\n }\n\n return '-';\n }\n \n return (\n <span className='d-inline-flex flex-row gap-2 align-items-center'>\n <SvgContainer svgName={cvSvgLibrary.User} />\n <span>{getViewCount()}</span>\n </span>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"shareListItem\":\"vLROV\",\"visibleOnHover\":\"o2KJH\"};","import React from 'react';\nimport { Col, Row } from 'react-bootstrap';\nimport Scrollbars from 'react-custom-scrollbars-2';\nimport { format as formatDate } from 'timeago.js';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { classNames } from 'libs/common/react/utils/ClassNameHelper';\n\nimport { AnalyticsOptions, HashObject } from 'libs/analytics/interfaces';\n\nimport { ShareAvatar } from 'libs/shared/apps/share-v2/components/share-avatar/ShareAvatar';\nimport { ShareViewCount } from 'libs/shared/apps/share-v2/components/share-view-count/ShareViewCount';\nimport { Share } from 'libs/shared/apps/share-v2/interfaces/Share';\nimport { ShareHelper } from 'libs/shared/apps/share-v2/utils/ShareHelper';\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { IconButton } from 'libs/shared/components/icon-button/IconButton';\nimport { SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\nimport { LanguageNamespaceContext, Text } from 'libs/shared/components/text/Text';\nimport { Classroom } from 'libs/shared/interfaces';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport styles from './previous-assignments.scss';\n\nconst namespace = 'assign.previousAssignments';\n\ninterface PreviousAssignmentsHeaderProps {\n count: number;\n show: boolean;\n onToggle: () => void;\n}\n\nfunction PreviousAssignmentsHeader(props: PreviousAssignmentsHeaderProps): JSX.Element {\n return (\n <div className={classNames('d-flex align-items-center justify-content-between', props.show && 'mb-3')}>\n <h3 className='h6 m-0 p-0'><Text namespace={namespace} phrase='heading' options={{ count: props.count }} /></h3>\n <IconButton\n svgName={props.show ? cvSvgLibrary.ChevronUp : cvSvgLibrary.ChevronDown}\n onClick={props.onToggle}\n />\n </div>\n );\n}\n\nexport function PreviousAssignmentsListHeader(): JSX.Element {\n const columnClassNames = 'd-flex align-items-end justify-content-start fw-medium';\n \n return (\n <LanguageNamespaceContext.Provider value={namespace}>\n <Row className='gx-2 px-3 mb-2'>\n <Col xs={4} className={columnClassNames}>\n <Text phrase='assignedTo' />\n </Col>\n <Col xs={2} className={columnClassNames}>\n <Text phrase='views' />\n </Col>\n <Col xs={2} className={columnClassNames}>\n <Text phrase='viewedBy' />\n </Col>\n <Col xs={4} className={columnClassNames}>\n <Text phrase='dateCreated' />\n </Col>\n </Row>\n </LanguageNamespaceContext.Provider>\n );\n}\n\ntype ItemAnalytics = {\n data: HashObject;\n options: AnalyticsOptions;\n}\ninterface PreviousAssignmentListItemProps {\n share: Share;\n classrooms: Classroom[];\n getItemAppLink: (share: Share) => Core.AppLink;\n\n getItemAnalytics?: (share: Share) => ItemAnalytics;\n className?: string;\n}\n\nfunction PreviousAssignmentListItem(props: PreviousAssignmentListItemProps): JSX.Element {\n const shareClassroom = ShareHelper.getClassroomForShare(props.share, props.classrooms);\n\n const analytics = props.getItemAnalytics?.(props.share);\n\n return (\n <AppLink\n key={props.share.shareId}\n appLink={props.getItemAppLink(props.share)}\n analyticsData={analytics?.data}\n analyticsOptions={analytics?.options}\n className={classNames('d-block p-3 hover-bg-light-blue border border-top-0 no-hover-text-underline', styles.shareListItem, props.className)}\n >\n <Row className='gx-2'>\n <Col xs={4} className='d-flex align-items-center'>\n <ShareAvatar\n type={props.share.type}\n privacy={props.share.privacy}\n classroomName={shareClassroom?.name}\n svgSize={SvgContainerSize.Small}\n hideSubtitle\n />\n </Col>\n <Col xs={2} className='d-flex align-items-center justify-content-start'>\n <Text namespace={namespace} phrase='viewCount' options={{ smartCount: props.share.viewCount || 0 }} />\n </Col>\n <Col xs={2} className='d-flex align-items-center justify-content-start'>\n <ShareViewCount share={props.share} />\n </Col>\n <Col xs={4} lg={3} className='d-flex align-items-center justify-content-start'>\n <span>{formatDate(props.share.dateCreated)}</span>\n </Col>\n <Col lg={1} className='align-items-center justify-content-end d-none d-lg-flex'>\n <span className={classNames('cursor-pointer text-info hover-text-underline', styles.visibleOnHover)}>\n <Text namespace={namespace} phrase='view' />\n </span>\n </Col>\n </Row>\n </AppLink>\n );\n}\n\ninterface PreviousAssignmentsListProps {\n assignments: Share[];\n classrooms: Classroom[];\n getItemAppLink: (share: Share) => Core.AppLink;\n getItemAnalytics?: (share: Share, yIndex: number) => ItemAnalytics;\n scrollHeightMax?: number;\n}\n\nexport function PreviousAssignmentsList(props: PreviousAssignmentsListProps): JSX.Element {\n return (\n <div className={classNames(\n 'd-flex flex-column border-top rounded-top overflow-hidden'\n )}>\n <Scrollbars\n autoHeight\n autoHeightMin={0}\n autoHeightMax={props.scrollHeightMax ?? 215}\n autoHide\n >\n {props.assignments.reverse().map((share, idx) => (\n <PreviousAssignmentListItem\n share={share}\n classrooms={props.classrooms}\n getItemAppLink={props.getItemAppLink}\n getItemAnalytics={share => props.getItemAnalytics?.(share, idx)}\n className={classNames(idx % 2 === 0 && 'bg-gray-100')}\n key={share.shareId}\n />\n ))}\n </Scrollbars>\n </div>\n );\n}\n\ninterface PreviousAssignmentsProps {\n show: boolean;\n assignments: Share[];\n classrooms: Classroom[];\n onToggle: () => void;\n getItemAppLink: (share: Share) => Core.AppLink;\n getItemAnalytics?: (share: Share, yIndex: number) => ItemAnalytics;\n}\n\nexport function PreviousAssignments(props: PreviousAssignmentsProps): JSX.Element {\n if (!props.assignments.length)\n return <></>;\n \n const noBottomPadding = props.show && props.assignments.length > 3;\n \n return (\n <div className={classNames('bg-white rounded-3 p-3', noBottomPadding && 'pb-0')}>\n <PreviousAssignmentsHeader count={props.assignments.length} onToggle={props.onToggle} show={props.show} />\n {props.show && (\n <>\n <PreviousAssignmentsListHeader />\n <PreviousAssignmentsList {...props} />\n </>\n )}\n </div>\n );\n}","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/react/index';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\n\nimport { ShareType } from 'libs/shared/apps/share-v2/enums/ShareType';\nimport { ShareRequests } from 'libs/shared/apps/share-v2/flight-requests/ShareRequests';\nimport { Share } from 'libs/shared/apps/share-v2/interfaces/Share';\nimport { ShareHelper } from 'libs/shared/apps/share-v2/utils/ShareHelper';\nimport { SharableEntityType } from 'libs/shared/apps/share-v2/utils/ShareViewHelper';\nimport { EmptyState } from 'libs/shared/components/empty-states/EmptyState';\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { Classroom, PopupViewProps } from 'libs/shared/interfaces';\n\nimport { ImageUrls } from 'shared/constants/ImageUrls';\nimport { getInsightsOverviewAppLink } from 'shared/utils/ObjectAppLinkHelper';\n\nimport { FlowControls } from 'apps/assign/components/flow-controls/FlowControls';\nimport { PreviousAssignmentsList, PreviousAssignmentsListHeader } from 'apps/assign/components/previous-assignments/PreviousAssignments';\nimport { useAssignSharedData } from 'apps/assign/hooks/useAssignSharedData';\nimport { AssignAppLinkHelper } from 'apps/assign/utils/AssignAppLinkHelper';\nimport { ClassroomRequests } from 'apps/classrooms/flight-requests/ClassroomRequests';\n\nconst namespace = 'assign.showAssignmentsView';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst MAX_SCROLL_HEIGHT = 400;\n\ninterface ShowAssignEmptyStateProps {\n appLink: Core.AppLink;\n}\n\nfunction ShowAssignmentsEmptyState(props: ShowAssignEmptyStateProps): JSX.Element {\n return (\n <EmptyState className='py-4'>\n <EmptyState.Image\n src={ImageUrls.EmptyStates.Share.MY_SHARES}\n />\n <EmptyState.Heading><Text phrase='emptyTitle' namespace={namespace} /></EmptyState.Heading>\n <EmptyState.Cta\n text={getPhrase('emptyCta')}\n appLink={props.appLink}\n />\n </EmptyState>\n );\n}\n\ninterface ShowAssignmentsViewProps extends PopupViewProps {\n objectId: string;\n entityType: SharableEntityType;\n}\n\nexport function ShowAssignmentsView(props: ShowAssignmentsViewProps): JSX.Element {\n const sharedData = useAssignSharedData({\n objectId: props.objectId,\n entityType: props.entityType\n });\n\n const previousShares = Flight.useBasicFetch<Share[]>(ShareRequests.getSharesByObjectId(props.objectId));\n // @todo Replace with backend filters\n const assignments = previousShares.data?.filter(\n share => [ ShareType.Classroom, ShareType.Open ].includes(share.type)\n ) || [];\n const previousAssignmentClassroomIds = ArrayHelper.uniq(\n assignments.map(ShareHelper.getClassroomIdFromShare).filter(x => !!x)\n );\n const classrooms = Flight.useBasicFetch<Classroom[]>(\n previousShares.hasCompleted &&\n ClassroomRequests.getClassroomsByIds(previousAssignmentClassroomIds, sharedData.currentUser.data?.customerId)\n );\n\n function getItemAppLink(share: Share) {\n const appLink = getInsightsOverviewAppLink(share);\n if (!appLink)\n return;\n\n return appLink;\n }\n\n const loaded = sharedData.loaded && !!previousShares.data && !!classrooms.data;\n \n return (\n <Popup\n size='lg'\n title={getPhrase('title')}\n showLoadingSpinner={!loaded}\n closePopup={props.closePopup}\n >\n {!assignments.length &&\n <ShowAssignmentsEmptyState\n appLink={AssignAppLinkHelper.flowSelector({\n entityType: props.entityType,\n objectId: props.objectId\n })}\n />\n }\n \n {!!assignments.length &&\n <>\n <PreviousAssignmentsListHeader />\n <PreviousAssignmentsList\n assignments={assignments}\n classrooms={classrooms.data}\n getItemAppLink={getItemAppLink}\n scrollHeightMax={MAX_SCROLL_HEIGHT}\n />\n </>\n }\n <FlowControls\n hideNextButton\n hideCreateClassroomButton\n onClickBack={props.closePopup}\n backButtonText={getPhrase('close')}\n />\n </Popup>\n );\n}","var EN_US = ['second', 'minute', 'hour', 'day', 'week', 'month', 'year'];\nexport default function (diff, idx) {\n if (idx === 0)\n return ['just now', 'right now'];\n var unit = EN_US[Math.floor(idx / 2)];\n if (diff > 1)\n unit += 's';\n return [diff + \" \" + unit + \" ago\", \"in \" + diff + \" \" + unit];\n}\n//# sourceMappingURL=en_US.js.map","var ZH_CN = ['秒', '分钟', '小时', '天', '周', '个月', '年'];\nexport default function (diff, idx) {\n if (idx === 0)\n return ['刚刚', '片刻后'];\n var unit = ZH_CN[~~(idx / 2)];\n return [diff + \" \" + unit + \"\\u524D\", diff + \" \" + unit + \"\\u540E\"];\n}\n//# sourceMappingURL=zh_CN.js.map","/**\n * Created by hustcc on 18/5/20.\n * Contract: i@hust.cc\n */\n/**\n * All supported locales\n */\nvar Locales = {};\n/**\n * register a locale\n * @param locale\n * @param func\n */\nexport var register = function (locale, func) {\n Locales[locale] = func;\n};\n/**\n * get a locale, default is en_US\n * @param locale\n * @returns {*}\n */\nexport var getLocale = function (locale) {\n return Locales[locale] || Locales['en_US'];\n};\n//# sourceMappingURL=register.js.map","/**\n * Created by hustcc on 18/5/20.\n * Contract: i@hust.cc\n */\nvar SEC_ARRAY = [\n 60,\n 60,\n 24,\n 7,\n 365 / 7 / 12,\n 12,\n];\n/**\n * format Date / string / timestamp to timestamp\n * @param input\n * @returns {*}\n */\nexport function toDate(input) {\n if (input instanceof Date)\n return input;\n // @ts-ignore\n if (!isNaN(input) || /^\\d+$/.test(input))\n return new Date(parseInt(input));\n input = (input || '')\n // @ts-ignore\n .trim()\n .replace(/\\.\\d+/, '') // remove milliseconds\n .replace(/-/, '/')\n .replace(/-/, '/')\n .replace(/(\\d)T(\\d)/, '$1 $2')\n .replace(/Z/, ' UTC') // 2017-2-5T3:57:52Z -> 2017-2-5 3:57:52UTC\n .replace(/([+-]\\d\\d):?(\\d\\d)/, ' $1$2'); // -04:00 -> -0400\n return new Date(input);\n}\n/**\n * format the diff second to *** time ago, with setting locale\n * @param diff\n * @param localeFunc\n * @returns\n */\nexport function formatDiff(diff, localeFunc) {\n /**\n * if locale is not exist, use defaultLocale.\n * if defaultLocale is not exist, use build-in `en`.\n * be sure of no error when locale is not exist.\n *\n * If `time in`, then 1\n * If `time ago`, then 0\n */\n var agoIn = diff < 0 ? 1 : 0;\n /**\n * Get absolute value of number (|diff| is non-negative) value of x\n * |diff| = diff if diff is positive\n * |diff| = -diff if diff is negative\n * |0| = 0\n */\n diff = Math.abs(diff);\n /**\n * Time in seconds\n */\n var totalSec = diff;\n /**\n * Unit of time\n */\n var idx = 0;\n for (; diff >= SEC_ARRAY[idx] && idx < SEC_ARRAY.length; idx++) {\n diff /= SEC_ARRAY[idx];\n }\n /**\n * Math.floor() is alternative of ~~\n *\n * The differences and bugs:\n * Math.floor(3.7) -> 4 but ~~3.7 -> 3\n * Math.floor(1559125440000.6) -> 1559125440000 but ~~1559125440000.6 -> 52311552\n *\n * More information about the performance of algebraic:\n * https://www.youtube.com/watch?v=65-RbBwZQdU\n */\n diff = Math.floor(diff);\n idx *= 2;\n if (diff > (idx === 0 ? 9 : 1))\n idx += 1;\n return localeFunc(diff, idx, totalSec)[agoIn].replace('%s', diff.toString());\n}\n/**\n * calculate the diff second between date to be formatted an now date.\n * @param date\n * @param relativeDate\n * @returns {number}\n */\nexport function diffSec(date, relativeDate) {\n var relDate = relativeDate ? toDate(relativeDate) : new Date();\n return (+relDate - +toDate(date)) / 1000;\n}\n/**\n * nextInterval: calculate the next interval time.\n * - diff: the diff sec between now and date to be formatted.\n *\n * What's the meaning?\n * diff = 61 then return 59\n * diff = 3601 (an hour + 1 second), then return 3599\n * make the interval with high performance.\n **/\nexport function nextInterval(diff) {\n var rst = 1, i = 0, d = Math.abs(diff);\n for (; diff >= SEC_ARRAY[i] && i < SEC_ARRAY.length; i++) {\n diff /= SEC_ARRAY[i];\n rst *= SEC_ARRAY[i];\n }\n d = d % rst;\n d = d ? rst - d : rst;\n return Math.ceil(d);\n}\n//# sourceMappingURL=date.js.map","import { formatDiff, diffSec } from './utils/date';\nimport { getLocale } from './register';\n/**\n * format a TDate into string\n * @param date\n * @param locale\n * @param opts\n */\nexport var format = function (date, locale, opts) {\n // diff seconds\n var sec = diffSec(date, opts && opts.relativeDate);\n // format it with locale\n return formatDiff(sec, getLocale(locale));\n};\n//# sourceMappingURL=format.js.map","/**\n * Created by hustcc on 18/5/20.\n * Contract: i@hust.cc\n */\nimport en_US from './lang/en_US';\nimport zh_CN from './lang/zh_CN';\nimport { register } from './register';\nregister('en_US', en_US);\nregister('zh_CN', zh_CN);\nexport { format } from './format';\nexport { render, cancel } from './realtime';\nexport { register };\n//# sourceMappingURL=index.js.map"],"names":["getPhrase","icons","iconColours","shareTypeTitlePhraseMap","ShareAvatar","props","className","svgName","type","variant","textVariant","svgWrapperClassName","svgSize","S","classroomName","additionalTitleText","title","getTitle","hideSubtitle","subtitleText","privacy","studentCount","classroomGroupCount","smartCount","getClassroomSubtitle","includes","getLinkSubtitle","getSubtitle","IntegrationId","IntegrationHelper","getShareIntegrations","googleClassroomSetting","msftTeamsSetting","id","name","enabled","settingName","ShareViewCount","SvgContainer","shareAccessCount","share","accessCount","ShareType","totalRecipients","recipients","length","getViewCount","namespace","PreviousAssignmentsHeader","show","Text","phrase","options","count","IconButton","onClick","onToggle","PreviousAssignmentsListHeader","columnClassNames","value","Row","Col","xs","PreviousAssignmentListItem","shareClassroom","ShareHelper","classrooms","analytics","getItemAnalytics","AppLink","key","shareId","appLink","getItemAppLink","analyticsData","data","analyticsOptions","viewCount","lg","dateCreated","PreviousAssignmentsList","autoHeight","autoHeightMin","autoHeightMax","scrollHeightMax","autoHide","assignments","reverse","map","idx","PreviousAssignments","noBottomPadding","MAX_SCROLL_HEIGHT","ShowAssignmentsEmptyState","src","text","ShowAssignmentsView","sharedData","objectId","entityType","previousShares","filter","previousAssignmentClassroomIds","x","hasCompleted","currentUser","customerId","loaded","size","showLoadingSpinner","closePopup","hideNextButton","hideCreateClassroomButton","onClickBack","backButtonText","EN_US","ZH_CN","Locales","register","locale","func","SEC_ARRAY","toDate","input","Date","isNaN","test","parseInt","trim","replace","format","date","opts","sec","relativeDate","diff","localeFunc","agoIn","totalSec","Math","abs","floor","toString","unit"],"sourceRoot":""}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/*! For license information please see 4203-ee50e89841-lite.chunk.js.LICENSE.txt */
|
|
2
|
+
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[4203],{38307:(e,t,n)=>{n.d(t,{c:()=>y,l:()=>h});var r=n(32735),o=n(232),a=n.n(o),i=n(8604),l=n(83345);const c={heatMap:"epapa",legend:"uhH4p"};function u(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var s="shared.engagementHeatMap",f="#f1f1f1",d=a().scale(["#daf07d","#08bd1a"]),m=[0,.01,.25,.5,.75,1];function p(e,t){return e?d(e/t).hex():f}function v(e,t){for(var n=[],r=0;r<e.length;r++){var o=r>0&&e[r-1],a=e[r],i=r<e.length-1&&e[r+1];a===o&&a===i||n.push("".concat(p(a,t)," ").concat(100/e.length*r,"%"))}return"linear-gradient(to right, ".concat(n.join(","),")")}function h(){var e=Math.max.apply(Math,m),t=100/m.length;return r.createElement("div",{className:"d-flex justify-content-between w-100"},r.createElement(l.x,{namespace:s,phrase:"less"}),r.createElement("div",{className:"d-flex mx-1 flex-grow-1 ".concat(c.legend)},m.map((function(n,o){return r.createElement("div",{key:o,style:{width:"".concat(t,"%"),backgroundColor:p(n,e)}})}))),r.createElement(l.x,{namespace:s,phrase:"more"}))}function y(e){var t,n,o,a=(0,i.O)(e.engagement),l=null!==(t=e.max)&&void 0!==t?t:Math.max.apply(Math,function(e){if(Array.isArray(e))return u(e)}(o=a)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(o)||function(e,t){if(e){if("string"==typeof e)return u(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?u(e,t):void 0}}(o)||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 r.createElement("div",{className:"border rounded ".concat(c.heatMap," ").concat(null!==(n=e.className)&&void 0!==n?n:""),style:{background:v(a,l)}})}},84621:(e,t,n)=>{n.d(t,{L:()=>i});var r=n(32735),o=n(83914);const a={icon:"sAmpy",count:"faDs4"};function i(e){return r.createElement("section",{className:"d-flex flex-column border rounded p-3 h-100"},r.createElement("div",{className:"d-flex ".concat(e.subtitle?"align-items-top":"align-items-center"," mb-2")},r.createElement("div",{className:"".concat(a.icon," ").concat(e.svgClassName," rounded-circle d-flex justify-content-center align-items-center")},r.createElement(o.x,{svgName:e.svgName,size:o.S.Small})),r.createElement("div",{className:"d-flex flex-column ms-2"},r.createElement("h2",{className:"h6 mb-0"},e.title)),"number"==typeof e.count&&r.createElement("div",{className:"".concat(a.count," d-flex justify-content-center align-items-center bg-light rounded-circle ms-auto")},e.count)),e.children)}},70072:(e,t,n)=>{n.d(t,{d:()=>r});var r={fontSize:"12px",fontFamily:'"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"',fontWeight:"400",color:"#313543"}},8604:(e,t,n)=>{function r(e){var t=e.videoDuration||0;return new Array(Math.ceil(t)).fill(null).map((function(t,n){return(null==e?void 0:e.heatMap[n])||0}))}function o(e){return null==e?void 0:e.reduce((function(t,n){return t+n.engagementRate/e.length}),0)}n.d(t,{O:()=>r,Q:()=>o})},6748:(e,t,n)=>{n.d(t,{i:()=>S});var r=n(32735),o=n(42648),a=n(35509),i=n(91967),l=n(15611),c=n(17808),u=n(1287),s=n(83914),f=n(90281),d={opacity:"0.8",cursor:"grabbing"},m=n(35223);function p(e){return function(e){if(Array.isArray(e))return h(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||v(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function v(e,t){if(e){if("string"==typeof e)return h(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?h(e,t):void 0}}function h(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function y(e){var t,n,r,o;return{canScrollLeft:(null===(t=e.current)||void 0===t?void 0:t.scrollLeft)>0,canScrollRight:(null===(n=e.current)||void 0===n?void 0:n.scrollLeft)+1<(null===(r=e.current)||void 0===r?void 0:r.scrollWidth)-(null===(o=e.current)||void 0===o?void 0:o.clientWidth)}}const g={sortIndicator:"gFhu0",scrollContainer:"sWUp9",scrollbarTrack:"Vn2qM"};function b(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var w=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n};function E(e){var t,n;return e.column.canSort?r.createElement("span",{className:"".concat(g.sortIndicator,"\n ").concat(e.column.isSorted?"":"text-secondary","\n ").concat(null!==(n=null===(t=e.theme)||void 0===t?void 0:t.sortIndicator)&&void 0!==n?n:"")},r.createElement(s.x,{svgName:e.column.isSortedDesc||!e.column.isSorted?m.vn.ArrowRight:m.vn.ArrowLeft,size:s.S.Small})):r.createElement(r.Fragment,null)}function O(e){var t,n,o,s,f,m,v,h,y={columns:e.columns,data:e.data,disableSortBy:!e.enableSort,manualSortBy:e.manualSort,autoResetHiddenColumns:e.autoResetHiddenColumns,autoResetSortBy:e.autoResetSortBy,initialState:{sortBy:e.initialSortBy||[]}};e.initialSelectedRowIds&&(y.initialState={selectedRowIds:(v=e.initialSelectedRowIds,h={},v.forEach((function(e){return h[e]=!0})),h)}),e.getRowId&&(y.getRowId=e.getRowId);var g,w=a.useTable.apply(void 0,[y].concat((g=function(e){var t=[a.useSortBy,a.useRowSelect,"flex"===e.layout?a.useFlexLayout:a.useBlockLayout];return e.allowFiltering&&(t=[].concat(p(t),[a.useFilters])),e.allowGlobalFiltering&&(t=[].concat(p(t),[a.useGlobalFilter])),t}(Object.assign({},e)),function(e){if(Array.isArray(e))return b(e)}(g)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(g)||function(e,t){if(e){if("string"==typeof e)return b(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?b(e,t):void 0}}(g)||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.")}()))),O=w.getTableProps,S=w.getTableBodyProps,j=w.headerGroups,C=w.rows,x=w.prepareRow,k=w.toggleAllRowsSelected,N=w.setGlobalFilter,P=w.setHiddenColumns,T=w.state.sortBy;function I(){return!C.length&&e.emptyState?e.emptyState:C.map((function(t){x(t);var n=function(t){var n,r,o,a,l,c=i.q.isFunction(null===(n=e.theme)||void 0===n?void 0:n.row)?e.theme.row(t):null!==(o=null===(r=e.theme)||void 0===r?void 0:r.row)&&void 0!==o?o:"";return t.isSelected&&(null===(a=e.theme)||void 0===a?void 0:a.selectedRow)&&(c+=" ".concat(null===(l=e.theme)||void 0===l?void 0:l.selectedRow)),e.onSelectRow&&(c+=" cursor-pointer"),e.enableSortableRows&&(c+=" cursor-grab"),c}(t),o=!!e.getRowAppLink&&e.getRowAppLink(t);function a(){e.onSelectRow&&(e.allowSelectMultipleRows||k(!1),e.onSelectRow(t),t.toggleRowSelected(!0))}function c(e,i){var c=function(e,t){return"dragAttributes"in e&&"dragListeners"in e?Object.assign(Object.assign(Object.assign({},e.dragAttributes),e.dragListeners),{"aria-roledescription":"Sortable row",ref:t}):{}}(e,i);return o?r.createElement("div",{role:"row",key:t.id},r.createElement(l.F,Object.assign({},e,c,{className:n,appLink:o}),L(t))):r.createElement("div",Object.assign({},e,c,{key:t.id,role:"row",className:n,onClick:a}),L(t))}var s=t.getRowProps();return e.enableSortableRows?r.createElement(u.W,{id:t.original.id,key:t.id,childProps:s,childComponent:r.forwardRef((function(e,t){return c(e,t)}))}):c(s)}))}function L(t){return t.cells.map((function(n){var o=function(t,n){var r,o,a="";return"function"==typeof(null===(r=e.theme)||void 0===r?void 0:r.cell)&&(a=e.theme.cell(t,n)),"string"==typeof(null===(o=e.theme)||void 0===o?void 0:o.cell)&&(a=e.theme.cell),e.onSelectCell&&(a+=" cursor-pointer"),a}(t,n);return r.createElement("div",Object.assign({key:n.column.id},n.getCellProps(),{className:o,onClick:function(){e.onSelectCell&&e.onSelectCell(n)}}),n.render("Cell"))}))}return r.useEffect((function(){e.onSort&&e.onSort(T)}),[T]),r.useEffect((function(){e.globalFilter&&N(e.globalFilter)}),[e.globalFilter]),r.useEffect((function(){e.hiddenColumns&&P(e.hiddenColumns)}),[e.hiddenColumns&&e.hiddenColumns.length]),r.createElement("div",Object.assign({},O(),{className:null!==(n=null===(t=e.theme)||void 0===t?void 0:t.table)&&void 0!==n?n:""}),r.createElement("div",{className:null!==(s=null===(o=e.theme)||void 0===o?void 0:o.header)&&void 0!==s?s:""},j.map((function(t){var n,o;return r.createElement("div",Object.assign({},t.getHeaderGroupProps(),{className:null!==(o=null===(n=e.theme)||void 0===n?void 0:n.headerRow)&&void 0!==o?o:""}),t.headers.map((function(t){var n,o;return r.createElement("div",Object.assign({},t.getHeaderProps(t.getSortByToggleProps()),{className:null!==(o=null===(n=e.theme)||void 0===n?void 0:n.headerCell)&&void 0!==o?o:""}),t.render("Header",{renderSortIndicator:function(){return r.createElement(E,{column:t,theme:e.theme})}}),!t.hideSortIndicator&&r.createElement(E,{column:t,theme:e.theme}))})))}))),r.createElement("div",Object.assign({},S(),{className:null!==(m=null===(f=e.theme)||void 0===f?void 0:f.body)&&void 0!==m?m:""}),e.enableSortableRows?r.createElement(c.Q,{ids:C.map((function(e){return e.original.id})),getDragOverlay:function(t){var n,o,a=C.findIndex((function(e){return e.original.id===t})),i=C[a];return r.createElement("div",Object.assign({},e,{className:(n=e.theme,o="g-0 ",n&&(o+=n.row),o),style:d}),L(i))},onSortEnd:e.onSortingRowsEnd},I()):I()))}function S(e){var t=e.enableSlider,n=e.scrollIncrement,a=e.scrollable,l=w(e,["enableSlider","scrollIncrement","scrollable"]),c=function(){var e,t,n=r.useRef(null),o=(e=r.useState(y(n)),t=2,function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,a,i,l=[],c=!0,u=!1;try{if(a=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=a.call(n)).done)&&(l.push(r.value),l.length!==t);c=!0);}catch(e){u=!0,o=e}finally{try{if(!c&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(u)throw o}}return l}}(e,t)||v(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.")}()),a=o[0],l=o[1],c=i.q.throttle((function(){l(y(n))}),200),u=r.useCallback((function(e){var t;n.current&&(null===(t=n.current)||void 0===t||t.removeEventListener("scroll",c)),e&&(l(y(n)),e.addEventListener("scroll",c)),n.current=e}),[]);return r.useEffect((function(){(null==n?void 0:n.current)&&l(y(n))}),[n]),{ref:u,scrollState:a,scroll:function(e){var t;null===(t=n.current)||void 0===t||t.scrollBy({left:e,top:0,behavior:"smooth"})}}}(),u=c.ref,s=c.scrollState,d=c.scroll;if(a)return r.createElement(o.$B,{renderTrackHorizontal:function(){return r.createElement("div",{className:g.scrollbarTrack})},autoHeightMax:1e4,autoHeight:!0},r.createElement(O,Object.assign({},l)));if(!t)return r.createElement(O,Object.assign({},l));function m(e){d(n*("right"===e?1:-1))}return r.createElement("div",{className:"mx-n4 overflow-x-hidden overflow-y-hidden"},r.createElement("div",{className:"px-4"},r.createElement("div",{className:"position-relative"},r.createElement(f.W,{direction:f.f.Left,onClick:function(){return m("left")},hide:!s.canScrollLeft}),r.createElement("div",{className:"".concat(g.scrollContainer," ").concat(e.scrollContainerClassName),ref:u},r.createElement(O,Object.assign({},l))),r.createElement(f.W,{direction:f.f.Right,onClick:function(){return m("right")},hide:!s.canScrollRight}))))}S.defaultProps={scrollIncrement:250,scrollable:!1,layout:"flex"}},17132:(e,t,n)=>{n.d(t,{w:()=>$e});var r=n(32735),o=n(6748),a=n(23481),i=n(38307),l=n(26136),c=n(97408),u=n(40782),s=n(64818);const f={heatMap:"rwDjh",avatarContainer:"kW4ZM"};function d(e){return function(e){if(Array.isArray(e))return m(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return m(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?m(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function m(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var p=a.T.encloseNamespace("shared.engagementTable"),v={heatMap:[],engagementRate:0,viewCount:0};function h(e){var t;return r.createElement("div",{className:"".concat(null!==(t=e.className)&&void 0!==t?t:"")},e.children)}function y(e){return r.createElement(h,{className:"d-inline-block ".concat(e.column.isSorted?"fw-bold":"")},p(e.phraseKey))}var g={table:"bg-white rounded px-0",header:"border-bottom",headerCell:"m-3",cell:"mx-3 my-2"};function b(e){var t,n,a,m=function(e){return r.useMemo((function(){var t,n,o=(t=e.engagement,n=0,t.forEach((function(e){var t=Math.max.apply(Math,d(e.heatMap));t>n&&(n=t)})),n);return[{Header:function(e){var t=e.column;return r.createElement(y,{column:t,phraseKey:"name"})},width:22,accessor:"user",sortType:function(t,n){return(0,l.B)(t.values.user,e.anonymiseUsers)>(0,l.B)(n.values.user,e.anonymiseUsers)?1:-1},Cell:function(t){var n,o,a,i,u=t.value,d=(o=u,a=e.anonymiseUsers,{name:(i=(0,l.B)(o,a).split(" ").filter((function(e){return!!e})))[0],surname:i.slice(1).join(" ")}),m=d.name,p=d.surname;return r.createElement(h,{className:"d-flex align-items-center h-100"},r.createElement("span",{className:f.avatarContainer},r.createElement(c.q,{imageCdnUrl:e.imageCdnUrl,initials:s.l.getInitials(m,p),imageUrl:!e.anonymiseUsers&&(null===(n=null==u?void 0:u.avatar)||void 0===n?void 0:n.url),showAnonymousUser:!(e.anonymiseUsers||u&&!u.sessionId)})),r.createElement("span",{className:"ms-2 clamp-1"},m," ",p))}},{Header:function(e){var t=e.column;return r.createElement(y,{column:t,phraseKey:"views"})},accessor:"viewCount",width:15,sortType:"basic",sortDescFirst:!0,Cell:function(e){var t=e.value;return r.createElement(h,{className:"d-flex align-items-center h-100"},r.createElement("div",null,t))}},{Header:function(e){var t=e.column;return r.createElement(y,{column:t,phraseKey:"engagement"})},accessor:"engagementRate",width:20,sortType:"basic",sortDescFirst:!0,Cell:function(e){var t=e.value;return r.createElement(h,{className:"w-33"},r.createElement(u.O,{percentage:t,layout:u.I.LabelBefore}))}},{Header:function(e){var t=e.column;return r.createElement(y,{column:t,phraseKey:"heatMap"})},accessor:"heatMap",width:48,disableSortBy:!0,Cell:function(e){var t=e.row.original;return r.createElement(h,{className:"d-flex align-items-center h-100"},r.createElement(i.c,{engagement:t,max:o,className:"".concat(f.heatMap," flex-grow-1")}))}}]}),[e.anonymiseUsers])}({engagement:e.engagement,imageCdnUrl:e.imageCdnUrl,anonymiseUsers:e.anonymiseUsers}),p=(t=e.engagement,n=e.users,a=e.classroomStudents,r.useMemo((function(){if(!(null==t?void 0:t.length))return[];var e=[],r=new Set;if(t.forEach((function(t){var o=null==n?void 0:n.find((function(e){return e.id&&e.id===t.userId?(r.add(e.id),!0):!(!e.sessionId||e.sessionId!==t.sessionId)}));e.push(Object.assign(Object.assign({},t),{user:o}))})),null==a?void 0:a.length){var o=a.filter((function(e){return!r.has(e.id)})).map((function(e){return Object.assign(Object.assign({},v),{user:e})}));e.push.apply(e,d(o))}return e}),[null==n?void 0:n.length]));return p.length?r.createElement(o.i,{columns:m,data:p,theme:Object.assign(Object.assign({},g),{table:e.border?"".concat(g.table," border"):g.table}),enableSort:e.enableSort}):r.createElement(r.Fragment,null)}var w=n(84621),E=n(8604);function O(e){return r.createElement(u.O,{layout:e.layout,className:e.className,percentage:0,customLabel:"--%"})}var S=n(83345),j=n(35223),C="shared.insightAmountWatched",x=a.T.encloseNamespace(C);function k(e){var t=(0,E.Q)(e.engagement),n=Math.round(100*t);return r.createElement(w.L,{title:x("title"),svgName:j.vn.Timer,svgClassName:"bg-light-green text-green"},r.createElement("div",{className:"d-flex flex-column align-items-center my-auto gap-2"},!!e.engagement&&r.createElement(r.Fragment,null,r.createElement(u.O,{percentage:t,layout:u.I.LabelInside}),r.createElement("p",{className:"text-center"},"number"==typeof t?r.createElement(S.x,{namespace:C,phrase:"everyoneWatched",options:{percentage:n}}):r.createElement(S.x,{namespace:C,phrase:"notWatched"}))),!e.engagement&&r.createElement(r.Fragment,null,r.createElement(O,{layout:u.I.LabelInside}))))}var N=n(72306),P=n.n(N),T=n(70312),I=n.n(T),L=n(70072),A=n(75896),M=["#FF9300","#38A2E8","#7A76E8","#B679C7","#F7847B","#D9584F","#FFCD52","#5DC786","#40BCC3","#40C2BB"];function R(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var _=n(97958),B="shared.insightTotalViews",U=a.T.encloseNamespace(B),D={title:{text:null},credits:{enabled:!1},chart:{backgroundColor:"transparent",spacing:[0,0,0,0]},legend:{itemStyle:L.d,itemDistance:8},plotOptions:{pie:{allowPointSelect:!0,cursor:"pointer",dataLabels:{enabled:!1},showInLegend:!0,borderWidth:0,size:"80%"}}};function F(e){var t,n,o,a,i,l,c,u=function(e){var t,n,r=e.findIndex((function(e){return"Staff"===e.name}));if(r>-1){var o=(t=e.splice(r,1),n=1,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,a,i,l=[],c=!0,u=!1;try{if(a=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=a.call(n)).done)&&(l.push(r.value),l.length!==t);c=!0);}catch(e){u=!0,o=e}finally{try{if(!c&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(u)throw o}}return l}}(t,n)||function(e,t){if(e){if("string"==typeof e)return R(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?R(e,t):void 0}}(t,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}())[0];e.push(o)}return e.sort((function(e,t){var n,r;return parseInt(null===(n=e.name.match(/\d+/))||void 0===n?void 0:n[0])-parseInt(null===(r=t.name.match(/\d+/))||void 0===r?void 0:r[0])}))}((o=e.events,a=[],l={},null==(c=o["yearGroupCount"])||c.forEach((function(e){var t,n=e.name||"Unknown";n&&!(null==a?void 0:a.includes(n.toLowerCase()))&&(l[n]=null!==(t=l[n])&&void 0!==t?t:0,l[n]+=e.count)})),A.m.sortBy(Object.keys(l).map((function(e){return{name:i?i(e):e,y:l[e],type:"pie"}})),"name").map((function(e,t){return Object.assign(Object.assign({},e),{color:M[t%M.length]})})))),s=null!==(n=null==(t=u)?void 0:t.reduce((function(e,t){return e+t.y}),0))&&void 0!==n?n:null;return r.createElement(w.L,{title:U("title"),svgClassName:"bg-light-blue text-blue",svgName:j.vn.VisibleOn},(null==u?void 0:u.length)?r.createElement(r.Fragment,null,r.createElement("p",{className:"mb-0"},r.createElement(S.x,{namespace:B,phrase:"totalViews",options:{totalViews:s}})),r.createElement("div",{className:"d-flex justify-content-center h-75"},r.createElement(I(),{highcharts:P(),options:function(e){return Object.assign(Object.assign({},D),{series:[{type:"pie",name:U("title"),data:e}]})}(u),containerProps:{className:"w-100"}}))):r.createElement(_.u,{className:"pt-0 my-auto"},r.createElement(_.u.Image,{src:e.emptyStateImage,className:"w-75 h-auto"}),r.createElement(_.u.Heading,{className:"h4"},r.createElement(S.x,{namespace:B,phrase:"noViews"})),r.createElement(_.u.Info,{className:"w-100"},r.createElement(S.x,{namespace:B,phrase:"notWatched"}))))}var H=n(99742);const V={partialInsights:"nKLWa",videoContainer:"WF2iA"};function W(){return r.createElement("div",null,r.createElement("div",{className:"row g-3 mb-3"},r.createElement("div",{className:"col"},r.createElement("div",{className:"".concat(V.partialInsights," rounded partial-loading-background")})),r.createElement("div",{className:"col"},r.createElement("div",{className:"".concat(V.partialInsights," rounded partial-loading-background")})),r.createElement("div",{className:V.videoContainer},r.createElement("div",{className:"".concat(V.partialInsights," rounded partial-loading-background")}))),r.createElement("div",{className:"row g-3 mb-5"},r.createElement("div",{className:"col-12"},r.createElement("div",{className:"".concat(V.partialInsights," rounded partial-loading-background")}))))}var z=n(87252),G=n(41386),Z=n(76032);function K(e){return K="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},K(e)}function $(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,q(r.key),r)}}function q(e){var t=function(e){if("object"!=K(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=K(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==K(t)?t:t+""}function Q(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(Q=function(){return!!e})()}function Y(){return Y="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,n){var r=function(e,t){for(;!{}.hasOwnProperty.call(e,t)&&null!==(e=X(e)););return e}(e,t);if(r){var o=Object.getOwnPropertyDescriptor(r,t);return o.get?o.get.call(arguments.length<3?e:n):o.value}},Y.apply(null,arguments)}function X(e){return X=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},X(e)}function J(e,t){return J=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},J(e,t)}var ee=function(e){function t(e,n){var r;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),(r=function(e,t,n){return t=X(t),function(e,t){if(t&&("object"==K(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,Q()?Reflect.construct(t,n||[],X(e).constructor):t.apply(e,n))}(this,t,[e,n])).overlayVisible=n.overlayVisible,r.toggle(r.overlayVisible),r}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&J(e,t)}(t,e),n=t,r=[{key:"handleToggle",value:function(){this.toggle(!this.overlayVisible)}},{key:"toggle",value:function(e){e?this.toggleOn():this.toggleOff()}},{key:"toggleOn",value:function(){Z.Z.dom.addClass(this.toggleEl,"on"),this.overlayVisible=!0,this.player().engagementOverlayPlugin().toggleOverlay(this.overlayVisible),this.player().addClass("cv-reports-player-overlay-visible")}},{key:"toggleOff",value:function(){Z.Z.dom.removeClass(this.toggleEl,"on"),this.overlayVisible=!1,this.player().engagementOverlayPlugin().toggleOverlay(this.overlayVisible),this.player().removeClass("cv-reports-player-overlay-visible")}},{key:"handleClick",value:function(e){e.stopImmediatePropagation()}},{key:"createEl",value:function(e,n,r){this.handlerBound||(this.handleToggle=this.handleToggle.bind(this),this.handlerBound=!0),this.toggleEl&&this.toggleEl.removeEventListener("click",this.handleToggle),this.toggleEl=Z.Z.dom.createEl("div",{className:"custom-toggle custom-toggle-info toggle-option float-end",innerHTML:'<span class="handle"></span></div>'}),this.toggleEl.addEventListener("click",this.handleToggle);var o,a,i,l=(o=t,a=this,"function"==typeof(i=Y(X(1&3?o.prototype:o),"createEl",a))?function(e){return i.apply(a,e)}:i)([e,{className:"vjs-menu-item cv-cog-menu-item",innerHTML:'\n <span class="vjs-menu-item-text">Heat Map</span>\n <span class="cv-toggle-container"></span>'},r]);return l.children[1].appendChild(this.toggleEl),l}}],r&&$(n.prototype,r),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,r}(Z.Z.getComponent("MenuItem"));Z.Z.registerComponent("EngagementOverlayMenuItem",ee);var te=n(74161),ne=n(86572);function re(e){var t,n=e.interactive.timepoints.find((function(t){var n=t.visibleAt/1e3;return Math.floor(e.time)===Math.floor(n)||Math.ceil(e.time)===Math.ceil(n)}));if(!(null===(t=null==n?void 0:n.interactions)||void 0===t?void 0:t.length))return r.createElement(r.Fragment,null);var o=n.interactions.length>3?n.interactions.slice(0,2):n.interactions,a=n.interactions.length-o.length;return r.createElement("div",{className:"d-flex justify-content-end ms-2"},o.map((function(e,t){return r.createElement(ne.y,{key:t,interaction:e,showQuestion:!1,iconClassName:"ms-1"})})),!!a&&r.createElement("div",{className:"interaction-type-icon d-flex justify-content-center align-items-center border border-dark text-body ms-1"},"+".concat(a)))}var oe=n(42503);function ae(e){return function(e){if(Array.isArray(e))return ie(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return ie(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?ie(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ie(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}var le={title:{text:null},xAxis:{visible:!1,minPadding:0,maxPadding:0},legend:{enabled:!1},credits:{enabled:!1},defs:{gradient:{tagName:"linearGradient",id:"area-gradient",x1:0,y1:1,x2:0,y2:0,children:[{tagName:"stop",offset:0},{tagName:"stop",offset:1}]}}};function ce(e,t){return{styledMode:!0,spacing:[15,0,0,0],width:e,height:t}}function ue(e){return ue="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},ue(e)}function se(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,fe(r.key),r)}}function fe(e){var t=function(e){if("object"!=ue(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=ue(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==ue(t)?t:t+""}function de(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(de=function(){return!!e})()}function me(){return me="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,n){var r=function(e,t){for(;!{}.hasOwnProperty.call(e,t)&&null!==(e=pe(e)););return e}(e,t);if(r){var o=Object.getOwnPropertyDescriptor(r,t);return o.get?o.get.call(arguments.length<3?e:n):o.value}},me.apply(null,arguments)}function pe(e){return pe=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},pe(e)}function ve(e,t){return ve=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},ve(e,t)}var he=Z.Z.getComponent("Component");P().AST.allowedTags.push("g"),P().AST.allowedAttributes.push("viewBox","transform");var ye=function(e){function t(e,n){var r;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),(r=function(e,t,n){return t=pe(t),function(e,t){if(t&&("object"==ue(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,de()?Reflect.construct(t,n||[],pe(e).constructor):t.apply(e,n))}(this,t,[e,n])).initialize(),r.bindListeners(),r}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&ve(e,t)}(t,e),n=t,o=[{key:"initialize",value:function(){var e=this;this.player().ready((function(){return e.buildChart()}))}},{key:"buildCSSClass",value:function(){return"cv-engagement-overlay"}},{key:"createEl",value:function(e,n,r){var o,a,i;return(o=t,a=this,"function"==typeof(i=me(pe(1&3?o.prototype:o),"createEl",a))?function(e){return i.apply(a,e)}:i)([e,Object.assign(Object.assign({},n),{className:this.buildCSSClass(),innerHTML:'<div class="cv-engagement-chart"></div><div class="cv-engagement-timepoint-indicator"></div>'}),r])}},{key:"toggleChart",value:function(e){e?this.buildChart():this.destroyChart()}},{key:"bindListeners",value:function(){var e=this;this.handleClick=this.handleClick.bind(this),this.resizeChart=this.resizeChart.bind(this),this.player().on("playerresize",this.resizeChart),this.on(this.el(),"mouseup",this.handleClick),this.player().on("dispose",(function(){e.player().off("playerresize",e.resizeChart),e.off(e.el(),"mouseup",e.handleClick)}))}},{key:"handleClick",value:function(e){Z.Z.dom.isSingleLeftClick(e)&&(this.player().paused()?this.player().play():this.player().pause())}},{key:"buildChart",value:function(){var e=this;if(!this.chart){var t=this.getChartDimensions();if(t){var n=this.el().querySelector(".cv-engagement-chart");this.chart=P().chart(n,this.getHighchartOptions(t))}else this.player().one("play",(function(){return e.buildChart()}))}}},{key:"resizeChart",value:function(){var e=this.getChartDimensions();this.chart&&e&&this.chart.setSize(e.width,e.height)}},{key:"destroyChart",value:function(){var e;null===(e=this.chart)||void 0===e||e.destroy(),this.chart=null}},{key:"getChartDimensions",value:function(){var e=this.player().getChild("collapserator"),t=null==e?void 0:e.currentHeight(),n=this.el().clientWidth;return t&&n?{width:n,height:this.player().currentDimensions().height-t}:null}},{key:"getHighchartOptions",value:function(e){var t,n,o,a=e.width,i=e.height;return Object.assign(Object.assign({},le),{chart:ce(a,i),yAxis:(n=this.options_.heatMap,{max:1.05*Math.max.apply(Math,ae(n)),min:0,minPadding:0,maxPadding:0,allowDecimals:!0,startOnTick:!1,endOnTick:!1,visible:!1}),tooltip:(o=this.options_.interactive,{formatter:function(){var e=o?function(e,t){return(0,te.renderToStaticMarkup)(r.createElement(re,{time:t,interactive:e}))}(o,this.x):"";return'<div class="cv-engagement-tooltip bg-white rounded"><div class="d-flex justify-content-between">'+"<strong>".concat((0,oe.m)(this.x),"</strong>")+"".concat(e)+'</div><div class="d-flex justify-content-between rounded bg-light cv-view-count-container">'+'<strong>Views</strong> <span class="cv-view-count">'.concat(this.y,"</span>")+"</div></div>"},positioner:function(e,t,n){var r=this.chart.plotWidth-e,o=n.plotX-e/2;return{x:Math.min(Math.max(o,0),r),y:this.chart.plotTop}},useHTML:!0,padding:0}),plotOptions:(t=this.moveTimepointIndicator.bind(this),{area:{point:{events:{mouseOver:function(){t(this.x)},mouseOut:function(){t(null)}}}},series:{marker:{enabled:!1}}}),series:[{type:"area",data:this.options_.heatMap}]})}},{key:"moveTimepointIndicator",value:function(e){this.options_.onTimepointHover&&this.options_.onTimepointHover(e);var t=this.el().querySelector(".cv-engagement-timepoint-indicator");null!==e?(Z.Z.dom.addClass(t,"cv-engagement-timepoint-indicator-visible"),t.style.left="".concat(e/this.options_.heatMap.length*100,"%")):Z.Z.dom.removeClass(t,"cv-engagement-timepoint-indicator-visible")}}],o&&se(n.prototype,o),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,o}(he);function ge(e){return ge="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},ge(e)}function be(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,we(r.key),r)}}function we(e){var t=function(e){if("object"!=ge(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=ge(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==ge(t)?t:t+""}function Ee(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(Ee=function(){return!!e})()}function Oe(e){return Oe=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},Oe(e)}function Se(e,t){return Se=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},Se(e,t)}Z.Z.registerComponent("EngagementOverlay",ye);var je=function(e){function t(e,n){var r;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),(r=function(e,t,n){return t=Oe(t),function(e,t){if(t&&("object"==ge(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,Ee()?Reflect.construct(t,n||[],Oe(e).constructor):t.apply(e,n))}(this,t,[e,n])).options=n,e.ready((function(){r.initialize()})),r}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Se(e,t)}(t,e),n=t,(r=[{key:"initialize",value:function(){var e;this.hasHeatMapData()&&(this.player.addChild("engagementOverlay",{heatMap:this.options.heatMap,interactive:this.options.interactive,onTimepointHover:this.options.onTimepointHover}),(null===(e=this.player.getChild("collapserator"))||void 0===e?void 0:e.getChild("cogButton")).addItem({index:0,ctor:ee,name:"EngagementOverlayMenuItem",options:{overlayVisible:!0}}))}},{key:"toggleOverlay",value:function(e){var t=this.player.getChild("engagementOverlay");null==t||t.toggleChart(e)}},{key:"hasHeatMapData",value:function(){var e;return(null===(e=this.options.heatMap)||void 0===e?void 0:e.reduce((function(e,t){return e+t}),0))>0}}])&&be(n.prototype,r),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,r}(Z.Z.getPlugin("plugin"));Z.Z.registerPlugin("engagementOverlayPlugin",je),n(16852);var Ce=n(4271),xe=n(10463);function ke(e){return ke="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},ke(e)}function Ne(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,Pe(r.key),r)}}function Pe(e){var t=function(e){if("object"!=ke(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=ke(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==ke(t)?t:t+""}function Te(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(Te=function(){return!!e})()}function Ie(e){return Ie=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},Ie(e)}function Le(e,t){return Le=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},Le(e,t)}n(6994);var Ae=function(e){function t(e,n){var r;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),(r=function(e,t,n){return t=Ie(t),function(e,t){if(t&&("object"==ke(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,Te()?Reflect.construct(t,n||[],Ie(e).constructor):t.apply(e,n))}(this,t,[e])).options=n,r.player.one("loadedmetadata",(function(){return r.player.ready(r.initialize.bind(r))})),r}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Le(e,t)}(t,e),n=t,(r=[{key:"initialize",value:function(){xe.O.useMetadataTrack(this.player,"interactive",this.onTrackLoaded.bind(this)),this.player.addClass("cv-interactive-plugin")}},{key:"onTrackLoaded",value:function(e){this.addChildren(e)}},{key:"addChildren",value:function(e){this.player.controlBar.getChild("progressControl").getChild("SeekBar").addChild(new Ce.N(this.player,{interactive:this.options.interactive,track:e}))}}])&&Ne(n.prototype,r),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,r}(Z.Z.getPlugin("plugin"));function Me(e){return Me="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},Me(e)}function Re(){Re=function(){return t};var e,t={},n=Object.prototype,r=n.hasOwnProperty,o=Object.defineProperty||function(e,t,n){e[t]=n.value},a="function"==typeof Symbol?Symbol:{},i=a.iterator||"@@iterator",l=a.asyncIterator||"@@asyncIterator",c=a.toStringTag||"@@toStringTag";function u(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{u({},"")}catch(e){u=function(e,t,n){return e[t]=n}}function s(e,t,n,r){var a=t&&t.prototype instanceof y?t:y,i=Object.create(a.prototype),l=new T(r||[]);return o(i,"_invoke",{value:x(e,n,l)}),i}function f(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}t.wrap=s;var d="suspendedStart",m="suspendedYield",p="executing",v="completed",h={};function y(){}function g(){}function b(){}var w={};u(w,i,(function(){return this}));var E=Object.getPrototypeOf,O=E&&E(E(I([])));O&&O!==n&&r.call(O,i)&&(w=O);var S=b.prototype=y.prototype=Object.create(w);function j(e){["next","throw","return"].forEach((function(t){u(e,t,(function(e){return this._invoke(t,e)}))}))}function C(e,t){function n(o,a,i,l){var c=f(e[o],e,a);if("throw"!==c.type){var u=c.arg,s=u.value;return s&&"object"==Me(s)&&r.call(s,"__await")?t.resolve(s.__await).then((function(e){n("next",e,i,l)}),(function(e){n("throw",e,i,l)})):t.resolve(s).then((function(e){u.value=e,i(u)}),(function(e){return n("throw",e,i,l)}))}l(c.arg)}var a;o(this,"_invoke",{value:function(e,r){function o(){return new t((function(t,o){n(e,r,t,o)}))}return a=a?a.then(o,o):o()}})}function x(t,n,r){var o=d;return function(a,i){if(o===p)throw Error("Generator is already running");if(o===v){if("throw"===a)throw i;return{value:e,done:!0}}for(r.method=a,r.arg=i;;){var l=r.delegate;if(l){var c=k(l,r);if(c){if(c===h)continue;return c}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(o===d)throw o=v,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);o=p;var u=f(t,n,r);if("normal"===u.type){if(o=r.done?v:m,u.arg===h)continue;return{value:u.arg,done:r.done}}"throw"===u.type&&(o=v,r.method="throw",r.arg=u.arg)}}}function k(t,n){var r=n.method,o=t.iterator[r];if(o===e)return n.delegate=null,"throw"===r&&t.iterator.return&&(n.method="return",n.arg=e,k(t,n),"throw"===n.method)||"return"!==r&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+r+"' method")),h;var a=f(o,t.iterator,n.arg);if("throw"===a.type)return n.method="throw",n.arg=a.arg,n.delegate=null,h;var i=a.arg;return i?i.done?(n[t.resultName]=i.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,h):i:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,h)}function N(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function P(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function T(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(N,this),this.reset(!0)}function I(t){if(t||""===t){var n=t[i];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var o=-1,a=function n(){for(;++o<t.length;)if(r.call(t,o))return n.value=t[o],n.done=!1,n;return n.value=e,n.done=!0,n};return a.next=a}}throw new TypeError(Me(t)+" is not iterable")}return g.prototype=b,o(S,"constructor",{value:b,configurable:!0}),o(b,"constructor",{value:g,configurable:!0}),g.displayName=u(b,c,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===g||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,b):(e.__proto__=b,u(e,c,"GeneratorFunction")),e.prototype=Object.create(S),e},t.awrap=function(e){return{__await:e}},j(C.prototype),u(C.prototype,l,(function(){return this})),t.AsyncIterator=C,t.async=function(e,n,r,o,a){void 0===a&&(a=Promise);var i=new C(s(e,n,r,o),a);return t.isGeneratorFunction(n)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},j(S),u(S,c,"Generator"),u(S,i,(function(){return this})),u(S,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),n=[];for(var r in t)n.push(r);return n.reverse(),function e(){for(;n.length;){var r=n.pop();if(r in t)return e.value=r,e.done=!1,e}return e.done=!0,e}},t.values=I,T.prototype={constructor:T,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(P),!t)for(var n in this)"t"===n.charAt(0)&&r.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var n=this;function o(r,o){return l.type="throw",l.arg=t,n.next=r,o&&(n.method="next",n.arg=e),!!o}for(var a=this.tryEntries.length-1;a>=0;--a){var i=this.tryEntries[a],l=i.completion;if("root"===i.tryLoc)return o("end");if(i.tryLoc<=this.prev){var c=r.call(i,"catchLoc"),u=r.call(i,"finallyLoc");if(c&&u){if(this.prev<i.catchLoc)return o(i.catchLoc,!0);if(this.prev<i.finallyLoc)return o(i.finallyLoc)}else if(c){if(this.prev<i.catchLoc)return o(i.catchLoc,!0)}else{if(!u)throw Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return o(i.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var a=o;break}}a&&("break"===e||"continue"===e)&&a.tryLoc<=t&&t<=a.finallyLoc&&(a=null);var i=a?a.completion:{};return i.type=e,i.arg=t,a?(this.method="next",this.next=a.finallyLoc,h):this.complete(i)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),h},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),P(n),h}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var o=r.arg;P(n)}return o}}throw Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:I(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),h}},t}function _e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,Be(r.key),r)}}function Be(e){var t=function(e){if("object"!=Me(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=Me(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==Me(t)?t:t+""}function Ue(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(Ue=function(){return!!e})()}function De(){return De="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,n){var r=function(e,t){for(;!{}.hasOwnProperty.call(e,t)&&null!==(e=Fe(e)););return e}(e,t);if(r){var o=Object.getOwnPropertyDescriptor(r,t);return o.get?o.get.call(arguments.length<3?e:n):o.value}},De.apply(null,arguments)}function Fe(e){return Fe=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},Fe(e)}function He(e,t){return He=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},He(e,t)}Z.Z.registerPlugin("interactiveSeekBarPlugin",Ae);var Ve=function(e){function t(e,n){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),function(e,t,n){return t=Fe(t),function(e,t){if(t&&("object"==Me(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,Ue()?Reflect.construct(t,n||[],Fe(e).constructor):t.apply(e,n))}(this,t,[e,n])}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&He(e,t)}(t,e),n=t,r=[{key:"getPlayerClassName",value:function(){return"cv-reports-player"}},{key:"getAnalyticsPlayerType",value:function(){return"reports-player"}},{key:"additionalSetup",value:function(e){var n,r,o,a,i=this,l=Object.create(null,{additionalSetup:{get:function(){return e=t,n=i,De(Fe(1&1?e.prototype:e),"additionalSetup",n);var e,n}}});return n=this,r=void 0,o=void 0,a=Re().mark((function t(){return Re().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:l.additionalSetup.call(this,e),this.setupEngagementOverlayPlugin(e),this.setupUpClipPlugin(e),this.setupInteractiveSeekBarPlugin(e);case 4:case"end":return t.stop()}}),t,this)})),new(o||(o=Promise))((function(e,t){function i(e){try{c(a.next(e))}catch(e){t(e)}}function l(e){try{c(a.throw(e))}catch(e){t(e)}}function c(t){var n;t.done?e(t.value):(n=t.value,n instanceof o?n:new o((function(e){e(n)}))).then(i,l)}c((a=a.apply(n,r||[])).next())}))}},{key:"setupEngagementOverlayPlugin",value:function(e){var t;this.player.engagementOverlayPlugin({heatMap:this.options.heatMap,interactive:null===(t=e.additionalData)||void 0===t?void 0:t.interactive,onTimepointHover:this.options.onTimepointHover})}},{key:"setupUpClipPlugin",value:function(e){var t,n,r="MasterClip"===e.mediaType,o="MasterInteractive"===e.mediaType;if((r||o)&&(r&&(n=e.additionalData),!o||(n=null===(t=e.additionalData)||void 0===t?void 0:t.clipData))){if(!n)throw Error("Invalid clip data");this.player.clipPlugin({startTime:n.startTime,endTime:n.endTime})}}},{key:"setupInteractiveSeekBarPlugin",value:function(e){var t,n,r=null===(t=e.additionalData)||void 0===t?void 0:t.interactive;(null===(n=e.additionalData)||void 0===n?void 0:n.interactive)&&(this.track=G.h.getInteractiveTrack(this.player,e),this.player.interactiveSeekBarPlugin({interactive:r}))}},{key:"getSeekBarOptions",value:function(){return{ignoreChapters:!0}}}],r&&_e(n.prototype,r),Object.defineProperty(n,"prototype",{writable:!1}),n;var n,r}(z.r);function We(e){var t=r.useRef(null),n=r.useRef(null);return r.useEffect((function(){n.current=new Ve(t.current,e)}),[]),r.createElement("div",{ref:t})}const ze={playerContainer:"fGWsk",playerPlaceholder:"v1MjE",heatMap:"lp1Yn",heatMapTimepointIndicator:"yOOK6",heatMapTimepointIndicatorVisible:"rTXmB",partialLoadingContainer:"gW1HU"};var Ge=a.T.encloseNamespace("shared.videoEngagementOverlay");function Ze(e){var t=r.useRef(null),n=(0,E.O)(e.engagement);return r.createElement("div",{className:"bg-white border rounded overflow-hidden h-100"},r.createElement("div",{className:"position-relative"},r.createElement("div",{className:ze.playerPlaceholder}),r.createElement("div",{className:ze.playerContainer},r.createElement(We,{viewKey:e.viewKey,playerApi:new URL(e.playerApiUrl),hotkeyElQuerySelector:"body",heatMap:n,onTimepointHover:function(e){var r=t.current;r&&(null!==e?(r.classList.add(ze.heatMapTimepointIndicatorVisible),r.style.left="".concat(e/n.length*100,"%")):r.classList.remove(ze.heatMapTimepointIndicatorVisible))},aspectRatio:"16:9"}))),r.createElement("div",{className:"p-3"},r.createElement("div",{className:"position-relative"},r.createElement(i.c,{engagement:e.engagement,className:ze.heatMap}),r.createElement("div",{ref:t,className:ze.heatMapTimepointIndicator})),r.createElement("div",{className:"d-flex justify-content-between mt-2"},r.createElement("strong",null,Ge("heatmap")),r.createElement("div",{className:"w-33"},r.createElement(i.l,null)))))}const Ke={videoContainer:"cpl68"};function $e(e){var t;return r.createElement(r.Fragment,null,!e.hasDataLoaded&&r.createElement(W,null),r.createElement("div",{className:"row g-3 mb-3"},e.hasDataLoaded&&r.createElement(r.Fragment,null,r.createElement("div",{className:"col"},r.createElement(F,{events:{yearGroupCount:e.yearGroups},emptyStateImage:H.W.EmptyStates.MY_VIDEOS})),r.createElement("div",{className:"col"},r.createElement(k,{engagement:e.individualEngagement})),r.createElement("div",{className:Ke.videoContainer},r.createElement(Ze,{engagement:e.aggregateEngagement,viewKey:e.viewKey.viewKey,playerApiUrl:e.config.playerApiUrl,imageCdnUrl:e.config.imageCdnUrl}))),e.tableDataLoaded&&r.createElement("div",{className:"col-12"},r.createElement(b,{engagement:e.individualEngagement,users:e.users,imageCdnUrl:null===(t=e.config)||void 0===t?void 0:t.imageCdnUrl,anonymiseUsers:e.anonymiseUsers,classroomStudents:e.classroomStudents,border:!0,enableSort:!0}))))}}}]);
|
|
3
|
+
//# sourceMappingURL=4203-ee50e89841-lite.chunk.js.map
|