@reltio/remotes 1.4.1585 → 1.4.1586
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/9995.js +1 -1
- package/9995.js.map +1 -1
- package/package.json +1 -1
package/9995.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"9995.js","mappings":"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","sources":["webpack://@reltio/remotes/../components/src/icons/ReferenceAttribute.tsx","webpack://@reltio/remotes/../components/src/icons/SimpleAttribute.tsx","webpack://@reltio/remotes/../components/src/components/AttributeListItem/styles.ts","webpack://@reltio/remotes/../components/src/components/AttributeListItem/AttrTypeIcon.tsx","webpack://@reltio/remotes/../components/src/icons/Recommended.tsx","webpack://@reltio/remotes/../components/src/components/AttributeListItem/AttributeListItem.tsx","webpack://@reltio/remotes/../components/src/components/AttributeSelector/styles.ts","webpack://@reltio/remotes/../components/src/components/AttributeSelector/AttributeSelector.tsx","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/CollapseButton/styles.ts","webpack://@reltio/remotes/../components/src/components/CollapseButton/CollapseButton.tsx","webpack://@reltio/remotes/../components/src/components/DateIntervalSelector/styles.ts","webpack://@reltio/remotes/../components/src/components/DateIntervalSelector/DateIntervalSelector.tsx","webpack://@reltio/remotes/../components/src/components/DropDownSelector/components/styles.js","webpack://@reltio/remotes/../components/src/components/DropDownSelector/components/Menu.js","webpack://@reltio/remotes/../components/src/components/DropDownSelector/components/SingleValue.js","webpack://@reltio/remotes/../components/src/components/DropDownSelector/styles.js","webpack://@reltio/remotes/../components/src/components/DropDownSelector/DropDownSelector.js","webpack://@reltio/remotes/../components/src/components/EntityTypeIcon/EntityTypeIcon.tsx","webpack://@reltio/remotes/../components/src/components/EntityUriLink/EntityUriLink.tsx","webpack://@reltio/remotes/../components/src/components/ReactSelect/AsyncSelect.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/RequiredMark/styles.js","webpack://@reltio/remotes/../components/src/components/RequiredMark/RequiredMark.tsx","webpack://@reltio/remotes/../components/src/components/SimpleDropDownSelector/styles.js","webpack://@reltio/remotes/../components/src/components/SimpleDropDownSelector/DropDownValue.js","webpack://@reltio/remotes/../components/src/components/SimpleDropDownSelector/DropDownPlaceholder.js","webpack://@reltio/remotes/../components/src/components/SimpleDropDownSelector/SimpleDropDownSelector.js","webpack://@reltio/remotes/../components/src/components/Spacer/Spacer.js","webpack://@reltio/remotes/../components/src/components/UserSelector/styles.ts","webpack://@reltio/remotes/../components/src/components/UserSelector/UserSelector.tsx","webpack://@reltio/remotes/../components/src/components/activityLog/types/ActivityTypes.ts","webpack://@reltio/remotes/../components/src/components/activityLog/utils/activities.ts","webpack://@reltio/remotes/../components/src/components/editors/CustomDateRangeEditor/styles.ts","webpack://@reltio/remotes/../components/src/components/editors/CustomDateRangeEditor/CustomDateRangeEditor.tsx","webpack://@reltio/remotes/../components/src/contexts/UrlGeneratorsContext/index.ts","webpack://@reltio/remotes/../components/src/contexts/ViewIdContext/index.ts","webpack://@reltio/remotes/../components/src/icons/NestedAttribute.tsx","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/PeriodStep.ts","webpack://@reltio/remotes/../dashboard/src/services/period.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/components/StatsChart/getStatsChartSettings.ts","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/views/custom/NotificationInboxFacet.tsx","webpack://@reltio/remotes/../dashboard/src/hooks/useWorkflowTasksRequest.ts","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 React from 'react';\n\nconst SvgReferenceAttribute: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width={24} height={24} viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M10 18h3v-1a1 1 0 011-1h4a1 1 0 011 1v4a1 1 0 01-1 1h-4a1 1 0 01-1-1v-1H8V8H6a1 1 0 01-1-1V3a1 1 0 011-1h6a1 1 0 011 1v4a1 1 0 01-1 1h-2v3h3v-1a1 1 0 011-1h4a1 1 0 011 1v4a1 1 0 01-1 1h-4a1 1 0 01-1-1v-1h-3v5z\"\n fill=\"#000\"\n stroke=\"none\"\n strokeWidth={1}\n fillRule=\"evenodd\"\n />\n </svg>\n );\n};\n\nexport default SvgReferenceAttribute;\n","import React from 'react';\n\nconst SvgSimpleAttribute: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width={24} height={24} viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <rect\n fill=\"#000\"\n x={9}\n y={9}\n width={6}\n height={6}\n rx={1}\n stroke=\"none\"\n strokeWidth={1}\n fillRule=\"evenodd\"\n />\n </svg>\n );\n};\n\nexport default SvgSimpleAttribute;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n container: {\n '& > $marginWrapper:first-child': {\n paddingLeft: '4px'\n }\n },\n listItem: {\n paddingLeft: '1px',\n paddingTop: '2px',\n paddingBottom: '2px',\n transition: 'none',\n '&:hover': {\n '& $itemAfter': {\n background: 'linear-gradient(to right, rgba(235, 235, 235, 0.2), rgba(235, 235, 235, 1) 100%)'\n }\n },\n '&$listItemFocus': {\n '& $itemAfter': {\n background: 'linear-gradient(to right, rgba(219, 219, 219, 0.2), rgba(219, 219, 219, 1) 100%)'\n }\n },\n '&:focus': {\n outline: 'none'\n }\n },\n listItemFocus: {},\n icon: {\n opacity: 0.29,\n width: '16px',\n height: '16px',\n flexShrink: 0,\n marginRight: '6px',\n marginLeft: '8px'\n },\n recommendedIcon: {\n width: '18px',\n height: '18px',\n marginRight: '5px',\n marginLeft: '7px',\n flexShrink: 0\n },\n logoIcon: {\n width: '18px',\n height: '18px',\n flexShrink: 0,\n marginRight: '4px'\n },\n itemAfter: {\n position: 'absolute',\n right: 0,\n top: 0,\n width: '40px',\n height: '100%',\n pointerEvents: 'none',\n background: 'linear-gradient(to right, rgba(255, 255, 255, 0.2), #fff 100%)'\n },\n itemText: {\n padding: '0',\n margin: 0,\n '& span': {\n fontSize: '0.8125rem',\n letterSpacing: 'normal',\n whiteSpace: 'nowrap'\n }\n },\n checkbox: {\n opacity: 0.34,\n padding: 0,\n marginLeft: '14px',\n '&$checked': {\n opacity: 1,\n background: 'none'\n }\n },\n checked: {},\n marginWrapper: {\n display: 'flex',\n alignItems: 'center'\n },\n defaultCursor: {\n cursor: 'default'\n },\n itemTooltip: {\n margin: '4px 0'\n },\n marginText: {\n marginLeft: '21px'\n },\n itemTextWrapper: {\n display: 'flex',\n alignItems: 'center'\n }\n});\n","import React from 'react';\n\nimport {DataTypes, AttributeType} from '@reltio/mdm-sdk';\nimport NestedAttrIcon from '../../icons/NestedAttribute';\nimport ReferenceAttrIcon from '../../icons/ReferenceAttribute';\nimport SimpleAttrIcon from '../../icons/SimpleAttribute';\nimport {useStyles} from './styles';\n\nconst getIconForAttrType = (attrType: AttributeType) => {\n switch (attrType.type) {\n case DataTypes.TYPE_IMAGE:\n case DataTypes.TYPE_NESTED:\n return NestedAttrIcon;\n case DataTypes.TYPE_REFERENCE:\n return ReferenceAttrIcon;\n default:\n return SimpleAttrIcon;\n }\n};\n\ntype Props = {\n attrType?: AttributeType;\n};\n\nconst AttrTypeIcon = ({attrType = {} as AttributeType}: Props) => {\n const styles = useStyles();\n const Icon = getIconForAttrType(attrType);\n return <Icon className={styles.icon} />;\n};\n\nexport default AttrTypeIcon;\n","import React from 'react';\n\nconst SvgRecommended: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width={13} height={18} viewBox=\"0 0 13 18\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <g transform=\"translate(-3 -1)\" stroke=\"none\" strokeWidth={1} fill=\"none\" fillRule=\"evenodd\">\n <path fill=\"#FF4081\" d=\"M5.833 10h3.75v6.667l-3.75 1.666z\" />\n <path fill=\"#CE0C4E\" d=\"M13.333 10v8.333l-3.75-1.666V10z\" />\n <circle fill=\"#FFC058\" cx={9.583} cy={7.917} r={6.25} />\n <circle fill=\"#FFCD7B\" cx={9.583} cy={7.917} r={5.417} />\n <path fill=\"#FFFBB5\" d=\"M8.333 11.667L5 8.462l.933-.898 2.4 2.308L13.4 5l.933.897z\" />\n </g>\n </svg>\n );\n};\n\nexport default SvgRecommended;\n","import React, {memo} from 'react';\n\nimport classnames from 'classnames';\nimport i18n from 'ui-i18n';\nimport {AttributeType} from '@reltio/mdm-sdk';\nimport ListItem, {ListItemProps} from '@material-ui/core/ListItem';\nimport {ListItemText as ListItemText} from '@material-ui/core';\nimport {Checkbox as Checkbox} from '@material-ui/core';\nimport ExpandedValueTooltip from '../ExpandedValueTooltip/ExpandedValueTooltip';\nimport {isNested} from '@reltio/mdm-sdk';\nimport withTooltip from '../../HOCs/withTooltip/withTooltip';\nimport RequiredMark from '../RequiredMark/RequiredMark';\nimport {noop} from '../../core';\nimport AttrTypeIcon from './AttrTypeIcon';\nimport Marginator from '../Marginator/Marginator';\nimport RecommendedIcon from '../../icons/Recommended';\nimport {useStyles} from './styles';\n\nexport const RecommendedIconWithTooltip = withTooltip(RecommendedIcon);\n\ntype Data = {\n attrType?: AttributeType;\n};\ntype Props = {\n data: Data;\n checked: boolean;\n label: React.ReactNode;\n labelInText?: string;\n level?: number;\n isFocused?: boolean;\n isRequired?: boolean;\n hideIcon?: boolean;\n hideCheckBox?: boolean;\n notSelectable?: boolean;\n disableHorizontalScrollbar?: boolean;\n onClick?: (data: Data, checked: boolean, groupId: string) => void;\n subItemMargin?: number;\n groupId?: string;\n style?: ListItemProps['style'];\n LogoIcon?: React.ElementType;\n className?: string;\n disableNonSelectable?: boolean;\n disableGutters?: boolean;\n};\n\nconst AttributeListItem = ({\n groupId,\n data,\n checked = false,\n isFocused = false,\n isRequired = false,\n label,\n labelInText,\n level,\n onClick = noop,\n hideCheckBox = false,\n hideIcon = false,\n notSelectable = false,\n disableHorizontalScrollbar = false,\n style = {},\n subItemMargin = 20,\n LogoIcon,\n className,\n disableNonSelectable,\n disableGutters\n}: Props) => {\n const styles = useStyles();\n const {attrType} = data || {};\n\n const isButton = (!hideCheckBox || !isNested(attrType)) && !notSelectable;\n const handleItemClick = () => onClick(data, !checked, groupId);\n const showLogoIcon = !!LogoIcon;\n\n const renderIcon = (attrType: AttributeType): JSX.Element =>\n groupId === 'recommended' ? (\n <RecommendedIconWithTooltip\n className={styles.recommendedIcon}\n tooltipTitle={i18n.text('Recommended')}\n showForDisabled={true}\n />\n ) : (\n <AttrTypeIcon attrType={attrType} />\n );\n\n // TODO: ListItem needs to be split to ListItem and ListItemButton after material ui releases stable version(https://github.com/mui-org/material-ui/pull/26446). The \"button\" prop will be deprecated.\n return (\n <ExpandedValueTooltip value={labelInText || label} className={styles.itemTooltip} placement=\"bottom-end\">\n <ListItem\n className={classnames(\n styles.container,\n styles.listItem,\n {[styles.defaultCursor]: !isButton},\n className\n )}\n onClick={isButton ? handleItemClick : undefined}\n style={style}\n dense\n button={isButton as any}\n disabled={disableNonSelectable && notSelectable}\n classes={{\n focusVisible: styles.listItemFocus,\n selected: styles.listItemFocus\n }}\n selected={isFocused}\n tabIndex={-1}\n disableGutters={disableGutters}\n >\n {!hideCheckBox && (\n <Checkbox\n checked={checked}\n disableRipple\n disabled={!isButton}\n className={classnames(styles.checkbox, {[styles.checked]: checked})}\n tabIndex={-1}\n />\n )}\n <Marginator margin={subItemMargin} level={level} className={styles.marginWrapper}>\n <>\n {!hideIcon && renderIcon(attrType)}\n <div className={classnames(styles.itemTextWrapper, {[styles.marginText]: hideIcon})}>\n {showLogoIcon && <LogoIcon className={styles.logoIcon} />}\n <ListItemText\n primary={\n <>\n {label}\n {isRequired && <RequiredMark />}\n </>\n }\n className={styles.itemText}\n />\n </div>\n </>\n </Marginator>\n {isButton && disableHorizontalScrollbar && <div className={styles.itemAfter} />}\n </ListItem>\n </ExpandedValueTooltip>\n );\n};\n\nexport default memo(AttributeListItem);\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const customStyles = {\n input: (currentStyles) => ({...currentStyles, fontSize: '14px'}),\n menuPortal: (currentStyles) => ({...currentStyles, zIndex: 1300})\n};\n\nexport const useStyles = makeStyles({\n root: {\n flex: 1\n },\n title: {\n paddingBottom: '10px',\n paddingLeft: '5px',\n fontSize: '14px'\n },\n dropDownInput: {\n width: '100%',\n justifyContent: 'center',\n backgroundColor: 'rgba(0, 0, 0, 0.03)',\n borderTop: '4px'\n },\n option: {\n fontSize: '14px',\n height: '32px'\n },\n noOptionsMessage: {\n fontSize: '14px'\n }\n});\n","import React, {useCallback, useMemo} from 'react';\nimport i18n from 'ui-i18n';\nimport classnames from 'classnames';\nimport {pipe, defaultTo} from 'ramda';\nimport {useSelector} from 'react-redux';\nimport {AttributeOption} from '../../types';\nimport mdmModule from '@reltio/mdm-module';\nimport {MultiValueProps, OptionProps} from 'react-select';\nimport {AttributeType, getAttributeTypeSubAttributes, Metadata, TEntityType} from '@reltio/mdm-sdk';\nimport {Typography as Typography} from '@material-ui/core';\nimport MultiSelect from '../ReactSelect/MultiSelect';\nimport MultiValue from '../ReactSelect/commonComponents/MultiValue';\nimport DropdownIndicatorWithIconButton from '../commonReactSelectComponents/DropdownIndicatorWithIconButton';\nimport AttributeListItem from '../AttributeListItem/AttributeListItem';\nimport {customStyles, useStyles} from './styles';\n\ntype Props = {\n entityType: TEntityType;\n selectedAttributes: AttributeOption[];\n className?: string;\n onChange?: (attributes: AttributeOption[]) => void;\n title?: string;\n disableUnderline?: boolean;\n menuPlacement?: string;\n};\n\nconst AttributeSelector = ({\n entityType,\n selectedAttributes,\n className,\n onChange,\n title,\n disableUnderline,\n menuPlacement = 'bottom'\n}: Props) => {\n const metadata: Metadata = useSelector(mdmModule.selectors.getMetadata);\n const styles = useStyles();\n\n const prepareItems = useCallback(\n (data: AttributeType[], level = 0, prevLabel = ''): AttributeOption[] => {\n return data.reduce((acc, item) => {\n if (item.hidden) return acc;\n const chipLabel = `${prevLabel && prevLabel + ' / '}${item.label}`;\n acc.push({\n label: item.label,\n value: item.uri,\n attrType: item,\n chipLabel,\n level\n });\n const subAttributes = getAttributeTypeSubAttributes(metadata, item);\n return acc.concat(subAttributes ? prepareItems(subAttributes, level + 1, chipLabel) : []);\n }, []);\n },\n [metadata]\n );\n\n const options = useMemo(() => prepareItems(entityType?.attributes || []), [entityType, prepareItems]);\n\n const CustomOption = ({isFocused, isSelected, data, label, innerProps}: OptionProps<AttributeOption, true>) => (\n <div {...innerProps}>\n <AttributeListItem\n checked={isSelected}\n level={data.level}\n data={data}\n label={label}\n labelInText={label}\n isFocused={isFocused}\n />\n </div>\n );\n\n const CustomMultiValue = ({data, ...props}: MultiValueProps<AttributeOption>) => (\n <MultiValue {...props}>{data.chipLabel}</MultiValue>\n );\n\n return (\n <div className={classnames(styles.root, className)}>\n <Typography className={styles.title} variant={'subtitle1'}>\n {title || i18n.text('Attribute')}\n </Typography>\n <MultiSelect\n value={selectedAttributes}\n options={options}\n TextFieldProps={{\n InputProps: {disableUnderline},\n classes: {root: styles.dropDownInput}\n }}\n components={{\n DropdownIndicator: DropdownIndicatorWithIconButton,\n MultiValue: CustomMultiValue,\n Option: CustomOption\n }}\n onChange={pipe(defaultTo([]), onChange)}\n styles={customStyles}\n classes={styles}\n menuPlacement={menuPlacement}\n menuPortalTarget={document.body}\n />\n </div>\n );\n};\n\nexport default AttributeSelector;\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({\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 (\n <SmallIconButtonWithTooltip\n data-reltio-id=\"collapse-button\"\n {...buttonProps}\n {...tooltipProps}\n {...otherProps}\n />\n );\n};\n\nexport default CollapseButton;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n root: {\n display: 'flex',\n flex: 1\n },\n input: {\n height: '100%',\n paddingLeft: '12px',\n paddingRight: '8px',\n fontSize: '14px'\n },\n inputNumber: {\n minWidth: '60px',\n marginRight: 10,\n height: '100%',\n backgroundColor: 'rgba(0, 0, 0, 0.03)'\n },\n inputUnit: {\n width: '100%'\n }\n});\n","import React from 'react';\nimport {pipe} from 'ramda';\nimport {getIntervalUnitLabel} from '@reltio/mdm-sdk';\nimport capitalize from '@material-ui/core/utils/capitalize';\nimport {TextField as TextField} from '@material-ui/core';\nimport SimpleDropDownSelector from '../SimpleDropDownSelector/SimpleDropDownSelector';\nimport {getValue} from '../../core/utils';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n interval: [number, string];\n onChange: ([number, string]) => void;\n onFocus?: () => void;\n};\n\nconst periods = ['minutes', 'hours', 'days', 'weeks', 'months', 'years'];\n\nconst DateIntervalSelector = ({interval: [value, unit], onChange, onFocus}: Props) => {\n const styles = useStyles();\n const getIntervalFromValue = (newValue: number) => [newValue, unit];\n const getIntervalFromUnit = ({value: newUnit}: {value: string}) => [value, newUnit];\n const onNumberChange = pipe(getValue, parseInt, getIntervalFromValue, onChange);\n const onUnitChange = pipe(getIntervalFromUnit, onChange);\n return (\n <div className={styles.root}>\n <TextField\n type=\"number\"\n value={value || ''}\n onChange={onNumberChange}\n inputProps={{min: 1, onFocus: onFocus}}\n InputProps={{classes: {root: styles.input}}}\n className={styles.inputNumber}\n />\n <SimpleDropDownSelector\n label={''}\n placeholder={capitalize(unit)}\n className={styles.inputUnit}\n value={{value: unit, label: capitalize(getIntervalUnitLabel(unit))}}\n options={periods.map((value) => ({\n value,\n label: capitalize(getIntervalUnitLabel(value))\n }))}\n onChange={onUnitChange}\n TextFieldProps={{\n inputProps: {onFocus: onFocus},\n InputProps: {classes: {root: styles.input}}\n }}\n />\n </div>\n );\n};\n\nexport default DateIntervalSelector;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useMenuStyles = makeStyles((theme) => ({\n addLabel: {\n display: 'flex',\n padding: '0 7px',\n height: '35px',\n alignItems: 'center',\n fontSize: '13px',\n fontWeight: '500',\n color: theme.palette.primary.main,\n cursor: 'pointer',\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n borderTop: 'solid 1px rgba(0, 0, 0, 0.14)',\n backgroundColor: 'rgba(0, 0, 0, 0.03)'\n },\n addIcon: {\n height: '18px',\n width: '18px',\n padding: '0 9px'\n }\n}));\n\nexport const useSingleValueStyles = makeStyles({\n singleValue: {\n fontSize: '14px',\n lineHeight: '16px',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n marginTop: '21px'\n }\n});\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport {prop} from 'ramda';\nimport AddIcon from '@material-ui/icons/Add';\nimport {useMenuStyles} from './styles';\nimport MenuWithPopper from '../../commonReactSelectComponents/MenuWithPopper';\n\nconst Menu = (props) => {\n const {\n selectProps: {onCreate, createLabel, inputValue, components},\n children\n } = props;\n\n const styles = useMenuStyles();\n return (\n <MenuWithPopper {...props}>\n {children}\n {createLabel && !prop('Group', components) && (\n <span className={styles.addLabel} onClick={() => onCreate(inputValue)}>\n <AddIcon className={styles.addIcon} />\n {createLabel}\n </span>\n )}\n </MenuWithPopper>\n );\n};\n\nMenu.propTypes = {\n children: PropTypes.element.isRequired,\n selectProps: PropTypes.object.isRequired\n};\n\nexport default Menu;\n","import {Typography as Typography} from '@material-ui/core';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport {useSingleValueStyles} from './styles';\n\nexport default function SingleValue(props) {\n const {\n selectProps: {menuIsOpen},\n innerProps,\n children\n } = props;\n const styles = useSingleValueStyles();\n\n return (\n !menuIsOpen && (\n <Typography className={styles.singleValue} {...innerProps}>\n {children}\n </Typography>\n )\n );\n}\n\nSingleValue.propTypes = {\n children: PropTypes.node,\n innerProps: PropTypes.object\n};\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n control: {\n height: 'auto'\n },\n dropdownIndicator: {\n boxSizing: 'content-box',\n transition: 'transform .15s ease',\n padding: (props) => `${(props.height - 24) / 2}px 12px`,\n cursor: 'pointer',\n color: 'rgba(0, 0, 0, 0.54)'\n },\n valueContainer: {\n marginLeft: '16px',\n width: 0\n },\n formControl: {\n margin: 0\n },\n filledInputRoot: {\n backgroundColor: 'rgba(0, 0, 0, 0.03)',\n '&:hover': {\n backgroundColor: 'rgba(0, 0, 0, 0.03)'\n },\n '&.focused': {\n backgroundColor: 'rgba(0, 0, 0, 0.03)'\n }\n },\n filledInputUnderline: {\n '&:before': {\n display: 'none'\n }\n },\n inputLabel: {\n color: 'rgba(0,0,0,0.6)',\n fontSize: '14px',\n lineHeight: '16px',\n paddingLeft: '4px',\n '&.shrink': {\n paddingLeft: '4px'\n }\n }\n});\n\nexport const customStyles = {\n menu: (baseStyles) => ({\n ...baseStyles,\n borderRadius: '0 0 4px 4px',\n backgroundColor: '#FFFFFFFF',\n boxShadow: '0 2px 2px 0 rgba(0,0,0,0.14), 0 3px 1px -2px rgba(0,0,0,0.12), 0 1px 5px 0 rgba(0,0,0,0.2)',\n margin: 0\n }),\n menuList: (baseStyles) => ({\n ...baseStyles,\n maxHeight: '208px',\n padding: '8px 0'\n }),\n group: (baseStyles) => ({\n ...baseStyles,\n padding: '0 0 8px 0'\n }),\n input: (baseStyles) => ({\n ...baseStyles,\n height: '16px',\n color: 'rgba(0, 0, 0, 0.87)',\n fontSize: '14px',\n lineHeight: '16px',\n margin: '16px 0 0',\n padding: 0\n }),\n option: (baseStyles) => ({\n ...baseStyles,\n fontSize: '13px',\n lineHeight: '15px',\n height: '32px'\n })\n};\n\nexport const overloadMenuListStyle = {\n menuList: (baseStyles) => ({\n ...baseStyles,\n padding: 0\n })\n};\n\nexport const withoutLabelInputStyle = {\n input: (baseStyles) => ({\n ...baseStyles,\n height: '16px',\n color: 'rgba(0, 0, 0, 0.87)',\n fontSize: '14px',\n lineHeight: '16px',\n margin: 0,\n padding: 0\n })\n};\n","import React, {useRef, useState} from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {defaultTo, identity, isEmpty, path, prop} from 'ramda';\nimport DropdownIndicator from '../commonReactSelectComponents/DropdownIndicator';\nimport Menu from './components/Menu';\nimport AsyncSelect from '../ReactSelect/AsyncSelect';\nimport Select from '../ReactSelect/Select';\nimport {EmptyStub} from '../../core';\nimport {isEmptyValue} from '@reltio/mdm-sdk';\nimport {useInputStyles} from '../editors/constants';\nimport SingleValue from './components/SingleValue';\nimport {useStyles, customStyles, overloadMenuListStyle, withoutLabelInputStyle} from './styles';\n\nconst DropDownSelector = ({\n value,\n label,\n createLabel,\n getOptions,\n options,\n height = 46,\n onChange = identity,\n onCreate,\n onClear = identity,\n components,\n textFieldInputRef,\n TextFieldProps,\n classes,\n ...otherProps\n}) => {\n const styles = useStyles({height});\n const underlineStyle = useInputStyles();\n const [open, setOpen] = useState(false);\n const inputRef = useRef(null);\n\n const SelectComponent = getOptions ? AsyncSelect : Select;\n\n const showIndicatorSeparator = prop('ClearIndicator', components)\n ? {}\n : {IndicatorSeparator: EmptyStub, ClearIndicator: EmptyStub};\n\n const handleCreate = onCreate\n ? (value, group) => {\n onCreate(value, group);\n setOpen(false);\n }\n : undefined;\n\n const overloadStylesIfGroup = prop('Group', components) ? overloadMenuListStyle : {};\n const overloadStylesIfNoLabel = isEmpty(label) ? withoutLabelInputStyle : {};\n\n const mergedStyles = {...customStyles, ...overloadStylesIfGroup, ...overloadStylesIfNoLabel};\n const mergedClasses = {...styles, ...classes};\n\n return (\n <SelectComponent\n placeholder=\"\"\n defaultOptions={true}\n {...otherProps}\n value={defaultTo(null, value)}\n loadOptions={getOptions}\n options={options}\n cacheOptions={true}\n onChange={onChange}\n onCreate={handleCreate}\n onClear={onClear}\n createLabel={createLabel}\n classes={mergedClasses}\n styles={mergedStyles}\n components={{\n DropdownIndicator,\n LoadingIndicator: EmptyStub,\n SingleValue,\n Menu,\n ...showIndicatorSeparator,\n ...components\n }}\n menuPlacement=\"auto\"\n TextFieldProps={{\n ...TextFieldProps,\n label,\n variant: 'filled',\n margin: 'dense',\n classes: {\n ...prop('classes', TextFieldProps),\n root: classnames(styles.formControl, path(['classes', 'root'], TextFieldProps))\n },\n inputProps: {\n ...prop('inputProps', TextFieldProps)\n },\n InputProps: {\n ...prop('InputProps', TextFieldProps),\n classes: {\n ...path(['InputProps', 'classes'], TextFieldProps),\n root: classnames(\n styles.filledInputRoot,\n path(['InputProps', 'classes', 'root'], TextFieldProps)\n ),\n underline: classnames(\n {[underlineStyle.filledInputUnderline]: isEmptyValue(value)},\n path(['InputProps', 'classes', 'underline'], TextFieldProps)\n ),\n focused: classnames('focused', path(['InputProps', 'classes', 'focused'], TextFieldProps))\n }\n },\n InputLabelProps: {\n ...prop('InputLabelProps', TextFieldProps),\n classes: {\n ...path(['InputLabelProps', 'classes'], TextFieldProps),\n root: classnames(\n styles.inputLabel,\n path(['InputLabelProps', 'classes', 'root'], TextFieldProps)\n ),\n shrink: classnames('shrink', path(['InputLabelProps', 'classes', 'shrink'], TextFieldProps))\n },\n shrink: !isEmptyValue(value) ? true : undefined\n },\n ref: textFieldInputRef || inputRef\n }}\n inputRef={textFieldInputRef || inputRef}\n menuIsOpen={open}\n onMenuOpen={() => setOpen(true)}\n onMenuClose={() => setOpen(false)}\n />\n );\n};\n\nexport const DropDownSelectorType = {\n value: PropTypes.oneOfType([PropTypes.object, PropTypes.array]),\n label: PropTypes.string.isRequired,\n getOptions: PropTypes.func,\n options: PropTypes.array,\n onChange: PropTypes.func,\n onCreate: PropTypes.func,\n onClear: PropTypes.func,\n createLabel: PropTypes.string,\n components: PropTypes.object,\n textFieldInputRef: PropTypes.object,\n TextFieldProps: PropTypes.object,\n height: PropTypes.number,\n classes: PropTypes.object\n};\n\nDropDownSelector.propTypes = DropDownSelectorType;\n\nexport default DropDownSelector;\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';\nimport {TEntityType} from '@reltio/mdm-sdk';\n\nconst ensureSlashEnding = (str) => (str.endsWith('/') ? str : str + '/');\n\ntype Props = {\n entityType: TEntityType;\n className?: string;\n classes?: Record<string, unknown>;\n backgroundColor?: string;\n color?: string;\n};\nconst EntityTypeIcon = (props: Props) => {\n const absoluteImagePath = useSelector(mdmModule.selectors.getAbsoluteImagePath) || '';\n return <RC_EntityTypeIcon {...props} storagePath={ensureSlashEnding(absoluteImagePath)} />;\n};\n\nexport default EntityTypeIcon;\n","import React, {forwardRef, useCallback, useContext} from 'react';\nimport {useSelector, useDispatch} from 'react-redux';\nimport {UrlGeneratorsContext, ViewIdContext} from '../../contexts';\nimport mdmModule, {ui} from '@reltio/mdm-module';\n\ntype Props = {\n className?: string;\n value: string;\n screen?: string;\n children: React.ReactNode;\n};\n\nconst EntityUriLink = forwardRef(({value, children, screen, className}: Props, ref: React.Ref<HTMLAnchorElement>) => {\n const dispatch = useDispatch();\n const viewId = useContext(ViewIdContext);\n const {generateEntityUrl} = useContext(UrlGeneratorsContext);\n const uiPath = useSelector(mdmModule.selectors.getUIPath);\n const generateEntityUrlByUri = (uri: string) => generateEntityUrl({uiPath, uri, screen});\n const onClick = useCallback(() => {\n dispatch(ui.actions.openEntity({uri: value, viewId, screen}));\n }, [viewId, value, dispatch, screen]);\n return (\n <a\n ref={ref}\n href={generateEntityUrlByUri(value)}\n onClick={(e) => {\n onClick();\n e.stopPropagation();\n e.preventDefault();\n }}\n className={className}\n >\n {children}\n </a>\n );\n});\n\nEntityUriLink.displayName = 'EntityUriLink';\n\nexport default EntityUriLink;\n","import AsyncSelect from 'react-select/async';\nimport withMuiSkin from './withMuiSkin';\n\nexport default withMuiSkin(AsyncSelect);\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 {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n mark: {\n color: 'red'\n }\n});\n","import React from 'react';\nimport {useStyles} from './styles';\n\nconst RequiredMark = () => {\n const styles = useStyles();\n\n return <span className={styles.mark}>*</span>;\n};\n\nexport default RequiredMark;\n","import {makeStyles} from '@material-ui/core/styles';\n\nconst styles = makeStyles({\n value: {\n color: 'rgba(0, 0, 0, 0.87)'\n },\n placeholder: {\n color: 'rgba(0, 0, 0, 0.38)',\n fontSize: '14px !important'\n }\n});\n\nexport default styles;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport {Typography as Typography} from '@material-ui/core';\n\nimport useStyles from './styles';\n\nconst DropDownValue = ({selectProps: {menuIsOpen}, data: {label}}) => {\n const styles = useStyles();\n return (\n !menuIsOpen && (\n <Typography variant=\"body2\" classes={{root: styles.value}}>\n {label}\n </Typography>\n )\n );\n};\n\nDropDownValue.propTypes = {\n selectProps: PropTypes.shape({\n menuIsOpen: PropTypes.bool\n }),\n data: PropTypes.shape({\n label: PropTypes.string\n })\n};\n\nexport default DropDownValue;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport {Typography as Typography} from '@material-ui/core';\n\nimport useStyles from './styles';\n\nconst DropDownPlaceholder = (props) => {\n const styles = useStyles();\n const {innerProps = {}, children} = props;\n\n return (\n <Typography className={styles.placeholder} {...innerProps}>\n {children}\n </Typography>\n );\n};\n\nDropDownPlaceholder.propTypes = {\n children: PropTypes.node,\n innerProps: PropTypes.object,\n selectProps: PropTypes.object.isRequired\n};\n\nexport default DropDownPlaceholder;\n","import React, {memo} from 'react';\n\nimport DropDownSelector from '../DropDownSelector/DropDownSelector';\nimport DropDownValue from './DropDownValue';\nimport DropDownPlaceholder from './DropDownPlaceholder';\n\nconst components = {\n SingleValue: DropDownValue,\n Placeholder: DropDownPlaceholder\n};\n\nconst SimpleDropDownSelector = ({...otherProps}) => <DropDownSelector components={components} {...otherProps} />;\n\nexport default memo(SimpleDropDownSelector);\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 customStyles = {\n input: (currentStyles) => ({...currentStyles, fontSize: '14px'}),\n loadingMessage: (currentStyles) => ({...currentStyles, fontSize: '14px'}),\n menuPortal: (currentStyles) => ({...currentStyles, zIndex: 1300})\n};\n\nexport const useStyles = makeStyles({\n root: {\n flex: 1\n },\n title: {\n paddingBottom: '10px',\n paddingLeft: '5px',\n fontSize: '14px'\n },\n dropDownInput: {\n width: '100%',\n justifyContent: 'center',\n backgroundColor: 'rgba(0, 0, 0, 0.03)',\n borderTop: '4px'\n },\n option: {\n fontSize: '14px',\n height: '32px'\n }\n});\n","import React, {useRef} from 'react';\nimport {useSelector} from 'react-redux';\nimport i18n from 'ui-i18n';\nimport {defaultTo, pipe, pluck} from 'ramda';\nimport classnames from 'classnames';\nimport {Typography as Typography} from '@material-ui/core';\nimport MultiSelect from '../ReactSelect/MultiSelect';\nimport DropdownIndicatorWithIconButton from '../commonReactSelectComponents/DropdownIndicatorWithIconButton';\nimport {getAllUsersForTenant, UserInfo, utils} from '@reltio/mdm-sdk';\nimport mdmModule from '@reltio/mdm-module';\nimport {customStyles, useStyles} from './styles';\n\ntype Props = {\n selectedUsers: string[];\n onChange: (activities: string[]) => void;\n className?: string;\n disableUnderline?: boolean;\n};\n\nconst UserSelector = ({selectedUsers, onChange, className, disableUnderline}: Props) => {\n const styles = useStyles();\n\n const valueToOption = (value: string) => ({value, label: value});\n const prepareValues = (values: string[]) => values.map(valueToOption);\n const filterUsers = (inputValue) => (users) =>\n inputValue ? users.filter((username) => utils.strings.search(username, inputValue)) : users;\n\n const tenant = useSelector(mdmModule.selectors.getTenant);\n const servicesPath = useSelector(mdmModule.selectors.getServicesPath);\n\n const cachedRequest = useRef<Promise<UserInfo[]>>();\n const getOptions = (inputValue) => {\n if (!cachedRequest.current) {\n cachedRequest.current = getAllUsersForTenant({tenant, servicesPath});\n }\n return cachedRequest.current.then(pipe(pluck('username'), filterUsers(inputValue), prepareValues));\n };\n\n return (\n <div className={classnames(styles.root, className)}>\n <Typography className={styles.title} variant={'subtitle1'}>\n {i18n.text('User')}\n </Typography>\n <MultiSelect\n value={prepareValues(selectedUsers)}\n onChange={pipe(defaultTo([]), pluck('value'), onChange)}\n defaultOptions={true}\n getOptions={getOptions}\n TextFieldProps={{\n InputProps: {disableUnderline},\n className: styles.dropDownInput\n }}\n components={{\n DropdownIndicator: DropdownIndicatorWithIconButton\n }}\n styles={customStyles}\n classes={styles}\n menuPortalTarget={document.body}\n />\n </div>\n );\n};\n\nexport default UserSelector;\n","export enum ActivityTypes {\n MODEL_UPDATED = 'MODEL_UPDATED',\n ENTITY_REMOVED = 'ENTITY_REMOVED',\n ENTITY_CREATED = 'ENTITY_CREATED',\n ENTITY_CHANGED = 'ENTITY_CHANGED',\n ENTITIES_MERGED = 'ENTITIES_MERGED',\n ENTITIES_SPLITTED = 'ENTITIES_SPLITTED',\n ENTITY_LOST_MERGE = 'ENTITY_LOST_MERGE',\n RELATIONSHIP_CREATED = 'RELATIONSHIP_CREATED',\n RELATIONSHIP_REMOVED = 'RELATIONSHIP_REMOVED',\n RELATIONSHIP_CHANGED = 'RELATIONSHIP_CHANGED',\n POTENTIAL_MATCHES_FOUND = 'POTENTIAL_MATCHES_FOUND',\n NOT_MATCHES_SET = 'NOT_MATCHES_SET',\n NOT_MATCHES_RESET = 'NOT_MATCHES_RESET',\n PERIODIC_TASK_SCHEDULED = 'PERIODIC_TASK_SCHEDULED',\n ENTITIES_MERGED_MANUALLY = 'ENTITIES_MERGED_MANUALLY',\n POTENTIAL_MATCHES_REMOVED = 'POTENTIAL_MATCHES_REMOVED',\n ENTITIES_MERGED_ON_THE_FLY = 'ENTITIES_MERGED_ON_THE_FLY',\n USER_LOGIN = 'USER_LOGIN',\n USER_LOGOUT = 'USER_LOGOUT',\n USER_SEARCH = 'USER_SEARCH',\n USER_PROFILE_VIEW = 'USER_PROFILE_VIEW',\n COMMENT_ADDED = 'COMMENT_ADDED',\n COMMENT_UPDATED = 'COMMENT_UPDATED',\n COMMENT_DELETED = 'COMMENT_DELETED',\n ANALYTICS_ATTRIBUTES_CHANGED = 'ANALYTICS_ATTRIBUTES_CHANGED',\n SFDC_CONNECTOR_SYNCHRONIZATION_ISSUE = 'SFDC_CONNECTOR_SYNCHRONIZATION_ISSUE',\n GROUP_CREATED = 'GROUP_CREATED',\n GROUP_REMOVED = 'GROUP_REMOVED',\n GROUP_CHANGED = 'GROUP_CHANGED'\n}\n","import {\n formatDataTypeValue,\n findAttributeTypeByUri,\n Metadata,\n AttributePresentations,\n makeAttrTypeUri,\n getAttrDataTypeDefinition\n} from '@reltio/mdm-sdk';\nimport {filter, groupBy, ifElse, map, path, pipe, propOr, values, isNil, includes, reject} from 'ramda';\nimport i18n from 'ui-i18n';\nimport {ActivityData, ActivityItem, ActivityTypes, DeltaValue} from '../types';\n\nconst getItemDataType = path(['data', 'type']);\n\nexport const getActivityType = (activity: ActivityData) => {\n const {items, label} = activity;\n const [firstItem] = items || [];\n return getItemDataType(firstItem) || label;\n};\n\nexport const isValidActivityType = (type: string): boolean => pipe(values, includes(type))(ActivityTypes);\n\nexport const removeIgnoredItems = (activity: ActivityData): ActivityData => {\n const {items = [], label} = activity;\n const isImplementedItem = (item: ActivityItem): boolean => isValidActivityType(getItemDataType(item) || label);\n const filteredItems = filter(isImplementedItem)(items);\n if (items.length !== filteredItems.length) {\n console.error('Activities not implemented:', reject(isImplementedItem)(items));\n }\n return {\n ...activity,\n items: filteredItems,\n itemsTotal: filteredItems.length\n };\n};\n\nexport const splitActivityByType = (activity: ActivityData) => {\n return pipe(\n propOr([], 'items'),\n groupBy(getItemDataType),\n values,\n ifElse(\n ({length}) => length > 1,\n map((items) => ({\n ...activity,\n items,\n itemsTotal: items.length\n })),\n () => [activity]\n )\n )(activity);\n};\n\nexport const stringifyDeltaValue = (\n deltaValue: DeltaValue['value'],\n attributeTypeUri: string,\n metadata: Metadata,\n attributePresentations: AttributePresentations\n) => {\n const attributeType = findAttributeTypeByUri(metadata, attributeTypeUri);\n const dataTypeDefinition = getAttrDataTypeDefinition(attributeType);\n const formatValue = formatDataTypeValue({attributePresentations, dataTypeDefinition});\n\n if (isNil(deltaValue)) {\n return '';\n }\n\n if (typeof deltaValue === 'string') {\n return attributeType ? formatValue(deltaValue) : deltaValue;\n }\n\n return Object.entries(deltaValue)\n .flatMap(([attributeTypeName, deltaValues]) =>\n deltaValues.map((deltaValue) =>\n stringifyDeltaValue(\n deltaValue.value,\n makeAttrTypeUri(attributeTypeUri, attributeTypeName),\n metadata,\n attributePresentations\n )\n )\n )\n .join(', ');\n};\n\nexport const getActivityLabel = (type: ActivityTypes) => {\n const labels = {\n [ActivityTypes.COMMENT_ADDED]: i18n.text('Comment added'),\n [ActivityTypes.COMMENT_DELETED]: i18n.text('Comment deleted'),\n [ActivityTypes.COMMENT_UPDATED]: i18n.text('Comment updated'),\n [ActivityTypes.ENTITIES_MERGED]: i18n.text('Profile merged'),\n [ActivityTypes.ENTITIES_MERGED_MANUALLY]: i18n.text('Profile merged manually'),\n [ActivityTypes.ENTITIES_MERGED_ON_THE_FLY]: i18n.text('Profile merged on the fly'),\n [ActivityTypes.ENTITIES_SPLITTED]: i18n.text('Profile un-merged'),\n [ActivityTypes.ENTITY_CHANGED]: i18n.text('Profile updated'),\n [ActivityTypes.ENTITY_CREATED]: i18n.text('Profile created'),\n [ActivityTypes.ENTITY_LOST_MERGE]: i18n.text('Profile lost merge'),\n [ActivityTypes.ENTITY_REMOVED]: i18n.text('Profile removed'),\n [ActivityTypes.GROUP_CHANGED]: i18n.text('Group updated'),\n [ActivityTypes.GROUP_CREATED]: i18n.text('Group created'),\n [ActivityTypes.GROUP_REMOVED]: i18n.text('Group removed'),\n [ActivityTypes.MODEL_UPDATED]: i18n.text('Model was updated'),\n [ActivityTypes.NOT_MATCHES_RESET]: i18n.text('Not matches reset'),\n [ActivityTypes.NOT_MATCHES_SET]: i18n.text('Not matches set'),\n [ActivityTypes.PERIODIC_TASK_SCHEDULED]: i18n.text('Periodic task was scheduled'),\n [ActivityTypes.POTENTIAL_MATCHES_FOUND]: i18n.text('Potential matches found'),\n [ActivityTypes.POTENTIAL_MATCHES_REMOVED]: i18n.text('Potential matches removed'),\n [ActivityTypes.RELATIONSHIP_CHANGED]: i18n.text('Relationship updated'),\n [ActivityTypes.RELATIONSHIP_CREATED]: i18n.text('Relationship created'),\n [ActivityTypes.RELATIONSHIP_REMOVED]: i18n.text('Relationship removed'),\n [ActivityTypes.USER_LOGIN]: i18n.text('Logged in'),\n [ActivityTypes.USER_LOGOUT]: i18n.text('Logged out'),\n [ActivityTypes.USER_PROFILE_VIEW]: i18n.text('Profile viewed'),\n [ActivityTypes.USER_SEARCH]: i18n.text('Searched'),\n [ActivityTypes.ANALYTICS_ATTRIBUTES_CHANGED]: i18n.text('Analytics attribute changed'),\n [ActivityTypes.SFDC_CONNECTOR_SYNCHRONIZATION_ISSUE]: i18n.text('SFDC connector synchronization issue')\n };\n return labels[type] || '';\n};\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n root: {\n flex: 1\n },\n dropdownIndicator: {\n transition: 'transform .15s ease'\n },\n inputRoot: {\n fontSize: '14px',\n height: 46\n },\n input: {\n padding: '0 12px 0'\n },\n dateOptionLabel: {\n minWidth: '100px'\n },\n paper: {\n minWidth: '112px'\n }\n});\n","import React, {useCallback, useRef, useState} from 'react';\nimport moment from 'moment';\nimport i18n from 'ui-i18n';\nimport {isNil} from 'ramda';\nimport {DataTypes, formatDataTypeValue} from '@reltio/mdm-sdk';\nimport {noop} from '../../../core';\n\nimport {TextField as TextField} from '@material-ui/core';\nimport {Menu as Menu} from '@material-ui/core';\nimport DropdownIndicatorWithIconButton from '../../commonReactSelectComponents/DropdownIndicatorWithIconButton';\nimport DateRangePicker from '../../DateRangePicker/DateRangePicker';\nimport {useStyles} from './styles';\n\ntype DateValues = [Date, Date];\ntype Props = {\n values: DateValues;\n onChange: (values: DateValues) => void;\n onFocus?: () => void;\n};\n\nconst localeFormat = moment.localeData().longDateFormat('L');\n\nconst formatValue = (value: Date, placeholder: string) => {\n return isNil(value)\n ? `${placeholder}`\n : `${formatDataTypeValue({dataTypeDefinition: {type: DataTypes.TYPE_ACTIVENESS_DATE}}, value)}`;\n};\n\nconst CustomDateRangeEditor = ({values, onChange, onFocus = noop}: Props) => {\n const placeholder = localeFormat;\n const inputRef = useRef(null);\n const [open, setOpen] = useState(false);\n const styles = useStyles();\n\n const onApply = (values: DateValues) => {\n onChange(values);\n setOpen(false);\n };\n\n const handleToggle = useCallback(() => {\n setOpen((open) => !open);\n onFocus();\n }, [onFocus]);\n\n const onCancel = () => {\n setOpen(false);\n };\n\n return (\n <div className={styles.root}>\n <TextField\n fullWidth\n value={values.map((value) => formatValue(value, placeholder)).join(' \\u2014 ')}\n onClick={handleToggle}\n variant=\"filled\"\n ref={inputRef}\n InputProps={{\n endAdornment: (\n <DropdownIndicatorWithIconButton\n selectProps={{classes: styles, menuIsOpen: open}}\n innerProps={{}}\n />\n ),\n disableUnderline: isNil(values),\n readOnly: true,\n classes: {\n root: styles.inputRoot,\n input: styles.input\n }\n }}\n InputLabelProps={{\n shrink: false\n }}\n placeholder={i18n.text(`${placeholder} \\u2014 ${placeholder}`)}\n />\n <Menu\n variant=\"menu\"\n open={open}\n autoFocus={false}\n classes={{paper: styles.paper}}\n anchorEl={inputRef.current}\n onClose={onCancel}\n anchorOrigin={{\n vertical: 'bottom',\n horizontal: 'left'\n }}\n transformOrigin={{\n vertical: 'top',\n horizontal: 'left'\n }}\n elevation={2}\n getContentAnchorEl={null}\n MenuListProps={{\n autoFocusItem: open,\n style: {width: '100%'}\n }}\n >\n <DateRangePicker\n values={values}\n onCancel={onCancel}\n onApply={onApply}\n type={DataTypes.TYPE_ACTIVENESS_DATE}\n />\n </Menu>\n </div>\n );\n};\n\nexport default CustomDateRangeEditor;\n","import React from 'react';\nimport {generateEntityUrlForOldMode, generatePivotingUrlForOldMode, generateTagUrlForOldMode} from '@reltio/mdm-sdk';\n\ntype GenerateEntityUrl = (params: {uiPath: string; uri: string; screen?: string}) => string;\ntype GeneratePivotingUrl = (params: {uiPath: string; uri: string; value: string}) => string;\ntype GenerateTagUrl = (params: {uiPath: string; tag: string; entityUri: string}) => string;\n\ntype UrlGenerators = {\n generateEntityUrl?: GenerateEntityUrl;\n generatePivotingUrl?: GeneratePivotingUrl;\n generateTagUrl?: GenerateTagUrl;\n};\n\nexport const UrlGeneratorsContext = React.createContext<UrlGenerators>({\n generateEntityUrl: generateEntityUrlForOldMode,\n generatePivotingUrl: generatePivotingUrlForOldMode,\n generateTagUrl: generateTagUrlForOldMode\n});\n\nUrlGeneratorsContext.displayName = 'UrlGeneratorsContext';\n","import React from 'react';\n\nexport const ViewIdContext = React.createContext<string>(null);\n\nViewIdContext.displayName = 'ViewIdContext';\n","import React from 'react';\n\nconst SvgNestedAttribute: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width={24} height={24} viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M14 11v-1a1 1 0 011-1h4a1 1 0 011 1v4a1 1 0 01-1 1h-4a1 1 0 01-1-1v-1h-3v1a1 1 0 01-1 1H6a1 1 0 01-1-1v-4a1 1 0 011-1h4a1 1 0 011 1v1h3z\"\n fill=\"#000\"\n stroke=\"none\"\n strokeWidth={1}\n fillRule=\"evenodd\"\n />\n </svg>\n );\n};\n\nexport default SvgNestedAttribute;\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: i18n.text('Refresh'),\n icon: <ReplayIcon />,\n active: !!onRefresh,\n action: () => onRefresh()\n },\n {\n id: 'fullscreen',\n title: i18n.text('Fullscreen'),\n icon: <FullscreenIcon />,\n active: !isFullscreen,\n action: () => onToggleFullscreen(id)\n },\n {\n id: 'exitFullscreen',\n title: i18n.text('Exit fullscreen'),\n icon: <FullscreenExitIcon />,\n active: isFullscreen,\n action: () => onToggleFullscreen(id)\n },\n {\n id: 'remove',\n title: i18n.text('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 EmptyPlaceholder?: React.ReactNode;\n};\n\nconst LayoutItemContent = <T extends unknown>({\n loadingState,\n onRefresh,\n children,\n data,\n className,\n EmptyPlaceholder\n}: 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 EmptyPlaceholder || <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 isSomeEntityTypeFilter = ({filter, fieldName}: DashboardConfigFilter) =>\n filter === FilterOptions.EQUALS && fieldName === 'type';\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 isSomeEntityTypeFilter\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) || filters.find(isSomeEntityTypeFilter)?.values?.[0];\n return {\n facets: filters.map(convertFilterToFacetState(metadata, entityType))\n };\n }\n);\n","import React, {memo, useContext, useMemo} from 'react';\nimport {useDispatch, useSelector} from 'react-redux';\nimport {ChartsFactory, SearchFiltersContext, useReloadFacet} from '@reltio/components';\nimport {useFacetRequest} from '../../hooks/useFacetRequest';\nimport {ChartTypes, DashboardFacetConfig, SearchFilter} 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';\nimport {convertSearchFilterToDashboardConfigFilter} from '../../services/filters';\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\n const searchFilters = useContext<SearchFilter[]>(SearchFiltersContext);\n const allFilters = useMemo(\n () => searchFilters.map(convertSearchFilterToDashboardConfigFilter).concat(filters || []),\n [searchFilters, filters]\n );\n\n const onItemClick = pipe(\n getFiltersForFacetItem(attributeUri, data),\n concat(getFiltersForFacet(attributeUri, allFilters)),\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} 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 searchByOv: boolean = useSelector(mdmModule.selectors.getShowSearchByOv);\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 enum PeriodStep {\n HOUR = 'hour',\n DAY = 'day'\n}\n","import moment from 'moment';\nimport {defaultTo, map, pipe} from 'ramda';\nimport {getDateRangeByValue, getDateRangeByDatePeriod, DatePeriod, DateRangeValue} from '@reltio/mdm-sdk';\nimport {PeriodStep} from '../types/PeriodStep';\n\nconst getStepForTimestampInterval = ([startTime, endTime]) => {\n return endTime - startTime > +moment.duration(1, 'day') ? PeriodStep.DAY : PeriodStep.HOUR;\n};\n\nconst getStepForPeriod = pipe(\n (period) => getDateRangeByDatePeriod(period, getDashboardDateRangeByValue),\n getStepForTimestampInterval\n);\n\ntype GetDateRangeByValue = (value: DatePeriod | [number, number]) => [number, number];\nexport const getDashboardDateRangeByValue: GetDateRangeByValue = (value) => {\n const currentDate = moment();\n\n switch (value) {\n case DateRangeValue.LAST_WEEK:\n return [moment(currentDate).subtract(6, 'days').valueOf(), currentDate.valueOf()];\n default:\n return getDateRangeByValue(value);\n }\n};\n\nconst getValuesDateRange = pipe(\n getDashboardDateRangeByValue,\n defaultTo([]),\n map((value) => value && new Date(value))\n);\n\nexport {getStepForPeriod, getValuesDateRange};\n","import {\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 moment from 'moment';\nimport i18n from 'ui-i18n';\nimport {getEntitiesStats, getDateRangeByDatePeriod, DatePeriod} from '@reltio/mdm-sdk';\nimport {PeriodStep} from '../types/PeriodStep';\nimport {TimestampedStatsEventData, StatsData, StatsEventData} from '../types/StatsData';\nimport {getDashboardDateRangeByValue} from '../services/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: DatePeriod): Promise<StatsData[]> => {\n const [startTime, endTime] = getDateRangeByDatePeriod(period, getDashboardDateRangeByValue);\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) ? getStats({facet: 'hour', types}) : Promise.resolve({total: 0, data: []})).then(\n ({total, data}) => ({total, data: periodFrame(data), event: id})\n )\n )\n );\n };\n\n return getEvents().then((events) => (events.length > 0 ? getEventsData(events) : []));\n};\n\nconst groupEventsData = curry((step: PeriodStep, eventData: StatsEventData[]): TimestampedStatsEventData[] => {\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(\n (step: PeriodStep, eventData: TimestampedStatsEventData[]): TimestampedStatsEventData[] => {\n const [head, ...other] = eventData;\n return other.reduce(\n (acc, item) => {\n const lastTerm = last(acc).term;\n let nextTerm = moment(lastTerm).add(1, step).valueOf();\n const interpolatedItems = [];\n while (nextTerm < item.term) {\n interpolatedItems.push({\n term: nextTerm,\n count: 0\n });\n nextTerm = moment(nextTerm).add(1, step).valueOf();\n }\n return acc.concat(interpolatedItems, item);\n },\n [head]\n );\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/PeriodStep';\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/PeriodStep';\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/PeriodStep';\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 {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 {useCallback, useEffect, useState} from 'react';\nimport {andThen, otherwise, pipe} from 'ramda';\nimport {requestStats} from '../services/stats';\nimport {getStepForPeriod} from '../services/period';\nimport {StatsData} from '../types/StatsData';\nimport {DatePeriod} from '@reltio/mdm-sdk';\nimport {useSafePromise, RequestStates} from '@reltio/components';\n\nexport const useStatsRequest = (period: DatePeriod) => {\n const [data, setData] = useState<StatsData[]>([]);\n const [step, setStep] = useState(getStepForPeriod(period));\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\n const loadData = useCallback(() => {\n setRequestState(RequestStates.LOADING);\n setStep(getStepForPeriod(period));\n setData([]);\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.toString()]); // 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, step, 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, DatePeriod, DateRangeValue, getDateRangeOptions} from '@reltio/mdm-sdk';\nimport {useReloadFacet, DateRangeEditor} from '@reltio/components';\nimport LayoutItemView from '../../components/LayoutItemView/LayoutItemView';\nimport LayoutItemHeader from '../../components/LayoutItemHeader/LayoutItemHeader';\nimport LayoutItemContent from '../../components/LayoutItemContent/LayoutItemContent';\nimport StatsChart from '../../components/StatsChart/StatsChart';\nimport {useStatsRequest} from '../../hooks/useStatsRequest';\nimport {getValuesDateRange} 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<DatePeriod>(DateRangeValue.LAST_WEEK);\n const {state, data, step, reload} = useStatsRequest(period);\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 <DateRangeEditor\n values={period}\n options={getDateRangeOptions()}\n getValuesDateRange={getValuesDateRange}\n onChange={setPeriod}\n className={styles.periodSelector}\n />\n </LayoutItemHeader>\n <LayoutItemContent loadingState={state} onRefresh={reload} data={data}>\n {({data, width, height}) => <StatsChart data={data} width={width} height={height} step={step} />}\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} 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 searchByOv: boolean = useSelector(mdmModule.selectors.getShowSearchByOv);\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","import {WorkflowTaskData} from '@reltio/mdm-sdk';\n\nexport 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 EnrichedWorkflowTaskData = WorkflowTaskData & {\n objects?: WorkflowTaskObjectData[];\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} from '../types/WorkflowTasks';\nimport {\n getDataChangeRequest,\n getEntitiesByUris,\n getGroupTasksForTenant,\n getTasksForTenant,\n isEntityUri,\n WorkflowTaskData\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 {always, cond, equals, propSatisfies, T} from 'ramda';\nimport {EnrichedWorkflowTaskData, WorkflowTaskObjectData} from '../../types/WorkflowTasks';\nimport {EntityUriLink} from '@reltio/components';\nimport {\n getEntityUriForLink,\n getLabel,\n getRelationType,\n isDCRUri,\n Metadata,\n PredefinedWorkflowProcessType\n} from '@reltio/mdm-sdk';\nimport i18n from 'ui-i18n';\nimport {useStyles} from './styles';\n\ntype Props = {\n object: WorkflowTaskObjectData;\n metadata: Metadata;\n processType: EnrichedWorkflowTaskData['processType'];\n};\n\nconst EntityLink = ({uri, label, screen}: {uri: string; label: string; screen?: string}) => {\n const styles = useStyles();\n return (\n <EntityUriLink value={uri} screen={screen} className={styles.entityLabel}>\n {getLabel(label)}\n </EntityUriLink>\n );\n};\n\nconst WorkflowTaskObject = ({object, metadata, processType}: 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 const screen = cond([\n [\n always(equals(processType, PredefinedWorkflowProcessType.potentialMatchReview)),\n always('potentialMatches')\n ],\n [propSatisfies(isDCRUri, 'uri'), always('dcrReview')],\n [T, always('profile')]\n ])(object);\n return <EntityLink uri={getEntityUriForLink(object)} label={object.label} screen={screen} />;\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 {EnrichedWorkflowTaskData} from '../../types';\nimport {isOverdueTask} from '../../services/workflowTasks';\nimport WorkflowTaskObject from './WorkflowTaskObject';\nimport {useStyles} from './styles';\n\ntype Props = {\n showAssignee: boolean;\n task: EnrichedWorkflowTaskData;\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 {i18n.text(task.processDefinitionDisplayName)}\n </Typography>\n {objects.map((object) => (\n <p key={object.uri} className={styles.taskDetail}>\n <WorkflowTaskObject object={object} processType={task.processType} 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, EnrichedWorkflowTaskData} 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: EnrichedWorkflowTaskData[];\n};\n\nconst WorkflowTasksList = ({width, height, tasksCategory, tasks}: Props) => {\n const renderRow = useCallback(\n ({data, index}: {data: EnrichedWorkflowTaskData[]; 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 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(\n () => ({tasksCategory, max: rowsPerPage, offset: rowsPerPage * page}),\n [rowsPerPage, page, 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, 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 {EnrichedWorkflowTaskData, 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<EnrichedWorkflowTaskData[]>([]);\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: EnrichedWorkflowTaskData[]; 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 {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 setData(data);\n setTotal(total);\n setRequestState(RequestStates.LOADED);\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';\nimport {DateRangeTypes} from '@reltio/mdm-sdk';\nimport {ActivitiesFilter, ActivityLog, ActivityLogFilter, useReloadFacet} from '@reltio/components';\nimport LayoutItemView from '../../components/LayoutItemView/LayoutItemView';\nimport LayoutItemHeader from '../../components/LayoutItemHeader/LayoutItemHeader';\nimport LayoutItemContent from '../../components/LayoutItemContent/LayoutItemContent';\nimport {ActivitiesViewFacetConfig} from '../../types/ActivitiesViewFacetConfig';\nimport {DEFAULT_ROWS_PER_PAGE, getRowsPerPageOptions} from './helpers';\nimport {useActivitiesRequest} from '../../hooks/useActivitiesRequest';\n\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":["props","width","height","viewBox","xmlns","d","fill","stroke","strokeWidth","fillRule","x","y","rx","useStyles","makeStyles","container","paddingLeft","listItem","paddingTop","paddingBottom","transition","background","outline","listItemFocus","icon","opacity","flexShrink","marginRight","marginLeft","recommendedIcon","logoIcon","itemAfter","position","right","top","pointerEvents","itemText","padding","margin","fontSize","letterSpacing","whiteSpace","checkbox","checked","marginWrapper","display","alignItems","defaultCursor","cursor","itemTooltip","marginText","itemTextWrapper","attrType","styles","Icon","type","DataTypes","NestedAttrIcon","ReferenceAttrIcon","SimpleAttrIcon","getIconForAttrType","className","RecommendedIconWithTooltip","withTooltip","transform","cx","cy","r","memo","groupId","data","isFocused","isRequired","label","labelInText","level","onClick","noop","hideCheckBox","hideIcon","notSelectable","disableHorizontalScrollbar","style","subItemMargin","LogoIcon","disableNonSelectable","disableGutters","isButton","isNested","showLogoIcon","ExpandedValueTooltip","value","placement","ListItem","classnames","undefined","dense","button","disabled","classes","focusVisible","selected","tabIndex","Checkbox","disableRipple","Marginator","tooltipTitle","i18n","showForDisabled","renderIcon","ListItemText","primary","RequiredMark","customStyles","input","currentStyles","menuPortal","zIndex","root","flex","title","dropDownInput","justifyContent","backgroundColor","borderTop","option","noOptionsMessage","entityType","selectedAttributes","onChange","disableUnderline","menuPlacement","metadata","useSelector","mdmModule","prepareItems","useCallback","prevLabel","reduce","acc","item","hidden","chipLabel","push","uri","subAttributes","getAttributeTypeSubAttributes","concat","options","useMemo","attributes","Typography","variant","MultiSelect","TextFieldProps","InputProps","components","DropdownIndicator","DropdownIndicatorWithIconButton","MultiValue","Option","isSelected","innerProps","AttributeListItem","pipe","defaultTo","menuPortalTarget","document","body","pagination","boxShadow","caption","color","lineHeight","selectRoot","select","textAlign","actions","BasicTablePagination","count","rowsPerPageOptions","page","onChangePage","rowsPerPage","onChangeRowsPerPage","basicTableRef","labelRowsPerPage","resetScrollbarPosition","pathOr","identity","handleChangePage","handleChangeRowsPerPage","TablePagination","component","labelDisplayedRows","from","to","fromRow","toRow","countRows","nthArg","getValue","propTypes","PropTypes","current","React","collapseButton","expandLess","isOpen","otherProps","buttonProps","ExpandMore","iconClassName","tooltipProps","SmallIconButton","paddingRight","inputNumber","minWidth","inputUnit","periods","interval","unit","onFocus","onNumberChange","parseInt","newValue","onUnitChange","newUnit","TextField","inputProps","min","SimpleDropDownSelector","placeholder","capitalize","getIntervalUnitLabel","map","useMenuStyles","theme","addLabel","fontWeight","palette","main","textOverflow","overflow","addIcon","useSingleValueStyles","singleValue","marginTop","Menu","selectProps","onCreate","createLabel","inputValue","children","MenuWithPopper","prop","Add","SingleValue","menuIsOpen","control","dropdownIndicator","boxSizing","valueContainer","formControl","filledInputRoot","filledInputUnderline","inputLabel","menu","baseStyles","borderRadius","menuList","maxHeight","group","overloadMenuListStyle","withoutLabelInputStyle","DropDownSelector","getOptions","onClear","textFieldInputRef","underlineStyle","useInputStyles","open","setOpen","useState","inputRef","useRef","SelectComponent","AsyncSelect","Select","showIndicatorSeparator","IndicatorSeparator","EmptyStub","ClearIndicator","handleCreate","overloadStylesIfGroup","overloadStylesIfNoLabel","isEmpty","mergedStyles","mergedClasses","defaultOptions","loadOptions","cacheOptions","LoadingIndicator","path","underline","isEmptyValue","focused","InputLabelProps","shrink","ref","onMenuOpen","onMenuClose","DropDownSelectorType","absoluteImagePath","storagePath","str","endsWith","EntityUriLink","forwardRef","screen","dispatch","useDispatch","viewId","useContext","ViewIdContext","generateEntityUrl","UrlGeneratorsContext","uiPath","ui","href","e","stopPropagation","preventDefault","displayName","withMuiSkin","CreatableSelect","innerRef","MenuItem","classNames","id","key","onMouseMove","onMouseOver","left","clearIndicator","spacing","creatable","loadingIndicator","componentsProp","classesProp","stylesProp","onChangeProp","onInputChange","onInputChangeProp","reactSelectProps","setInputValue","multiSelectClasses","omit","inputId","multiSelectComponents","mergeClasses","indicatorSeparator","base","loadingMessage","fontFamily","labelProps","htmlFor","length","isMulti","actionMeta","action","closeMenuOnSelect","hideSelectedOptions","defaultProps","Control","DownChevron","CrossIcon","Group","GroupHeading","IndicatorsContainer","Input","MenuList","MenuPortal","LoadingMessage","NoOptionsMessage","MultiValueContainer","MultiValueLabel","MultiValueRemove","Placeholder","SelectContainer","ValueContainer","multiValue","groupHeading","indicatorsContainer","multiValueLabel","multiValueRemove","getOptionValue","isSearchable","mark","DropDownValue","DropDownPlaceholder","selectedUsers","valueToOption","prepareValues","values","tenant","servicesPath","cachedRequest","pluck","getAllUsersForTenant","then","users","filter","username","utils","filterUsers","ActivityTypes","getItemDataType","getActivityType","activity","items","firstItem","removeIgnoredItems","isImplementedItem","isValidActivityType","includes","filteredItems","console","error","reject","itemsTotal","splitActivityByType","propOr","groupBy","ifElse","stringifyDeltaValue","deltaValue","attributeTypeUri","attributePresentations","attributeType","findAttributeTypeByUri","dataTypeDefinition","getAttrDataTypeDefinition","formatValue","formatDataTypeValue","isNil","Object","entries","flatMap","attributeTypeName","deltaValues","makeAttrTypeUri","join","getActivityLabel","inputRoot","dateOptionLabel","paper","localeFormat","moment","longDateFormat","handleToggle","onCancel","fullWidth","endAdornment","readOnly","autoFocus","anchorEl","onClose","anchorOrigin","vertical","horizontal","transformOrigin","elevation","getContentAnchorEl","MenuListProps","autoFocusItem","DateRangePicker","onApply","generateEntityUrlForOldMode","generatePivotingUrl","generatePivotingUrlForOldMode","generateTagUrl","generateTagUrlForOldMode","useSavedSearchesRequest","offset","max","setData","total","setTotal","requestState","setRequestState","RequestStates","onError","loadData","onRequestFinished","result","countResults","restOptions","async","getSavedSearches","totalRequests","search","getTotalsForQuery","replacePlaceholdersInQuery","query","searchesWithCount","promiseAllSettled","searchesWithTotal","searchIndex","status","reason","assocPath","getData","catch","refreshAction","useEffect","state","reload","ROWS_PER_PAGE_OPTIONS","DEFAULT_ROWS_PER_PAGE","getRowsPerPageOptions","defaultRowsPerPage","sort","subtract","itemTitle","itemIcon","menuItem","openIcon","setAnchorEl","isMenuOpen","Boolean","handleMenuClose","handleItemClick","IconButton","currentTarget","MoreVert","transitionDuration","active","ListItemIcon","toolbarRoot","minHeight","marginBottom","dragIcon","visibility","rightMenu","flexGrow","updatedChip","onToggleFullscreen","isUpdated","isFullscreen","onRemove","onRefresh","DashboardViewIdContext","menuItems","Replay","Fullscreen","FullscreenExit","HighlightOff","BasicViewHeader","Chip","size","DragIndicator","_extends","assign","target","i","arguments","source","prototype","hasOwnProperty","call","apply","this","maskType","maskUnits","mask","fillOpacity","clipRule","mixBlendMode","x1","y1","x2","y2","gradientUnits","stopColor","stopOpacity","filterUnits","colorInterpolationFilters","floodOpacity","in","dy","stdDeviation","mode","in2","noDataContainer","flexDirection","errorContainer","errorIcon","refreshButton","refreshIcon","message","Button","startIcon","viewContent","loadingState","EmptyPlaceholder","BasicViewContent","refreshMode","refreshRate","handleWidth","handleHeight","ErrorBoundary","DashboardLinearLoader","withPagination","TableComponent","WithPagination","savedSearchDataToSearchState","uiState","version","currentSavedSearchUri","curSavedSearchUri","TableWithPagination","TableWithBars","config","setRowsPerPage","setPage","chartData","name","savedSearchDataToChartData","onSSClick","find","propEq","useReloadFacet","LayoutItemView","headers","showValues","onItemClick","configFilterToSearchFilter","when","__","FilterOptions","evolve","wrapInArray","createNotEqualFilter","curry","fieldName","convertSearchFilterToDashboardConfigFilter","searchFilter","createEntityTypeFilter","entityTypeUri","createFacetItemFilter","convertFilterToFacetState","isEntityAttributeFilter","test","searchUriToAttrUri","getSpecialAttrTypeByFieldName","assoc","isDateType","mapFilterValue","parseTimestamp","isSomeEntityTypeFilter","isEntityTypeFilter","requestFacets","attribute","filters","globalFilter","searchByOv","activityFilter","pageSize","orderType","buildFilterQueryString","addGlobalFilterToQuery","buildQuery","pageNo","getFacets","response","sortWith","descend","ascend","getFacetData","resolveLookups","lookupCode","lookupsToResolve","codeValue","resolveLookupsList","codes","buildLookupRecord","code","buildFacetOthersFilters","OTHER_FACET_GROUP","requestOtherValues","otherFilters","searchOptions","getTotals","resolveRoleLabel","roleName","getRoleLabel","localizeFacetValues","facet","localizedValue","getFacetFieldName","isEntityTypeUri","attributeUriToSearchUri","getFacetEntityTypeUri","getEntityUriFromAttributeUri","always","getFiltersForFacet","attributeUri","hasEntityTypeFilter","some","getFiltersForFacetItem","facetFiltersToSearchState","facets","chartType","showOthers","ChartTypes","facetFilters","searchFilters","SearchFiltersContext","facetAndSpecialFilters","hasAttrPresentation","andThen","isLookupAttrType","getAttrTypeLookupCode","isRoleAttrType","resolveFacetLabels","unless","otherwise","useFacetRequest","allFilters","ChartsFactory","content","headCell","headLabel","text","entityLabel","textDecoration","headCellData","DefaultHeadCellRenderer","rowValue","entity","getLabel","getEntityUriForLink","tableContainer","cellBorder","borderLeft","borderRight","headData","resizable","headCellRenderer","HeadCellRenderer","rowCellValueRenderer","EntityLabelRenderer","initialWidth","tableClasses","BasicTable","columnsData","rowsData","headRowHeight","getRowCellHeight","defaultColumnWidth","defaultColumnMinWidth","Promise","all","getFilteredEntities","results","entities","useFilteredEntitiesRequest","PeriodStep","getStepForPeriod","period","getDateRangeByDatePeriod","getDashboardDateRangeByValue","startTime","endTime","DAY","HOUR","currentDate","DateRangeValue","valueOf","getDateRangeByValue","getValuesDateRange","Date","StatsEvents","types","getStatsEventById","event","getStatsEventName","getStatsEventColor","requestStats","getStats","getEntitiesStats","allTypes","chain","processStats","stats","getEvents","events","presentTypes","periodFrame","term","prepend","append","isEventPresent","resolve","getEventsData","groupEventsData","step","eventData","startOf","toPairs","date","sum","interpolateEventsData","head","other","lastTerm","last","nextTerm","add","interpolatedItems","calibrateStatsData","statsData","getStepValueFormat","cond","equals","payload","textAnchor","tooltipWrapper","tooltipItemColor","legend","flexWrap","legendItem","legendItemColor","legendItemValue","selectedItems","Tooltip","border","selectedEvents","setSelectedEvents","tooltipEvent","setTooltipEvent","cartesianGrid","tooltip","xAxis","yAxis","line","dataKey","tick","angle","allowDuplicatedCategory","tickFormatter","formatNumberAsMetric","strokeDasharray","strokeOpacity","wrapperStyle","overflowY","domain","tickCount","counts","Math","abs","getChartDomain","dot","activeDot","onMouseEnter","onMouseLeave","without","periodSelector","flexBasis","setPeriod","setStep","safePromise","useSafePromise","toString","useStatsRequest","DateRangeEditor","getDateRangeOptions","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","getEntities","isEntityUri","getEntitiesByUris","getChangeRequests","getDataChangeRequest","requests","getTaskObjectsData","converge","extractObjectsFromChangeRequest","objectsInfo","changes","getChange","getUri","keys","enrichTasksWithObjectsData","changeRequests","tasks","task","objects","enrichTaskWithEntity","changeRequest","enrichTaskWithDCRObjects","requestWorkflowTasks","tasksCategory","workflowPath","environment","assignee","getTasks","isOverdueTask","dueDate","now","taskItem","taskInfo","overflowWrap","taskTitle","taskDetail","taskDetailTitle","secondary","taskDueDate","flag","verticalAlign","overdue","EntityLink","object","processType","relationType","getRelationType","startObjectUri","startObjectLabel","endObjectUri","endObjectLabel","PredefinedWorkflowProcessType","propSatisfies","isDCRUri","showAssignee","firstObject","priorityClass","EntityTypeIcon","processDefinitionDisplayName","createdBy","createTime","Flag","renderRow","index","Divider","light","AutoSizeList","defaultItemSize","setTasksCategory","requestParams","pick","userName","useWorkflowTasksRequest","activityLogFilter","exportTypes","setFilter","activities","dateRange","DateRangeTypes","getActivities","useActivitiesLoader","useActivitiesRequest","handleFilterChange","ActivityLogFilter","ActivityLog","ViewsFactory","ViewTypes","DashboardViewTypes","getComponent","ActivitiesViewFacet","CustomActionViewFacet","DashboardFacet","EntitiesByTypeViewFacet","FilteredSavedSearchesFacet","FilteredEntitiesViewFacet","NotificationInboxFacet","ProfileStatsFacet","getChartType","view","typeConverters"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"9995.js","mappings":"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","sources":["webpack://@reltio/remotes/../components/src/icons/ReferenceAttribute.tsx","webpack://@reltio/remotes/../components/src/icons/SimpleAttribute.tsx","webpack://@reltio/remotes/../components/src/components/AttributeListItem/styles.ts","webpack://@reltio/remotes/../components/src/components/AttributeListItem/AttrTypeIcon.tsx","webpack://@reltio/remotes/../components/src/icons/Recommended.tsx","webpack://@reltio/remotes/../components/src/components/AttributeListItem/AttributeListItem.tsx","webpack://@reltio/remotes/../components/src/components/AttributeSelector/styles.ts","webpack://@reltio/remotes/../components/src/components/AttributeSelector/AttributeSelector.tsx","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/CollapseButton/styles.ts","webpack://@reltio/remotes/../components/src/components/CollapseButton/CollapseButton.tsx","webpack://@reltio/remotes/../components/src/components/DateIntervalSelector/styles.ts","webpack://@reltio/remotes/../components/src/components/DateIntervalSelector/DateIntervalSelector.tsx","webpack://@reltio/remotes/../components/src/components/DropDownSelector/components/styles.js","webpack://@reltio/remotes/../components/src/components/DropDownSelector/components/Menu.js","webpack://@reltio/remotes/../components/src/components/DropDownSelector/components/SingleValue.js","webpack://@reltio/remotes/../components/src/components/DropDownSelector/styles.js","webpack://@reltio/remotes/../components/src/components/DropDownSelector/DropDownSelector.js","webpack://@reltio/remotes/../components/src/components/EntityTypeIcon/EntityTypeIcon.tsx","webpack://@reltio/remotes/../components/src/components/EntityUriLink/EntityUriLink.tsx","webpack://@reltio/remotes/../components/src/components/ReactSelect/AsyncSelect.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/RequiredMark/styles.js","webpack://@reltio/remotes/../components/src/components/RequiredMark/RequiredMark.tsx","webpack://@reltio/remotes/../components/src/components/SimpleDropDownSelector/styles.js","webpack://@reltio/remotes/../components/src/components/SimpleDropDownSelector/DropDownValue.js","webpack://@reltio/remotes/../components/src/components/SimpleDropDownSelector/DropDownPlaceholder.js","webpack://@reltio/remotes/../components/src/components/SimpleDropDownSelector/SimpleDropDownSelector.js","webpack://@reltio/remotes/../components/src/components/Spacer/Spacer.js","webpack://@reltio/remotes/../components/src/components/UserSelector/styles.ts","webpack://@reltio/remotes/../components/src/components/UserSelector/UserSelector.tsx","webpack://@reltio/remotes/../components/src/components/activityLog/types/ActivityTypes.ts","webpack://@reltio/remotes/../components/src/components/activityLog/utils/activities.ts","webpack://@reltio/remotes/../components/src/components/editors/CustomDateRangeEditor/styles.ts","webpack://@reltio/remotes/../components/src/components/editors/CustomDateRangeEditor/CustomDateRangeEditor.tsx","webpack://@reltio/remotes/../components/src/contexts/UrlGeneratorsContext/index.ts","webpack://@reltio/remotes/../components/src/contexts/ViewIdContext/index.ts","webpack://@reltio/remotes/../components/src/icons/NestedAttribute.tsx","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/PeriodStep.ts","webpack://@reltio/remotes/../dashboard/src/services/period.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/components/StatsChart/getStatsChartSettings.ts","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/views/custom/NotificationInboxFacet.tsx","webpack://@reltio/remotes/../dashboard/src/hooks/useWorkflowTasksRequest.ts","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 React from 'react';\n\nconst SvgReferenceAttribute: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width={24} height={24} viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M10 18h3v-1a1 1 0 011-1h4a1 1 0 011 1v4a1 1 0 01-1 1h-4a1 1 0 01-1-1v-1H8V8H6a1 1 0 01-1-1V3a1 1 0 011-1h6a1 1 0 011 1v4a1 1 0 01-1 1h-2v3h3v-1a1 1 0 011-1h4a1 1 0 011 1v4a1 1 0 01-1 1h-4a1 1 0 01-1-1v-1h-3v5z\"\n fill=\"#000\"\n stroke=\"none\"\n strokeWidth={1}\n fillRule=\"evenodd\"\n />\n </svg>\n );\n};\n\nexport default SvgReferenceAttribute;\n","import React from 'react';\n\nconst SvgSimpleAttribute: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width={24} height={24} viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <rect\n fill=\"#000\"\n x={9}\n y={9}\n width={6}\n height={6}\n rx={1}\n stroke=\"none\"\n strokeWidth={1}\n fillRule=\"evenodd\"\n />\n </svg>\n );\n};\n\nexport default SvgSimpleAttribute;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n container: {\n '& > $marginWrapper:first-child': {\n paddingLeft: '4px'\n }\n },\n listItem: {\n paddingLeft: '1px',\n paddingTop: '2px',\n paddingBottom: '2px',\n transition: 'none',\n '&:hover': {\n '& $itemAfter': {\n background: 'linear-gradient(to right, rgba(235, 235, 235, 0.2), rgba(235, 235, 235, 1) 100%)'\n }\n },\n '&$listItemFocus': {\n '& $itemAfter': {\n background: 'linear-gradient(to right, rgba(219, 219, 219, 0.2), rgba(219, 219, 219, 1) 100%)'\n }\n },\n '&:focus': {\n outline: 'none'\n }\n },\n listItemFocus: {},\n icon: {\n opacity: 0.29,\n width: '16px',\n height: '16px',\n flexShrink: 0,\n marginRight: '6px',\n marginLeft: '8px'\n },\n recommendedIcon: {\n width: '18px',\n height: '18px',\n marginRight: '5px',\n marginLeft: '7px',\n flexShrink: 0\n },\n logoIcon: {\n width: '18px',\n height: '18px',\n flexShrink: 0,\n marginRight: '4px'\n },\n itemAfter: {\n position: 'absolute',\n right: 0,\n top: 0,\n width: '40px',\n height: '100%',\n pointerEvents: 'none',\n background: 'linear-gradient(to right, rgba(255, 255, 255, 0.2), #fff 100%)'\n },\n itemText: {\n padding: '0',\n margin: 0,\n '& span': {\n fontSize: '0.8125rem',\n letterSpacing: 'normal',\n whiteSpace: 'nowrap'\n }\n },\n checkbox: {\n opacity: 0.34,\n padding: 0,\n marginLeft: '14px',\n '&$checked': {\n opacity: 1,\n background: 'none'\n }\n },\n checked: {},\n marginWrapper: {\n display: 'flex',\n alignItems: 'center'\n },\n defaultCursor: {\n cursor: 'default'\n },\n itemTooltip: {\n margin: '4px 0'\n },\n marginText: {\n marginLeft: '21px'\n },\n itemTextWrapper: {\n display: 'flex',\n alignItems: 'center'\n }\n});\n","import React from 'react';\n\nimport {DataTypes, AttributeType} from '@reltio/mdm-sdk';\nimport NestedAttrIcon from '../../icons/NestedAttribute';\nimport ReferenceAttrIcon from '../../icons/ReferenceAttribute';\nimport SimpleAttrIcon from '../../icons/SimpleAttribute';\nimport {useStyles} from './styles';\n\nconst getIconForAttrType = (attrType: AttributeType) => {\n switch (attrType.type) {\n case DataTypes.TYPE_IMAGE:\n case DataTypes.TYPE_NESTED:\n return NestedAttrIcon;\n case DataTypes.TYPE_REFERENCE:\n return ReferenceAttrIcon;\n default:\n return SimpleAttrIcon;\n }\n};\n\ntype Props = {\n attrType?: AttributeType;\n};\n\nconst AttrTypeIcon = ({attrType = {} as AttributeType}: Props) => {\n const styles = useStyles();\n const Icon = getIconForAttrType(attrType);\n return <Icon className={styles.icon} />;\n};\n\nexport default AttrTypeIcon;\n","import React from 'react';\n\nconst SvgRecommended: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width={13} height={18} viewBox=\"0 0 13 18\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <g transform=\"translate(-3 -1)\" stroke=\"none\" strokeWidth={1} fill=\"none\" fillRule=\"evenodd\">\n <path fill=\"#FF4081\" d=\"M5.833 10h3.75v6.667l-3.75 1.666z\" />\n <path fill=\"#CE0C4E\" d=\"M13.333 10v8.333l-3.75-1.666V10z\" />\n <circle fill=\"#FFC058\" cx={9.583} cy={7.917} r={6.25} />\n <circle fill=\"#FFCD7B\" cx={9.583} cy={7.917} r={5.417} />\n <path fill=\"#FFFBB5\" d=\"M8.333 11.667L5 8.462l.933-.898 2.4 2.308L13.4 5l.933.897z\" />\n </g>\n </svg>\n );\n};\n\nexport default SvgRecommended;\n","import React, {memo} from 'react';\n\nimport classnames from 'classnames';\nimport i18n from 'ui-i18n';\nimport {AttributeType} from '@reltio/mdm-sdk';\nimport ListItem, {ListItemProps} from '@material-ui/core/ListItem';\nimport {ListItemText as ListItemText} from '@material-ui/core';\nimport {Checkbox as Checkbox} from '@material-ui/core';\nimport ExpandedValueTooltip from '../ExpandedValueTooltip/ExpandedValueTooltip';\nimport {isNested} from '@reltio/mdm-sdk';\nimport withTooltip from '../../HOCs/withTooltip/withTooltip';\nimport RequiredMark from '../RequiredMark/RequiredMark';\nimport {noop} from '../../core';\nimport AttrTypeIcon from './AttrTypeIcon';\nimport Marginator from '../Marginator/Marginator';\nimport RecommendedIcon from '../../icons/Recommended';\nimport {useStyles} from './styles';\n\nexport const RecommendedIconWithTooltip = withTooltip(RecommendedIcon);\n\ntype Data = {\n attrType?: AttributeType;\n};\ntype Props = {\n data: Data;\n checked: boolean;\n label: React.ReactNode;\n labelInText?: string;\n level?: number;\n isFocused?: boolean;\n isRequired?: boolean;\n hideIcon?: boolean;\n hideCheckBox?: boolean;\n notSelectable?: boolean;\n disableHorizontalScrollbar?: boolean;\n onClick?: (data: Data, checked: boolean, groupId: string) => void;\n subItemMargin?: number;\n groupId?: string;\n style?: ListItemProps['style'];\n LogoIcon?: React.ElementType;\n className?: string;\n disableNonSelectable?: boolean;\n disableGutters?: boolean;\n};\n\nconst AttributeListItem = ({\n groupId,\n data,\n checked = false,\n isFocused = false,\n isRequired = false,\n label,\n labelInText,\n level,\n onClick = noop,\n hideCheckBox = false,\n hideIcon = false,\n notSelectable = false,\n disableHorizontalScrollbar = false,\n style = {},\n subItemMargin = 20,\n LogoIcon,\n className,\n disableNonSelectable,\n disableGutters\n}: Props) => {\n const styles = useStyles();\n const {attrType} = data || {};\n\n const isButton = (!hideCheckBox || !isNested(attrType)) && !notSelectable;\n const handleItemClick = () => onClick(data, !checked, groupId);\n const showLogoIcon = !!LogoIcon;\n\n const renderIcon = (attrType: AttributeType): JSX.Element =>\n groupId === 'recommended' ? (\n <RecommendedIconWithTooltip\n className={styles.recommendedIcon}\n tooltipTitle={i18n.text('Recommended')}\n showForDisabled={true}\n />\n ) : (\n <AttrTypeIcon attrType={attrType} />\n );\n\n // TODO: ListItem needs to be split to ListItem and ListItemButton after material ui releases stable version(https://github.com/mui-org/material-ui/pull/26446). The \"button\" prop will be deprecated.\n return (\n <ExpandedValueTooltip value={labelInText || label} className={styles.itemTooltip} placement=\"bottom-end\">\n <ListItem\n className={classnames(\n styles.container,\n styles.listItem,\n {[styles.defaultCursor]: !isButton},\n className\n )}\n onClick={isButton ? handleItemClick : undefined}\n style={style}\n dense\n button={isButton as any}\n disabled={disableNonSelectable && notSelectable}\n classes={{\n focusVisible: styles.listItemFocus,\n selected: styles.listItemFocus\n }}\n selected={isFocused}\n tabIndex={-1}\n disableGutters={disableGutters}\n >\n {!hideCheckBox && (\n <Checkbox\n checked={checked}\n disableRipple\n disabled={!isButton}\n className={classnames(styles.checkbox, {[styles.checked]: checked})}\n tabIndex={-1}\n />\n )}\n <Marginator margin={subItemMargin} level={level} className={styles.marginWrapper}>\n <>\n {!hideIcon && renderIcon(attrType)}\n <div className={classnames(styles.itemTextWrapper, {[styles.marginText]: hideIcon})}>\n {showLogoIcon && <LogoIcon className={styles.logoIcon} />}\n <ListItemText\n primary={\n <>\n {label}\n {isRequired && <RequiredMark />}\n </>\n }\n className={styles.itemText}\n />\n </div>\n </>\n </Marginator>\n {isButton && disableHorizontalScrollbar && <div className={styles.itemAfter} />}\n </ListItem>\n </ExpandedValueTooltip>\n );\n};\n\nexport default memo(AttributeListItem);\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const customStyles = {\n input: (currentStyles) => ({...currentStyles, fontSize: '14px'}),\n menuPortal: (currentStyles) => ({...currentStyles, zIndex: 1300})\n};\n\nexport const useStyles = makeStyles({\n root: {\n flex: 1\n },\n title: {\n paddingBottom: '10px',\n paddingLeft: '5px',\n fontSize: '14px'\n },\n dropDownInput: {\n width: '100%',\n justifyContent: 'center',\n backgroundColor: 'rgba(0, 0, 0, 0.03)',\n borderTop: '4px'\n },\n option: {\n fontSize: '14px',\n height: '32px'\n },\n noOptionsMessage: {\n fontSize: '14px'\n }\n});\n","import React, {useCallback, useMemo} from 'react';\nimport i18n from 'ui-i18n';\nimport classnames from 'classnames';\nimport {pipe, defaultTo} from 'ramda';\nimport {useSelector} from 'react-redux';\nimport {AttributeOption} from '../../types';\nimport mdmModule from '@reltio/mdm-module';\nimport {MultiValueProps, OptionProps} from 'react-select';\nimport {AttributeType, getAttributeTypeSubAttributes, Metadata, TEntityType} from '@reltio/mdm-sdk';\nimport {Typography as Typography} from '@material-ui/core';\nimport MultiSelect from '../ReactSelect/MultiSelect';\nimport MultiValue from '../ReactSelect/commonComponents/MultiValue';\nimport DropdownIndicatorWithIconButton from '../commonReactSelectComponents/DropdownIndicatorWithIconButton';\nimport AttributeListItem from '../AttributeListItem/AttributeListItem';\nimport {customStyles, useStyles} from './styles';\n\ntype Props = {\n entityType: TEntityType;\n selectedAttributes: AttributeOption[];\n className?: string;\n onChange?: (attributes: AttributeOption[]) => void;\n title?: string;\n disableUnderline?: boolean;\n menuPlacement?: string;\n};\n\nconst AttributeSelector = ({\n entityType,\n selectedAttributes,\n className,\n onChange,\n title,\n disableUnderline,\n menuPlacement = 'bottom'\n}: Props) => {\n const metadata: Metadata = useSelector(mdmModule.selectors.getMetadata);\n const styles = useStyles();\n\n const prepareItems = useCallback(\n (data: AttributeType[], level = 0, prevLabel = ''): AttributeOption[] => {\n return data.reduce((acc, item) => {\n if (item.hidden) return acc;\n const chipLabel = `${prevLabel && prevLabel + ' / '}${item.label}`;\n acc.push({\n label: item.label,\n value: item.uri,\n attrType: item,\n chipLabel,\n level\n });\n const subAttributes = getAttributeTypeSubAttributes(metadata, item);\n return acc.concat(subAttributes ? prepareItems(subAttributes, level + 1, chipLabel) : []);\n }, []);\n },\n [metadata]\n );\n\n const options = useMemo(() => prepareItems(entityType?.attributes || []), [entityType, prepareItems]);\n\n const CustomOption = ({isFocused, isSelected, data, label, innerProps}: OptionProps<AttributeOption, true>) => (\n <div {...innerProps}>\n <AttributeListItem\n checked={isSelected}\n level={data.level}\n data={data}\n label={label}\n labelInText={label}\n isFocused={isFocused}\n />\n </div>\n );\n\n const CustomMultiValue = ({data, ...props}: MultiValueProps<AttributeOption>) => (\n <MultiValue {...props}>{data.chipLabel}</MultiValue>\n );\n\n return (\n <div className={classnames(styles.root, className)}>\n <Typography className={styles.title} variant={'subtitle1'}>\n {title || i18n.text('Attribute')}\n </Typography>\n <MultiSelect\n value={selectedAttributes}\n options={options}\n TextFieldProps={{\n InputProps: {disableUnderline},\n classes: {root: styles.dropDownInput}\n }}\n components={{\n DropdownIndicator: DropdownIndicatorWithIconButton,\n MultiValue: CustomMultiValue,\n Option: CustomOption\n }}\n onChange={pipe(defaultTo([]), onChange)}\n styles={customStyles}\n classes={styles}\n menuPlacement={menuPlacement}\n menuPortalTarget={document.body}\n />\n </div>\n );\n};\n\nexport default AttributeSelector;\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({\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 (\n <SmallIconButtonWithTooltip\n data-reltio-id=\"collapse-button\"\n {...buttonProps}\n {...tooltipProps}\n {...otherProps}\n />\n );\n};\n\nexport default CollapseButton;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n root: {\n display: 'flex',\n flex: 1\n },\n input: {\n height: '100%',\n paddingLeft: '12px',\n paddingRight: '8px',\n fontSize: '14px'\n },\n inputNumber: {\n minWidth: '60px',\n marginRight: 10,\n height: '100%',\n backgroundColor: 'rgba(0, 0, 0, 0.03)'\n },\n inputUnit: {\n width: '100%'\n }\n});\n","import React from 'react';\nimport {pipe} from 'ramda';\nimport {getIntervalUnitLabel} from '@reltio/mdm-sdk';\nimport capitalize from '@material-ui/core/utils/capitalize';\nimport {TextField as TextField} from '@material-ui/core';\nimport SimpleDropDownSelector from '../SimpleDropDownSelector/SimpleDropDownSelector';\nimport {getValue} from '../../core/utils';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n interval: [number, string];\n onChange: ([number, string]) => void;\n onFocus?: () => void;\n};\n\nconst periods = ['minutes', 'hours', 'days', 'weeks', 'months', 'years'];\n\nconst DateIntervalSelector = ({interval: [value, unit], onChange, onFocus}: Props) => {\n const styles = useStyles();\n const getIntervalFromValue = (newValue: number) => [newValue, unit];\n const getIntervalFromUnit = ({value: newUnit}: {value: string}) => [value, newUnit];\n const onNumberChange = pipe(getValue, parseInt, getIntervalFromValue, onChange);\n const onUnitChange = pipe(getIntervalFromUnit, onChange);\n return (\n <div className={styles.root}>\n <TextField\n type=\"number\"\n value={value || ''}\n onChange={onNumberChange}\n inputProps={{min: 1, onFocus: onFocus}}\n InputProps={{classes: {root: styles.input}}}\n className={styles.inputNumber}\n />\n <SimpleDropDownSelector\n label={''}\n placeholder={capitalize(unit)}\n className={styles.inputUnit}\n value={{value: unit, label: capitalize(getIntervalUnitLabel(unit))}}\n options={periods.map((value) => ({\n value,\n label: capitalize(getIntervalUnitLabel(value))\n }))}\n onChange={onUnitChange}\n TextFieldProps={{\n inputProps: {onFocus: onFocus},\n InputProps: {classes: {root: styles.input}}\n }}\n />\n </div>\n );\n};\n\nexport default DateIntervalSelector;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useMenuStyles = makeStyles((theme) => ({\n addLabel: {\n display: 'flex',\n padding: '0 7px',\n height: '35px',\n alignItems: 'center',\n fontSize: '13px',\n fontWeight: '500',\n color: theme.palette.primary.main,\n cursor: 'pointer',\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n borderTop: 'solid 1px rgba(0, 0, 0, 0.14)',\n backgroundColor: 'rgba(0, 0, 0, 0.03)'\n },\n addIcon: {\n height: '18px',\n width: '18px',\n padding: '0 9px'\n }\n}));\n\nexport const useSingleValueStyles = makeStyles({\n singleValue: {\n fontSize: '14px',\n lineHeight: '16px',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n marginTop: '21px'\n }\n});\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport {prop} from 'ramda';\nimport AddIcon from '@material-ui/icons/Add';\nimport {useMenuStyles} from './styles';\nimport MenuWithPopper from '../../commonReactSelectComponents/MenuWithPopper';\n\nconst Menu = (props) => {\n const {\n selectProps: {onCreate, createLabel, inputValue, components},\n children\n } = props;\n\n const styles = useMenuStyles();\n return (\n <MenuWithPopper {...props}>\n {children}\n {createLabel && !prop('Group', components) && (\n <span className={styles.addLabel} onClick={() => onCreate(inputValue)}>\n <AddIcon className={styles.addIcon} />\n {createLabel}\n </span>\n )}\n </MenuWithPopper>\n );\n};\n\nMenu.propTypes = {\n children: PropTypes.element.isRequired,\n selectProps: PropTypes.object.isRequired\n};\n\nexport default Menu;\n","import {Typography as Typography} from '@material-ui/core';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport {useSingleValueStyles} from './styles';\n\nexport default function SingleValue(props) {\n const {\n selectProps: {menuIsOpen},\n innerProps,\n children\n } = props;\n const styles = useSingleValueStyles();\n\n return (\n !menuIsOpen && (\n <Typography className={styles.singleValue} {...innerProps}>\n {children}\n </Typography>\n )\n );\n}\n\nSingleValue.propTypes = {\n children: PropTypes.node,\n innerProps: PropTypes.object\n};\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n control: {\n height: 'auto'\n },\n dropdownIndicator: {\n boxSizing: 'content-box',\n transition: 'transform .15s ease',\n padding: (props) => `${(props.height - 24) / 2}px 12px`,\n cursor: 'pointer',\n color: 'rgba(0, 0, 0, 0.54)'\n },\n valueContainer: {\n marginLeft: '16px',\n width: 0\n },\n formControl: {\n margin: 0\n },\n filledInputRoot: {\n backgroundColor: 'rgba(0, 0, 0, 0.03)',\n '&:hover': {\n backgroundColor: 'rgba(0, 0, 0, 0.03)'\n },\n '&.focused': {\n backgroundColor: 'rgba(0, 0, 0, 0.03)'\n }\n },\n filledInputUnderline: {\n '&:before': {\n display: 'none'\n }\n },\n inputLabel: {\n color: 'rgba(0,0,0,0.6)',\n fontSize: '14px',\n lineHeight: '16px',\n paddingLeft: '4px',\n '&.shrink': {\n paddingLeft: '4px'\n }\n }\n});\n\nexport const customStyles = {\n menu: (baseStyles) => ({\n ...baseStyles,\n borderRadius: '0 0 4px 4px',\n backgroundColor: '#FFFFFFFF',\n boxShadow: '0 2px 2px 0 rgba(0,0,0,0.14), 0 3px 1px -2px rgba(0,0,0,0.12), 0 1px 5px 0 rgba(0,0,0,0.2)',\n margin: 0\n }),\n menuList: (baseStyles) => ({\n ...baseStyles,\n maxHeight: '208px',\n padding: '8px 0'\n }),\n group: (baseStyles) => ({\n ...baseStyles,\n padding: '0 0 8px 0'\n }),\n input: (baseStyles) => ({\n ...baseStyles,\n height: '16px',\n color: 'rgba(0, 0, 0, 0.87)',\n fontSize: '14px',\n lineHeight: '16px',\n margin: '16px 0 0',\n padding: 0\n }),\n option: (baseStyles) => ({\n ...baseStyles,\n fontSize: '13px',\n lineHeight: '15px',\n height: '32px'\n })\n};\n\nexport const overloadMenuListStyle = {\n menuList: (baseStyles) => ({\n ...baseStyles,\n padding: 0\n })\n};\n\nexport const withoutLabelInputStyle = {\n input: (baseStyles) => ({\n ...baseStyles,\n height: '16px',\n color: 'rgba(0, 0, 0, 0.87)',\n fontSize: '14px',\n lineHeight: '16px',\n margin: 0,\n padding: 0\n })\n};\n","import React, {useRef, useState} from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {defaultTo, identity, isEmpty, path, prop} from 'ramda';\nimport DropdownIndicator from '../commonReactSelectComponents/DropdownIndicator';\nimport Menu from './components/Menu';\nimport AsyncSelect from '../ReactSelect/AsyncSelect';\nimport Select from '../ReactSelect/Select';\nimport {EmptyStub} from '../../core';\nimport {isEmptyValue} from '@reltio/mdm-sdk';\nimport {useInputStyles} from '../editors/constants';\nimport SingleValue from './components/SingleValue';\nimport {useStyles, customStyles, overloadMenuListStyle, withoutLabelInputStyle} from './styles';\n\nconst DropDownSelector = ({\n value,\n label,\n createLabel,\n getOptions,\n options,\n height = 46,\n onChange = identity,\n onCreate,\n onClear = identity,\n components,\n textFieldInputRef,\n TextFieldProps,\n classes,\n ...otherProps\n}) => {\n const styles = useStyles({height});\n const underlineStyle = useInputStyles();\n const [open, setOpen] = useState(false);\n const inputRef = useRef(null);\n\n const SelectComponent = getOptions ? AsyncSelect : Select;\n\n const showIndicatorSeparator = prop('ClearIndicator', components)\n ? {}\n : {IndicatorSeparator: EmptyStub, ClearIndicator: EmptyStub};\n\n const handleCreate = onCreate\n ? (value, group) => {\n onCreate(value, group);\n setOpen(false);\n }\n : undefined;\n\n const overloadStylesIfGroup = prop('Group', components) ? overloadMenuListStyle : {};\n const overloadStylesIfNoLabel = isEmpty(label) ? withoutLabelInputStyle : {};\n\n const mergedStyles = {...customStyles, ...overloadStylesIfGroup, ...overloadStylesIfNoLabel};\n const mergedClasses = {...styles, ...classes};\n\n return (\n <SelectComponent\n placeholder=\"\"\n defaultOptions={true}\n {...otherProps}\n value={defaultTo(null, value)}\n loadOptions={getOptions}\n options={options}\n cacheOptions={true}\n onChange={onChange}\n onCreate={handleCreate}\n onClear={onClear}\n createLabel={createLabel}\n classes={mergedClasses}\n styles={mergedStyles}\n components={{\n DropdownIndicator,\n LoadingIndicator: EmptyStub,\n SingleValue,\n Menu,\n ...showIndicatorSeparator,\n ...components\n }}\n menuPlacement=\"auto\"\n TextFieldProps={{\n ...TextFieldProps,\n label,\n variant: 'filled',\n margin: 'dense',\n classes: {\n ...prop('classes', TextFieldProps),\n root: classnames(styles.formControl, path(['classes', 'root'], TextFieldProps))\n },\n inputProps: {\n ...prop('inputProps', TextFieldProps)\n },\n InputProps: {\n ...prop('InputProps', TextFieldProps),\n classes: {\n ...path(['InputProps', 'classes'], TextFieldProps),\n root: classnames(\n styles.filledInputRoot,\n path(['InputProps', 'classes', 'root'], TextFieldProps)\n ),\n underline: classnames(\n {[underlineStyle.filledInputUnderline]: isEmptyValue(value)},\n path(['InputProps', 'classes', 'underline'], TextFieldProps)\n ),\n focused: classnames('focused', path(['InputProps', 'classes', 'focused'], TextFieldProps))\n }\n },\n InputLabelProps: {\n ...prop('InputLabelProps', TextFieldProps),\n classes: {\n ...path(['InputLabelProps', 'classes'], TextFieldProps),\n root: classnames(\n styles.inputLabel,\n path(['InputLabelProps', 'classes', 'root'], TextFieldProps)\n ),\n shrink: classnames('shrink', path(['InputLabelProps', 'classes', 'shrink'], TextFieldProps))\n },\n shrink: !isEmptyValue(value) ? true : undefined\n },\n ref: textFieldInputRef || inputRef\n }}\n inputRef={textFieldInputRef || inputRef}\n menuIsOpen={open}\n onMenuOpen={() => setOpen(true)}\n onMenuClose={() => setOpen(false)}\n />\n );\n};\n\nexport const DropDownSelectorType = {\n value: PropTypes.oneOfType([PropTypes.object, PropTypes.array]),\n label: PropTypes.string.isRequired,\n getOptions: PropTypes.func,\n options: PropTypes.array,\n onChange: PropTypes.func,\n onCreate: PropTypes.func,\n onClear: PropTypes.func,\n createLabel: PropTypes.string,\n components: PropTypes.object,\n textFieldInputRef: PropTypes.object,\n TextFieldProps: PropTypes.object,\n height: PropTypes.number,\n classes: PropTypes.object\n};\n\nDropDownSelector.propTypes = DropDownSelectorType;\n\nexport default DropDownSelector;\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';\nimport {TEntityType} from '@reltio/mdm-sdk';\n\nconst ensureSlashEnding = (str) => (str.endsWith('/') ? str : str + '/');\n\ntype Props = {\n entityType: TEntityType;\n className?: string;\n classes?: Record<string, unknown>;\n backgroundColor?: string;\n color?: string;\n};\nconst EntityTypeIcon = (props: Props) => {\n const absoluteImagePath = useSelector(mdmModule.selectors.getAbsoluteImagePath) || '';\n return <RC_EntityTypeIcon {...props} storagePath={ensureSlashEnding(absoluteImagePath)} />;\n};\n\nexport default EntityTypeIcon;\n","import React, {forwardRef, useCallback, useContext} from 'react';\nimport {useSelector, useDispatch} from 'react-redux';\nimport {UrlGeneratorsContext, ViewIdContext} from '../../contexts';\nimport mdmModule, {ui} from '@reltio/mdm-module';\n\ntype Props = {\n className?: string;\n value: string;\n screen?: string;\n children: React.ReactNode;\n};\n\nconst EntityUriLink = forwardRef(({value, children, screen, className}: Props, ref: React.Ref<HTMLAnchorElement>) => {\n const dispatch = useDispatch();\n const viewId = useContext(ViewIdContext);\n const {generateEntityUrl} = useContext(UrlGeneratorsContext);\n const uiPath = useSelector(mdmModule.selectors.getUIPath);\n const generateEntityUrlByUri = (uri: string) => generateEntityUrl({uiPath, uri, screen});\n const onClick = useCallback(() => {\n dispatch(ui.actions.openEntity({uri: value, viewId, screen}));\n }, [viewId, value, dispatch, screen]);\n return (\n <a\n ref={ref}\n href={generateEntityUrlByUri(value)}\n onClick={(e) => {\n onClick();\n e.stopPropagation();\n e.preventDefault();\n }}\n className={className}\n >\n {children}\n </a>\n );\n});\n\nEntityUriLink.displayName = 'EntityUriLink';\n\nexport default EntityUriLink;\n","import AsyncSelect from 'react-select/async';\nimport withMuiSkin from './withMuiSkin';\n\nexport default withMuiSkin(AsyncSelect);\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 {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n mark: {\n color: 'red'\n }\n});\n","import React from 'react';\nimport {useStyles} from './styles';\n\nconst RequiredMark = () => {\n const styles = useStyles();\n\n return <span className={styles.mark}>*</span>;\n};\n\nexport default RequiredMark;\n","import {makeStyles} from '@material-ui/core/styles';\n\nconst styles = makeStyles({\n value: {\n color: 'rgba(0, 0, 0, 0.87)'\n },\n placeholder: {\n color: 'rgba(0, 0, 0, 0.38)',\n fontSize: '14px !important'\n }\n});\n\nexport default styles;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport {Typography as Typography} from '@material-ui/core';\n\nimport useStyles from './styles';\n\nconst DropDownValue = ({selectProps: {menuIsOpen}, data: {label}}) => {\n const styles = useStyles();\n return (\n !menuIsOpen && (\n <Typography variant=\"body2\" classes={{root: styles.value}}>\n {label}\n </Typography>\n )\n );\n};\n\nDropDownValue.propTypes = {\n selectProps: PropTypes.shape({\n menuIsOpen: PropTypes.bool\n }),\n data: PropTypes.shape({\n label: PropTypes.string\n })\n};\n\nexport default DropDownValue;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport {Typography as Typography} from '@material-ui/core';\n\nimport useStyles from './styles';\n\nconst DropDownPlaceholder = (props) => {\n const styles = useStyles();\n const {innerProps = {}, children} = props;\n\n return (\n <Typography className={styles.placeholder} {...innerProps}>\n {children}\n </Typography>\n );\n};\n\nDropDownPlaceholder.propTypes = {\n children: PropTypes.node,\n innerProps: PropTypes.object,\n selectProps: PropTypes.object.isRequired\n};\n\nexport default DropDownPlaceholder;\n","import React, {memo} from 'react';\n\nimport DropDownSelector from '../DropDownSelector/DropDownSelector';\nimport DropDownValue from './DropDownValue';\nimport DropDownPlaceholder from './DropDownPlaceholder';\n\nconst components = {\n SingleValue: DropDownValue,\n Placeholder: DropDownPlaceholder\n};\n\nconst SimpleDropDownSelector = ({...otherProps}) => <DropDownSelector components={components} {...otherProps} />;\n\nexport default memo(SimpleDropDownSelector);\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 customStyles = {\n input: (currentStyles) => ({...currentStyles, fontSize: '14px'}),\n loadingMessage: (currentStyles) => ({...currentStyles, fontSize: '14px'}),\n menuPortal: (currentStyles) => ({...currentStyles, zIndex: 1300})\n};\n\nexport const useStyles = makeStyles({\n root: {\n flex: 1\n },\n title: {\n paddingBottom: '10px',\n paddingLeft: '5px',\n fontSize: '14px'\n },\n dropDownInput: {\n width: '100%',\n justifyContent: 'center',\n backgroundColor: 'rgba(0, 0, 0, 0.03)',\n borderTop: '4px'\n },\n option: {\n fontSize: '14px',\n height: '32px'\n }\n});\n","import React, {useRef} from 'react';\nimport {useSelector} from 'react-redux';\nimport i18n from 'ui-i18n';\nimport {defaultTo, pipe, pluck} from 'ramda';\nimport classnames from 'classnames';\nimport {Typography as Typography} from '@material-ui/core';\nimport MultiSelect from '../ReactSelect/MultiSelect';\nimport DropdownIndicatorWithIconButton from '../commonReactSelectComponents/DropdownIndicatorWithIconButton';\nimport {getAllUsersForTenant, UserInfo, utils} from '@reltio/mdm-sdk';\nimport mdmModule from '@reltio/mdm-module';\nimport {customStyles, useStyles} from './styles';\n\ntype Props = {\n selectedUsers: string[];\n onChange: (activities: string[]) => void;\n className?: string;\n disableUnderline?: boolean;\n};\n\nconst UserSelector = ({selectedUsers, onChange, className, disableUnderline}: Props) => {\n const styles = useStyles();\n\n const valueToOption = (value: string) => ({value, label: value});\n const prepareValues = (values: string[]) => values.map(valueToOption);\n const filterUsers = (inputValue) => (users) =>\n inputValue ? users.filter((username) => utils.strings.search(username, inputValue)) : users;\n\n const tenant = useSelector(mdmModule.selectors.getTenant);\n const servicesPath = useSelector(mdmModule.selectors.getServicesPath);\n\n const cachedRequest = useRef<Promise<UserInfo[]>>();\n const getOptions = (inputValue) => {\n if (!cachedRequest.current) {\n cachedRequest.current = getAllUsersForTenant({tenant, servicesPath});\n }\n return cachedRequest.current.then(pipe(pluck('username'), filterUsers(inputValue), prepareValues));\n };\n\n return (\n <div className={classnames(styles.root, className)}>\n <Typography className={styles.title} variant={'subtitle1'}>\n {i18n.text('User')}\n </Typography>\n <MultiSelect\n value={prepareValues(selectedUsers)}\n onChange={pipe(defaultTo([]), pluck('value'), onChange)}\n defaultOptions={true}\n getOptions={getOptions}\n TextFieldProps={{\n InputProps: {disableUnderline},\n className: styles.dropDownInput\n }}\n components={{\n DropdownIndicator: DropdownIndicatorWithIconButton\n }}\n styles={customStyles}\n classes={styles}\n menuPortalTarget={document.body}\n />\n </div>\n );\n};\n\nexport default UserSelector;\n","export enum ActivityTypes {\n MODEL_UPDATED = 'MODEL_UPDATED',\n ENTITY_REMOVED = 'ENTITY_REMOVED',\n ENTITY_CREATED = 'ENTITY_CREATED',\n ENTITY_CHANGED = 'ENTITY_CHANGED',\n ENTITIES_MERGED = 'ENTITIES_MERGED',\n ENTITIES_SPLITTED = 'ENTITIES_SPLITTED',\n ENTITY_LOST_MERGE = 'ENTITY_LOST_MERGE',\n RELATIONSHIP_CREATED = 'RELATIONSHIP_CREATED',\n RELATIONSHIP_REMOVED = 'RELATIONSHIP_REMOVED',\n RELATIONSHIP_CHANGED = 'RELATIONSHIP_CHANGED',\n POTENTIAL_MATCHES_FOUND = 'POTENTIAL_MATCHES_FOUND',\n NOT_MATCHES_SET = 'NOT_MATCHES_SET',\n NOT_MATCHES_RESET = 'NOT_MATCHES_RESET',\n PERIODIC_TASK_SCHEDULED = 'PERIODIC_TASK_SCHEDULED',\n ENTITIES_MERGED_MANUALLY = 'ENTITIES_MERGED_MANUALLY',\n POTENTIAL_MATCHES_REMOVED = 'POTENTIAL_MATCHES_REMOVED',\n ENTITIES_MERGED_ON_THE_FLY = 'ENTITIES_MERGED_ON_THE_FLY',\n USER_LOGIN = 'USER_LOGIN',\n USER_LOGOUT = 'USER_LOGOUT',\n USER_SEARCH = 'USER_SEARCH',\n USER_PROFILE_VIEW = 'USER_PROFILE_VIEW',\n COMMENT_ADDED = 'COMMENT_ADDED',\n COMMENT_UPDATED = 'COMMENT_UPDATED',\n COMMENT_DELETED = 'COMMENT_DELETED',\n ANALYTICS_ATTRIBUTES_CHANGED = 'ANALYTICS_ATTRIBUTES_CHANGED',\n SFDC_CONNECTOR_SYNCHRONIZATION_ISSUE = 'SFDC_CONNECTOR_SYNCHRONIZATION_ISSUE',\n GROUP_CREATED = 'GROUP_CREATED',\n GROUP_REMOVED = 'GROUP_REMOVED',\n GROUP_CHANGED = 'GROUP_CHANGED'\n}\n","import {\n formatDataTypeValue,\n findAttributeTypeByUri,\n Metadata,\n AttributePresentations,\n makeAttrTypeUri,\n getAttrDataTypeDefinition\n} from '@reltio/mdm-sdk';\nimport {filter, groupBy, ifElse, map, path, pipe, propOr, values, isNil, includes, reject} from 'ramda';\nimport i18n from 'ui-i18n';\nimport {ActivityData, ActivityItem, ActivityTypes, DeltaValue} from '../types';\n\nconst getItemDataType = path(['data', 'type']);\n\nexport const getActivityType = (activity: ActivityData) => {\n const {items, label} = activity;\n const [firstItem] = items || [];\n return getItemDataType(firstItem) || label;\n};\n\nexport const isValidActivityType = (type: string): boolean => pipe(values, includes(type))(ActivityTypes);\n\nexport const removeIgnoredItems = (activity: ActivityData): ActivityData => {\n const {items = [], label} = activity;\n const isImplementedItem = (item: ActivityItem): boolean => isValidActivityType(getItemDataType(item) || label);\n const filteredItems = filter(isImplementedItem)(items);\n if (items.length !== filteredItems.length) {\n console.error('Activities not implemented:', reject(isImplementedItem)(items));\n }\n return {\n ...activity,\n items: filteredItems,\n itemsTotal: filteredItems.length\n };\n};\n\nexport const splitActivityByType = (activity: ActivityData) => {\n return pipe(\n propOr([], 'items'),\n groupBy(getItemDataType),\n values,\n ifElse(\n ({length}) => length > 1,\n map((items) => ({\n ...activity,\n items,\n itemsTotal: items.length\n })),\n () => [activity]\n )\n )(activity);\n};\n\nexport const stringifyDeltaValue = (\n deltaValue: DeltaValue['value'],\n attributeTypeUri: string,\n metadata: Metadata,\n attributePresentations: AttributePresentations\n) => {\n const attributeType = findAttributeTypeByUri(metadata, attributeTypeUri);\n const dataTypeDefinition = getAttrDataTypeDefinition(attributeType);\n const formatValue = formatDataTypeValue({attributePresentations, dataTypeDefinition});\n\n if (isNil(deltaValue)) {\n return '';\n }\n\n if (typeof deltaValue === 'string') {\n return attributeType ? formatValue(deltaValue) : deltaValue;\n }\n\n return Object.entries(deltaValue)\n .flatMap(([attributeTypeName, deltaValues]) =>\n deltaValues.map((deltaValue) =>\n stringifyDeltaValue(\n deltaValue.value,\n makeAttrTypeUri(attributeTypeUri, attributeTypeName),\n metadata,\n attributePresentations\n )\n )\n )\n .join(', ');\n};\n\nexport const getActivityLabel = (type: ActivityTypes) => {\n const labels = {\n [ActivityTypes.COMMENT_ADDED]: i18n.text('Comment added'),\n [ActivityTypes.COMMENT_DELETED]: i18n.text('Comment deleted'),\n [ActivityTypes.COMMENT_UPDATED]: i18n.text('Comment updated'),\n [ActivityTypes.ENTITIES_MERGED]: i18n.text('Profile merged'),\n [ActivityTypes.ENTITIES_MERGED_MANUALLY]: i18n.text('Profile merged manually'),\n [ActivityTypes.ENTITIES_MERGED_ON_THE_FLY]: i18n.text('Profile merged on the fly'),\n [ActivityTypes.ENTITIES_SPLITTED]: i18n.text('Profile un-merged'),\n [ActivityTypes.ENTITY_CHANGED]: i18n.text('Profile updated'),\n [ActivityTypes.ENTITY_CREATED]: i18n.text('Profile created'),\n [ActivityTypes.ENTITY_LOST_MERGE]: i18n.text('Profile lost merge'),\n [ActivityTypes.ENTITY_REMOVED]: i18n.text('Profile removed'),\n [ActivityTypes.GROUP_CHANGED]: i18n.text('Group updated'),\n [ActivityTypes.GROUP_CREATED]: i18n.text('Group created'),\n [ActivityTypes.GROUP_REMOVED]: i18n.text('Group removed'),\n [ActivityTypes.MODEL_UPDATED]: i18n.text('Model was updated'),\n [ActivityTypes.NOT_MATCHES_RESET]: i18n.text('Not matches reset'),\n [ActivityTypes.NOT_MATCHES_SET]: i18n.text('Not matches set'),\n [ActivityTypes.PERIODIC_TASK_SCHEDULED]: i18n.text('Periodic task was scheduled'),\n [ActivityTypes.POTENTIAL_MATCHES_FOUND]: i18n.text('Potential matches found'),\n [ActivityTypes.POTENTIAL_MATCHES_REMOVED]: i18n.text('Potential matches removed'),\n [ActivityTypes.RELATIONSHIP_CHANGED]: i18n.text('Relationship updated'),\n [ActivityTypes.RELATIONSHIP_CREATED]: i18n.text('Relationship created'),\n [ActivityTypes.RELATIONSHIP_REMOVED]: i18n.text('Relationship removed'),\n [ActivityTypes.USER_LOGIN]: i18n.text('Logged in'),\n [ActivityTypes.USER_LOGOUT]: i18n.text('Logged out'),\n [ActivityTypes.USER_PROFILE_VIEW]: i18n.text('Profile viewed'),\n [ActivityTypes.USER_SEARCH]: i18n.text('Searched'),\n [ActivityTypes.ANALYTICS_ATTRIBUTES_CHANGED]: i18n.text('Analytics attribute changed'),\n [ActivityTypes.SFDC_CONNECTOR_SYNCHRONIZATION_ISSUE]: i18n.text('SFDC connector synchronization issue')\n };\n return labels[type] || '';\n};\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n root: {\n flex: 1\n },\n dropdownIndicator: {\n transition: 'transform .15s ease'\n },\n inputRoot: {\n fontSize: '14px',\n height: 46\n },\n input: {\n padding: '0 12px 0'\n },\n dateOptionLabel: {\n minWidth: '100px'\n },\n paper: {\n minWidth: '112px'\n }\n});\n","import React, {useCallback, useRef, useState} from 'react';\nimport moment from 'moment';\nimport i18n from 'ui-i18n';\nimport {isNil} from 'ramda';\nimport {DataTypes, formatDataTypeValue} from '@reltio/mdm-sdk';\nimport {noop} from '../../../core';\n\nimport {TextField as TextField} from '@material-ui/core';\nimport {Menu as Menu} from '@material-ui/core';\nimport DropdownIndicatorWithIconButton from '../../commonReactSelectComponents/DropdownIndicatorWithIconButton';\nimport DateRangePicker from '../../DateRangePicker/DateRangePicker';\nimport {useStyles} from './styles';\n\ntype DateValues = [Date, Date];\ntype Props = {\n values: DateValues;\n onChange: (values: DateValues) => void;\n onFocus?: () => void;\n};\n\nconst localeFormat = moment.localeData().longDateFormat('L');\n\nconst formatValue = (value: Date, placeholder: string) => {\n return isNil(value)\n ? `${placeholder}`\n : `${formatDataTypeValue({dataTypeDefinition: {type: DataTypes.TYPE_ACTIVENESS_DATE}}, value)}`;\n};\n\nconst CustomDateRangeEditor = ({values, onChange, onFocus = noop}: Props) => {\n const placeholder = localeFormat;\n const inputRef = useRef(null);\n const [open, setOpen] = useState(false);\n const styles = useStyles();\n\n const onApply = (values: DateValues) => {\n onChange(values);\n setOpen(false);\n };\n\n const handleToggle = useCallback(() => {\n setOpen((open) => !open);\n onFocus();\n }, [onFocus]);\n\n const onCancel = () => {\n setOpen(false);\n };\n\n return (\n <div className={styles.root}>\n <TextField\n fullWidth\n value={values.map((value) => formatValue(value, placeholder)).join(' \\u2014 ')}\n onClick={handleToggle}\n variant=\"filled\"\n ref={inputRef}\n InputProps={{\n endAdornment: (\n <DropdownIndicatorWithIconButton\n selectProps={{classes: styles, menuIsOpen: open}}\n innerProps={{}}\n />\n ),\n disableUnderline: isNil(values),\n readOnly: true,\n classes: {\n root: styles.inputRoot,\n input: styles.input\n }\n }}\n InputLabelProps={{\n shrink: false\n }}\n placeholder={i18n.text(`${placeholder} \\u2014 ${placeholder}`)}\n />\n <Menu\n variant=\"menu\"\n open={open}\n autoFocus={false}\n classes={{paper: styles.paper}}\n anchorEl={inputRef.current}\n onClose={onCancel}\n anchorOrigin={{\n vertical: 'bottom',\n horizontal: 'left'\n }}\n transformOrigin={{\n vertical: 'top',\n horizontal: 'left'\n }}\n elevation={2}\n getContentAnchorEl={null}\n MenuListProps={{\n autoFocusItem: open,\n style: {width: '100%'}\n }}\n >\n <DateRangePicker\n values={values}\n onCancel={onCancel}\n onApply={onApply}\n type={DataTypes.TYPE_ACTIVENESS_DATE}\n />\n </Menu>\n </div>\n );\n};\n\nexport default CustomDateRangeEditor;\n","import React from 'react';\nimport {generateEntityUrlForOldMode, generatePivotingUrlForOldMode, generateTagUrlForOldMode} from '@reltio/mdm-sdk';\n\ntype GenerateEntityUrl = (params: {uiPath: string; uri: string; screen?: string}) => string;\ntype GeneratePivotingUrl = (params: {uiPath: string; uri: string; value: string}) => string;\ntype GenerateTagUrl = (params: {uiPath: string; tag: string; entityUri: string}) => string;\n\ntype UrlGenerators = {\n generateEntityUrl?: GenerateEntityUrl;\n generatePivotingUrl?: GeneratePivotingUrl;\n generateTagUrl?: GenerateTagUrl;\n};\n\nexport const UrlGeneratorsContext = React.createContext<UrlGenerators>({\n generateEntityUrl: generateEntityUrlForOldMode,\n generatePivotingUrl: generatePivotingUrlForOldMode,\n generateTagUrl: generateTagUrlForOldMode\n});\n\nUrlGeneratorsContext.displayName = 'UrlGeneratorsContext';\n","import React from 'react';\n\nexport const ViewIdContext = React.createContext<string>(null);\n\nViewIdContext.displayName = 'ViewIdContext';\n","import React from 'react';\n\nconst SvgNestedAttribute: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width={24} height={24} viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M14 11v-1a1 1 0 011-1h4a1 1 0 011 1v4a1 1 0 01-1 1h-4a1 1 0 01-1-1v-1h-3v1a1 1 0 01-1 1H6a1 1 0 01-1-1v-4a1 1 0 011-1h4a1 1 0 011 1v1h3z\"\n fill=\"#000\"\n stroke=\"none\"\n strokeWidth={1}\n fillRule=\"evenodd\"\n />\n </svg>\n );\n};\n\nexport default SvgNestedAttribute;\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: i18n.text('Refresh'),\n icon: <ReplayIcon />,\n active: !!onRefresh,\n action: () => onRefresh()\n },\n {\n id: 'fullscreen',\n title: i18n.text('Fullscreen'),\n icon: <FullscreenIcon />,\n active: !isFullscreen,\n action: () => onToggleFullscreen(id)\n },\n {\n id: 'exitFullscreen',\n title: i18n.text('Exit fullscreen'),\n icon: <FullscreenExitIcon />,\n active: isFullscreen,\n action: () => onToggleFullscreen(id)\n },\n {\n id: 'remove',\n title: i18n.text('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 EmptyPlaceholder?: React.ReactNode;\n};\n\nconst LayoutItemContent = <T extends unknown>({\n loadingState,\n onRefresh,\n children,\n data,\n className,\n EmptyPlaceholder\n}: 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 EmptyPlaceholder || <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 isSomeEntityTypeFilter = ({filter, fieldName}: DashboardConfigFilter) =>\n filter === FilterOptions.EQUALS && fieldName === 'type';\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 isSomeEntityTypeFilter\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) || filters.find(isSomeEntityTypeFilter)?.values?.[0];\n if (!entityType) {\n console.error('Misconfiguration. Can not find entityType for search state');\n return;\n }\n return {\n facets: filters.map(convertFilterToFacetState(metadata, entityType))\n };\n }\n);\n","import React, {memo, useContext, useMemo} from 'react';\nimport {useDispatch, useSelector} from 'react-redux';\nimport {concat, pipe, when} from 'ramda';\nimport {ChartsFactory, SearchFiltersContext, useReloadFacet} from '@reltio/components';\nimport {useFacetRequest} from '../../hooks/useFacetRequest';\nimport mdmModule, {ui} from '@reltio/mdm-module';\nimport {ChartTypes, DashboardFacetConfig, SearchFilter, isObject} from '@reltio/mdm-sdk';\nimport LayoutItemView from '../../components/LayoutItemView/LayoutItemView';\nimport LayoutItemHeader from '../../components/LayoutItemHeader/LayoutItemHeader';\nimport LayoutItemContent from '../../components/LayoutItemContent/LayoutItemContent';\nimport {facetFiltersToSearchState, getFiltersForFacet, getFiltersForFacetItem} from '../../services/facets';\nimport {convertSearchFilterToDashboardConfigFilter} from '../../services/filters';\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\n const searchFilters = useContext<SearchFilter[]>(SearchFiltersContext);\n const allFilters = useMemo(\n () => searchFilters.map(convertSearchFilterToDashboardConfigFilter).concat(filters || []),\n [searchFilters, filters]\n );\n\n const onItemClick = pipe(\n getFiltersForFacetItem(attributeUri, data),\n concat(getFiltersForFacet(attributeUri, allFilters)),\n facetFiltersToSearchState(metadata, attributeUri),\n when(isObject, pipe(ui.actions.openSearch, 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} 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 searchByOv: boolean = useSelector(mdmModule.selectors.getShowSearchByOv);\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 enum PeriodStep {\n HOUR = 'hour',\n DAY = 'day'\n}\n","import moment from 'moment';\nimport {defaultTo, map, pipe} from 'ramda';\nimport {getDateRangeByValue, getDateRangeByDatePeriod, DatePeriod, DateRangeValue} from '@reltio/mdm-sdk';\nimport {PeriodStep} from '../types/PeriodStep';\n\nconst getStepForTimestampInterval = ([startTime, endTime]) => {\n return endTime - startTime > +moment.duration(1, 'day') ? PeriodStep.DAY : PeriodStep.HOUR;\n};\n\nconst getStepForPeriod = pipe(\n (period) => getDateRangeByDatePeriod(period, getDashboardDateRangeByValue),\n getStepForTimestampInterval\n);\n\ntype GetDateRangeByValue = (value: DatePeriod | [number, number]) => [number, number];\nexport const getDashboardDateRangeByValue: GetDateRangeByValue = (value) => {\n const currentDate = moment();\n\n switch (value) {\n case DateRangeValue.LAST_WEEK:\n return [moment(currentDate).subtract(6, 'days').valueOf(), currentDate.valueOf()];\n default:\n return getDateRangeByValue(value);\n }\n};\n\nconst getValuesDateRange = pipe(\n getDashboardDateRangeByValue,\n defaultTo([]),\n map((value) => value && new Date(value))\n);\n\nexport {getStepForPeriod, getValuesDateRange};\n","import {\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 moment from 'moment';\nimport i18n from 'ui-i18n';\nimport {getEntitiesStats, getDateRangeByDatePeriod, DatePeriod} from '@reltio/mdm-sdk';\nimport {PeriodStep} from '../types/PeriodStep';\nimport {TimestampedStatsEventData, StatsData, StatsEventData} from '../types/StatsData';\nimport {getDashboardDateRangeByValue} from '../services/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: DatePeriod): Promise<StatsData[]> => {\n const [startTime, endTime] = getDateRangeByDatePeriod(period, getDashboardDateRangeByValue);\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) ? getStats({facet: 'hour', types}) : Promise.resolve({total: 0, data: []})).then(\n ({total, data}) => ({total, data: periodFrame(data), event: id})\n )\n )\n );\n };\n\n return getEvents().then((events) => (events.length > 0 ? getEventsData(events) : []));\n};\n\nconst groupEventsData = curry((step: PeriodStep, eventData: StatsEventData[]): TimestampedStatsEventData[] => {\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(\n (step: PeriodStep, eventData: TimestampedStatsEventData[]): TimestampedStatsEventData[] => {\n const [head, ...other] = eventData;\n return other.reduce(\n (acc, item) => {\n const lastTerm = last(acc).term;\n let nextTerm = moment(lastTerm).add(1, step).valueOf();\n const interpolatedItems = [];\n while (nextTerm < item.term) {\n interpolatedItems.push({\n term: nextTerm,\n count: 0\n });\n nextTerm = moment(nextTerm).add(1, step).valueOf();\n }\n return acc.concat(interpolatedItems, item);\n },\n [head]\n );\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/PeriodStep';\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/PeriodStep';\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/PeriodStep';\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 {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 {useCallback, useEffect, useState} from 'react';\nimport {andThen, otherwise, pipe} from 'ramda';\nimport {requestStats} from '../services/stats';\nimport {getStepForPeriod} from '../services/period';\nimport {StatsData} from '../types/StatsData';\nimport {DatePeriod} from '@reltio/mdm-sdk';\nimport {useSafePromise, RequestStates} from '@reltio/components';\n\nexport const useStatsRequest = (period: DatePeriod) => {\n const [data, setData] = useState<StatsData[]>([]);\n const [step, setStep] = useState(getStepForPeriod(period));\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\n const loadData = useCallback(() => {\n setRequestState(RequestStates.LOADING);\n setStep(getStepForPeriod(period));\n setData([]);\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.toString()]); // 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, step, 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, DatePeriod, DateRangeValue, getDateRangeOptions} from '@reltio/mdm-sdk';\nimport {useReloadFacet, DateRangeEditor} from '@reltio/components';\nimport LayoutItemView from '../../components/LayoutItemView/LayoutItemView';\nimport LayoutItemHeader from '../../components/LayoutItemHeader/LayoutItemHeader';\nimport LayoutItemContent from '../../components/LayoutItemContent/LayoutItemContent';\nimport StatsChart from '../../components/StatsChart/StatsChart';\nimport {useStatsRequest} from '../../hooks/useStatsRequest';\nimport {getValuesDateRange} 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<DatePeriod>(DateRangeValue.LAST_WEEK);\n const {state, data, step, reload} = useStatsRequest(period);\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 <DateRangeEditor\n values={period}\n options={getDateRangeOptions()}\n getValuesDateRange={getValuesDateRange}\n onChange={setPeriod}\n className={styles.periodSelector}\n />\n </LayoutItemHeader>\n <LayoutItemContent loadingState={state} onRefresh={reload} data={data}>\n {({data, width, height}) => <StatsChart data={data} width={width} height={height} step={step} />}\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} 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 searchByOv: boolean = useSelector(mdmModule.selectors.getShowSearchByOv);\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 {pipe, when} from 'ramda';\nimport {TreeChart, useReloadFacet} from '@reltio/components';\nimport {isObject} from '@reltio/mdm-sdk';\nimport mdmModule, {ui} from '@reltio/mdm-module';\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';\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 when(isObject, pipe(ui.actions.openSearch, 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","import {WorkflowTaskData} from '@reltio/mdm-sdk';\n\nexport 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 EnrichedWorkflowTaskData = WorkflowTaskData & {\n objects?: WorkflowTaskObjectData[];\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} from '../types/WorkflowTasks';\nimport {\n getDataChangeRequest,\n getEntitiesByUris,\n getGroupTasksForTenant,\n getTasksForTenant,\n isEntityUri,\n WorkflowTaskData\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 {always, cond, equals, propSatisfies, T} from 'ramda';\nimport {EnrichedWorkflowTaskData, WorkflowTaskObjectData} from '../../types/WorkflowTasks';\nimport {EntityUriLink} from '@reltio/components';\nimport {\n getEntityUriForLink,\n getLabel,\n getRelationType,\n isDCRUri,\n Metadata,\n PredefinedWorkflowProcessType\n} from '@reltio/mdm-sdk';\nimport i18n from 'ui-i18n';\nimport {useStyles} from './styles';\n\ntype Props = {\n object: WorkflowTaskObjectData;\n metadata: Metadata;\n processType: EnrichedWorkflowTaskData['processType'];\n};\n\nconst EntityLink = ({uri, label, screen}: {uri: string; label: string; screen?: string}) => {\n const styles = useStyles();\n return (\n <EntityUriLink value={uri} screen={screen} className={styles.entityLabel}>\n {getLabel(label)}\n </EntityUriLink>\n );\n};\n\nconst WorkflowTaskObject = ({object, metadata, processType}: 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 const screen = cond([\n [\n always(equals(processType, PredefinedWorkflowProcessType.potentialMatchReview)),\n always('potentialMatches')\n ],\n [propSatisfies(isDCRUri, 'uri'), always('dcrReview')],\n [T, always('profile')]\n ])(object);\n return <EntityLink uri={getEntityUriForLink(object)} label={object.label} screen={screen} />;\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 {EnrichedWorkflowTaskData} from '../../types';\nimport {isOverdueTask} from '../../services/workflowTasks';\nimport WorkflowTaskObject from './WorkflowTaskObject';\nimport {useStyles} from './styles';\n\ntype Props = {\n showAssignee: boolean;\n task: EnrichedWorkflowTaskData;\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 {i18n.text(task.processDefinitionDisplayName)}\n </Typography>\n {objects.map((object) => (\n <p key={object.uri} className={styles.taskDetail}>\n <WorkflowTaskObject object={object} processType={task.processType} 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, EnrichedWorkflowTaskData} 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: EnrichedWorkflowTaskData[];\n};\n\nconst WorkflowTasksList = ({width, height, tasksCategory, tasks}: Props) => {\n const renderRow = useCallback(\n ({data, index}: {data: EnrichedWorkflowTaskData[]; 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 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(\n () => ({tasksCategory, max: rowsPerPage, offset: rowsPerPage * page}),\n [rowsPerPage, page, 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, 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 {EnrichedWorkflowTaskData, 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<EnrichedWorkflowTaskData[]>([]);\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: EnrichedWorkflowTaskData[]; 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 {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 setData(data);\n setTotal(total);\n setRequestState(RequestStates.LOADED);\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';\nimport {DateRangeTypes} from '@reltio/mdm-sdk';\nimport {ActivitiesFilter, ActivityLog, ActivityLogFilter, useReloadFacet} from '@reltio/components';\nimport LayoutItemView from '../../components/LayoutItemView/LayoutItemView';\nimport LayoutItemHeader from '../../components/LayoutItemHeader/LayoutItemHeader';\nimport LayoutItemContent from '../../components/LayoutItemContent/LayoutItemContent';\nimport {ActivitiesViewFacetConfig} from '../../types/ActivitiesViewFacetConfig';\nimport {DEFAULT_ROWS_PER_PAGE, getRowsPerPageOptions} from './helpers';\nimport {useActivitiesRequest} from '../../hooks/useActivitiesRequest';\n\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":["props","width","height","viewBox","xmlns","d","fill","stroke","strokeWidth","fillRule","x","y","rx","useStyles","makeStyles","container","paddingLeft","listItem","paddingTop","paddingBottom","transition","background","outline","listItemFocus","icon","opacity","flexShrink","marginRight","marginLeft","recommendedIcon","logoIcon","itemAfter","position","right","top","pointerEvents","itemText","padding","margin","fontSize","letterSpacing","whiteSpace","checkbox","checked","marginWrapper","display","alignItems","defaultCursor","cursor","itemTooltip","marginText","itemTextWrapper","attrType","styles","Icon","type","DataTypes","NestedAttrIcon","ReferenceAttrIcon","SimpleAttrIcon","getIconForAttrType","className","RecommendedIconWithTooltip","withTooltip","transform","cx","cy","r","memo","groupId","data","isFocused","isRequired","label","labelInText","level","onClick","noop","hideCheckBox","hideIcon","notSelectable","disableHorizontalScrollbar","style","subItemMargin","LogoIcon","disableNonSelectable","disableGutters","isButton","isNested","showLogoIcon","ExpandedValueTooltip","value","placement","ListItem","classnames","undefined","dense","button","disabled","classes","focusVisible","selected","tabIndex","Checkbox","disableRipple","Marginator","tooltipTitle","i18n","showForDisabled","renderIcon","ListItemText","primary","RequiredMark","customStyles","input","currentStyles","menuPortal","zIndex","root","flex","title","dropDownInput","justifyContent","backgroundColor","borderTop","option","noOptionsMessage","entityType","selectedAttributes","onChange","disableUnderline","menuPlacement","metadata","useSelector","mdmModule","prepareItems","useCallback","prevLabel","reduce","acc","item","hidden","chipLabel","push","uri","subAttributes","getAttributeTypeSubAttributes","concat","options","useMemo","attributes","Typography","variant","MultiSelect","TextFieldProps","InputProps","components","DropdownIndicator","DropdownIndicatorWithIconButton","MultiValue","Option","isSelected","innerProps","AttributeListItem","pipe","defaultTo","menuPortalTarget","document","body","pagination","boxShadow","caption","color","lineHeight","selectRoot","select","textAlign","actions","BasicTablePagination","count","rowsPerPageOptions","page","onChangePage","rowsPerPage","onChangeRowsPerPage","basicTableRef","labelRowsPerPage","resetScrollbarPosition","pathOr","identity","handleChangePage","handleChangeRowsPerPage","TablePagination","component","labelDisplayedRows","from","to","fromRow","toRow","countRows","nthArg","getValue","propTypes","PropTypes","current","React","collapseButton","expandLess","isOpen","otherProps","buttonProps","ExpandMore","iconClassName","tooltipProps","SmallIconButton","paddingRight","inputNumber","minWidth","inputUnit","periods","interval","unit","onFocus","onNumberChange","parseInt","newValue","onUnitChange","newUnit","TextField","inputProps","min","SimpleDropDownSelector","placeholder","capitalize","getIntervalUnitLabel","map","useMenuStyles","theme","addLabel","fontWeight","palette","main","textOverflow","overflow","addIcon","useSingleValueStyles","singleValue","marginTop","Menu","selectProps","onCreate","createLabel","inputValue","children","MenuWithPopper","prop","Add","SingleValue","menuIsOpen","control","dropdownIndicator","boxSizing","valueContainer","formControl","filledInputRoot","filledInputUnderline","inputLabel","menu","baseStyles","borderRadius","menuList","maxHeight","group","overloadMenuListStyle","withoutLabelInputStyle","DropDownSelector","getOptions","onClear","textFieldInputRef","underlineStyle","useInputStyles","open","setOpen","useState","inputRef","useRef","SelectComponent","AsyncSelect","Select","showIndicatorSeparator","IndicatorSeparator","EmptyStub","ClearIndicator","handleCreate","overloadStylesIfGroup","overloadStylesIfNoLabel","isEmpty","mergedStyles","mergedClasses","defaultOptions","loadOptions","cacheOptions","LoadingIndicator","path","underline","isEmptyValue","focused","InputLabelProps","shrink","ref","onMenuOpen","onMenuClose","DropDownSelectorType","absoluteImagePath","storagePath","str","endsWith","EntityUriLink","forwardRef","screen","dispatch","useDispatch","viewId","useContext","ViewIdContext","generateEntityUrl","UrlGeneratorsContext","uiPath","ui","href","e","stopPropagation","preventDefault","displayName","withMuiSkin","CreatableSelect","innerRef","MenuItem","classNames","id","key","onMouseMove","onMouseOver","left","clearIndicator","spacing","creatable","loadingIndicator","componentsProp","classesProp","stylesProp","onChangeProp","onInputChange","onInputChangeProp","reactSelectProps","setInputValue","multiSelectClasses","omit","inputId","multiSelectComponents","mergeClasses","indicatorSeparator","base","loadingMessage","fontFamily","labelProps","htmlFor","length","isMulti","actionMeta","action","closeMenuOnSelect","hideSelectedOptions","defaultProps","Control","DownChevron","CrossIcon","Group","GroupHeading","IndicatorsContainer","Input","MenuList","MenuPortal","LoadingMessage","NoOptionsMessage","MultiValueContainer","MultiValueLabel","MultiValueRemove","Placeholder","SelectContainer","ValueContainer","multiValue","groupHeading","indicatorsContainer","multiValueLabel","multiValueRemove","getOptionValue","isSearchable","mark","DropDownValue","DropDownPlaceholder","selectedUsers","valueToOption","prepareValues","values","tenant","servicesPath","cachedRequest","pluck","getAllUsersForTenant","then","users","filter","username","utils","filterUsers","ActivityTypes","getItemDataType","getActivityType","activity","items","firstItem","removeIgnoredItems","isImplementedItem","isValidActivityType","includes","filteredItems","console","error","reject","itemsTotal","splitActivityByType","propOr","groupBy","ifElse","stringifyDeltaValue","deltaValue","attributeTypeUri","attributePresentations","attributeType","findAttributeTypeByUri","dataTypeDefinition","getAttrDataTypeDefinition","formatValue","formatDataTypeValue","isNil","Object","entries","flatMap","attributeTypeName","deltaValues","makeAttrTypeUri","join","getActivityLabel","inputRoot","dateOptionLabel","paper","localeFormat","moment","longDateFormat","handleToggle","onCancel","fullWidth","endAdornment","readOnly","autoFocus","anchorEl","onClose","anchorOrigin","vertical","horizontal","transformOrigin","elevation","getContentAnchorEl","MenuListProps","autoFocusItem","DateRangePicker","onApply","generateEntityUrlForOldMode","generatePivotingUrl","generatePivotingUrlForOldMode","generateTagUrl","generateTagUrlForOldMode","useSavedSearchesRequest","offset","max","setData","total","setTotal","requestState","setRequestState","RequestStates","onError","loadData","onRequestFinished","result","countResults","restOptions","async","getSavedSearches","totalRequests","search","getTotalsForQuery","replacePlaceholdersInQuery","query","searchesWithCount","promiseAllSettled","searchesWithTotal","searchIndex","status","reason","assocPath","getData","catch","refreshAction","useEffect","state","reload","ROWS_PER_PAGE_OPTIONS","DEFAULT_ROWS_PER_PAGE","getRowsPerPageOptions","defaultRowsPerPage","sort","subtract","itemTitle","itemIcon","menuItem","openIcon","setAnchorEl","isMenuOpen","Boolean","handleMenuClose","handleItemClick","IconButton","currentTarget","MoreVert","transitionDuration","active","ListItemIcon","toolbarRoot","minHeight","marginBottom","dragIcon","visibility","rightMenu","flexGrow","updatedChip","onToggleFullscreen","isUpdated","isFullscreen","onRemove","onRefresh","DashboardViewIdContext","menuItems","Replay","Fullscreen","FullscreenExit","HighlightOff","BasicViewHeader","Chip","size","DragIndicator","_extends","assign","target","i","arguments","source","prototype","hasOwnProperty","call","apply","this","maskType","maskUnits","mask","fillOpacity","clipRule","mixBlendMode","x1","y1","x2","y2","gradientUnits","stopColor","stopOpacity","filterUnits","colorInterpolationFilters","floodOpacity","in","dy","stdDeviation","mode","in2","noDataContainer","flexDirection","errorContainer","errorIcon","refreshButton","refreshIcon","message","Button","startIcon","viewContent","loadingState","EmptyPlaceholder","BasicViewContent","refreshMode","refreshRate","handleWidth","handleHeight","ErrorBoundary","DashboardLinearLoader","withPagination","TableComponent","WithPagination","savedSearchDataToSearchState","uiState","version","currentSavedSearchUri","curSavedSearchUri","TableWithPagination","TableWithBars","config","setRowsPerPage","setPage","chartData","name","savedSearchDataToChartData","onSSClick","find","propEq","useReloadFacet","LayoutItemView","headers","showValues","onItemClick","configFilterToSearchFilter","when","__","FilterOptions","evolve","wrapInArray","createNotEqualFilter","curry","fieldName","convertSearchFilterToDashboardConfigFilter","searchFilter","createEntityTypeFilter","entityTypeUri","createFacetItemFilter","convertFilterToFacetState","isEntityAttributeFilter","test","searchUriToAttrUri","getSpecialAttrTypeByFieldName","assoc","isDateType","mapFilterValue","parseTimestamp","isSomeEntityTypeFilter","isEntityTypeFilter","requestFacets","attribute","filters","globalFilter","searchByOv","activityFilter","pageSize","orderType","buildFilterQueryString","addGlobalFilterToQuery","buildQuery","pageNo","getFacets","response","sortWith","descend","ascend","getFacetData","resolveLookups","lookupCode","lookupsToResolve","codeValue","resolveLookupsList","codes","buildLookupRecord","code","buildFacetOthersFilters","OTHER_FACET_GROUP","requestOtherValues","otherFilters","searchOptions","getTotals","resolveRoleLabel","roleName","getRoleLabel","localizeFacetValues","facet","localizedValue","getFacetFieldName","isEntityTypeUri","attributeUriToSearchUri","getFacetEntityTypeUri","getEntityUriFromAttributeUri","always","getFiltersForFacet","attributeUri","hasEntityTypeFilter","some","getFiltersForFacetItem","facetFiltersToSearchState","facets","chartType","showOthers","ChartTypes","facetFilters","searchFilters","SearchFiltersContext","facetAndSpecialFilters","hasAttrPresentation","andThen","isLookupAttrType","getAttrTypeLookupCode","isRoleAttrType","resolveFacetLabels","unless","otherwise","useFacetRequest","allFilters","isObject","ChartsFactory","content","headCell","headLabel","text","entityLabel","textDecoration","headCellData","DefaultHeadCellRenderer","rowValue","entity","getLabel","getEntityUriForLink","tableContainer","cellBorder","borderLeft","borderRight","headData","resizable","headCellRenderer","HeadCellRenderer","rowCellValueRenderer","EntityLabelRenderer","initialWidth","tableClasses","BasicTable","columnsData","rowsData","headRowHeight","getRowCellHeight","defaultColumnWidth","defaultColumnMinWidth","Promise","all","getFilteredEntities","results","entities","useFilteredEntitiesRequest","PeriodStep","getStepForPeriod","period","getDateRangeByDatePeriod","getDashboardDateRangeByValue","startTime","endTime","DAY","HOUR","currentDate","DateRangeValue","valueOf","getDateRangeByValue","getValuesDateRange","Date","StatsEvents","types","getStatsEventById","event","getStatsEventName","getStatsEventColor","requestStats","getStats","getEntitiesStats","allTypes","chain","processStats","stats","getEvents","events","presentTypes","periodFrame","term","prepend","append","isEventPresent","resolve","getEventsData","groupEventsData","step","eventData","startOf","toPairs","date","sum","interpolateEventsData","head","other","lastTerm","last","nextTerm","add","interpolatedItems","calibrateStatsData","statsData","getStepValueFormat","cond","equals","payload","textAnchor","tooltipWrapper","tooltipItemColor","legend","flexWrap","legendItem","legendItemColor","legendItemValue","selectedItems","Tooltip","border","selectedEvents","setSelectedEvents","tooltipEvent","setTooltipEvent","cartesianGrid","tooltip","xAxis","yAxis","line","dataKey","tick","angle","allowDuplicatedCategory","tickFormatter","formatNumberAsMetric","strokeDasharray","strokeOpacity","wrapperStyle","overflowY","domain","tickCount","counts","Math","abs","getChartDomain","dot","activeDot","onMouseEnter","onMouseLeave","without","periodSelector","flexBasis","setPeriod","setStep","safePromise","useSafePromise","toString","useStatsRequest","DateRangeEditor","getDateRangeOptions","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","getEntities","isEntityUri","getEntitiesByUris","getChangeRequests","getDataChangeRequest","requests","getTaskObjectsData","converge","extractObjectsFromChangeRequest","objectsInfo","changes","getChange","getUri","keys","enrichTasksWithObjectsData","changeRequests","tasks","task","objects","enrichTaskWithEntity","changeRequest","enrichTaskWithDCRObjects","requestWorkflowTasks","tasksCategory","workflowPath","environment","assignee","getTasks","isOverdueTask","dueDate","now","taskItem","taskInfo","overflowWrap","taskTitle","taskDetail","taskDetailTitle","secondary","taskDueDate","flag","verticalAlign","overdue","EntityLink","object","processType","relationType","getRelationType","startObjectUri","startObjectLabel","endObjectUri","endObjectLabel","PredefinedWorkflowProcessType","propSatisfies","isDCRUri","showAssignee","firstObject","priorityClass","EntityTypeIcon","processDefinitionDisplayName","createdBy","createTime","Flag","renderRow","index","Divider","light","AutoSizeList","defaultItemSize","setTasksCategory","requestParams","pick","userName","useWorkflowTasksRequest","activityLogFilter","exportTypes","setFilter","activities","dateRange","DateRangeTypes","getActivities","useActivitiesLoader","useActivitiesRequest","handleFilterChange","ActivityLogFilter","ActivityLog","ViewsFactory","ViewTypes","DashboardViewTypes","getComponent","ActivitiesViewFacet","CustomActionViewFacet","DashboardFacet","EntitiesByTypeViewFacet","FilteredSavedSearchesFacet","FilteredEntitiesViewFacet","NotificationInboxFacet","ProfileStatsFacet","getChartType","view","typeConverters"],"sourceRoot":""}
|