@reltio/remotes 1.4.1409 → 1.4.1410
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/1268.js +1 -1
- package/1268.js.map +1 -1
- package/1375.js +1 -1
- package/2114.js +1 -1
- package/2491.js +2 -0
- package/2491.js.map +1 -0
- package/2890.js +1 -1
- package/3273.js +1 -1
- package/3540.js +1 -1
- package/3575.js +2 -0
- package/3575.js.map +1 -0
- package/4015.js +1 -1
- package/4407.js +1 -1
- package/447.js +1 -1
- package/4571.css +635 -0
- package/4571.css.map +1 -0
- package/4571.js +2 -0
- package/4571.js.map +1 -0
- package/461.js +1 -1
- package/4843.js +1 -1
- package/4881.js +1 -1
- package/4889.js +1 -1
- package/5400.js +1 -1
- package/5706.js +2 -0
- package/5706.js.map +1 -0
- package/5709.js +1 -1
- package/5720.js +1 -1
- package/5937.js +1 -1
- package/5937.js.map +1 -1
- package/6103.js +1 -1
- package/6119.js +2 -0
- package/6119.js.map +1 -0
- package/6138.js +2 -0
- package/6138.js.map +1 -0
- package/6233.js +2 -0
- package/6233.js.map +1 -0
- package/6312.js +1 -1
- package/6617.js +1 -1
- package/6669.js +1 -1
- package/8051.js +1 -1
- package/8183.js +1 -1
- package/8225.js +2 -0
- package/8225.js.map +1 -0
- package/84.js +1 -1
- package/84.js.map +1 -1
- package/8443.js +1 -1
- package/8448.js +2 -0
- package/8448.js.map +1 -0
- package/8684.js +1 -1
- package/8684.js.map +1 -1
- package/8847.js +1 -1
- package/9043.js +1 -1
- package/9258.js +2 -0
- package/9258.js.map +1 -0
- package/9630.js +1 -1
- package/package.json +1 -1
- package/remoteEntry.js +1 -1
- package/remoteEntry.js.map +1 -1
- package/1219.js +0 -2
- package/1219.js.map +0 -1
- package/3149.js +0 -2
- package/3149.js.map +0 -1
- package/3602.js +0 -2
- package/3602.js.map +0 -1
- package/6495.js +0 -2
- package/6495.js.map +0 -1
- package/6710.js +0 -2
- package/6710.js.map +0 -1
- package/6913.js +0 -2
- package/6913.js.map +0 -1
- package/7937.js +0 -2
- package/7937.js.map +0 -1
- package/8420.js +0 -2
- package/8420.js.map +0 -1
- package/99.js +0 -2
- package/99.js.map +0 -1
package/6233.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"6233.js","mappings":"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","sources":["webpack://@reltio/remotes/../components/src/components/AttributeSelector/styles.ts","webpack://@reltio/remotes/../components/src/components/AttributeSelector/AttributeSelector.tsx","webpack://@reltio/remotes/../components/src/icons/Table.tsx","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTableHeader/ColumnsSettings/ColumnsSettings.js","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTableHeader/ColumnsSettings/styles.js","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTableHeader/ColumnsSettings/ColumnListItem.js","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTableHeader/ColumnsSettings/ColumnsSettingsPopup.tsx","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTableHeader/ColumnsSettings/columnHelpers.js","webpack://@reltio/remotes/../components/src/components/DateIntervalSelector/styles.ts","webpack://@reltio/remotes/../components/src/components/DateIntervalSelector/DateIntervalSelector.tsx","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/icons/AttributesList.tsx","webpack://@reltio/remotes/../components/src/components/SidePanelEmptyState/styles.ts","webpack://@reltio/remotes/../components/src/components/SidePanelEmptyState/SidePanelEmptyState.tsx","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/components/history/DateRangeSelector/utils.ts","webpack://@reltio/remotes/../components/src/components/history/DateRangeSelector/styles.ts","webpack://@reltio/remotes/../components/src/components/history/DateRangeSelector/DateRangeSelector.tsx","webpack://@reltio/remotes/../components/src/components/history/HistoryActivitySelector/utils.ts","webpack://@reltio/remotes/../components/src/components/history/HistoryActivitySelector/styles.ts","webpack://@reltio/remotes/../components/src/components/history/HistoryActivitySelector/HistoryActivitySelector.tsx","webpack://@reltio/remotes/../components/src/components/history/HistoryFilterButton/styles.ts","webpack://@reltio/remotes/../components/src/components/history/HistoryFilterButton/HistoryFilterButton.tsx","webpack://@reltio/remotes/../components/src/components/history/HistoryMenuButton/styles.ts","webpack://@reltio/remotes/../components/src/components/history/HistoryMenuButton/MenuItemRenderer.tsx","webpack://@reltio/remotes/../components/src/components/history/HistoryMenuButton/HistoryMenuButton.tsx","webpack://@reltio/remotes/../components/src/components/history/HistoryHeader/styles.ts","webpack://@reltio/remotes/../components/src/components/history/HistoryHeader/HistoryHeader.tsx","webpack://@reltio/remotes/../components/src/components/history/HistoryPanelEmptyState/HistoryPanelEmptyState.tsx","webpack://@reltio/remotes/../components/src/components/history/HistoryRow/styles.ts","webpack://@reltio/remotes/../components/src/components/history/HistoryRow/HistoryRow.tsx","webpack://@reltio/remotes/../components/src/components/history/HistoryGraph/helpers.ts","webpack://@reltio/remotes/../components/src/components/history/HistoryGraph/HistoryLink.tsx","webpack://@reltio/remotes/../components/src/components/history/HistoryGraph/HistoryCircle.tsx","webpack://@reltio/remotes/../components/src/components/history/HistoryGraph/HistoryGraph.tsx","webpack://@reltio/remotes/../components/src/components/history/HistoryTree/styles.ts","webpack://@reltio/remotes/../components/src/components/history/HistoryTree/HistoryTree.tsx","webpack://@reltio/remotes/../components/src/components/history/ContributorsPanel/styles.ts","webpack://@reltio/remotes/../components/src/components/history/ContributorsPanel/ContributorItem.tsx","webpack://@reltio/remotes/../components/src/components/history/ContributorsPanel/ContributorsPanel.tsx","webpack://@reltio/remotes/../components/src/components/history/hooks/useHistoryTree.ts","webpack://@reltio/remotes/../components/src/components/history/HistoryView/styles.ts","webpack://@reltio/remotes/../components/src/components/history/HistoryView/HistoryView.tsx","webpack://@reltio/remotes/../components/src/components/history/hooks/useHistory.ts","webpack://@reltio/remotes/../components/src/components/history/hooks/useHistoryEnabled.ts","webpack://@reltio/remotes/../components/src/components/history/hooks/useHistorySlice.ts","webpack://@reltio/remotes/../components/src/components/history/types/HistoryChangeTypes.ts","webpack://@reltio/remotes/../components/src/components/history/types/HistoryFilter.ts","webpack://@reltio/remotes/../components/src/components/history/utils/filters.ts","webpack://@reltio/remotes/../components/src/hooks/useSnackbar.tsx","webpack://@reltio/remotes/../components/src/types/index.ts"],"sourcesContent":["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 React from 'react';\n\nconst SvgTable: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width={20} height={18} viewBox=\"0 0 20 18\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M16 7.24V6h-4v1.24a8.417 8.417 0 00-2 .768V6H6v6h.29a8.497 8.497 0 00-.15.358l-.29.733.29.733.07.176H2c-1.1 0-2-.9-2-2V2C0 .9.9 0 2 0h14c1.1 0 2 .9 2 2v6.008a8.417 8.417 0 00-2-.768zM4 12V6H2v6h2zm0-8V2H2v2h2zm6 0V2H6v2h4zm6 0V2h-4v2h4zm-2 5a6.451 6.451 0 00-6 4.09 6.451 6.451 0 006 4.092 6.451 6.451 0 006-4.091A6.451 6.451 0 0014 9zm0 6.818a2.728 2.728 0 010-5.454 2.728 2.728 0 010 5.454zm0-4.363c-.905 0-1.636.73-1.636 1.636 0 .905.73 1.636 1.636 1.636.905 0 1.636-.73 1.636-1.636 0-.906-.73-1.636-1.636-1.636z\"\n fill=\"#000\"\n fillRule=\"nonzero\"\n stroke=\"none\"\n strokeWidth={1}\n opacity={0.54}\n />\n </svg>\n );\n};\n\nexport default SvgTable;\n","import React, {useCallback, useState} from 'react';\nimport PropTypes from 'prop-types';\nimport {ColumnsDataType} from '../../../../constants';\nimport TableIcon from '../../../../icons/Table';\nimport {SmallIconButtonWithTooltip} from '../../../SmallIconButton';\nimport {pipe, uniq, pluck, difference, concat} from 'ramda';\n\nimport {ColumnsSettingsPopup} from './ColumnsSettingsPopup';\n\nimport i18n from 'ui-i18n';\nimport {getChildColumns, isColumnSelected} from './columnHelpers';\n\nconst ColumnsSettings = ({columnsData, selectedColumns, onChangeColumns, title, tooltipTitle}) => {\n const [anchorEl, setAnchorEl] = useState(null);\n const openPopup = (event) => setAnchorEl(event.currentTarget);\n const closePopup = () => setAnchorEl(null);\n const handleColumnClick = useCallback(\n (column) => {\n const changedColumns = pipe(getChildColumns, pluck('id'))(column);\n const wasSelected = isColumnSelected(selectedColumns, column);\n onChangeColumns(\n wasSelected\n ? difference(selectedColumns, changedColumns)\n : uniq(concat(selectedColumns, changedColumns))\n );\n },\n [selectedColumns, onChangeColumns]\n );\n return (\n <>\n <SmallIconButtonWithTooltip\n tooltipTitle={tooltipTitle || i18n.text('Show/hide columns')}\n size=\"L\"\n icon={TableIcon}\n onClick={openPopup}\n />\n <ColumnsSettingsPopup\n onColumnClick={handleColumnClick}\n anchorEl={anchorEl}\n columnsData={columnsData}\n onClose={closePopup}\n title={title}\n selectedColumns={selectedColumns}\n />\n </>\n );\n};\n\nColumnsSettings.propTypes = {\n columnsData: ColumnsDataType,\n selectedColumns: PropTypes.arrayOf(PropTypes.string),\n onChangeColumns: PropTypes.func,\n title: PropTypes.string,\n tooltipTitle: PropTypes.string\n};\n\nexport default ColumnsSettings;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n popup: {\n minWidth: '200px'\n },\n groupItem: {\n backgroundColor: 'rgba(0,0,0,0.04)'\n }\n});\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport AttributeListItem from '../../../AttributeListItem/AttributeListItem';\nimport Highlighter from '../../../Highlighter/Highlighter';\n\nimport classnames from 'classnames';\nimport {useStyles} from './styles';\n\nconst ColumnListItem = ({item, onClick, checked, level, style, isFocused, isGroupItem, hideCheckBox}) => {\n const styles = useStyles();\n return (\n <AttributeListItem\n hideCheckBox={hideCheckBox}\n key={item.id}\n onClick={onClick}\n checked={checked}\n level={level}\n data={item}\n label={<Highlighter text={item.label} highlight={item.filterText} />}\n labelInText={item.label}\n style={style}\n isFocused={isFocused}\n hideIcon={isGroupItem}\n className={classnames({[styles.groupItem]: isGroupItem})}\n />\n );\n};\n\nColumnListItem.propTypes = {\n item: PropTypes.shape({\n label: PropTypes.string,\n filterText: PropTypes.string\n }),\n level: PropTypes.number,\n onClick: PropTypes.func,\n checked: PropTypes.bool,\n style: PropTypes.object,\n isGroupItem: PropTypes.bool,\n isFocused: PropTypes.bool,\n hideCheckBox: PropTypes.bool\n};\n\nexport default ColumnListItem;\n","import React, {useState, useMemo, useCallback} from 'react';\nimport i18n from 'ui-i18n';\nimport {pipe} from 'ramda';\n\nimport {getMaxItemWidth, DataTypeDefinition} from '@reltio/mdm-sdk';\n\nimport VirtualGroupedList from '../../../VirtualGroupedList/VirtualGroupedList';\nimport SelectionPopup from '../../../SelectionPopup/SelectionPopup';\nimport {buildColumnItems, isColumnSelected, isGroupColumn} from './columnHelpers';\nimport {flattenGroupedItemsData} from '../../../VirtualGroupedList/helpers';\nimport {useKeyboardNavigation} from '../../../SelectionPopup/helpers';\nimport ColumnListItem from './ColumnListItem';\n\nimport {useStyles} from './styles';\nimport {ListItemProps} from '@material-ui/core/ListItem';\n\ntype Column = {\n id: string;\n label: string;\n};\n\ntype GroupedColumnData =\n | {\n id: string;\n label: string;\n columns: Column[];\n }\n | Column;\n\ntype GroupedColumnList = {\n id: string;\n groupId: string;\n label: string;\n attrType: DataTypeDefinition;\n};\n\ntype Props = {\n anchorEl: HTMLElement;\n onClose: () => void;\n title?: string;\n columnsData: GroupedColumnData[];\n onColumnClick: (column: {id: string}) => void;\n selectedColumns: string[];\n hideCheckBox?: boolean;\n};\n\nconst ITEM_HEIGHT = 32;\nconst MAX_LIST_CONTAINER_HEIGHT = 300;\nconst DEFAULT_MIN_CONTAINER_WIDTH = 308;\nconst CONTAINER_HEADER_HEIGHT = 108;\nconst MIN_CONTAINER_HEIGHT = 140;\n\nexport const ColumnsSettingsPopup = ({\n anchorEl,\n onClose,\n title,\n columnsData,\n onColumnClick,\n selectedColumns,\n hideCheckBox\n}: Props) => {\n const styles = useStyles();\n const [filterText, setFilterText] = useState('');\n const clearFilter = () => setFilterText('');\n const groupedItems = useMemo(() => buildColumnItems(columnsData, filterText), [columnsData, filterText]);\n\n const items = useMemo(() => flattenGroupedItemsData(groupedItems), [groupedItems]);\n const containerWidth: number = getMaxItemWidth('label')(groupedItems) || DEFAULT_MIN_CONTAINER_WIDTH;\n\n const handleSearchOnEnter = useCallback(\n ({item}: {item: {id: string}; groupData: {item: {id: string}}}) => onColumnClick(item),\n [onColumnClick]\n );\n\n const {focusIndex, handleKeyDown} = useKeyboardNavigation({\n items,\n open: true,\n onSelectFocusedItem: handleSearchOnEnter,\n selectedItems: selectedColumns,\n onClose\n });\n const handleClose = useCallback(pipe(onClose, clearFilter), [onClose]);\n\n const renderColumnItem = (\n style: ListItemProps['style'],\n {item, level = 0}: {item: GroupedColumnList; level?: number},\n index: number\n ) => {\n return (\n <ColumnListItem\n hideCheckBox={hideCheckBox}\n style={style}\n item={item}\n level={level}\n isFocused={focusIndex === index}\n checked={isColumnSelected(selectedColumns, item)}\n isGroupItem={isGroupColumn(item)}\n onClick={hideCheckBox ? pipe(onColumnClick, handleClose) : onColumnClick}\n />\n );\n };\n\n const listHeight = Math.min(MAX_LIST_CONTAINER_HEIGHT, ITEM_HEIGHT * items.length);\n const containerHeight = Math.max(MIN_CONTAINER_HEIGHT, listHeight + CONTAINER_HEADER_HEIGHT);\n\n return (\n <SelectionPopup\n className={styles.popup}\n open={!!anchorEl}\n anchorEl={anchorEl}\n onClose={handleClose}\n onSearch={setFilterText}\n title={title || i18n.text('Show/hide columns')}\n containerWidth={containerWidth}\n containerHeight={containerHeight}\n searchInputOnKeyDown={handleKeyDown}\n >\n <VirtualGroupedList\n fixedTitle={false}\n height={listHeight}\n renderItem={renderColumnItem}\n items={items}\n getItemSize={() => ITEM_HEIGHT}\n focusIndex={focusIndex}\n />\n </SelectionPopup>\n );\n};\n","import {assoc, chain, curry, either, filter, has, pipe, propOr, reduce, when} from 'ramda';\nimport {utils} from '@reltio/mdm-sdk';\n\nconst isGroupColumn = (column) => column.id === column.groupId;\nconst isParentToColumn = curry(\n ({id, groupId}, parent) => parent.groupId === groupId && (id === parent.id || id.startsWith(`${parent.id}.`))\n);\nconst isGroupToColumn = curry(({groupId}, group) => groupId === group.id);\nconst isHideableColumn = propOr(true, 'hideable');\n\nconst getColumnRoot = (columns, column) => columns.find(either(isGroupToColumn(column), isParentToColumn(column)));\n\nconst addColumn = (columns, column) => {\n const root = getColumnRoot(columns, column);\n if (root) {\n root.children = addColumn(root.children || [], column);\n return columns;\n } else {\n return columns.concat(column);\n }\n};\n\nconst filterColumnsByLabel = curry(\n (filterText, column) =>\n utils.strings.search(column.label, filterText) || (column.children || []).some(filterColumnsByLabel(filterText))\n);\n\nconst buildColumnsTrees = reduce(\n (acc, columnData) =>\n addColumn(acc, {\n id: columnData.id,\n groupId: columnData.groupId,\n label: columnData.label,\n attrType: columnData.dataTypeDefinition\n }),\n []\n);\n\nconst buildFilteredColumnItems = curry((filterText, columns, level = 0) =>\n pipe(\n filter(filterColumnsByLabel(filterText)),\n chain((column) => {\n const item = {\n item: {...column, filterText},\n level\n };\n const childrenItems = column.children\n ? buildFilteredColumnItems(filterText, column.children, level + 1)\n : [];\n return [item, ...childrenItems];\n })\n )(columns)\n);\n\nconst isGroupedColumnsData = has('columns');\nconst flattenGroupedColumnsData = ({id, label, columns}) => [\n {id, groupId: id, label},\n ...columns.map(assoc('groupId', id))\n];\n\nconst buildColumnItems = (columnsData, filterText) => {\n return pipe(\n chain(when(isGroupedColumnsData, flattenGroupedColumnsData)),\n filter(either(isGroupColumn, isHideableColumn)),\n buildColumnsTrees,\n buildFilteredColumnItems(filterText)\n )(columnsData);\n};\n\nconst getChildColumns = (column) => (column.children ? chain(getChildColumns, column.children) : [column]);\n\nconst isColumnSelected = (selectedColumns, column) => {\n const childColumns = getChildColumns(column);\n const isColumnSelected = (column) => selectedColumns.includes(column.id);\n return isGroupColumn(column) ? childColumns.every(isColumnSelected) : childColumns.some(isColumnSelected);\n};\n\nexport {buildColumnItems, getChildColumns, isGroupColumn, isColumnSelected};\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 i18n from 'ui-i18n';\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';\nimport {useStyles} from './styles';\n\ntype Props = {\n interval: [number, string];\n onChange: ([number, string]) => void;\n onFocus?: () => void;\n};\n\nconst periods = [\n i18n.text('minutes'),\n i18n.text('hours'),\n i18n.text('days'),\n i18n.text('weeks'),\n i18n.text('months'),\n i18n.text('years')\n];\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(unit)}}\n options={periods.map((value) => ({\n value,\n label: capitalize(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 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 React from 'react';\n\nconst SvgAttributesList: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width={256} height={256} viewBox=\"0 0 256 256\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <circle cx={128} cy={128} r={128} fill=\"#0072CE\" fillOpacity={0.1} />\n <mask\n id=\"AttributesList_svg__a\"\n style={{\n maskType: 'alpha'\n }}\n maskUnits=\"userSpaceOnUse\"\n x={0}\n y={0}\n width={256}\n height={256}\n >\n <circle cx={128} cy={128} r={128} fill=\"#fff\" />\n </mask>\n <g mask=\"url(#AttributesList_svg__a)\">\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M-16 9h256v247H-16V9z\"\n fill=\"url(#AttributesList_svg__b)\"\n />\n <path\n opacity={0.05}\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M187.761 56.865l58.639 58.639v148.871H93.383L52 225.083V56.865h135.761z\"\n fill=\"url(#AttributesList_svg__c)\"\n />\n <path\n opacity={0.06}\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M47 58h202a7 7 0 017 7v157a7 7 0 01-7 7H47a7 7 0 01-7-7V65a7 7 0 017-7z\"\n fill=\"#000\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M50 56h201a5 5 0 015 5v157a5 5 0 01-5 5H50a5 5 0 01-5-5V61a5 5 0 015-5z\"\n fill=\"#fff\"\n />\n <path\n opacity={0.8}\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M105.376 72.635a3 3 0 013-3H150a3 3 0 110 6h-41.624a3 3 0 01-3-3z\"\n fill=\"#B6C7DB\"\n />\n <path\n opacity={0.2}\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M105 84.635a3 3 0 013-3h64.205a3 3 0 110 6H108a3 3 0 01-3-3z\"\n fill=\"#979797\"\n />\n <path\n opacity={0.8}\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M105.376 163a3 3 0 013-3H150a3 3 0 110 6h-41.624a3 3 0 01-3-3z\"\n fill=\"#B6C7DB\"\n />\n <path\n opacity={0.2}\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M105 175a3 3 0 013-3h64.205a3 3 0 110 6H108a3 3 0 01-3-3z\"\n fill=\"#979797\"\n />\n <path\n opacity={0.8}\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M105.376 193a3 3 0 013-3H190a3 3 0 110 6h-81.624a3 3 0 01-3-3z\"\n fill=\"#B6C7DB\"\n />\n <path\n opacity={0.2}\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M105 205a3 3 0 013-3h74.205a3 3 0 110 6H108a3 3 0 01-3-3z\"\n fill=\"#979797\"\n />\n <path\n opacity={0.8}\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M138.376 103a3 3 0 013-3H223a3 3 0 110 6h-81.624a3 3 0 01-3-3z\"\n fill=\"#B6C7DB\"\n />\n <path\n opacity={0.2}\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M138 115a3 3 0 013-3h64.205a3 3 0 110 6H141a3 3 0 01-3-3z\"\n fill=\"#979797\"\n />\n <circle cx={67} cy={79} r={9} fill=\"#B6C7DB\" />\n <circle cx={67} cy={79} r={9} fill=\"#B6C7DB\" />\n <circle cx={120} cy={106} r={6} fill=\"#B6C7DB\" />\n <circle cx={120} cy={136} r={6} fill=\"#B6C7DB\" />\n <circle cx={67} cy={169} r={9} fill=\"#B6C7DB\" />\n <circle cx={67} cy={199} r={9} fill=\"#B6C7DB\" />\n <path\n opacity={0.8}\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M138.376 133a3 3 0 013-3H223a3 3 0 110 6h-81.624a3 3 0 01-3-3z\"\n fill=\"#B6C7DB\"\n />\n <path\n opacity={0.2}\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M138 145a3 3 0 013-3h74.205a3 3 0 110 6H141a3 3 0 01-3-3z\"\n fill=\"#979797\"\n />\n <path\n opacity={0.2}\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M92.514 108v-8h-2v40.365h11.178v-2h-9.178V110h9.178v-2h-9.178z\"\n fill=\"#2B98F0\"\n />\n <path\n opacity={0.54}\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M95.071 77l-3.535 3.535L88 77h7.071z\"\n fill=\"#000\"\n />\n <path\n opacity={0.6}\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M50 22h186a6 6 0 016 6v18a6 6 0 01-6 6H50a6 6 0 01-6-6V28a6 6 0 016-6z\"\n fill=\"#fff\"\n />\n <path\n opacity={0.2}\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M58 37a6 6 0 016-6h70a6 6 0 110 12H64a6 6 0 01-6-6zm90 0a6 6 0 016-6h10a6 6 0 110 12h-10a6 6 0 01-6-6z\"\n fill=\"#979797\"\n />\n </g>\n <defs>\n <linearGradient\n id=\"AttributesList_svg__b\"\n x1={-16}\n y1={9}\n x2={-16}\n y2={256}\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#FAFAFA\" stopOpacity={0.01} />\n <stop offset={1} stopColor=\"#F4F4F4\" />\n </linearGradient>\n <linearGradient\n id=\"AttributesList_svg__c\"\n x1={266.117}\n y1={181.111}\n x2={154.882}\n y2={77.681}\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopOpacity={0.01} />\n <stop offset={1} />\n </linearGradient>\n </defs>\n </svg>\n );\n};\n\nexport default SvgAttributesList;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles((theme) => ({\n root: {\n display: 'flex',\n flex: '1 1 auto',\n flexWrap: 'nowrap',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n overflow: 'auto',\n height: '100%',\n minHeight: '350px',\n boxSizing: 'border-box',\n padding: '40px'\n },\n logo: {\n width: '190px',\n height: '190px'\n },\n textBox: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n maxWidth: 400,\n marginTop: '24px'\n },\n text: {\n color: theme.palette.text.primary,\n fontSize: '20px',\n fontWeight: 500,\n lineHeight: '23px',\n textAlign: 'center'\n },\n secondaryText: {\n color: theme.palette.text.primary,\n fontSize: '14px',\n fontWeight: 'normal',\n lineHeight: '16px',\n letterSpacing: '0.24px',\n textAlign: 'center',\n paddingTop: '8px'\n }\n}));\n","import React from 'react';\nimport {Typography as Typography} from '@material-ui/core';\nimport {AttributesList as AttributesListIcon} from '../../icons';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n IconRenderer?: React.ElementType;\n text: string;\n secondaryText?: string;\n};\n\nconst SidePanelEmptyState = ({IconRenderer = AttributesListIcon, text, secondaryText}: Props) => {\n const styles = useStyles();\n return (\n <div className={styles.root}>\n <IconRenderer className={styles.logo} />\n <div className={styles.textBox}>\n <Typography className={styles.text}>{text}</Typography>\n {secondaryText && <Typography className={styles.secondaryText}>{secondaryText}</Typography>}\n </div>\n </div>\n );\n};\n\nexport default SidePanelEmptyState;\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 {\n filter,\n groupBy,\n ifElse,\n map,\n path,\n pipe,\n propOr,\n values,\n isNil,\n includes,\n reject\n} 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';\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}: 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 i18n from 'ui-i18n';\nimport {DateRangeTypes} from '../../../types';\n\nexport const dateRangeTypeOptions = [DateRangeTypes.WITHIN, DateRangeTypes.AGO, DateRangeTypes.BETWEEN];\n\nexport const getDateRangeTypeLabel = (type: DateRangeTypes) => {\n const labels = {\n [DateRangeTypes.WITHIN]: i18n.text('Within the last'),\n [DateRangeTypes.AGO]: i18n.text('More than'),\n [DateRangeTypes.BETWEEN]: i18n.text('Date range')\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 title: {\n paddingBottom: '10px',\n paddingLeft: '5px',\n fontSize: '14px'\n },\n intervalContainer: {\n display: 'flex',\n justifyContent: 'space-between'\n },\n typeInput: {\n width: 160,\n marginRight: 10\n }\n});\n","import React, {useState} from 'react';\nimport i18n from 'ui-i18n';\nimport classnames from 'classnames';\nimport {Typography as Typography} from '@material-ui/core';\nimport SimpleDropDownSelector from '../../SimpleDropDownSelector/SimpleDropDownSelector';\nimport {dateRangeTypeOptions, getDateRangeTypeLabel} from './utils';\nimport DateIntervalSelector from '../../DateIntervalSelector/DateIntervalSelector';\nimport {useDidUpdateEffect} from '../../../hooks';\nimport CustomDateRangeEditor from '../../editors/CustomDateRangeEditor/CustomDateRangeEditor';\nimport {DateRangeFilter, DateRangeTypes} from '../../../types';\nimport {useStyles} from './styles';\n\nconst emptyDates: [Date, Date] = [null, null];\nconst emptyInterval: [number, string] = [null, 'hours'];\n\ntype Props = {\n value: DateRangeFilter;\n onChange: (range: DateRangeFilter) => void;\n className?: string;\n};\n\nconst DateRangeSelector = ({value, onChange, className}: Props) => {\n const styles = useStyles();\n\n const isIntervalType = (type: DateRangeTypes) => type === DateRangeTypes.WITHIN || type === DateRangeTypes.AGO;\n const isBetweenType = (type: DateRangeTypes) => type === DateRangeTypes.BETWEEN;\n\n const initDatesInterval = isBetweenType(value?.type) ? value.period : emptyDates;\n const initInterval = isIntervalType(value?.type) ? value.period : emptyInterval;\n\n const [datesInterval, setDatesInterval] = useState(initDatesInterval as [Date, Date]);\n const [interval, setInterval] = useState(initInterval as [number, string]);\n\n const selectedType = value?.type || DateRangeTypes.WITHIN;\n\n const getCurrentPeriodByType = (type: DateRangeTypes) => {\n if (isIntervalType(type)) {\n return interval;\n } else if (isBetweenType(type)) {\n return datesInterval;\n }\n };\n\n const changeType = ({value: type}: {value: DateRangeTypes}) => {\n if (value?.type !== type) {\n onChange({period: getCurrentPeriodByType(type), type});\n }\n };\n const changePeriod = (period) => {\n onChange({type: selectedType, period});\n };\n\n useDidUpdateEffect(() => {\n if (value) {\n if (isIntervalType(value.type)) {\n setInterval(value.period as [number, string]);\n } else if (isBetweenType(value.type)) {\n setDatesInterval(value.period as [Date, Date]);\n }\n } else {\n setDatesInterval(emptyDates);\n setInterval(emptyInterval);\n }\n }, [value]);\n\n return (\n <div className={classnames(styles.root, className)}>\n <Typography className={styles.title} variant={'subtitle1'}>\n {i18n.text('Date')}\n </Typography>\n <div className={styles.intervalContainer}>\n <SimpleDropDownSelector\n label={''}\n className={styles.typeInput}\n value={{\n value: selectedType,\n label: getDateRangeTypeLabel(selectedType)\n }}\n options={dateRangeTypeOptions.map((option) => ({\n value: option,\n label: getDateRangeTypeLabel(option)\n }))}\n onChange={changeType}\n />\n {isIntervalType(selectedType) ? (\n <DateIntervalSelector interval={interval} onChange={changePeriod} />\n ) : (\n <CustomDateRangeEditor values={datesInterval} onChange={changePeriod} />\n )}\n </div>\n </div>\n );\n};\n\nexport default DateRangeSelector;\n","import i18n from 'ui-i18n';\nimport {HistoryActivityType} from '../types/HistoryFilter';\n\nexport const historyActivityOptions = [\n HistoryActivityType.UPDATE,\n HistoryActivityType.MERGE,\n HistoryActivityType.UNMERGE\n];\n\nexport const getHistoryActivityLabel = (type: HistoryActivityType) => {\n const labels = {\n [HistoryActivityType.UPDATE]: i18n.text('Update'),\n [HistoryActivityType.MERGE]: i18n.text('Merge'),\n [HistoryActivityType.UNMERGE]: i18n.text('Unmerge')\n };\n return labels[type] || '';\n};\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 valueContainer: {\n overflowY: 'auto',\n height: 44\n },\n option: {\n fontSize: '14px',\n height: '32px'\n }\n});\n","import React from 'react';\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 {getHistoryActivityLabel, historyActivityOptions} from './utils';\nimport {HistoryActivityType} from '../types/HistoryFilter';\nimport {customStyles, useStyles} from './styles';\n\ntype Props = {\n selectedHistoryActivityTypes: HistoryActivityType[];\n onChange: (activities: HistoryActivityType[]) => void;\n className?: string;\n};\n\nconst HistoryActivitySelector = ({selectedHistoryActivityTypes, onChange, className}: Props) => {\n const styles = useStyles();\n const valueToOption = (value: HistoryActivityType) => ({value, label: getHistoryActivityLabel(value)});\n const prepareValues = (values: HistoryActivityType[]) => values.map(valueToOption);\n\n const options = prepareValues(historyActivityOptions);\n\n return (\n <div className={classnames(styles.root, className)}>\n <Typography className={styles.title} variant={'subtitle1'}>\n {i18n.text('Activity')}\n </Typography>\n <MultiSelect\n value={prepareValues(selectedHistoryActivityTypes)}\n onChange={pipe(defaultTo([]), pluck('value'), onChange)}\n options={options}\n TextFieldProps={{classes: {root: styles.dropDownInput}}}\n components={{\n DropdownIndicator: DropdownIndicatorWithIconButton\n }}\n styles={customStyles}\n classes={styles}\n menuPlacement=\"bottom\"\n menuPortalTarget={document.body}\n />\n </div>\n );\n};\n\nexport default HistoryActivitySelector;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n popup: {\n width: 500,\n minHeight: 500,\n overflowY: 'hidden',\n display: 'flex',\n flexDirection: 'column'\n },\n filterContainer: {\n padding: 20,\n height: 410,\n display: 'flex',\n flexDirection: 'column'\n },\n filterContainerScrollable: {\n overflowY: 'auto'\n },\n filterItem: {\n marginTop: 15\n },\n filterControls: {\n display: 'flex',\n padding: '10px 12px',\n borderTop: 'solid 1px rgba(0, 0, 0, 0.12)'\n },\n clearButton: {\n marginRight: 'auto'\n },\n input: {\n height: '100%',\n paddingLeft: '12px',\n paddingRight: '8px'\n }\n});\n","import React, {useCallback, useEffect, useRef, useState} from 'react';\nimport i18n from 'ui-i18n';\nimport {curry, dissoc} from 'ramda';\nimport FilterListIcon from '@material-ui/icons/FilterList';\nimport {Button as Button} from '@material-ui/core';\nimport {Popover as Popover} from '@material-ui/core';\nimport {Typography as Typography} from '@material-ui/core';\nimport {TEntityType} from '@reltio/mdm-sdk';\nimport {SmallIconButton} from '../../SmallIconButton';\nimport {HistoryFilter} from '../types';\nimport {isDateRangeValid} from '../utils/filters';\nimport UserSelector from '../../UserSelector/UserSelector';\nimport AttributeSelector from '../../AttributeSelector/AttributeSelector';\nimport DateRangeSelector from '../DateRangeSelector/DateRangeSelector';\nimport HistoryActivitySelector from '../HistoryActivitySelector/HistoryActivitySelector';\n\nimport {DEFAULT_HISTORY_FILTER, isDefaultFilter} from '../hooks/useHistory';\nimport {useStyles} from './styles';\n\ntype Props = {\n className?: string;\n filter: HistoryFilter;\n onApplyFilter: (filter: HistoryFilter) => void;\n entityType: TEntityType;\n};\n\nconst HistoryFilterButton = ({className, filter, onApplyFilter, entityType}: Props) => {\n const styles = useStyles();\n const buttonRef = useRef();\n const [isOpen, setIsOpen] = useState(false);\n const [currentValue, setCurrentValue] = useState<HistoryFilter>(filter);\n const {activities = [], attributes = [], dateRange = null, users = []} = currentValue || {};\n\n const buttonColor = isDefaultFilter(filter) ? 'inherit' : 'primary';\n\n useEffect(() => {\n if (isOpen) {\n setCurrentValue(filter);\n }\n }, [filter, isOpen]);\n\n const handlePropChange = curry((propName: string, value: unknown) => {\n setCurrentValue((filterValue) => ({\n ...filterValue,\n [propName]: value\n }));\n });\n\n const togglePopup = useCallback(() => {\n setIsOpen((open) => !open);\n }, []);\n\n const applyButtonHandler = useCallback(() => {\n dateRange && isDateRangeValid(dateRange)\n ? onApplyFilter(currentValue)\n : onApplyFilter(dissoc('dateRange', currentValue));\n togglePopup();\n }, [currentValue, dateRange, onApplyFilter, togglePopup]);\n\n const clearAllButtonHandler = useCallback(() => {\n setCurrentValue({...DEFAULT_HISTORY_FILTER});\n }, []);\n\n return (\n <>\n <SmallIconButton\n ref={buttonRef}\n color={buttonColor}\n icon={FilterListIcon}\n size=\"L\"\n onClick={togglePopup}\n className={className}\n />\n <Popover\n classes={{paper: styles.popup}}\n open={isOpen}\n anchorEl={buttonRef.current}\n onClose={togglePopup}\n anchorOrigin={{\n vertical: 'bottom',\n horizontal: 'right'\n }}\n transformOrigin={{\n vertical: 'top',\n horizontal: 'right'\n }}\n >\n <div className={styles.filterContainer}>\n <Typography variant=\"h6\">{i18n.text('Filter')}</Typography>\n <div className={styles.filterContainerScrollable}>\n <DateRangeSelector\n value={dateRange}\n onChange={handlePropChange('dateRange')}\n className={styles.filterItem}\n />\n <UserSelector\n selectedUsers={users}\n onChange={handlePropChange('users')}\n className={styles.filterItem}\n />\n <HistoryActivitySelector\n selectedHistoryActivityTypes={activities}\n onChange={handlePropChange('activities')}\n className={styles.filterItem}\n />\n <AttributeSelector\n selectedAttributes={attributes}\n entityType={entityType}\n onChange={handlePropChange('attributes')}\n className={styles.filterItem}\n title={i18n.text('Attribute updated')}\n />\n </div>\n </div>\n <div className={styles.filterControls}>\n <Button onClick={clearAllButtonHandler} className={styles.clearButton}>\n {i18n.text('Clear all')}\n </Button>\n <Button onClick={togglePopup}>{i18n.text('Cancel')}</Button>\n <Button color=\"primary\" onClick={applyButtonHandler}>\n {i18n.text('Apply')}\n </Button>\n </div>\n </Popover>\n </>\n );\n};\n\nexport default HistoryFilterButton;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n menuItem: {\n minHeight: '32px'\n },\n menuText: {\n fontSize: '13px',\n lineHeight: '15px',\n letterSpacing: 0,\n marginLeft: '30px'\n },\n checkIcon: {\n position: 'absolute',\n color: 'rgba(0, 0, 0, 0.54)'\n }\n});\n","import React, {forwardRef} from 'react';\nimport {MenuItem as MenuItem} from '@material-ui/core';\nimport {Typography as Typography} from '@material-ui/core';\nimport CheckIcon from '@material-ui/icons/Check';\nimport {noop} from '../../../core';\nimport {useStyles} from './styles';\n\ntype Item = {\n text: string;\n selected: boolean;\n onClick: (e) => void;\n};\n\ntype Props = {\n item: Item;\n onMenuClose?: () => void;\n};\n\nconst MenuItemRenderer = forwardRef(({item, onMenuClose = noop}: Props, ref: React.Ref<HTMLLIElement>) => {\n const styles = useStyles();\n const {text, selected, onClick} = item;\n const handleClick = (e) => {\n onMenuClose();\n onClick(e);\n };\n\n return (\n <MenuItem classes={{root: styles.menuItem}} onClick={handleClick} ref={ref}>\n {selected && <CheckIcon className={styles.checkIcon} />}\n <Typography classes={{root: styles.menuText}}>{text}</Typography>\n </MenuItem>\n );\n});\nMenuItemRenderer.displayName = 'MenuItemRenderer';\n\nexport default MenuItemRenderer;\n","import React from 'react';\nimport {useDispatch, useSelector} from 'react-redux';\nimport i18n from 'ui-i18n';\nimport MoreVertIcon from '@material-ui/icons/MoreVert';\nimport mdmModule, {HistoryMode, profile} from '@reltio/mdm-module';\nimport {SmallIconButton} from '../../SmallIconButton';\nimport DropDownMenuButton from '../../DropDownMenuButton/DropDownMenuButton';\nimport MenuItemRenderer from './MenuItemRenderer';\n\nconst HistoryMenuButton = () => {\n const mode = useSelector(mdmModule.selectors.getHistoryMode);\n const dispatch = useDispatch();\n const handleModeChange = (selectedMode: HistoryMode) => {\n dispatch(profile.history.actions.setHistoryMode(selectedMode));\n };\n const menuItems = [\n {\n text: i18n.text('Compare to Current view'),\n selected: mode === HistoryMode.Current,\n onClick: () => handleModeChange(HistoryMode.Current)\n },\n {\n text: i18n.text('Compare to Previous view'),\n selected: mode === HistoryMode.Previous,\n onClick: () => handleModeChange(HistoryMode.Previous)\n }\n ];\n\n return (\n <DropDownMenuButton\n MenuItemRenderer={MenuItemRenderer}\n buttonComponent={SmallIconButton}\n buttonProps={{\n icon: MoreVertIcon,\n size: 'L'\n }}\n menuId={'history-menu'}\n menuItems={menuItems}\n />\n );\n};\n\nexport default HistoryMenuButton;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n root: {\n display: 'flex',\n flex: 1,\n alignItems: 'center'\n },\n icon: {\n margin: 4\n },\n divider: {\n backgroundColor: 'rgba(0,0,0,0.12)',\n margin: '3px 19px'\n },\n count: {\n fontSize: 14\n },\n filterButton: {\n marginRight: '-4px'\n }\n});\n","import React from 'react';\nimport i18n from 'ui-i18n';\nimport {Divider as Divider} from '@material-ui/core';\nimport {Typography as Typography} from '@material-ui/core';\nimport {isNil} from 'ramda';\nimport {TEntityType} from '@reltio/mdm-sdk';\nimport Spacer from '../../Spacer/Spacer';\nimport HistoryFilterButton from '../HistoryFilterButton/HistoryFilterButton';\nimport HistoryMenuButton from '../HistoryMenuButton/HistoryMenuButton';\nimport {HistoryFilter} from '../types';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n total?: number;\n entityType: TEntityType;\n filter: HistoryFilter;\n onApplyFilter: (value: HistoryFilter) => void;\n};\n\nconst HistoryHeader = ({total, entityType, filter, onApplyFilter}: Props) => {\n const styles = useStyles();\n return (\n <div className={styles.root}>\n <Typography variant=\"h6\">{i18n.text('History')}</Typography>\n {!isNil(total) && (\n <>\n <Divider orientation=\"vertical\" flexItem className={styles.divider} />\n <Typography variant=\"body1\" color=\"textSecondary\" className={styles.count}>\n {total === 1\n ? i18n.text('${count} contributing profile', {count: total})\n : i18n.text('${count} contributing profiles', {count: total})}\n </Typography>\n </>\n )}\n <Spacer />\n <HistoryFilterButton\n className={styles.filterButton}\n entityType={entityType}\n filter={filter}\n onApplyFilter={onApplyFilter}\n />\n <HistoryMenuButton />\n </div>\n );\n};\n\nexport default HistoryHeader;\n","import React from 'react';\nimport i18n from 'ui-i18n';\nimport SidePanelEmptyState from '../../SidePanelEmptyState/SidePanelEmptyState';\n\nconst HistoryPanelEmptyState = () => (\n <SidePanelEmptyState\n text={i18n.text('History in the making')}\n secondaryText={i18n.text('When you create an event or perform an activity, it will show up here.')}\n />\n);\n\nexport default HistoryPanelEmptyState;\n","import {makeStyles} from '@material-ui/core/styles';\n\ntype Type = {\n color?: string;\n};\n\nexport const useStyles = makeStyles(() => ({\n historyRow: {\n position: 'relative',\n padding: '8px 12px 16px',\n cursor: 'pointer'\n },\n selected: {\n background: 'rgba(0,0,0,0.05)',\n '&:before': {\n content: '\"\"',\n background: 'rgba(0,0,0,0.05)',\n width: '100%',\n height: '100%',\n position: 'absolute',\n left: '-100%',\n top: 0\n }\n },\n rowHeader: {\n display: 'flex',\n position: 'relative'\n },\n badge: ({color}: Type) => ({\n position: 'absolute',\n width: '2px',\n height: '100%',\n left: '-9px',\n pointerEvents: 'none',\n background: color,\n '&:before': {\n height: '100%',\n width: '3px',\n content: '\"\"',\n left: '-3px',\n background: color,\n position: 'absolute',\n opacity: 0.06\n }\n }),\n title: {\n color: 'rgba(0,0,0,0.87)',\n fontSize: '13px',\n letterSpacing: 0,\n lineHeight: '16px',\n fontWeight: 400,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n '&.bold': {\n fontWeight: 500\n }\n },\n date: {\n marginLeft: 'auto',\n color: 'rgba(0,0,0,0.54)',\n fontSize: '11px',\n letterSpacing: 0,\n lineHeight: '16px'\n },\n user: {\n color: 'rgba(0,0,0,0.38)',\n fontSize: '12px',\n letterSpacing: 0,\n lineHeight: '14px'\n }\n}));\n","import React from 'react';\nimport classnames from 'classnames';\nimport i18n from 'ui-i18n';\nimport {getContributorColor, HistoryChange} from '@reltio/mdm-sdk';\nimport {Typography as Typography} from '@material-ui/core';\nimport {ActivityTypes} from '../../activityLog/types/ActivityTypes';\nimport {getActivityLabel} from '../../activityLog/utils/activities';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n change: HistoryChange;\n isCurrent?: boolean;\n isSelected: boolean;\n onClick: () => void;\n};\n\nconst HistoryRow = ({change, isCurrent, isSelected, onClick}: Props) => {\n const {uri, type, matchGroups, user, timestamp} = change;\n const color = getContributorColor(uri);\n const styles = useStyles({color});\n return (\n <div className={classnames(styles.historyRow, {[styles.selected]: isSelected})} onClick={onClick}>\n <div className={styles.rowHeader}>\n <div className={styles.badge} />\n <Typography className={classnames(styles.title, {bold: isCurrent})}>\n {isCurrent ? i18n.text('Current view') : getActivityLabel(type as ActivityTypes)}\n </Typography>\n {!isCurrent && <Typography className={styles.date}>{i18n.date(timestamp, 'L LT')}</Typography>}\n </div>\n {matchGroups && (\n <Typography className={styles.title}>\n {i18n.text('Match rule:')} {matchGroups.join(', ')}\n </Typography>\n )}\n <Typography className={styles.user}>{user}</Typography>\n </div>\n );\n};\n\nexport default HistoryRow;\n","import {HistoryChangeTypes} from '../types/HistoryChangeTypes';\n\nexport const getHistoryLinkCurve = (x: number, y: number, toX: number, toY: number) => {\n const isUp = y > toY;\n const isLeft = x < toX;\n const curveStartX = isLeft ? toX - 12 : toX + 12;\n const curveCenterY = isUp ? -6 : 6;\n const curveEndY = isUp ? -12 : 12;\n const curve = isLeft ? `c 6 0 12 ${curveCenterY} 12` : `c -6 0 -12 ${curveCenterY} -12`;\n return `M${x} ${y} L${curveStartX} ${y} ${curve} ${curveEndY} L${toX} ${toY}`;\n};\n\nexport const isFakeHistoryType = (type: string) =>\n type === HistoryChangeTypes.FAKE_FILTERED_INCOMING || type === HistoryChangeTypes.FAKE_FILTERED_OUTGOING;\n","import React from 'react';\nimport {getHistoryLinkCurve} from './helpers';\n\ntype Props = {\n x: number;\n y: number;\n toX: number;\n toY: number;\n color: string;\n isDashed?: boolean;\n};\n\nconst HistoryLink = ({x, y, toX, toY, color, isDashed}: Props) => {\n const lineData = getHistoryLinkCurve(x, y, toX, toY);\n return (\n <path\n d={lineData}\n stroke={color}\n strokeWidth={2}\n fill={'none'}\n strokeDasharray={isDashed ? '3,3' : undefined}\n />\n );\n};\n\nexport default HistoryLink;\n","import React, {forwardRef} from 'react';\n\ntype Props = {\n x: number;\n y: number;\n color: string;\n isDashed?: boolean;\n isCollapsed?: boolean;\n showCollapseIcon?: boolean;\n showLine?: boolean;\n} & React.SVGProps<SVGGElement>;\n\nexport const BUMP_RADIUS = 3;\nexport const LINE_MARGIN = 4;\n\nconst HistoryCircle = ({x, y, color, isDashed, isCollapsed, showCollapseIcon, showLine, ...otherProps}: Props, ref) => {\n const radius = showCollapseIcon ? BUMP_RADIUS * 2 : BUMP_RADIUS;\n return (\n <g {...otherProps} ref={ref}>\n {showLine && (\n <rect\n id=\"line\"\n x={x - radius - LINE_MARGIN}\n y={y - radius - LINE_MARGIN}\n width={radius * 2 + LINE_MARGIN * 2}\n height={2}\n fill={color}\n />\n )}\n <circle\n cx={x}\n cy={y}\n r={radius}\n fill={isDashed ? '#fff' : color}\n stroke={color}\n strokeDasharray={isDashed ? '1,1' : undefined}\n strokeWidth={2}\n />\n {showCollapseIcon && (\n <g id=\"icon\">\n <rect x={x - 4} y={y - 1} width={8} height={2} fill=\"#fff\" />\n {isCollapsed && <rect x={x - 1} y={y - 4} width={2} height={8} fill=\"#fff\" />}\n </g>\n )}\n </g>\n );\n};\n\nexport default forwardRef(HistoryCircle);\n","import React, {memo} from 'react';\nimport {getContributorColor} from '@reltio/mdm-sdk';\nimport HistoryLink from './HistoryLink';\nimport HistoryCircle from './HistoryCircle';\nimport {HistoryData, HistoryChangeTypes} from '../types';\nimport {isFakeHistoryType} from './helpers';\nimport {withTooltip} from '../../../HOCs';\n\nconst COL_WIDTH = 16;\nconst COL_MARGIN = 24;\nconst ROW_MARGIN = 16;\nconst ROW_HEIGHT = 16;\n\nexport const HistoryCircleWithTooltip = withTooltip(HistoryCircle);\n\ntype Props = {\n graphData: HistoryData;\n onHistoryCircleMouseOver?: (uri: string, timestamp: number, index: number) => void;\n};\n\nconst HistoryGraph = ({graphData, onHistoryCircleMouseOver}: Props) => {\n const {historyLanes, rows} = graphData;\n const rowPositions = [ROW_MARGIN];\n\n const {links, rowLines, circles} = rows.reduce(\n (acc, {uri, height, uris, type, fakeType, index, timestamp, label}, i) => {\n const x = historyLanes[uri].index * COL_WIDTH + COL_MARGIN;\n const y = rowPositions[i];\n rowPositions.push(y + height);\n\n const hasFakeType = isFakeHistoryType(fakeType);\n const circleUri = hasFakeType ? uris[0] : uri;\n const isCollapsed = !uris?.some((uri) => historyLanes[uri]);\n acc.circles.push(\n <HistoryCircleWithTooltip\n tooltipTitle={label}\n tooltipPlacement=\"top\"\n onMouseOver={\n onHistoryCircleMouseOver ? () => onHistoryCircleMouseOver(uri, timestamp, index) : undefined\n }\n key={`circle-${circleUri}-${i}`}\n x={x}\n y={y}\n color={getContributorColor(circleUri)}\n isDashed={hasFakeType}\n isCollapsed={isCollapsed}\n showCollapseIcon={!!uris}\n showLine={fakeType === HistoryChangeTypes.FAKE_NAVIGATE_PROFILE}\n />\n );\n\n acc.rowLines.push(\n <rect\n key={`${circleUri}-${index}`}\n x={x}\n y={y - ROW_HEIGHT / 2}\n width={'100%'}\n height={ROW_HEIGHT}\n fill={getContributorColor(circleUri)}\n opacity={0.06}\n />\n );\n\n const isUpRight = type === HistoryChangeTypes.ENTITIES_SPLITTED;\n uris?.forEach((contributorUri) => {\n const contributorLane = historyLanes[contributorUri];\n if (!contributorLane) return;\n const rowHeight = rows[i].height;\n const toX = contributorLane.index * COL_WIDTH + COL_MARGIN;\n const toY = isUpRight ? y - rowHeight : y + rowHeight;\n if (x !== toX)\n acc.links.push(\n <HistoryLink\n key={`link-${contributorUri}-${index}`}\n x={x}\n y={y}\n toX={toX}\n toY={toY}\n isDashed={isFakeHistoryType(fakeType)}\n color={getContributorColor(contributorUri)}\n />\n );\n });\n\n return acc;\n },\n {links: [], circles: [], rowLines: []}\n );\n\n const width = Object.keys(historyLanes).length * COL_WIDTH + COL_MARGIN;\n const height = rowPositions[rowPositions.length - 1] - ROW_MARGIN;\n\n Object.entries(historyLanes).forEach(([contributorUri, contributorLane]) => {\n const x = contributorLane.index * COL_WIDTH + COL_MARGIN;\n contributorLane.lifeTime.forEach(({start, end}, i) => {\n if (rows[end?.index]?.type === HistoryChangeTypes.ENTITIES_SPLITTED) return;\n const startIndex = start?.type === HistoryChangeTypes.ENTITIES_SPLITTED ? start?.index - 1 : start?.index;\n const endIndex =\n end?.type === HistoryChangeTypes.ENTITIES_MERGED_MANUALLY ||\n end?.type === HistoryChangeTypes.ENTITIES_MERGED\n ? end?.index + 1\n : end?.index;\n const startY = rowPositions[startIndex] || rowPositions[rowPositions.length - 2];\n const endY = rowPositions[endIndex] || ROW_MARGIN;\n if (startY <= endY) return;\n const color = getContributorColor(contributorUri);\n if (!end && contributorLane.index > 0) {\n circles.push(\n <HistoryCircle key={`initCircle-${contributorUri}-${i}`} x={x} y={endY} color={color} showLine />\n );\n }\n links.unshift(\n <path\n key={`line-${contributorUri}-${i}`}\n d={`M${x} ${startY} L${x} ${endY}`}\n stroke={color}\n strokeWidth={2}\n />\n );\n });\n });\n\n return (\n <svg className=\"chart\" width={width} height={height}>\n <g id=\"rowLines\">{rowLines}</g>\n <g id=\"links\">{links}</g>\n <g id=\"circles\">{circles}</g>\n </svg>\n );\n};\n\nexport default memo(HistoryGraph);\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n historyTree: {\n display: 'grid',\n gridTemplateColumns: 'auto 1fr',\n overflowY: 'auto'\n },\n graph: {\n overflowX: 'auto',\n overflowY: 'hidden'\n },\n history: {\n minWidth: 344\n },\n buttonContainer: {\n gridColumnStart: 1,\n gridColumnEnd: 3,\n padding: '8px 16px'\n },\n shadow: {\n boxShadow: 'inset -8px 0px 5px -5px rgba(0,0,0,0.1)'\n }\n});\n","import React, {useCallback, useEffect, useRef, useState} from 'react';\nimport {useDispatch, useSelector} from 'react-redux';\nimport ReactResizeDetector from 'react-resize-detector';\nimport i18n from 'ui-i18n';\nimport {isNil, uniqBy, prop, identity} from 'ramda';\nimport classnames from 'classnames';\nimport {getEntity, Mode, Metadata, getCrosswalkType} from '@reltio/mdm-sdk';\nimport mdm, {HistoryEvent, profile} from '@reltio/mdm-module';\nimport {HistoryData, HistoryRowData} from '../types';\nimport {Button as Button} from '@material-ui/core';\nimport HistoryRow from '../HistoryRow/HistoryRow';\nimport HistoryGraph from '../HistoryGraph/HistoryGraph';\nimport LinearLoadIndicator from '../../LinearLoadIndicator/LinearLoadIndicator';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n historyData: HistoryData;\n canLoadMore: boolean;\n onLoadMore: () => void;\n isLoading: boolean;\n entityUri: string;\n historyEvent: HistoryEvent;\n findPreviousChange: (index: number, uri: string) => HistoryRowData;\n};\n\nconst HistoryTree = ({\n historyData,\n isLoading,\n canLoadMore,\n onLoadMore,\n entityUri,\n historyEvent,\n findPreviousChange\n}: Props) => {\n const styles = useStyles();\n const dispatch = useDispatch();\n const isEditableMode = useSelector(mdm.selectors.getIsEditableMode);\n const metadata: Metadata = useSelector(mdm.selectors.getMetadata);\n\n const [graphData, setGraphData] = useState({historyLanes: {}, rows: []});\n const [isScrollable, setIsScrollable] = useState(false);\n const [selectedIndex, setSelectedIndex] = useState(-1);\n\n useEffect(() => {\n if (isNil(historyEvent)) {\n setSelectedIndex(0);\n return;\n }\n const isCurrentEventChange = (change: HistoryRowData) =>\n change?.uri === (historyEvent?.overrideUri || entityUri) && change?.timestamp === historyEvent?.aStamp;\n const selectedChangeByIndex = selectedIndex !== -1 ? historyData.rows[selectedIndex] : null;\n const currentEventChangeIndex = historyData.rows.findIndex((change) => isCurrentEventChange(change));\n setSelectedIndex(isCurrentEventChange(selectedChangeByIndex) ? selectedIndex : currentEventChangeIndex);\n }, [historyData.rows, historyEvent]);\n\n const graphRef = useRef(null);\n const rowsRef = useCallback(\n (node) => {\n if (!isNil(node)) {\n const rows = historyData.rows?.map((item, i) => ({...item, height: node.childNodes[i]?.clientHeight}));\n setGraphData({historyLanes: historyData.historyLanes, rows});\n }\n },\n [historyData]\n );\n\n const handleGraphScroll = () => {\n const {scrollWidth, clientWidth, scrollLeft} = graphRef?.current || {};\n setIsScrollable(scrollLeft < scrollWidth - clientWidth);\n };\n\n const handleHistoryCircleMouseOver = (uri, timestamp, index) => {\n if (isNil(graphData.rows[index].label)) {\n const options = {time: timestamp, select: 'crosswalks'} as any;\n getEntity(uri, options).then(({crosswalks}) => {\n const label = crosswalks\n ? uniqBy(prop('type'), crosswalks)\n .map((cw) => {\n const crosswalkType = getCrosswalkType(metadata, cw.type);\n return crosswalkType ? crosswalkType.label : null;\n })\n .filter(identity)\n .join(', ')\n : i18n.text('No data');\n\n setGraphData((prevGraphData) => ({\n ...prevGraphData,\n rows: prevGraphData.rows.map((row) => (row.index === index ? {...row, label} : row))\n }));\n });\n }\n };\n\n const handleHistoryRowClick = (index: number, change: HistoryRowData, isSelected: boolean, isCurrent: boolean) => {\n if (isEditableMode) {\n if (\n window.confirm(i18n.text('Are you sure you want to go in history mode? All your changes will be lost.'))\n ) {\n dispatch(profile.mode.actions.modeUpdated(Mode.Viewing));\n } else {\n return;\n }\n }\n\n if ((isCurrent && !isSelected) || (!isCurrent && isSelected)) {\n dispatch(profile.history.actions.clearHistoryEvent());\n setSelectedIndex(0);\n } else if (!isCurrent && !isSelected) {\n const aChange = findPreviousChange(index - 1, change.uri || entityUri);\n const bChange = findPreviousChange(index, change.uri || entityUri);\n const aStamp = aChange?.timestamp;\n const bStamp = bChange?.timestamp;\n const overrideUri = change?.uri === entityUri ? null : change?.uri;\n dispatch(profile.history.actions.setHistoryEvent({aStamp, bStamp, overrideUri}));\n setSelectedIndex(index);\n }\n };\n\n return (\n <div className={styles.historyTree}>\n {isLoading && <LinearLoadIndicator />}\n <div\n className={classnames(styles.graph, {[styles.shadow]: isScrollable})}\n onScroll={handleGraphScroll}\n ref={graphRef}\n >\n <HistoryGraph onHistoryCircleMouseOver={handleHistoryCircleMouseOver} graphData={graphData} />\n <ReactResizeDetector handleWidth onResize={handleGraphScroll} />\n </div>\n <div ref={rowsRef} className={styles.history}>\n {historyData.rows.map((change, i) => {\n const isSelected = i === selectedIndex;\n const isCurrent = i === 0;\n return (\n <HistoryRow\n key={`row-${i}`}\n change={change}\n isCurrent={isCurrent}\n isSelected={isSelected}\n onClick={() => handleHistoryRowClick(i, change, isSelected, isCurrent)}\n />\n );\n })}\n </div>\n {canLoadMore && (\n <div className={styles.buttonContainer}>\n <Button color=\"primary\" onClick={() => onLoadMore()}>\n {i18n.text('Show more')}\n </Button>\n </div>\n )}\n </div>\n );\n};\n\nexport default HistoryTree;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n root: {\n display: 'flex',\n flexWrap: 'wrap',\n padding: '10px 15px'\n }\n});\n\ntype StylesProps = {\n color: string;\n};\n\nexport const useContributorStyles = makeStyles({\n icon: ({color}: StylesProps) => ({\n boxSizing: 'border-box',\n borderWidth: 2,\n borderStyle: 'solid',\n borderColor: color,\n height: 12,\n width: 12,\n borderRadius: 30,\n transition: 'opacity 0.3s',\n margin: 4\n }),\n active: ({color}: StylesProps) => ({\n backgroundColor: color\n }),\n inactive: {\n backgroundColor: 'white'\n },\n clickable: {\n cursor: 'pointer'\n }\n});\n","import React from 'react';\nimport classnames from 'classnames';\nimport {getContributorColor} from '@reltio/mdm-sdk';\n\nimport {useContributorStyles} from './styles';\n\ntype Props = {\n value: string;\n isSelected?: boolean;\n onClick?: () => void;\n};\n\nconst ContributorItem = ({value, isSelected = true, onClick}: Props) => {\n const color = getContributorColor(value);\n const styles = useContributorStyles({color});\n\n return (\n <div\n className={classnames(styles.icon, {\n [styles.inactive]: !isSelected,\n [styles.active]: isSelected,\n [styles.clickable]: !!onClick\n })}\n onClick={onClick}\n />\n );\n};\n\nexport default ContributorItem;\n","import React from 'react';\nimport classnames from 'classnames';\nimport {without} from 'ramda';\nimport ContributorItem from './ContributorItem';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n values: string[];\n selectedValues: string[];\n onSelectValues: (values: string[]) => void;\n entityUri: string;\n className?: string;\n};\n\nconst ContributorsPanel = ({values, selectedValues, entityUri, onSelectValues, className}: Props) => {\n const styles = useStyles();\n\n const handleClick = (value: string) => {\n if (selectedValues?.includes(value)) {\n onSelectValues(without([value], selectedValues));\n } else {\n onSelectValues([...(selectedValues || []), value]);\n }\n };\n\n return (\n <div className={classnames(styles.root, className)}>\n <ContributorItem value={entityUri} />\n {values?.length > 0 &&\n values.map((value) => (\n <ContributorItem\n key={value}\n value={value}\n isSelected={selectedValues?.includes(value)}\n onClick={() => handleClick(value)}\n />\n ))}\n </div>\n );\n};\n\nexport default ContributorsPanel;\n","import {useMemo} from 'react';\nimport {isNil, pipe, slice, find, curry, drop} from 'ramda';\nimport {HistoryChange} from '@reltio/mdm-sdk';\nimport {HistoryChangeTypes, HistoryLife, HistoryRowData} from './../types';\n\ntype Props = {\n entityUri: string;\n historyChanges: HistoryChange[];\n selectedUris: string[];\n};\n\nexport const useHistoryTree = ({entityUri, historyChanges, selectedUris}: Props) => {\n return useMemo(() => {\n const historyLanes = {[entityUri]: {index: 0, lifeTime: []}};\n const rows = [{user: '', timestamp: 0, uri: entityUri}] as HistoryRowData[];\n\n const checkChange = curry((involvedUris: string | any[], checkInUris: boolean, change: HistoryChange) => {\n const uri = change.uri || entityUri;\n if (involvedUris) {\n if (Array.isArray(involvedUris)) {\n if (change.type !== HistoryChangeTypes.ENTITY_LOST_MERGE) return null;\n if (involvedUris.includes(uri)) {\n return change;\n } else if (checkInUris && change.uris) {\n return involvedUris.some((involvedUri) => change.uris.includes(involvedUri)) ? change : null;\n }\n } else {\n if (uri === involvedUris || (checkInUris && change.uris?.includes(involvedUris))) return change;\n }\n }\n\n return null;\n });\n\n const findNextChange = (index: number, involvedUris: string | any[], checkInUris: boolean) =>\n pipe(drop(index + 1), find(checkChange(involvedUris, checkInUris)))(historyChanges);\n\n const findPreviousChange = (index: number, uri: string) =>\n pipe(slice(index + 1, Infinity), find(checkChange(uri, false)))(rows);\n\n const checkLaneUri = (uri: string) => {\n if (!historyLanes[uri] && (!selectedUris || selectedUris.includes(uri))) {\n historyLanes[uri] = {\n index: Object.keys(historyLanes).length,\n lifeTime: []\n };\n }\n return historyLanes[uri];\n };\n\n const startNewLife = (lifeTime: HistoryLife[], change: HistoryChange) => {\n const currentLife = lifeTime[lifeTime.length - 1];\n if (\n currentLife &&\n (!currentLife.start ||\n (currentLife.start.type === HistoryChangeTypes.ENTITY_CREATED &&\n change.type === HistoryChangeTypes.ENTITIES_SPLITTED))\n ) {\n currentLife.start = change;\n return;\n }\n lifeTime.push({start: change, end: null});\n };\n\n const updateLife = (lifeTime: HistoryLife[], change: HistoryChange) => {\n let shouldAddNewLife = true;\n if (lifeTime.length) {\n const currentLife = lifeTime[lifeTime.length - 1];\n shouldAddNewLife = !(\n (!currentLife.start || currentLife.start.timestamp < change.timestamp) &&\n (!currentLife.end || currentLife.end.timestamp > change.timestamp)\n );\n }\n if (shouldAddNewLife) {\n lifeTime.push({start: null, end: null});\n }\n };\n\n const endLife = (lifeTime: HistoryLife[], change: HistoryChange) => {\n if (lifeTime.length) {\n const currentLife = lifeTime[lifeTime.length - 1];\n if (!currentLife.start) currentLife.start = change;\n }\n lifeTime.push({start: null, end: change});\n };\n\n const checkLifeTime = (lifeTime: HistoryLife[], change: HistoryChange) => {\n switch (change.type) {\n case HistoryChangeTypes.ENTITY_CREATED:\n startNewLife(lifeTime, change);\n break;\n case HistoryChangeTypes.ENTITIES_MERGED_ON_THE_FLY:\n case HistoryChangeTypes.ENTITY_CHANGED:\n updateLife(lifeTime, change);\n break;\n case HistoryChangeTypes.ENTITY_LOST_MERGE:\n case HistoryChangeTypes.ENTITY_REMOVED:\n endLife(lifeTime, change);\n break;\n case HistoryChangeTypes.ENTITIES_SPLITTED:\n updateLife(lifeTime, change);\n change.uris?.forEach((uri) => {\n const relatedLane = historyLanes[uri];\n if (!relatedLane) return;\n const lifeTimeLength = relatedLane.lifeTime.length;\n lifeTimeLength\n ? startNewLife(relatedLane.lifeTime, change)\n : endLife(relatedLane.lifeTime, change);\n\n rows.push({\n uri,\n user: change.user,\n type: change.type,\n fakeType: lifeTimeLength\n ? HistoryChangeTypes.FAKE_UPDATE\n : HistoryChangeTypes.FAKE_NAVIGATE_PROFILE,\n timestamp: change.timestamp\n });\n });\n break;\n case HistoryChangeTypes.ENTITIES_MERGED:\n case HistoryChangeTypes.ENTITIES_MERGED_MANUALLY:\n updateLife(lifeTime, change);\n change.uris?.forEach((uri) => {\n const relatedLane = historyLanes[uri];\n if (relatedLane) endLife(relatedLane.lifeTime, change);\n });\n break;\n }\n };\n\n const postProcessChanges: HistoryChange[] = [];\n historyChanges?.forEach((change, index) => {\n switch (change.type) {\n case HistoryChangeTypes.ENTITIES_SPLITTED:\n if (!findNextChange(index, change.uri || entityUri, false)) {\n return;\n } else {\n const uri = change.uri;\n const involvedUris = change.uris ? [change.uris, uri] : [uri];\n const lostMergeChange = findNextChange(index, involvedUris, true);\n if (lostMergeChange && (!uri || uri === lostMergeChange.uri)) return;\n }\n break;\n case HistoryChangeTypes.ENTITY_LOST_MERGE:\n case HistoryChangeTypes.RELATIONSHIP_CREATED:\n case HistoryChangeTypes.RELATIONSHIP_REMOVED:\n case HistoryChangeTypes.RELATIONSHIP_CHANGED:\n return;\n }\n\n let addPostProcess = false;\n change.uris?.forEach((uri) => {\n if (!checkLaneUri(uri)) addPostProcess = true;\n });\n\n const contributorLane = checkLaneUri(change.uri || entityUri);\n if (!contributorLane) return;\n const rowChange = {...change};\n checkLifeTime(contributorLane.lifeTime, rowChange);\n if (addPostProcess) postProcessChanges.push(rowChange);\n rows.push(rowChange);\n });\n\n postProcessChanges.forEach((postChange) => {\n postChange.uris.forEach((postUri) => {\n if (historyLanes[postUri]) return;\n historyChanges.forEach(({uri, uris, timestamp, user, type}) => {\n if (uri !== postUri) return;\n uris?.forEach((contributorUri) => {\n const contributorLane = historyLanes[contributorUri];\n if (!contributorLane) return;\n let fakeType = null;\n switch (type) {\n case HistoryChangeTypes.ENTITIES_MERGED:\n case HistoryChangeTypes.ENTITIES_MERGED_MANUALLY:\n fakeType = HistoryChangeTypes.FAKE_FILTERED_INCOMING;\n break;\n case HistoryChangeTypes.ENTITIES_SPLITTED:\n fakeType = HistoryChangeTypes.FAKE_FILTERED_OUTGOING;\n break;\n default:\n return;\n }\n\n const fakeChange = {\n fakeType: fakeType,\n uri: postChange.uri,\n uris: [contributorUri],\n type,\n user,\n timestamp\n };\n\n const extendLife = findClosestLife(contributorLane.lifeTime, postChange.timestamp);\n if (fakeType === HistoryChangeTypes.FAKE_FILTERED_INCOMING) {\n if (!isNil(extendLife.endIndex)) {\n contributorLane.lifeTime[extendLife.endIndex].end = fakeChange;\n }\n } else {\n if (!isNil(extendLife.startIndex)) {\n contributorLane.lifeTime[extendLife.startIndex].start = fakeChange;\n }\n }\n rows.splice(rows.indexOf(postChange), 0, fakeChange);\n });\n });\n });\n });\n\n rows.forEach((row, i) => {\n row.index = i;\n row.uri = row.uri || entityUri;\n });\n\n return {\n historyData: {historyLanes, rows},\n findPreviousChange\n };\n }, [entityUri, historyChanges, selectedUris]);\n};\n\nconst findClosestLife = (lifeTime: HistoryLife[], timestamp: number) =>\n lifeTime.reduce(\n (acc, {start, end}, i) => {\n if (start) {\n const d = timestamp - start.timestamp;\n if (isNil(acc.startDistance) || (Math.abs(acc.startDistance) > Math.abs(d) && d > 0)) {\n acc.startIndex = i;\n acc.startDistance = d;\n }\n }\n if (end) {\n const d = timestamp - end.timestamp;\n if (isNil(acc.endDistance) || (Math.abs(acc.endDistance) > Math.abs(d) && d < 0)) {\n acc.endIndex = i;\n acc.endDistance = d;\n }\n }\n return acc;\n },\n {startIndex: null, endIndex: null, startDistance: null, endDistance: null}\n );\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n root: {\n display: 'flex',\n flexDirection: 'column',\n overflow: 'hidden',\n position: 'relative',\n height: '100%'\n },\n borderBottom: {\n borderBottom: '1px solid rgba(0, 0, 0, 0.12)'\n }\n});\n","import React, {memo, useEffect, useState} from 'react';\nimport {HistoryWithTotal} from '@reltio/mdm-sdk';\nimport HistoryTree from '../HistoryTree/HistoryTree';\nimport ContributorsPanel from '../ContributorsPanel/ContributorsPanel';\nimport {useHistoryTree} from '../hooks/useHistoryTree';\nimport {HistoryEvent} from '@reltio/mdm-module';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n isLoading: boolean;\n historyWithTotal: HistoryWithTotal;\n contributorsUris: string[];\n entityUri: string;\n historyEvent: HistoryEvent;\n canLoadMore: boolean;\n onLoadMore: () => void;\n};\n\nconst HistoryView = ({\n isLoading,\n historyWithTotal,\n contributorsUris,\n entityUri,\n canLoadMore,\n onLoadMore,\n historyEvent\n}: Props) => {\n const styles = useStyles();\n const [selectedUris, setSelectedUris] = useState<string[]>(null);\n\n useEffect(() => {\n setSelectedUris(contributorsUris);\n }, [contributorsUris]);\n\n const {historyData, findPreviousChange} = useHistoryTree({\n entityUri,\n historyChanges: historyWithTotal?.changes,\n selectedUris\n });\n\n return (\n <div className={styles.root}>\n <ContributorsPanel\n values={contributorsUris}\n selectedValues={selectedUris}\n onSelectValues={setSelectedUris}\n entityUri={entityUri}\n className={styles.borderBottom}\n />\n <HistoryTree\n historyData={historyData}\n isLoading={isLoading}\n onLoadMore={onLoadMore}\n canLoadMore={canLoadMore}\n entityUri={entityUri}\n historyEvent={historyEvent}\n findPreviousChange={findPreviousChange}\n />\n </div>\n );\n};\n\nexport default memo(HistoryView);\n","import {useState, useMemo, useCallback, useEffect} from 'react';\nimport {Entity, getHistoricUris, getHistoryWithTotal, HistoryWithTotal, isEmptyValue} from '@reltio/mdm-sdk';\nimport {difference, either, evolve, isEmpty, isNil, pipe, reject} from 'ramda';\nimport {HistoryActivityType, HistoryFilter} from '../types';\nimport {buildHistoryFilterString} from '../utils/filters';\nimport {useSafePromise} from '../../../hooks';\n\ntype Props = {\n entity: Entity;\n enabled: boolean;\n};\n\nconst MAX_HISTORY_ROWS = 32;\n\nexport const DEFAULT_HISTORY_FILTER: HistoryFilter = {\n activities: [HistoryActivityType.MERGE, HistoryActivityType.UNMERGE, HistoryActivityType.UPDATE]\n};\n\nexport const isDefaultFilter = (filter: HistoryFilter): boolean => {\n return pipe(\n evolve({activities: difference(DEFAULT_HISTORY_FILTER.activities)}),\n reject(either(isNil, isEmpty)),\n isEmpty\n )(filter || {});\n};\n\nexport const useHistory = ({entity, enabled}: Props) => {\n const [historyFilter, setHistoryFilter] = useState(DEFAULT_HISTORY_FILTER);\n const [historyPage, setHistoryPage] = useState(0);\n\n const historyFilterString = useMemo(() => buildHistoryFilterString(historyFilter), [historyFilter]);\n\n const [historicUris, setHistoricUris] = useState<string[]>(null);\n const [historyWithTotal, setHistoryWithTotal] = useState<HistoryWithTotal>(null);\n const [isLoading, setIsLoading] = useState(false);\n const safePromise = useSafePromise();\n const entityUri = entity?.uri;\n const options = {max: MAX_HISTORY_ROWS, order: 'desc'};\n const showAll = isEmptyValue(historyFilter?.attributes) || undefined;\n\n const loadHistoryWithTotal = () => {\n setIsLoading(true);\n return safePromise(\n getHistoryWithTotal({\n entityUri,\n historicUris,\n filter: historyFilterString,\n showAll,\n ...options\n })\n )\n .then(setHistoryWithTotal)\n .catch((e) => {\n console.warn('Failed to load history data', e);\n setHistoryWithTotal(null);\n })\n .finally(() => {\n setIsLoading(false);\n });\n };\n\n useEffect(() => {\n if (entityUri && enabled) {\n loadHistoryWithTotal();\n }\n }, [historyFilterString, showAll, historicUris]);\n\n const loadHistoricUris = () => {\n setIsLoading(true);\n return safePromise(getHistoricUris({entityUri}))\n .then((historicUris) => {\n setHistoricUris(historicUris);\n })\n .catch((e) => {\n console.warn('Failed to load history data', e);\n setHistoricUris(null);\n })\n .finally(() => {\n setIsLoading(false);\n });\n };\n\n useEffect(() => {\n if (entityUri && enabled) {\n loadHistoricUris();\n setHistoryPage(0);\n }\n }, [entityUri, entity?.updatedTime, enabled]);\n\n const loadMore = useCallback(\n (offset: number) => {\n if (entityUri && historicUris && enabled) {\n setIsLoading(true);\n safePromise(\n getHistoryWithTotal({\n entityUri,\n historicUris,\n filter: historyFilterString,\n showAll,\n offset,\n ...options\n })\n )\n .then((results) => {\n setHistoryWithTotal((prev) => ({...prev, changes: [...prev?.changes, ...results.changes]}));\n })\n .catch((e) => {\n console.warn('Failed to load history data', e);\n })\n .finally(() => {\n setIsLoading(false);\n });\n }\n },\n [historicUris, historyFilterString, enabled]\n );\n\n const canLoadMore = useMemo(() => (historyPage + 1) * MAX_HISTORY_ROWS < historyWithTotal?.total, [\n historyWithTotal,\n historyPage\n ]);\n\n const onApplyFilter = useCallback((filter: HistoryFilter) => {\n setHistoryPage(0);\n setHistoryFilter(filter);\n }, []);\n\n const onClearFilter = useCallback(() => {\n onApplyFilter({...DEFAULT_HISTORY_FILTER});\n }, []);\n\n const onLoadMore = useCallback(() => {\n if (!canLoadMore) return;\n loadMore((historyPage + 1) * MAX_HISTORY_ROWS);\n setHistoryPage(historyPage + 1);\n }, [loadMore, historyPage, canLoadMore]);\n\n return {\n isLoading,\n canLoadMore,\n onLoadMore,\n onApplyFilter,\n onClearFilter,\n historicUris,\n historyWithTotal,\n historyFilter\n };\n};\n","import {useEffect, useState} from 'react';\nimport {isTempUri, isDataTenantEntity, Entity} from '@reltio/mdm-sdk';\n\ntype Props = {\n isHistoryTabActive: boolean;\n entity: Entity;\n};\n\nexport const useHistoryEnabled = ({isHistoryTabActive, entity}: Props) => {\n const [wasHistoryTabActive, setWasHistoryTabActive] = useState(false);\n const entityUri = entity?.uri;\n useEffect(() => {\n if (!isHistoryTabActive) {\n setWasHistoryTabActive(false);\n }\n }, [entityUri]);\n\n useEffect(() => {\n if (isHistoryTabActive) {\n setWasHistoryTabActive(true);\n }\n }, [isHistoryTabActive]);\n\n const isProfilePersisted = entityUri && !isTempUri(entityUri) && !isDataTenantEntity(entity);\n const isHistoryEnabled = wasHistoryTabActive && isProfilePersisted;\n\n return {isHistoryEnabled, isProfilePersisted};\n};\n","import {useState, useEffect} from 'react';\nimport {useSelector, useDispatch} from 'react-redux';\nimport mdmModule, {HistoryEvent, profile} from '@reltio/mdm-module';\nimport {Entity, getEntityTimeSlice} from '@reltio/mdm-sdk';\nimport {useSafePromise} from '../../../hooks';\n\ntype Props = {\n entity: Entity;\n historyEvent: HistoryEvent;\n};\n\nexport const useHistorySlice = ({entity, historyEvent}: Props) => {\n const [isLoading, setIsLoading] = useState(false);\n const historySlice = useSelector(mdmModule.selectors.getHistorySlice);\n const dispatch = useDispatch();\n const safePromise = useSafePromise();\n\n const {aStamp, bStamp, overrideUri} = historyEvent || {};\n const entityUri = overrideUri || entity?.uri;\n\n useEffect(() => {\n if (historyEvent && entityUri) {\n setIsLoading(true);\n safePromise(\n Promise.all([\n getEntityTimeSlice(entityUri, aStamp),\n bStamp && bStamp !== 1 ? getEntityTimeSlice(entityUri, bStamp) : Promise.resolve(null)\n ])\n )\n .then(([aEntity, bEntity]) => {\n dispatch(profile.history.actions.setHistorySlice({aEntity, bEntity}));\n })\n .catch((e) => {\n console.warn('Failed to load entity slice', e);\n })\n .finally(() => {\n setIsLoading(false);\n });\n }\n }, [aStamp, bStamp, entityUri]);\n\n return {isLoading, historySlice};\n};\n","import {ActivityTypes} from '../../activityLog/types/ActivityTypes';\n\nenum FakeTypes {\n FAKE_NAVIGATE_PROFILE = 'FAKE_NAVIGATE_PROFILE',\n FAKE_FILTERED_INCOMING = 'FAKE_FILTERED_INCOMING',\n FAKE_FILTERED_OUTGOING = 'FAKE_FILTERED_OUTGOING',\n FAKE_UPDATE = 'FAKE_UPDATE'\n}\n\nexport const HistoryChangeTypes = {...ActivityTypes, ...FakeTypes};\nexport type HistoryChangeTypes = typeof HistoryChangeTypes;\n","import {AttributeOption, DateRangeFilter} from '../../../types';\n\nexport enum HistoryActivityType {\n UPDATE = 'UPDATE',\n MERGE = 'MERGE',\n UNMERGE = 'UNMERGE'\n}\n\nexport type HistoryFilter = {\n dateRange?: DateRangeFilter;\n users?: string[];\n activities?: HistoryActivityType[];\n attributes?: AttributeOption[];\n};\n","import moment from 'moment';\nimport {\n type,\n pipe,\n defaultTo,\n reject,\n map,\n join,\n cond,\n equals,\n append,\n concat,\n chain,\n evolve,\n values,\n over,\n lensProp\n} from 'ramda';\nimport {isEmptyValue, escapeQueryValue} from '@reltio/mdm-sdk';\nimport {HistoryActivityType} from '../types/HistoryFilter';\nimport {ActivityTypes} from '../../activityLog/types/ActivityTypes';\nimport {DateRangeFilter, DateRangeTypes, AttributeOption} from '../../../types';\n\nconst wrapInBrackets = (str) => `(${str})`;\nconst multiValueFilter = (filterClauseFn) => pipe(map(filterClauseFn), join(' or '));\nconst durationToTimestamp = (period) => {\n const [amount, unit] = period;\n return moment().subtract(amount, unit).valueOf();\n};\n\nconst convertHistoryTypes = chain(\n cond([\n [\n equals(HistoryActivityType.MERGE),\n () => [\n ActivityTypes.ENTITIES_MERGED,\n ActivityTypes.ENTITIES_MERGED_MANUALLY,\n ActivityTypes.ENTITIES_MERGED_ON_THE_FLY\n ]\n ],\n [equals(HistoryActivityType.UNMERGE), () => [ActivityTypes.ENTITIES_SPLITTED]],\n [equals(HistoryActivityType.UPDATE), () => [ActivityTypes.ENTITY_CHANGED]]\n ])\n);\n\nconst buildActivityFilterClause = pipe(\n defaultTo([]),\n convertHistoryTypes,\n concat([ActivityTypes.ENTITY_CREATED, ActivityTypes.ENTITY_REMOVED, ActivityTypes.ENTITY_LOST_MERGE]),\n multiValueFilter((value: string) => `equals(type, '${value}')`)\n);\nconst buildUserFilterClause = (user: string) => `equals(user, '${escapeQueryValue(user)}')`;\nconst buildAttributeFilterClause = (attribute: AttributeOption) => `changes(${escapeQueryValue(attribute.value)})`;\nconst buildDateRangeFilterClause = ({type, period}: DateRangeFilter) => {\n switch (type) {\n case DateRangeTypes.WITHIN: {\n return `gte(timestamp, ${durationToTimestamp(period)})`;\n }\n case DateRangeTypes.AGO: {\n return `lte(timestamp, ${durationToTimestamp(period)})`;\n }\n case DateRangeTypes.BETWEEN: {\n const [start, end] = period;\n return `gte(timestamp, ${start.valueOf()}) and lte(timestamp, ${moment(end).endOf('date').valueOf()})`;\n }\n default: {\n return '';\n }\n }\n};\n\nexport const buildHistoryFilterString = pipe(\n defaultTo({}),\n reject(isEmptyValue),\n evolve({\n users: multiValueFilter(buildUserFilterClause),\n attributes: multiValueFilter(buildAttributeFilterClause),\n dateRange: buildDateRangeFilterClause\n }),\n over(lensProp('activities'), buildActivityFilterClause),\n values,\n reject(isEmptyValue),\n append(\"not equals(user, 'collaboration-service')\"),\n map(wrapInBrackets),\n join(' and ')\n);\n\nexport const isDateRangeValid = (value: DateRangeFilter) => {\n if (value.type === DateRangeTypes.AGO || value.type === DateRangeTypes.WITHIN) {\n const [amount, unit] = value.period;\n return type(amount) === 'Number' && type(unit) === 'String' && amount > 0;\n } else if (value.type === DateRangeTypes.BETWEEN) {\n const [startDate, endDate] = value.period;\n return startDate instanceof Date && endDate instanceof Date;\n }\n};\n","import React, {useCallback, useState} from 'react';\nimport i18n from 'ui-i18n';\nimport {Portal as Portal} from '@material-ui/core';\nimport {Button as Button} from '@material-ui/core';\nimport Snackbar, {SnackbarOrigin} from '@material-ui/core/Snackbar';\n\ntype SnackbarOptions = {\n anchorOrigin?: SnackbarOrigin;\n showDismiss?: boolean;\n};\nconst FIVE_MINUTES = 5 * 60 * 1000;\nexport const useSnackbar = (options: SnackbarOptions = {}) => {\n const {anchorOrigin, showDismiss} = options;\n const [isOpenSnackbar, setIsOpenSnackbar] = useState(false);\n const [snackbarMessage, setSnackbarMessage] = useState('');\n\n const closeSnackbar = useCallback(() => {\n setIsOpenSnackbar(false);\n setSnackbarMessage('');\n }, []);\n\n const showSnackbarMessage = useCallback((message) => {\n setIsOpenSnackbar(true);\n setSnackbarMessage(message);\n }, []);\n\n const SnackbarRenderer = useCallback(() => {\n return (\n <Portal container={document.body}>\n <Snackbar\n open={isOpenSnackbar}\n anchorOrigin={anchorOrigin}\n autoHideDuration={FIVE_MINUTES}\n onClose={closeSnackbar}\n message={snackbarMessage}\n action={\n showDismiss ? (\n <Button color=\"primary\" onClick={closeSnackbar}>\n {i18n.text('Dismiss')}\n </Button>\n ) : undefined\n }\n />\n </Portal>\n );\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isOpenSnackbar, closeSnackbar, snackbarMessage]);\n\n return {SnackbarRenderer, showSnackbarMessage};\n};\n","import {AttributeType} from '@reltio/mdm-sdk';\n\nexport type ReactGridLayoutItem = {\n i: string;\n x: number;\n y: number;\n w: number;\n h: number;\n minW?: number;\n minH?: number;\n maxW?: number;\n maxH?: number;\n static?: boolean;\n};\n\nexport type AttributeOption = {\n label: string;\n value: string;\n attrType: AttributeType;\n chipLabel: string;\n level: number;\n};\n\nexport enum DateRangeTypes {\n WITHIN = 'within',\n AGO = 'ago',\n BETWEEN = 'between'\n}\n\nexport type DateRangeFilter = {\n type: DateRangeTypes;\n period: [number, string] | [Date, Date];\n};\n\nexport type QueryBuilderAttributeData = {\n title: string;\n pathToTitle: Array<string>;\n fieldName: string;\n entityTypeUri: string;\n attrType: AttributeType;\n uri: string;\n groupName: string;\n filterOptions: Array<string>;\n};\n\nexport type QueryBuilderAttribute = {\n id: string;\n values: Array<unknown>;\n data: QueryBuilderAttributeData;\n filter: string;\n operator: string;\n};\n\nexport type AttributeSelectorItem = {\n attrType?: AttributeType;\n entityTypeUri?: string;\n fieldName: string;\n groupName?: string;\n title: string;\n uri?: string;\n children?: AttributeSelectorItem[];\n pathToTitle?: string[];\n};\n\nexport type AttributeSelectorItemsGroup = {\n id?: string;\n title: string;\n attributes: AttributeSelectorItem[];\n};\n\nexport type AttributeSelectionInfo = {\n index: number;\n checked: boolean;\n attribute: AttributeSelectorItem;\n selectedAttributes: AttributeSelectorItem[];\n};\n\nexport type BasicAttributeSelectorProps = {\n className?: string;\n itemsGroups: AttributeSelectorItemsGroup[];\n value: AttributeSelectorItem;\n onSelect: (selectInfo: AttributeSelectionInfo) => void;\n onRestoreFocus?: () => void;\n onOpenPopup?: () => void;\n getLabel?: (value: {fieldName?: string; pathToTitle?: string[]; title: string}) => string;\n disableRestoreFocus?: boolean;\n disableEnforceFocus?: boolean;\n single?: boolean;\n ungroup?: boolean;\n disabled?: boolean;\n hideCheckBox?: boolean;\n};\nexport enum RequestStates {\n INIT = 'init',\n LOADING = 'loading',\n LOADED = 'loaded',\n ERROR = 'error'\n}\n\nexport type SelectableItem = {\n text?: string;\n disabled?: boolean;\n tooltip?: string;\n id?: string;\n onClick?: (e) => void;\n selected?: boolean;\n};\n\nexport type DropDownMenuItem = {\n text?: string;\n disabled?: boolean;\n tooltip?: string;\n id?: string;\n onClick?: (e) => void;\n selectable?: boolean;\n selected?: boolean;\n};\n"],"names":["customStyles","input","currentStyles","fontSize","menuPortal","zIndex","useStyles","makeStyles","root","flex","title","paddingBottom","paddingLeft","dropDownInput","width","justifyContent","backgroundColor","borderTop","option","height","noOptionsMessage","entityType","selectedAttributes","className","onChange","disableUnderline","menuPlacement","metadata","useSelector","mdmModule","styles","prepareItems","useCallback","data","level","prevLabel","reduce","acc","item","hidden","chipLabel","label","push","value","uri","attrType","subAttributes","getAttributeTypeSubAttributes","concat","options","useMemo","attributes","classnames","Typography","variant","i18n","MultiSelect","TextFieldProps","InputProps","classes","components","DropdownIndicator","DropdownIndicatorWithIconButton","MultiValue","props","Option","isFocused","isSelected","innerProps","AttributeListItem","checked","labelInText","pipe","defaultTo","menuPortalTarget","document","body","viewBox","xmlns","d","fill","fillRule","stroke","strokeWidth","opacity","ColumnsSettings","columnsData","selectedColumns","onChangeColumns","tooltipTitle","anchorEl","setAnchorEl","useState","handleColumnClick","column","changedColumns","getChildColumns","pluck","wasSelected","isColumnSelected","difference","uniq","SmallIconButton","size","icon","TableIcon","onClick","event","currentTarget","ColumnsSettingsPopup","onColumnClick","onClose","propTypes","ColumnsDataType","PropTypes","popup","minWidth","groupItem","ColumnListItem","style","isGroupItem","hideCheckBox","key","id","Highlighter","text","highlight","filterText","hideIcon","setFilterText","groupedItems","buildColumnItems","items","flattenGroupedItemsData","containerWidth","getMaxItemWidth","handleSearchOnEnter","focusIndex","handleKeyDown","useKeyboardNavigation","open","onSelectFocusedItem","selectedItems","handleClose","listHeight","Math","min","length","containerHeight","max","SelectionPopup","onSearch","searchInputOnKeyDown","VirtualGroupedList","fixedTitle","renderItem","index","isGroupColumn","getItemSize","groupId","isParentToColumn","curry","parent","startsWith","isGroupToColumn","group","isHideableColumn","propOr","addColumn","columns","find","either","getColumnRoot","children","filterColumnsByLabel","utils","some","buildColumnsTrees","columnData","dataTypeDefinition","buildFilteredColumnItems","filter","chain","isGroupedColumnsData","has","flattenGroupedColumnsData","map","assoc","when","childColumns","includes","every","display","paddingRight","inputNumber","marginRight","inputUnit","periods","interval","unit","onFocus","onNumberChange","getValue","parseInt","newValue","onUnitChange","newUnit","TextField","type","inputProps","SimpleDropDownSelector","placeholder","capitalize","withMuiSkin","CreatableSelect","innerRef","selectProps","MenuItem","classNames","ref","selected","component","Checkbox","color","ExpandedValueTooltip","onMouseMove","onMouseOver","tabIndex","isRequired","current","theme","top","left","undefined","fontWeight","clearIndicator","padding","spacing","margin","dropdownIndicator","creatable","getOptions","loadingIndicator","componentsProp","classesProp","stylesProp","onChangeProp","onInputChange","onInputChangeProp","reactSelectProps","SelectComponent","AsyncSelect","Select","inputValue","setInputValue","multiSelectClasses","omit","inputId","multiSelectComponents","mergeClasses","indicatorSeparator","base","loadingMessage","fontFamily","labelProps","InputLabelProps","htmlFor","shrink","isMulti","actionMeta","action","closeMenuOnSelect","hideSelectedOptions","loadOptions","defaultProps","cacheOptions","defaultOptions","ClearIndicator","Control","DownChevron","CrossIcon","Group","GroupHeading","IndicatorsContainer","IndicatorSeparator","Input","LoadingIndicator","Menu","MenuList","MenuPortal","LoadingMessage","NoOptionsMessage","MultiValueContainer","MultiValueLabel","MultiValueRemove","Placeholder","SelectContainer","SingleValue","ValueContainer","control","valueContainer","multiValue","singleValue","menu","container","groupHeading","indicatorsContainer","menuList","multiValueLabel","multiValueRemove","getOptionValue","isSearchable","inputRef","cx","cy","r","fillOpacity","maskType","maskUnits","x","y","mask","clipRule","x1","y1","x2","y2","gradientUnits","stopColor","stopOpacity","offset","flexWrap","flexDirection","alignItems","overflow","minHeight","boxSizing","logo","textBox","maxWidth","marginTop","palette","primary","lineHeight","textAlign","secondaryText","letterSpacing","paddingTop","IconRenderer","AttributesListIcon","selectedUsers","valueToOption","prepareValues","values","tenant","servicesPath","cachedRequest","useRef","getAllUsersForTenant","then","users","username","filterUsers","ActivityTypes","getItemDataType","path","getActivityType","activity","firstItem","removeIgnoredItems","isImplementedItem","isValidActivityType","filteredItems","console","error","reject","itemsTotal","splitActivityByType","groupBy","ifElse","stringifyDeltaValue","deltaValue","attributeTypeUri","attributePresentations","attributeType","findAttributeTypeByUri","getAttrDataTypeDefinition","formatValue","formatDataTypeValue","isNil","Object","entries","flatMap","attributeTypeName","deltaValues","makeAttrTypeUri","join","getActivityLabel","transition","inputRoot","dateOptionLabel","paper","localeFormat","moment","longDateFormat","setOpen","handleToggle","onCancel","fullWidth","DataTypes","endAdornment","menuIsOpen","readOnly","autoFocus","anchorOrigin","vertical","horizontal","transformOrigin","elevation","getContentAnchorEl","MenuListProps","autoFocusItem","DateRangePicker","onApply","dateRangeTypeOptions","DateRangeTypes","getDateRangeTypeLabel","intervalContainer","typeInput","emptyDates","emptyInterval","isIntervalType","isBetweenType","initDatesInterval","period","initInterval","datesInterval","setDatesInterval","setInterval","selectedType","getCurrentPeriodByType","changePeriod","useDidUpdateEffect","DateIntervalSelector","CustomDateRangeEditor","historyActivityOptions","HistoryActivityType","overflowY","selectedHistoryActivityTypes","filterContainer","filterContainerScrollable","filterItem","filterControls","clearButton","onApplyFilter","buttonRef","isOpen","setIsOpen","currentValue","setCurrentValue","activities","dateRange","buttonColor","isDefaultFilter","useEffect","handlePropChange","propName","filterValue","togglePopup","applyButtonHandler","isDateRangeValid","dissoc","clearAllButtonHandler","DEFAULT_HISTORY_FILTER","FilterListIcon","Popover","UserSelector","AttributeSelector","Button","menuItem","menuText","marginLeft","checkIcon","position","MenuItemRenderer","forwardRef","onMenuClose","noop","e","Check","displayName","mode","dispatch","useDispatch","handleModeChange","selectedMode","profile","menuItems","HistoryMode","DropDownMenuButton","buttonComponent","buttonProps","MoreVertIcon","menuId","divider","count","filterButton","total","Divider","orientation","flexItem","Spacer","historyRow","cursor","background","content","rowHeader","badge","pointerEvents","textOverflow","whiteSpace","date","user","change","isCurrent","matchGroups","timestamp","getContributorColor","bold","isFakeHistoryType","HistoryChangeTypes","toX","toY","isDashed","lineData","isUp","isLeft","curveCenterY","getHistoryLinkCurve","strokeDasharray","isCollapsed","showCollapseIcon","showLine","otherProps","radius","BUMP_RADIUS","LINE_MARGIN","HistoryCircleWithTooltip","withTooltip","HistoryCircle","memo","graphData","onHistoryCircleMouseOver","historyLanes","rows","rowPositions","links","rowLines","circles","i","uris","fakeType","hasFakeType","circleUri","tooltipPlacement","ROW_HEIGHT","isUpRight","forEach","contributorUri","contributorLane","rowHeight","keys","lifeTime","start","end","startIndex","endIndex","startY","endY","unshift","historyTree","gridTemplateColumns","graph","overflowX","history","buttonContainer","gridColumnStart","gridColumnEnd","shadow","boxShadow","historyData","isLoading","canLoadMore","onLoadMore","entityUri","historyEvent","findPreviousChange","isEditableMode","mdm","setGraphData","isScrollable","setIsScrollable","selectedIndex","setSelectedIndex","isCurrentEventChange","overrideUri","aStamp","selectedChangeByIndex","currentEventChangeIndex","findIndex","graphRef","rowsRef","node","childNodes","clientHeight","handleGraphScroll","scrollWidth","clientWidth","scrollLeft","LinearLoadIndicator","onScroll","time","select","getEntity","crosswalks","uniqBy","prop","cw","crosswalkType","getCrosswalkType","identity","prevGraphData","row","handleWidth","onResize","window","confirm","Mode","aChange","bChange","bStamp","handleHistoryRowClick","useContributorStyles","borderWidth","borderStyle","borderColor","borderRadius","active","inactive","clickable","selectedValues","onSelectValues","without","handleClick","findClosestLife","startDistance","abs","endDistance","borderBottom","historyWithTotal","contributorsUris","selectedUris","setSelectedUris","historyChanges","checkChange","involvedUris","checkInUris","Array","isArray","involvedUri","findNextChange","drop","checkLaneUri","startNewLife","currentLife","updateLife","shouldAddNewLife","endLife","postProcessChanges","lostMergeChange","addPostProcess","rowChange","relatedLane","lifeTimeLength","checkLifeTime","postChange","postUri","fakeChange","extendLife","splice","indexOf","slice","Infinity","useHistoryTree","changes","evolve","isEmpty","useHistory","entity","enabled","historyFilter","setHistoryFilter","historyPage","setHistoryPage","historyFilterString","buildHistoryFilterString","historicUris","setHistoricUris","setHistoryWithTotal","setIsLoading","safePromise","useSafePromise","order","showAll","isEmptyValue","getHistoryWithTotal","catch","warn","finally","getHistoricUris","updatedTime","loadMore","results","prev","onClearFilter","useHistoryEnabled","isHistoryTabActive","wasHistoryTabActive","setWasHistoryTabActive","isProfilePersisted","isTempUri","isDataTenantEntity","isHistoryEnabled","useHistorySlice","historySlice","Promise","all","getEntityTimeSlice","resolve","aEntity","bEntity","FakeTypes","multiValueFilter","filterClauseFn","durationToTimestamp","amount","subtract","valueOf","convertHistoryTypes","cond","equals","buildActivityFilterClause","escapeQueryValue","attribute","endOf","over","lensProp","append","str","startDate","endDate","Date","FIVE_MINUTES","useSnackbar","showDismiss","isOpenSnackbar","setIsOpenSnackbar","snackbarMessage","setSnackbarMessage","closeSnackbar","showSnackbarMessage","message","SnackbarRenderer","Portal","autoHideDuration","RequestStates"],"sourceRoot":""}
|