@reltio/remotes 1.4.1282 → 1.4.1284
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/4843.js +1 -1
- package/4889.js +1 -1
- package/4889.js.map +1 -1
- package/6971.js +1 -1
- package/6971.js.map +1 -1
- package/7147.js +1 -1
- package/7147.js.map +1 -1
- package/7952.js +1 -1
- package/7952.js.map +1 -1
- package/8695.js +1 -1
- package/8695.js.map +1 -1
- package/package.json +1 -1
package/7147.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"7147.js","mappings":"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","sources":["webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTable/HOCs/withTableContext.js","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTablePagination/styles.js","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTablePagination/BasicTablePagination.js","webpack://@reltio/remotes/../components/src/components/BasicView/styles.js","webpack://@reltio/remotes/../components/src/components/BasicView/BasicView.tsx","webpack://@reltio/remotes/../components/src/components/BasicViewHeader/styles.ts","webpack://@reltio/remotes/../components/src/components/BasicViewHeader/BasicViewHeader.tsx","webpack://@reltio/remotes/../components/src/components/CollapseButton/styles.ts","webpack://@reltio/remotes/../components/src/components/CollapseButton/CollapseButton.tsx","webpack://@reltio/remotes/../components/src/components/ColorBar/styles.ts","webpack://@reltio/remotes/../components/src/components/ColorBar/ColorBar.tsx","webpack://@reltio/remotes/../components/src/components/DropDownMenuButton/styles.ts","webpack://@reltio/remotes/../components/src/components/DropDownMenuButton/MenuItemRenderer.tsx","webpack://@reltio/remotes/../components/src/components/DropDownMenuButton/DropDownMenuButton.tsx","webpack://@reltio/remotes/../components/src/components/EntityTypeIcon/EntityTypeIcon.js","webpack://@reltio/remotes/../components/src/components/ReactSelect/CreatableSelect.js","webpack://@reltio/remotes/../components/src/components/ReactSelect/MultiSelect/components/Option.js","webpack://@reltio/remotes/../components/src/components/ReactSelect/MultiSelect/components/index.js","webpack://@reltio/remotes/../components/src/components/ReactSelect/MultiSelect/MultiSelect.js","webpack://@reltio/remotes/../components/src/components/ReactSelect/MultiSelect/index.js","webpack://@reltio/remotes/../components/src/components/ReltioGridLayout/helpers.js","webpack://@reltio/remotes/../components/src/components/ReltioGridLayout/icons/ResizeIcon.svg.ts","webpack://@reltio/remotes/../components/src/components/ReltioGridLayout/styles.js","webpack://@reltio/remotes/../components/src/components/ReltioGridLayout/ReltioGridLayout.js","webpack://@reltio/remotes/../components/src/components/Spacer/Spacer.js","webpack://@reltio/remotes/../dashboard/src/components/DashboardLinearLoader/styles.ts","webpack://@reltio/remotes/../dashboard/src/components/DashboardLinearLoader/DashboardLinearLoader.tsx","webpack://@reltio/remotes/../dashboard/src/components/LayoutItemView/styles.ts","webpack://@reltio/remotes/../dashboard/src/components/LayoutItemView/LayoutItemView.tsx","webpack://@reltio/remotes/../dashboard/src/contexts/DashboardViewIdContext/index.ts","webpack://@reltio/remotes/../dashboard/src/hooks/useSavedSearchesRequest.ts","webpack://@reltio/remotes/../dashboard/src/views/tableBased/helpers.ts","webpack://@reltio/remotes/../dashboard/src/components/DashboardPopupMenu/styles.ts","webpack://@reltio/remotes/../dashboard/src/components/DashboardPopupMenu/DashboardPopupMenu.tsx","webpack://@reltio/remotes/../dashboard/src/components/LayoutItemHeader/styles.ts","webpack://@reltio/remotes/../dashboard/src/components/LayoutItemHeader/LayoutItemHeader.tsx","webpack://@reltio/remotes/../dashboard/src/components/DashboardNoData/icons/noData.svg","webpack://@reltio/remotes/../dashboard/src/components/DashboardNoData/styles.ts","webpack://@reltio/remotes/../dashboard/src/components/DashboardNoData/DashboardNoData.tsx","webpack://@reltio/remotes/../dashboard/src/components/DashboardError/icons/error.svg","webpack://@reltio/remotes/../dashboard/src/components/DashboardError/styles.ts","webpack://@reltio/remotes/../dashboard/src/components/DashboardError/DashboardError.tsx","webpack://@reltio/remotes/../dashboard/src/components/LayoutItemContent/styles.ts","webpack://@reltio/remotes/../dashboard/src/components/LayoutItemContent/LayoutItemContent.tsx","webpack://@reltio/remotes/../dashboard/src/HOCs/withPagination.tsx","webpack://@reltio/remotes/../dashboard/src/services/savedSearches.ts","webpack://@reltio/remotes/../dashboard/src/views/tableBased/FilteredSavedSearchesFacet.tsx","webpack://@reltio/remotes/../dashboard/src/services/filters.ts","webpack://@reltio/remotes/../dashboard/src/services/facets.ts","webpack://@reltio/remotes/../dashboard/src/views/chartBased/DashboardFacet.tsx","webpack://@reltio/remotes/../dashboard/src/hooks/useFacetRequest.ts","webpack://@reltio/remotes/../dashboard/src/components/EntityTable/cell-renderers/styles.ts","webpack://@reltio/remotes/../dashboard/src/components/EntityTable/cell-renderers/HeadCellRenderer.tsx","webpack://@reltio/remotes/../dashboard/src/components/EntityTable/cell-renderers/EntityLabelRenderer.tsx","webpack://@reltio/remotes/../dashboard/src/components/EntityTable/styles.ts","webpack://@reltio/remotes/../dashboard/src/views/tableBased/FilteredEntitiesViewFacet.tsx","webpack://@reltio/remotes/../dashboard/src/components/EntityTable/EntityTable.tsx","webpack://@reltio/remotes/../dashboard/src/hooks/useFilteredEntitiesRequest.ts","webpack://@reltio/remotes/../dashboard/src/types/Period.ts","webpack://@reltio/remotes/../dashboard/src/services/period.ts","webpack://@reltio/remotes/../dashboard/src/components/PeriodSelector/helpers.ts","webpack://@reltio/remotes/../dashboard/src/components/PeriodSelector/PeriodSelector.tsx","webpack://@reltio/remotes/../dashboard/src/components/StatsChart/getStatsChartSettings.ts","webpack://@reltio/remotes/../dashboard/src/services/stats.ts","webpack://@reltio/remotes/../dashboard/src/components/StatsChart/customized/CustomAxisTick.tsx","webpack://@reltio/remotes/../dashboard/src/components/StatsChart/customized/styles.ts","webpack://@reltio/remotes/../dashboard/src/components/StatsChart/customized/CustomTooltip.tsx","webpack://@reltio/remotes/../dashboard/src/components/StatsChart/customized/CustomLegend.tsx","webpack://@reltio/remotes/../dashboard/src/components/StatsChart/StatsChart.tsx","webpack://@reltio/remotes/../dashboard/src/hooks/useStatsRequest.ts","webpack://@reltio/remotes/../dashboard/src/views/chartBased/styles.ts","webpack://@reltio/remotes/../dashboard/src/views/chartBased/ProfileStatsFacet.tsx","webpack://@reltio/remotes/../dashboard/src/services/entityTypes.ts","webpack://@reltio/remotes/../dashboard/src/hooks/useEntityByTypeRequest.ts","webpack://@reltio/remotes/../dashboard/src/views/chartBased/EntitiesByTypeViewFacet.tsx","webpack://@reltio/remotes/../dashboard/src/views/custom/styles.ts","webpack://@reltio/remotes/../dashboard/src/views/custom/CustomActionViewFacet.tsx","webpack://@reltio/remotes/../dashboard/src/types/WorkflowTasks.ts","webpack://@reltio/remotes/../dashboard/src/services/workflowTasks.ts","webpack://@reltio/remotes/../dashboard/src/components/WorkflowTaskItem/styles.ts","webpack://@reltio/remotes/../dashboard/src/components/WorkflowTaskItem/WorkflowTaskObject.tsx","webpack://@reltio/remotes/../dashboard/src/components/WorkflowTaskItem/WorkflowTaskItem.tsx","webpack://@reltio/remotes/../dashboard/src/components/WorkflowTasksList/WorkflowTasksList.tsx","webpack://@reltio/remotes/../dashboard/src/hooks/useWorkflowTasksRequest.ts","webpack://@reltio/remotes/../dashboard/src/views/custom/NotificationInboxFacet.tsx","webpack://@reltio/remotes/../dashboard/src/hooks/useActivitiesRequest.ts","webpack://@reltio/remotes/../dashboard/src/views/tableBased/styles.ts","webpack://@reltio/remotes/../dashboard/src/views/tableBased/ActivitiesViewFacet.tsx","webpack://@reltio/remotes/../dashboard/src/views/ViewsFactory.tsx"],"sourcesContent":["import {TableContext} from '../contexts/TableContext';\nimport {withContext} from '../../../../HOCs/withContext/withContext';\n\nconst withTableContext = (contextSelector) => (CellRenderer) =>\n withContext(TableContext, contextSelector, CellRenderer);\n\nexport default withTableContext;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n pagination: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-end',\n height: '56px',\n borderTop: '1px solid rgba(0,0,0,0.12)',\n boxShadow: 'none'\n },\n caption: {\n color: 'rgba(0,0,0,0.6)',\n fontSize: '12px',\n lineHeight: '16px'\n },\n selectRoot: {\n marginLeft: '5px',\n marginRight: '36px'\n },\n select: {\n color: 'rgba(0,0,0,0.6)',\n fontSize: '12px',\n lineHeight: '16px',\n textAlign: 'right'\n },\n actions: {\n marginLeft: '32px'\n }\n});\n","import PropTypes from 'prop-types';\nimport React, {useCallback} from 'react';\nimport classnames from 'classnames';\nimport {TablePagination as TablePagination} from '@material-ui/core';\nimport i18n from 'ui-i18n';\nimport {getValue} from '../../../core/utils';\nimport {nthArg, pipe, pathOr, identity} from 'ramda';\nimport {useStyles} from './styles';\n\nconst BasicTablePagination = ({\n classes = {},\n count,\n rowsPerPageOptions,\n page,\n onChangePage,\n rowsPerPage,\n onChangeRowsPerPage,\n basicTableRef,\n labelRowsPerPage\n}) => {\n const labelDisplayedRows = ({from, to, count}) =>\n i18n.text('${fromRow}-${toRow} of ${countRows}', {\n fromRow: i18n.number(from, '0,0'),\n toRow: i18n.number(to, '0,0'),\n countRows: i18n.number(count, '0,0')\n });\n const styles = useStyles();\n const resetScrollbarPosition = useCallback(() => {\n pathOr(identity, ['current', 'resetScrollbarPosition'], basicTableRef)();\n }, [basicTableRef]);\n const handleChangePage = useCallback(\n (value) => {\n onChangePage(value);\n resetScrollbarPosition();\n },\n [onChangePage, resetScrollbarPosition]\n );\n const handleChangeRowsPerPage = useCallback(\n (value) => {\n onChangePage(0);\n onChangeRowsPerPage(value);\n resetScrollbarPosition();\n },\n [onChangePage, onChangeRowsPerPage, resetScrollbarPosition]\n );\n return (\n <TablePagination\n classes={{\n ...classes,\n root: classnames(styles.pagination, classes.root),\n select: classnames(styles.select, classes.select),\n caption: styles.caption,\n selectRoot: styles.selectRoot,\n actions: styles.actions\n }}\n component=\"div\"\n labelRowsPerPage={labelRowsPerPage || i18n.text('Rows per page:')}\n labelDisplayedRows={labelDisplayedRows}\n count={count}\n rowsPerPageOptions={rowsPerPageOptions}\n page={page}\n onChangePage={pipe(nthArg(1), handleChangePage)}\n rowsPerPage={rowsPerPage}\n onChangeRowsPerPage={pipe(getValue, handleChangeRowsPerPage)}\n />\n );\n};\n\nBasicTablePagination.propTypes = {\n classes: PropTypes.object,\n rowsPerPageOptions: PropTypes.arrayOf(PropTypes.number),\n count: PropTypes.number,\n page: PropTypes.number,\n onChangePage: PropTypes.func,\n rowsPerPage: PropTypes.number,\n onChangeRowsPerPage: PropTypes.func,\n basicTableRef: PropTypes.shape({current: PropTypes.object}),\n labelRowsPerPage: PropTypes.string\n};\n\nexport default React.memo(BasicTablePagination);\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles((theme) => ({\n 'basic-view__paper': {\n display: 'flex',\n flexDirection: 'column',\n ...theme.basicView\n }\n}));\n","import Paper, {PaperProps} from '@material-ui/core/Paper';\nimport PropTypes from 'prop-types';\nimport React, {forwardRef, Ref} from 'react';\nimport {useStyles} from './styles';\n\nconst BasicView = forwardRef<Ref<typeof Paper>, PaperProps>(({children, className, ...otherProps}, ref) => {\n const styles = useStyles();\n return (\n <Paper ref={ref} className={className} classes={{root: styles['basic-view__paper']}} {...otherProps}>\n {children}\n </Paper>\n );\n});\n\nBasicView.displayName = 'BasicView';\n\nBasicView.propTypes = {\n children: PropTypes.node,\n className: PropTypes.string\n};\n\nexport default BasicView;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n toolbar: {\n minHeight: '48px',\n padding: '8px 24px',\n lineHeight: '28px'\n },\n title: {\n fontSize: '18px',\n fontWeight: 'normal',\n lineHeight: 'inherit',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis'\n }\n});\n","import React from 'react';\nimport Toolbar, {ToolbarProps} from '@material-ui/core/Toolbar';\nimport {Typography as Typography} from '@material-ui/core';\nimport {useStyles} from './styles';\n\ntype Props = ToolbarProps & {\n title?: string;\n classes?: Partial<Record<'root' | 'title', string>>;\n};\n\nconst BasicViewHeader = ({title, children = null, classes = {}, ...otherProps}: Props) => {\n const styles = useStyles();\n return (\n <Toolbar className={classes.root} classes={{root: styles.toolbar}} {...otherProps}>\n <Typography className={classes.title} classes={{root: styles.title}} variant=\"h6\">\n {title}\n </Typography>\n {children}\n </Toolbar>\n );\n};\n\nexport default BasicViewHeader;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n collapseButton: {\n cursor: 'pointer'\n },\n expandLess: {\n transform: 'rotate( -180deg )'\n }\n});\n","import React from 'react';\nimport classnames from 'classnames';\nimport {SmallIconButtonWithTooltip} from '../SmallIconButton';\nimport ExpandMore from '@material-ui/icons/ExpandMore';\nimport {useStyles} from './styles';\n\ntype SmallIconButtonWithTooltipProps = React.ComponentPropsWithoutRef<typeof SmallIconButtonWithTooltip>;\n\ntype Props = Omit<SmallIconButtonWithTooltipProps, 'tooltipTitle'> & {\n isOpen?: boolean;\n tooltipTitle?: string;\n};\n\nconst CollapseButton = ({isOpen = false, tooltipTitle, ...otherProps}: Props) => {\n const styles = useStyles();\n const buttonProps = {\n icon: ExpandMore,\n className: styles.collapseButton,\n iconClassName: classnames({[styles.expandLess]: isOpen})\n };\n const tooltipProps = {\n tooltipTitle: tooltipTitle\n };\n return <SmallIconButtonWithTooltip {...buttonProps} {...tooltipProps} {...otherProps} />;\n};\n\nexport default CollapseButton;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles((theme) => ({\n bar: {\n backgroundColor: theme.palette.secondary.main,\n opacity: 0.12,\n position: 'absolute',\n minHeight: '20px',\n minWidth: '5px',\n borderRadius: '2px',\n top: 0,\n left: 0,\n height: '100%'\n }\n}));\n","import React, {useCallback} from 'react';\nimport classnames from 'classnames';\nimport {is} from 'ramda';\nimport {useStyles} from './styles';\n\ntype Props = {\n className?: string;\n width?: number | string;\n maxWidth?: number;\n};\n\nconst widthIsNumber = (width: string | number): width is number => is(Number, width);\n\nconst ColorBar = ({className, width = 0, maxWidth}: Props) => {\n const styles = useStyles();\n\n const getBarColorWidth = useCallback(\n (width: number) => {\n return (maxWidth ? (100 * width) / maxWidth : 0) + '%';\n },\n [maxWidth]\n );\n\n return width ? (\n <div\n className={classnames(styles.bar, className)}\n style={{width: widthIsNumber(width) ? getBarColorWidth(width) : width}}\n />\n ) : null;\n};\n\nexport default ColorBar;\n","import {fade, makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles((theme) => ({\n buttonRoot: {\n '&$selected': {\n color: theme.palette.action.active,\n backgroundColor: fade(theme.palette.action.active, 0.12),\n '&:hover': {\n backgroundColor: fade(theme.palette.action.active, 0.15)\n }\n }\n },\n selected: {},\n paper: {\n minWidth: '112px'\n },\n menuItem: {\n minHeight: '32px'\n },\n menuText: {\n color: theme.palette.text.primary,\n fontSize: '13px',\n lineHeight: '15px',\n letterSpacing: 0\n }\n}));\n","import React, {forwardRef} from 'react';\nimport {identity} from 'ramda';\nimport {Checkbox as Checkbox} from '@material-ui/core';\nimport {MenuItem as MenuItem} from '@material-ui/core';\nimport {Typography as Typography} from '@material-ui/core';\nimport withTooltip from '../../HOCs/withTooltip/withTooltip';\nimport {DropDownMenuItem} from '../../types';\n\nimport {useStyles} from './styles';\n\nconst MenuItemWithTooltip = withTooltip(MenuItem);\n\ntype Props = {\n item: DropDownMenuItem;\n onMenuClose?: (e) => void;\n};\n\nconst MenuItemRenderer = forwardRef(({item, onMenuClose = identity}: Props, ref: React.Ref<HTMLLIElement>) => {\n const styles = useStyles();\n const {disabled, text, tooltip, onClick, id = '', selectable, selected} = item;\n const handleClick = (e) => {\n onMenuClose(e);\n onClick(e);\n };\n\n return (\n <MenuItemWithTooltip\n tooltipTitle={tooltip}\n showForDisabled={true}\n classes={{root: styles.menuItem}}\n onClick={handleClick}\n disabled={disabled}\n ref={ref}\n data-modal\n data-reltio-id={`reltio-search-menu-item${id}`}\n >\n {selectable && <Checkbox checked={selected} color=\"primary\" />}\n <Typography classes={{root: styles.menuText}}>{text}</Typography>\n </MenuItemWithTooltip>\n );\n});\n\nMenuItemRenderer.displayName = 'MenuItemRenderer';\n\nexport default MenuItemRenderer;\n","import React, {useCallback, useRef, useState} from 'react';\nimport classnames from 'classnames';\nimport {identity} from 'ramda';\nimport {Button as Button} from '@material-ui/core';\nimport Menu, {MenuProps} from '@material-ui/core/Menu';\nimport {useDidUpdateEffect} from '../../hooks';\nimport DefaultMenuItemRenderer from './MenuItemRenderer';\nimport {useStyles} from './styles';\nimport {DropDownMenuItem} from '../../types';\n\ntype Props<T> = {\n className?: string;\n buttonComponent?: React.ElementType;\n buttonContent?: React.ReactNode;\n menuItems?: T[];\n buttonProps?: Record<string, unknown>;\n popoverProps?: Omit<MenuProps, 'open'>;\n menuId: string;\n onMenuOpen?: () => void;\n onMenuClose?: () => void;\n MenuItemRenderer?: (props) => JSX.Element;\n};\n\nfunction DropDownMenuButton<T = DropDownMenuItem>({\n className,\n menuId,\n buttonComponent = Button,\n buttonContent,\n menuItems = [],\n buttonProps = {},\n popoverProps = {},\n onMenuOpen = identity,\n onMenuClose = identity,\n MenuItemRenderer = DefaultMenuItemRenderer\n}: Props<T>) {\n const ButtonComponent = buttonComponent;\n const styles = useStyles();\n const buttonRef = useRef();\n const [isOpen, setIsOpen] = useState(false);\n\n useDidUpdateEffect(() => {\n isOpen ? onMenuOpen() : onMenuClose();\n }, [isOpen]);\n\n const handleToggle = useCallback((e) => {\n e?.stopPropagation();\n setIsOpen((open) => !open);\n }, []);\n\n const renderMenuItem = (item, index) => {\n return <MenuItemRenderer item={item} key={index} onMenuClose={handleToggle} />;\n };\n\n return (\n <>\n <ButtonComponent\n ref={buttonRef}\n className={classnames(\n styles.buttonRoot,\n {\n [styles.selected]: isOpen\n },\n className\n )}\n onClick={handleToggle}\n aria-pressed={isOpen}\n aria-controls={isOpen ? menuId : undefined}\n aria-haspopup=\"true\"\n {...buttonProps}\n >\n {buttonContent}\n </ButtonComponent>\n <Menu\n id={menuId}\n variant=\"menu\"\n open={isOpen}\n autoFocus={false}\n classes={{paper: styles.paper}}\n anchorEl={buttonRef.current}\n onClose={handleToggle}\n anchorOrigin={{\n vertical: 'bottom',\n horizontal: 'right'\n }}\n transformOrigin={{\n vertical: 'top',\n horizontal: 'right'\n }}\n elevation={2}\n getContentAnchorEl={null}\n MenuListProps={{autoFocusItem: isOpen}}\n {...popoverProps}\n >\n {menuItems.map(renderMenuItem)}\n </Menu>\n </>\n );\n}\n\nDropDownMenuButton.displayName = 'DropDownMenuButton';\n\nexport default DropDownMenuButton;\n","import React from 'react';\nimport {useSelector} from 'react-redux';\n\nimport mdmModule from '@reltio/mdm-module';\nimport RC_EntityTypeIcon from 'react-components/dist/EntityTypeIcon/EntityTypeIcon';\n\nconst ensureSlashEnding = (str) => (str.endsWith('/') ? str : str + '/');\n\nconst EntityTypeIcon = (props) => {\n const absoluteImagePath = useSelector(mdmModule.selectors.getAbsoluteImagePath) || '';\n return <RC_EntityTypeIcon {...props} storagePath={ensureSlashEnding(absoluteImagePath)} />;\n};\n\nexport default EntityTypeIcon;\n","import CreatableSelect from 'react-select/creatable';\nimport withMuiSkin from './withMuiSkin';\n\nexport default withMuiSkin(CreatableSelect);\n","import {MenuItem as MenuItem} from '@material-ui/core';\nimport {Checkbox as Checkbox} from '@material-ui/core';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport classNames from 'classnames';\nimport ExpandedValueTooltip from '../../../ExpandedValueTooltip/ExpandedValueTooltip';\n\nexport default function Option(props) {\n const {\n innerProps,\n innerRef,\n children,\n isFocused,\n isSelected,\n selectProps: {classes},\n label\n } = props;\n\n return (\n <MenuItem\n className={classNames(classes.option, {[classes['option--selected']]: isSelected})}\n ref={innerRef}\n selected={isFocused}\n component=\"div\"\n {...innerProps}\n >\n <Checkbox color=\"primary\" checked={isSelected} />\n <ExpandedValueTooltip value={label}>\n <div className={classes['option--item']}>{children}</div>\n </ExpandedValueTooltip>\n </MenuItem>\n );\n}\n\nOption.propTypes = {\n children: PropTypes.node,\n innerProps: PropTypes.shape({\n id: PropTypes.string.isRequired,\n key: PropTypes.string,\n onClick: PropTypes.func.isRequired,\n onMouseMove: PropTypes.func.isRequired,\n onMouseOver: PropTypes.func.isRequired,\n tabIndex: PropTypes.number.isRequired\n }).isRequired,\n innerRef: PropTypes.oneOfType([\n PropTypes.oneOf([null]),\n PropTypes.func,\n PropTypes.shape({\n current: PropTypes.any.isRequired\n })\n ]),\n isFocused: PropTypes.bool.isRequired,\n isSelected: PropTypes.bool.isRequired,\n label: PropTypes.string,\n selectProps: PropTypes.shape({\n classes: PropTypes.shape({\n option: PropTypes.string\n })\n })\n};\n","import Option from './Option';\n\nconst components = {\n Option\n};\n\nexport default components;\n","import React, {useState} from 'react';\nimport PropTypes from 'prop-types';\nimport {omit} from 'ramda';\nimport CreatableSelect from '../CreatableSelect';\nimport Select from '../Select';\nimport AsyncSelect from '../AsyncSelect';\nimport multiSelectComponents from './components';\nimport {makeStyles} from '@material-ui/core/styles';\nimport {mergeClasses} from '../../../core/utils';\n\nconst useStyles = makeStyles((theme) => ({\n label: {\n top: 6,\n left: 16\n },\n placeholder: (props) => ({\n display: !props.placeholder || props.label ? 'none' : undefined\n }),\n 'option--selected': {\n fontWeight: 400\n },\n clearIndicator: {\n padding: theme.spacing(1),\n margin: theme.spacing(0.25, 0.5)\n },\n dropdownIndicator: {\n padding: theme.spacing(1),\n margin: theme.spacing(0.25, 0.5)\n }\n}));\n\nlet id = 0;\nconst getInputId = () => `custom-select-${id++}`;\n\nfunction MultiSelect(props) {\n const {\n label,\n creatable,\n getOptions,\n loadingIndicator,\n components: componentsProp,\n classes: classesProp,\n styles: stylesProp,\n onChange: onChangeProp,\n onInputChange: onInputChangeProp,\n menuPlacement = 'auto',\n ...reactSelectProps\n } = props;\n\n const SelectComponent = creatable ? CreatableSelect : getOptions ? AsyncSelect : Select;\n\n const [inputValue, setInputValue] = useState('');\n const multiSelectClasses = useStyles(omit(['classes'], props));\n const inputId = getInputId();\n\n const components = {\n ...multiSelectComponents,\n ...componentsProp\n };\n\n const classes = mergeClasses(multiSelectClasses, classesProp);\n\n function handleInputChange(value, {action}) {\n onInputChangeProp(value, {action});\n if (action !== 'set-value') {\n setInputValue(value);\n }\n }\n\n function handleChange(value, actionMeta) {\n onChangeProp(value, actionMeta);\n if (actionMeta.action === 'create-option') {\n setInputValue('');\n onInputChangeProp('', {action: 'input-change'});\n }\n }\n\n const styles = {\n indicatorSeparator: (base) => ({\n ...base,\n margin: '10px 0'\n }),\n loadingIndicator: (base) => ({\n ...base,\n display: loadingIndicator ? base.display : 'none'\n }),\n loadingMessage: (base) => ({\n ...base,\n fontFamily: '\"Roboto\", \"Helvetica\", \"Arial\", sans-serif'\n }),\n ...stylesProp\n };\n\n const labelProps = label\n ? {\n inputId,\n TextFieldProps: {\n label,\n InputLabelProps: {\n htmlFor: inputId,\n shrink: props.value && props.value.length ? true : undefined,\n className: classes.label\n },\n ...props.TextFieldProps\n }\n }\n : {};\n\n return (\n <SelectComponent\n isMulti\n inputId={inputId}\n inputValue={inputValue}\n onChange={handleChange}\n onInputChange={handleInputChange}\n closeMenuOnSelect={false}\n hideSelectedOptions={false}\n classes={classes}\n components={components}\n styles={styles}\n menuPlacement={menuPlacement}\n loadOptions={getOptions}\n {...labelProps}\n {...reactSelectProps}\n />\n );\n}\n\nMultiSelect.defaultProps = {\n creatable: false,\n cacheOptions: true,\n components: {},\n classes: {},\n placeholder: '',\n loadingIndicator: false,\n onInputChange: () => {},\n onChange: () => {}\n};\n\nMultiSelect.propTypes = {\n /**\n * Async creatable multi select with optional placeholder, shrink-label, non-closing menu and options with checkboxes.\n * Based on react-select/creatable and react-select/async.\n * See react-select docs: https://react-select.com\n *\n * Below are listed only props used in the MultiSelect component. Check https://react-select.com/props first.\n * */\n\n /** Ability to create values. React-select/async-creatable is used internally */\n creatable: PropTypes.bool,\n /** True for enabling cache. Recommended. */\n cacheOptions: PropTypes.bool,\n defaultOptions: PropTypes.bool,\n /** Array of selected options. */\n value: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string.isRequired,\n value: PropTypes.any\n })\n ),\n options: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string.isRequired,\n value: PropTypes.any\n })\n ),\n /** Way to receive updated values */\n onChange: PropTypes.func,\n /** Way to receive updated inputValue */\n onInputChange: PropTypes.func,\n /** Input placeholder. Will not be shown if the label prop is specified */\n placeholder: PropTypes.string,\n /** Floating label from @material-ui/core/TextField component */\n label: PropTypes.string,\n /** Enable to show default react-select's indicator */\n loadingIndicator: PropTypes.bool,\n /** You could redefine any of these components */\n components: PropTypes.shape({\n ClearIndicator: PropTypes.func,\n Control: PropTypes.func,\n DropdownIndicator: PropTypes.func,\n DownChevron: PropTypes.func,\n CrossIcon: PropTypes.func,\n Group: PropTypes.func,\n GroupHeading: PropTypes.func,\n IndicatorsContainer: PropTypes.func,\n IndicatorSeparator: PropTypes.func,\n Input: PropTypes.func,\n LoadingIndicator: PropTypes.func,\n Menu: PropTypes.func,\n MenuList: PropTypes.func,\n MenuPortal: PropTypes.func,\n LoadingMessage: PropTypes.func,\n NoOptionsMessage: PropTypes.func,\n MultiValue: PropTypes.func,\n MultiValueContainer: PropTypes.func,\n MultiValueLabel: PropTypes.func,\n MultiValueRemove: PropTypes.func,\n Option: PropTypes.func,\n Placeholder: PropTypes.func,\n SelectContainer: PropTypes.func,\n SingleValue: PropTypes.func,\n ValueContainer: PropTypes.func\n }),\n /** Classes are passed to mui skin components. Provided classes will be merged with existing ones. */\n classes: PropTypes.shape({\n control: PropTypes.string,\n valueContainer: PropTypes.string,\n multiValue: PropTypes.string,\n noOptionsMessage: PropTypes.string,\n singleValue: PropTypes.string,\n placeholder: PropTypes.string,\n menu: PropTypes.string,\n clearIndicator: PropTypes.string,\n dropdownIndicator: PropTypes.string,\n option: PropTypes.string,\n 'option--selected': PropTypes.string,\n label: PropTypes.string\n }),\n /**\n * React-select's way to customise style. Could be used to style default react-select components.\n * In other cases better to use classes and components props\n * */\n styles: PropTypes.shape({\n clearIndicator: PropTypes.func,\n container: PropTypes.func,\n control: PropTypes.func,\n dropdownIndicator: PropTypes.func,\n group: PropTypes.func,\n groupHeading: PropTypes.func,\n indicatorsContainer: PropTypes.func,\n indicatorSeparator: PropTypes.func,\n input: PropTypes.func,\n loadingIndicator: PropTypes.func,\n loadingMessage: PropTypes.func,\n menu: PropTypes.func,\n menuList: PropTypes.func,\n menuPortal: PropTypes.func,\n multiValue: PropTypes.func,\n multiValueLabel: PropTypes.func,\n multiValueRemove: PropTypes.func,\n noOptionsMessage: PropTypes.func,\n option: PropTypes.func,\n placeholder: PropTypes.func,\n singleValue: PropTypes.func,\n valueContainer: PropTypes.func\n }),\n /** Props from https://material-ui.com/api/text-field/ */\n TextFieldProps: PropTypes.object /* eslint-disable-line react/forbid-prop-types */,\n getOptions: PropTypes.func,\n menuPlacement: PropTypes.string,\n menuPortalTarget: PropTypes.object,\n getOptionValue: PropTypes.func,\n isSearchable: PropTypes.bool,\n inputRef: PropTypes.shape({current: PropTypes.object})\n};\n\nexport default MultiSelect;\n","import MultiSelect from './MultiSelect';\n\nexport default MultiSelect;\n","import {curry, defaultTo, mergeAll, pick, pipe, prop, propEq, __} from 'ramda';\n\nexport const getReltioViewId = (id) => id.split(/\\d+_/)[1];\n\nexport const reltioLayoutItemToReactGridLayoutItem = ({\n x,\n y,\n width,\n height,\n id,\n minWidth,\n minHeight,\n maxWidth,\n maxHeight,\n isStatic\n}) => ({\n x,\n y,\n w: width,\n h: height,\n minW: minWidth,\n minH: minHeight,\n maxW: maxWidth,\n maxH: maxHeight,\n i: id,\n static: isStatic\n});\n\nexport const reactGridLayoutItemToReltioLayoutItem = ({x, y, w, h, maxW, minW, minH, maxH, i, ...obj}) => ({\n x,\n y,\n width: w,\n height: h,\n minWidth: minW,\n minHeight: minH,\n maxWidth: maxW,\n maxHeight: maxH,\n id: i,\n isStatic: obj.static\n});\n\nexport const reltioLayoutToReactGridLayout = (layout) => (layout || []).map(reltioLayoutItemToReactGridLayoutItem);\n\nexport const reactGridLayoutToReltioLayout = (layout) => (layout || []).map(reactGridLayoutItemToReltioLayoutItem);\n\nexport const getReltioLayoutItemById = curry((layout, id) => (layout || []).find(propEq('id', id)));\n\nconst updateExtraPropsInLayoutItem = curry((props, from, to) => mergeAll([to, pick(props, from)]));\n\nexport const copyPropsFromPreviousLayout = curry((props, oldReltioLayout, reltioLayout) =>\n (reltioLayout || []).map((layoutItem) =>\n pipe(\n prop('id'),\n getReltioLayoutItemById(oldReltioLayout),\n defaultTo({}),\n updateExtraPropsInLayoutItem(props, __, layoutItem)\n )(layoutItem)\n )\n);\n\nexport const calcHeight = (height, options) => {\n const {margin, rowHeight} = options;\n\n return Math.ceil((height + margin[1]) / (rowHeight + margin[1]));\n};\n","export const RESIZE_ICON = `<svg width=\"10\" height=\"10\" viewBox=\"0 0 10 10\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path stroke=\"#505050\" stroke-opacity=\".54\" d=\"M9.5 0v10M0 9.5h9M7.5 4v4M4 7.5h3\"/>\n</svg>`;\n","import {makeStyles} from '@material-ui/core/styles';\nimport {svg2Url} from '@reltio/mdm-sdk';\nimport {RESIZE_ICON} from './icons/ResizeIcon.svg';\n\nexport const useStyles = makeStyles((_) => ({\n gridLayout: {\n position: 'relative',\n width: '100%',\n '& .react-grid-item': {\n '&.react-grid-placeholder': {\n background: 'rgba(0, 0, 0, 0.03)',\n border: '2px dashed rgba(0, 0, 0, 0.3)',\n borderRadius: '3px',\n transitionDuration: '100ms',\n zIndex: 7,\n userSelect: 'none',\n '& .react-resizable-handle': {\n display: 'none'\n }\n },\n '&.static .react-resizable-handle': {\n display: 'none'\n },\n '&.cssTransforms': {\n transitionProperty: 'transform'\n },\n '&.resizing': {\n zIndex: 9,\n willChange: 'width, height',\n pointerEvents: 'none'\n },\n '&.react-draggable-dragging': {\n transition: 'none',\n zIndex: 8,\n willChange: 'transform',\n '& .react-resizable-handle': {\n backgroundImage: 'none'\n }\n },\n '& .react-resizable-handle': {\n position: 'absolute',\n width: '17px',\n height: '17px',\n bottom: 0,\n right: 0,\n zIndex: 20,\n backgroundImage: `url('${svg2Url(RESIZE_ICON)}')`,\n backgroundRepeat: 'no-repeat',\n backgroundOrigin: 'content-box',\n boxSizing: 'border-box',\n cursor: 'se-resize'\n },\n '&.fullscreen': {\n visibility: 'visible',\n position: 'unset',\n width: '100% !important',\n height: '100% !important',\n transform: 'translate(0) !important'\n }\n }\n },\n\n gridFullscreen: {\n height: '100% !important',\n overflowY: 'hidden',\n '& .react-resizable-handle, & .react-grid-item': {\n visibility: 'hidden'\n }\n }\n}));\n","import PropTypes from 'prop-types';\nimport React, {useCallback, useMemo, useRef, useState, memo} from 'react';\nimport GridLayout from 'react-grid-layout';\nimport ReactResizeDetector from 'react-resize-detector';\nimport {identity, pipe} from 'ramda';\nimport classnames from 'classnames';\nimport {\n reltioLayoutToReactGridLayout,\n reactGridLayoutToReltioLayout,\n reactGridLayoutItemToReltioLayoutItem,\n copyPropsFromPreviousLayout,\n calcHeight,\n getReltioLayoutItemById\n} from './helpers';\n\nimport {useStyles} from './styles';\n\nconst ReltioGridLayout = ({\n views,\n layout,\n layoutOptions,\n onLayoutChanged,\n draggableHandle,\n LayoutItem,\n onRemove,\n onDrop,\n droppingItem,\n isDroppable,\n classes\n}) => {\n const ref = useRef();\n const styles = useStyles();\n const [fullscreenItemId, setFullscreenItemId] = useState(null);\n const [width, setWidth] = useState(0);\n const {cols, rowHeight, margin} = layoutOptions;\n const processedLayout = useMemo(() => reltioLayoutToReactGridLayout(layout), [layout]);\n const onReltioLayoutChanged = pipe(\n reactGridLayoutToReltioLayout,\n copyPropsFromPreviousLayout(['autosizing'], layout),\n onLayoutChanged\n );\n const handleDrop = (layout, layoutItem, e) => {\n if (onDrop) {\n onDrop(reactGridLayoutToReltioLayout(layout), reactGridLayoutItemToReltioLayoutItem(layoutItem), e);\n }\n };\n const onToggleFullscreen = useCallback((id) => setFullscreenItemId((prevId) => (prevId ? null : id)), []);\n const isFullscreenEnabled = fullscreenItemId !== null;\n\n const onItemHeightResize = useCallback(\n (height, layoutId) => {\n let isLayoutChanged = false;\n\n const newLayout = layout.map((layoutItem) => {\n if (layoutItem.id === layoutId && height) {\n const newHeight = calcHeight(height, layoutOptions);\n\n if (layoutItem.height !== newHeight) {\n isLayoutChanged = true;\n return {\n ...layoutItem,\n minHeight: newHeight,\n maxHeight: newHeight,\n height: newHeight\n };\n }\n }\n return layoutItem;\n });\n\n if (isLayoutChanged) {\n onLayoutChanged(newLayout);\n }\n },\n [layout, layoutOptions, onLayoutChanged]\n );\n\n const getAutosizeComponent = (layoutItemId) => {\n return (\n <ReactResizeDetector\n handleHeight\n onResize={(width, height) => {\n onItemHeightResize(height, layoutItemId);\n }}\n />\n );\n };\n\n return (\n <>\n <ReactResizeDetector\n refreshMode=\"debounce\"\n refreshRate={50}\n handleWidth={true}\n onResize={(width) => setWidth(width)}\n />\n <GridLayout\n innerRef={ref}\n layout={processedLayout}\n cols={cols}\n draggableHandle={draggableHandle}\n autoSize={true}\n rowHeight={rowHeight}\n width={width}\n margin={margin}\n onLayoutChange={onReltioLayoutChanged}\n isResizable={!isFullscreenEnabled}\n isDraggable={!isFullscreenEnabled}\n className={classnames(classes.root, styles.gridLayout, {[styles.gridFullscreen]: isFullscreenEnabled})}\n onDrop={handleDrop}\n droppingItem={droppingItem}\n isDroppable={isDroppable}\n >\n {processedLayout.map((layoutItem) => {\n const isItemFullscreen = fullscreenItemId === layoutItem.i;\n const isAutosize = (getReltioLayoutItemById(layout, layoutItem.i) || {}).autosizing;\n const autosizeComponent = isAutosize ? {AutosizeComponent: getAutosizeComponent(layoutItem.i)} : {};\n return (\n <LayoutItem\n key={layoutItem.i}\n layoutItemConfig={layoutItem}\n views={views}\n onToggleFullscreen={onToggleFullscreen}\n onRemove={onRemove}\n className={classnames({fullscreen: isItemFullscreen}, classes.item)}\n isFullscreen={isItemFullscreen}\n {...autosizeComponent}\n />\n );\n })}\n </GridLayout>\n </>\n );\n};\n\nReltioGridLayout.defaultProps = {\n layoutOptions: {\n cols: 4,\n rowHeight: 30,\n margin: [15, 15]\n },\n onConfigChanged: identity,\n onLayoutChanged: identity,\n classes: {}\n};\nReltioGridLayout.propTypes = {\n views: PropTypes.array,\n layout: PropTypes.array,\n layoutOptions: PropTypes.object,\n onConfigChanged: PropTypes.func,\n onLayoutChanged: PropTypes.func,\n onDrop: PropTypes.func,\n onRemove: PropTypes.func,\n LayoutItem: PropTypes.elementType,\n draggableHandle: PropTypes.string,\n isDroppable: PropTypes.bool,\n droppingItem: PropTypes.object,\n classes: PropTypes.shape({\n root: PropTypes.string,\n item: PropTypes.string\n })\n};\n\nexport default memo(ReltioGridLayout);\n","import React from 'react';\n\nconst Spacer = () => <div style={{flex: 1}} />;\n\nexport default Spacer;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n loader: {\n width: '100%',\n top: 0,\n left: 0,\n position: 'absolute',\n borderRadius: '2px'\n }\n});\n","import React from 'react';\nimport {LinearProgress as LinearProgress} from '@material-ui/core';\nimport {useStyles} from './styles';\n\nconst DashboardLinearLoader = () => {\n const styles = useStyles();\n return <LinearProgress color=\"secondary\" className={styles.loader} />;\n};\n\nexport default DashboardLinearLoader;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles(() => ({\n view: {\n flex: 1,\n width: '100%',\n height: '100%',\n overflow: 'hidden'\n }\n}));\n","import React from 'react';\nimport {BasicView} from '@reltio/components';\nimport {DashboardViewIdContext} from '../../contexts/DashboardViewIdContext';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n id: string;\n children: React.ReactNode;\n};\n\nconst LayoutItemView = ({id, children}: Props) => {\n const styles = useStyles();\n\n return (\n <DashboardViewIdContext.Provider value={id}>\n <BasicView className={styles.view}>{children}</BasicView>\n </DashboardViewIdContext.Provider>\n );\n};\n\nexport default LayoutItemView;\n","import React from 'react';\n\nexport const DashboardViewIdContext = React.createContext(null);\n\nDashboardViewIdContext.displayName = 'DashboardViewIdContext';\n","import {useCallback, useEffect, useState} from 'react';\nimport {RequestStates} from '@reltio/components';\nimport {assocPath} from 'ramda';\nimport {\n getSavedSearches,\n getTotalsForQuery,\n promiseAllSettled,\n replacePlaceholdersInQuery,\n SavedSearchesOptions,\n SavedSearchesResponse\n} from '@reltio/mdm-sdk';\nimport {SavedSearchData} from '../types/SavedSearchData';\n\ntype Props = {\n options: SavedSearchesOptions;\n offset: number;\n max: number;\n};\n\nexport const useSavedSearchesRequest = ({options, offset, max}: Props) => {\n const [data, setData] = useState<SavedSearchData[]>([]);\n const [total, setTotal] = useState<number>(0);\n const [requestState, setRequestState] = useState<RequestStates>(RequestStates.INIT);\n const onError = (error) => {\n console.error(error); // eslint-disable-line\n setRequestState(RequestStates.ERROR);\n setData([]);\n };\n const loadData = useCallback(() => {\n setRequestState(RequestStates.LOADING);\n const onRequestFinished = (data) => {\n setData(data.result || []);\n setTotal(data.total);\n setRequestState(RequestStates.LOADED);\n };\n const {countResults, ...restOptions} = (options || {}) as Required<SavedSearchesOptions>;\n const getData = async () => {\n const {result = [], total}: SavedSearchesResponse = await getSavedSearches({\n offset,\n max,\n ...restOptions\n });\n if (countResults) {\n const totalRequests: Array<Promise<{total: number}>> = result.map((search) =>\n getTotalsForQuery(replacePlaceholdersInQuery(search.query))\n );\n const totalResults = await promiseAllSettled(totalRequests);\n const searchesWithCount: SavedSearchData[] = totalResults.reduce(\n (searchesWithTotal, {status, value, reason}, searchIndex) => {\n switch (status) {\n case 'fulfilled':\n return assocPath([searchIndex, 'count'], value.total, searchesWithTotal);\n case 'rejected':\n console.error(reason);\n break;\n }\n return searchesWithTotal;\n },\n result\n );\n onRequestFinished({result: searchesWithCount, total});\n } else {\n onRequestFinished({result, total});\n }\n };\n getData().catch(onError);\n }, [options, max, offset]);\n\n const refreshAction = () => {\n try {\n loadData();\n } catch (e) {\n onError(e);\n }\n };\n\n useEffect(() => {\n refreshAction();\n }, [loadData]);\n\n return {state: requestState, data, reload: refreshAction, total};\n};\n","import {subtract} from 'ramda';\n\nconst ROWS_PER_PAGE_OPTIONS = [10, 25, 50, 100];\nexport const [DEFAULT_ROWS_PER_PAGE] = ROWS_PER_PAGE_OPTIONS;\nexport const getRowsPerPageOptions = (defaultRowsPerPage) =>\n ROWS_PER_PAGE_OPTIONS.filter((option) => option !== defaultRowsPerPage)\n .concat(defaultRowsPerPage)\n .sort(subtract);\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles(() => ({\n itemTitle: {\n fontSize: '13px'\n },\n itemIcon: {\n minWidth: '49px'\n },\n menuItem: {\n padding: '12px 16px',\n minWidth: '177px'\n },\n openIcon: {\n padding: '4px',\n borderRadius: '2px',\n marginTop: '-6px',\n marginRight: '-10px'\n }\n}));\n","import React, {useState, ReactNode, MouseEvent} from 'react';\nimport {Menu as Menu} from '@material-ui/core';\nimport {MenuItem as MenuItem} from '@material-ui/core';\nimport {Typography as Typography} from '@material-ui/core';\nimport {ListItemIcon as ListItemIcon} from '@material-ui/core';\nimport {IconButton as IconButton} from '@material-ui/core';\nimport MoreVertIcon from '@material-ui/icons/MoreVert';\nimport {useStyles} from './styles';\n\ninterface MenuItem {\n id: string;\n title: string;\n icon: ReactNode;\n active: boolean;\n action: () => void;\n}\n\ntype DashboardPopupMenuProps = {\n items: MenuItem[];\n};\n\nconst DashboardPopupMenu = ({items}: DashboardPopupMenuProps) => {\n const [anchorEl, setAnchorEl] = useState<HTMLElement | null>(null);\n const isMenuOpen = Boolean(anchorEl);\n const styles = useStyles();\n\n const handleMenuClick = (e: MouseEvent<HTMLButtonElement>) => setAnchorEl(e.currentTarget);\n\n const handleMenuClose = () => setAnchorEl(null);\n\n const handleItemClick = (action: () => void) => () => {\n handleMenuClose();\n action();\n };\n\n return (\n <>\n <IconButton className={styles.openIcon} aria-controls=\"menu\" aria-haspopup=\"true\" onClick={handleMenuClick}>\n <MoreVertIcon />\n </IconButton>\n <Menu\n id=\"menu\"\n anchorEl={anchorEl}\n open={isMenuOpen}\n onClose={handleMenuClose}\n transitionDuration={0}\n getContentAnchorEl={null}\n anchorOrigin={{\n vertical: 'bottom',\n horizontal: 'right'\n }}\n transformOrigin={{\n vertical: 'top',\n horizontal: 'right'\n }}\n >\n {items\n .filter((item) => item.active)\n .map(({id, icon, title, action}) => (\n <MenuItem key={id} onClick={handleItemClick(action)} className={styles.menuItem}>\n <ListItemIcon className={styles.itemIcon}>{icon}</ListItemIcon>\n <Typography className={styles.itemTitle}>{title}</Typography>\n </MenuItem>\n ))}\n </Menu>\n </>\n );\n};\n\nexport default DashboardPopupMenu;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles(() => ({\n toolbarRoot: {\n padding: '16px',\n minHeight: '18px',\n lineHeight: '18px',\n marginBottom: '8px'\n },\n title: {\n fontSize: '16px',\n lineHeight: '20px',\n fontWeight: 'normal',\n color: 'rgba(0, 0, 0, 0.87)',\n letterSpacing: '0.15px',\n marginRight: '6px'\n },\n dragIcon: {\n position: 'absolute',\n left: '50%',\n top: '-3px',\n transform: 'translateX(-50%) rotate(90deg)',\n color: 'rgba(0, 0, 0, 0.3)',\n cursor: 'move',\n zIndex: 8,\n visibility: 'hidden',\n '.react-draggable $toolbarRoot:hover &.viewDraggableHandle': {\n visibility: 'visible'\n }\n },\n rightMenu: {\n display: 'flex',\n flexGrow: 1,\n justifyContent: 'flex-end',\n alignItems: 'baseline'\n },\n updatedChip: {\n background: '#FF9E1B',\n height: 20,\n fontSize: '10px',\n color: 'white',\n marginRight: '6px'\n }\n}));\n","import React, {useContext, useMemo} from 'react';\nimport {BasicViewHeader} from '@reltio/components';\nimport {DashboardViewIdContext} from '../../contexts/DashboardViewIdContext';\nimport {DashboardPopupMenu} from '../index';\nimport {Chip as Chip} from '@material-ui/core';\nimport FullscreenIcon from '@material-ui/icons/Fullscreen';\nimport FullscreenExitIcon from '@material-ui/icons/FullscreenExit';\nimport HighlightOffIcon from '@material-ui/icons/HighlightOff';\nimport ReplayIcon from '@material-ui/icons/Replay';\nimport DragIndicatorIcon from '@material-ui/icons/DragIndicator';\nimport i18n from 'ui-i18n';\n\nimport classnames from 'classnames';\nimport {useStyles} from './styles';\n\ntype Props = {\n title: string;\n onToggleFullscreen: (id: string) => void;\n isFullscreen: boolean;\n isUpdated?: boolean;\n onRefresh?: () => void;\n onRemove?: (id: string) => void;\n children?: React.ReactNode;\n};\n\nconst LayoutItemHeader = ({\n title,\n onToggleFullscreen,\n isUpdated = false,\n isFullscreen,\n onRemove,\n onRefresh,\n children\n}: Props) => {\n const id = useContext(DashboardViewIdContext);\n const menuItems = useMemo(\n () => [\n {\n id: 'refresh',\n title: 'Refresh',\n icon: <ReplayIcon />,\n active: !!onRefresh,\n action: () => onRefresh()\n },\n {\n id: 'fullscreen',\n title: 'Fullscreen',\n icon: <FullscreenIcon />,\n active: !isFullscreen,\n action: () => onToggleFullscreen(id)\n },\n {\n id: 'exitFullscreen',\n title: 'Exit fullscreen',\n icon: <FullscreenExitIcon />,\n active: isFullscreen,\n action: () => onToggleFullscreen(id)\n },\n {\n id: 'remove',\n title: 'Remove',\n icon: <HighlightOffIcon />,\n active: !!onRemove,\n action: () => {\n onRemove(id);\n if (isFullscreen) onToggleFullscreen(id);\n }\n }\n ],\n [id, isFullscreen, onRemove, onToggleFullscreen, onRefresh]\n );\n const styles = useStyles();\n\n return (\n <BasicViewHeader title={title} className={styles.toolbarRoot} classes={{title: styles.title}}>\n {isUpdated && <Chip label={i18n.text('Updated')} size=\"small\" className={styles.updatedChip} />}\n <div className={styles.rightMenu}>\n {children}\n <DashboardPopupMenu items={menuItems} />\n </div>\n <DragIndicatorIcon className={classnames('viewDraggableHandle', styles.dragIcon)} />\n </BasicViewHeader>\n );\n};\n\nexport default LayoutItemHeader;\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => React.createElement(\"svg\", _extends({\n width: \"148\",\n height: \"148\",\n viewBox: \"0 0 148 148\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n}, props), React.createElement(\"mask\", {\n id: \"svg2791016623a\",\n style: {\n maskType: \"alpha\"\n },\n maskUnits: \"userSpaceOnUse\",\n x: \"0\",\n y: \"0\",\n width: \"148\",\n height: \"148\"\n}, React.createElement(\"path\", {\n d: \"M74 148c40.869 0 74-33.131 74-74 0-40.87-33.131-74-74-74C33.13 0 0 33.13 0 74c0 40.869 33.13 74 74 74z\",\n fill: \"#fff\"\n})), React.createElement(\"g\", {\n mask: \"url(#svg2791016623a)\"\n}, React.createElement(\"path\", {\n d: \"M74 148c40.869 0 74-33.131 74-74 0-40.87-33.131-74-74-74C33.13 0 0 33.13 0 74c0 40.869 33.13 74 74 74z\",\n fill: \"#0072CE\",\n fillOpacity: \".1\"\n}), React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M0 5.203h148V148H0V5.203z\",\n fill: \"url(#nodata__paint0_linear)\"\n}), React.createElement(\"g\", {\n opacity: \".9\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n fill: \"#fff\"\n}, React.createElement(\"path\", {\n opacity: \".5\",\n d: \"M25.186 26.016h131.896V128.04H25.186V26.016z\",\n fillOpacity: \".8\"\n}), React.createElement(\"path\", {\n opacity: \".9\",\n d: \"M16.766 26.021a4.626 4.626 0 014.623-4.63h129.406a4.623 4.623 0 014.623 4.63v88.107a4.625 4.625 0 01-4.623 4.631H21.389a4.623 4.623 0 01-4.623-4.631V26.021z\"\n})), React.createElement(\"path\", {\n opacity: \".5\",\n d: \"M141.553 50.95a2.315 2.315 0 002.311-2.32 2.315 2.315 0 00-2.311-2.318 2.315 2.315 0 00-2.311 2.319 2.315 2.315 0 002.311 2.318zM133.465 50.95a2.315 2.315 0 002.311-2.32 2.315 2.315 0 00-2.311-2.318 2.314 2.314 0 00-2.311 2.319 2.314 2.314 0 002.311 2.318z\",\n fill: \"#6DBCFF\"\n}), React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M33.808 46.313a5.488 5.488 0 015.489 5.488v.035a5.488 5.488 0 01-10.977 0v-.035a5.488 5.488 0 015.488-5.489z\",\n fill: \"#E3EBF4\"\n}), React.createElement(\"path\", {\n opacity: \".5\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M47.102 46.19h37.054a2.029 2.029 0 010 4.057H47.102a2.028 2.028 0 110-4.057z\",\n fill: \"#B1AABD\"\n}), React.createElement(\"path\", {\n opacity: \".43\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M46.523 53.725h67.006a1.45 1.45 0 010 2.898H46.523a1.449 1.449 0 110-2.898z\",\n fill: \"#B1AABD\"\n}), React.createElement(\"path\", {\n opacity: \".2\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M45.943 58.941h21.62a.87.87 0 010 1.74h-21.62a.87.87 0 110-1.74z\",\n fill: \"#B1AABD\"\n}), React.createElement(\"path\", {\n opacity: \".5\",\n d: \"M71.35 30.664H31.508a3.188 3.188 0 100 6.375H71.35a3.188 3.188 0 000-6.375z\",\n fill: \"#645F6D\"\n}), React.createElement(\"path\", {\n opacity: \".5\",\n d: \"M141.553 72.972a2.315 2.315 0 002.311-2.318 2.315 2.315 0 00-2.311-2.318 2.315 2.315 0 00-2.311 2.318 2.315 2.315 0 002.311 2.319zM133.465 72.972a2.315 2.315 0 002.311-2.318 2.315 2.315 0 00-2.311-2.318 2.314 2.314 0 00-2.311 2.318 2.314 2.314 0 002.311 2.319z\",\n fill: \"#6DBCFF\"\n}), React.createElement(\"path\", {\n d: \"M39.297 73.824a5.488 5.488 0 10-10.977 0v.035a5.488 5.488 0 0010.977 0v-.035z\",\n fill: \"#E3EBF4\"\n}), React.createElement(\"path\", {\n opacity: \".5\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M47.102 68.214h43.894a2.029 2.029 0 010 4.057H47.102a2.029 2.029 0 010-4.057z\",\n fill: \"#B1AABD\"\n}), React.createElement(\"path\", {\n opacity: \".43\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M46.523 75.748h74.516a1.45 1.45 0 010 2.898H46.523a1.449 1.449 0 110-2.898z\",\n fill: \"#B1AABD\"\n}), React.createElement(\"path\", {\n opacity: \".2\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M45.943 80.965h60.077a.87.87 0 010 1.739H45.943a.87.87 0 010-1.74z\",\n fill: \"#B1AABD\"\n}), React.createElement(\"path\", {\n opacity: \".5\",\n d: \"M141.553 94.996a2.315 2.315 0 002.311-2.318 2.315 2.315 0 00-2.311-2.319 2.315 2.315 0 00-2.311 2.319 2.315 2.315 0 002.311 2.318zM133.465 94.996a2.315 2.315 0 002.311-2.318 2.315 2.315 0 00-2.311-2.319 2.314 2.314 0 00-2.311 2.319 2.314 2.314 0 002.311 2.318z\",\n fill: \"#6DBCFF\"\n}), React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M33.808 90.36a5.488 5.488 0 015.489 5.488v.035a5.488 5.488 0 11-10.977 0v-.035a5.488 5.488 0 015.488-5.489z\",\n fill: \"#E3EBF4\"\n}), React.createElement(\"path\", {\n opacity: \".5\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M47.102 90.237h58.915a2.028 2.028 0 010 4.057H47.102a2.029 2.029 0 010-4.057z\",\n fill: \"#B1AABD\"\n}), React.createElement(\"path\", {\n opacity: \".43\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M46.523 97.772h49.096a1.449 1.449 0 110 2.897H46.524a1.448 1.448 0 110-2.897z\",\n fill: \"#B1AABD\"\n}), React.createElement(\"path\", {\n opacity: \".2\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M45.943 102.988h21.62a.87.87 0 010 1.739h-21.62a.87.87 0 110-1.739z\",\n fill: \"#B1AABD\"\n}), React.createElement(\"path\", {\n opacity: \".1\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M102.927 64.75l44.536 77.139-58.989 34.057-44.536-77.14.405-.234c4.06 9.263 12.074 16.712 22.462 19.616 18.103 5.059 36.562-5.599 41.232-23.805 2.679-10.449.235-21.113-5.757-29.26l.647-.374z\",\n fill: \"url(#nodata__paint1_linear)\"\n}), React.createElement(\"path\", {\n opacity: \".2\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M56.352 103.62c10.385 10.611 27.223 10.611 37.609 0 10.385-10.612 10.385-27.816 0-38.427-10.386-10.611-27.224-10.611-37.61 0-10.385 10.611-10.385 27.815 0 38.427z\",\n fill: \"url(#nodata__paint2_linear)\"\n}), React.createElement(\"g\", {\n filter: \"url(#nodata__filter0_d)\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\"\n}, React.createElement(\"path\", {\n d: \"M74.981 49.719c19.06 0 34.512 15.462 34.512 34.536a34.418 34.418 0 01-8.665 22.886l29.603 29.623a51.708 51.708 0 01-5.837 5.43l-29.705-29.725a34.338 34.338 0 01-19.908 6.322c-19.06 0-34.512-15.462-34.512-34.536S55.92 49.719 74.98 49.719zm0 10.265c-13.395 0-24.254 10.866-24.254 24.27 0 13.405 10.859 24.272 24.254 24.272 13.395 0 24.254-10.867 24.254-24.271S88.376 59.984 74.981 59.984z\",\n fill: \"#B5C8C9\"\n}), React.createElement(\"path\", {\n d: \"M52.903 110.801c-7.598-6.335-12.434-15.876-12.434-26.546 0-19.074 15.451-34.536 34.512-34.536 10.663 0 20.197 4.839 26.528 12.442l-5.662 5.667c-4.862-6.175-12.401-10.14-20.866-10.14-14.662 0-26.548 11.895-26.548 26.567 0 8.47 3.962 16.015 10.132 20.88l-5.662 5.666z\",\n fill: \"#fff\",\n fillOpacity: \".4\"\n})), React.createElement(\"g\", {\n style: {\n mixBlendMode: \"soft-light\"\n },\n opacity: \".4\"\n}, React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M56.352 103.62c10.385 10.611 27.223 10.611 37.609 0 10.385-10.612 10.385-27.816 0-38.427-10.386-10.611-27.224-10.611-37.61 0-10.385 10.611-10.385 27.815 0 38.427z\",\n fill: \"#D9F5FF\"\n})), React.createElement(\"g\", {\n style: {\n mixBlendMode: \"overlay\"\n }\n}, React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M71.621 91.769c0-2.272.257-4.065.77-5.38.513-1.314 1.346-2.453 2.497-3.418 1.151-.964 2.026-1.847 2.625-2.648.6-.802.899-1.684.899-2.649 0-2.35-1.012-3.524-3.034-3.524-.933 0-1.688.343-2.263 1.027-.576.685-.88 1.61-.91 2.777h-7.888c.031-3.111 1.011-5.534 2.94-7.27 1.93-1.734 4.636-2.601 8.121-2.601 3.47 0 6.157.801 8.063 2.404 1.905 1.602 2.858 3.881 2.858 6.837 0 1.291-.257 2.466-.77 3.524-.513 1.058-1.338 2.139-2.474 3.243l-2.683 2.497c-.762.732-1.291 1.482-1.587 2.252-.295.77-.459 1.746-.49 2.929h-6.674zm-.957 7.094c0-1.151.416-2.096 1.249-2.835.832-.74 1.87-1.109 3.115-1.109s2.283.37 3.115 1.109c.833.739 1.249 1.684 1.249 2.835s-.416 2.096-1.249 2.835c-.832.739-1.87 1.109-3.115 1.109s-2.283-.37-3.115-1.109c-.833-.739-1.249-1.684-1.249-2.835z\",\n fill: \"#000\",\n fillOpacity: \".87\"\n})), React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M71.621 91.769c0-2.272.257-4.065.77-5.38.513-1.314 1.346-2.453 2.497-3.418 1.151-.964 2.026-1.847 2.625-2.648.6-.802.899-1.684.899-2.649 0-2.35-1.012-3.524-3.034-3.524-.933 0-1.688.343-2.263 1.027-.576.685-.88 1.61-.91 2.777h-7.888c.031-3.111 1.011-5.534 2.94-7.27 1.93-1.734 4.636-2.601 8.121-2.601 3.47 0 6.157.801 8.063 2.404 1.905 1.602 2.858 3.881 2.858 6.837 0 1.291-.257 2.466-.77 3.524-.513 1.058-1.338 2.139-2.474 3.243l-2.683 2.497c-.762.732-1.291 1.482-1.587 2.252-.295.77-.459 1.746-.49 2.929h-6.674zm-.957 7.094c0-1.151.416-2.096 1.249-2.835.832-.74 1.87-1.109 3.115-1.109s2.283.37 3.115 1.109c.833.739 1.249 1.684 1.249 2.835s-.416 2.096-1.249 2.835c-.832.739-1.87 1.109-3.115 1.109s-2.283-.37-3.115-1.109c-.833-.739-1.249-1.684-1.249-2.835z\",\n fill: \"#3C74B4\",\n fillOpacity: \".38\"\n})), React.createElement(\"defs\", null, React.createElement(\"linearGradient\", {\n id: \"nodata__paint0_linear\",\n x1: \"74\",\n y1: \"5.203\",\n x2: \"74\",\n y2: \"148\",\n gradientUnits: \"userSpaceOnUse\"\n}, React.createElement(\"stop\", {\n stopColor: \"#FAFAFA\",\n stopOpacity: \"0\"\n}), React.createElement(\"stop\", {\n offset: \"1\",\n stopColor: \"#F4F4F4\"\n})), React.createElement(\"linearGradient\", {\n id: \"nodata__paint1_linear\",\n x1: \"123.612\",\n y1: \"142.028\",\n x2: \"76.729\",\n y2: \"122.717\",\n gradientUnits: \"userSpaceOnUse\"\n}, React.createElement(\"stop\", {\n stopOpacity: \"0\"\n}), React.createElement(\"stop\", {\n offset: \"1\"\n})), React.createElement(\"linearGradient\", {\n id: \"nodata__paint2_linear\",\n x1: \"75.156\",\n y1: \"57.234\",\n x2: \"75.156\",\n y2: \"111.578\",\n gradientUnits: \"userSpaceOnUse\"\n}, React.createElement(\"stop\", {\n stopColor: \"#EEFBFF\"\n}), React.createElement(\"stop\", {\n offset: \"1\",\n stopColor: \"#0072CE\"\n})), React.createElement(\"filter\", {\n id: \"nodata__filter0_d\",\n x: \"36.469\",\n y: \"47.719\",\n width: \"97.962\",\n height: \"100.475\",\n filterUnits: \"userSpaceOnUse\",\n colorInterpolationFilters: \"sRGB\"\n}, React.createElement(\"feFlood\", {\n floodOpacity: \"0\",\n result: \"BackgroundImageFix\"\n}), React.createElement(\"feColorMatrix\", {\n in: \"SourceAlpha\",\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\n}), React.createElement(\"feOffset\", {\n dy: \"2\"\n}), React.createElement(\"feGaussianBlur\", {\n stdDeviation: \"2\"\n}), React.createElement(\"feColorMatrix\", {\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.2 0\"\n}), React.createElement(\"feBlend\", {\n mode: \"normal\",\n in2: \"BackgroundImageFix\",\n result: \"effect1_dropShadow\"\n}), React.createElement(\"feBlend\", {\n mode: \"normal\",\n in: \"SourceGraphic\",\n in2: \"effect1_dropShadow\",\n result: \"shape\"\n})))));","import {makeStyles} from '@material-ui/core/styles';\n\ntype NoDataContainer = {\n height?: number;\n};\n\nexport const useStyles = makeStyles(() => ({\n noDataContainer: ({height}: NoDataContainer) => ({\n height: height ? `${height}px` : 'auto',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n alignItems: 'center',\n color: 'rgba(0, 0, 0, 0.54)'\n }),\n icon: {\n height: '88px',\n width: '88px',\n marginBottom: '20px'\n }\n}));\n","import React from 'react';\nimport i18n from 'ui-i18n';\nimport {Typography as Typography} from '@material-ui/core';\nimport NoDataIcon from './icons/noData.svg';\nimport {useStyles} from './styles';\n\ntype DashboardNoDataProps = {\n height?: number;\n};\n\nconst DashboardNoData = ({height}: DashboardNoDataProps) => {\n const styles = useStyles({height});\n return (\n <div className={styles.noDataContainer}>\n <NoDataIcon className={styles.icon} />\n <Typography>{i18n.text('No Data')}</Typography>\n </div>\n );\n};\n\nexport default DashboardNoData;\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => React.createElement(\"svg\", _extends({\n width: \"88\",\n height: \"88\",\n viewBox: \"0 0 88 88\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n}, props), React.createElement(\"mask\", {\n id: \"svg3217593551a\",\n style: {\n maskType: \"alpha\"\n },\n maskUnits: \"userSpaceOnUse\",\n x: \"0\",\n y: \"0\",\n width: \"88\",\n height: \"88\"\n}, React.createElement(\"path\", {\n d: \"M44 88c24.3 0 44-19.7 44-44S68.3 0 44 0 0 19.7 0 44s19.7 44 44 44z\",\n fill: \"#fff\"\n})), React.createElement(\"g\", {\n mask: \"url(#svg3217593551a)\"\n}, React.createElement(\"path\", {\n d: \"M44 88c24.3 0 44-19.7 44-44S68.3 0 44 0 0 19.7 0 44s19.7 44 44 44z\",\n fill: \"#CAC4D5\",\n fillOpacity: \".3\"\n}), React.createElement(\"path\", {\n opacity: \".3\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M19.987 6.73l49.449 6.072a.687.687 0 01.596.767l-7.845 63.888a.688.688 0 01-.766.6L7.214 71.4a.688.688 0 01-.599-.763l.408-3.326L19.987 6.73z\",\n fill: \"#fff\"\n}), React.createElement(\"path\", {\n opacity: \".2\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M1.267 25.921l45.86-19.466a.687.687 0 01.9.366l25.15 59.251a.61.61 0 01-.386.84L22.34 82.765a.719.719 0 01-.887-.445l-20.185-56.4z\",\n fill: \"#fff\"\n}), React.createElement(\"path\", {\n d: \"M65.631 9.23H11.017a.688.688 0 00-.687.687v64.37c0 .38.307.687.687.687h54.614c.38 0 .688-.308.688-.687V9.917a.688.688 0 00-.688-.688z\",\n fill: \"#F9F9F9\"\n}), React.createElement(\"path\", {\n opacity: \".1\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M14.885 34.95l3.105-1.666 7.31-4.025 8.852 3.472 7.89-5.223 8.036-2.628 8.113 5.193 3.352-10.255v16.967H14.935l-.05-1.835z\",\n fill: \"#9C6CF0\"\n}), React.createElement(\"path\", {\n opacity: \".2\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M14.885 32.331l3.105-3.761 7.31 4.31 8.852 1.656 7.89-2.205 8.036 1.827 8.113-12.643 3.352.742V36.36H14.935l-.05-4.029z\",\n fill: \"#FA82AA\"\n}), React.createElement(\"path\", {\n opacity: \".2\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M14.885 34.946l3.105.432 7.31 1.01 8.852-5.117 7.89 3.675 8.036 1.839 8.113-1.839 3.352.811v1.028H14.935l-.05-1.839z\",\n fill: \"#4DBEE9\"\n}), React.createElement(\"path\", {\n opacity: \".1\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M61.543 35.288l-.05 1.497H14.885v-5.239l3.352-.276 8.114 4.697 8.036-.679 7.889.82 8.852-.616 7.31-1.601 3.105 1.397z\",\n fill: \"#4DBEE9\"\n}), React.createElement(\"path\", {\n d: \"M21.036 40.178h-5.09a.636.636 0 000 1.272h5.09a.636.636 0 100-1.272z\",\n fill: \"#ACACAC\"\n}), React.createElement(\"path\", {\n opacity: \".3\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M16.582 55.872c.703 0 1.273.57 1.273 1.273V69.02a1.272 1.272 0 11-2.545 0V57.144c0-.702.57-1.272 1.272-1.272zM25.914 55.872c.702 0 1.272.57 1.272 1.273V69.02a1.272 1.272 0 11-2.545 0V57.144c0-.702.57-1.272 1.273-1.272zM39.91 55.872c.703 0 1.273.57 1.273 1.273V69.02a1.272 1.272 0 11-2.545 0V57.144c0-.702.57-1.272 1.273-1.272zM21.248 55.872c.702 0 1.272.57 1.272 1.273V69.02a1.273 1.273 0 01-2.545 0V57.144c0-.702.57-1.272 1.273-1.272zM35.245 55.872c.703 0 1.273.57 1.273 1.273V69.02a1.272 1.272 0 11-2.545 0V57.144c0-.702.57-1.272 1.272-1.272zM30.58 55.872c.702 0 1.272.57 1.272 1.273V69.02a1.272 1.272 0 11-2.545 0V57.144c0-.702.57-1.272 1.272-1.272zM44.577 55.872c.702 0 1.272.57 1.272 1.273V69.02a1.273 1.273 0 01-2.545 0V57.144c0-.702.57-1.272 1.273-1.272z\",\n fill: \"#BDBDBD\"\n}), React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M16.582 65.628c.703 0 1.273.57 1.273 1.272v2.121a1.272 1.272 0 11-2.545 0v-2.12c0-.703.57-1.273 1.272-1.273zM25.914 62.658c.702 0 1.272.57 1.272 1.273v5.09a1.272 1.272 0 11-2.545 0v-5.09c0-.703.57-1.273 1.273-1.273zM39.91 65.628c.703 0 1.273.57 1.273 1.272v2.121a1.272 1.272 0 11-2.545 0v-2.12c0-.703.57-1.273 1.273-1.273zM21.248 66.477c.702 0 1.272.57 1.272 1.272v1.273a1.273 1.273 0 01-2.545 0v-1.273c0-.703.57-1.272 1.273-1.272z\",\n fill: \"#4DBEE9\"\n}), React.createElement(\"path\", {\n d: \"M36.518 65.628a1.272 1.272 0 00-2.545 0v3.393a1.272 1.272 0 102.545 0v-3.393zM31.852 62.234a1.272 1.272 0 10-2.545 0v6.787a1.272 1.272 0 102.545 0v-6.787z\",\n fill: \"#4DBEE9\"\n}), React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M44.577 60.962c.702 0 1.272.57 1.272 1.272v6.787a1.273 1.273 0 01-2.545 0v-6.787c0-.702.57-1.272 1.273-1.272z\",\n fill: \"#4DBEE9\"\n}), React.createElement(\"path\", {\n d: \"M18.915 18.546a1.909 1.909 0 100-3.817 1.909 1.909 0 000 3.817z\",\n fill: \"#9C6CF0\"\n}), React.createElement(\"path\", {\n opacity: \".5\",\n d: \"M34.185 18.546a1.909 1.909 0 100-3.817 1.909 1.909 0 000 3.817z\",\n fill: \"#4DBEE9\"\n}), React.createElement(\"path\", {\n opacity: \".3\",\n d: \"M49.454 18.546a1.909 1.909 0 100-3.817 1.909 1.909 0 000 3.817z\",\n fill: \"#4DBEE9\"\n}), React.createElement(\"path\", {\n opacity: \".8\",\n d: \"M26.55 18.546a1.909 1.909 0 100-3.817 1.909 1.909 0 000 3.817z\",\n fill: \"#FB6597\"\n}), React.createElement(\"path\", {\n d: \"M41.82 18.546a1.909 1.909 0 100-3.817 1.909 1.909 0 000 3.817z\",\n fill: \"#4DBEE9\"\n}), React.createElement(\"path\", {\n opacity: \".2\",\n d: \"M57.09 18.546a1.909 1.909 0 100-3.817 1.909 1.909 0 000 3.817z\",\n fill: \"#4DBEE9\"\n}), React.createElement(\"path\", {\n opacity: \".5\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M16.582 19.818h4.666a.424.424 0 110 .849h-4.666a.424.424 0 110-.849zM31.851 19.818h4.666a.424.424 0 010 .849h-4.666a.424.424 0 110-.849zM47.121 19.818h4.666a.424.424 0 010 .849h-4.666a.424.424 0 010-.849zM24.217 19.818h4.665a.424.424 0 010 .849h-4.665a.424.424 0 010-.849zM39.486 19.818h4.666a.424.424 0 110 .849h-4.666a.424.424 0 110-.849zM54.756 19.818h4.666a.424.424 0 110 .849h-4.666a.424.424 0 110-.849z\",\n fill: \"#ACACAC\"\n}), React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M15.946 43.571h5.09a.636.636 0 110 1.273h-5.09a.636.636 0 010-1.273zM15.946 46.116h5.09a.636.636 0 010 1.273h-5.09a.636.636 0 010-1.273zM15.946 48.661h5.09a.636.636 0 010 1.273h-5.09a.636.636 0 110-1.273zM23.58 43.571h5.09a.636.636 0 110 1.273h-5.09a.636.636 0 010-1.273zM23.58 46.116h5.09a.636.636 0 010 1.273h-5.09a.636.636 0 010-1.273zM23.58 48.661h5.09a.636.636 0 010 1.273h-5.09a.636.636 0 110-1.273zM49.454 43.571h11.028a.636.636 0 010 1.273H49.454a.636.636 0 010-1.273zM49.454 46.116h11.028a.636.636 0 010 1.273H49.454a.636.636 0 010-1.273zM49.454 48.661h11.028a.636.636 0 010 1.273H49.454a.636.636 0 110-1.273zM31.215 43.571h15.27a.636.636 0 110 1.273h-15.27a.636.636 0 010-1.273zM31.215 46.116h15.27a.636.636 0 010 1.273h-15.27a.636.636 0 010-1.273zM31.215 48.661h15.27a.636.636 0 010 1.273h-15.27a.636.636 0 010-1.273zM15.946 51.206h5.09a.636.636 0 110 1.272h-5.09a.636.636 0 110-1.272zM23.58 51.206h5.09a.636.636 0 110 1.272h-5.09a.636.636 0 110-1.272zM49.454 51.206h11.028a.636.636 0 010 1.272H49.454a.636.636 0 110-1.272zM31.215 51.206h15.27a.636.636 0 110 1.272h-15.27a.636.636 0 010-1.272z\",\n fill: \"#E9E9E9\"\n}), React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M49.878 55.872h5.09a.636.636 0 110 1.273h-5.09a.636.636 0 110-1.273z\",\n fill: \"#ACACAC\"\n}), React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M49.878 59.69h11.029a.636.636 0 010 1.272H49.878a.636.636 0 110-1.273zM49.878 62.234h11.029a.636.636 0 010 1.273H49.878a.636.636 0 010-1.273zM49.878 64.78h11.029a.636.636 0 010 1.272H49.878a.636.636 0 010-1.273z\",\n fill: \"#E9E9E9\"\n}), React.createElement(\"path\", {\n d: \"M54.968 67.324h-5.09a.636.636 0 000 1.273h5.09a.636.636 0 000-1.273z\",\n fill: \"#E9E9E9\"\n}), React.createElement(\"g\", {\n filter: \"url(#error__filter0_d)\"\n}, React.createElement(\"path\", {\n d: \"M57.406 74.25c9.493 0 17.188-7.695 17.188-17.188 0-9.492-7.695-17.187-17.188-17.187-9.492 0-17.187 7.695-17.187 17.188 0 9.492 7.695 17.187 17.187 17.187z\",\n fill: \"#000\"\n})), React.createElement(\"path\", {\n d: \"M57.406 74.25c9.493 0 17.188-7.695 17.188-17.188 0-9.492-7.695-17.187-17.188-17.187-9.492 0-17.187 7.695-17.187 17.188 0 9.492 7.695 17.187 17.187 17.187z\",\n fill: \"#F25252\"\n}), React.createElement(\"path\", {\n opacity: \".15\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M57.406 34.719c12.34 0 22.344 10.003 22.344 22.343S69.746 79.406 57.406 79.406c-12.34 0-22.343-10.003-22.343-22.344 0-12.34 10.003-22.343 22.343-22.343zm-.172 2.406c-10.916 0-19.765 8.85-19.765 19.766 0 10.916 8.85 19.765 19.765 19.765C68.151 76.656 77 67.806 77 56.891c0-10.917-8.85-19.766-19.766-19.766z\",\n fill: \"#F25252\"\n}), React.createElement(\"path\", {\n opacity: \".3\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M57.406 38.844c10.062 0 18.219 8.157 18.219 18.218 0 10.062-8.157 18.22-18.219 18.22-10.062 0-18.218-8.158-18.218-18.22 0-10.061 8.156-18.218 18.218-18.218zm0 2.043c-8.933 0-16.175 7.242-16.175 16.175 0 8.934 7.242 16.176 16.175 16.176 8.934 0 16.176-7.242 16.176-16.175 0-8.934-7.242-16.176-16.176-16.176z\",\n fill: \"#F25252\"\n}), React.createElement(\"path\", {\n opacity: \".05\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M57.406 26.469C74.303 26.469 88 40.166 88 57.062c0 16.897-13.697 30.594-30.594 30.594-16.896 0-30.593-13.697-30.593-30.594 0-16.896 13.697-30.593 30.593-30.593zm-.172 3.437c-14.903 0-26.984 12.082-26.984 26.985 0 14.903 12.081 26.984 26.984 26.984 14.903 0 26.985-12.081 26.985-26.984 0-14.903-12.082-26.985-26.985-26.985z\",\n fill: \"#F25252\"\n}), React.createElement(\"path\", {\n d: \"M57.406 71.844c8.164 0 14.782-6.618 14.782-14.781 0-8.164-6.618-14.782-14.782-14.782-8.163 0-14.781 6.618-14.781 14.782 0 8.163 6.618 14.78 14.781 14.78z\",\n fill: \"#FF6A6A\"\n}), React.createElement(\"path\", {\n opacity: \".05\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M58.298 46.448L75.18 63.331l-9.114 12.078h-2.029l-7.582-7.582 1.006-3.178.837-18.2z\",\n fill: \"url(#error__paint0_linear)\"\n}), React.createElement(\"g\", {\n filter: \"url(#error__filter1_d)\"\n}, React.createElement(\"path\", {\n d: \"M57.406 68.063a1.719 1.719 0 100-3.438 1.719 1.719 0 000 3.438z\",\n fill: \"#000\"\n})), React.createElement(\"path\", {\n d: \"M57.406 68.063a1.719 1.719 0 100-3.438 1.719 1.719 0 000 3.438z\",\n fill: \"#fff\"\n}), React.createElement(\"g\", {\n filter: \"url(#error__filter2_d)\"\n}, React.createElement(\"path\", {\n d: \"M57.406 46.063c.95 0 1.719.769 1.719 1.718v12.375a1.719 1.719 0 11-3.438 0V47.781c0-.949.77-1.718 1.72-1.718z\",\n fill: \"#000\"\n})), React.createElement(\"path\", {\n d: \"M57.406 46.063c.95 0 1.719.769 1.719 1.718v12.375a1.719 1.719 0 11-3.438 0V47.781c0-.949.77-1.718 1.72-1.718z\",\n fill: \"#fff\"\n})), React.createElement(\"defs\", null, React.createElement(\"filter\", {\n id: \"error__filter0_d\",\n x: \"36.219\",\n y: \"37.875\",\n width: \"42.375\",\n height: \"42.375\",\n filterUnits: \"userSpaceOnUse\",\n colorInterpolationFilters: \"sRGB\"\n}, React.createElement(\"feFlood\", {\n floodOpacity: \"0\",\n result: \"BackgroundImageFix\"\n}), React.createElement(\"feColorMatrix\", {\n in: \"SourceAlpha\",\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\n}), React.createElement(\"feOffset\", {\n dy: \"2\"\n}), React.createElement(\"feGaussianBlur\", {\n stdDeviation: \"2\"\n}), React.createElement(\"feColorMatrix\", {\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.2 0\"\n}), React.createElement(\"feBlend\", {\n mode: \"normal\",\n in2: \"BackgroundImageFix\",\n result: \"effect1_dropShadow\"\n}), React.createElement(\"feBlend\", {\n mode: \"normal\",\n in: \"SourceGraphic\",\n in2: \"effect1_dropShadow\",\n result: \"shape\"\n})), React.createElement(\"filter\", {\n id: \"error__filter1_d\",\n x: \"51.688\",\n y: \"62.625\",\n width: \"11.438\",\n height: \"11.438\",\n filterUnits: \"userSpaceOnUse\",\n colorInterpolationFilters: \"sRGB\"\n}, React.createElement(\"feFlood\", {\n floodOpacity: \"0\",\n result: \"BackgroundImageFix\"\n}), React.createElement(\"feColorMatrix\", {\n in: \"SourceAlpha\",\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\n}), React.createElement(\"feOffset\", {\n dy: \"2\"\n}), React.createElement(\"feGaussianBlur\", {\n stdDeviation: \"2\"\n}), React.createElement(\"feColorMatrix\", {\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.2 0\"\n}), React.createElement(\"feBlend\", {\n mode: \"normal\",\n in2: \"BackgroundImageFix\",\n result: \"effect1_dropShadow\"\n}), React.createElement(\"feBlend\", {\n mode: \"normal\",\n in: \"SourceGraphic\",\n in2: \"effect1_dropShadow\",\n result: \"shape\"\n})), React.createElement(\"filter\", {\n id: \"error__filter2_d\",\n x: \"51.688\",\n y: \"44.063\",\n width: \"11.438\",\n height: \"23.813\",\n filterUnits: \"userSpaceOnUse\",\n colorInterpolationFilters: \"sRGB\"\n}, React.createElement(\"feFlood\", {\n floodOpacity: \"0\",\n result: \"BackgroundImageFix\"\n}), React.createElement(\"feColorMatrix\", {\n in: \"SourceAlpha\",\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\n}), React.createElement(\"feOffset\", {\n dy: \"2\"\n}), React.createElement(\"feGaussianBlur\", {\n stdDeviation: \"2\"\n}), React.createElement(\"feColorMatrix\", {\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.2 0\"\n}), React.createElement(\"feBlend\", {\n mode: \"normal\",\n in2: \"BackgroundImageFix\",\n result: \"effect1_dropShadow\"\n}), React.createElement(\"feBlend\", {\n mode: \"normal\",\n in: \"SourceGraphic\",\n in2: \"effect1_dropShadow\",\n result: \"shape\"\n})), React.createElement(\"linearGradient\", {\n id: \"error__paint0_linear\",\n x1: \"68.438\",\n y1: \"71.571\",\n x2: \"60.119\",\n y2: \"58.801\",\n gradientUnits: \"userSpaceOnUse\"\n}, React.createElement(\"stop\", {\n stopOpacity: \"0\"\n}), React.createElement(\"stop\", {\n offset: \"1\"\n})))));","import {makeStyles} from '@material-ui/core/styles';\n\ntype ErrorContainerProps = {\n height?: number;\n};\n\nexport const useStyles = makeStyles((theme) => ({\n errorContainer: ({height}: ErrorContainerProps) => ({\n height: height ? `${height}px` : 'auto',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n alignItems: 'center',\n color: 'rgba(0, 0, 0, 0.54)'\n }),\n errorIcon: {\n height: '88px',\n width: '88px',\n marginBottom: '20px',\n paddingTop: '36px'\n },\n refreshButton: {\n color: theme.palette.primary.main,\n marginTop: '10px'\n },\n refreshIcon: {\n width: '24px',\n height: '24px'\n }\n}));\n","import React from 'react';\nimport i18n from 'ui-i18n';\nimport {Typography as Typography} from '@material-ui/core';\nimport ReplayIcon from '@material-ui/icons/Replay';\nimport {Button as Button} from '@material-ui/core';\nimport ErrorIcon from './icons/error.svg';\nimport {useStyles} from './styles';\n\ntype DashboardErrorProps = {\n height?: number;\n onRefresh?: () => void;\n message?: string;\n};\n\nconst DashboardError = ({height, onRefresh, message}: DashboardErrorProps) => {\n const styles = useStyles({height});\n return (\n <div className={styles.errorContainer}>\n <ErrorIcon className={styles.errorIcon} />\n <Typography>{message}</Typography>\n {onRefresh && (\n <Button\n className={styles.refreshButton}\n startIcon={<ReplayIcon color=\"primary\" className={styles.refreshIcon} />}\n onClick={onRefresh}\n >\n <Typography variant=\"button\">{i18n.text('Refresh')}</Typography>\n </Button>\n )}\n </div>\n );\n};\n\nexport default DashboardError;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles(() => ({\n viewContent: {\n height: '100%',\n overflow: 'hidden',\n position: 'relative',\n padding: '0 16px 16px'\n },\n toolbarRoot: {\n padding: '16px',\n minHeight: '18px',\n lineHeight: '18px',\n marginBottom: '8px',\n '&:hover .viewDraggableHandle': {\n visibility: 'visible'\n }\n },\n title: {\n fontSize: '16px',\n lineHeight: '19px',\n fontWeight: 'normal',\n color: 'rgba(0, 0, 0, 0.87)',\n letterSpacing: '0.15px'\n },\n dragIcon: {\n position: 'absolute',\n left: '50%',\n top: '-3px',\n transform: 'translateX(-50%) rotate(90deg)',\n color: 'rgba(0, 0, 0, 0.3)',\n cursor: 'move',\n zIndex: 8,\n visibility: 'hidden'\n }\n}));\n","import React from 'react';\nimport classnames from 'classnames';\nimport i18n from 'ui-i18n';\nimport {BasicViewContent, ErrorBoundary, RequestStates} from '@reltio/components';\nimport {DashboardError, DashboardLinearLoader, DashboardNoData} from '../index';\nimport ReactResizeDetector from 'react-resize-detector';\nimport {useStyles} from './styles';\n\ntype ChildrenProps<T> = {data: T[]; width: number; height: number};\n\ntype Props<T> = {\n loadingState: RequestStates;\n children: (props: ChildrenProps<T>) => React.ReactNode;\n onRefresh: () => void;\n data: T[];\n className?: string;\n};\n\nconst LayoutItemContent = <T extends unknown>({loadingState, onRefresh, children, data, className}: Props<T>) => {\n const styles = useStyles();\n\n const renderContent = ({width, height}: {width: number; height: number}) => {\n switch (loadingState) {\n case RequestStates.LOADED:\n if (!data || data.length === 0) {\n return <DashboardNoData height={height} />;\n }\n return (\n <ErrorBoundary\n error={<DashboardError message={i18n.text('Something went wrong')} height={height} />}\n >\n {children({data, width, height})}\n </ErrorBoundary>\n );\n case RequestStates.LOADING:\n return <DashboardLinearLoader />;\n case RequestStates.ERROR:\n return (\n <DashboardError message={i18n.text('Error Loading Data')} height={height} onRefresh={onRefresh} />\n );\n default:\n return <div>Loading...</div>;\n }\n };\n\n return (\n <BasicViewContent className={classnames(styles.viewContent, className)}>\n <ReactResizeDetector refreshMode=\"debounce\" refreshRate={100} handleWidth handleHeight>\n {renderContent}\n </ReactResizeDetector>\n </BasicViewContent>\n );\n};\n\nexport default LayoutItemContent;\n","import React, {useRef} from 'react';\nimport {BasicTablePagination} from '@reltio/components';\n\nconst PAGINATION_HEIGHT = 60;\n\ntype RefProps = {\n basicTableRef?: React.MutableRefObject<any> | null;\n};\n\ntype Props = {\n count?: number;\n height?: number;\n onChangePage?: (page: number) => void;\n page?: number;\n rowsPerPageOptions?: number[];\n rowsPerPage?: number;\n onChangeRowsPerPage?: (page: number) => void;\n};\n\nexport function withPagination<T>(TableComponent: React.ComponentType<T>) {\n const WithPagination = (props: Props & Omit<T, keyof RefProps>) => {\n const basicTableRef = useRef(null);\n\n return (\n <>\n <TableComponent\n {...(props as T)}\n basicTableRef={basicTableRef}\n height={props.height - PAGINATION_HEIGHT}\n />\n <BasicTablePagination {...props} basicTableRef={basicTableRef} />\n </>\n );\n };\n\n WithPagination.displayName = 'WithPagination';\n\n return WithPagination;\n}\n","import {ChartData} from '@reltio/components';\nimport {SavedSearchData} from '../types/SavedSearchData';\n\nexport const savedSearchDataToChartData = (data: SavedSearchData[]): ChartData[] => {\n return data.map(({uri, name, count}) => {\n return {\n value: count || 0,\n label: name || '',\n group: uri\n };\n });\n};\n\nexport const savedSearchDataToSearchState = ({uiState, uri}: SavedSearchData) => {\n if (uiState.version === '2.0') {\n return {...uiState, currentSavedSearchUri: uri};\n } else {\n return {...uiState.state, curSavedSearchUri: uri};\n }\n};\n","import React, {memo, useCallback, useMemo, useState} from 'react';\nimport {useDispatch} from 'react-redux';\nimport {find, pipe, propEq} from 'ramda';\nimport i18n from 'ui-i18n';\nimport {TableWithBars, useReloadFacet} from '@reltio/components';\nimport {ui} from '@reltio/mdm-module';\nimport {FilteredSavedSearchesFacetConfig} from '../../types/FilteredSavedSearchesFacetConfig';\nimport {useSavedSearchesRequest} from '../../hooks/useSavedSearchesRequest';\nimport {DEFAULT_ROWS_PER_PAGE, getRowsPerPageOptions} from './helpers';\nimport LayoutItemView from '../../components/LayoutItemView/LayoutItemView';\nimport LayoutItemHeader from '../../components/LayoutItemHeader/LayoutItemHeader';\nimport LayoutItemContent from '../../components/LayoutItemContent/LayoutItemContent';\nimport {withPagination} from '../../HOCs/withPagination';\nimport {savedSearchDataToChartData, savedSearchDataToSearchState} from '../../services/savedSearches';\n\ntype Props = {\n config: FilteredSavedSearchesFacetConfig;\n onToggleFullscreen: (id: string) => void;\n isUpdated?: boolean;\n isFullscreen: boolean;\n onRemove?: (id: string) => void;\n};\n\nconst TableWithPagination = withPagination(TableWithBars);\n\nconst FilteredSavedSearchesFacet = ({config, onToggleFullscreen, isUpdated, isFullscreen, onRemove}: Props) => {\n const {id, title, options, max = DEFAULT_ROWS_PER_PAGE} = config;\n\n const rowsPerPageOptions = useMemo(() => getRowsPerPageOptions(max), [max]);\n const [rowsPerPage, setRowsPerPage] = useState(max);\n const [page, setPage] = useState(0);\n const {data, state, reload, total} = useSavedSearchesRequest({\n options,\n max: rowsPerPage,\n offset: rowsPerPage * page\n });\n const chartData = useMemo(() => savedSearchDataToChartData(data), [data]);\n\n const dispatch = useDispatch();\n const onSSClick = useCallback(\n (uri: string) => {\n pipe(find(propEq('uri', uri)), savedSearchDataToSearchState, ui.actions.openSearch, dispatch)(data);\n },\n [dispatch, data]\n );\n\n useReloadFacet({state, reload});\n\n return (\n <LayoutItemView id={id}>\n <LayoutItemHeader\n title={title}\n onToggleFullscreen={onToggleFullscreen}\n isFullscreen={isFullscreen}\n isUpdated={isUpdated}\n onRefresh={reload}\n onRemove={onRemove}\n />\n <LayoutItemContent loadingState={state} onRefresh={reload} data={chartData}>\n {({data, width, height}) => {\n return (\n <TableWithPagination\n width={width}\n height={height}\n data={data}\n count={total}\n onChangePage={setPage}\n page={page}\n rowsPerPage={rowsPerPage}\n onChangeRowsPerPage={setRowsPerPage}\n rowsPerPageOptions={rowsPerPageOptions}\n options={{\n headers: [i18n.text('Name')],\n showValues: options?.countResults\n }}\n onItemClick={onSSClick}\n />\n );\n }}\n </LayoutItemContent>\n </LayoutItemView>\n );\n};\n\nexport default memo(FilteredSavedSearchesFacet);\n","import {\n addGlobalFilterToQuery,\n buildFilterQueryString,\n DashboardConfigFilter,\n FilterOptions,\n findAttributeTypeByUri,\n getSpecialAttrTypeByFieldName,\n isDateType,\n mapFilterValue,\n Metadata,\n parseTimestamp,\n SearchFilter,\n searchUriToAttrUri,\n wrapInArray\n} from '@reltio/mdm-sdk';\nimport {assoc, curry, evolve, includes, map, pipe, prop, when, __} from 'ramda';\n\nexport const configFilterToSearchFilter = when(\n pipe(prop('filter'), includes(__, [FilterOptions.IN_RANGE, FilterOptions.HAS_ALL])),\n evolve({values: wrapInArray})\n);\n\nexport const buildQuery = (\n filters: DashboardConfigFilter[],\n globalFilter?: string,\n searchByOv?: boolean,\n activityFilter?: string\n): string => {\n const query = pipe(\n map(configFilterToSearchFilter),\n buildFilterQueryString(),\n addGlobalFilterToQuery(globalFilter)\n )(filters);\n const result = query ? [`filter=${query}`] : [];\n if (searchByOv) {\n result.push('options=searchByOv');\n }\n if (activityFilter) {\n result.push(`activeness=${activityFilter}`);\n }\n return result.join('&');\n};\n\nexport const createNotEqualFilter = curry((fieldName: string, value: string) => ({\n filter: FilterOptions.NOT_EQUALS,\n values: [value],\n fieldName\n}));\n\nexport const convertSearchFilterToDashboardConfigFilter = (searchFilter: SearchFilter): DashboardConfigFilter => ({\n filter: searchFilter?.filter ?? FilterOptions.EQUALS,\n values: (searchFilter?.values ?? []) as string[],\n fieldName: searchFilter?.fieldName ?? ''\n});\nexport const createEntityTypeFilter = (entityTypeUri: string) => ({\n filter: FilterOptions.EQUALS,\n fieldName: 'type',\n values: [entityTypeUri]\n});\n\nexport const createFacetItemFilter = curry((fieldName: string, group: string) => ({\n filter: FilterOptions.EQUALS,\n values: [group],\n fieldName\n}));\n\nexport const convertFilterToFacetState = curry(\n (metadata: Metadata, entityType: string, filter: DashboardConfigFilter) => {\n const {fieldName} = filter;\n const isEntityAttributeFilter = /^(attributes|analyticsAttributes)/.test(fieldName);\n const attrType = isEntityAttributeFilter\n ? findAttributeTypeByUri(metadata, searchUriToAttrUri(fieldName, entityType))\n : getSpecialAttrTypeByFieldName(fieldName);\n\n return pipe(\n configFilterToSearchFilter,\n when(() => isEntityAttributeFilter, assoc('entityType', entityType)),\n when(() => isDateType(attrType.type), evolve({values: map(mapFilterValue(parseTimestamp))}))\n )(filter);\n }\n);\n\nexport const isEntityTypeFilter = ({filter, fieldName, values}: DashboardConfigFilter, entityTypeUri: string) =>\n filter === FilterOptions.EQUALS && fieldName === 'type' && values?.[0] === entityTypeUri;\n","import {\n AttributeType,\n attributeUriToSearchUri,\n buildLookupRecord,\n DashboardConfigFilter,\n formatDataTypeValue,\n getAttrDataTypeDefinition,\n getAttrTypeLookupCode,\n getEntityUriFromAttributeUri,\n getFacets,\n getRoleLabel,\n getTotals,\n isDateType,\n isEntityTypeUri,\n isLookupAttrType,\n isRoleAttrType,\n Metadata,\n parseTimestamp,\n resolveLookupsList\n} from '@reltio/mdm-sdk';\nimport {\n always,\n ascend,\n concat,\n curry,\n defaultTo,\n descend,\n evolve,\n ifElse,\n map,\n pipe,\n prop,\n propEq,\n reject,\n sortWith,\n when\n} from 'ramda';\nimport {\n buildQuery,\n configFilterToSearchFilter,\n convertFilterToFacetState,\n createEntityTypeFilter,\n createFacetItemFilter,\n createNotEqualFilter,\n isEntityTypeFilter\n} from './filters';\nimport {ChartData} from '@reltio/components';\nimport i18n from 'ui-i18n';\n\ntype FacetsRequest = {\n attribute: string;\n filters: DashboardConfigFilter[];\n globalFilter?: string;\n searchByOv?: boolean;\n activityFilter?: string;\n pageSize?: number;\n orderType?: string;\n};\n\nexport const requestFacets = ({\n attribute,\n filters,\n globalFilter,\n searchByOv,\n activityFilter,\n pageSize,\n orderType\n}: FacetsRequest): Promise<ChartData[]> => {\n const query = buildQuery(filters, globalFilter, searchByOv, activityFilter);\n const body = [\n {\n fieldName: attribute,\n pageNo: 1,\n orderType,\n pageSize\n }\n ];\n return getFacets({query, body}).then((response) => {\n const getFacetData = pipe(\n prop(attribute),\n defaultTo({}),\n Object.entries,\n map(([key, value]) => ({label: key, group: key, value})),\n sortWith([descend(prop('value')), ascend(prop('label'))])\n );\n return getFacetData(response);\n });\n};\n\nexport const resolveLookups = curry((lookupCode: string, data: ChartData[]) => {\n const lookupsToResolve = data.map(({label}) => ({codeValue: label, type: lookupCode}));\n return resolveLookupsList(lookupsToResolve).then((response) => {\n const codes = response.flatMap(buildLookupRecord(lookupCode)) as {lookupCode: string; value: string}[];\n return data.map((item) => {\n const code = codes.find(({lookupCode}) => lookupCode === item.label);\n return code ? {...item, label: code.value} : item;\n });\n });\n});\n\nconst buildFacetOthersFilters = curry((fieldName: string, data: ChartData[]) =>\n data.map(pipe(prop('group'), createNotEqualFilter(fieldName)))\n);\n\nconst OTHER_FACET_GROUP = 'Other';\n\nexport const requestOtherValues = curry(\n ({attribute, filters, globalFilter, searchByOv, activityFilter}: FacetsRequest, data: ChartData[]) => {\n const otherFilters = pipe(\n buildFacetOthersFilters(attribute),\n concat(filters),\n map(configFilterToSearchFilter)\n )(data);\n const searchOptions = searchByOv && 'searchByOv';\n return getTotals(otherFilters, {globalFilter, activityFilter, searchOptions}).then(({total}) => {\n return total > 0\n ? data.concat([{label: i18n.text('Other'), group: OTHER_FACET_GROUP, value: total}])\n : data;\n });\n }\n);\n\nconst resolveRoleLabel = (metadata: Metadata, roleName: string) =>\n getRoleLabel(metadata, 'configuration/roles/' + roleName);\n\nexport const localizeFacetValues = map((facet: ChartData) => ({\n ...facet,\n localizedValue: i18n.number(facet.value)\n}));\n\nexport const resolveFacetLabels = (metadata: Metadata, attrType: AttributeType) =>\n pipe(\n when(() => isLookupAttrType(attrType), resolveLookups(getAttrTypeLookupCode(attrType))),\n when(\n () => isRoleAttrType(attrType),\n map((facet) => ({...facet, label: resolveRoleLabel(metadata, facet.group)}))\n ),\n when(\n () => isDateType(attrType.type),\n map(\n evolve({\n label: pipe(\n parseTimestamp,\n formatDataTypeValue({dataTypeDefinition: getAttrDataTypeDefinition(attrType)})\n )\n })\n )\n )\n );\n\nexport const getFacetFieldName = when(isEntityTypeUri, attributeUriToSearchUri);\nconst getFacetEntityTypeUri = ifElse(isEntityTypeUri, getEntityUriFromAttributeUri, always(undefined));\n\nexport const getFiltersForFacet = (\n attributeUri: string,\n filters: DashboardConfigFilter[] = []\n): DashboardConfigFilter[] => {\n const entityTypeUri = getFacetEntityTypeUri(attributeUri);\n const hasEntityTypeFilter = filters.some((filter) => isEntityTypeFilter(filter, entityTypeUri));\n return entityTypeUri && !hasEntityTypeFilter ? [createEntityTypeFilter(entityTypeUri), ...filters] : filters;\n};\n\nexport const getFiltersForFacetItem = curry((attributeUri: string, data: ChartData[], group: string) => {\n const fieldName = getFacetFieldName(attributeUri);\n return group === OTHER_FACET_GROUP\n ? pipe(reject(propEq('group', OTHER_FACET_GROUP)), buildFacetOthersFilters(fieldName))(data)\n : [createFacetItemFilter(fieldName, group)];\n});\n\nexport const facetFiltersToSearchState = curry(\n (metadata: Metadata, attributeUri: string, filters: DashboardConfigFilter[]) => {\n const entityType = getFacetEntityTypeUri(attributeUri);\n return {\n facets: filters.map(convertFilterToFacetState(metadata, entityType))\n };\n }\n);\n","import React, {memo} from 'react';\nimport {useDispatch, useSelector} from 'react-redux';\nimport {ChartsFactory, useReloadFacet} from '@reltio/components';\nimport {useFacetRequest} from '../../hooks/useFacetRequest';\nimport {ChartTypes, DashboardFacetConfig} from '@reltio/mdm-sdk';\nimport LayoutItemView from '../../components/LayoutItemView/LayoutItemView';\nimport LayoutItemHeader from '../../components/LayoutItemHeader/LayoutItemHeader';\nimport LayoutItemContent from '../../components/LayoutItemContent/LayoutItemContent';\nimport mdmModule, {ui} from '@reltio/mdm-module';\nimport {concat, pipe} from 'ramda';\nimport {facetFiltersToSearchState, getFiltersForFacet, getFiltersForFacetItem} from '../../services/facets';\n\ntype DashboardFacetProps = {\n config: DashboardFacetConfig;\n onToggleFullscreen: (id: string) => void;\n isUpdated?: boolean;\n isFullscreen: boolean;\n onRemove?: (id: string) => void;\n};\n\nconst DashboardFacet = ({config, onToggleFullscreen, isUpdated, isFullscreen, onRemove}: DashboardFacetProps) => {\n const {id, title, filters, attributeUri, count, orderType, chartType, showOthers, ...options} = config;\n const pageSize = chartType === ChartTypes.MAP ? 100 : 8;\n const {data, state, reload} = useFacetRequest({\n filters,\n attributeUri,\n pageSize: count || pageSize,\n orderType,\n options: {showOthers}\n });\n\n useReloadFacet({state, reload});\n\n const dispatch = useDispatch();\n const metadata = useSelector(mdmModule.selectors.getMetadata);\n const onItemClick = pipe(\n getFiltersForFacetItem(attributeUri, data),\n concat(getFiltersForFacet(attributeUri, filters)),\n facetFiltersToSearchState(metadata, attributeUri),\n ui.actions.openSearch,\n dispatch\n );\n\n return (\n <LayoutItemView id={id}>\n <LayoutItemHeader\n title={title}\n onToggleFullscreen={onToggleFullscreen}\n isUpdated={isUpdated}\n isFullscreen={isFullscreen}\n onRefresh={reload}\n onRemove={onRemove}\n />\n <LayoutItemContent loadingState={state} onRefresh={reload} data={data}>\n {({data, width = 0, height = 0}) => {\n return ChartsFactory.build(chartType, {data, width, height, options, onItemClick});\n }}\n </LayoutItemContent>\n </LayoutItemView>\n );\n};\n\nexport default memo(DashboardFacet);\n","import {useCallback, useEffect, useState, useContext, useMemo} from 'react';\nimport {useSelector} from 'react-redux';\nimport mdmModule from '@reltio/mdm-module';\nimport {\n DashboardConfigFilter,\n findAttributeTypeByUri,\n getSpecialAttrTypeByFieldName,\n SearchFilter\n} from '@reltio/mdm-sdk';\nimport {always, andThen, otherwise, pipe, when, unless} from 'ramda';\nimport {\n getFacetFieldName,\n getFiltersForFacet,\n requestFacets,\n requestOtherValues,\n resolveFacetLabels,\n localizeFacetValues\n} from '../services/facets';\nimport {ChartData, RequestStates, SearchFiltersContext} from '@reltio/components';\nimport {GlobalSearchRequestOptions, SearchOptions} from '../types/SearchOptions';\nimport {convertSearchFilterToDashboardConfigFilter} from '../services/filters';\n\ntype Props = {\n filters: DashboardConfigFilter[];\n attributeUri: string;\n pageSize: number;\n orderType?: string;\n options?: {\n showOthers: boolean;\n };\n};\n\nexport const useFacetRequest = ({\n filters: facetFilters,\n attributeUri,\n pageSize,\n orderType = 'reversedCount',\n options\n}: Props) => {\n const [data, setData] = useState<ChartData[]>([]);\n const [requestState, setRequestState] = useState<RequestStates>(RequestStates.INIT);\n const searchFilters = useContext<SearchFilter[]>(SearchFiltersContext);\n const facetAndSpecialFilters = useMemo(\n () => searchFilters.map(convertSearchFilterToDashboardConfigFilter).concat(facetFilters || []),\n [searchFilters, facetFilters]\n );\n const metadata = useSelector(mdmModule.selectors.getMetadata);\n const {globalFilter, activityFilter}: GlobalSearchRequestOptions = useSelector(\n mdmModule.selectors.getGlobalSearchRequestOptions\n );\n const attributePresentations = useSelector(mdmModule.selectors.getAttributePresentations);\n const hasAttrPresentation = !!attributePresentations?.[attributeUri];\n const searchOptions: SearchOptions = useSelector(mdmModule.selectors.getSearchOptions);\n const searchByOv: boolean = searchOptions?.searchByOv;\n const showOthers: boolean = options?.showOthers;\n const onError = (error) => {\n console.error(error); // eslint-disable-line\n setRequestState(RequestStates.ERROR);\n setData([]);\n };\n const loadData = useCallback(() => {\n setRequestState(RequestStates.LOADING);\n const filters = getFiltersForFacet(attributeUri, facetAndSpecialFilters);\n const fieldName = getFacetFieldName(attributeUri);\n const attrType = getSpecialAttrTypeByFieldName(fieldName) || findAttributeTypeByUri(metadata, attributeUri);\n const onRequestFinished = (data: ChartData[]) => {\n setRequestState(RequestStates.LOADED);\n setData(data);\n };\n\n if (!attrType) {\n onError('Configuration is incorrect');\n return;\n }\n\n const getData = pipe(\n requestFacets,\n andThen(resolveFacetLabels(metadata, attrType)),\n andThen(unless(always(hasAttrPresentation), localizeFacetValues)),\n andThen(\n when(\n always(showOthers),\n requestOtherValues({attribute: fieldName, filters, globalFilter, searchByOv, activityFilter})\n )\n ),\n andThen(onRequestFinished),\n otherwise(onError)\n );\n\n getData({attribute: fieldName, filters, globalFilter, searchByOv, activityFilter, pageSize, orderType});\n }, [\n setRequestState,\n attributeUri,\n metadata,\n showOthers,\n facetAndSpecialFilters,\n globalFilter,\n searchByOv,\n activityFilter,\n pageSize,\n orderType,\n hasAttrPresentation\n ]);\n\n const refreshAction = () => {\n try {\n loadData();\n } catch (e) {\n onError(e);\n }\n };\n\n useEffect(() => {\n refreshAction();\n }, [loadData]);\n\n return {state: requestState, data, reload: refreshAction};\n};\n","import {makeStyles} from '@material-ui/core/styles';\n\nconst textOverflow = {\n content: '\"\"',\n position: 'absolute',\n right: 0,\n top: 0,\n width: '40px',\n height: '100%',\n background: 'linear-gradient(to right, rgba(255, 255, 255, 0.2), #fff 100%)',\n pointerEvents: 'none'\n};\n\nexport const useStyles = makeStyles((theme) => ({\n headCell: {\n display: 'flex',\n alignItems: 'center',\n height: '100%',\n '&>div': {\n padding: '0 16px'\n }\n },\n headLabel: {\n color: theme.palette.text.primary,\n fontSize: '12px',\n fontWeight: 500,\n lineHeight: '16px',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n '&:after': textOverflow\n },\n entityLabel: {\n color: theme.palette.primary.main,\n textDecoration: 'none',\n fontSize: '13px',\n fontWeight: 500,\n lineHeight: '15px',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n display: 'flex',\n alignItems: 'center',\n height: '100%',\n padding: '0 16px',\n '&:after': textOverflow\n }\n}));\n","import React from 'react';\nimport classnames from 'classnames';\nimport DefaultHeadCellRenderer from 'react-components/dist/Table/DefaultHeadCellRenderer/DefaultHeadCellRenderer';\nimport {ExpandedValueTooltip} from '@reltio/components';\nimport {useStyles} from './styles';\n\ntype HeadCellRendererProps = {\n className?: string;\n headCellData: {\n label: string;\n };\n};\n\nconst HeadCellRenderer = ({className, headCellData, ...otherProps}: HeadCellRendererProps) => {\n const styles = useStyles();\n\n return (\n <div className={classnames(styles.headCell, className)}>\n <DefaultHeadCellRenderer\n {...otherProps}\n headCellData={{\n ...headCellData,\n label: (\n <ExpandedValueTooltip value={headCellData.label}>\n <div className={styles.headLabel}>{headCellData.label}</div>\n </ExpandedValueTooltip>\n )\n }}\n />\n </div>\n );\n};\n\nexport default HeadCellRenderer;\n","import React from 'react';\nimport {EntityUriLink, ExpandedValueTooltip} from '@reltio/components';\nimport {EntityData} from '../../../types/EntityData';\nimport {getLabel, getEntityUriForLink} from '@reltio/mdm-sdk';\nimport {useStyles} from './styles';\n\ntype Props = {\n value: string;\n rowValue: EntityData;\n};\n\nconst EntityLabelRenderer = ({value, rowValue: entity}: Props) => {\n const styles = useStyles();\n const label = getLabel(value);\n return (\n <ExpandedValueTooltip value={label}>\n <EntityUriLink value={getEntityUriForLink(entity)} className={styles.entityLabel}>\n {label}\n </EntityUriLink>\n </ExpandedValueTooltip>\n );\n};\n\nexport default EntityLabelRenderer;\n","import {makeStyles} from '@material-ui/core/styles';\n\ntype Dimensions = {\n width: number | string;\n height: number | string;\n};\n\nexport const useStyles = makeStyles({\n tableContainer: ({width, height}: Dimensions) => ({\n height: height,\n width: width,\n display: 'flex',\n flexDirection: 'column'\n }),\n cellBorder: {\n borderLeft: 'none',\n borderRight: 'none'\n }\n});\n","import React, {memo, useMemo, useState} from 'react';\nimport {useReloadFacet} from '@reltio/components';\nimport {FilteredEntitiesFacetConfig} from '../../types/FilteredEntitiesFacetConfig';\nimport {useFilteredEntitiesRequest} from '../../hooks/useFilteredEntitiesRequest';\nimport {getRowsPerPageOptions, DEFAULT_ROWS_PER_PAGE} from './helpers';\nimport LayoutItemView from '../../components/LayoutItemView/LayoutItemView';\nimport LayoutItemHeader from '../../components/LayoutItemHeader/LayoutItemHeader';\nimport LayoutItemContent from '../../components/LayoutItemContent/LayoutItemContent';\nimport {withPagination} from '../../HOCs/withPagination';\nimport EntityTable from '../../components/EntityTable/EntityTable';\n\ntype Props = {\n config: FilteredEntitiesFacetConfig;\n onToggleFullscreen: (id: string) => void;\n isUpdated?: boolean;\n isFullscreen: boolean;\n onRemove?: (id: string) => void;\n};\n\nconst TableWithPagination = withPagination(EntityTable);\n\nconst FilteredEntitiesViewFacet = ({config, onToggleFullscreen, isUpdated, isFullscreen, onRemove}: Props) => {\n const {id, title, filters, max = DEFAULT_ROWS_PER_PAGE} = config;\n const rowsPerPageOptions = useMemo(() => getRowsPerPageOptions(max), [max]);\n const [rowsPerPage, setRowsPerPage] = useState(max);\n const [page, setPage] = useState(0);\n\n const {data, state, reload, total} = useFilteredEntitiesRequest({\n filters,\n max: rowsPerPage,\n offset: rowsPerPage * page\n });\n\n useReloadFacet({state, reload});\n\n return (\n <LayoutItemView id={id}>\n <LayoutItemHeader\n title={title}\n onToggleFullscreen={onToggleFullscreen}\n isUpdated={isUpdated}\n isFullscreen={isFullscreen}\n onRefresh={reload}\n onRemove={onRemove}\n />\n <LayoutItemContent loadingState={state} onRefresh={reload} data={data}>\n {({data, width, height}) => {\n return (\n <TableWithPagination\n height={height}\n onChangePage={setPage}\n page={page}\n rowsPerPage={rowsPerPage}\n count={total}\n onChangeRowsPerPage={setRowsPerPage}\n rowsPerPageOptions={rowsPerPageOptions}\n width={width}\n data={data}\n />\n );\n }}\n </LayoutItemContent>\n </LayoutItemView>\n );\n};\n\nexport default memo(FilteredEntitiesViewFacet);\n","import React from 'react';\nimport {BasicTable} from '@reltio/components';\nimport HeadCellRenderer from './cell-renderers/HeadCellRenderer';\nimport EntityLabelRenderer from './cell-renderers/EntityLabelRenderer';\nimport {EntityData} from '../../types/EntityData';\nimport i18n from 'ui-i18n';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n width: number;\n height: number;\n basicTableRef?: React.MutableRefObject<any> | null;\n data: EntityData[];\n};\n\nconst EntityTable = ({height, width, basicTableRef, data}: Props) => {\n const styles = useStyles({width, height});\n const headData = [\n {\n id: 'label',\n label: i18n.text('Entity'),\n resizable: false,\n headCellRenderer: HeadCellRenderer,\n rowCellValueRenderer: EntityLabelRenderer,\n initialWidth: width\n }\n ];\n const tableClasses = {\n cellBorder: styles.cellBorder\n };\n\n return (\n <div className={styles.tableContainer}>\n <BasicTable\n columnsData={headData}\n rowsData={data}\n headRowHeight={48}\n getRowCellHeight={null}\n classes={tableClasses}\n defaultColumnWidth={100}\n defaultColumnMinWidth={100}\n ref={basicTableRef}\n />\n </div>\n );\n};\n\nexport default EntityTable;\n","import {useCallback, useContext, useEffect, useMemo, useState} from 'react';\nimport {RequestStates, SearchFiltersContext} from '@reltio/components';\nimport {DashboardConfigFilter, getFilteredEntities, getTotals, SearchFilter} from '@reltio/mdm-sdk';\nimport {EntityData} from '../types/EntityData';\nimport {convertSearchFilterToDashboardConfigFilter} from '../services/filters';\n\ntype Props = {\n filters: DashboardConfigFilter[];\n offset: number;\n max: number;\n};\n\nexport const useFilteredEntitiesRequest = ({filters, max, offset}: Props) => {\n const [data, setData] = useState<EntityData[]>([]);\n const [total, setTotal] = useState<number>(0);\n const [requestState, setRequestState] = useState<RequestStates>(RequestStates.INIT);\n\n const searchFilters = useContext<SearchFilter[]>(SearchFiltersContext);\n const allFilters = useMemo(\n () => searchFilters.map(convertSearchFilterToDashboardConfigFilter).concat(filters || []),\n [searchFilters, filters]\n );\n\n const onError = (error) => {\n console.error(error); // eslint-disable-line\n setRequestState(RequestStates.ERROR);\n setData([]);\n setTotal(0);\n };\n\n const loadData = useCallback(() => {\n setRequestState(RequestStates.LOADING);\n\n Promise.all([getFilteredEntities(allFilters, {max, offset}), getTotals(allFilters, {max, offset})])\n .then((results) => {\n const [entities, {total}] = results;\n setData(entities || []);\n setTotal(total);\n setRequestState(RequestStates.LOADED);\n })\n .catch(onError);\n }, [allFilters, max, offset]);\n\n const refreshAction = () => {\n try {\n loadData();\n } catch (e) {\n onError(e);\n }\n };\n\n useEffect(() => {\n refreshAction();\n }, [loadData]);\n\n return {state: requestState, data, reload: refreshAction, total};\n};\n","export type Period = [number, string] | [Date, Date];\n\nexport enum PeriodStep {\n HOUR = 'hour',\n DAY = 'day'\n}\n","import {Period, PeriodStep} from '../types/Period';\nimport moment from 'moment';\nimport {ifElse, pipe} from 'ramda';\n\nconst periodToDuration = ([start, end]) => moment.duration(+start, end as moment.DurationInputArg2);\n\nconst isDurationPeriod = (period: Period) => {\n const duration = periodToDuration(period);\n return duration.isValid() && duration.valueOf() > 0;\n};\n\nconst getDurationInterval = ([amount, interval]) => {\n const now = moment().valueOf();\n return [moment(now).endOf(interval).subtract(amount, interval).valueOf() + 1, now];\n};\n\nconst getDateInterval = ([start, end]) => [moment(start).valueOf(), moment(end).endOf('date').valueOf()];\n\nconst periodToTimestampInterval = ifElse(isDurationPeriod, getDurationInterval, getDateInterval);\n\nconst getStepForTimestampInterval = ([startTime, endTime]) => {\n return endTime - startTime > +moment.duration(1, 'day') ? PeriodStep.DAY : PeriodStep.HOUR;\n};\n\nconst getStepForPeriod = pipe(periodToTimestampInterval, getStepForTimestampInterval);\n\nexport {periodToTimestampInterval, isDurationPeriod, getStepForPeriod};\n","import i18n from 'ui-i18n';\nimport {adjust, is, join, pipe, split, when} from 'ramda';\nimport {isDurationPeriod} from '../../services/period';\nimport {DateRangeValues} from '@reltio/mdm-sdk';\n\nconst DURATION_SEPARATOR = '_';\n\nconst DATE_RANGE_OPTIONS = [\n {\n value: [24, 'hours'].join(DURATION_SEPARATOR),\n get label() {\n return i18n.text('Last 24 hours');\n }\n },\n {\n value: [7, 'days'].join(DURATION_SEPARATOR),\n get label() {\n return i18n.text('Last 7 days');\n }\n },\n {\n value: [30, 'days'].join(DURATION_SEPARATOR),\n get label() {\n return i18n.text('Last 30 days');\n }\n },\n {\n value: DateRangeValues.PICK_DATE,\n get label() {\n return i18n.text('Pick date');\n }\n }\n];\n\nconst periodToDateRangeValues = when(isDurationPeriod, join(DURATION_SEPARATOR));\n\nconst dateRangeValuesToPeriod = when(is(String), pipe(split(DURATION_SEPARATOR), adjust(0, parseInt)));\n\nexport {DATE_RANGE_OPTIONS, periodToDateRangeValues, dateRangeValuesToPeriod};\n","import React from 'react';\nimport {DateRangeEditor, noop} from '@reltio/components';\nimport {Period} from '../../types/Period';\nimport {map, pipe} from 'ramda';\nimport {DATE_RANGE_OPTIONS, dateRangeValuesToPeriod, periodToDateRangeValues} from './helpers';\nimport {DataTypes} from '@reltio/mdm-sdk';\nimport {periodToTimestampInterval} from '../../services/period';\n\ntype Props = {\n value?: Period;\n onChange?: (value: Period) => void;\n className?: string;\n};\n\nconst PeriodSelector = ({value, onChange = noop, className}: Props) => {\n return (\n <DateRangeEditor\n label={null}\n values={value && periodToDateRangeValues(value)}\n options={DATE_RANGE_OPTIONS}\n getValuesDateRange={pipe(\n dateRangeValuesToPeriod,\n periodToTimestampInterval,\n map((timestamp) => new Date(timestamp))\n )}\n onChange={pipe(dateRangeValuesToPeriod, onChange)}\n className={className}\n dataTypeDefinition={{\n type: DataTypes.TYPE_LOCAL_DATE\n }}\n />\n );\n};\n\nexport default PeriodSelector;\n","import {CartesianGridProps, LegendProps, LineProps, TooltipProps, XAxisProps, YAxisProps} from 'recharts';\nimport {formatNumberAsMetric} from '@reltio/mdm-sdk';\n\ntype StatsChartSettings = {\n xAxis: XAxisProps;\n yAxis: YAxisProps;\n cartesianGrid: CartesianGridProps;\n tooltip: TooltipProps;\n line: LineProps;\n legend: LegendProps;\n};\n\nconst getStatsChartSettings = (): StatsChartSettings => {\n return {\n xAxis: {\n type: 'category',\n dataKey: 'term',\n tick: {\n fill: '#000',\n opacity: '0.54'\n },\n angle: 0,\n textAnchor: 'middle',\n stroke: '#666',\n allowDuplicatedCategory: false\n },\n yAxis: {\n dataKey: '',\n type: 'number',\n tick: {\n fill: '#000',\n opacity: '0.54',\n width: undefined\n },\n stroke: '#666',\n tickFormatter: formatNumberAsMetric,\n width: 50\n },\n cartesianGrid: {\n strokeDasharray: '3 3',\n stroke: '#666',\n strokeOpacity: '0.4'\n },\n tooltip: {\n cursor: {\n fill: '#000',\n opacity: '0.1'\n }\n },\n line: {\n type: 'linear',\n dataKey: 'count',\n strokeWidth: 3\n },\n legend: {\n wrapperStyle: {\n display: 'flex',\n overflowY: 'auto',\n maxHeight: '25%'\n }\n }\n };\n};\n\nexport default getStatsChartSettings;\n","import {getEntitiesStats} from '@reltio/mdm-sdk';\nimport {Period, PeriodStep} from '../types/Period';\nimport {\n append,\n chain,\n curry,\n evolve,\n groupBy,\n last,\n map,\n pipe,\n pluck,\n prepend,\n prop,\n propEq,\n propOr,\n sum,\n toPairs\n} from 'ramda';\nimport i18n from 'ui-i18n';\nimport {StatsData, StatsEventData} from '../types/StatsData';\nimport moment from 'moment';\nimport {periodToTimestampInterval} from './period';\nimport {AxisDomain} from 'recharts';\n\nconst StatsEvents = [\n {\n id: 'created',\n types: ['CREATED'],\n get label() {\n return i18n.text('New');\n },\n color: '#4BAFFF'\n },\n {\n id: 'updated',\n types: ['UPDATED'],\n get label() {\n return i18n.text('Updated');\n },\n color: '#0072CE'\n },\n {\n id: 'deleted',\n types: ['DELETED'],\n get label() {\n return i18n.text('Deleted');\n },\n color: '#F085F2'\n },\n {\n id: 'matched',\n types: ['POTENTIAL_MATCHES_FOUND'],\n get label() {\n return i18n.text('Matched');\n },\n color: '#C4CE00'\n },\n {\n id: 'autoMerged',\n types: ['MERGED', 'MERGED_ON_THE_FLY'],\n get label() {\n return i18n.text('Auto-merged');\n },\n color: '#CE5C00'\n },\n {\n id: 'mergedManually',\n types: ['MERGED_MANUALLY'],\n get label() {\n return i18n.text('Manually merged');\n },\n color: '#9E7ED3'\n },\n {\n id: 'unmerged',\n types: ['SPLITTED'],\n get label() {\n return i18n.text('Unmerged');\n },\n color: '#40CFBB'\n },\n {\n id: 'notMatch',\n types: ['NOT_MATCHES_SET'],\n get label() {\n return i18n.text('Not a match');\n },\n color: '#F97061'\n }\n];\n\nconst getStatsEventById = (event: string) => StatsEvents.find(propEq('id', event));\nconst getStatsEventName = pipe(getStatsEventById, propOr('', 'label'));\nconst getStatsEventColor = pipe(getStatsEventById, prop('color'));\n\nconst requestStats = (period: Period): Promise<StatsData[]> => {\n const [startTime, endTime] = periodToTimestampInterval(period);\n\n const getStats = ({facet, types}) =>\n getEntitiesStats({facet, startTime, endTime, types}).then(({facets = {}, total = 0}) => ({\n total,\n data: facets[facet]\n }));\n\n const getEvents = () => {\n const allTypes = chain(prop('types'), StatsEvents);\n const processStats = pipe(propOr([], 'data'), pluck('term'));\n return getStats({facet: 'type', types: allTypes}).then((stats) => processStats(stats));\n };\n\n const getEventsData = (presentTypes) => {\n const periodFrame = pipe(\n map(\n evolve({\n term: (term) => moment.utc(term).valueOf()\n })\n ),\n prepend({\n term: startTime,\n count: 0\n }),\n append({\n term: endTime,\n count: 0\n })\n );\n const isEventPresent = (types) => types.some((type) => presentTypes.includes(type));\n\n return Promise.all(\n StatsEvents.map(({types, id}) =>\n (isEventPresent(types)\n ? getStats({facet: 'hour', types})\n : Promise.resolve({total: 0, data: []})\n ).then(({total, data}) => ({total, data: periodFrame(data), event: id}))\n )\n );\n };\n\n return getEvents().then((events) => (events.length > 0 ? getEventsData(events) : []));\n};\n\nconst groupEventsData = curry((step: PeriodStep, eventData: StatsEventData[]) => {\n return pipe(\n groupBy(({term}) => moment(term).startOf(step)),\n toPairs,\n map(([date, data]) => ({\n term: moment(date).valueOf(),\n count: sum(pluck('count', data))\n }))\n )(eventData);\n});\n\nconst interpolateEventsData = curry((step: PeriodStep, eventData: StatsEventData[]) => {\n const [head, ...other] = eventData;\n return other.reduce(\n (acc, item) => {\n const stepTime = +moment.duration(1, step);\n let nextTerm = last(acc).term + stepTime;\n const interpolatedItems = [];\n while (nextTerm < item.term) {\n interpolatedItems.push({\n term: nextTerm,\n count: 0\n });\n nextTerm += stepTime;\n }\n return acc.concat(interpolatedItems, item);\n },\n [head]\n );\n});\n\nconst calibrateStatsData = curry((step: PeriodStep, statsData: StatsData[]) => {\n return statsData.map(\n evolve({\n data: pipe(groupEventsData(step), interpolateEventsData(step))\n })\n );\n});\n\nconst getChartDomain = (chartData: StatsData[], tickCount: number): [AxisDomain, AxisDomain] => {\n const counts = chain(pipe(prop('data'), pluck('count')))(chartData);\n const min = Math.min(...counts);\n const max = Math.max(...counts);\n const difference = Math.abs(max - min);\n\n return difference < tickCount ? [0, tickCount - 1] : [0, 'auto'];\n};\n\nexport {StatsEvents, requestStats, getStatsEventName, getStatsEventColor, calibrateStatsData, getChartDomain};\n","import React, {SVGProps} from 'react';\nimport {PeriodStep} from '../../../types/Period';\nimport {always, cond, equals} from 'ramda';\nimport i18n from 'ui-i18n';\n\nconst getStepValueFormat = cond([\n [equals(PeriodStep.HOUR), always('LT')],\n [equals(PeriodStep.DAY), always('MMM D')]\n]);\n\ntype AxisTickProps = SVGProps<SVGElement> & {\n step: PeriodStep;\n payload?: {\n value: string;\n };\n};\n\nconst CustomAxisTick = ({x, y, payload, step}: AxisTickProps) => {\n return (\n <g transform={`translate(${x},${y})`}>\n <text x={0} y={0} dy={16} textAnchor=\"middle\" fill=\"#666\">\n {i18n.date(payload?.value, getStepValueFormat(step))}\n </text>\n </g>\n );\n};\n\nexport default CustomAxisTick;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n tooltipWrapper: {\n borderRadius: '4px',\n background: 'rgba(0, 0, 0, 0.54)',\n padding: '6px 8px 7px 8px',\n color: '#FFFFFF',\n '& p': {\n fontSize: '12px',\n lineHeight: '18px',\n padding: 0,\n margin: 0\n }\n },\n tooltipTitle: {\n fontWeight: 500\n },\n tooltipItemColor: {\n width: 8,\n height: 8,\n marginRight: 10,\n display: 'inline-block'\n },\n legend: {\n display: 'flex',\n flexWrap: 'wrap',\n marginLeft: '20px',\n marginTop: '10px'\n },\n legendItem: {\n display: 'flex',\n alignItems: 'baseline',\n '&:not(:last-child)': {\n marginRight: 10\n },\n width: '140px',\n marginBottom: '5px',\n fontSize: '13px',\n color: 'rgba(0, 0, 0, 0.54)'\n },\n legendItemColor: {\n width: 12,\n height: 12,\n marginRight: 10,\n flexShrink: 0,\n boxSizing: 'border-box'\n },\n legendItemValue: {\n color: 'rgba(0, 0, 0, 0.87)',\n marginLeft: '10px'\n }\n});\n","import React from 'react';\nimport {TooltipProps} from 'recharts';\nimport {PeriodStep} from '../../../types/Period';\nimport i18n from 'ui-i18n';\nimport {always, cond, equals} from 'ramda';\nimport {getStatsEventName} from '../../../services/stats';\n\nimport {useStyles} from './styles';\n\ntype Props = TooltipProps & {\n step: PeriodStep;\n events: string[];\n};\n\nconst getStepValueFormat = cond([\n [equals(PeriodStep.HOUR), always('LT MMM D')],\n [equals(PeriodStep.DAY), always('ll')]\n]);\n\nconst CustomTooltip = ({active, payload, label, step, events}: Props) => {\n const styles = useStyles();\n return (\n active && (\n <div className={styles.tooltipWrapper}>\n <p className={styles.tooltipTitle}>{i18n.date(label, getStepValueFormat(step))}</p>\n {payload\n .filter(({name}) => events.includes(name))\n .map(({color, name, value}) => {\n return (\n <p key={name}>\n <span style={{background: color}} className={styles.tooltipItemColor} />\n {`${getStatsEventName(name)}: ${value}`}\n </p>\n );\n })}\n </div>\n )\n );\n};\n\nexport default CustomTooltip;\n","import React from 'react';\nimport {LegendProps} from 'recharts';\nimport {getStatsEventName} from '../../../services/stats';\nimport {Tooltip as Tooltip} from '@material-ui/core';\nimport i18n from 'ui-i18n';\n\nimport {useStyles} from './styles';\n\ntype Props = LegendProps & {\n selectedItems: string[];\n};\n\nconst CustomLegend = ({payload, selectedItems, onClick}: Props) => {\n const styles = useStyles();\n return (\n <div className={styles.legend}>\n {payload.map(({id, color, value}) => {\n const isSelected = selectedItems.includes(id);\n return (\n <div key={id} className={styles.legendItem}>\n <Tooltip title={isSelected ? i18n.text('Hide') : i18n.text('Show')}>\n <div\n style={isSelected ? {background: color} : {border: `${color} 1px solid`}}\n className={styles.legendItemColor}\n onClick={() => onClick(id)}\n />\n </Tooltip>\n {getStatsEventName(id)}\n <span className={styles.legendItemValue}>{value}</span>\n </div>\n );\n })}\n </div>\n );\n};\n\nexport default CustomLegend;\n","import React, {useMemo, useState} from 'react';\nimport {CartesianGrid, Legend, Line, LineChart, Tooltip, XAxis, YAxis} from 'recharts';\nimport {append, ifElse, includes, pluck, without} from 'ramda';\nimport getStatsChartSettings from './getStatsChartSettings';\nimport {PeriodStep} from '../../types/Period';\nimport {StatsData} from '../../types/StatsData';\nimport {calibrateStatsData, getStatsEventColor, getChartDomain} from '../../services/stats';\nimport CustomAxisTick from './customized/CustomAxisTick';\nimport CustomTooltip from './customized/CustomTooltip';\nimport CustomLegend from './customized/CustomLegend';\n\ntype Props = {\n data: StatsData[];\n width: number;\n height: number;\n step: PeriodStep;\n};\n\nconst StatsChart = ({data, width, height, step}: Props) => {\n const [selectedEvents, setSelectedEvents] = useState<string[]>(pluck('event', data));\n const toggleEvent = (event) => {\n setSelectedEvents(ifElse(includes(event), without([event]), append(event)));\n };\n\n const [tooltipEvent, setTooltipEvent] = useState<string | null>(null);\n\n const tickCount = 8;\n const {cartesianGrid, tooltip, xAxis, yAxis, line, legend} = getStatsChartSettings();\n const chartData = useMemo(() => calibrateStatsData(step, data), [step, data]);\n const domain = useMemo(() => getChartDomain(chartData, tickCount), [chartData]);\n\n return (\n <LineChart width={width} height={height}>\n <CartesianGrid {...cartesianGrid} />\n <XAxis {...xAxis} tick={<CustomAxisTick step={step} />} />\n <YAxis {...yAxis} tickCount={tickCount} domain={domain} />\n {chartData.map(({event, data}) => {\n const isSelected = selectedEvents.includes(event);\n return (\n <Line\n key={event}\n stroke={getStatsEventColor(event)}\n name={event}\n data={data}\n dot={isSelected && {r: 5, strokeWidth: 2}}\n activeDot={\n isSelected && {\n r: 5,\n strokeWidth: 2,\n onMouseEnter: () => setTooltipEvent(event),\n onMouseLeave: () => setTooltipEvent(null)\n }\n }\n strokeOpacity={isSelected ? 1 : 0}\n {...line}\n />\n );\n })}\n <Legend\n content={<CustomLegend selectedItems={selectedEvents} onClick={toggleEvent} />}\n payload={chartData.map(({event, total}) => ({\n id: event,\n type: 'square',\n color: getStatsEventColor(event),\n value: total\n }))}\n {...legend}\n />\n <Tooltip\n {...tooltip}\n content={<CustomTooltip step={step} events={tooltipEvent ? [tooltipEvent] : selectedEvents} />}\n />\n </LineChart>\n );\n};\n\nexport default StatsChart;\n","import {useCallback, useEffect, useState} from 'react';\nimport {andThen, otherwise, pipe} from 'ramda';\nimport {requestStats} from '../services/stats';\nimport {StatsData} from '../types/StatsData';\nimport {Period} from '../types/Period';\nimport {useSafePromise, RequestStates} from '@reltio/components';\n\nexport const useStatsRequest = (period: Period) => {\n const [data, setData] = useState<StatsData[]>([]);\n const [requestState, setRequestState] = useState<RequestStates>(RequestStates.INIT);\n const safePromise = useSafePromise();\n\n const onError = (error) => {\n console.error(error); // eslint-disable-line\n setRequestState(RequestStates.ERROR);\n setData([]);\n };\n const loadData = useCallback(() => {\n setRequestState(RequestStates.LOADING);\n const onRequestFinished = (data: StatsData[]) => {\n setRequestState(RequestStates.LOADED);\n setData(data);\n };\n\n const getData = pipe(requestStats, safePromise, andThen(onRequestFinished), otherwise(onError));\n getData(period);\n }, [...period]); // eslint-disable-line\n\n const refreshAction = () => {\n try {\n loadData();\n } catch (e) {\n onError(e);\n }\n };\n\n useEffect(() => {\n refreshAction();\n }, [loadData]);\n\n return {state: requestState, data, reload: refreshAction};\n};\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n periodSelector: {\n position: 'relative',\n margin: '0 6px 0 0',\n flexBasis: '220px',\n flexShrink: 1,\n '& input[type=\"text\"]': {\n padding: '0 0 0 8px'\n }\n }\n});\n","import React, {memo, useState} from 'react';\nimport {DashboardView} from '@reltio/mdm-sdk';\nimport {useReloadFacet} from '@reltio/components';\nimport LayoutItemView from '../../components/LayoutItemView/LayoutItemView';\nimport LayoutItemHeader from '../../components/LayoutItemHeader/LayoutItemHeader';\nimport LayoutItemContent from '../../components/LayoutItemContent/LayoutItemContent';\nimport PeriodSelector from '../../components/PeriodSelector/PeriodSelector';\nimport {Period} from '../../types/Period';\nimport StatsChart from '../../components/StatsChart/StatsChart';\nimport {useStatsRequest} from '../../hooks/useStatsRequest';\nimport {getStepForPeriod} from '../../services/period';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n config: DashboardView;\n onToggleFullscreen: (id: string) => void;\n isUpdated?: boolean;\n isFullscreen: boolean;\n onRemove?: (id: string) => void;\n};\n\nconst ProfileStatsFacet = ({config, onToggleFullscreen, isUpdated, isFullscreen, onRemove}: Props) => {\n const styles = useStyles();\n\n const {id, title} = config;\n const [period, setPeriod] = useState<Period>([7, 'days']);\n const {state, data, reload} = useStatsRequest(period);\n\n useReloadFacet({state, reload});\n\n return (\n <LayoutItemView id={id}>\n <LayoutItemHeader\n title={title}\n onToggleFullscreen={onToggleFullscreen}\n isUpdated={isUpdated}\n isFullscreen={isFullscreen}\n onRefresh={reload}\n onRemove={onRemove}\n >\n <PeriodSelector value={period} onChange={setPeriod} className={styles.periodSelector} />\n </LayoutItemHeader>\n <LayoutItemContent loadingState={state} onRefresh={reload} data={data}>\n {({data, width, height}) => {\n return <StatsChart data={data} width={width} height={height} step={getStepForPeriod(period)} />;\n }}\n </LayoutItemContent>\n </LayoutItemView>\n );\n};\n\nexport default memo(ProfileStatsFacet);\n","import {\n getEntityType,\n getInheritancePath,\n getLastUriPart,\n isAvailableEntityType,\n Metadata,\n wrapInArrayIfNeeded\n} from '@reltio/mdm-sdk';\nimport {curry, filter, last, map, pipe, prop, either} from 'ramda';\nimport {ChartData} from '@reltio/components';\nimport {createEntityTypeFilter} from './filters';\n\nconst typeNameToUri = (typeName: string): string => `configuration/entityTypes/${typeName}`;\nconst getUriFromTypeFacet = pipe(prop('group'), typeNameToUri);\n\nexport const resolveTypeFacetsLabels = curry((metadata: Metadata, typeFacets: ChartData[]): ChartData[] => {\n return typeFacets.map((facet) => {\n const typeUri = getUriFromTypeFacet(facet);\n return {\n ...facet,\n label: getEntityType(metadata, typeUri).label\n };\n });\n});\n\nexport const getParentEntityTypeFacets = curry((metadata: Metadata, typeFacets: ChartData[]): ChartData[] => {\n const getParentTypeForFacet = pipe(\n getUriFromTypeFacet,\n getInheritancePath(metadata),\n map(getEntityType(metadata)),\n filter(isAvailableEntityType),\n last\n );\n const parentsMap = typeFacets.reduce((acc, facet) => {\n const parentType = getParentTypeForFacet(facet);\n if (parentType) {\n const parentName = getLastUriPart(parentType.uri);\n return {\n ...acc,\n [parentName]: (acc[parentName] || 0) + facet.value\n };\n } else {\n return acc;\n }\n }, {});\n return Object.entries(parentsMap).map(([key, value]) => ({\n group: key,\n label: key,\n value\n })) as ChartData[];\n});\n\nexport const entityTypeNameToFilters = pipe(typeNameToUri, createEntityTypeFilter, wrapInArrayIfNeeded);\n\nconst getEntityTypeName = pipe(prop('uri'), getLastUriPart);\n\nconst findTypeFacetByName = curry(\n (typeFacets: ChartData[], name: string): ChartData => {\n return typeFacets.find((facet) => facet.group === name);\n }\n);\n\nconst createEmptyEntityTypeFacet = (name: string): ChartData => ({label: name, group: name, value: 0});\n\nexport const addEmptyEntityTypesFacets = curry(({entityTypes}: Metadata, typeFacets: ChartData[]): ChartData[] => {\n const getFacet = pipe(getEntityTypeName, either(findTypeFacetByName(typeFacets), createEmptyEntityTypeFacet));\n return entityTypes.filter(isAvailableEntityType).map(getFacet);\n});\n","import {useEffect, useState, useCallback} from 'react';\nimport {useSelector} from 'react-redux';\nimport mdmModule from '@reltio/mdm-module';\nimport {pipe, andThen, otherwise, when, always, unless} from 'ramda';\nimport {requestFacets, localizeFacetValues} from '../services/facets';\nimport {ChartData, RequestStates} from '@reltio/components';\nimport {GlobalSearchRequestOptions, SearchOptions} from '../types/SearchOptions';\nimport {addEmptyEntityTypesFacets, getParentEntityTypeFacets, resolveTypeFacetsLabels} from '../services/entityTypes';\n\ntype Props = {\n hideEmpty?: boolean;\n orderType?: string;\n inheritChildren?: boolean;\n};\n\nconst filters = [];\n\nexport const useEntityByTypeRequest = ({orderType, inheritChildren, hideEmpty}: Props) => {\n const [data, setData] = useState<ChartData[]>([]);\n const [requestState, setRequestState] = useState<RequestStates>(RequestStates.INIT);\n const metadata: Record<string, any> = useSelector(mdmModule.selectors.getMetadata);\n const pageSize = metadata.entityTypes.length;\n const {globalFilter, activityFilter}: GlobalSearchRequestOptions = useSelector(\n mdmModule.selectors.getGlobalSearchRequestOptions\n );\n\n const searchOptions: SearchOptions = useSelector(mdmModule.selectors.getSearchOptions);\n const searchByOv: boolean = searchOptions && searchOptions.searchByOv;\n const onError = (error) => {\n console.error(error); // eslint-disable-line\n setRequestState(RequestStates.ERROR);\n setData([]);\n };\n\n const loadData = useCallback(() => {\n setRequestState(RequestStates.LOADING);\n const onRequestFinished = (data: ChartData[]) => {\n setRequestState(RequestStates.LOADED);\n setData(data);\n };\n\n const getData = pipe(\n requestFacets,\n andThen(unless(always(hideEmpty), addEmptyEntityTypesFacets(metadata))),\n andThen(when(always(inheritChildren), getParentEntityTypeFacets(metadata))),\n andThen(resolveTypeFacetsLabels(metadata)),\n andThen(localizeFacetValues),\n andThen(onRequestFinished),\n otherwise(onError)\n );\n\n getData({attribute: 'type', pageSize, filters, globalFilter, searchByOv, activityFilter, orderType});\n }, [hideEmpty, metadata, inheritChildren, pageSize, globalFilter, searchByOv, activityFilter, orderType]);\n\n const refreshAction = () => {\n try {\n loadData();\n } catch (e) {\n onError(e);\n }\n };\n\n useEffect(() => {\n refreshAction();\n }, [loadData]);\n\n return {state: requestState, data, reload: refreshAction};\n};\n","import React, {memo} from 'react';\nimport {useDispatch, useSelector} from 'react-redux';\nimport {TreeChart, useReloadFacet} from '@reltio/components';\nimport {useEntityByTypeRequest} from '../../hooks/useEntityByTypeRequest';\nimport LayoutItemView from '../../components/LayoutItemView/LayoutItemView';\nimport LayoutItemHeader from '../../components/LayoutItemHeader/LayoutItemHeader';\nimport LayoutItemContent from '../../components/LayoutItemContent/LayoutItemContent';\nimport {EntityByTypeViewFacetConfig} from '../../types/EntityByTypeViewFacetConfig';\nimport {entityTypeNameToFilters} from '../../services/entityTypes';\nimport {facetFiltersToSearchState} from '../../services/facets';\nimport mdmModule, {ui} from '@reltio/mdm-module';\nimport {pipe} from 'ramda';\n\ntype Props = {\n config: EntityByTypeViewFacetConfig;\n onToggleFullscreen: (id: string) => void;\n isUpdated?: boolean;\n isFullscreen: boolean;\n onRemove?: (id: string) => void;\n};\n\nconst EntitiesByTypeViewFacet = ({config, onToggleFullscreen, isUpdated, isFullscreen, onRemove}: Props) => {\n const {id, title, hideEmpty, orderType, inheritChildren} = config;\n const {data, state, reload} = useEntityByTypeRequest({\n hideEmpty,\n orderType,\n inheritChildren\n });\n\n useReloadFacet({state, reload});\n\n const dispatch = useDispatch();\n const metadata = useSelector(mdmModule.selectors.getMetadata);\n const onTypeClick = pipe(\n entityTypeNameToFilters,\n facetFiltersToSearchState(metadata, 'type'),\n ui.actions.openSearch,\n dispatch\n );\n\n return (\n <LayoutItemView id={id}>\n <LayoutItemHeader\n title={title}\n onToggleFullscreen={onToggleFullscreen}\n isUpdated={isUpdated}\n isFullscreen={isFullscreen}\n onRefresh={reload}\n onRemove={onRemove}\n />\n <LayoutItemContent loadingState={state} onRefresh={reload} data={data}>\n {({data, width, height}) => {\n return <TreeChart width={width} height={height} data={data} onItemClick={onTypeClick} />;\n }}\n </LayoutItemContent>\n </LayoutItemView>\n );\n};\n\nexport default memo(EntitiesByTypeViewFacet);\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles(() => ({\n viewContent: {\n height: '100%',\n overflow: 'hidden',\n position: 'relative',\n padding: '0 16px 16px'\n },\n iframe: {\n borderWidth: 0,\n width: '100%',\n height: '100%'\n },\n tasksSelector: {\n position: 'relative',\n margin: '0 6px 0 0',\n flexBasis: '220px',\n flexShrink: 1\n },\n tasksSelectorInput: {\n fontSize: '14px',\n lineHeight: '16px',\n padding: '12px 32px 10px 12px'\n },\n pagination: {\n height: '52px',\n flexGrow: 0,\n flexShrink: 0\n }\n}));\n","import React, {memo} from 'react';\nimport {CustomActionViewFacetConfig} from '../../types/CustomActionViewFacetConfig';\nimport LayoutItemView from '../../components/LayoutItemView/LayoutItemView';\nimport LayoutItemHeader from '../../components/LayoutItemHeader/LayoutItemHeader';\nimport {BasicViewContent} from '@reltio/components';\nimport {useStyles} from './styles';\n\ntype Props = {\n config: CustomActionViewFacetConfig;\n onToggleFullscreen: (id: string) => void;\n isUpdated?: boolean;\n isFullscreen: boolean;\n onRemove?: (id: string) => void;\n};\n\nconst CustomActionViewFacet = ({config, onToggleFullscreen, isUpdated, isFullscreen, onRemove}: Props) => {\n const {id, title, url} = config;\n const styles = useStyles();\n\n return (\n <LayoutItemView id={id}>\n <LayoutItemHeader\n title={title}\n onToggleFullscreen={onToggleFullscreen}\n isUpdated={isUpdated}\n isFullscreen={isFullscreen}\n onRemove={onRemove}\n />\n <BasicViewContent className={styles.viewContent}>\n <iframe src={url} frameBorder=\"0\" className={styles.iframe} />\n </BasicViewContent>\n </LayoutItemView>\n );\n};\n\nexport default memo(CustomActionViewFacet);\n","export enum WorkflowTasksCategories {\n MY = 'my',\n TEAM = 'team'\n}\n\ntype WorkflowTaskEntityData = {\n uri: string;\n label: string;\n type: string;\n};\ntype WorkflowTaskRelationData = {\n uri: string;\n type: string;\n startObjectUri: string;\n endObjectUri: string;\n startObjectLabel: string;\n endObjectLabel: string;\n};\n\nexport type WorkflowTaskObjectData = WorkflowTaskEntityData | WorkflowTaskRelationData;\n\nexport type WorkflowTaskData = {\n assignee: string;\n displayName: string;\n processDefinitionDisplayName: string;\n createTime: number;\n createdBy: string;\n dueDate?: number;\n objectURIs: string[];\n objects?: WorkflowTaskObjectData[];\n priorityClass: 'Urgent' | 'High' | 'Medium' | 'Low';\n};\n","import {\n always,\n cond,\n converge,\n curry,\n descend,\n equals,\n filter,\n head,\n isNil,\n keys,\n map,\n otherwise,\n path,\n pipe,\n prop,\n propEq,\n propOr,\n reject,\n sort,\n startsWith,\n T,\n when,\n complement,\n isEmpty\n} from 'ramda';\nimport {WorkflowTasksCategories, WorkflowTaskData} from '../types/WorkflowTasks';\nimport {\n getDataChangeRequest,\n getEntitiesByUris,\n getGroupTasksForTenant,\n getTasksForTenant,\n isEntityUri\n} from '@reltio/mdm-sdk';\n\nconst getTasksByCategory = cond([\n [equals(WorkflowTasksCategories.MY), always(getTasksForTenant)],\n [equals(WorkflowTasksCategories.TEAM), always(getGroupTasksForTenant)],\n [T, always(() => Promise.resolve({data: []}))]\n]);\n\nconst getFirstObjectUri = pipe(propOr([], 'objectURIs'), head);\nconst isDCRObjectUri = startsWith('changeRequests/');\n\nconst notEmpty = complement(isEmpty);\n\nconst getEntities = pipe(map(getFirstObjectUri), filter(isEntityUri), when(notEmpty, getEntitiesByUris));\n\nconst getChangeRequests = pipe(\n map(getFirstObjectUri),\n filter(isDCRObjectUri),\n map(pipe(getDataChangeRequest, otherwise(always(null)))),\n (requests) => Promise.all(requests)\n);\n\nconst getTaskObjectsData = converge((...requests) => Promise.all(requests), [getEntities, getChangeRequests]);\n\nconst enrichTaskWithEntity = (entities) => (task) => {\n const entity = entities.find(propEq('uri', getFirstObjectUri(task)));\n return entity\n ? {\n ...task,\n objects: [entity]\n }\n : task;\n};\n\nconst extractObjectsFromChangeRequest = ({objectsInfo = {}, changes = {}, uri}) => {\n const getChange = (key) => path([key, 0], changes);\n const getUri = (key) => {\n const {type} = getChange(key);\n if (type == 'CREATE_ENTITY' || type == 'CREATE_RELATIONSHIP') {\n return uri + '/changes/' + key;\n } else {\n return key;\n }\n };\n return pipe(\n keys,\n filter(getChange),\n sort(descend(pipe(getChange, prop('createdTime')))),\n map((key) => ({...objectsInfo[key], uri: getUri(key)}))\n )(objectsInfo);\n};\n\nconst enrichTaskWithDCRObjects = (changeRequests) => (task) => {\n const changeRequest = changeRequests.find(propEq('uri', getFirstObjectUri(task)));\n return changeRequest\n ? {\n ...task,\n objects: extractObjectsFromChangeRequest(changeRequest)\n }\n : task;\n};\n\nconst enrichTasksWithObjectsData = (entities, changeRequests, tasks) => {\n changeRequests = reject(isNil, changeRequests);\n return tasks.map(\n pipe(\n when(pipe(getFirstObjectUri, isEntityUri), enrichTaskWithEntity(entities)),\n when(pipe(getFirstObjectUri, isDCRObjectUri), enrichTaskWithDCRObjects(changeRequests))\n )\n );\n};\n\nexport const requestWorkflowTasks = curry(\n async (tasksCategory, {workflowPath, environment, tenant, assignee, max, offset}) => {\n const getTasks = getTasksByCategory(tasksCategory);\n const {data, total} = await getTasks({workflowPath, environment, tenant, assignee, max, offset});\n const [entities, changeRequests] = await getTaskObjectsData(data);\n return {data: enrichTasksWithObjectsData(entities, changeRequests, data), total};\n }\n);\n\nexport const isOverdueTask = (task: WorkflowTaskData) => task.dueDate && task.dueDate < Date.now();\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles((theme) => ({\n taskItem: {\n flex: 1,\n display: 'flex',\n padding: '15px',\n color: theme.palette.text.primary,\n '&.Low': {\n borderLeft: '#F7F7F7 solid 3px'\n },\n '&.Medium': {\n borderLeft: '#F7DE03 solid 3px'\n },\n '&.High': {\n borderLeft: '#FF9800 solid 3px'\n },\n '&.Urgent': {\n borderLeft: '#F44336 solid 3px'\n }\n },\n taskInfo: {\n flex: 1,\n padding: '0 15px',\n overflow: 'hidden',\n overflowWrap: 'anywhere'\n },\n taskTitle: {\n lineHeight: '18px',\n marginBottom: '6px'\n },\n taskDetail: {\n lineHeight: '15px',\n fontSize: '12px',\n margin: '5px 0'\n },\n taskDetailTitle: {\n color: theme.palette.text.secondary,\n marginRight: '3px'\n },\n taskDueDate: {\n flex: '0 0 110px',\n fontSize: '13px',\n lineHeight: '15px',\n textAlign: 'right',\n paddingTop: '6px'\n },\n flag: {\n height: '14px',\n width: '14px',\n stroke: 'rgba(0,0,0,.54)',\n fill: 'none',\n verticalAlign: 'text-top',\n marginRight: '5px'\n },\n overdue: {\n '&$taskDueDate': {\n color: '#f44336'\n },\n '& $flag': {\n stroke: '#f44336',\n fill: '#f44336'\n }\n },\n entityLabel: {\n color: theme.palette.primary.main,\n textDecoration: 'none',\n fontSize: '13px',\n lineHeight: '15px'\n },\n hidden: {\n visibility: 'hidden'\n }\n}));\n","import React from 'react';\nimport {WorkflowTaskObjectData} from '../../types/WorkflowTasks';\nimport {EntityUriLink} from '@reltio/components';\nimport {getEntityUriForLink, getLabel, getRelationType, Metadata} from '@reltio/mdm-sdk';\nimport i18n from 'ui-i18n';\nimport {useStyles} from './styles';\n\ntype Props = {\n object: WorkflowTaskObjectData;\n metadata: Metadata;\n};\n\nconst EntityLink = ({uri, label}: {uri: string; label: string}) => {\n const styles = useStyles();\n return (\n <EntityUriLink value={uri} className={styles.entityLabel}>\n {getLabel(label)}\n </EntityUriLink>\n );\n};\n\nconst WorkflowTaskObject = ({object, metadata}: Props) => {\n if ('startObjectUri' in object && 'endObjectUri' in object) {\n const relationType = getRelationType(metadata, object.type);\n return (\n <>\n {relationType.label} {i18n.text('from')}{' '}\n <EntityLink uri={object.startObjectUri} label={object.startObjectLabel} /> {i18n.text('to')}{' '}\n <EntityLink uri={object.endObjectUri} label={object.endObjectLabel} />\n </>\n );\n } else {\n return <EntityLink uri={getEntityUriForLink(object)} label={object.label} />;\n }\n};\n\nexport default WorkflowTaskObject;\n","import React from 'react';\nimport {useSelector} from 'react-redux';\nimport i18n from 'ui-i18n';\nimport classnames from 'classnames';\nimport {EntityTypeIcon} from '@reltio/components';\nimport mdmModule from '@reltio/mdm-module';\nimport {getEntityType} from '@reltio/mdm-sdk';\nimport FlagIcon from '@material-ui/icons/Flag';\nimport {Typography as Typography} from '@material-ui/core';\nimport {WorkflowTaskData} from '../../types';\nimport {isOverdueTask} from '../../services/workflowTasks';\nimport WorkflowTaskObject from './WorkflowTaskObject';\nimport {useStyles} from './styles';\n\ntype Props = {\n showAssignee: boolean;\n task: WorkflowTaskData;\n};\n\nconst WorkflowTaskItem = ({task, showAssignee}: Props) => {\n const styles = useStyles();\n const objects = task.objects || [];\n const [firstObject] = objects;\n const metadata = useSelector(mdmModule.selectors.getMetadata);\n const entityType = firstObject && getEntityType(metadata, firstObject.type);\n\n return (\n <div className={classnames(styles.taskItem, task.priorityClass)}>\n <EntityTypeIcon entityType={entityType} />\n <div className={styles.taskInfo}>\n <Typography className={styles.taskTitle} variant={'subtitle1'}>\n {task.processDefinitionDisplayName}\n </Typography>\n {objects.map((object) => (\n <p key={object.uri} className={styles.taskDetail}>\n <WorkflowTaskObject object={object} metadata={metadata} />\n </p>\n ))}\n <p className={styles.taskDetail}>\n <span className={styles.taskDetailTitle}>{i18n.text('Created by:')}</span>\n {task.createdBy} {i18n.text('on')} {i18n.date(task.createTime, 'L')}\n </p>\n {showAssignee && task.assignee && (\n <p className={styles.taskDetail}>\n <span className={styles.taskDetailTitle}>{i18n.text('Assigned to:')}</span>\n {task.assignee}\n </p>\n )}\n <p className={styles.taskDetail}>\n <span className={styles.taskDetailTitle}>{i18n.text('Step:')}</span>\n {task.displayName}\n </p>\n </div>\n <div\n className={classnames(styles.taskDueDate, {\n [styles.overdue]: isOverdueTask(task),\n [styles.hidden]: !task.dueDate\n })}\n >\n <FlagIcon className={styles.flag} />\n {i18n.date(task.dueDate, 'L')}\n </div>\n </div>\n );\n};\n\nexport default WorkflowTaskItem;\n","import React, {useCallback} from 'react';\nimport {WorkflowTasksCategories, WorkflowTaskData} from '../../types/WorkflowTasks';\nimport {AutoSizeList} from '@reltio/components';\nimport WorkflowTaskItem from '../WorkflowTaskItem/WorkflowTaskItem';\nimport {Divider as Divider} from '@material-ui/core';\n\ntype Props = {\n width: number;\n height: number;\n tasksCategory: WorkflowTasksCategories;\n tasks: WorkflowTaskData[];\n};\n\nconst WorkflowTasksList = ({width, height, tasksCategory, tasks}: Props) => {\n const renderRow = useCallback(\n ({data, index}: {data: WorkflowTaskData[]; index: number}) => {\n return (\n <div>\n <WorkflowTaskItem task={data[index]} showAssignee={tasksCategory !== WorkflowTasksCategories.MY} />\n <Divider light={true} variant={'inset'} />\n </div>\n );\n },\n [tasksCategory]\n );\n\n return (\n <AutoSizeList width={width} height={height} data={tasks} defaultItemSize={115}>\n {renderRow}\n </AutoSizeList>\n );\n};\n\nexport default WorkflowTasksList;\n","import {useCallback, useEffect, useMemo, useState} from 'react';\nimport {useSelector} from 'react-redux';\nimport {andThen, otherwise, pipe, pick} from 'ramda';\nimport mdmModule from '@reltio/mdm-module';\nimport {useSafePromise, RequestStates} from '@reltio/components';\nimport {WorkflowTaskData, WorkflowTasksCategories} from '../types/WorkflowTasks';\n\nimport {requestWorkflowTasks} from '../services/workflowTasks';\n\ntype Options = {\n tasksCategory: WorkflowTasksCategories;\n max?: number;\n offset?: number;\n};\n\nexport const useWorkflowTasksRequest = (options: Options) => {\n const {tasksCategory} = options;\n const requestParams = useMemo(() => pick(['max', 'offset'], options), [options]);\n const [data, setData] = useState<WorkflowTaskData[]>([]);\n const [requestState, setRequestState] = useState<RequestStates>(RequestStates.INIT);\n const [total, setTotal] = useState<number>();\n const workflowPath = useSelector(mdmModule.selectors.getWorkflowPath);\n const environment = useSelector(mdmModule.selectors.getWorkflowEnvironmentUrl);\n const tenant = useSelector(mdmModule.selectors.getTenant);\n const userName = useSelector(mdmModule.selectors.getUserName);\n\n const assignee = tasksCategory === WorkflowTasksCategories.MY ? userName : undefined;\n const safePromise = useSafePromise();\n\n const onError = (error) => {\n console.error(error); // eslint-disable-line\n setRequestState(RequestStates.ERROR);\n setData([]);\n };\n\n const loadData = useCallback(() => {\n setRequestState(RequestStates.LOADING);\n const onRequestFinished = ({data, total}: {data: WorkflowTaskData[]; total?: number}) => {\n setRequestState(RequestStates.LOADED);\n setData(data);\n setTotal(total);\n };\n\n const getData = pipe(\n requestWorkflowTasks(tasksCategory),\n safePromise,\n andThen(onRequestFinished),\n otherwise(onError)\n );\n getData({workflowPath, environment, tenant, assignee, ...requestParams});\n }, [workflowPath, environment, tenant, tasksCategory, requestParams]); // eslint-disable-line\n\n const refreshAction = () => {\n try {\n loadData();\n } catch (e) {\n onError(e);\n }\n };\n\n useEffect(() => {\n refreshAction();\n }, [loadData]);\n\n return {state: requestState, data, reload: refreshAction, total};\n};\n","import React, {memo, useMemo, useState} from 'react';\nimport {WorkflowInboxFacetConfig} from '@reltio/mdm-sdk';\nimport LayoutItemView from '../../components/LayoutItemView/LayoutItemView';\nimport LayoutItemHeader from '../../components/LayoutItemHeader/LayoutItemHeader';\nimport LayoutItemContent from '../../components/LayoutItemContent/LayoutItemContent';\nimport WorkflowTasksList from '../../components/WorkflowTasksList/WorkflowTasksList';\nimport {Select as Select} from '@material-ui/core';\nimport {MenuItem as MenuItem} from '@material-ui/core';\nimport {WorkflowTasksCategories} from '../../types/WorkflowTasks';\nimport {useWorkflowTasksRequest} from '../../hooks/useWorkflowTasksRequest';\nimport {pipe} from 'ramda';\nimport {BasicTablePagination, getValue, useReloadFacet} from '@reltio/components';\nimport i18n from 'ui-i18n';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n config: WorkflowInboxFacetConfig;\n onToggleFullscreen: (id: string) => void;\n isUpdated?: boolean;\n isFullscreen: boolean;\n onRemove?: (id: string) => void;\n};\n\nconst NotificationInboxFacet = ({config, onToggleFullscreen, isUpdated, isFullscreen, onRemove}: Props) => {\n const styles = useStyles();\n\n const {id, title, pageSize} = config;\n const [page, setPage] = useState(0);\n const [rowsPerPage, setRowsPerPage] = useState(pageSize || 10);\n const [tasksCategory, setTasksCategory] = useState<WorkflowTasksCategories>(WorkflowTasksCategories.MY);\n\n const options = useMemo(() => ({tasksCategory, max: rowsPerPage, offset: rowsPerPage * page}), [\n rowsPerPage,\n page,\n tasksCategory\n ]);\n const {state, data, total, reload} = useWorkflowTasksRequest(options);\n\n useReloadFacet({state, reload});\n\n return (\n <LayoutItemView id={id}>\n <LayoutItemHeader\n title={title}\n onToggleFullscreen={onToggleFullscreen}\n isUpdated={isUpdated}\n isFullscreen={isFullscreen}\n onRemove={onRemove}\n onRefresh={reload}\n >\n <Select\n className={styles.tasksSelector}\n classes={{\n root: styles.tasksSelectorInput\n }}\n variant={'filled'}\n value={tasksCategory}\n onChange={pipe(getValue, setTasksCategory)}\n >\n <MenuItem value={WorkflowTasksCategories.MY}>{i18n.text('My tasks')}</MenuItem>\n <MenuItem value={WorkflowTasksCategories.TEAM}>{i18n.text('Team tasks')}</MenuItem>\n </Select>\n </LayoutItemHeader>\n <LayoutItemContent loadingState={state} onRefresh={reload} data={data}>\n {({data, width, height}) => {\n return (\n <WorkflowTasksList width={width} height={height} tasksCategory={tasksCategory} tasks={data} />\n );\n }}\n </LayoutItemContent>\n {total > (pageSize || 10) && (\n <div className={styles.pagination}>\n <BasicTablePagination\n count={total}\n rowsPerPage={rowsPerPage}\n page={page}\n onChangePage={setPage}\n onChangeRowsPerPage={setRowsPerPage}\n />\n </div>\n )}\n </LayoutItemView>\n );\n};\n\nexport default memo(NotificationInboxFacet);\n","import {useCallback, useEffect, useState} from 'react';\nimport {andThen, otherwise, pipe} from 'ramda';\nimport {ActivitiesFilter, ActivityData, useActivitiesLoader, useSafePromise, RequestStates} from '@reltio/components';\n\ntype Props = {\n filter: ActivitiesFilter;\n max: number;\n offset: number;\n};\n\nexport const useActivitiesRequest = ({filter, max, offset}: Props) => {\n const [data, setData] = useState<ActivityData[]>([]);\n const [total, setTotal] = useState(0);\n const [requestState, setRequestState] = useState<RequestStates>(RequestStates.INIT);\n const safePromise = useSafePromise();\n\n const onError = (error) => {\n console.error(error); // eslint-disable-line\n setRequestState(RequestStates.ERROR);\n setData([]);\n setTotal(0);\n };\n const getActivities = useActivitiesLoader({filter, max, offset});\n\n const loadData = useCallback(() => {\n setRequestState(RequestStates.LOADING);\n const onRequestFinished = ({data, total}: {data: ActivityData[]; total: number}) => {\n setRequestState(RequestStates.LOADED);\n setData(data);\n setTotal(total);\n };\n\n const getData = pipe(getActivities, safePromise, andThen(onRequestFinished), otherwise(onError));\n getData();\n }, [getActivities]); // eslint-disable-line\n\n const refreshAction = () => {\n try {\n loadData();\n } catch (e) {\n onError(e);\n }\n };\n\n useEffect(() => {\n refreshAction();\n }, [loadData]);\n\n return {state: requestState, data, total, reload: refreshAction};\n};\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles(() => ({\n activityLogFilter: {\n padding: '0 9px'\n }\n}));\n","import React, {memo, useCallback, useMemo, useState} from 'react';\n\nimport {ActivitiesViewFacetConfig} from '../../types/ActivitiesViewFacetConfig';\nimport LayoutItemView from '../../components/LayoutItemView/LayoutItemView';\nimport LayoutItemHeader from '../../components/LayoutItemHeader/LayoutItemHeader';\nimport LayoutItemContent from '../../components/LayoutItemContent/LayoutItemContent';\nimport {ActivitiesFilter, ActivityLog, ActivityLogFilter, DateRangeTypes, useReloadFacet} from '@reltio/components';\nimport {DEFAULT_ROWS_PER_PAGE, getRowsPerPageOptions} from './helpers';\nimport {useActivitiesRequest} from '../../hooks/useActivitiesRequest';\nimport {useStyles} from './styles';\n\ntype Props = {\n config: ActivitiesViewFacetConfig;\n onToggleFullscreen: (id: string) => void;\n isUpdated?: boolean;\n isFullscreen: boolean;\n onRemove?: (id: string) => void;\n};\n\nconst ActivitiesViewFacet = ({config, isUpdated, isFullscreen, onToggleFullscreen, onRemove}: Props) => {\n const {id, title, exportTypes} = config;\n const styles = useStyles();\n\n const [page, setPage] = useState(0);\n const [rowsPerPage, setRowsPerPage] = useState(DEFAULT_ROWS_PER_PAGE);\n const rowsPerPageOptions = useMemo(() => getRowsPerPageOptions(DEFAULT_ROWS_PER_PAGE), []);\n const [filter, setFilter] = useState<ActivitiesFilter>({\n users: [],\n activities: [],\n dateRange: {\n type: DateRangeTypes.WITHIN,\n period: [4, 'months']\n }\n });\n const {state, data, total, reload} = useActivitiesRequest({filter, max: rowsPerPage, offset: page * rowsPerPage});\n\n const handleFilterChange = useCallback((value: ActivitiesFilter) => {\n setFilter(value);\n setPage(0);\n }, []);\n\n useReloadFacet({state, reload});\n\n return (\n <LayoutItemView id={id}>\n <LayoutItemHeader\n title={title}\n onToggleFullscreen={onToggleFullscreen}\n isUpdated={isUpdated}\n isFullscreen={isFullscreen}\n onRemove={onRemove}\n onRefresh={reload}\n />\n <div className={styles.activityLogFilter}>\n <ActivityLogFilter value={filter} onChange={handleFilterChange} exportTypes={exportTypes} />\n </div>\n <LayoutItemContent loadingState={state} onRefresh={reload} data={data}>\n {({data, width, height}) => {\n return (\n <ActivityLog\n width={width}\n height={height}\n activities={data}\n count={total}\n page={page}\n onChangePage={setPage}\n rowsPerPage={rowsPerPage}\n onChangeRowsPerPage={setRowsPerPage}\n rowsPerPageOptions={rowsPerPageOptions}\n />\n );\n }}\n </LayoutItemContent>\n </LayoutItemView>\n );\n};\n\nexport default memo(ActivitiesViewFacet);\n","import React from 'react';\nimport FilteredSavedSearchesFacet from './tableBased/FilteredSavedSearchesFacet';\nimport DashboardFacet from './chartBased/DashboardFacet';\nimport FilteredEntitiesViewFacet from './tableBased/FilteredEntitiesViewFacet';\nimport ProfileStatsFacet from './chartBased/ProfileStatsFacet';\nimport EntitiesByTypeViewFacet from './chartBased/EntitiesByTypeViewFacet';\nimport CustomActionViewFacet from './custom/CustomActionViewFacet';\nimport {ChartTypes, DashboardFacetConfig, DashboardView, DashboardViewTypes} from '@reltio/mdm-sdk';\nimport NotificationInboxFacet from './custom/NotificationInboxFacet';\nimport ActivitiesViewFacet from './tableBased/ActivitiesViewFacet';\nimport {\n ActivitiesViewFacetConfig,\n CustomActionViewFacetConfig,\n EntityByTypeViewFacetConfig,\n FilteredSavedSearchesFacetConfig,\n FilteredEntitiesFacetConfig\n} from '../types';\n\ntype Props = {\n config:\n | ActivitiesViewFacetConfig\n | CustomActionViewFacetConfig\n | DashboardFacetConfig\n | EntityByTypeViewFacetConfig\n | FilteredEntitiesFacetConfig\n | FilteredSavedSearchesFacetConfig\n | DashboardView;\n type: string;\n onToggleFullscreen: (id: string) => void;\n isUpdated?: boolean;\n isFullscreen: boolean;\n onRemove?: (id: string) => void;\n};\nclass ViewsFactory {\n static ViewTypes = DashboardViewTypes;\n\n static getComponent = ({config, type, isUpdated, isFullscreen, onToggleFullscreen, onRemove}: Props) => {\n const props = {\n isUpdated,\n isFullscreen,\n onToggleFullscreen,\n onRemove\n };\n switch (type) {\n case ViewsFactory.ViewTypes.ActivitiesViewFacet:\n return <ActivitiesViewFacet config={config} {...props} />;\n case ViewsFactory.ViewTypes.CustomActionViewFacet:\n return <CustomActionViewFacet config={config as CustomActionViewFacetConfig} {...props} />;\n case ViewsFactory.ViewTypes.DashboardFacet:\n return <DashboardFacet config={config as DashboardFacetConfig} {...props} />;\n case ViewsFactory.ViewTypes.EntitiesByTypeViewFacet:\n return <EntitiesByTypeViewFacet config={config as EntityByTypeViewFacetConfig} {...props} />;\n case ViewsFactory.ViewTypes.FilteredSavedSearchesFacet:\n return <FilteredSavedSearchesFacet config={config} {...props} />;\n case ViewsFactory.ViewTypes.FilteredEntitiesViewFacet:\n return <FilteredEntitiesViewFacet config={config} {...props} />;\n case ViewsFactory.ViewTypes.NotificationInboxFacet:\n return <NotificationInboxFacet config={config} {...props} />;\n case ViewsFactory.ViewTypes.ProfileStatsFacet:\n return <ProfileStatsFacet config={config} {...props} />;\n default:\n return <div>NOT IMPLEMENTED</div>;\n }\n };\n\n static getChartType = (view: DashboardView & {chartType?: string}): string => {\n const typeConverters = {\n [ViewsFactory.ViewTypes.EntitiesByTypeViewFacet]: ChartTypes.TREE,\n [ViewsFactory.ViewTypes.FilteredSavedSearchesFacet]: ChartTypes.TABLE,\n [ViewsFactory.ViewTypes.FilteredEntitiesViewFacet]: ChartTypes.TABLE,\n [ViewsFactory.ViewTypes.ProfileStatsFacet]: ChartTypes.LINE,\n [ViewsFactory.ViewTypes.NotificationInboxFacet]: ChartTypes.TABLE,\n [ViewsFactory.ViewTypes.ActivitiesViewFacet]: ChartTypes.TABLE\n };\n return view.chartType || typeConverters[view.component];\n };\n}\n\nexport default ViewsFactory;\n"],"names":["contextSelector","CellRenderer","withContext","TableContext","useStyles","makeStyles","pagination","display","alignItems","justifyContent","height","borderTop","boxShadow","caption","color","fontSize","lineHeight","selectRoot","marginLeft","marginRight","select","textAlign","actions","BasicTablePagination","classes","count","rowsPerPageOptions","page","onChangePage","rowsPerPage","onChangeRowsPerPage","basicTableRef","labelRowsPerPage","styles","resetScrollbarPosition","useCallback","pathOr","identity","handleChangePage","value","handleChangeRowsPerPage","TablePagination","root","classnames","component","i18n","labelDisplayedRows","from","to","fromRow","toRow","countRows","pipe","nthArg","getValue","propTypes","PropTypes","current","React","theme","flexDirection","basicView","BasicView","forwardRef","ref","children","className","otherProps","Paper","displayName","toolbar","minHeight","padding","title","fontWeight","whiteSpace","overflow","textOverflow","Toolbar","Typography","variant","collapseButton","cursor","expandLess","transform","isOpen","tooltipTitle","buttonProps","icon","ExpandMore","iconClassName","tooltipProps","SmallIconButton","bar","backgroundColor","palette","secondary","main","opacity","position","minWidth","borderRadius","top","left","widthIsNumber","width","is","Number","maxWidth","getBarColorWidth","style","buttonRoot","action","active","fade","selected","paper","menuItem","menuText","text","primary","letterSpacing","MenuItemWithTooltip","withTooltip","MenuItem","MenuItemRenderer","item","onMenuClose","disabled","tooltip","onClick","id","selectable","showForDisabled","e","Checkbox","checked","DropDownMenuButton","menuId","buttonComponent","Button","buttonContent","menuItems","popoverProps","onMenuOpen","DefaultMenuItemRenderer","ButtonComponent","buttonRef","useRef","setIsOpen","useState","useDidUpdateEffect","handleToggle","stopPropagation","open","undefined","Menu","autoFocus","anchorEl","onClose","anchorOrigin","vertical","horizontal","transformOrigin","elevation","getContentAnchorEl","MenuListProps","autoFocusItem","map","index","key","props","absoluteImagePath","useSelector","mdmModule","storagePath","str","endsWith","withMuiSkin","CreatableSelect","Option","innerProps","innerRef","isFocused","isSelected","selectProps","label","classNames","option","ExpandedValueTooltip","onMouseMove","onMouseOver","tabIndex","isRequired","placeholder","clearIndicator","spacing","margin","dropdownIndicator","MultiSelect","creatable","getOptions","loadingIndicator","components","componentsProp","classesProp","stylesProp","onChange","onChangeProp","onInputChange","onInputChangeProp","menuPlacement","reactSelectProps","SelectComponent","AsyncSelect","Select","inputValue","setInputValue","multiSelectClasses","omit","inputId","multiSelectComponents","mergeClasses","indicatorSeparator","base","loadingMessage","fontFamily","labelProps","TextFieldProps","InputLabelProps","htmlFor","shrink","length","isMulti","actionMeta","closeMenuOnSelect","hideSelectedOptions","loadOptions","defaultProps","cacheOptions","defaultOptions","options","ClearIndicator","Control","DropdownIndicator","DownChevron","CrossIcon","Group","GroupHeading","IndicatorsContainer","IndicatorSeparator","Input","LoadingIndicator","MenuList","MenuPortal","LoadingMessage","NoOptionsMessage","MultiValue","MultiValueContainer","MultiValueLabel","MultiValueRemove","Placeholder","SelectContainer","SingleValue","ValueContainer","control","valueContainer","multiValue","noOptionsMessage","singleValue","menu","container","group","groupHeading","indicatorsContainer","input","menuList","menuPortal","multiValueLabel","multiValueRemove","menuPortalTarget","getOptionValue","isSearchable","inputRef","reltioLayoutItemToReactGridLayoutItem","x","y","maxHeight","isStatic","w","h","minW","minH","maxW","maxH","i","static","reactGridLayoutItemToReltioLayoutItem","reactGridLayoutToReltioLayout","layout","getReltioLayoutItemById","curry","find","propEq","updateExtraPropsInLayoutItem","mergeAll","pick","copyPropsFromPreviousLayout","oldReltioLayout","reltioLayout","layoutItem","prop","defaultTo","__","_","gridLayout","background","border","transitionDuration","zIndex","userSelect","transitionProperty","willChange","pointerEvents","transition","backgroundImage","bottom","right","svg2Url","backgroundRepeat","backgroundOrigin","boxSizing","visibility","gridFullscreen","overflowY","ReltioGridLayout","views","layoutOptions","onLayoutChanged","draggableHandle","LayoutItem","onRemove","onDrop","droppingItem","isDroppable","fullscreenItemId","setFullscreenItemId","setWidth","cols","rowHeight","processedLayout","useMemo","reltioLayoutToReactGridLayout","onReltioLayoutChanged","onToggleFullscreen","prevId","isFullscreenEnabled","onItemHeightResize","layoutId","isLayoutChanged","newLayout","newHeight","Math","ceil","calcHeight","refreshMode","refreshRate","handleWidth","onResize","autoSize","onLayoutChange","isResizable","isDraggable","isItemFullscreen","autosizeComponent","autosizing","AutosizeComponent","layoutItemId","handleHeight","layoutItemConfig","fullscreen","isFullscreen","onConfigChanged","memo","flex","loader","LinearProgress","view","DashboardViewIdContext","useSavedSearchesRequest","offset","max","data","setData","total","setTotal","requestState","setRequestState","RequestStates","onError","error","console","loadData","onRequestFinished","result","countResults","restOptions","async","getSavedSearches","totalRequests","search","getTotalsForQuery","replacePlaceholdersInQuery","query","searchesWithCount","promiseAllSettled","reduce","searchesWithTotal","searchIndex","status","reason","assocPath","getData","catch","refreshAction","useEffect","state","reload","ROWS_PER_PAGE_OPTIONS","DEFAULT_ROWS_PER_PAGE","getRowsPerPageOptions","defaultRowsPerPage","filter","concat","sort","subtract","itemTitle","itemIcon","openIcon","marginTop","items","setAnchorEl","isMenuOpen","Boolean","handleMenuClose","handleItemClick","IconButton","currentTarget","MoreVert","ListItemIcon","toolbarRoot","marginBottom","dragIcon","rightMenu","flexGrow","updatedChip","isUpdated","onRefresh","useContext","Replay","Fullscreen","FullscreenExit","HighlightOff","BasicViewHeader","Chip","size","DragIndicator","_extends","Object","assign","target","arguments","source","prototype","hasOwnProperty","call","apply","this","viewBox","fill","xmlns","maskType","maskUnits","d","mask","fillOpacity","fillRule","clipRule","mixBlendMode","x1","y1","x2","y2","gradientUnits","stopColor","stopOpacity","filterUnits","colorInterpolationFilters","floodOpacity","in","type","values","dy","stdDeviation","mode","in2","noDataContainer","errorContainer","errorIcon","paddingTop","refreshButton","refreshIcon","message","startIcon","viewContent","loadingState","BasicViewContent","ErrorBoundary","DashboardLinearLoader","withPagination","TableComponent","WithPagination","savedSearchDataToSearchState","uiState","uri","version","currentSavedSearchUri","curSavedSearchUri","TableWithPagination","TableWithBars","config","setRowsPerPage","setPage","chartData","name","savedSearchDataToChartData","dispatch","useDispatch","onSSClick","ui","useReloadFacet","LayoutItemView","headers","showValues","onItemClick","configFilterToSearchFilter","when","includes","FilterOptions","evolve","wrapInArray","createNotEqualFilter","fieldName","convertSearchFilterToDashboardConfigFilter","searchFilter","createEntityTypeFilter","entityTypeUri","createFacetItemFilter","convertFilterToFacetState","metadata","entityType","isEntityAttributeFilter","test","attrType","findAttributeTypeByUri","searchUriToAttrUri","getSpecialAttrTypeByFieldName","assoc","isDateType","mapFilterValue","parseTimestamp","isEntityTypeFilter","requestFacets","attribute","filters","globalFilter","searchByOv","activityFilter","pageSize","orderType","buildFilterQueryString","addGlobalFilterToQuery","push","join","buildQuery","body","pageNo","getFacets","then","response","entries","sortWith","descend","ascend","getFacetData","resolveLookups","lookupCode","lookupsToResolve","codeValue","resolveLookupsList","codes","flatMap","buildLookupRecord","code","buildFacetOthersFilters","OTHER_FACET_GROUP","requestOtherValues","otherFilters","searchOptions","getTotals","resolveRoleLabel","roleName","getRoleLabel","localizeFacetValues","facet","localizedValue","getFacetFieldName","isEntityTypeUri","attributeUriToSearchUri","getFacetEntityTypeUri","ifElse","getEntityUriFromAttributeUri","always","getFiltersForFacet","attributeUri","hasEntityTypeFilter","some","getFiltersForFacetItem","reject","facetFiltersToSearchState","facets","chartType","showOthers","ChartTypes","facetFilters","searchFilters","SearchFiltersContext","facetAndSpecialFilters","attributePresentations","hasAttrPresentation","andThen","isLookupAttrType","getAttrTypeLookupCode","isRoleAttrType","formatDataTypeValue","dataTypeDefinition","getAttrDataTypeDefinition","resolveFacetLabels","unless","otherwise","useFacetRequest","ChartsFactory","content","headCell","headLabel","entityLabel","textDecoration","headCellData","DefaultHeadCellRenderer","rowValue","entity","getLabel","EntityUriLink","getEntityUriForLink","tableContainer","cellBorder","borderLeft","borderRight","headData","resizable","headCellRenderer","HeadCellRenderer","rowCellValueRenderer","EntityLabelRenderer","initialWidth","tableClasses","BasicTable","columnsData","rowsData","headRowHeight","getRowCellHeight","defaultColumnWidth","defaultColumnMinWidth","allFilters","Promise","all","getFilteredEntities","results","entities","useFilteredEntitiesRequest","PeriodStep","isDurationPeriod","period","duration","start","end","moment","periodToDuration","isValid","valueOf","periodToTimestampInterval","amount","interval","now","endOf","getStepForPeriod","startTime","endTime","DAY","HOUR","DURATION_SEPARATOR","DATE_RANGE_OPTIONS","DateRangeValues","periodToDateRangeValues","dateRangeValuesToPeriod","String","split","adjust","parseInt","noop","DateRangeEditor","getValuesDateRange","timestamp","Date","DataTypes","StatsEvents","types","getStatsEventById","event","getStatsEventName","propOr","getStatsEventColor","requestStats","getStats","getEntitiesStats","allTypes","chain","processStats","pluck","stats","getEvents","events","presentTypes","periodFrame","term","prepend","append","isEventPresent","resolve","getEventsData","groupEventsData","step","eventData","groupBy","startOf","toPairs","date","sum","interpolateEventsData","head","other","acc","stepTime","nextTerm","last","interpolatedItems","calibrateStatsData","statsData","getStepValueFormat","cond","equals","payload","textAnchor","tooltipWrapper","tooltipItemColor","legend","flexWrap","legendItem","legendItemColor","flexShrink","legendItemValue","selectedItems","Tooltip","selectedEvents","setSelectedEvents","tooltipEvent","setTooltipEvent","cartesianGrid","xAxis","yAxis","line","dataKey","tick","angle","stroke","allowDuplicatedCategory","tickFormatter","formatNumberAsMetric","strokeDasharray","strokeOpacity","strokeWidth","wrapperStyle","domain","tickCount","counts","min","abs","getChartDomain","dot","r","activeDot","onMouseEnter","onMouseLeave","without","periodSelector","flexBasis","setPeriod","safePromise","useSafePromise","useStatsRequest","typeNameToUri","typeName","getUriFromTypeFacet","resolveTypeFacetsLabels","typeFacets","typeUri","getEntityType","getParentEntityTypeFacets","getParentTypeForFacet","getInheritancePath","isAvailableEntityType","parentsMap","parentType","parentName","getLastUriPart","entityTypeNameToFilters","wrapInArrayIfNeeded","getEntityTypeName","findTypeFacetByName","createEmptyEntityTypeFacet","addEmptyEntityTypesFacets","entityTypes","getFacet","either","hideEmpty","inheritChildren","useEntityByTypeRequest","onTypeClick","TreeChart","iframe","borderWidth","tasksSelector","tasksSelectorInput","url","src","frameBorder","WorkflowTasksCategories","getTasksByCategory","MY","getTasksForTenant","TEAM","getGroupTasksForTenant","T","getFirstObjectUri","isDCRObjectUri","startsWith","notEmpty","complement","isEmpty","getEntities","isEntityUri","getEntitiesByUris","getChangeRequests","getDataChangeRequest","requests","getTaskObjectsData","converge","extractObjectsFromChangeRequest","objectsInfo","changes","getChange","path","getUri","keys","enrichTasksWithObjectsData","changeRequests","tasks","isNil","task","objects","enrichTaskWithEntity","changeRequest","enrichTaskWithDCRObjects","requestWorkflowTasks","tasksCategory","workflowPath","environment","tenant","assignee","getTasks","isOverdueTask","dueDate","taskItem","taskInfo","overflowWrap","taskTitle","taskDetail","taskDetailTitle","taskDueDate","flag","verticalAlign","overdue","hidden","EntityLink","object","relationType","getRelationType","startObjectUri","startObjectLabel","endObjectUri","endObjectLabel","showAssignee","firstObject","priorityClass","EntityTypeIcon","processDefinitionDisplayName","createdBy","createTime","Flag","renderRow","Divider","light","AutoSizeList","defaultItemSize","setTasksCategory","requestParams","userName","useWorkflowTasksRequest","activityLogFilter","exportTypes","setFilter","users","activities","dateRange","DateRangeTypes","getActivities","useActivitiesLoader","useActivitiesRequest","handleFilterChange","ActivityLogFilter","ActivityLog","ViewsFactory","ViewTypes","DashboardViewTypes","getComponent","ActivitiesViewFacet","CustomActionViewFacet","DashboardFacet","EntitiesByTypeViewFacet","FilteredSavedSearchesFacet","FilteredEntitiesViewFacet","NotificationInboxFacet","ProfileStatsFacet","getChartType","typeConverters"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"7147.js","mappings":"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","sources":["webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTable/HOCs/withTableContext.js","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTablePagination/styles.js","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTablePagination/BasicTablePagination.js","webpack://@reltio/remotes/../components/src/components/BasicView/styles.js","webpack://@reltio/remotes/../components/src/components/BasicView/BasicView.tsx","webpack://@reltio/remotes/../components/src/components/BasicViewHeader/styles.ts","webpack://@reltio/remotes/../components/src/components/BasicViewHeader/BasicViewHeader.tsx","webpack://@reltio/remotes/../components/src/components/CollapseButton/styles.ts","webpack://@reltio/remotes/../components/src/components/CollapseButton/CollapseButton.tsx","webpack://@reltio/remotes/../components/src/components/ColorBar/styles.ts","webpack://@reltio/remotes/../components/src/components/ColorBar/ColorBar.tsx","webpack://@reltio/remotes/../components/src/components/DropDownMenuButton/styles.ts","webpack://@reltio/remotes/../components/src/components/DropDownMenuButton/MenuItemRenderer.tsx","webpack://@reltio/remotes/../components/src/components/DropDownMenuButton/DropDownMenuButton.tsx","webpack://@reltio/remotes/../components/src/components/EntityTypeIcon/EntityTypeIcon.js","webpack://@reltio/remotes/../components/src/components/ReactSelect/CreatableSelect.js","webpack://@reltio/remotes/../components/src/components/ReactSelect/MultiSelect/components/Option.js","webpack://@reltio/remotes/../components/src/components/ReactSelect/MultiSelect/components/index.js","webpack://@reltio/remotes/../components/src/components/ReactSelect/MultiSelect/MultiSelect.js","webpack://@reltio/remotes/../components/src/components/ReactSelect/MultiSelect/index.js","webpack://@reltio/remotes/../components/src/components/ReltioGridLayout/helpers.js","webpack://@reltio/remotes/../components/src/components/ReltioGridLayout/icons/ResizeIcon.svg.ts","webpack://@reltio/remotes/../components/src/components/ReltioGridLayout/styles.js","webpack://@reltio/remotes/../components/src/components/ReltioGridLayout/ReltioGridLayout.js","webpack://@reltio/remotes/../components/src/components/Spacer/Spacer.js","webpack://@reltio/remotes/../dashboard/src/components/DashboardLinearLoader/styles.ts","webpack://@reltio/remotes/../dashboard/src/components/DashboardLinearLoader/DashboardLinearLoader.tsx","webpack://@reltio/remotes/../dashboard/src/components/LayoutItemView/styles.ts","webpack://@reltio/remotes/../dashboard/src/components/LayoutItemView/LayoutItemView.tsx","webpack://@reltio/remotes/../dashboard/src/contexts/DashboardViewIdContext/index.ts","webpack://@reltio/remotes/../dashboard/src/hooks/useSavedSearchesRequest.ts","webpack://@reltio/remotes/../dashboard/src/views/tableBased/helpers.ts","webpack://@reltio/remotes/../dashboard/src/components/DashboardPopupMenu/styles.ts","webpack://@reltio/remotes/../dashboard/src/components/DashboardPopupMenu/DashboardPopupMenu.tsx","webpack://@reltio/remotes/../dashboard/src/components/LayoutItemHeader/styles.ts","webpack://@reltio/remotes/../dashboard/src/components/LayoutItemHeader/LayoutItemHeader.tsx","webpack://@reltio/remotes/../dashboard/src/components/DashboardNoData/icons/noData.svg","webpack://@reltio/remotes/../dashboard/src/components/DashboardNoData/styles.ts","webpack://@reltio/remotes/../dashboard/src/components/DashboardNoData/DashboardNoData.tsx","webpack://@reltio/remotes/../dashboard/src/components/DashboardError/icons/error.svg","webpack://@reltio/remotes/../dashboard/src/components/DashboardError/styles.ts","webpack://@reltio/remotes/../dashboard/src/components/DashboardError/DashboardError.tsx","webpack://@reltio/remotes/../dashboard/src/components/LayoutItemContent/styles.ts","webpack://@reltio/remotes/../dashboard/src/components/LayoutItemContent/LayoutItemContent.tsx","webpack://@reltio/remotes/../dashboard/src/HOCs/withPagination.tsx","webpack://@reltio/remotes/../dashboard/src/services/savedSearches.ts","webpack://@reltio/remotes/../dashboard/src/views/tableBased/FilteredSavedSearchesFacet.tsx","webpack://@reltio/remotes/../dashboard/src/services/filters.ts","webpack://@reltio/remotes/../dashboard/src/services/facets.ts","webpack://@reltio/remotes/../dashboard/src/views/chartBased/DashboardFacet.tsx","webpack://@reltio/remotes/../dashboard/src/hooks/useFacetRequest.ts","webpack://@reltio/remotes/../dashboard/src/components/EntityTable/cell-renderers/styles.ts","webpack://@reltio/remotes/../dashboard/src/components/EntityTable/cell-renderers/HeadCellRenderer.tsx","webpack://@reltio/remotes/../dashboard/src/components/EntityTable/cell-renderers/EntityLabelRenderer.tsx","webpack://@reltio/remotes/../dashboard/src/components/EntityTable/styles.ts","webpack://@reltio/remotes/../dashboard/src/views/tableBased/FilteredEntitiesViewFacet.tsx","webpack://@reltio/remotes/../dashboard/src/components/EntityTable/EntityTable.tsx","webpack://@reltio/remotes/../dashboard/src/hooks/useFilteredEntitiesRequest.ts","webpack://@reltio/remotes/../dashboard/src/types/Period.ts","webpack://@reltio/remotes/../dashboard/src/services/period.ts","webpack://@reltio/remotes/../dashboard/src/components/PeriodSelector/helpers.ts","webpack://@reltio/remotes/../dashboard/src/components/PeriodSelector/PeriodSelector.tsx","webpack://@reltio/remotes/../dashboard/src/components/StatsChart/getStatsChartSettings.ts","webpack://@reltio/remotes/../dashboard/src/services/stats.ts","webpack://@reltio/remotes/../dashboard/src/components/StatsChart/customized/CustomAxisTick.tsx","webpack://@reltio/remotes/../dashboard/src/components/StatsChart/customized/styles.ts","webpack://@reltio/remotes/../dashboard/src/components/StatsChart/customized/CustomTooltip.tsx","webpack://@reltio/remotes/../dashboard/src/components/StatsChart/customized/CustomLegend.tsx","webpack://@reltio/remotes/../dashboard/src/components/StatsChart/StatsChart.tsx","webpack://@reltio/remotes/../dashboard/src/hooks/useStatsRequest.ts","webpack://@reltio/remotes/../dashboard/src/views/chartBased/styles.ts","webpack://@reltio/remotes/../dashboard/src/views/chartBased/ProfileStatsFacet.tsx","webpack://@reltio/remotes/../dashboard/src/services/entityTypes.ts","webpack://@reltio/remotes/../dashboard/src/hooks/useEntityByTypeRequest.ts","webpack://@reltio/remotes/../dashboard/src/views/chartBased/EntitiesByTypeViewFacet.tsx","webpack://@reltio/remotes/../dashboard/src/views/custom/styles.ts","webpack://@reltio/remotes/../dashboard/src/views/custom/CustomActionViewFacet.tsx","webpack://@reltio/remotes/../dashboard/src/types/WorkflowTasks.ts","webpack://@reltio/remotes/../dashboard/src/services/workflowTasks.ts","webpack://@reltio/remotes/../dashboard/src/components/WorkflowTaskItem/styles.ts","webpack://@reltio/remotes/../dashboard/src/components/WorkflowTaskItem/WorkflowTaskObject.tsx","webpack://@reltio/remotes/../dashboard/src/components/WorkflowTaskItem/WorkflowTaskItem.tsx","webpack://@reltio/remotes/../dashboard/src/components/WorkflowTasksList/WorkflowTasksList.tsx","webpack://@reltio/remotes/../dashboard/src/hooks/useWorkflowTasksRequest.ts","webpack://@reltio/remotes/../dashboard/src/views/custom/NotificationInboxFacet.tsx","webpack://@reltio/remotes/../dashboard/src/hooks/useActivitiesRequest.ts","webpack://@reltio/remotes/../dashboard/src/views/tableBased/styles.ts","webpack://@reltio/remotes/../dashboard/src/views/tableBased/ActivitiesViewFacet.tsx","webpack://@reltio/remotes/../dashboard/src/views/ViewsFactory.tsx"],"sourcesContent":["import {TableContext} from '../contexts/TableContext';\nimport {withContext} from '../../../../HOCs/withContext/withContext';\n\nconst withTableContext = (contextSelector) => (CellRenderer) =>\n withContext(TableContext, contextSelector, CellRenderer);\n\nexport default withTableContext;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n pagination: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-end',\n height: '56px',\n borderTop: '1px solid rgba(0,0,0,0.12)',\n boxShadow: 'none'\n },\n caption: {\n color: 'rgba(0,0,0,0.6)',\n fontSize: '12px',\n lineHeight: '16px'\n },\n selectRoot: {\n marginLeft: '5px',\n marginRight: '36px'\n },\n select: {\n color: 'rgba(0,0,0,0.6)',\n fontSize: '12px',\n lineHeight: '16px',\n textAlign: 'right'\n },\n actions: {\n marginLeft: '32px'\n }\n});\n","import PropTypes from 'prop-types';\nimport React, {useCallback} from 'react';\nimport classnames from 'classnames';\nimport {TablePagination as TablePagination} from '@material-ui/core';\nimport i18n from 'ui-i18n';\nimport {getValue} from '../../../core/utils';\nimport {nthArg, pipe, pathOr, identity} from 'ramda';\nimport {useStyles} from './styles';\n\nconst BasicTablePagination = ({\n classes = {},\n count,\n rowsPerPageOptions,\n page,\n onChangePage,\n rowsPerPage,\n onChangeRowsPerPage,\n basicTableRef,\n labelRowsPerPage\n}) => {\n const labelDisplayedRows = ({from, to, count}) =>\n i18n.text('${fromRow}-${toRow} of ${countRows}', {\n fromRow: i18n.number(from, '0,0'),\n toRow: i18n.number(to, '0,0'),\n countRows: i18n.number(count, '0,0')\n });\n const styles = useStyles();\n const resetScrollbarPosition = useCallback(() => {\n pathOr(identity, ['current', 'resetScrollbarPosition'], basicTableRef)();\n }, [basicTableRef]);\n const handleChangePage = useCallback(\n (value) => {\n onChangePage(value);\n resetScrollbarPosition();\n },\n [onChangePage, resetScrollbarPosition]\n );\n const handleChangeRowsPerPage = useCallback(\n (value) => {\n onChangePage(0);\n onChangeRowsPerPage(value);\n resetScrollbarPosition();\n },\n [onChangePage, onChangeRowsPerPage, resetScrollbarPosition]\n );\n return (\n <TablePagination\n classes={{\n ...classes,\n root: classnames(styles.pagination, classes.root),\n select: classnames(styles.select, classes.select),\n caption: styles.caption,\n selectRoot: styles.selectRoot,\n actions: styles.actions\n }}\n component=\"div\"\n labelRowsPerPage={labelRowsPerPage || i18n.text('Rows per page:')}\n labelDisplayedRows={labelDisplayedRows}\n count={count}\n rowsPerPageOptions={rowsPerPageOptions}\n page={page}\n onChangePage={pipe(nthArg(1), handleChangePage)}\n rowsPerPage={rowsPerPage}\n onChangeRowsPerPage={pipe(getValue, handleChangeRowsPerPage)}\n />\n );\n};\n\nBasicTablePagination.propTypes = {\n classes: PropTypes.object,\n rowsPerPageOptions: PropTypes.arrayOf(PropTypes.number),\n count: PropTypes.number,\n page: PropTypes.number,\n onChangePage: PropTypes.func,\n rowsPerPage: PropTypes.number,\n onChangeRowsPerPage: PropTypes.func,\n basicTableRef: PropTypes.shape({current: PropTypes.object}),\n labelRowsPerPage: PropTypes.string\n};\n\nexport default React.memo(BasicTablePagination);\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles((theme) => ({\n 'basic-view__paper': {\n display: 'flex',\n flexDirection: 'column',\n ...theme.basicView\n }\n}));\n","import Paper, {PaperProps} from '@material-ui/core/Paper';\nimport PropTypes from 'prop-types';\nimport React, {forwardRef, Ref} from 'react';\nimport {useStyles} from './styles';\n\nconst BasicView = forwardRef<Ref<typeof Paper>, PaperProps>(({children, className, ...otherProps}, ref) => {\n const styles = useStyles();\n return (\n <Paper ref={ref} className={className} classes={{root: styles['basic-view__paper']}} {...otherProps}>\n {children}\n </Paper>\n );\n});\n\nBasicView.displayName = 'BasicView';\n\nBasicView.propTypes = {\n children: PropTypes.node,\n className: PropTypes.string\n};\n\nexport default BasicView;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n toolbar: {\n minHeight: '48px',\n padding: '8px 24px',\n lineHeight: '28px'\n },\n title: {\n fontSize: '18px',\n fontWeight: 'normal',\n lineHeight: 'inherit',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis'\n }\n});\n","import React from 'react';\nimport Toolbar, {ToolbarProps} from '@material-ui/core/Toolbar';\nimport {Typography as Typography} from '@material-ui/core';\nimport {useStyles} from './styles';\n\ntype Props = ToolbarProps & {\n title?: string;\n classes?: Partial<Record<'root' | 'title', string>>;\n};\n\nconst BasicViewHeader = ({title, children = null, classes = {}, ...otherProps}: Props) => {\n const styles = useStyles();\n return (\n <Toolbar className={classes.root} classes={{root: styles.toolbar}} {...otherProps}>\n <Typography className={classes.title} classes={{root: styles.title}} variant=\"h6\">\n {title}\n </Typography>\n {children}\n </Toolbar>\n );\n};\n\nexport default BasicViewHeader;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n collapseButton: {\n cursor: 'pointer'\n },\n expandLess: {\n transform: 'rotate( -180deg )'\n }\n});\n","import React from 'react';\nimport classnames from 'classnames';\nimport {SmallIconButtonWithTooltip} from '../SmallIconButton';\nimport ExpandMore from '@material-ui/icons/ExpandMore';\nimport {useStyles} from './styles';\n\ntype SmallIconButtonWithTooltipProps = React.ComponentPropsWithoutRef<typeof SmallIconButtonWithTooltip>;\n\ntype Props = Omit<SmallIconButtonWithTooltipProps, 'tooltipTitle'> & {\n isOpen?: boolean;\n tooltipTitle?: string;\n};\n\nconst CollapseButton = ({isOpen = false, tooltipTitle, ...otherProps}: Props) => {\n const styles = useStyles();\n const buttonProps = {\n icon: ExpandMore,\n className: styles.collapseButton,\n iconClassName: classnames({[styles.expandLess]: isOpen})\n };\n const tooltipProps = {\n tooltipTitle: tooltipTitle\n };\n return <SmallIconButtonWithTooltip {...buttonProps} {...tooltipProps} {...otherProps} />;\n};\n\nexport default CollapseButton;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles((theme) => ({\n bar: {\n backgroundColor: theme.palette.secondary.main,\n opacity: 0.12,\n position: 'absolute',\n minHeight: '20px',\n minWidth: '5px',\n borderRadius: '2px',\n top: 0,\n left: 0,\n height: '100%'\n }\n}));\n","import React, {useCallback} from 'react';\nimport classnames from 'classnames';\nimport {is} from 'ramda';\nimport {useStyles} from './styles';\n\ntype Props = {\n className?: string;\n width?: number | string;\n maxWidth?: number;\n};\n\nconst widthIsNumber = (width: string | number): width is number => is(Number, width);\n\nconst ColorBar = ({className, width = 0, maxWidth}: Props) => {\n const styles = useStyles();\n\n const getBarColorWidth = useCallback(\n (width: number) => {\n return (maxWidth ? (100 * width) / maxWidth : 0) + '%';\n },\n [maxWidth]\n );\n\n return width ? (\n <div\n className={classnames(styles.bar, className)}\n style={{width: widthIsNumber(width) ? getBarColorWidth(width) : width}}\n />\n ) : null;\n};\n\nexport default ColorBar;\n","import {fade, makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles((theme) => ({\n buttonRoot: {\n '&$selected': {\n color: theme.palette.action.active,\n backgroundColor: fade(theme.palette.action.active, 0.12),\n '&:hover': {\n backgroundColor: fade(theme.palette.action.active, 0.15)\n }\n }\n },\n selected: {},\n paper: {\n minWidth: '112px'\n },\n menuItem: {\n minHeight: '32px'\n },\n menuText: {\n color: theme.palette.text.primary,\n fontSize: '13px',\n lineHeight: '15px',\n letterSpacing: 0\n }\n}));\n","import React, {forwardRef} from 'react';\nimport {identity} from 'ramda';\nimport {Checkbox as Checkbox} from '@material-ui/core';\nimport {MenuItem as MenuItem} from '@material-ui/core';\nimport {Typography as Typography} from '@material-ui/core';\nimport withTooltip from '../../HOCs/withTooltip/withTooltip';\nimport {DropDownMenuItem} from '../../types';\n\nimport {useStyles} from './styles';\n\nconst MenuItemWithTooltip = withTooltip(MenuItem);\n\ntype Props = {\n item: DropDownMenuItem;\n onMenuClose?: (e) => void;\n};\n\nconst MenuItemRenderer = forwardRef(({item, onMenuClose = identity}: Props, ref: React.Ref<HTMLLIElement>) => {\n const styles = useStyles();\n const {disabled, text, tooltip, onClick, id = '', selectable, selected} = item;\n const handleClick = (e) => {\n onMenuClose(e);\n onClick(e);\n };\n\n return (\n <MenuItemWithTooltip\n tooltipTitle={tooltip}\n showForDisabled={true}\n classes={{root: styles.menuItem}}\n onClick={handleClick}\n disabled={disabled}\n ref={ref}\n data-modal\n data-reltio-id={`reltio-search-menu-item${id}`}\n >\n {selectable && <Checkbox checked={selected} color=\"primary\" />}\n <Typography classes={{root: styles.menuText}}>{text}</Typography>\n </MenuItemWithTooltip>\n );\n});\n\nMenuItemRenderer.displayName = 'MenuItemRenderer';\n\nexport default MenuItemRenderer;\n","import React, {useCallback, useRef, useState} from 'react';\nimport classnames from 'classnames';\nimport {identity} from 'ramda';\nimport {Button as Button} from '@material-ui/core';\nimport Menu, {MenuProps} from '@material-ui/core/Menu';\nimport {useDidUpdateEffect} from '../../hooks';\nimport DefaultMenuItemRenderer from './MenuItemRenderer';\nimport {useStyles} from './styles';\nimport {DropDownMenuItem} from '../../types';\n\ntype Props<T> = {\n className?: string;\n buttonComponent?: React.ElementType;\n buttonContent?: React.ReactNode;\n menuItems?: T[];\n buttonProps?: Record<string, unknown>;\n popoverProps?: Omit<MenuProps, 'open'>;\n menuId: string;\n onMenuOpen?: () => void;\n onMenuClose?: () => void;\n MenuItemRenderer?: (props) => JSX.Element;\n};\n\nfunction DropDownMenuButton<T = DropDownMenuItem>({\n className,\n menuId,\n buttonComponent = Button,\n buttonContent,\n menuItems = [],\n buttonProps = {},\n popoverProps = {},\n onMenuOpen = identity,\n onMenuClose = identity,\n MenuItemRenderer = DefaultMenuItemRenderer\n}: Props<T>) {\n const ButtonComponent = buttonComponent;\n const styles = useStyles();\n const buttonRef = useRef();\n const [isOpen, setIsOpen] = useState(false);\n\n useDidUpdateEffect(() => {\n isOpen ? onMenuOpen() : onMenuClose();\n }, [isOpen]);\n\n const handleToggle = useCallback((e) => {\n e?.stopPropagation();\n setIsOpen((open) => !open);\n }, []);\n\n const renderMenuItem = (item, index) => {\n return <MenuItemRenderer item={item} key={index} onMenuClose={handleToggle} />;\n };\n\n return (\n <>\n <ButtonComponent\n ref={buttonRef}\n className={classnames(\n styles.buttonRoot,\n {\n [styles.selected]: isOpen\n },\n className\n )}\n onClick={handleToggle}\n aria-pressed={isOpen}\n aria-controls={isOpen ? menuId : undefined}\n aria-haspopup=\"true\"\n {...buttonProps}\n >\n {buttonContent}\n </ButtonComponent>\n <Menu\n id={menuId}\n variant=\"menu\"\n open={isOpen}\n autoFocus={false}\n classes={{paper: styles.paper}}\n anchorEl={buttonRef.current}\n onClose={handleToggle}\n anchorOrigin={{\n vertical: 'bottom',\n horizontal: 'right'\n }}\n transformOrigin={{\n vertical: 'top',\n horizontal: 'right'\n }}\n elevation={2}\n getContentAnchorEl={null}\n MenuListProps={{autoFocusItem: isOpen}}\n {...popoverProps}\n >\n {menuItems.map(renderMenuItem)}\n </Menu>\n </>\n );\n}\n\nDropDownMenuButton.displayName = 'DropDownMenuButton';\n\nexport default DropDownMenuButton;\n","import React from 'react';\nimport {useSelector} from 'react-redux';\n\nimport mdmModule from '@reltio/mdm-module';\nimport RC_EntityTypeIcon from 'react-components/dist/EntityTypeIcon/EntityTypeIcon';\n\nconst ensureSlashEnding = (str) => (str.endsWith('/') ? str : str + '/');\n\nconst EntityTypeIcon = (props) => {\n const absoluteImagePath = useSelector(mdmModule.selectors.getAbsoluteImagePath) || '';\n return <RC_EntityTypeIcon {...props} storagePath={ensureSlashEnding(absoluteImagePath)} />;\n};\n\nexport default EntityTypeIcon;\n","import CreatableSelect from 'react-select/creatable';\nimport withMuiSkin from './withMuiSkin';\n\nexport default withMuiSkin(CreatableSelect);\n","import {MenuItem as MenuItem} from '@material-ui/core';\nimport {Checkbox as Checkbox} from '@material-ui/core';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport classNames from 'classnames';\nimport ExpandedValueTooltip from '../../../ExpandedValueTooltip/ExpandedValueTooltip';\n\nexport default function Option(props) {\n const {\n innerProps,\n innerRef,\n children,\n isFocused,\n isSelected,\n selectProps: {classes},\n label\n } = props;\n\n return (\n <MenuItem\n className={classNames(classes.option, {[classes['option--selected']]: isSelected})}\n ref={innerRef}\n selected={isFocused}\n component=\"div\"\n {...innerProps}\n >\n <Checkbox color=\"primary\" checked={isSelected} />\n <ExpandedValueTooltip value={label}>\n <div className={classes['option--item']}>{children}</div>\n </ExpandedValueTooltip>\n </MenuItem>\n );\n}\n\nOption.propTypes = {\n children: PropTypes.node,\n innerProps: PropTypes.shape({\n id: PropTypes.string.isRequired,\n key: PropTypes.string,\n onClick: PropTypes.func.isRequired,\n onMouseMove: PropTypes.func.isRequired,\n onMouseOver: PropTypes.func.isRequired,\n tabIndex: PropTypes.number.isRequired\n }).isRequired,\n innerRef: PropTypes.oneOfType([\n PropTypes.oneOf([null]),\n PropTypes.func,\n PropTypes.shape({\n current: PropTypes.any.isRequired\n })\n ]),\n isFocused: PropTypes.bool.isRequired,\n isSelected: PropTypes.bool.isRequired,\n label: PropTypes.string,\n selectProps: PropTypes.shape({\n classes: PropTypes.shape({\n option: PropTypes.string\n })\n })\n};\n","import Option from './Option';\n\nconst components = {\n Option\n};\n\nexport default components;\n","import React, {useState} from 'react';\nimport PropTypes from 'prop-types';\nimport {omit} from 'ramda';\nimport CreatableSelect from '../CreatableSelect';\nimport Select from '../Select';\nimport AsyncSelect from '../AsyncSelect';\nimport multiSelectComponents from './components';\nimport {makeStyles} from '@material-ui/core/styles';\nimport {mergeClasses} from '../../../core/utils';\n\nconst useStyles = makeStyles((theme) => ({\n label: {\n top: 6,\n left: 16\n },\n placeholder: (props) => ({\n display: !props.placeholder || props.label ? 'none' : undefined\n }),\n 'option--selected': {\n fontWeight: 400\n },\n clearIndicator: {\n padding: theme.spacing(1),\n margin: theme.spacing(0.25, 0.5)\n },\n dropdownIndicator: {\n padding: theme.spacing(1),\n margin: theme.spacing(0.25, 0.5)\n }\n}));\n\nlet id = 0;\nconst getInputId = () => `custom-select-${id++}`;\n\nfunction MultiSelect(props) {\n const {\n label,\n creatable,\n getOptions,\n loadingIndicator,\n components: componentsProp,\n classes: classesProp,\n styles: stylesProp,\n onChange: onChangeProp,\n onInputChange: onInputChangeProp,\n menuPlacement = 'auto',\n ...reactSelectProps\n } = props;\n\n const SelectComponent = creatable ? CreatableSelect : getOptions ? AsyncSelect : Select;\n\n const [inputValue, setInputValue] = useState('');\n const multiSelectClasses = useStyles(omit(['classes'], props));\n const inputId = getInputId();\n\n const components = {\n ...multiSelectComponents,\n ...componentsProp\n };\n\n const classes = mergeClasses(multiSelectClasses, classesProp);\n\n function handleInputChange(value, {action}) {\n onInputChangeProp(value, {action});\n if (action !== 'set-value') {\n setInputValue(value);\n }\n }\n\n function handleChange(value, actionMeta) {\n onChangeProp(value, actionMeta);\n if (actionMeta.action === 'create-option') {\n setInputValue('');\n onInputChangeProp('', {action: 'input-change'});\n }\n }\n\n const styles = {\n indicatorSeparator: (base) => ({\n ...base,\n margin: '10px 0'\n }),\n loadingIndicator: (base) => ({\n ...base,\n display: loadingIndicator ? base.display : 'none'\n }),\n loadingMessage: (base) => ({\n ...base,\n fontFamily: '\"Roboto\", \"Helvetica\", \"Arial\", sans-serif'\n }),\n ...stylesProp\n };\n\n const labelProps = label\n ? {\n inputId,\n TextFieldProps: {\n label,\n InputLabelProps: {\n htmlFor: inputId,\n shrink: props.value && props.value.length ? true : undefined,\n className: classes.label\n },\n ...props.TextFieldProps\n }\n }\n : {};\n\n return (\n <SelectComponent\n isMulti\n inputId={inputId}\n inputValue={inputValue}\n onChange={handleChange}\n onInputChange={handleInputChange}\n closeMenuOnSelect={false}\n hideSelectedOptions={false}\n classes={classes}\n components={components}\n styles={styles}\n menuPlacement={menuPlacement}\n loadOptions={getOptions}\n {...labelProps}\n {...reactSelectProps}\n />\n );\n}\n\nMultiSelect.defaultProps = {\n creatable: false,\n cacheOptions: true,\n components: {},\n classes: {},\n placeholder: '',\n loadingIndicator: false,\n onInputChange: () => {},\n onChange: () => {}\n};\n\nMultiSelect.propTypes = {\n /**\n * Async creatable multi select with optional placeholder, shrink-label, non-closing menu and options with checkboxes.\n * Based on react-select/creatable and react-select/async.\n * See react-select docs: https://react-select.com\n *\n * Below are listed only props used in the MultiSelect component. Check https://react-select.com/props first.\n * */\n\n /** Ability to create values. React-select/async-creatable is used internally */\n creatable: PropTypes.bool,\n /** True for enabling cache. Recommended. */\n cacheOptions: PropTypes.bool,\n defaultOptions: PropTypes.bool,\n /** Array of selected options. */\n value: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string.isRequired,\n value: PropTypes.any\n })\n ),\n options: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string.isRequired,\n value: PropTypes.any\n })\n ),\n /** Way to receive updated values */\n onChange: PropTypes.func,\n /** Way to receive updated inputValue */\n onInputChange: PropTypes.func,\n /** Input placeholder. Will not be shown if the label prop is specified */\n placeholder: PropTypes.string,\n /** Floating label from @material-ui/core/TextField component */\n label: PropTypes.string,\n /** Enable to show default react-select's indicator */\n loadingIndicator: PropTypes.bool,\n /** You could redefine any of these components */\n components: PropTypes.shape({\n ClearIndicator: PropTypes.func,\n Control: PropTypes.func,\n DropdownIndicator: PropTypes.func,\n DownChevron: PropTypes.func,\n CrossIcon: PropTypes.func,\n Group: PropTypes.func,\n GroupHeading: PropTypes.func,\n IndicatorsContainer: PropTypes.func,\n IndicatorSeparator: PropTypes.func,\n Input: PropTypes.func,\n LoadingIndicator: PropTypes.func,\n Menu: PropTypes.func,\n MenuList: PropTypes.func,\n MenuPortal: PropTypes.func,\n LoadingMessage: PropTypes.func,\n NoOptionsMessage: PropTypes.func,\n MultiValue: PropTypes.func,\n MultiValueContainer: PropTypes.func,\n MultiValueLabel: PropTypes.func,\n MultiValueRemove: PropTypes.func,\n Option: PropTypes.func,\n Placeholder: PropTypes.func,\n SelectContainer: PropTypes.func,\n SingleValue: PropTypes.func,\n ValueContainer: PropTypes.func\n }),\n /** Classes are passed to mui skin components. Provided classes will be merged with existing ones. */\n classes: PropTypes.shape({\n control: PropTypes.string,\n valueContainer: PropTypes.string,\n multiValue: PropTypes.string,\n noOptionsMessage: PropTypes.string,\n singleValue: PropTypes.string,\n placeholder: PropTypes.string,\n menu: PropTypes.string,\n clearIndicator: PropTypes.string,\n dropdownIndicator: PropTypes.string,\n option: PropTypes.string,\n 'option--selected': PropTypes.string,\n label: PropTypes.string\n }),\n /**\n * React-select's way to customise style. Could be used to style default react-select components.\n * In other cases better to use classes and components props\n * */\n styles: PropTypes.shape({\n clearIndicator: PropTypes.func,\n container: PropTypes.func,\n control: PropTypes.func,\n dropdownIndicator: PropTypes.func,\n group: PropTypes.func,\n groupHeading: PropTypes.func,\n indicatorsContainer: PropTypes.func,\n indicatorSeparator: PropTypes.func,\n input: PropTypes.func,\n loadingIndicator: PropTypes.func,\n loadingMessage: PropTypes.func,\n menu: PropTypes.func,\n menuList: PropTypes.func,\n menuPortal: PropTypes.func,\n multiValue: PropTypes.func,\n multiValueLabel: PropTypes.func,\n multiValueRemove: PropTypes.func,\n noOptionsMessage: PropTypes.func,\n option: PropTypes.func,\n placeholder: PropTypes.func,\n singleValue: PropTypes.func,\n valueContainer: PropTypes.func\n }),\n /** Props from https://material-ui.com/api/text-field/ */\n TextFieldProps: PropTypes.object /* eslint-disable-line react/forbid-prop-types */,\n getOptions: PropTypes.func,\n menuPlacement: PropTypes.string,\n menuPortalTarget: PropTypes.object,\n getOptionValue: PropTypes.func,\n isSearchable: PropTypes.bool,\n inputRef: PropTypes.shape({current: PropTypes.object})\n};\n\nexport default MultiSelect;\n","import MultiSelect from './MultiSelect';\n\nexport default MultiSelect;\n","import {curry, defaultTo, mergeAll, pick, pipe, prop, propEq, __} from 'ramda';\n\nexport const getReltioViewId = (id) => id.split(/\\d+_/)[1];\n\nexport const reltioLayoutItemToReactGridLayoutItem = ({\n x,\n y,\n width,\n height,\n id,\n minWidth,\n minHeight,\n maxWidth,\n maxHeight,\n isStatic\n}) => ({\n x,\n y,\n w: width,\n h: height,\n minW: minWidth,\n minH: minHeight,\n maxW: maxWidth,\n maxH: maxHeight,\n i: id,\n static: isStatic\n});\n\nexport const reactGridLayoutItemToReltioLayoutItem = ({x, y, w, h, maxW, minW, minH, maxH, i, ...obj}) => ({\n x,\n y,\n width: w,\n height: h,\n minWidth: minW,\n minHeight: minH,\n maxWidth: maxW,\n maxHeight: maxH,\n id: i,\n isStatic: obj.static\n});\n\nexport const reltioLayoutToReactGridLayout = (layout) => (layout || []).map(reltioLayoutItemToReactGridLayoutItem);\n\nexport const reactGridLayoutToReltioLayout = (layout) => (layout || []).map(reactGridLayoutItemToReltioLayoutItem);\n\nexport const getReltioLayoutItemById = curry((layout, id) => (layout || []).find(propEq('id', id)));\n\nconst updateExtraPropsInLayoutItem = curry((props, from, to) => mergeAll([to, pick(props, from)]));\n\nexport const copyPropsFromPreviousLayout = curry((props, oldReltioLayout, reltioLayout) =>\n (reltioLayout || []).map((layoutItem) =>\n pipe(\n prop('id'),\n getReltioLayoutItemById(oldReltioLayout),\n defaultTo({}),\n updateExtraPropsInLayoutItem(props, __, layoutItem)\n )(layoutItem)\n )\n);\n\nexport const calcHeight = (height, options) => {\n const {margin, rowHeight} = options;\n\n return Math.ceil((height + margin[1]) / (rowHeight + margin[1]));\n};\n","export const RESIZE_ICON = `<svg width=\"10\" height=\"10\" viewBox=\"0 0 10 10\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path stroke=\"#505050\" stroke-opacity=\".54\" d=\"M9.5 0v10M0 9.5h9M7.5 4v4M4 7.5h3\"/>\n</svg>`;\n","import {makeStyles} from '@material-ui/core/styles';\nimport {svg2Url} from '@reltio/mdm-sdk';\nimport {RESIZE_ICON} from './icons/ResizeIcon.svg';\n\nexport const useStyles = makeStyles((_) => ({\n gridLayout: {\n position: 'relative',\n width: '100%',\n '& .react-grid-item': {\n '&.react-grid-placeholder': {\n background: 'rgba(0, 0, 0, 0.03)',\n border: '2px dashed rgba(0, 0, 0, 0.3)',\n borderRadius: '3px',\n transitionDuration: '100ms',\n zIndex: 7,\n userSelect: 'none',\n '& .react-resizable-handle': {\n display: 'none'\n }\n },\n '&.static .react-resizable-handle': {\n display: 'none'\n },\n '&.cssTransforms': {\n transitionProperty: 'transform'\n },\n '&.resizing': {\n zIndex: 9,\n willChange: 'width, height',\n pointerEvents: 'none'\n },\n '&.react-draggable-dragging': {\n transition: 'none',\n zIndex: 8,\n willChange: 'transform',\n '& .react-resizable-handle': {\n backgroundImage: 'none'\n }\n },\n '& .react-resizable-handle': {\n position: 'absolute',\n width: '17px',\n height: '17px',\n bottom: 0,\n right: 0,\n zIndex: 20,\n backgroundImage: `url('${svg2Url(RESIZE_ICON)}')`,\n backgroundRepeat: 'no-repeat',\n backgroundOrigin: 'content-box',\n boxSizing: 'border-box',\n cursor: 'se-resize'\n },\n '&.fullscreen': {\n visibility: 'visible',\n position: 'unset',\n width: '100% !important',\n height: '100% !important',\n transform: 'translate(0) !important'\n }\n }\n },\n\n gridFullscreen: {\n height: '100% !important',\n overflowY: 'hidden',\n '& .react-resizable-handle, & .react-grid-item': {\n visibility: 'hidden'\n }\n }\n}));\n","import PropTypes from 'prop-types';\nimport React, {useCallback, useMemo, useRef, useState, memo} from 'react';\nimport GridLayout from 'react-grid-layout';\nimport ReactResizeDetector from 'react-resize-detector';\nimport {identity, pipe} from 'ramda';\nimport classnames from 'classnames';\nimport {\n reltioLayoutToReactGridLayout,\n reactGridLayoutToReltioLayout,\n reactGridLayoutItemToReltioLayoutItem,\n copyPropsFromPreviousLayout,\n calcHeight,\n getReltioLayoutItemById\n} from './helpers';\n\nimport {useStyles} from './styles';\n\nconst ReltioGridLayout = ({\n views,\n layout,\n layoutOptions,\n onLayoutChanged,\n draggableHandle,\n LayoutItem,\n onRemove,\n onDrop,\n droppingItem,\n isDroppable,\n classes\n}) => {\n const ref = useRef();\n const styles = useStyles();\n const [fullscreenItemId, setFullscreenItemId] = useState(null);\n const [width, setWidth] = useState(0);\n const {cols, rowHeight, margin} = layoutOptions;\n const processedLayout = useMemo(() => reltioLayoutToReactGridLayout(layout), [layout]);\n const onReltioLayoutChanged = pipe(\n reactGridLayoutToReltioLayout,\n copyPropsFromPreviousLayout(['autosizing'], layout),\n onLayoutChanged\n );\n const handleDrop = (layout, layoutItem, e) => {\n if (onDrop) {\n onDrop(reactGridLayoutToReltioLayout(layout), reactGridLayoutItemToReltioLayoutItem(layoutItem), e);\n }\n };\n const onToggleFullscreen = useCallback((id) => setFullscreenItemId((prevId) => (prevId ? null : id)), []);\n const isFullscreenEnabled = fullscreenItemId !== null;\n\n const onItemHeightResize = useCallback(\n (height, layoutId) => {\n let isLayoutChanged = false;\n\n const newLayout = layout.map((layoutItem) => {\n if (layoutItem.id === layoutId && height) {\n const newHeight = calcHeight(height, layoutOptions);\n\n if (layoutItem.height !== newHeight) {\n isLayoutChanged = true;\n return {\n ...layoutItem,\n minHeight: newHeight,\n maxHeight: newHeight,\n height: newHeight\n };\n }\n }\n return layoutItem;\n });\n\n if (isLayoutChanged) {\n onLayoutChanged(newLayout);\n }\n },\n [layout, layoutOptions, onLayoutChanged]\n );\n\n const getAutosizeComponent = (layoutItemId) => {\n return (\n <ReactResizeDetector\n handleHeight\n onResize={(width, height) => {\n onItemHeightResize(height, layoutItemId);\n }}\n />\n );\n };\n\n return (\n <>\n <ReactResizeDetector\n refreshMode=\"debounce\"\n refreshRate={50}\n handleWidth={true}\n onResize={(width) => setWidth(width)}\n />\n <GridLayout\n innerRef={ref}\n layout={processedLayout}\n cols={cols}\n draggableHandle={draggableHandle}\n autoSize={true}\n rowHeight={rowHeight}\n width={width}\n margin={margin}\n onLayoutChange={onReltioLayoutChanged}\n isResizable={!isFullscreenEnabled}\n isDraggable={!isFullscreenEnabled}\n className={classnames(classes.root, styles.gridLayout, {[styles.gridFullscreen]: isFullscreenEnabled})}\n onDrop={handleDrop}\n droppingItem={droppingItem}\n isDroppable={isDroppable}\n >\n {processedLayout.map((layoutItem) => {\n const isItemFullscreen = fullscreenItemId === layoutItem.i;\n const isAutosize = (getReltioLayoutItemById(layout, layoutItem.i) || {}).autosizing;\n const autosizeComponent = isAutosize ? {AutosizeComponent: getAutosizeComponent(layoutItem.i)} : {};\n return (\n <LayoutItem\n key={layoutItem.i}\n layoutItemConfig={layoutItem}\n views={views}\n onToggleFullscreen={onToggleFullscreen}\n onRemove={onRemove}\n className={classnames({fullscreen: isItemFullscreen}, classes.item)}\n isFullscreen={isItemFullscreen}\n {...autosizeComponent}\n />\n );\n })}\n </GridLayout>\n </>\n );\n};\n\nReltioGridLayout.defaultProps = {\n layoutOptions: {\n cols: 4,\n rowHeight: 30,\n margin: [15, 15]\n },\n onConfigChanged: identity,\n onLayoutChanged: identity,\n classes: {}\n};\nReltioGridLayout.propTypes = {\n views: PropTypes.array,\n layout: PropTypes.array,\n layoutOptions: PropTypes.object,\n onConfigChanged: PropTypes.func,\n onLayoutChanged: PropTypes.func,\n onDrop: PropTypes.func,\n onRemove: PropTypes.func,\n LayoutItem: PropTypes.elementType,\n draggableHandle: PropTypes.string,\n isDroppable: PropTypes.bool,\n droppingItem: PropTypes.object,\n classes: PropTypes.shape({\n root: PropTypes.string,\n item: PropTypes.string\n })\n};\n\nexport default memo(ReltioGridLayout);\n","import React from 'react';\n\nconst Spacer = () => <div style={{flex: 1}} />;\n\nexport default Spacer;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n loader: {\n width: '100%',\n top: 0,\n left: 0,\n position: 'absolute',\n borderRadius: '2px'\n }\n});\n","import React from 'react';\nimport {LinearProgress as LinearProgress} from '@material-ui/core';\nimport {useStyles} from './styles';\n\nconst DashboardLinearLoader = () => {\n const styles = useStyles();\n return <LinearProgress color=\"secondary\" className={styles.loader} />;\n};\n\nexport default DashboardLinearLoader;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles(() => ({\n view: {\n flex: 1,\n width: '100%',\n height: '100%',\n overflow: 'hidden'\n }\n}));\n","import React from 'react';\nimport {BasicView} from '@reltio/components';\nimport {DashboardViewIdContext} from '../../contexts/DashboardViewIdContext';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n id: string;\n children: React.ReactNode;\n};\n\nconst LayoutItemView = ({id, children}: Props) => {\n const styles = useStyles();\n\n return (\n <DashboardViewIdContext.Provider value={id}>\n <BasicView className={styles.view}>{children}</BasicView>\n </DashboardViewIdContext.Provider>\n );\n};\n\nexport default LayoutItemView;\n","import React from 'react';\n\nexport const DashboardViewIdContext = React.createContext(null);\n\nDashboardViewIdContext.displayName = 'DashboardViewIdContext';\n","import {useCallback, useEffect, useState} from 'react';\nimport {RequestStates} from '@reltio/components';\nimport {assocPath} from 'ramda';\nimport {\n getSavedSearches,\n getTotalsForQuery,\n promiseAllSettled,\n replacePlaceholdersInQuery,\n SavedSearchesOptions,\n SavedSearchesResponse\n} from '@reltio/mdm-sdk';\nimport {SavedSearchData} from '../types/SavedSearchData';\n\ntype Props = {\n options: SavedSearchesOptions;\n offset: number;\n max: number;\n};\n\nexport const useSavedSearchesRequest = ({options, offset, max}: Props) => {\n const [data, setData] = useState<SavedSearchData[]>([]);\n const [total, setTotal] = useState<number>(0);\n const [requestState, setRequestState] = useState<RequestStates>(RequestStates.INIT);\n const onError = (error) => {\n console.error(error); // eslint-disable-line\n setRequestState(RequestStates.ERROR);\n setData([]);\n };\n const loadData = useCallback(() => {\n setRequestState(RequestStates.LOADING);\n const onRequestFinished = (data) => {\n setData(data.result || []);\n setTotal(data.total);\n setRequestState(RequestStates.LOADED);\n };\n const {countResults, ...restOptions} = (options || {}) as Required<SavedSearchesOptions>;\n const getData = async () => {\n const {result = [], total}: SavedSearchesResponse = await getSavedSearches({\n offset,\n max,\n ...restOptions\n });\n if (countResults) {\n const totalRequests: Array<Promise<{total: number}>> = result.map((search) =>\n getTotalsForQuery(replacePlaceholdersInQuery(search.query))\n );\n const totalResults = await promiseAllSettled(totalRequests);\n const searchesWithCount: SavedSearchData[] = totalResults.reduce(\n (searchesWithTotal, {status, value, reason}, searchIndex) => {\n switch (status) {\n case 'fulfilled':\n return assocPath([searchIndex, 'count'], value.total, searchesWithTotal);\n case 'rejected':\n console.error(reason);\n break;\n }\n return searchesWithTotal;\n },\n result\n );\n onRequestFinished({result: searchesWithCount, total});\n } else {\n onRequestFinished({result, total});\n }\n };\n getData().catch(onError);\n }, [options, max, offset]);\n\n const refreshAction = () => {\n try {\n loadData();\n } catch (e) {\n onError(e);\n }\n };\n\n useEffect(() => {\n refreshAction();\n }, [loadData]);\n\n return {state: requestState, data, reload: refreshAction, total};\n};\n","import {subtract} from 'ramda';\n\nconst ROWS_PER_PAGE_OPTIONS = [10, 25, 50, 100];\nexport const [DEFAULT_ROWS_PER_PAGE] = ROWS_PER_PAGE_OPTIONS;\nexport const getRowsPerPageOptions = (defaultRowsPerPage) =>\n ROWS_PER_PAGE_OPTIONS.filter((option) => option !== defaultRowsPerPage)\n .concat(defaultRowsPerPage)\n .sort(subtract);\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles(() => ({\n itemTitle: {\n fontSize: '13px'\n },\n itemIcon: {\n minWidth: '49px'\n },\n menuItem: {\n padding: '12px 16px',\n minWidth: '177px'\n },\n openIcon: {\n padding: '4px',\n borderRadius: '2px',\n marginTop: '-6px',\n marginRight: '-10px'\n }\n}));\n","import React, {useState, ReactNode, MouseEvent} from 'react';\nimport {Menu as Menu} from '@material-ui/core';\nimport {MenuItem as MenuItem} from '@material-ui/core';\nimport {Typography as Typography} from '@material-ui/core';\nimport {ListItemIcon as ListItemIcon} from '@material-ui/core';\nimport {IconButton as IconButton} from '@material-ui/core';\nimport MoreVertIcon from '@material-ui/icons/MoreVert';\nimport {useStyles} from './styles';\n\ninterface MenuItem {\n id: string;\n title: string;\n icon: ReactNode;\n active: boolean;\n action: () => void;\n}\n\ntype DashboardPopupMenuProps = {\n items: MenuItem[];\n};\n\nconst DashboardPopupMenu = ({items}: DashboardPopupMenuProps) => {\n const [anchorEl, setAnchorEl] = useState<HTMLElement | null>(null);\n const isMenuOpen = Boolean(anchorEl);\n const styles = useStyles();\n\n const handleMenuClick = (e: MouseEvent<HTMLButtonElement>) => setAnchorEl(e.currentTarget);\n\n const handleMenuClose = () => setAnchorEl(null);\n\n const handleItemClick = (action: () => void) => () => {\n handleMenuClose();\n action();\n };\n\n return (\n <>\n <IconButton className={styles.openIcon} aria-controls=\"menu\" aria-haspopup=\"true\" onClick={handleMenuClick}>\n <MoreVertIcon />\n </IconButton>\n <Menu\n id=\"menu\"\n anchorEl={anchorEl}\n open={isMenuOpen}\n onClose={handleMenuClose}\n transitionDuration={0}\n getContentAnchorEl={null}\n anchorOrigin={{\n vertical: 'bottom',\n horizontal: 'right'\n }}\n transformOrigin={{\n vertical: 'top',\n horizontal: 'right'\n }}\n >\n {items\n .filter((item) => item.active)\n .map(({id, icon, title, action}) => (\n <MenuItem key={id} onClick={handleItemClick(action)} className={styles.menuItem}>\n <ListItemIcon className={styles.itemIcon}>{icon}</ListItemIcon>\n <Typography className={styles.itemTitle}>{title}</Typography>\n </MenuItem>\n ))}\n </Menu>\n </>\n );\n};\n\nexport default DashboardPopupMenu;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles(() => ({\n toolbarRoot: {\n padding: '16px',\n minHeight: '18px',\n lineHeight: '18px',\n marginBottom: '8px'\n },\n title: {\n fontSize: '16px',\n lineHeight: '20px',\n fontWeight: 'normal',\n color: 'rgba(0, 0, 0, 0.87)',\n letterSpacing: '0.15px',\n marginRight: '6px'\n },\n dragIcon: {\n position: 'absolute',\n left: '50%',\n top: '-3px',\n transform: 'translateX(-50%) rotate(90deg)',\n color: 'rgba(0, 0, 0, 0.3)',\n cursor: 'move',\n zIndex: 8,\n visibility: 'hidden',\n '.react-draggable $toolbarRoot:hover &.viewDraggableHandle': {\n visibility: 'visible'\n }\n },\n rightMenu: {\n display: 'flex',\n flexGrow: 1,\n justifyContent: 'flex-end',\n alignItems: 'baseline'\n },\n updatedChip: {\n background: '#FF9E1B',\n height: 20,\n fontSize: '10px',\n color: 'white',\n marginRight: '6px'\n }\n}));\n","import React, {useContext, useMemo} from 'react';\nimport {BasicViewHeader} from '@reltio/components';\nimport {DashboardViewIdContext} from '../../contexts/DashboardViewIdContext';\nimport {DashboardPopupMenu} from '../index';\nimport {Chip as Chip} from '@material-ui/core';\nimport FullscreenIcon from '@material-ui/icons/Fullscreen';\nimport FullscreenExitIcon from '@material-ui/icons/FullscreenExit';\nimport HighlightOffIcon from '@material-ui/icons/HighlightOff';\nimport ReplayIcon from '@material-ui/icons/Replay';\nimport DragIndicatorIcon from '@material-ui/icons/DragIndicator';\nimport i18n from 'ui-i18n';\n\nimport classnames from 'classnames';\nimport {useStyles} from './styles';\n\ntype Props = {\n title: string;\n onToggleFullscreen: (id: string) => void;\n isFullscreen: boolean;\n isUpdated?: boolean;\n onRefresh?: () => void;\n onRemove?: (id: string) => void;\n children?: React.ReactNode;\n};\n\nconst LayoutItemHeader = ({\n title,\n onToggleFullscreen,\n isUpdated = false,\n isFullscreen,\n onRemove,\n onRefresh,\n children\n}: Props) => {\n const id = useContext(DashboardViewIdContext);\n const menuItems = useMemo(\n () => [\n {\n id: 'refresh',\n title: 'Refresh',\n icon: <ReplayIcon />,\n active: !!onRefresh,\n action: () => onRefresh()\n },\n {\n id: 'fullscreen',\n title: 'Fullscreen',\n icon: <FullscreenIcon />,\n active: !isFullscreen,\n action: () => onToggleFullscreen(id)\n },\n {\n id: 'exitFullscreen',\n title: 'Exit fullscreen',\n icon: <FullscreenExitIcon />,\n active: isFullscreen,\n action: () => onToggleFullscreen(id)\n },\n {\n id: 'remove',\n title: 'Remove',\n icon: <HighlightOffIcon />,\n active: !!onRemove,\n action: () => {\n onRemove(id);\n if (isFullscreen) onToggleFullscreen(id);\n }\n }\n ],\n [id, isFullscreen, onRemove, onToggleFullscreen, onRefresh]\n );\n const styles = useStyles();\n\n return (\n <BasicViewHeader title={title} className={styles.toolbarRoot} classes={{title: styles.title}}>\n {isUpdated && <Chip label={i18n.text('Updated')} size=\"small\" className={styles.updatedChip} />}\n <div className={styles.rightMenu}>\n {children}\n <DashboardPopupMenu items={menuItems} />\n </div>\n <DragIndicatorIcon className={classnames('viewDraggableHandle', styles.dragIcon)} />\n </BasicViewHeader>\n );\n};\n\nexport default LayoutItemHeader;\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => React.createElement(\"svg\", _extends({\n width: \"148\",\n height: \"148\",\n viewBox: \"0 0 148 148\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n}, props), React.createElement(\"mask\", {\n id: \"svg2791016623a\",\n style: {\n maskType: \"alpha\"\n },\n maskUnits: \"userSpaceOnUse\",\n x: \"0\",\n y: \"0\",\n width: \"148\",\n height: \"148\"\n}, React.createElement(\"path\", {\n d: \"M74 148c40.869 0 74-33.131 74-74 0-40.87-33.131-74-74-74C33.13 0 0 33.13 0 74c0 40.869 33.13 74 74 74z\",\n fill: \"#fff\"\n})), React.createElement(\"g\", {\n mask: \"url(#svg2791016623a)\"\n}, React.createElement(\"path\", {\n d: \"M74 148c40.869 0 74-33.131 74-74 0-40.87-33.131-74-74-74C33.13 0 0 33.13 0 74c0 40.869 33.13 74 74 74z\",\n fill: \"#0072CE\",\n fillOpacity: \".1\"\n}), React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M0 5.203h148V148H0V5.203z\",\n fill: \"url(#nodata__paint0_linear)\"\n}), React.createElement(\"g\", {\n opacity: \".9\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n fill: \"#fff\"\n}, React.createElement(\"path\", {\n opacity: \".5\",\n d: \"M25.186 26.016h131.896V128.04H25.186V26.016z\",\n fillOpacity: \".8\"\n}), React.createElement(\"path\", {\n opacity: \".9\",\n d: \"M16.766 26.021a4.626 4.626 0 014.623-4.63h129.406a4.623 4.623 0 014.623 4.63v88.107a4.625 4.625 0 01-4.623 4.631H21.389a4.623 4.623 0 01-4.623-4.631V26.021z\"\n})), React.createElement(\"path\", {\n opacity: \".5\",\n d: \"M141.553 50.95a2.315 2.315 0 002.311-2.32 2.315 2.315 0 00-2.311-2.318 2.315 2.315 0 00-2.311 2.319 2.315 2.315 0 002.311 2.318zM133.465 50.95a2.315 2.315 0 002.311-2.32 2.315 2.315 0 00-2.311-2.318 2.314 2.314 0 00-2.311 2.319 2.314 2.314 0 002.311 2.318z\",\n fill: \"#6DBCFF\"\n}), React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M33.808 46.313a5.488 5.488 0 015.489 5.488v.035a5.488 5.488 0 01-10.977 0v-.035a5.488 5.488 0 015.488-5.489z\",\n fill: \"#E3EBF4\"\n}), React.createElement(\"path\", {\n opacity: \".5\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M47.102 46.19h37.054a2.029 2.029 0 010 4.057H47.102a2.028 2.028 0 110-4.057z\",\n fill: \"#B1AABD\"\n}), React.createElement(\"path\", {\n opacity: \".43\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M46.523 53.725h67.006a1.45 1.45 0 010 2.898H46.523a1.449 1.449 0 110-2.898z\",\n fill: \"#B1AABD\"\n}), React.createElement(\"path\", {\n opacity: \".2\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M45.943 58.941h21.62a.87.87 0 010 1.74h-21.62a.87.87 0 110-1.74z\",\n fill: \"#B1AABD\"\n}), React.createElement(\"path\", {\n opacity: \".5\",\n d: \"M71.35 30.664H31.508a3.188 3.188 0 100 6.375H71.35a3.188 3.188 0 000-6.375z\",\n fill: \"#645F6D\"\n}), React.createElement(\"path\", {\n opacity: \".5\",\n d: \"M141.553 72.972a2.315 2.315 0 002.311-2.318 2.315 2.315 0 00-2.311-2.318 2.315 2.315 0 00-2.311 2.318 2.315 2.315 0 002.311 2.319zM133.465 72.972a2.315 2.315 0 002.311-2.318 2.315 2.315 0 00-2.311-2.318 2.314 2.314 0 00-2.311 2.318 2.314 2.314 0 002.311 2.319z\",\n fill: \"#6DBCFF\"\n}), React.createElement(\"path\", {\n d: \"M39.297 73.824a5.488 5.488 0 10-10.977 0v.035a5.488 5.488 0 0010.977 0v-.035z\",\n fill: \"#E3EBF4\"\n}), React.createElement(\"path\", {\n opacity: \".5\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M47.102 68.214h43.894a2.029 2.029 0 010 4.057H47.102a2.029 2.029 0 010-4.057z\",\n fill: \"#B1AABD\"\n}), React.createElement(\"path\", {\n opacity: \".43\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M46.523 75.748h74.516a1.45 1.45 0 010 2.898H46.523a1.449 1.449 0 110-2.898z\",\n fill: \"#B1AABD\"\n}), React.createElement(\"path\", {\n opacity: \".2\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M45.943 80.965h60.077a.87.87 0 010 1.739H45.943a.87.87 0 010-1.74z\",\n fill: \"#B1AABD\"\n}), React.createElement(\"path\", {\n opacity: \".5\",\n d: \"M141.553 94.996a2.315 2.315 0 002.311-2.318 2.315 2.315 0 00-2.311-2.319 2.315 2.315 0 00-2.311 2.319 2.315 2.315 0 002.311 2.318zM133.465 94.996a2.315 2.315 0 002.311-2.318 2.315 2.315 0 00-2.311-2.319 2.314 2.314 0 00-2.311 2.319 2.314 2.314 0 002.311 2.318z\",\n fill: \"#6DBCFF\"\n}), React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M33.808 90.36a5.488 5.488 0 015.489 5.488v.035a5.488 5.488 0 11-10.977 0v-.035a5.488 5.488 0 015.488-5.489z\",\n fill: \"#E3EBF4\"\n}), React.createElement(\"path\", {\n opacity: \".5\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M47.102 90.237h58.915a2.028 2.028 0 010 4.057H47.102a2.029 2.029 0 010-4.057z\",\n fill: \"#B1AABD\"\n}), React.createElement(\"path\", {\n opacity: \".43\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M46.523 97.772h49.096a1.449 1.449 0 110 2.897H46.524a1.448 1.448 0 110-2.897z\",\n fill: \"#B1AABD\"\n}), React.createElement(\"path\", {\n opacity: \".2\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M45.943 102.988h21.62a.87.87 0 010 1.739h-21.62a.87.87 0 110-1.739z\",\n fill: \"#B1AABD\"\n}), React.createElement(\"path\", {\n opacity: \".1\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M102.927 64.75l44.536 77.139-58.989 34.057-44.536-77.14.405-.234c4.06 9.263 12.074 16.712 22.462 19.616 18.103 5.059 36.562-5.599 41.232-23.805 2.679-10.449.235-21.113-5.757-29.26l.647-.374z\",\n fill: \"url(#nodata__paint1_linear)\"\n}), React.createElement(\"path\", {\n opacity: \".2\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M56.352 103.62c10.385 10.611 27.223 10.611 37.609 0 10.385-10.612 10.385-27.816 0-38.427-10.386-10.611-27.224-10.611-37.61 0-10.385 10.611-10.385 27.815 0 38.427z\",\n fill: \"url(#nodata__paint2_linear)\"\n}), React.createElement(\"g\", {\n filter: \"url(#nodata__filter0_d)\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\"\n}, React.createElement(\"path\", {\n d: \"M74.981 49.719c19.06 0 34.512 15.462 34.512 34.536a34.418 34.418 0 01-8.665 22.886l29.603 29.623a51.708 51.708 0 01-5.837 5.43l-29.705-29.725a34.338 34.338 0 01-19.908 6.322c-19.06 0-34.512-15.462-34.512-34.536S55.92 49.719 74.98 49.719zm0 10.265c-13.395 0-24.254 10.866-24.254 24.27 0 13.405 10.859 24.272 24.254 24.272 13.395 0 24.254-10.867 24.254-24.271S88.376 59.984 74.981 59.984z\",\n fill: \"#B5C8C9\"\n}), React.createElement(\"path\", {\n d: \"M52.903 110.801c-7.598-6.335-12.434-15.876-12.434-26.546 0-19.074 15.451-34.536 34.512-34.536 10.663 0 20.197 4.839 26.528 12.442l-5.662 5.667c-4.862-6.175-12.401-10.14-20.866-10.14-14.662 0-26.548 11.895-26.548 26.567 0 8.47 3.962 16.015 10.132 20.88l-5.662 5.666z\",\n fill: \"#fff\",\n fillOpacity: \".4\"\n})), React.createElement(\"g\", {\n style: {\n mixBlendMode: \"soft-light\"\n },\n opacity: \".4\"\n}, React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M56.352 103.62c10.385 10.611 27.223 10.611 37.609 0 10.385-10.612 10.385-27.816 0-38.427-10.386-10.611-27.224-10.611-37.61 0-10.385 10.611-10.385 27.815 0 38.427z\",\n fill: \"#D9F5FF\"\n})), React.createElement(\"g\", {\n style: {\n mixBlendMode: \"overlay\"\n }\n}, React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M71.621 91.769c0-2.272.257-4.065.77-5.38.513-1.314 1.346-2.453 2.497-3.418 1.151-.964 2.026-1.847 2.625-2.648.6-.802.899-1.684.899-2.649 0-2.35-1.012-3.524-3.034-3.524-.933 0-1.688.343-2.263 1.027-.576.685-.88 1.61-.91 2.777h-7.888c.031-3.111 1.011-5.534 2.94-7.27 1.93-1.734 4.636-2.601 8.121-2.601 3.47 0 6.157.801 8.063 2.404 1.905 1.602 2.858 3.881 2.858 6.837 0 1.291-.257 2.466-.77 3.524-.513 1.058-1.338 2.139-2.474 3.243l-2.683 2.497c-.762.732-1.291 1.482-1.587 2.252-.295.77-.459 1.746-.49 2.929h-6.674zm-.957 7.094c0-1.151.416-2.096 1.249-2.835.832-.74 1.87-1.109 3.115-1.109s2.283.37 3.115 1.109c.833.739 1.249 1.684 1.249 2.835s-.416 2.096-1.249 2.835c-.832.739-1.87 1.109-3.115 1.109s-2.283-.37-3.115-1.109c-.833-.739-1.249-1.684-1.249-2.835z\",\n fill: \"#000\",\n fillOpacity: \".87\"\n})), React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M71.621 91.769c0-2.272.257-4.065.77-5.38.513-1.314 1.346-2.453 2.497-3.418 1.151-.964 2.026-1.847 2.625-2.648.6-.802.899-1.684.899-2.649 0-2.35-1.012-3.524-3.034-3.524-.933 0-1.688.343-2.263 1.027-.576.685-.88 1.61-.91 2.777h-7.888c.031-3.111 1.011-5.534 2.94-7.27 1.93-1.734 4.636-2.601 8.121-2.601 3.47 0 6.157.801 8.063 2.404 1.905 1.602 2.858 3.881 2.858 6.837 0 1.291-.257 2.466-.77 3.524-.513 1.058-1.338 2.139-2.474 3.243l-2.683 2.497c-.762.732-1.291 1.482-1.587 2.252-.295.77-.459 1.746-.49 2.929h-6.674zm-.957 7.094c0-1.151.416-2.096 1.249-2.835.832-.74 1.87-1.109 3.115-1.109s2.283.37 3.115 1.109c.833.739 1.249 1.684 1.249 2.835s-.416 2.096-1.249 2.835c-.832.739-1.87 1.109-3.115 1.109s-2.283-.37-3.115-1.109c-.833-.739-1.249-1.684-1.249-2.835z\",\n fill: \"#3C74B4\",\n fillOpacity: \".38\"\n})), React.createElement(\"defs\", null, React.createElement(\"linearGradient\", {\n id: \"nodata__paint0_linear\",\n x1: \"74\",\n y1: \"5.203\",\n x2: \"74\",\n y2: \"148\",\n gradientUnits: \"userSpaceOnUse\"\n}, React.createElement(\"stop\", {\n stopColor: \"#FAFAFA\",\n stopOpacity: \"0\"\n}), React.createElement(\"stop\", {\n offset: \"1\",\n stopColor: \"#F4F4F4\"\n})), React.createElement(\"linearGradient\", {\n id: \"nodata__paint1_linear\",\n x1: \"123.612\",\n y1: \"142.028\",\n x2: \"76.729\",\n y2: \"122.717\",\n gradientUnits: \"userSpaceOnUse\"\n}, React.createElement(\"stop\", {\n stopOpacity: \"0\"\n}), React.createElement(\"stop\", {\n offset: \"1\"\n})), React.createElement(\"linearGradient\", {\n id: \"nodata__paint2_linear\",\n x1: \"75.156\",\n y1: \"57.234\",\n x2: \"75.156\",\n y2: \"111.578\",\n gradientUnits: \"userSpaceOnUse\"\n}, React.createElement(\"stop\", {\n stopColor: \"#EEFBFF\"\n}), React.createElement(\"stop\", {\n offset: \"1\",\n stopColor: \"#0072CE\"\n})), React.createElement(\"filter\", {\n id: \"nodata__filter0_d\",\n x: \"36.469\",\n y: \"47.719\",\n width: \"97.962\",\n height: \"100.475\",\n filterUnits: \"userSpaceOnUse\",\n colorInterpolationFilters: \"sRGB\"\n}, React.createElement(\"feFlood\", {\n floodOpacity: \"0\",\n result: \"BackgroundImageFix\"\n}), React.createElement(\"feColorMatrix\", {\n in: \"SourceAlpha\",\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\n}), React.createElement(\"feOffset\", {\n dy: \"2\"\n}), React.createElement(\"feGaussianBlur\", {\n stdDeviation: \"2\"\n}), React.createElement(\"feColorMatrix\", {\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.2 0\"\n}), React.createElement(\"feBlend\", {\n mode: \"normal\",\n in2: \"BackgroundImageFix\",\n result: \"effect1_dropShadow\"\n}), React.createElement(\"feBlend\", {\n mode: \"normal\",\n in: \"SourceGraphic\",\n in2: \"effect1_dropShadow\",\n result: \"shape\"\n})))));","import {makeStyles} from '@material-ui/core/styles';\n\ntype NoDataContainer = {\n height?: number;\n};\n\nexport const useStyles = makeStyles(() => ({\n noDataContainer: ({height}: NoDataContainer) => ({\n height: height ? `${height}px` : 'auto',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n alignItems: 'center',\n color: 'rgba(0, 0, 0, 0.54)'\n }),\n icon: {\n height: '88px',\n width: '88px',\n marginBottom: '20px'\n }\n}));\n","import React from 'react';\nimport i18n from 'ui-i18n';\nimport {Typography as Typography} from '@material-ui/core';\nimport NoDataIcon from './icons/noData.svg';\nimport {useStyles} from './styles';\n\ntype DashboardNoDataProps = {\n height?: number;\n};\n\nconst DashboardNoData = ({height}: DashboardNoDataProps) => {\n const styles = useStyles({height});\n return (\n <div className={styles.noDataContainer}>\n <NoDataIcon className={styles.icon} />\n <Typography>{i18n.text('No Data')}</Typography>\n </div>\n );\n};\n\nexport default DashboardNoData;\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => React.createElement(\"svg\", _extends({\n width: \"88\",\n height: \"88\",\n viewBox: \"0 0 88 88\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n}, props), React.createElement(\"mask\", {\n id: \"svg3217593551a\",\n style: {\n maskType: \"alpha\"\n },\n maskUnits: \"userSpaceOnUse\",\n x: \"0\",\n y: \"0\",\n width: \"88\",\n height: \"88\"\n}, React.createElement(\"path\", {\n d: \"M44 88c24.3 0 44-19.7 44-44S68.3 0 44 0 0 19.7 0 44s19.7 44 44 44z\",\n fill: \"#fff\"\n})), React.createElement(\"g\", {\n mask: \"url(#svg3217593551a)\"\n}, React.createElement(\"path\", {\n d: \"M44 88c24.3 0 44-19.7 44-44S68.3 0 44 0 0 19.7 0 44s19.7 44 44 44z\",\n fill: \"#CAC4D5\",\n fillOpacity: \".3\"\n}), React.createElement(\"path\", {\n opacity: \".3\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M19.987 6.73l49.449 6.072a.687.687 0 01.596.767l-7.845 63.888a.688.688 0 01-.766.6L7.214 71.4a.688.688 0 01-.599-.763l.408-3.326L19.987 6.73z\",\n fill: \"#fff\"\n}), React.createElement(\"path\", {\n opacity: \".2\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M1.267 25.921l45.86-19.466a.687.687 0 01.9.366l25.15 59.251a.61.61 0 01-.386.84L22.34 82.765a.719.719 0 01-.887-.445l-20.185-56.4z\",\n fill: \"#fff\"\n}), React.createElement(\"path\", {\n d: \"M65.631 9.23H11.017a.688.688 0 00-.687.687v64.37c0 .38.307.687.687.687h54.614c.38 0 .688-.308.688-.687V9.917a.688.688 0 00-.688-.688z\",\n fill: \"#F9F9F9\"\n}), React.createElement(\"path\", {\n opacity: \".1\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M14.885 34.95l3.105-1.666 7.31-4.025 8.852 3.472 7.89-5.223 8.036-2.628 8.113 5.193 3.352-10.255v16.967H14.935l-.05-1.835z\",\n fill: \"#9C6CF0\"\n}), React.createElement(\"path\", {\n opacity: \".2\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M14.885 32.331l3.105-3.761 7.31 4.31 8.852 1.656 7.89-2.205 8.036 1.827 8.113-12.643 3.352.742V36.36H14.935l-.05-4.029z\",\n fill: \"#FA82AA\"\n}), React.createElement(\"path\", {\n opacity: \".2\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M14.885 34.946l3.105.432 7.31 1.01 8.852-5.117 7.89 3.675 8.036 1.839 8.113-1.839 3.352.811v1.028H14.935l-.05-1.839z\",\n fill: \"#4DBEE9\"\n}), React.createElement(\"path\", {\n opacity: \".1\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M61.543 35.288l-.05 1.497H14.885v-5.239l3.352-.276 8.114 4.697 8.036-.679 7.889.82 8.852-.616 7.31-1.601 3.105 1.397z\",\n fill: \"#4DBEE9\"\n}), React.createElement(\"path\", {\n d: \"M21.036 40.178h-5.09a.636.636 0 000 1.272h5.09a.636.636 0 100-1.272z\",\n fill: \"#ACACAC\"\n}), React.createElement(\"path\", {\n opacity: \".3\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M16.582 55.872c.703 0 1.273.57 1.273 1.273V69.02a1.272 1.272 0 11-2.545 0V57.144c0-.702.57-1.272 1.272-1.272zM25.914 55.872c.702 0 1.272.57 1.272 1.273V69.02a1.272 1.272 0 11-2.545 0V57.144c0-.702.57-1.272 1.273-1.272zM39.91 55.872c.703 0 1.273.57 1.273 1.273V69.02a1.272 1.272 0 11-2.545 0V57.144c0-.702.57-1.272 1.273-1.272zM21.248 55.872c.702 0 1.272.57 1.272 1.273V69.02a1.273 1.273 0 01-2.545 0V57.144c0-.702.57-1.272 1.273-1.272zM35.245 55.872c.703 0 1.273.57 1.273 1.273V69.02a1.272 1.272 0 11-2.545 0V57.144c0-.702.57-1.272 1.272-1.272zM30.58 55.872c.702 0 1.272.57 1.272 1.273V69.02a1.272 1.272 0 11-2.545 0V57.144c0-.702.57-1.272 1.272-1.272zM44.577 55.872c.702 0 1.272.57 1.272 1.273V69.02a1.273 1.273 0 01-2.545 0V57.144c0-.702.57-1.272 1.273-1.272z\",\n fill: \"#BDBDBD\"\n}), React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M16.582 65.628c.703 0 1.273.57 1.273 1.272v2.121a1.272 1.272 0 11-2.545 0v-2.12c0-.703.57-1.273 1.272-1.273zM25.914 62.658c.702 0 1.272.57 1.272 1.273v5.09a1.272 1.272 0 11-2.545 0v-5.09c0-.703.57-1.273 1.273-1.273zM39.91 65.628c.703 0 1.273.57 1.273 1.272v2.121a1.272 1.272 0 11-2.545 0v-2.12c0-.703.57-1.273 1.273-1.273zM21.248 66.477c.702 0 1.272.57 1.272 1.272v1.273a1.273 1.273 0 01-2.545 0v-1.273c0-.703.57-1.272 1.273-1.272z\",\n fill: \"#4DBEE9\"\n}), React.createElement(\"path\", {\n d: \"M36.518 65.628a1.272 1.272 0 00-2.545 0v3.393a1.272 1.272 0 102.545 0v-3.393zM31.852 62.234a1.272 1.272 0 10-2.545 0v6.787a1.272 1.272 0 102.545 0v-6.787z\",\n fill: \"#4DBEE9\"\n}), React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M44.577 60.962c.702 0 1.272.57 1.272 1.272v6.787a1.273 1.273 0 01-2.545 0v-6.787c0-.702.57-1.272 1.273-1.272z\",\n fill: \"#4DBEE9\"\n}), React.createElement(\"path\", {\n d: \"M18.915 18.546a1.909 1.909 0 100-3.817 1.909 1.909 0 000 3.817z\",\n fill: \"#9C6CF0\"\n}), React.createElement(\"path\", {\n opacity: \".5\",\n d: \"M34.185 18.546a1.909 1.909 0 100-3.817 1.909 1.909 0 000 3.817z\",\n fill: \"#4DBEE9\"\n}), React.createElement(\"path\", {\n opacity: \".3\",\n d: \"M49.454 18.546a1.909 1.909 0 100-3.817 1.909 1.909 0 000 3.817z\",\n fill: \"#4DBEE9\"\n}), React.createElement(\"path\", {\n opacity: \".8\",\n d: \"M26.55 18.546a1.909 1.909 0 100-3.817 1.909 1.909 0 000 3.817z\",\n fill: \"#FB6597\"\n}), React.createElement(\"path\", {\n d: \"M41.82 18.546a1.909 1.909 0 100-3.817 1.909 1.909 0 000 3.817z\",\n fill: \"#4DBEE9\"\n}), React.createElement(\"path\", {\n opacity: \".2\",\n d: \"M57.09 18.546a1.909 1.909 0 100-3.817 1.909 1.909 0 000 3.817z\",\n fill: \"#4DBEE9\"\n}), React.createElement(\"path\", {\n opacity: \".5\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M16.582 19.818h4.666a.424.424 0 110 .849h-4.666a.424.424 0 110-.849zM31.851 19.818h4.666a.424.424 0 010 .849h-4.666a.424.424 0 110-.849zM47.121 19.818h4.666a.424.424 0 010 .849h-4.666a.424.424 0 010-.849zM24.217 19.818h4.665a.424.424 0 010 .849h-4.665a.424.424 0 010-.849zM39.486 19.818h4.666a.424.424 0 110 .849h-4.666a.424.424 0 110-.849zM54.756 19.818h4.666a.424.424 0 110 .849h-4.666a.424.424 0 110-.849z\",\n fill: \"#ACACAC\"\n}), React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M15.946 43.571h5.09a.636.636 0 110 1.273h-5.09a.636.636 0 010-1.273zM15.946 46.116h5.09a.636.636 0 010 1.273h-5.09a.636.636 0 010-1.273zM15.946 48.661h5.09a.636.636 0 010 1.273h-5.09a.636.636 0 110-1.273zM23.58 43.571h5.09a.636.636 0 110 1.273h-5.09a.636.636 0 010-1.273zM23.58 46.116h5.09a.636.636 0 010 1.273h-5.09a.636.636 0 010-1.273zM23.58 48.661h5.09a.636.636 0 010 1.273h-5.09a.636.636 0 110-1.273zM49.454 43.571h11.028a.636.636 0 010 1.273H49.454a.636.636 0 010-1.273zM49.454 46.116h11.028a.636.636 0 010 1.273H49.454a.636.636 0 010-1.273zM49.454 48.661h11.028a.636.636 0 010 1.273H49.454a.636.636 0 110-1.273zM31.215 43.571h15.27a.636.636 0 110 1.273h-15.27a.636.636 0 010-1.273zM31.215 46.116h15.27a.636.636 0 010 1.273h-15.27a.636.636 0 010-1.273zM31.215 48.661h15.27a.636.636 0 010 1.273h-15.27a.636.636 0 010-1.273zM15.946 51.206h5.09a.636.636 0 110 1.272h-5.09a.636.636 0 110-1.272zM23.58 51.206h5.09a.636.636 0 110 1.272h-5.09a.636.636 0 110-1.272zM49.454 51.206h11.028a.636.636 0 010 1.272H49.454a.636.636 0 110-1.272zM31.215 51.206h15.27a.636.636 0 110 1.272h-15.27a.636.636 0 010-1.272z\",\n fill: \"#E9E9E9\"\n}), React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M49.878 55.872h5.09a.636.636 0 110 1.273h-5.09a.636.636 0 110-1.273z\",\n fill: \"#ACACAC\"\n}), React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M49.878 59.69h11.029a.636.636 0 010 1.272H49.878a.636.636 0 110-1.273zM49.878 62.234h11.029a.636.636 0 010 1.273H49.878a.636.636 0 010-1.273zM49.878 64.78h11.029a.636.636 0 010 1.272H49.878a.636.636 0 010-1.273z\",\n fill: \"#E9E9E9\"\n}), React.createElement(\"path\", {\n d: \"M54.968 67.324h-5.09a.636.636 0 000 1.273h5.09a.636.636 0 000-1.273z\",\n fill: \"#E9E9E9\"\n}), React.createElement(\"g\", {\n filter: \"url(#error__filter0_d)\"\n}, React.createElement(\"path\", {\n d: \"M57.406 74.25c9.493 0 17.188-7.695 17.188-17.188 0-9.492-7.695-17.187-17.188-17.187-9.492 0-17.187 7.695-17.187 17.188 0 9.492 7.695 17.187 17.187 17.187z\",\n fill: \"#000\"\n})), React.createElement(\"path\", {\n d: \"M57.406 74.25c9.493 0 17.188-7.695 17.188-17.188 0-9.492-7.695-17.187-17.188-17.187-9.492 0-17.187 7.695-17.187 17.188 0 9.492 7.695 17.187 17.187 17.187z\",\n fill: \"#F25252\"\n}), React.createElement(\"path\", {\n opacity: \".15\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M57.406 34.719c12.34 0 22.344 10.003 22.344 22.343S69.746 79.406 57.406 79.406c-12.34 0-22.343-10.003-22.343-22.344 0-12.34 10.003-22.343 22.343-22.343zm-.172 2.406c-10.916 0-19.765 8.85-19.765 19.766 0 10.916 8.85 19.765 19.765 19.765C68.151 76.656 77 67.806 77 56.891c0-10.917-8.85-19.766-19.766-19.766z\",\n fill: \"#F25252\"\n}), React.createElement(\"path\", {\n opacity: \".3\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M57.406 38.844c10.062 0 18.219 8.157 18.219 18.218 0 10.062-8.157 18.22-18.219 18.22-10.062 0-18.218-8.158-18.218-18.22 0-10.061 8.156-18.218 18.218-18.218zm0 2.043c-8.933 0-16.175 7.242-16.175 16.175 0 8.934 7.242 16.176 16.175 16.176 8.934 0 16.176-7.242 16.176-16.175 0-8.934-7.242-16.176-16.176-16.176z\",\n fill: \"#F25252\"\n}), React.createElement(\"path\", {\n opacity: \".05\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M57.406 26.469C74.303 26.469 88 40.166 88 57.062c0 16.897-13.697 30.594-30.594 30.594-16.896 0-30.593-13.697-30.593-30.594 0-16.896 13.697-30.593 30.593-30.593zm-.172 3.437c-14.903 0-26.984 12.082-26.984 26.985 0 14.903 12.081 26.984 26.984 26.984 14.903 0 26.985-12.081 26.985-26.984 0-14.903-12.082-26.985-26.985-26.985z\",\n fill: \"#F25252\"\n}), React.createElement(\"path\", {\n d: \"M57.406 71.844c8.164 0 14.782-6.618 14.782-14.781 0-8.164-6.618-14.782-14.782-14.782-8.163 0-14.781 6.618-14.781 14.782 0 8.163 6.618 14.78 14.781 14.78z\",\n fill: \"#FF6A6A\"\n}), React.createElement(\"path\", {\n opacity: \".05\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M58.298 46.448L75.18 63.331l-9.114 12.078h-2.029l-7.582-7.582 1.006-3.178.837-18.2z\",\n fill: \"url(#error__paint0_linear)\"\n}), React.createElement(\"g\", {\n filter: \"url(#error__filter1_d)\"\n}, React.createElement(\"path\", {\n d: \"M57.406 68.063a1.719 1.719 0 100-3.438 1.719 1.719 0 000 3.438z\",\n fill: \"#000\"\n})), React.createElement(\"path\", {\n d: \"M57.406 68.063a1.719 1.719 0 100-3.438 1.719 1.719 0 000 3.438z\",\n fill: \"#fff\"\n}), React.createElement(\"g\", {\n filter: \"url(#error__filter2_d)\"\n}, React.createElement(\"path\", {\n d: \"M57.406 46.063c.95 0 1.719.769 1.719 1.718v12.375a1.719 1.719 0 11-3.438 0V47.781c0-.949.77-1.718 1.72-1.718z\",\n fill: \"#000\"\n})), React.createElement(\"path\", {\n d: \"M57.406 46.063c.95 0 1.719.769 1.719 1.718v12.375a1.719 1.719 0 11-3.438 0V47.781c0-.949.77-1.718 1.72-1.718z\",\n fill: \"#fff\"\n})), React.createElement(\"defs\", null, React.createElement(\"filter\", {\n id: \"error__filter0_d\",\n x: \"36.219\",\n y: \"37.875\",\n width: \"42.375\",\n height: \"42.375\",\n filterUnits: \"userSpaceOnUse\",\n colorInterpolationFilters: \"sRGB\"\n}, React.createElement(\"feFlood\", {\n floodOpacity: \"0\",\n result: \"BackgroundImageFix\"\n}), React.createElement(\"feColorMatrix\", {\n in: \"SourceAlpha\",\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\n}), React.createElement(\"feOffset\", {\n dy: \"2\"\n}), React.createElement(\"feGaussianBlur\", {\n stdDeviation: \"2\"\n}), React.createElement(\"feColorMatrix\", {\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.2 0\"\n}), React.createElement(\"feBlend\", {\n mode: \"normal\",\n in2: \"BackgroundImageFix\",\n result: \"effect1_dropShadow\"\n}), React.createElement(\"feBlend\", {\n mode: \"normal\",\n in: \"SourceGraphic\",\n in2: \"effect1_dropShadow\",\n result: \"shape\"\n})), React.createElement(\"filter\", {\n id: \"error__filter1_d\",\n x: \"51.688\",\n y: \"62.625\",\n width: \"11.438\",\n height: \"11.438\",\n filterUnits: \"userSpaceOnUse\",\n colorInterpolationFilters: \"sRGB\"\n}, React.createElement(\"feFlood\", {\n floodOpacity: \"0\",\n result: \"BackgroundImageFix\"\n}), React.createElement(\"feColorMatrix\", {\n in: \"SourceAlpha\",\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\n}), React.createElement(\"feOffset\", {\n dy: \"2\"\n}), React.createElement(\"feGaussianBlur\", {\n stdDeviation: \"2\"\n}), React.createElement(\"feColorMatrix\", {\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.2 0\"\n}), React.createElement(\"feBlend\", {\n mode: \"normal\",\n in2: \"BackgroundImageFix\",\n result: \"effect1_dropShadow\"\n}), React.createElement(\"feBlend\", {\n mode: \"normal\",\n in: \"SourceGraphic\",\n in2: \"effect1_dropShadow\",\n result: \"shape\"\n})), React.createElement(\"filter\", {\n id: \"error__filter2_d\",\n x: \"51.688\",\n y: \"44.063\",\n width: \"11.438\",\n height: \"23.813\",\n filterUnits: \"userSpaceOnUse\",\n colorInterpolationFilters: \"sRGB\"\n}, React.createElement(\"feFlood\", {\n floodOpacity: \"0\",\n result: \"BackgroundImageFix\"\n}), React.createElement(\"feColorMatrix\", {\n in: \"SourceAlpha\",\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"\n}), React.createElement(\"feOffset\", {\n dy: \"2\"\n}), React.createElement(\"feGaussianBlur\", {\n stdDeviation: \"2\"\n}), React.createElement(\"feColorMatrix\", {\n type: \"matrix\",\n values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.2 0\"\n}), React.createElement(\"feBlend\", {\n mode: \"normal\",\n in2: \"BackgroundImageFix\",\n result: \"effect1_dropShadow\"\n}), React.createElement(\"feBlend\", {\n mode: \"normal\",\n in: \"SourceGraphic\",\n in2: \"effect1_dropShadow\",\n result: \"shape\"\n})), React.createElement(\"linearGradient\", {\n id: \"error__paint0_linear\",\n x1: \"68.438\",\n y1: \"71.571\",\n x2: \"60.119\",\n y2: \"58.801\",\n gradientUnits: \"userSpaceOnUse\"\n}, React.createElement(\"stop\", {\n stopOpacity: \"0\"\n}), React.createElement(\"stop\", {\n offset: \"1\"\n})))));","import {makeStyles} from '@material-ui/core/styles';\n\ntype ErrorContainerProps = {\n height?: number;\n};\n\nexport const useStyles = makeStyles((theme) => ({\n errorContainer: ({height}: ErrorContainerProps) => ({\n height: height ? `${height}px` : 'auto',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n alignItems: 'center',\n color: 'rgba(0, 0, 0, 0.54)'\n }),\n errorIcon: {\n height: '88px',\n width: '88px',\n marginBottom: '20px',\n paddingTop: '36px'\n },\n refreshButton: {\n color: theme.palette.primary.main,\n marginTop: '10px'\n },\n refreshIcon: {\n width: '24px',\n height: '24px'\n }\n}));\n","import React from 'react';\nimport i18n from 'ui-i18n';\nimport {Typography as Typography} from '@material-ui/core';\nimport ReplayIcon from '@material-ui/icons/Replay';\nimport {Button as Button} from '@material-ui/core';\nimport ErrorIcon from './icons/error.svg';\nimport {useStyles} from './styles';\n\ntype DashboardErrorProps = {\n height?: number;\n onRefresh?: () => void;\n message?: string;\n};\n\nconst DashboardError = ({height, onRefresh, message}: DashboardErrorProps) => {\n const styles = useStyles({height});\n return (\n <div className={styles.errorContainer}>\n <ErrorIcon className={styles.errorIcon} />\n <Typography>{message}</Typography>\n {onRefresh && (\n <Button\n className={styles.refreshButton}\n startIcon={<ReplayIcon color=\"primary\" className={styles.refreshIcon} />}\n onClick={onRefresh}\n >\n <Typography variant=\"button\">{i18n.text('Refresh')}</Typography>\n </Button>\n )}\n </div>\n );\n};\n\nexport default DashboardError;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles(() => ({\n viewContent: {\n height: '100%',\n overflow: 'hidden',\n position: 'relative',\n padding: '0 16px 16px'\n },\n toolbarRoot: {\n padding: '16px',\n minHeight: '18px',\n lineHeight: '18px',\n marginBottom: '8px',\n '&:hover .viewDraggableHandle': {\n visibility: 'visible'\n }\n },\n title: {\n fontSize: '16px',\n lineHeight: '19px',\n fontWeight: 'normal',\n color: 'rgba(0, 0, 0, 0.87)',\n letterSpacing: '0.15px'\n },\n dragIcon: {\n position: 'absolute',\n left: '50%',\n top: '-3px',\n transform: 'translateX(-50%) rotate(90deg)',\n color: 'rgba(0, 0, 0, 0.3)',\n cursor: 'move',\n zIndex: 8,\n visibility: 'hidden'\n }\n}));\n","import React from 'react';\nimport classnames from 'classnames';\nimport i18n from 'ui-i18n';\nimport {BasicViewContent, ErrorBoundary, RequestStates} from '@reltio/components';\nimport {DashboardError, DashboardLinearLoader, DashboardNoData} from '../index';\nimport ReactResizeDetector from 'react-resize-detector';\nimport {useStyles} from './styles';\n\ntype ChildrenProps<T> = {data: T[]; width: number; height: number};\n\ntype Props<T> = {\n loadingState: RequestStates;\n children: (props: ChildrenProps<T>) => React.ReactNode;\n onRefresh: () => void;\n data: T[];\n className?: string;\n};\n\nconst LayoutItemContent = <T extends unknown>({loadingState, onRefresh, children, data, className}: Props<T>) => {\n const styles = useStyles();\n\n const renderContent = ({width, height}: {width: number; height: number}) => {\n switch (loadingState) {\n case RequestStates.LOADED:\n if (!data || data.length === 0) {\n return <DashboardNoData height={height} />;\n }\n return (\n <ErrorBoundary\n error={<DashboardError message={i18n.text('Something went wrong')} height={height} />}\n >\n {children({data, width, height})}\n </ErrorBoundary>\n );\n case RequestStates.LOADING:\n return <DashboardLinearLoader />;\n case RequestStates.ERROR:\n return (\n <DashboardError message={i18n.text('Error Loading Data')} height={height} onRefresh={onRefresh} />\n );\n default:\n return <div>Loading...</div>;\n }\n };\n\n return (\n <BasicViewContent className={classnames(styles.viewContent, className)}>\n <ReactResizeDetector refreshMode=\"debounce\" refreshRate={100} handleWidth handleHeight>\n {renderContent}\n </ReactResizeDetector>\n </BasicViewContent>\n );\n};\n\nexport default LayoutItemContent;\n","import React, {useRef} from 'react';\nimport {BasicTablePagination} from '@reltio/components';\n\nconst PAGINATION_HEIGHT = 60;\n\ntype RefProps = {\n basicTableRef?: React.MutableRefObject<any> | null;\n};\n\ntype Props = {\n count?: number;\n height?: number;\n onChangePage?: (page: number) => void;\n page?: number;\n rowsPerPageOptions?: number[];\n rowsPerPage?: number;\n onChangeRowsPerPage?: (page: number) => void;\n};\n\nexport function withPagination<T>(TableComponent: React.ComponentType<T>) {\n const WithPagination = (props: Props & Omit<T, keyof RefProps>) => {\n const basicTableRef = useRef(null);\n\n return (\n <>\n <TableComponent\n {...(props as T)}\n basicTableRef={basicTableRef}\n height={props.height - PAGINATION_HEIGHT}\n />\n <BasicTablePagination {...props} basicTableRef={basicTableRef} />\n </>\n );\n };\n\n WithPagination.displayName = 'WithPagination';\n\n return WithPagination;\n}\n","import {ChartData} from '@reltio/components';\nimport {SavedSearchData} from '../types/SavedSearchData';\n\nexport const savedSearchDataToChartData = (data: SavedSearchData[]): ChartData[] => {\n return data.map(({uri, name, count}) => {\n return {\n value: count || 0,\n label: name || '',\n group: uri\n };\n });\n};\n\nexport const savedSearchDataToSearchState = ({uiState, uri}: SavedSearchData) => {\n if (uiState.version === '2.0') {\n return {...uiState, currentSavedSearchUri: uri};\n } else {\n return {...uiState.state, curSavedSearchUri: uri};\n }\n};\n","import React, {memo, useCallback, useMemo, useState} from 'react';\nimport {useDispatch} from 'react-redux';\nimport {find, pipe, propEq} from 'ramda';\nimport i18n from 'ui-i18n';\nimport {TableWithBars, useReloadFacet} from '@reltio/components';\nimport {ui} from '@reltio/mdm-module';\nimport {FilteredSavedSearchesFacetConfig} from '../../types/FilteredSavedSearchesFacetConfig';\nimport {useSavedSearchesRequest} from '../../hooks/useSavedSearchesRequest';\nimport {DEFAULT_ROWS_PER_PAGE, getRowsPerPageOptions} from './helpers';\nimport LayoutItemView from '../../components/LayoutItemView/LayoutItemView';\nimport LayoutItemHeader from '../../components/LayoutItemHeader/LayoutItemHeader';\nimport LayoutItemContent from '../../components/LayoutItemContent/LayoutItemContent';\nimport {withPagination} from '../../HOCs/withPagination';\nimport {savedSearchDataToChartData, savedSearchDataToSearchState} from '../../services/savedSearches';\n\ntype Props = {\n config: FilteredSavedSearchesFacetConfig;\n onToggleFullscreen: (id: string) => void;\n isUpdated?: boolean;\n isFullscreen: boolean;\n onRemove?: (id: string) => void;\n};\n\nconst TableWithPagination = withPagination(TableWithBars);\n\nconst FilteredSavedSearchesFacet = ({config, onToggleFullscreen, isUpdated, isFullscreen, onRemove}: Props) => {\n const {id, title, options, max = DEFAULT_ROWS_PER_PAGE} = config;\n\n const rowsPerPageOptions = useMemo(() => getRowsPerPageOptions(max), [max]);\n const [rowsPerPage, setRowsPerPage] = useState(max);\n const [page, setPage] = useState(0);\n const {data, state, reload, total} = useSavedSearchesRequest({\n options,\n max: rowsPerPage,\n offset: rowsPerPage * page\n });\n const chartData = useMemo(() => savedSearchDataToChartData(data), [data]);\n\n const dispatch = useDispatch();\n const onSSClick = useCallback(\n (uri: string) => {\n pipe(find(propEq('uri', uri)), savedSearchDataToSearchState, ui.actions.openSearch, dispatch)(data);\n },\n [dispatch, data]\n );\n\n useReloadFacet({state, reload});\n\n return (\n <LayoutItemView id={id}>\n <LayoutItemHeader\n title={title}\n onToggleFullscreen={onToggleFullscreen}\n isFullscreen={isFullscreen}\n isUpdated={isUpdated}\n onRefresh={reload}\n onRemove={onRemove}\n />\n <LayoutItemContent loadingState={state} onRefresh={reload} data={chartData}>\n {({data, width, height}) => {\n return (\n <TableWithPagination\n width={width}\n height={height}\n data={data}\n count={total}\n onChangePage={setPage}\n page={page}\n rowsPerPage={rowsPerPage}\n onChangeRowsPerPage={setRowsPerPage}\n rowsPerPageOptions={rowsPerPageOptions}\n options={{\n headers: [i18n.text('Name')],\n showValues: options?.countResults\n }}\n onItemClick={onSSClick}\n />\n );\n }}\n </LayoutItemContent>\n </LayoutItemView>\n );\n};\n\nexport default memo(FilteredSavedSearchesFacet);\n","import {\n addGlobalFilterToQuery,\n buildFilterQueryString,\n DashboardConfigFilter,\n FilterOptions,\n findAttributeTypeByUri,\n getSpecialAttrTypeByFieldName,\n isDateType,\n mapFilterValue,\n Metadata,\n parseTimestamp,\n SearchFilter,\n searchUriToAttrUri,\n wrapInArray\n} from '@reltio/mdm-sdk';\nimport {assoc, curry, evolve, includes, map, pipe, prop, when, __} from 'ramda';\n\nexport const configFilterToSearchFilter = when(\n pipe(prop('filter'), includes(__, [FilterOptions.IN_RANGE, FilterOptions.HAS_ALL])),\n evolve({values: wrapInArray})\n);\n\nexport const buildQuery = (\n filters: DashboardConfigFilter[],\n globalFilter?: string,\n searchByOv?: boolean,\n activityFilter?: string\n): string => {\n const query = pipe(\n map(configFilterToSearchFilter),\n buildFilterQueryString(),\n addGlobalFilterToQuery(globalFilter)\n )(filters);\n const result = query ? [`filter=${query}`] : [];\n if (searchByOv) {\n result.push('options=searchByOv');\n }\n if (activityFilter) {\n result.push(`activeness=${activityFilter}`);\n }\n return result.join('&');\n};\n\nexport const createNotEqualFilter = curry((fieldName: string, value: string) => ({\n filter: FilterOptions.NOT_EQUALS,\n values: [value],\n fieldName\n}));\n\nexport const convertSearchFilterToDashboardConfigFilter = (searchFilter: SearchFilter): DashboardConfigFilter => ({\n filter: searchFilter?.filter ?? FilterOptions.EQUALS,\n values: (searchFilter?.values ?? []) as string[],\n fieldName: searchFilter?.fieldName ?? ''\n});\nexport const createEntityTypeFilter = (entityTypeUri: string) => ({\n filter: FilterOptions.EQUALS,\n fieldName: 'type',\n values: [entityTypeUri]\n});\n\nexport const createFacetItemFilter = curry((fieldName: string, group: string) => ({\n filter: FilterOptions.EQUALS,\n values: [group],\n fieldName\n}));\n\nexport const convertFilterToFacetState = curry(\n (metadata: Metadata, entityType: string, filter: DashboardConfigFilter) => {\n const {fieldName} = filter;\n const isEntityAttributeFilter = /^(attributes|analyticsAttributes)/.test(fieldName);\n const attrType = isEntityAttributeFilter\n ? findAttributeTypeByUri(metadata, searchUriToAttrUri(fieldName, entityType))\n : getSpecialAttrTypeByFieldName(fieldName);\n\n return pipe(\n configFilterToSearchFilter,\n when(() => isEntityAttributeFilter, assoc('entityType', entityType)),\n when(() => isDateType(attrType.type), evolve({values: map(mapFilterValue(parseTimestamp))}))\n )(filter);\n }\n);\n\nexport const isEntityTypeFilter = ({filter, fieldName, values}: DashboardConfigFilter, entityTypeUri: string) =>\n filter === FilterOptions.EQUALS && fieldName === 'type' && values?.[0] === entityTypeUri;\n","import {\n AttributeType,\n attributeUriToSearchUri,\n buildLookupRecord,\n DashboardConfigFilter,\n formatDataTypeValue,\n getAttrDataTypeDefinition,\n getAttrTypeLookupCode,\n getEntityUriFromAttributeUri,\n getFacets,\n getRoleLabel,\n getTotals,\n isDateType,\n isEntityTypeUri,\n isLookupAttrType,\n isRoleAttrType,\n Metadata,\n parseTimestamp,\n resolveLookupsList\n} from '@reltio/mdm-sdk';\nimport {\n always,\n ascend,\n concat,\n curry,\n defaultTo,\n descend,\n evolve,\n ifElse,\n map,\n pipe,\n prop,\n propEq,\n reject,\n sortWith,\n when\n} from 'ramda';\nimport {\n buildQuery,\n configFilterToSearchFilter,\n convertFilterToFacetState,\n createEntityTypeFilter,\n createFacetItemFilter,\n createNotEqualFilter,\n isEntityTypeFilter\n} from './filters';\nimport {ChartData} from '@reltio/components';\nimport i18n from 'ui-i18n';\n\ntype FacetsRequest = {\n attribute: string;\n filters: DashboardConfigFilter[];\n globalFilter?: string;\n searchByOv?: boolean;\n activityFilter?: string;\n pageSize?: number;\n orderType?: string;\n};\n\nexport const requestFacets = ({\n attribute,\n filters,\n globalFilter,\n searchByOv,\n activityFilter,\n pageSize,\n orderType\n}: FacetsRequest): Promise<ChartData[]> => {\n const query = buildQuery(filters, globalFilter, searchByOv, activityFilter);\n const body = [\n {\n fieldName: attribute,\n pageNo: 1,\n orderType,\n pageSize\n }\n ];\n return getFacets({query, body}).then((response) => {\n const getFacetData = pipe(\n prop(attribute),\n defaultTo({}),\n Object.entries,\n map(([key, value]) => ({label: key, group: key, value})),\n sortWith([descend(prop('value')), ascend(prop('label'))])\n );\n return getFacetData(response);\n });\n};\n\nexport const resolveLookups = curry((lookupCode: string, data: ChartData[]) => {\n const lookupsToResolve = data.map(({label}) => ({codeValue: label, type: lookupCode}));\n return resolveLookupsList(lookupsToResolve).then((response) => {\n const codes = response.flatMap(buildLookupRecord(lookupCode)) as {lookupCode: string; value: string}[];\n return data.map((item) => {\n const code = codes.find(({lookupCode}) => lookupCode === item.label);\n return code ? {...item, label: code.value} : item;\n });\n });\n});\n\nconst buildFacetOthersFilters = curry((fieldName: string, data: ChartData[]) =>\n data.map(pipe(prop('group'), createNotEqualFilter(fieldName)))\n);\n\nconst OTHER_FACET_GROUP = 'Other';\n\nexport const requestOtherValues = curry(\n ({attribute, filters, globalFilter, searchByOv, activityFilter}: FacetsRequest, data: ChartData[]) => {\n const otherFilters = pipe(\n buildFacetOthersFilters(attribute),\n concat(filters),\n map(configFilterToSearchFilter)\n )(data);\n const searchOptions = searchByOv && 'searchByOv';\n return getTotals(otherFilters, {globalFilter, activityFilter, searchOptions}).then(({total}) => {\n return total > 0\n ? data.concat([{label: i18n.text('Other'), group: OTHER_FACET_GROUP, value: total}])\n : data;\n });\n }\n);\n\nconst resolveRoleLabel = (metadata: Metadata, roleName: string) =>\n getRoleLabel(metadata, 'configuration/roles/' + roleName);\n\nexport const localizeFacetValues = map((facet: ChartData) => ({\n ...facet,\n localizedValue: i18n.number(facet.value)\n}));\n\nexport const resolveFacetLabels = (metadata: Metadata, attrType: AttributeType) =>\n pipe(\n when(() => isLookupAttrType(attrType), resolveLookups(getAttrTypeLookupCode(attrType))),\n when(\n () => isRoleAttrType(attrType),\n map((facet) => ({...facet, label: resolveRoleLabel(metadata, facet.group)}))\n ),\n when(\n () => isDateType(attrType.type),\n map(\n evolve({\n label: pipe(\n parseTimestamp,\n formatDataTypeValue({dataTypeDefinition: getAttrDataTypeDefinition(attrType)})\n )\n })\n )\n )\n );\n\nexport const getFacetFieldName = when(isEntityTypeUri, attributeUriToSearchUri);\nconst getFacetEntityTypeUri = ifElse(isEntityTypeUri, getEntityUriFromAttributeUri, always(undefined));\n\nexport const getFiltersForFacet = (\n attributeUri: string,\n filters: DashboardConfigFilter[] = []\n): DashboardConfigFilter[] => {\n const entityTypeUri = getFacetEntityTypeUri(attributeUri);\n const hasEntityTypeFilter = filters.some((filter) => isEntityTypeFilter(filter, entityTypeUri));\n return entityTypeUri && !hasEntityTypeFilter ? [createEntityTypeFilter(entityTypeUri), ...filters] : filters;\n};\n\nexport const getFiltersForFacetItem = curry((attributeUri: string, data: ChartData[], group: string) => {\n const fieldName = getFacetFieldName(attributeUri);\n return group === OTHER_FACET_GROUP\n ? pipe(reject(propEq('group', OTHER_FACET_GROUP)), buildFacetOthersFilters(fieldName))(data)\n : [createFacetItemFilter(fieldName, group)];\n});\n\nexport const facetFiltersToSearchState = curry(\n (metadata: Metadata, attributeUri: string, filters: DashboardConfigFilter[]) => {\n const entityType = getFacetEntityTypeUri(attributeUri);\n return {\n facets: filters.map(convertFilterToFacetState(metadata, entityType))\n };\n }\n);\n","import React, {memo} from 'react';\nimport {useDispatch, useSelector} from 'react-redux';\nimport {ChartsFactory, useReloadFacet} from '@reltio/components';\nimport {useFacetRequest} from '../../hooks/useFacetRequest';\nimport {ChartTypes, DashboardFacetConfig} from '@reltio/mdm-sdk';\nimport LayoutItemView from '../../components/LayoutItemView/LayoutItemView';\nimport LayoutItemHeader from '../../components/LayoutItemHeader/LayoutItemHeader';\nimport LayoutItemContent from '../../components/LayoutItemContent/LayoutItemContent';\nimport mdmModule, {ui} from '@reltio/mdm-module';\nimport {concat, pipe} from 'ramda';\nimport {facetFiltersToSearchState, getFiltersForFacet, getFiltersForFacetItem} from '../../services/facets';\n\ntype DashboardFacetProps = {\n config: DashboardFacetConfig;\n onToggleFullscreen: (id: string) => void;\n isUpdated?: boolean;\n isFullscreen: boolean;\n onRemove?: (id: string) => void;\n};\n\nconst DashboardFacet = ({config, onToggleFullscreen, isUpdated, isFullscreen, onRemove}: DashboardFacetProps) => {\n const {id, title, filters, attributeUri, count, orderType, chartType, showOthers, ...options} = config;\n const pageSize = chartType === ChartTypes.MAP ? 100 : 8;\n const {data, state, reload} = useFacetRequest({\n filters,\n attributeUri,\n pageSize: count || pageSize,\n orderType,\n options: {showOthers}\n });\n\n useReloadFacet({state, reload});\n\n const dispatch = useDispatch();\n const metadata = useSelector(mdmModule.selectors.getMetadata);\n const onItemClick = pipe(\n getFiltersForFacetItem(attributeUri, data),\n concat(getFiltersForFacet(attributeUri, filters)),\n facetFiltersToSearchState(metadata, attributeUri),\n ui.actions.openSearch,\n dispatch\n );\n\n return (\n <LayoutItemView id={id}>\n <LayoutItemHeader\n title={title}\n onToggleFullscreen={onToggleFullscreen}\n isUpdated={isUpdated}\n isFullscreen={isFullscreen}\n onRefresh={reload}\n onRemove={onRemove}\n />\n <LayoutItemContent loadingState={state} onRefresh={reload} data={data}>\n {({data, width = 0, height = 0}) => {\n return ChartsFactory.build(chartType, {data, width, height, options, onItemClick});\n }}\n </LayoutItemContent>\n </LayoutItemView>\n );\n};\n\nexport default memo(DashboardFacet);\n","import {useCallback, useEffect, useState, useContext, useMemo} from 'react';\nimport {useSelector} from 'react-redux';\nimport mdmModule from '@reltio/mdm-module';\nimport {\n DashboardConfigFilter,\n findAttributeTypeByUri,\n getSpecialAttrTypeByFieldName,\n SearchFilter\n} from '@reltio/mdm-sdk';\nimport {always, andThen, otherwise, pipe, when, unless} from 'ramda';\nimport {\n getFacetFieldName,\n getFiltersForFacet,\n requestFacets,\n requestOtherValues,\n resolveFacetLabels,\n localizeFacetValues\n} from '../services/facets';\nimport {ChartData, RequestStates, SearchFiltersContext} from '@reltio/components';\nimport {GlobalSearchRequestOptions, SearchOptions} from '../types/SearchOptions';\nimport {convertSearchFilterToDashboardConfigFilter} from '../services/filters';\n\ntype Props = {\n filters: DashboardConfigFilter[];\n attributeUri: string;\n pageSize: number;\n orderType?: string;\n options?: {\n showOthers: boolean;\n };\n};\n\nexport const useFacetRequest = ({\n filters: facetFilters,\n attributeUri,\n pageSize,\n orderType = 'reversedCount',\n options\n}: Props) => {\n const [data, setData] = useState<ChartData[]>([]);\n const [requestState, setRequestState] = useState<RequestStates>(RequestStates.INIT);\n const searchFilters = useContext<SearchFilter[]>(SearchFiltersContext);\n const facetAndSpecialFilters = useMemo(\n () => searchFilters.map(convertSearchFilterToDashboardConfigFilter).concat(facetFilters || []),\n [searchFilters, facetFilters]\n );\n const metadata = useSelector(mdmModule.selectors.getMetadata);\n const {globalFilter, activityFilter}: GlobalSearchRequestOptions = useSelector(\n mdmModule.selectors.getGlobalSearchRequestOptions\n );\n const attributePresentations = useSelector(mdmModule.selectors.getAttributePresentations);\n const hasAttrPresentation = !!attributePresentations?.[attributeUri];\n const searchOptions: SearchOptions = useSelector(mdmModule.selectors.getSearchOptions);\n const searchByOv: boolean = searchOptions?.searchByOv;\n const showOthers: boolean = options?.showOthers;\n const onError = (error) => {\n console.error(error); // eslint-disable-line\n setRequestState(RequestStates.ERROR);\n setData([]);\n };\n const loadData = useCallback(() => {\n setRequestState(RequestStates.LOADING);\n const filters = getFiltersForFacet(attributeUri, facetAndSpecialFilters);\n const fieldName = getFacetFieldName(attributeUri);\n const attrType = getSpecialAttrTypeByFieldName(fieldName) || findAttributeTypeByUri(metadata, attributeUri);\n const onRequestFinished = (data: ChartData[]) => {\n setRequestState(RequestStates.LOADED);\n setData(data);\n };\n\n if (!attrType) {\n onError('Configuration is incorrect');\n return;\n }\n\n const getData = pipe(\n requestFacets,\n andThen(resolveFacetLabels(metadata, attrType)),\n andThen(unless(always(hasAttrPresentation), localizeFacetValues)),\n andThen(\n when(\n always(showOthers),\n requestOtherValues({attribute: fieldName, filters, globalFilter, searchByOv, activityFilter})\n )\n ),\n andThen(onRequestFinished),\n otherwise(onError)\n );\n\n getData({attribute: fieldName, filters, globalFilter, searchByOv, activityFilter, pageSize, orderType});\n }, [\n setRequestState,\n attributeUri,\n metadata,\n showOthers,\n facetAndSpecialFilters,\n globalFilter,\n searchByOv,\n activityFilter,\n pageSize,\n orderType,\n hasAttrPresentation\n ]);\n\n const refreshAction = () => {\n try {\n loadData();\n } catch (e) {\n onError(e);\n }\n };\n\n useEffect(() => {\n refreshAction();\n }, [loadData]);\n\n return {state: requestState, data, reload: refreshAction};\n};\n","import {makeStyles} from '@material-ui/core/styles';\n\nconst textOverflow = {\n content: '\"\"',\n position: 'absolute',\n right: 0,\n top: 0,\n width: '40px',\n height: '100%',\n background: 'linear-gradient(to right, rgba(255, 255, 255, 0.2), #fff 100%)',\n pointerEvents: 'none'\n};\n\nexport const useStyles = makeStyles((theme) => ({\n headCell: {\n display: 'flex',\n alignItems: 'center',\n height: '100%',\n '&>div': {\n padding: '0 16px'\n }\n },\n headLabel: {\n color: theme.palette.text.primary,\n fontSize: '12px',\n fontWeight: 500,\n lineHeight: '16px',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n '&:after': textOverflow\n },\n entityLabel: {\n color: theme.palette.primary.main,\n textDecoration: 'none',\n fontSize: '13px',\n fontWeight: 500,\n lineHeight: '15px',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n display: 'flex',\n alignItems: 'center',\n height: '100%',\n padding: '0 16px',\n '&:after': textOverflow\n }\n}));\n","import React from 'react';\nimport classnames from 'classnames';\nimport DefaultHeadCellRenderer from 'react-components/dist/Table/DefaultHeadCellRenderer/DefaultHeadCellRenderer';\nimport {ExpandedValueTooltip} from '@reltio/components';\nimport {useStyles} from './styles';\n\ntype HeadCellRendererProps = {\n className?: string;\n headCellData: {\n label: string;\n };\n};\n\nconst HeadCellRenderer = ({className, headCellData, ...otherProps}: HeadCellRendererProps) => {\n const styles = useStyles();\n\n return (\n <div className={classnames(styles.headCell, className)}>\n <DefaultHeadCellRenderer\n {...otherProps}\n headCellData={{\n ...headCellData,\n label: (\n <ExpandedValueTooltip value={headCellData.label}>\n <div className={styles.headLabel}>{headCellData.label}</div>\n </ExpandedValueTooltip>\n )\n }}\n />\n </div>\n );\n};\n\nexport default HeadCellRenderer;\n","import React from 'react';\nimport {EntityUriLink, ExpandedValueTooltip} from '@reltio/components';\nimport {EntityData} from '../../../types/EntityData';\nimport {getLabel, getEntityUriForLink} from '@reltio/mdm-sdk';\nimport {useStyles} from './styles';\n\ntype Props = {\n value: string;\n rowValue: EntityData;\n};\n\nconst EntityLabelRenderer = ({value, rowValue: entity}: Props) => {\n const styles = useStyles();\n const label = getLabel(value);\n return (\n <ExpandedValueTooltip value={label}>\n <EntityUriLink value={getEntityUriForLink(entity)} className={styles.entityLabel}>\n {label}\n </EntityUriLink>\n </ExpandedValueTooltip>\n );\n};\n\nexport default EntityLabelRenderer;\n","import {makeStyles} from '@material-ui/core/styles';\n\ntype Dimensions = {\n width: number | string;\n height: number | string;\n};\n\nexport const useStyles = makeStyles({\n tableContainer: ({width, height}: Dimensions) => ({\n height: height,\n width: width,\n display: 'flex',\n flexDirection: 'column'\n }),\n cellBorder: {\n borderLeft: 'none',\n borderRight: 'none'\n }\n});\n","import React, {memo, useMemo, useState} from 'react';\nimport {useReloadFacet} from '@reltio/components';\nimport {FilteredEntitiesFacetConfig} from '../../types/FilteredEntitiesFacetConfig';\nimport {useFilteredEntitiesRequest} from '../../hooks/useFilteredEntitiesRequest';\nimport {getRowsPerPageOptions, DEFAULT_ROWS_PER_PAGE} from './helpers';\nimport LayoutItemView from '../../components/LayoutItemView/LayoutItemView';\nimport LayoutItemHeader from '../../components/LayoutItemHeader/LayoutItemHeader';\nimport LayoutItemContent from '../../components/LayoutItemContent/LayoutItemContent';\nimport {withPagination} from '../../HOCs/withPagination';\nimport EntityTable from '../../components/EntityTable/EntityTable';\n\ntype Props = {\n config: FilteredEntitiesFacetConfig;\n onToggleFullscreen: (id: string) => void;\n isUpdated?: boolean;\n isFullscreen: boolean;\n onRemove?: (id: string) => void;\n};\n\nconst TableWithPagination = withPagination(EntityTable);\n\nconst FilteredEntitiesViewFacet = ({config, onToggleFullscreen, isUpdated, isFullscreen, onRemove}: Props) => {\n const {id, title, filters, max = DEFAULT_ROWS_PER_PAGE} = config;\n const rowsPerPageOptions = useMemo(() => getRowsPerPageOptions(max), [max]);\n const [rowsPerPage, setRowsPerPage] = useState(max);\n const [page, setPage] = useState(0);\n\n const {data, state, reload, total} = useFilteredEntitiesRequest({\n filters,\n max: rowsPerPage,\n offset: rowsPerPage * page\n });\n\n useReloadFacet({state, reload});\n\n return (\n <LayoutItemView id={id}>\n <LayoutItemHeader\n title={title}\n onToggleFullscreen={onToggleFullscreen}\n isUpdated={isUpdated}\n isFullscreen={isFullscreen}\n onRefresh={reload}\n onRemove={onRemove}\n />\n <LayoutItemContent loadingState={state} onRefresh={reload} data={data}>\n {({data, width, height}) => {\n return (\n <TableWithPagination\n height={height}\n onChangePage={setPage}\n page={page}\n rowsPerPage={rowsPerPage}\n count={total}\n onChangeRowsPerPage={setRowsPerPage}\n rowsPerPageOptions={rowsPerPageOptions}\n width={width}\n data={data}\n />\n );\n }}\n </LayoutItemContent>\n </LayoutItemView>\n );\n};\n\nexport default memo(FilteredEntitiesViewFacet);\n","import React from 'react';\nimport {BasicTable} from '@reltio/components';\nimport HeadCellRenderer from './cell-renderers/HeadCellRenderer';\nimport EntityLabelRenderer from './cell-renderers/EntityLabelRenderer';\nimport {EntityData} from '../../types/EntityData';\nimport i18n from 'ui-i18n';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n width: number;\n height: number;\n basicTableRef?: React.MutableRefObject<any> | null;\n data: EntityData[];\n};\n\nconst EntityTable = ({height, width, basicTableRef, data}: Props) => {\n const styles = useStyles({width, height});\n const headData = [\n {\n id: 'label',\n label: i18n.text('Entity'),\n resizable: false,\n headCellRenderer: HeadCellRenderer,\n rowCellValueRenderer: EntityLabelRenderer,\n initialWidth: width\n }\n ];\n const tableClasses = {\n cellBorder: styles.cellBorder\n };\n\n return (\n <div className={styles.tableContainer}>\n <BasicTable\n columnsData={headData}\n rowsData={data}\n headRowHeight={48}\n getRowCellHeight={null}\n classes={tableClasses}\n defaultColumnWidth={100}\n defaultColumnMinWidth={100}\n ref={basicTableRef}\n />\n </div>\n );\n};\n\nexport default EntityTable;\n","import {useCallback, useContext, useEffect, useMemo, useState} from 'react';\nimport {RequestStates, SearchFiltersContext} from '@reltio/components';\nimport {DashboardConfigFilter, getFilteredEntities, getTotals, SearchFilter} from '@reltio/mdm-sdk';\nimport {EntityData} from '../types/EntityData';\nimport {convertSearchFilterToDashboardConfigFilter} from '../services/filters';\n\ntype Props = {\n filters: DashboardConfigFilter[];\n offset: number;\n max: number;\n};\n\nexport const useFilteredEntitiesRequest = ({filters, max, offset}: Props) => {\n const [data, setData] = useState<EntityData[]>([]);\n const [total, setTotal] = useState<number>(0);\n const [requestState, setRequestState] = useState<RequestStates>(RequestStates.INIT);\n\n const searchFilters = useContext<SearchFilter[]>(SearchFiltersContext);\n const allFilters = useMemo(\n () => searchFilters.map(convertSearchFilterToDashboardConfigFilter).concat(filters || []),\n [searchFilters, filters]\n );\n\n const onError = (error) => {\n console.error(error); // eslint-disable-line\n setRequestState(RequestStates.ERROR);\n setData([]);\n setTotal(0);\n };\n\n const loadData = useCallback(() => {\n setRequestState(RequestStates.LOADING);\n\n Promise.all([getFilteredEntities(allFilters, {max, offset}), getTotals(allFilters, {max, offset})])\n .then((results) => {\n const [entities, {total}] = results;\n setData(entities || []);\n setTotal(total);\n setRequestState(RequestStates.LOADED);\n })\n .catch(onError);\n }, [allFilters, max, offset]);\n\n const refreshAction = () => {\n try {\n loadData();\n } catch (e) {\n onError(e);\n }\n };\n\n useEffect(() => {\n refreshAction();\n }, [loadData]);\n\n return {state: requestState, data, reload: refreshAction, total};\n};\n","export type Period = [number, string] | [Date, Date];\n\nexport enum PeriodStep {\n HOUR = 'hour',\n DAY = 'day'\n}\n","import {Period, PeriodStep} from '../types/Period';\nimport moment from 'moment';\nimport {ifElse, pipe} from 'ramda';\n\nconst periodToDuration = ([start, end]) => moment.duration(+start, end as moment.DurationInputArg2);\n\nconst isDurationPeriod = (period: Period) => {\n const duration = periodToDuration(period);\n return duration.isValid() && duration.valueOf() > 0;\n};\n\nconst getDurationInterval = ([amount, interval]) => {\n const now = moment().valueOf();\n return [moment(now).endOf(interval).subtract(amount, interval).valueOf() + 1, now];\n};\n\nconst getDateInterval = ([start, end]) => [moment(start).valueOf(), moment(end).endOf('date').valueOf()];\n\nconst periodToTimestampInterval = ifElse(isDurationPeriod, getDurationInterval, getDateInterval);\n\nconst getStepForTimestampInterval = ([startTime, endTime]) => {\n return endTime - startTime > +moment.duration(1, 'day') ? PeriodStep.DAY : PeriodStep.HOUR;\n};\n\nconst getStepForPeriod = pipe(periodToTimestampInterval, getStepForTimestampInterval);\n\nexport {periodToTimestampInterval, isDurationPeriod, getStepForPeriod};\n","import {adjust, is, join, pipe, split, when} from 'ramda';\nimport {isDurationPeriod} from '../../services/period';\nimport {DateRangeValues, getRangeOptionLabel, getDateRangeStringByValue} from '@reltio/mdm-sdk';\n\nconst DURATION_SEPARATOR = '_';\n\nconst DATE_RANGE_OPTIONS = Object.values(DateRangeValues).map((value) => {\n return {\n value: getDateRangeStringByValue(value),\n get label() {\n return getRangeOptionLabel(value);\n }\n };\n});\n\nconst periodToDateRangeValues = when(isDurationPeriod, join(DURATION_SEPARATOR));\n\nconst dateRangeValuesToPeriod = when(is(String), pipe(split(DURATION_SEPARATOR), adjust(0, parseInt)));\n\nexport {DATE_RANGE_OPTIONS, periodToDateRangeValues, dateRangeValuesToPeriod};\n","import React from 'react';\nimport {DateRangeEditor, noop} from '@reltio/components';\nimport {Period} from '../../types/Period';\nimport {map, pipe} from 'ramda';\nimport {DATE_RANGE_OPTIONS, dateRangeValuesToPeriod, periodToDateRangeValues} from './helpers';\nimport {DataTypes} from '@reltio/mdm-sdk';\nimport {periodToTimestampInterval} from '../../services/period';\n\ntype Props = {\n value?: Period;\n onChange?: (value: Period) => void;\n className?: string;\n};\n\nconst PeriodSelector = ({value, onChange = noop, className}: Props) => {\n return (\n <DateRangeEditor\n label={null}\n values={value && periodToDateRangeValues(value)}\n options={DATE_RANGE_OPTIONS}\n getValuesDateRange={pipe(\n dateRangeValuesToPeriod,\n periodToTimestampInterval,\n map((timestamp) => new Date(timestamp))\n )}\n onChange={pipe(dateRangeValuesToPeriod, onChange)}\n className={className}\n dataTypeDefinition={{\n type: DataTypes.TYPE_LOCAL_DATE\n }}\n />\n );\n};\n\nexport default PeriodSelector;\n","import {CartesianGridProps, LegendProps, LineProps, TooltipProps, XAxisProps, YAxisProps} from 'recharts';\nimport {formatNumberAsMetric} from '@reltio/mdm-sdk';\n\ntype StatsChartSettings = {\n xAxis: XAxisProps;\n yAxis: YAxisProps;\n cartesianGrid: CartesianGridProps;\n tooltip: TooltipProps;\n line: LineProps;\n legend: LegendProps;\n};\n\nconst getStatsChartSettings = (): StatsChartSettings => {\n return {\n xAxis: {\n type: 'category',\n dataKey: 'term',\n tick: {\n fill: '#000',\n opacity: '0.54'\n },\n angle: 0,\n textAnchor: 'middle',\n stroke: '#666',\n allowDuplicatedCategory: false\n },\n yAxis: {\n dataKey: '',\n type: 'number',\n tick: {\n fill: '#000',\n opacity: '0.54',\n width: undefined\n },\n stroke: '#666',\n tickFormatter: formatNumberAsMetric,\n width: 50\n },\n cartesianGrid: {\n strokeDasharray: '3 3',\n stroke: '#666',\n strokeOpacity: '0.4'\n },\n tooltip: {\n cursor: {\n fill: '#000',\n opacity: '0.1'\n }\n },\n line: {\n type: 'linear',\n dataKey: 'count',\n strokeWidth: 3\n },\n legend: {\n wrapperStyle: {\n display: 'flex',\n overflowY: 'auto',\n maxHeight: '25%'\n }\n }\n };\n};\n\nexport default getStatsChartSettings;\n","import {getEntitiesStats} from '@reltio/mdm-sdk';\nimport {Period, PeriodStep} from '../types/Period';\nimport {\n append,\n chain,\n curry,\n evolve,\n groupBy,\n last,\n map,\n pipe,\n pluck,\n prepend,\n prop,\n propEq,\n propOr,\n sum,\n toPairs\n} from 'ramda';\nimport i18n from 'ui-i18n';\nimport {StatsData, StatsEventData} from '../types/StatsData';\nimport moment from 'moment';\nimport {periodToTimestampInterval} from './period';\nimport {AxisDomain} from 'recharts';\n\nconst StatsEvents = [\n {\n id: 'created',\n types: ['CREATED'],\n get label() {\n return i18n.text('New');\n },\n color: '#4BAFFF'\n },\n {\n id: 'updated',\n types: ['UPDATED'],\n get label() {\n return i18n.text('Updated');\n },\n color: '#0072CE'\n },\n {\n id: 'deleted',\n types: ['DELETED'],\n get label() {\n return i18n.text('Deleted');\n },\n color: '#F085F2'\n },\n {\n id: 'matched',\n types: ['POTENTIAL_MATCHES_FOUND'],\n get label() {\n return i18n.text('Matched');\n },\n color: '#C4CE00'\n },\n {\n id: 'autoMerged',\n types: ['MERGED', 'MERGED_ON_THE_FLY'],\n get label() {\n return i18n.text('Auto-merged');\n },\n color: '#CE5C00'\n },\n {\n id: 'mergedManually',\n types: ['MERGED_MANUALLY'],\n get label() {\n return i18n.text('Manually merged');\n },\n color: '#9E7ED3'\n },\n {\n id: 'unmerged',\n types: ['SPLITTED'],\n get label() {\n return i18n.text('Unmerged');\n },\n color: '#40CFBB'\n },\n {\n id: 'notMatch',\n types: ['NOT_MATCHES_SET'],\n get label() {\n return i18n.text('Not a match');\n },\n color: '#F97061'\n }\n];\n\nconst getStatsEventById = (event: string) => StatsEvents.find(propEq('id', event));\nconst getStatsEventName = pipe(getStatsEventById, propOr('', 'label'));\nconst getStatsEventColor = pipe(getStatsEventById, prop('color'));\n\nconst requestStats = (period: Period): Promise<StatsData[]> => {\n const [startTime, endTime] = periodToTimestampInterval(period);\n\n const getStats = ({facet, types}) =>\n getEntitiesStats({facet, startTime, endTime, types}).then(({facets = {}, total = 0}) => ({\n total,\n data: facets[facet]\n }));\n\n const getEvents = () => {\n const allTypes = chain(prop('types'), StatsEvents);\n const processStats = pipe(propOr([], 'data'), pluck('term'));\n return getStats({facet: 'type', types: allTypes}).then((stats) => processStats(stats));\n };\n\n const getEventsData = (presentTypes) => {\n const periodFrame = pipe(\n map(\n evolve({\n term: (term) => moment.utc(term).valueOf()\n })\n ),\n prepend({\n term: startTime,\n count: 0\n }),\n append({\n term: endTime,\n count: 0\n })\n );\n const isEventPresent = (types) => types.some((type) => presentTypes.includes(type));\n\n return Promise.all(\n StatsEvents.map(({types, id}) =>\n (isEventPresent(types)\n ? getStats({facet: 'hour', types})\n : Promise.resolve({total: 0, data: []})\n ).then(({total, data}) => ({total, data: periodFrame(data), event: id}))\n )\n );\n };\n\n return getEvents().then((events) => (events.length > 0 ? getEventsData(events) : []));\n};\n\nconst groupEventsData = curry((step: PeriodStep, eventData: StatsEventData[]) => {\n return pipe(\n groupBy(({term}) => moment(term).startOf(step)),\n toPairs,\n map(([date, data]) => ({\n term: moment(date).valueOf(),\n count: sum(pluck('count', data))\n }))\n )(eventData);\n});\n\nconst interpolateEventsData = curry((step: PeriodStep, eventData: StatsEventData[]) => {\n const [head, ...other] = eventData;\n return other.reduce(\n (acc, item) => {\n const stepTime = +moment.duration(1, step);\n let nextTerm = last(acc).term + stepTime;\n const interpolatedItems = [];\n while (nextTerm < item.term) {\n interpolatedItems.push({\n term: nextTerm,\n count: 0\n });\n nextTerm += stepTime;\n }\n return acc.concat(interpolatedItems, item);\n },\n [head]\n );\n});\n\nconst calibrateStatsData = curry((step: PeriodStep, statsData: StatsData[]) => {\n return statsData.map(\n evolve({\n data: pipe(groupEventsData(step), interpolateEventsData(step))\n })\n );\n});\n\nconst getChartDomain = (chartData: StatsData[], tickCount: number): [AxisDomain, AxisDomain] => {\n const counts = chain(pipe(prop('data'), pluck('count')))(chartData);\n const min = Math.min(...counts);\n const max = Math.max(...counts);\n const difference = Math.abs(max - min);\n\n return difference < tickCount ? [0, tickCount - 1] : [0, 'auto'];\n};\n\nexport {StatsEvents, requestStats, getStatsEventName, getStatsEventColor, calibrateStatsData, getChartDomain};\n","import React, {SVGProps} from 'react';\nimport {PeriodStep} from '../../../types/Period';\nimport {always, cond, equals} from 'ramda';\nimport i18n from 'ui-i18n';\n\nconst getStepValueFormat = cond([\n [equals(PeriodStep.HOUR), always('LT')],\n [equals(PeriodStep.DAY), always('MMM D')]\n]);\n\ntype AxisTickProps = SVGProps<SVGElement> & {\n step: PeriodStep;\n payload?: {\n value: string;\n };\n};\n\nconst CustomAxisTick = ({x, y, payload, step}: AxisTickProps) => {\n return (\n <g transform={`translate(${x},${y})`}>\n <text x={0} y={0} dy={16} textAnchor=\"middle\" fill=\"#666\">\n {i18n.date(payload?.value, getStepValueFormat(step))}\n </text>\n </g>\n );\n};\n\nexport default CustomAxisTick;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n tooltipWrapper: {\n borderRadius: '4px',\n background: 'rgba(0, 0, 0, 0.54)',\n padding: '6px 8px 7px 8px',\n color: '#FFFFFF',\n '& p': {\n fontSize: '12px',\n lineHeight: '18px',\n padding: 0,\n margin: 0\n }\n },\n tooltipTitle: {\n fontWeight: 500\n },\n tooltipItemColor: {\n width: 8,\n height: 8,\n marginRight: 10,\n display: 'inline-block'\n },\n legend: {\n display: 'flex',\n flexWrap: 'wrap',\n marginLeft: '20px',\n marginTop: '10px'\n },\n legendItem: {\n display: 'flex',\n alignItems: 'baseline',\n '&:not(:last-child)': {\n marginRight: 10\n },\n width: '140px',\n marginBottom: '5px',\n fontSize: '13px',\n color: 'rgba(0, 0, 0, 0.54)'\n },\n legendItemColor: {\n width: 12,\n height: 12,\n marginRight: 10,\n flexShrink: 0,\n boxSizing: 'border-box'\n },\n legendItemValue: {\n color: 'rgba(0, 0, 0, 0.87)',\n marginLeft: '10px'\n }\n});\n","import React from 'react';\nimport {TooltipProps} from 'recharts';\nimport {PeriodStep} from '../../../types/Period';\nimport i18n from 'ui-i18n';\nimport {always, cond, equals} from 'ramda';\nimport {getStatsEventName} from '../../../services/stats';\n\nimport {useStyles} from './styles';\n\ntype Props = TooltipProps & {\n step: PeriodStep;\n events: string[];\n};\n\nconst getStepValueFormat = cond([\n [equals(PeriodStep.HOUR), always('LT MMM D')],\n [equals(PeriodStep.DAY), always('ll')]\n]);\n\nconst CustomTooltip = ({active, payload, label, step, events}: Props) => {\n const styles = useStyles();\n return (\n active && (\n <div className={styles.tooltipWrapper}>\n <p className={styles.tooltipTitle}>{i18n.date(label, getStepValueFormat(step))}</p>\n {payload\n .filter(({name}) => events.includes(name))\n .map(({color, name, value}) => {\n return (\n <p key={name}>\n <span style={{background: color}} className={styles.tooltipItemColor} />\n {`${getStatsEventName(name)}: ${value}`}\n </p>\n );\n })}\n </div>\n )\n );\n};\n\nexport default CustomTooltip;\n","import React from 'react';\nimport {LegendProps} from 'recharts';\nimport {getStatsEventName} from '../../../services/stats';\nimport {Tooltip as Tooltip} from '@material-ui/core';\nimport i18n from 'ui-i18n';\n\nimport {useStyles} from './styles';\n\ntype Props = LegendProps & {\n selectedItems: string[];\n};\n\nconst CustomLegend = ({payload, selectedItems, onClick}: Props) => {\n const styles = useStyles();\n return (\n <div className={styles.legend}>\n {payload.map(({id, color, value}) => {\n const isSelected = selectedItems.includes(id);\n return (\n <div key={id} className={styles.legendItem}>\n <Tooltip title={isSelected ? i18n.text('Hide') : i18n.text('Show')}>\n <div\n style={isSelected ? {background: color} : {border: `${color} 1px solid`}}\n className={styles.legendItemColor}\n onClick={() => onClick(id)}\n />\n </Tooltip>\n {getStatsEventName(id)}\n <span className={styles.legendItemValue}>{value}</span>\n </div>\n );\n })}\n </div>\n );\n};\n\nexport default CustomLegend;\n","import React, {useMemo, useState} from 'react';\nimport {CartesianGrid, Legend, Line, LineChart, Tooltip, XAxis, YAxis} from 'recharts';\nimport {append, ifElse, includes, pluck, without} from 'ramda';\nimport getStatsChartSettings from './getStatsChartSettings';\nimport {PeriodStep} from '../../types/Period';\nimport {StatsData} from '../../types/StatsData';\nimport {calibrateStatsData, getStatsEventColor, getChartDomain} from '../../services/stats';\nimport CustomAxisTick from './customized/CustomAxisTick';\nimport CustomTooltip from './customized/CustomTooltip';\nimport CustomLegend from './customized/CustomLegend';\n\ntype Props = {\n data: StatsData[];\n width: number;\n height: number;\n step: PeriodStep;\n};\n\nconst StatsChart = ({data, width, height, step}: Props) => {\n const [selectedEvents, setSelectedEvents] = useState<string[]>(pluck('event', data));\n const toggleEvent = (event) => {\n setSelectedEvents(ifElse(includes(event), without([event]), append(event)));\n };\n\n const [tooltipEvent, setTooltipEvent] = useState<string | null>(null);\n\n const tickCount = 8;\n const {cartesianGrid, tooltip, xAxis, yAxis, line, legend} = getStatsChartSettings();\n const chartData = useMemo(() => calibrateStatsData(step, data), [step, data]);\n const domain = useMemo(() => getChartDomain(chartData, tickCount), [chartData]);\n\n return (\n <LineChart width={width} height={height}>\n <CartesianGrid {...cartesianGrid} />\n <XAxis {...xAxis} tick={<CustomAxisTick step={step} />} />\n <YAxis {...yAxis} tickCount={tickCount} domain={domain} />\n {chartData.map(({event, data}) => {\n const isSelected = selectedEvents.includes(event);\n return (\n <Line\n key={event}\n stroke={getStatsEventColor(event)}\n name={event}\n data={data}\n dot={isSelected && {r: 5, strokeWidth: 2}}\n activeDot={\n isSelected && {\n r: 5,\n strokeWidth: 2,\n onMouseEnter: () => setTooltipEvent(event),\n onMouseLeave: () => setTooltipEvent(null)\n }\n }\n strokeOpacity={isSelected ? 1 : 0}\n {...line}\n />\n );\n })}\n <Legend\n content={<CustomLegend selectedItems={selectedEvents} onClick={toggleEvent} />}\n payload={chartData.map(({event, total}) => ({\n id: event,\n type: 'square',\n color: getStatsEventColor(event),\n value: total\n }))}\n {...legend}\n />\n <Tooltip\n {...tooltip}\n content={<CustomTooltip step={step} events={tooltipEvent ? [tooltipEvent] : selectedEvents} />}\n />\n </LineChart>\n );\n};\n\nexport default StatsChart;\n","import {useCallback, useEffect, useState} from 'react';\nimport {andThen, otherwise, pipe} from 'ramda';\nimport {requestStats} from '../services/stats';\nimport {StatsData} from '../types/StatsData';\nimport {Period} from '../types/Period';\nimport {useSafePromise, RequestStates} from '@reltio/components';\n\nexport const useStatsRequest = (period: Period) => {\n const [data, setData] = useState<StatsData[]>([]);\n const [requestState, setRequestState] = useState<RequestStates>(RequestStates.INIT);\n const safePromise = useSafePromise();\n\n const onError = (error) => {\n console.error(error); // eslint-disable-line\n setRequestState(RequestStates.ERROR);\n setData([]);\n };\n const loadData = useCallback(() => {\n setRequestState(RequestStates.LOADING);\n const onRequestFinished = (data: StatsData[]) => {\n setRequestState(RequestStates.LOADED);\n setData(data);\n };\n\n const getData = pipe(requestStats, safePromise, andThen(onRequestFinished), otherwise(onError));\n getData(period);\n }, [...period]); // eslint-disable-line\n\n const refreshAction = () => {\n try {\n loadData();\n } catch (e) {\n onError(e);\n }\n };\n\n useEffect(() => {\n refreshAction();\n }, [loadData]);\n\n return {state: requestState, data, reload: refreshAction};\n};\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n periodSelector: {\n position: 'relative',\n margin: '0 6px 0 0',\n flexBasis: '220px',\n flexShrink: 1,\n '& input[type=\"text\"]': {\n padding: '0 0 0 8px'\n }\n }\n});\n","import React, {memo, useState} from 'react';\nimport {DashboardView} from '@reltio/mdm-sdk';\nimport {useReloadFacet} from '@reltio/components';\nimport LayoutItemView from '../../components/LayoutItemView/LayoutItemView';\nimport LayoutItemHeader from '../../components/LayoutItemHeader/LayoutItemHeader';\nimport LayoutItemContent from '../../components/LayoutItemContent/LayoutItemContent';\nimport PeriodSelector from '../../components/PeriodSelector/PeriodSelector';\nimport {Period} from '../../types/Period';\nimport StatsChart from '../../components/StatsChart/StatsChart';\nimport {useStatsRequest} from '../../hooks/useStatsRequest';\nimport {getStepForPeriod} from '../../services/period';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n config: DashboardView;\n onToggleFullscreen: (id: string) => void;\n isUpdated?: boolean;\n isFullscreen: boolean;\n onRemove?: (id: string) => void;\n};\n\nconst ProfileStatsFacet = ({config, onToggleFullscreen, isUpdated, isFullscreen, onRemove}: Props) => {\n const styles = useStyles();\n\n const {id, title} = config;\n const [period, setPeriod] = useState<Period>([1, 'week']);\n const {state, data, reload} = useStatsRequest(period);\n\n useReloadFacet({state, reload});\n\n return (\n <LayoutItemView id={id}>\n <LayoutItemHeader\n title={title}\n onToggleFullscreen={onToggleFullscreen}\n isUpdated={isUpdated}\n isFullscreen={isFullscreen}\n onRefresh={reload}\n onRemove={onRemove}\n >\n <PeriodSelector value={period} onChange={setPeriod} className={styles.periodSelector} />\n </LayoutItemHeader>\n <LayoutItemContent loadingState={state} onRefresh={reload} data={data}>\n {({data, width, height}) => {\n return <StatsChart data={data} width={width} height={height} step={getStepForPeriod(period)} />;\n }}\n </LayoutItemContent>\n </LayoutItemView>\n );\n};\n\nexport default memo(ProfileStatsFacet);\n","import {\n getEntityType,\n getInheritancePath,\n getLastUriPart,\n isAvailableEntityType,\n Metadata,\n wrapInArrayIfNeeded\n} from '@reltio/mdm-sdk';\nimport {curry, filter, last, map, pipe, prop, either} from 'ramda';\nimport {ChartData} from '@reltio/components';\nimport {createEntityTypeFilter} from './filters';\n\nconst typeNameToUri = (typeName: string): string => `configuration/entityTypes/${typeName}`;\nconst getUriFromTypeFacet = pipe(prop('group'), typeNameToUri);\n\nexport const resolveTypeFacetsLabels = curry((metadata: Metadata, typeFacets: ChartData[]): ChartData[] => {\n return typeFacets.map((facet) => {\n const typeUri = getUriFromTypeFacet(facet);\n return {\n ...facet,\n label: getEntityType(metadata, typeUri).label\n };\n });\n});\n\nexport const getParentEntityTypeFacets = curry((metadata: Metadata, typeFacets: ChartData[]): ChartData[] => {\n const getParentTypeForFacet = pipe(\n getUriFromTypeFacet,\n getInheritancePath(metadata),\n map(getEntityType(metadata)),\n filter(isAvailableEntityType),\n last\n );\n const parentsMap = typeFacets.reduce((acc, facet) => {\n const parentType = getParentTypeForFacet(facet);\n if (parentType) {\n const parentName = getLastUriPart(parentType.uri);\n return {\n ...acc,\n [parentName]: (acc[parentName] || 0) + facet.value\n };\n } else {\n return acc;\n }\n }, {});\n return Object.entries(parentsMap).map(([key, value]) => ({\n group: key,\n label: key,\n value\n })) as ChartData[];\n});\n\nexport const entityTypeNameToFilters = pipe(typeNameToUri, createEntityTypeFilter, wrapInArrayIfNeeded);\n\nconst getEntityTypeName = pipe(prop('uri'), getLastUriPart);\n\nconst findTypeFacetByName = curry(\n (typeFacets: ChartData[], name: string): ChartData => {\n return typeFacets.find((facet) => facet.group === name);\n }\n);\n\nconst createEmptyEntityTypeFacet = (name: string): ChartData => ({label: name, group: name, value: 0});\n\nexport const addEmptyEntityTypesFacets = curry(({entityTypes}: Metadata, typeFacets: ChartData[]): ChartData[] => {\n const getFacet = pipe(getEntityTypeName, either(findTypeFacetByName(typeFacets), createEmptyEntityTypeFacet));\n return entityTypes.filter(isAvailableEntityType).map(getFacet);\n});\n","import {useEffect, useState, useCallback} from 'react';\nimport {useSelector} from 'react-redux';\nimport mdmModule from '@reltio/mdm-module';\nimport {pipe, andThen, otherwise, when, always, unless} from 'ramda';\nimport {requestFacets, localizeFacetValues} from '../services/facets';\nimport {ChartData, RequestStates} from '@reltio/components';\nimport {GlobalSearchRequestOptions, SearchOptions} from '../types/SearchOptions';\nimport {addEmptyEntityTypesFacets, getParentEntityTypeFacets, resolveTypeFacetsLabels} from '../services/entityTypes';\n\ntype Props = {\n hideEmpty?: boolean;\n orderType?: string;\n inheritChildren?: boolean;\n};\n\nconst filters = [];\n\nexport const useEntityByTypeRequest = ({orderType, inheritChildren, hideEmpty}: Props) => {\n const [data, setData] = useState<ChartData[]>([]);\n const [requestState, setRequestState] = useState<RequestStates>(RequestStates.INIT);\n const metadata: Record<string, any> = useSelector(mdmModule.selectors.getMetadata);\n const pageSize = metadata.entityTypes.length;\n const {globalFilter, activityFilter}: GlobalSearchRequestOptions = useSelector(\n mdmModule.selectors.getGlobalSearchRequestOptions\n );\n\n const searchOptions: SearchOptions = useSelector(mdmModule.selectors.getSearchOptions);\n const searchByOv: boolean = searchOptions && searchOptions.searchByOv;\n const onError = (error) => {\n console.error(error); // eslint-disable-line\n setRequestState(RequestStates.ERROR);\n setData([]);\n };\n\n const loadData = useCallback(() => {\n setRequestState(RequestStates.LOADING);\n const onRequestFinished = (data: ChartData[]) => {\n setRequestState(RequestStates.LOADED);\n setData(data);\n };\n\n const getData = pipe(\n requestFacets,\n andThen(unless(always(hideEmpty), addEmptyEntityTypesFacets(metadata))),\n andThen(when(always(inheritChildren), getParentEntityTypeFacets(metadata))),\n andThen(resolveTypeFacetsLabels(metadata)),\n andThen(localizeFacetValues),\n andThen(onRequestFinished),\n otherwise(onError)\n );\n\n getData({attribute: 'type', pageSize, filters, globalFilter, searchByOv, activityFilter, orderType});\n }, [hideEmpty, metadata, inheritChildren, pageSize, globalFilter, searchByOv, activityFilter, orderType]);\n\n const refreshAction = () => {\n try {\n loadData();\n } catch (e) {\n onError(e);\n }\n };\n\n useEffect(() => {\n refreshAction();\n }, [loadData]);\n\n return {state: requestState, data, reload: refreshAction};\n};\n","import React, {memo} from 'react';\nimport {useDispatch, useSelector} from 'react-redux';\nimport {TreeChart, useReloadFacet} from '@reltio/components';\nimport {useEntityByTypeRequest} from '../../hooks/useEntityByTypeRequest';\nimport LayoutItemView from '../../components/LayoutItemView/LayoutItemView';\nimport LayoutItemHeader from '../../components/LayoutItemHeader/LayoutItemHeader';\nimport LayoutItemContent from '../../components/LayoutItemContent/LayoutItemContent';\nimport {EntityByTypeViewFacetConfig} from '../../types/EntityByTypeViewFacetConfig';\nimport {entityTypeNameToFilters} from '../../services/entityTypes';\nimport {facetFiltersToSearchState} from '../../services/facets';\nimport mdmModule, {ui} from '@reltio/mdm-module';\nimport {pipe} from 'ramda';\n\ntype Props = {\n config: EntityByTypeViewFacetConfig;\n onToggleFullscreen: (id: string) => void;\n isUpdated?: boolean;\n isFullscreen: boolean;\n onRemove?: (id: string) => void;\n};\n\nconst EntitiesByTypeViewFacet = ({config, onToggleFullscreen, isUpdated, isFullscreen, onRemove}: Props) => {\n const {id, title, hideEmpty, orderType, inheritChildren} = config;\n const {data, state, reload} = useEntityByTypeRequest({\n hideEmpty,\n orderType,\n inheritChildren\n });\n\n useReloadFacet({state, reload});\n\n const dispatch = useDispatch();\n const metadata = useSelector(mdmModule.selectors.getMetadata);\n const onTypeClick = pipe(\n entityTypeNameToFilters,\n facetFiltersToSearchState(metadata, 'type'),\n ui.actions.openSearch,\n dispatch\n );\n\n return (\n <LayoutItemView id={id}>\n <LayoutItemHeader\n title={title}\n onToggleFullscreen={onToggleFullscreen}\n isUpdated={isUpdated}\n isFullscreen={isFullscreen}\n onRefresh={reload}\n onRemove={onRemove}\n />\n <LayoutItemContent loadingState={state} onRefresh={reload} data={data}>\n {({data, width, height}) => {\n return <TreeChart width={width} height={height} data={data} onItemClick={onTypeClick} />;\n }}\n </LayoutItemContent>\n </LayoutItemView>\n );\n};\n\nexport default memo(EntitiesByTypeViewFacet);\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles(() => ({\n viewContent: {\n height: '100%',\n overflow: 'hidden',\n position: 'relative',\n padding: '0 16px 16px'\n },\n iframe: {\n borderWidth: 0,\n width: '100%',\n height: '100%'\n },\n tasksSelector: {\n position: 'relative',\n margin: '0 6px 0 0',\n flexBasis: '220px',\n flexShrink: 1\n },\n tasksSelectorInput: {\n fontSize: '14px',\n lineHeight: '16px',\n padding: '12px 32px 10px 12px'\n },\n pagination: {\n height: '52px',\n flexGrow: 0,\n flexShrink: 0\n }\n}));\n","import React, {memo} from 'react';\nimport {CustomActionViewFacetConfig} from '../../types/CustomActionViewFacetConfig';\nimport LayoutItemView from '../../components/LayoutItemView/LayoutItemView';\nimport LayoutItemHeader from '../../components/LayoutItemHeader/LayoutItemHeader';\nimport {BasicViewContent} from '@reltio/components';\nimport {useStyles} from './styles';\n\ntype Props = {\n config: CustomActionViewFacetConfig;\n onToggleFullscreen: (id: string) => void;\n isUpdated?: boolean;\n isFullscreen: boolean;\n onRemove?: (id: string) => void;\n};\n\nconst CustomActionViewFacet = ({config, onToggleFullscreen, isUpdated, isFullscreen, onRemove}: Props) => {\n const {id, title, url} = config;\n const styles = useStyles();\n\n return (\n <LayoutItemView id={id}>\n <LayoutItemHeader\n title={title}\n onToggleFullscreen={onToggleFullscreen}\n isUpdated={isUpdated}\n isFullscreen={isFullscreen}\n onRemove={onRemove}\n />\n <BasicViewContent className={styles.viewContent}>\n <iframe src={url} frameBorder=\"0\" className={styles.iframe} />\n </BasicViewContent>\n </LayoutItemView>\n );\n};\n\nexport default memo(CustomActionViewFacet);\n","export enum WorkflowTasksCategories {\n MY = 'my',\n TEAM = 'team'\n}\n\ntype WorkflowTaskEntityData = {\n uri: string;\n label: string;\n type: string;\n};\ntype WorkflowTaskRelationData = {\n uri: string;\n type: string;\n startObjectUri: string;\n endObjectUri: string;\n startObjectLabel: string;\n endObjectLabel: string;\n};\n\nexport type WorkflowTaskObjectData = WorkflowTaskEntityData | WorkflowTaskRelationData;\n\nexport type WorkflowTaskData = {\n assignee: string;\n displayName: string;\n processDefinitionDisplayName: string;\n createTime: number;\n createdBy: string;\n dueDate?: number;\n objectURIs: string[];\n objects?: WorkflowTaskObjectData[];\n priorityClass: 'Urgent' | 'High' | 'Medium' | 'Low';\n};\n","import {\n always,\n cond,\n converge,\n curry,\n descend,\n equals,\n filter,\n head,\n isNil,\n keys,\n map,\n otherwise,\n path,\n pipe,\n prop,\n propEq,\n propOr,\n reject,\n sort,\n startsWith,\n T,\n when,\n complement,\n isEmpty\n} from 'ramda';\nimport {WorkflowTasksCategories, WorkflowTaskData} from '../types/WorkflowTasks';\nimport {\n getDataChangeRequest,\n getEntitiesByUris,\n getGroupTasksForTenant,\n getTasksForTenant,\n isEntityUri\n} from '@reltio/mdm-sdk';\n\nconst getTasksByCategory = cond([\n [equals(WorkflowTasksCategories.MY), always(getTasksForTenant)],\n [equals(WorkflowTasksCategories.TEAM), always(getGroupTasksForTenant)],\n [T, always(() => Promise.resolve({data: []}))]\n]);\n\nconst getFirstObjectUri = pipe(propOr([], 'objectURIs'), head);\nconst isDCRObjectUri = startsWith('changeRequests/');\n\nconst notEmpty = complement(isEmpty);\n\nconst getEntities = pipe(map(getFirstObjectUri), filter(isEntityUri), when(notEmpty, getEntitiesByUris));\n\nconst getChangeRequests = pipe(\n map(getFirstObjectUri),\n filter(isDCRObjectUri),\n map(pipe(getDataChangeRequest, otherwise(always(null)))),\n (requests) => Promise.all(requests)\n);\n\nconst getTaskObjectsData = converge((...requests) => Promise.all(requests), [getEntities, getChangeRequests]);\n\nconst enrichTaskWithEntity = (entities) => (task) => {\n const entity = entities.find(propEq('uri', getFirstObjectUri(task)));\n return entity\n ? {\n ...task,\n objects: [entity]\n }\n : task;\n};\n\nconst extractObjectsFromChangeRequest = ({objectsInfo = {}, changes = {}, uri}) => {\n const getChange = (key) => path([key, 0], changes);\n const getUri = (key) => {\n const {type} = getChange(key);\n if (type == 'CREATE_ENTITY' || type == 'CREATE_RELATIONSHIP') {\n return uri + '/changes/' + key;\n } else {\n return key;\n }\n };\n return pipe(\n keys,\n filter(getChange),\n sort(descend(pipe(getChange, prop('createdTime')))),\n map((key) => ({...objectsInfo[key], uri: getUri(key)}))\n )(objectsInfo);\n};\n\nconst enrichTaskWithDCRObjects = (changeRequests) => (task) => {\n const changeRequest = changeRequests.find(propEq('uri', getFirstObjectUri(task)));\n return changeRequest\n ? {\n ...task,\n objects: extractObjectsFromChangeRequest(changeRequest)\n }\n : task;\n};\n\nconst enrichTasksWithObjectsData = (entities, changeRequests, tasks) => {\n changeRequests = reject(isNil, changeRequests);\n return tasks.map(\n pipe(\n when(pipe(getFirstObjectUri, isEntityUri), enrichTaskWithEntity(entities)),\n when(pipe(getFirstObjectUri, isDCRObjectUri), enrichTaskWithDCRObjects(changeRequests))\n )\n );\n};\n\nexport const requestWorkflowTasks = curry(\n async (tasksCategory, {workflowPath, environment, tenant, assignee, max, offset}) => {\n const getTasks = getTasksByCategory(tasksCategory);\n const {data, total} = await getTasks({workflowPath, environment, tenant, assignee, max, offset});\n const [entities, changeRequests] = await getTaskObjectsData(data);\n return {data: enrichTasksWithObjectsData(entities, changeRequests, data), total};\n }\n);\n\nexport const isOverdueTask = (task: WorkflowTaskData) => task.dueDate && task.dueDate < Date.now();\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles((theme) => ({\n taskItem: {\n flex: 1,\n display: 'flex',\n padding: '15px',\n color: theme.palette.text.primary,\n '&.Low': {\n borderLeft: '#F7F7F7 solid 3px'\n },\n '&.Medium': {\n borderLeft: '#F7DE03 solid 3px'\n },\n '&.High': {\n borderLeft: '#FF9800 solid 3px'\n },\n '&.Urgent': {\n borderLeft: '#F44336 solid 3px'\n }\n },\n taskInfo: {\n flex: 1,\n padding: '0 15px',\n overflow: 'hidden',\n overflowWrap: 'anywhere'\n },\n taskTitle: {\n lineHeight: '18px',\n marginBottom: '6px'\n },\n taskDetail: {\n lineHeight: '15px',\n fontSize: '12px',\n margin: '5px 0'\n },\n taskDetailTitle: {\n color: theme.palette.text.secondary,\n marginRight: '3px'\n },\n taskDueDate: {\n flex: '0 0 110px',\n fontSize: '13px',\n lineHeight: '15px',\n textAlign: 'right',\n paddingTop: '6px'\n },\n flag: {\n height: '14px',\n width: '14px',\n stroke: 'rgba(0,0,0,.54)',\n fill: 'none',\n verticalAlign: 'text-top',\n marginRight: '5px'\n },\n overdue: {\n '&$taskDueDate': {\n color: '#f44336'\n },\n '& $flag': {\n stroke: '#f44336',\n fill: '#f44336'\n }\n },\n entityLabel: {\n color: theme.palette.primary.main,\n textDecoration: 'none',\n fontSize: '13px',\n lineHeight: '15px'\n },\n hidden: {\n visibility: 'hidden'\n }\n}));\n","import React from 'react';\nimport {WorkflowTaskObjectData} from '../../types/WorkflowTasks';\nimport {EntityUriLink} from '@reltio/components';\nimport {getEntityUriForLink, getLabel, getRelationType, Metadata} from '@reltio/mdm-sdk';\nimport i18n from 'ui-i18n';\nimport {useStyles} from './styles';\n\ntype Props = {\n object: WorkflowTaskObjectData;\n metadata: Metadata;\n};\n\nconst EntityLink = ({uri, label}: {uri: string; label: string}) => {\n const styles = useStyles();\n return (\n <EntityUriLink value={uri} className={styles.entityLabel}>\n {getLabel(label)}\n </EntityUriLink>\n );\n};\n\nconst WorkflowTaskObject = ({object, metadata}: Props) => {\n if ('startObjectUri' in object && 'endObjectUri' in object) {\n const relationType = getRelationType(metadata, object.type);\n return (\n <>\n {relationType.label} {i18n.text('from')}{' '}\n <EntityLink uri={object.startObjectUri} label={object.startObjectLabel} /> {i18n.text('to')}{' '}\n <EntityLink uri={object.endObjectUri} label={object.endObjectLabel} />\n </>\n );\n } else {\n return <EntityLink uri={getEntityUriForLink(object)} label={object.label} />;\n }\n};\n\nexport default WorkflowTaskObject;\n","import React from 'react';\nimport {useSelector} from 'react-redux';\nimport i18n from 'ui-i18n';\nimport classnames from 'classnames';\nimport {EntityTypeIcon} from '@reltio/components';\nimport mdmModule from '@reltio/mdm-module';\nimport {getEntityType} from '@reltio/mdm-sdk';\nimport FlagIcon from '@material-ui/icons/Flag';\nimport {Typography as Typography} from '@material-ui/core';\nimport {WorkflowTaskData} from '../../types';\nimport {isOverdueTask} from '../../services/workflowTasks';\nimport WorkflowTaskObject from './WorkflowTaskObject';\nimport {useStyles} from './styles';\n\ntype Props = {\n showAssignee: boolean;\n task: WorkflowTaskData;\n};\n\nconst WorkflowTaskItem = ({task, showAssignee}: Props) => {\n const styles = useStyles();\n const objects = task.objects || [];\n const [firstObject] = objects;\n const metadata = useSelector(mdmModule.selectors.getMetadata);\n const entityType = firstObject && getEntityType(metadata, firstObject.type);\n\n return (\n <div className={classnames(styles.taskItem, task.priorityClass)}>\n <EntityTypeIcon entityType={entityType} />\n <div className={styles.taskInfo}>\n <Typography className={styles.taskTitle} variant={'subtitle1'}>\n {task.processDefinitionDisplayName}\n </Typography>\n {objects.map((object) => (\n <p key={object.uri} className={styles.taskDetail}>\n <WorkflowTaskObject object={object} metadata={metadata} />\n </p>\n ))}\n <p className={styles.taskDetail}>\n <span className={styles.taskDetailTitle}>{i18n.text('Created by:')}</span>\n {task.createdBy} {i18n.text('on')} {i18n.date(task.createTime, 'L')}\n </p>\n {showAssignee && task.assignee && (\n <p className={styles.taskDetail}>\n <span className={styles.taskDetailTitle}>{i18n.text('Assigned to:')}</span>\n {task.assignee}\n </p>\n )}\n <p className={styles.taskDetail}>\n <span className={styles.taskDetailTitle}>{i18n.text('Step:')}</span>\n {task.displayName}\n </p>\n </div>\n <div\n className={classnames(styles.taskDueDate, {\n [styles.overdue]: isOverdueTask(task),\n [styles.hidden]: !task.dueDate\n })}\n >\n <FlagIcon className={styles.flag} />\n {i18n.date(task.dueDate, 'L')}\n </div>\n </div>\n );\n};\n\nexport default WorkflowTaskItem;\n","import React, {useCallback} from 'react';\nimport {WorkflowTasksCategories, WorkflowTaskData} from '../../types/WorkflowTasks';\nimport {AutoSizeList} from '@reltio/components';\nimport WorkflowTaskItem from '../WorkflowTaskItem/WorkflowTaskItem';\nimport {Divider as Divider} from '@material-ui/core';\n\ntype Props = {\n width: number;\n height: number;\n tasksCategory: WorkflowTasksCategories;\n tasks: WorkflowTaskData[];\n};\n\nconst WorkflowTasksList = ({width, height, tasksCategory, tasks}: Props) => {\n const renderRow = useCallback(\n ({data, index}: {data: WorkflowTaskData[]; index: number}) => {\n return (\n <div>\n <WorkflowTaskItem task={data[index]} showAssignee={tasksCategory !== WorkflowTasksCategories.MY} />\n <Divider light={true} variant={'inset'} />\n </div>\n );\n },\n [tasksCategory]\n );\n\n return (\n <AutoSizeList width={width} height={height} data={tasks} defaultItemSize={115}>\n {renderRow}\n </AutoSizeList>\n );\n};\n\nexport default WorkflowTasksList;\n","import {useCallback, useEffect, useMemo, useState} from 'react';\nimport {useSelector} from 'react-redux';\nimport {andThen, otherwise, pipe, pick} from 'ramda';\nimport mdmModule from '@reltio/mdm-module';\nimport {useSafePromise, RequestStates} from '@reltio/components';\nimport {WorkflowTaskData, WorkflowTasksCategories} from '../types/WorkflowTasks';\n\nimport {requestWorkflowTasks} from '../services/workflowTasks';\n\ntype Options = {\n tasksCategory: WorkflowTasksCategories;\n max?: number;\n offset?: number;\n};\n\nexport const useWorkflowTasksRequest = (options: Options) => {\n const {tasksCategory} = options;\n const requestParams = useMemo(() => pick(['max', 'offset'], options), [options]);\n const [data, setData] = useState<WorkflowTaskData[]>([]);\n const [requestState, setRequestState] = useState<RequestStates>(RequestStates.INIT);\n const [total, setTotal] = useState<number>();\n const workflowPath = useSelector(mdmModule.selectors.getWorkflowPath);\n const environment = useSelector(mdmModule.selectors.getWorkflowEnvironmentUrl);\n const tenant = useSelector(mdmModule.selectors.getTenant);\n const userName = useSelector(mdmModule.selectors.getUserName);\n\n const assignee = tasksCategory === WorkflowTasksCategories.MY ? userName : undefined;\n const safePromise = useSafePromise();\n\n const onError = (error) => {\n console.error(error); // eslint-disable-line\n setRequestState(RequestStates.ERROR);\n setData([]);\n };\n\n const loadData = useCallback(() => {\n setRequestState(RequestStates.LOADING);\n const onRequestFinished = ({data, total}: {data: WorkflowTaskData[]; total?: number}) => {\n setRequestState(RequestStates.LOADED);\n setData(data);\n setTotal(total);\n };\n\n const getData = pipe(\n requestWorkflowTasks(tasksCategory),\n safePromise,\n andThen(onRequestFinished),\n otherwise(onError)\n );\n getData({workflowPath, environment, tenant, assignee, ...requestParams});\n }, [workflowPath, environment, tenant, tasksCategory, requestParams]); // eslint-disable-line\n\n const refreshAction = () => {\n try {\n loadData();\n } catch (e) {\n onError(e);\n }\n };\n\n useEffect(() => {\n refreshAction();\n }, [loadData]);\n\n return {state: requestState, data, reload: refreshAction, total};\n};\n","import React, {memo, useMemo, useState} from 'react';\nimport {WorkflowInboxFacetConfig} from '@reltio/mdm-sdk';\nimport LayoutItemView from '../../components/LayoutItemView/LayoutItemView';\nimport LayoutItemHeader from '../../components/LayoutItemHeader/LayoutItemHeader';\nimport LayoutItemContent from '../../components/LayoutItemContent/LayoutItemContent';\nimport WorkflowTasksList from '../../components/WorkflowTasksList/WorkflowTasksList';\nimport {Select as Select} from '@material-ui/core';\nimport {MenuItem as MenuItem} from '@material-ui/core';\nimport {WorkflowTasksCategories} from '../../types/WorkflowTasks';\nimport {useWorkflowTasksRequest} from '../../hooks/useWorkflowTasksRequest';\nimport {pipe} from 'ramda';\nimport {BasicTablePagination, getValue, useReloadFacet} from '@reltio/components';\nimport i18n from 'ui-i18n';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n config: WorkflowInboxFacetConfig;\n onToggleFullscreen: (id: string) => void;\n isUpdated?: boolean;\n isFullscreen: boolean;\n onRemove?: (id: string) => void;\n};\n\nconst NotificationInboxFacet = ({config, onToggleFullscreen, isUpdated, isFullscreen, onRemove}: Props) => {\n const styles = useStyles();\n\n const {id, title, pageSize} = config;\n const [page, setPage] = useState(0);\n const [rowsPerPage, setRowsPerPage] = useState(pageSize || 10);\n const [tasksCategory, setTasksCategory] = useState<WorkflowTasksCategories>(WorkflowTasksCategories.MY);\n\n const options = useMemo(() => ({tasksCategory, max: rowsPerPage, offset: rowsPerPage * page}), [\n rowsPerPage,\n page,\n tasksCategory\n ]);\n const {state, data, total, reload} = useWorkflowTasksRequest(options);\n\n useReloadFacet({state, reload});\n\n return (\n <LayoutItemView id={id}>\n <LayoutItemHeader\n title={title}\n onToggleFullscreen={onToggleFullscreen}\n isUpdated={isUpdated}\n isFullscreen={isFullscreen}\n onRemove={onRemove}\n onRefresh={reload}\n >\n <Select\n className={styles.tasksSelector}\n classes={{\n root: styles.tasksSelectorInput\n }}\n variant={'filled'}\n value={tasksCategory}\n onChange={pipe(getValue, setTasksCategory)}\n >\n <MenuItem value={WorkflowTasksCategories.MY}>{i18n.text('My tasks')}</MenuItem>\n <MenuItem value={WorkflowTasksCategories.TEAM}>{i18n.text('Team tasks')}</MenuItem>\n </Select>\n </LayoutItemHeader>\n <LayoutItemContent loadingState={state} onRefresh={reload} data={data}>\n {({data, width, height}) => {\n return (\n <WorkflowTasksList width={width} height={height} tasksCategory={tasksCategory} tasks={data} />\n );\n }}\n </LayoutItemContent>\n {total > (pageSize || 10) && (\n <div className={styles.pagination}>\n <BasicTablePagination\n count={total}\n rowsPerPage={rowsPerPage}\n page={page}\n onChangePage={setPage}\n onChangeRowsPerPage={setRowsPerPage}\n />\n </div>\n )}\n </LayoutItemView>\n );\n};\n\nexport default memo(NotificationInboxFacet);\n","import {useCallback, useEffect, useState} from 'react';\nimport {andThen, otherwise, pipe} from 'ramda';\nimport {ActivitiesFilter, ActivityData, useActivitiesLoader, useSafePromise, RequestStates} from '@reltio/components';\n\ntype Props = {\n filter: ActivitiesFilter;\n max: number;\n offset: number;\n};\n\nexport const useActivitiesRequest = ({filter, max, offset}: Props) => {\n const [data, setData] = useState<ActivityData[]>([]);\n const [total, setTotal] = useState(0);\n const [requestState, setRequestState] = useState<RequestStates>(RequestStates.INIT);\n const safePromise = useSafePromise();\n\n const onError = (error) => {\n console.error(error); // eslint-disable-line\n setRequestState(RequestStates.ERROR);\n setData([]);\n setTotal(0);\n };\n const getActivities = useActivitiesLoader({filter, max, offset});\n\n const loadData = useCallback(() => {\n setRequestState(RequestStates.LOADING);\n const onRequestFinished = ({data, total}: {data: ActivityData[]; total: number}) => {\n setRequestState(RequestStates.LOADED);\n setData(data);\n setTotal(total);\n };\n\n const getData = pipe(getActivities, safePromise, andThen(onRequestFinished), otherwise(onError));\n getData();\n }, [getActivities]); // eslint-disable-line\n\n const refreshAction = () => {\n try {\n loadData();\n } catch (e) {\n onError(e);\n }\n };\n\n useEffect(() => {\n refreshAction();\n }, [loadData]);\n\n return {state: requestState, data, total, reload: refreshAction};\n};\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles(() => ({\n activityLogFilter: {\n padding: '0 9px'\n }\n}));\n","import React, {memo, useCallback, useMemo, useState} from 'react';\n\nimport {ActivitiesViewFacetConfig} from '../../types/ActivitiesViewFacetConfig';\nimport LayoutItemView from '../../components/LayoutItemView/LayoutItemView';\nimport LayoutItemHeader from '../../components/LayoutItemHeader/LayoutItemHeader';\nimport LayoutItemContent from '../../components/LayoutItemContent/LayoutItemContent';\nimport {ActivitiesFilter, ActivityLog, ActivityLogFilter, DateRangeTypes, useReloadFacet} from '@reltio/components';\nimport {DEFAULT_ROWS_PER_PAGE, getRowsPerPageOptions} from './helpers';\nimport {useActivitiesRequest} from '../../hooks/useActivitiesRequest';\nimport {useStyles} from './styles';\n\ntype Props = {\n config: ActivitiesViewFacetConfig;\n onToggleFullscreen: (id: string) => void;\n isUpdated?: boolean;\n isFullscreen: boolean;\n onRemove?: (id: string) => void;\n};\n\nconst ActivitiesViewFacet = ({config, isUpdated, isFullscreen, onToggleFullscreen, onRemove}: Props) => {\n const {id, title, exportTypes} = config;\n const styles = useStyles();\n\n const [page, setPage] = useState(0);\n const [rowsPerPage, setRowsPerPage] = useState(DEFAULT_ROWS_PER_PAGE);\n const rowsPerPageOptions = useMemo(() => getRowsPerPageOptions(DEFAULT_ROWS_PER_PAGE), []);\n const [filter, setFilter] = useState<ActivitiesFilter>({\n users: [],\n activities: [],\n dateRange: {\n type: DateRangeTypes.WITHIN,\n period: [4, 'months']\n }\n });\n const {state, data, total, reload} = useActivitiesRequest({filter, max: rowsPerPage, offset: page * rowsPerPage});\n\n const handleFilterChange = useCallback((value: ActivitiesFilter) => {\n setFilter(value);\n setPage(0);\n }, []);\n\n useReloadFacet({state, reload});\n\n return (\n <LayoutItemView id={id}>\n <LayoutItemHeader\n title={title}\n onToggleFullscreen={onToggleFullscreen}\n isUpdated={isUpdated}\n isFullscreen={isFullscreen}\n onRemove={onRemove}\n onRefresh={reload}\n />\n <div className={styles.activityLogFilter}>\n <ActivityLogFilter value={filter} onChange={handleFilterChange} exportTypes={exportTypes} />\n </div>\n <LayoutItemContent loadingState={state} onRefresh={reload} data={data}>\n {({data, width, height}) => {\n return (\n <ActivityLog\n width={width}\n height={height}\n activities={data}\n count={total}\n page={page}\n onChangePage={setPage}\n rowsPerPage={rowsPerPage}\n onChangeRowsPerPage={setRowsPerPage}\n rowsPerPageOptions={rowsPerPageOptions}\n />\n );\n }}\n </LayoutItemContent>\n </LayoutItemView>\n );\n};\n\nexport default memo(ActivitiesViewFacet);\n","import React from 'react';\nimport FilteredSavedSearchesFacet from './tableBased/FilteredSavedSearchesFacet';\nimport DashboardFacet from './chartBased/DashboardFacet';\nimport FilteredEntitiesViewFacet from './tableBased/FilteredEntitiesViewFacet';\nimport ProfileStatsFacet from './chartBased/ProfileStatsFacet';\nimport EntitiesByTypeViewFacet from './chartBased/EntitiesByTypeViewFacet';\nimport CustomActionViewFacet from './custom/CustomActionViewFacet';\nimport {ChartTypes, DashboardFacetConfig, DashboardView, DashboardViewTypes} from '@reltio/mdm-sdk';\nimport NotificationInboxFacet from './custom/NotificationInboxFacet';\nimport ActivitiesViewFacet from './tableBased/ActivitiesViewFacet';\nimport {\n ActivitiesViewFacetConfig,\n CustomActionViewFacetConfig,\n EntityByTypeViewFacetConfig,\n FilteredSavedSearchesFacetConfig,\n FilteredEntitiesFacetConfig\n} from '../types';\n\ntype Props = {\n config:\n | ActivitiesViewFacetConfig\n | CustomActionViewFacetConfig\n | DashboardFacetConfig\n | EntityByTypeViewFacetConfig\n | FilteredEntitiesFacetConfig\n | FilteredSavedSearchesFacetConfig\n | DashboardView;\n type: string;\n onToggleFullscreen: (id: string) => void;\n isUpdated?: boolean;\n isFullscreen: boolean;\n onRemove?: (id: string) => void;\n};\nclass ViewsFactory {\n static ViewTypes = DashboardViewTypes;\n\n static getComponent = ({config, type, isUpdated, isFullscreen, onToggleFullscreen, onRemove}: Props) => {\n const props = {\n isUpdated,\n isFullscreen,\n onToggleFullscreen,\n onRemove\n };\n switch (type) {\n case ViewsFactory.ViewTypes.ActivitiesViewFacet:\n return <ActivitiesViewFacet config={config} {...props} />;\n case ViewsFactory.ViewTypes.CustomActionViewFacet:\n return <CustomActionViewFacet config={config as CustomActionViewFacetConfig} {...props} />;\n case ViewsFactory.ViewTypes.DashboardFacet:\n return <DashboardFacet config={config as DashboardFacetConfig} {...props} />;\n case ViewsFactory.ViewTypes.EntitiesByTypeViewFacet:\n return <EntitiesByTypeViewFacet config={config as EntityByTypeViewFacetConfig} {...props} />;\n case ViewsFactory.ViewTypes.FilteredSavedSearchesFacet:\n return <FilteredSavedSearchesFacet config={config} {...props} />;\n case ViewsFactory.ViewTypes.FilteredEntitiesViewFacet:\n return <FilteredEntitiesViewFacet config={config} {...props} />;\n case ViewsFactory.ViewTypes.NotificationInboxFacet:\n return <NotificationInboxFacet config={config} {...props} />;\n case ViewsFactory.ViewTypes.ProfileStatsFacet:\n return <ProfileStatsFacet config={config} {...props} />;\n default:\n return <div>NOT IMPLEMENTED</div>;\n }\n };\n\n static getChartType = (view: DashboardView & {chartType?: string}): string => {\n const typeConverters = {\n [ViewsFactory.ViewTypes.EntitiesByTypeViewFacet]: ChartTypes.TREE,\n [ViewsFactory.ViewTypes.FilteredSavedSearchesFacet]: ChartTypes.TABLE,\n [ViewsFactory.ViewTypes.FilteredEntitiesViewFacet]: ChartTypes.TABLE,\n [ViewsFactory.ViewTypes.ProfileStatsFacet]: ChartTypes.LINE,\n [ViewsFactory.ViewTypes.NotificationInboxFacet]: ChartTypes.TABLE,\n [ViewsFactory.ViewTypes.ActivitiesViewFacet]: ChartTypes.TABLE\n };\n return view.chartType || typeConverters[view.component];\n };\n}\n\nexport default ViewsFactory;\n"],"names":["contextSelector","CellRenderer","withContext","TableContext","useStyles","makeStyles","pagination","display","alignItems","justifyContent","height","borderTop","boxShadow","caption","color","fontSize","lineHeight","selectRoot","marginLeft","marginRight","select","textAlign","actions","BasicTablePagination","classes","count","rowsPerPageOptions","page","onChangePage","rowsPerPage","onChangeRowsPerPage","basicTableRef","labelRowsPerPage","styles","resetScrollbarPosition","useCallback","pathOr","identity","handleChangePage","value","handleChangeRowsPerPage","TablePagination","root","classnames","component","i18n","labelDisplayedRows","from","to","fromRow","toRow","countRows","pipe","nthArg","getValue","propTypes","PropTypes","current","React","theme","flexDirection","basicView","BasicView","forwardRef","ref","children","className","otherProps","Paper","displayName","toolbar","minHeight","padding","title","fontWeight","whiteSpace","overflow","textOverflow","Toolbar","Typography","variant","collapseButton","cursor","expandLess","transform","isOpen","tooltipTitle","buttonProps","icon","ExpandMore","iconClassName","tooltipProps","SmallIconButton","bar","backgroundColor","palette","secondary","main","opacity","position","minWidth","borderRadius","top","left","widthIsNumber","width","is","Number","maxWidth","getBarColorWidth","style","buttonRoot","action","active","fade","selected","paper","menuItem","menuText","text","primary","letterSpacing","MenuItemWithTooltip","withTooltip","MenuItem","MenuItemRenderer","item","onMenuClose","disabled","tooltip","onClick","id","selectable","showForDisabled","e","Checkbox","checked","DropDownMenuButton","menuId","buttonComponent","Button","buttonContent","menuItems","popoverProps","onMenuOpen","DefaultMenuItemRenderer","ButtonComponent","buttonRef","useRef","setIsOpen","useState","useDidUpdateEffect","handleToggle","stopPropagation","open","undefined","Menu","autoFocus","anchorEl","onClose","anchorOrigin","vertical","horizontal","transformOrigin","elevation","getContentAnchorEl","MenuListProps","autoFocusItem","map","index","key","props","absoluteImagePath","useSelector","mdmModule","storagePath","str","endsWith","withMuiSkin","CreatableSelect","Option","innerProps","innerRef","isFocused","isSelected","selectProps","label","classNames","option","ExpandedValueTooltip","onMouseMove","onMouseOver","tabIndex","isRequired","placeholder","clearIndicator","spacing","margin","dropdownIndicator","MultiSelect","creatable","getOptions","loadingIndicator","components","componentsProp","classesProp","stylesProp","onChange","onChangeProp","onInputChange","onInputChangeProp","menuPlacement","reactSelectProps","SelectComponent","AsyncSelect","Select","inputValue","setInputValue","multiSelectClasses","omit","inputId","multiSelectComponents","mergeClasses","indicatorSeparator","base","loadingMessage","fontFamily","labelProps","TextFieldProps","InputLabelProps","htmlFor","shrink","length","isMulti","actionMeta","closeMenuOnSelect","hideSelectedOptions","loadOptions","defaultProps","cacheOptions","defaultOptions","options","ClearIndicator","Control","DropdownIndicator","DownChevron","CrossIcon","Group","GroupHeading","IndicatorsContainer","IndicatorSeparator","Input","LoadingIndicator","MenuList","MenuPortal","LoadingMessage","NoOptionsMessage","MultiValue","MultiValueContainer","MultiValueLabel","MultiValueRemove","Placeholder","SelectContainer","SingleValue","ValueContainer","control","valueContainer","multiValue","noOptionsMessage","singleValue","menu","container","group","groupHeading","indicatorsContainer","input","menuList","menuPortal","multiValueLabel","multiValueRemove","menuPortalTarget","getOptionValue","isSearchable","inputRef","reltioLayoutItemToReactGridLayoutItem","x","y","maxHeight","isStatic","w","h","minW","minH","maxW","maxH","i","static","reactGridLayoutItemToReltioLayoutItem","reactGridLayoutToReltioLayout","layout","getReltioLayoutItemById","curry","find","propEq","updateExtraPropsInLayoutItem","mergeAll","pick","copyPropsFromPreviousLayout","oldReltioLayout","reltioLayout","layoutItem","prop","defaultTo","__","_","gridLayout","background","border","transitionDuration","zIndex","userSelect","transitionProperty","willChange","pointerEvents","transition","backgroundImage","bottom","right","svg2Url","backgroundRepeat","backgroundOrigin","boxSizing","visibility","gridFullscreen","overflowY","ReltioGridLayout","views","layoutOptions","onLayoutChanged","draggableHandle","LayoutItem","onRemove","onDrop","droppingItem","isDroppable","fullscreenItemId","setFullscreenItemId","setWidth","cols","rowHeight","processedLayout","useMemo","reltioLayoutToReactGridLayout","onReltioLayoutChanged","onToggleFullscreen","prevId","isFullscreenEnabled","onItemHeightResize","layoutId","isLayoutChanged","newLayout","newHeight","Math","ceil","calcHeight","refreshMode","refreshRate","handleWidth","onResize","autoSize","onLayoutChange","isResizable","isDraggable","isItemFullscreen","autosizeComponent","autosizing","AutosizeComponent","layoutItemId","handleHeight","layoutItemConfig","fullscreen","isFullscreen","onConfigChanged","memo","flex","loader","LinearProgress","view","DashboardViewIdContext","useSavedSearchesRequest","offset","max","data","setData","total","setTotal","requestState","setRequestState","RequestStates","onError","error","console","loadData","onRequestFinished","result","countResults","restOptions","async","getSavedSearches","totalRequests","search","getTotalsForQuery","replacePlaceholdersInQuery","query","searchesWithCount","promiseAllSettled","reduce","searchesWithTotal","searchIndex","status","reason","assocPath","getData","catch","refreshAction","useEffect","state","reload","ROWS_PER_PAGE_OPTIONS","DEFAULT_ROWS_PER_PAGE","getRowsPerPageOptions","defaultRowsPerPage","filter","concat","sort","subtract","itemTitle","itemIcon","openIcon","marginTop","items","setAnchorEl","isMenuOpen","Boolean","handleMenuClose","handleItemClick","IconButton","currentTarget","MoreVert","ListItemIcon","toolbarRoot","marginBottom","dragIcon","rightMenu","flexGrow","updatedChip","isUpdated","onRefresh","useContext","Replay","Fullscreen","FullscreenExit","HighlightOff","BasicViewHeader","Chip","size","DragIndicator","_extends","Object","assign","target","arguments","source","prototype","hasOwnProperty","call","apply","this","viewBox","fill","xmlns","maskType","maskUnits","d","mask","fillOpacity","fillRule","clipRule","mixBlendMode","x1","y1","x2","y2","gradientUnits","stopColor","stopOpacity","filterUnits","colorInterpolationFilters","floodOpacity","in","type","values","dy","stdDeviation","mode","in2","noDataContainer","errorContainer","errorIcon","paddingTop","refreshButton","refreshIcon","message","startIcon","viewContent","loadingState","BasicViewContent","ErrorBoundary","DashboardLinearLoader","withPagination","TableComponent","WithPagination","savedSearchDataToSearchState","uiState","uri","version","currentSavedSearchUri","curSavedSearchUri","TableWithPagination","TableWithBars","config","setRowsPerPage","setPage","chartData","name","savedSearchDataToChartData","dispatch","useDispatch","onSSClick","ui","useReloadFacet","LayoutItemView","headers","showValues","onItemClick","configFilterToSearchFilter","when","includes","FilterOptions","evolve","wrapInArray","createNotEqualFilter","fieldName","convertSearchFilterToDashboardConfigFilter","searchFilter","createEntityTypeFilter","entityTypeUri","createFacetItemFilter","convertFilterToFacetState","metadata","entityType","isEntityAttributeFilter","test","attrType","findAttributeTypeByUri","searchUriToAttrUri","getSpecialAttrTypeByFieldName","assoc","isDateType","mapFilterValue","parseTimestamp","isEntityTypeFilter","requestFacets","attribute","filters","globalFilter","searchByOv","activityFilter","pageSize","orderType","buildFilterQueryString","addGlobalFilterToQuery","push","join","buildQuery","body","pageNo","getFacets","then","response","entries","sortWith","descend","ascend","getFacetData","resolveLookups","lookupCode","lookupsToResolve","codeValue","resolveLookupsList","codes","flatMap","buildLookupRecord","code","buildFacetOthersFilters","OTHER_FACET_GROUP","requestOtherValues","otherFilters","searchOptions","getTotals","resolveRoleLabel","roleName","getRoleLabel","localizeFacetValues","facet","localizedValue","getFacetFieldName","isEntityTypeUri","attributeUriToSearchUri","getFacetEntityTypeUri","ifElse","getEntityUriFromAttributeUri","always","getFiltersForFacet","attributeUri","hasEntityTypeFilter","some","getFiltersForFacetItem","reject","facetFiltersToSearchState","facets","chartType","showOthers","ChartTypes","facetFilters","searchFilters","SearchFiltersContext","facetAndSpecialFilters","attributePresentations","hasAttrPresentation","andThen","isLookupAttrType","getAttrTypeLookupCode","isRoleAttrType","formatDataTypeValue","dataTypeDefinition","getAttrDataTypeDefinition","resolveFacetLabels","unless","otherwise","useFacetRequest","ChartsFactory","content","headCell","headLabel","entityLabel","textDecoration","headCellData","DefaultHeadCellRenderer","rowValue","entity","getLabel","EntityUriLink","getEntityUriForLink","tableContainer","cellBorder","borderLeft","borderRight","headData","resizable","headCellRenderer","HeadCellRenderer","rowCellValueRenderer","EntityLabelRenderer","initialWidth","tableClasses","BasicTable","columnsData","rowsData","headRowHeight","getRowCellHeight","defaultColumnWidth","defaultColumnMinWidth","allFilters","Promise","all","getFilteredEntities","results","entities","useFilteredEntitiesRequest","PeriodStep","isDurationPeriod","period","duration","start","end","moment","periodToDuration","isValid","valueOf","periodToTimestampInterval","amount","interval","now","endOf","getStepForPeriod","startTime","endTime","DAY","HOUR","DATE_RANGE_OPTIONS","DateRangeValues","getDateRangeStringByValue","getRangeOptionLabel","periodToDateRangeValues","dateRangeValuesToPeriod","String","split","adjust","parseInt","noop","DateRangeEditor","getValuesDateRange","timestamp","Date","DataTypes","StatsEvents","types","getStatsEventById","event","getStatsEventName","propOr","getStatsEventColor","requestStats","getStats","getEntitiesStats","allTypes","chain","processStats","pluck","stats","getEvents","events","presentTypes","periodFrame","term","prepend","append","isEventPresent","resolve","getEventsData","groupEventsData","step","eventData","groupBy","startOf","toPairs","date","sum","interpolateEventsData","head","other","acc","stepTime","nextTerm","last","interpolatedItems","calibrateStatsData","statsData","getStepValueFormat","cond","equals","payload","textAnchor","tooltipWrapper","tooltipItemColor","legend","flexWrap","legendItem","legendItemColor","flexShrink","legendItemValue","selectedItems","Tooltip","selectedEvents","setSelectedEvents","tooltipEvent","setTooltipEvent","cartesianGrid","xAxis","yAxis","line","dataKey","tick","angle","stroke","allowDuplicatedCategory","tickFormatter","formatNumberAsMetric","strokeDasharray","strokeOpacity","strokeWidth","wrapperStyle","domain","tickCount","counts","min","abs","getChartDomain","dot","r","activeDot","onMouseEnter","onMouseLeave","without","periodSelector","flexBasis","setPeriod","safePromise","useSafePromise","useStatsRequest","typeNameToUri","typeName","getUriFromTypeFacet","resolveTypeFacetsLabels","typeFacets","typeUri","getEntityType","getParentEntityTypeFacets","getParentTypeForFacet","getInheritancePath","isAvailableEntityType","parentsMap","parentType","parentName","getLastUriPart","entityTypeNameToFilters","wrapInArrayIfNeeded","getEntityTypeName","findTypeFacetByName","createEmptyEntityTypeFacet","addEmptyEntityTypesFacets","entityTypes","getFacet","either","hideEmpty","inheritChildren","useEntityByTypeRequest","onTypeClick","TreeChart","iframe","borderWidth","tasksSelector","tasksSelectorInput","url","src","frameBorder","WorkflowTasksCategories","getTasksByCategory","MY","getTasksForTenant","TEAM","getGroupTasksForTenant","T","getFirstObjectUri","isDCRObjectUri","startsWith","notEmpty","complement","isEmpty","getEntities","isEntityUri","getEntitiesByUris","getChangeRequests","getDataChangeRequest","requests","getTaskObjectsData","converge","extractObjectsFromChangeRequest","objectsInfo","changes","getChange","path","getUri","keys","enrichTasksWithObjectsData","changeRequests","tasks","isNil","task","objects","enrichTaskWithEntity","changeRequest","enrichTaskWithDCRObjects","requestWorkflowTasks","tasksCategory","workflowPath","environment","tenant","assignee","getTasks","isOverdueTask","dueDate","taskItem","taskInfo","overflowWrap","taskTitle","taskDetail","taskDetailTitle","taskDueDate","flag","verticalAlign","overdue","hidden","EntityLink","object","relationType","getRelationType","startObjectUri","startObjectLabel","endObjectUri","endObjectLabel","showAssignee","firstObject","priorityClass","EntityTypeIcon","processDefinitionDisplayName","createdBy","createTime","Flag","renderRow","Divider","light","AutoSizeList","defaultItemSize","setTasksCategory","requestParams","userName","useWorkflowTasksRequest","activityLogFilter","exportTypes","setFilter","users","activities","dateRange","DateRangeTypes","getActivities","useActivitiesLoader","useActivitiesRequest","handleFilterChange","ActivityLogFilter","ActivityLog","ViewsFactory","ViewTypes","DashboardViewTypes","getComponent","ActivitiesViewFacet","CustomActionViewFacet","DashboardFacet","EntitiesByTypeViewFacet","FilteredSavedSearchesFacet","FilteredEntitiesViewFacet","NotificationInboxFacet","ProfileStatsFacet","getChartType","typeConverters"],"sourceRoot":""}
|