@reltio/remotes 1.4.1600 → 1.4.1602

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.
Files changed (129) hide show
  1. package/1039.js +1 -1
  2. package/1146.js +1 -1
  3. package/1148.js +1 -1
  4. package/1148.js.map +1 -1
  5. package/1334.js +1 -1
  6. package/1425.js +1 -1
  7. package/1425.js.map +1 -1
  8. package/1572.js +2 -0
  9. package/1572.js.map +1 -0
  10. package/1584.js +1 -1
  11. package/1584.js.map +1 -1
  12. package/1664.js +1 -1
  13. package/1707.js +1 -1
  14. package/1790.js +1 -1
  15. package/1840.js +1 -1
  16. package/1840.js.map +1 -1
  17. package/1946.js +1 -1
  18. package/1946.js.map +1 -1
  19. package/2066.js +1 -1
  20. package/2066.js.map +1 -1
  21. package/2201.js +1 -1
  22. package/2400.js +1 -1
  23. package/2463.js +1 -1
  24. package/2463.js.map +1 -1
  25. package/2579.js +1 -1
  26. package/2641.js +1 -1
  27. package/2641.js.map +1 -1
  28. package/2775.js +1 -1
  29. package/3096.js +1 -1
  30. package/3123.js +1 -1
  31. package/3348.js +1 -1
  32. package/3358.js +1 -1
  33. package/3358.js.map +1 -1
  34. package/3383.js +1 -1
  35. package/3383.js.map +1 -1
  36. package/3424.js +1 -1
  37. package/3424.js.map +1 -1
  38. package/3463.js +1 -1
  39. package/3469.js +1 -1
  40. package/3538.js +1 -1
  41. package/3538.js.map +1 -1
  42. package/356.js +1 -1
  43. package/3603.js +1 -1
  44. package/3603.js.map +1 -1
  45. package/3875.js +1 -1
  46. package/3875.js.map +1 -1
  47. package/3879.js +1 -1
  48. package/3902.js +1 -1
  49. package/3902.js.map +1 -1
  50. package/3926.js +1 -1
  51. package/3926.js.map +1 -1
  52. package/4212.js +1 -1
  53. package/4390.js +1 -1
  54. package/4390.js.map +1 -1
  55. package/4426.js +1 -1
  56. package/4426.js.map +1 -1
  57. package/4703.js +1 -1
  58. package/4703.js.map +1 -1
  59. package/4806.js +1 -1
  60. package/4826.js +1 -1
  61. package/50.js +1 -1
  62. package/5108.js +1 -1
  63. package/5108.js.map +1 -1
  64. package/5171.js +1 -1
  65. package/5225.js +2 -0
  66. package/5225.js.map +1 -0
  67. package/527.js +1 -1
  68. package/5617.js +1 -1
  69. package/584.js +1 -1
  70. package/6020.js +1 -1
  71. package/6287.js +1 -1
  72. package/6287.js.map +1 -1
  73. package/6606.js +1 -1
  74. package/6606.js.map +1 -1
  75. package/673.js +1 -1
  76. package/673.js.map +1 -1
  77. package/6799.js +1 -1
  78. package/68.js +1 -1
  79. package/6844.js +1 -1
  80. package/6853.js +1 -1
  81. package/6860.js +1 -1
  82. package/6903.js +1 -1
  83. package/7293.js +1 -1
  84. package/735.js +1 -1
  85. package/7422.js +1 -1
  86. package/7422.js.map +1 -1
  87. package/7436.js +1 -1
  88. package/764.js +1 -1
  89. package/764.js.map +1 -1
  90. package/7829.js +1 -1
  91. package/7896.js +1 -1
  92. package/8075.js +1 -1
  93. package/820.js +1 -1
  94. package/8207.js +1 -1
  95. package/8322.js +1 -1
  96. package/8360.js +1 -1
  97. package/8360.js.map +1 -1
  98. package/8565.js +1 -1
  99. package/8741.js +1 -1
  100. package/8741.js.map +1 -1
  101. package/9016.js +1 -1
  102. package/9251.js +1 -1
  103. package/9251.js.map +1 -1
  104. package/9283.js +1 -1
  105. package/9283.js.map +1 -1
  106. package/9309.js +1 -1
  107. package/9328.js +1 -1
  108. package/9397.js +1 -1
  109. package/9397.js.map +1 -1
  110. package/9470.js +1 -1
  111. package/9622.js +1 -1
  112. package/9622.js.map +1 -1
  113. package/9719.js +1 -1
  114. package/9736.js +1 -1
  115. package/9736.js.map +1 -1
  116. package/9854.js +1 -1
  117. package/9854.js.map +1 -1
  118. package/9861.js +1 -1
  119. package/987.js +1 -1
  120. package/9960.js +1 -1
  121. package/9960.js.map +1 -1
  122. package/main.js +1 -1
  123. package/package.json +1 -1
  124. package/remoteEntry.js +1 -1
  125. package/remoteEntry.js.map +1 -1
  126. package/7056.js +0 -2
  127. package/7056.js.map +0 -1
  128. package/9383.js +0 -2
  129. package/9383.js.map +0 -1
package/4703.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"4703.js","mappings":"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","sources":["webpack://@reltio/remotes/../components/src/components/BasicTableView/viewState/basicTableViewState.js","webpack://@reltio/remotes/../components/src/components/ColoredSourceIcon/styles.ts","webpack://@reltio/remotes/../components/src/components/ColoredSourceIcon/ColoredSourceIcon.tsx","webpack://@reltio/remotes/../components/src/components/MatchRulesBlock/MatchRulesBadge/styles.ts","webpack://@reltio/remotes/../components/src/components/MatchRulesBlock/MatchRulesBadge/MatchRulesBadge.tsx","webpack://@reltio/remotes/../components/src/icons/NotMatchRule.tsx","webpack://@reltio/remotes/../components/src/components/MatchRulesBlock/NotMatchRule/styles.ts","webpack://@reltio/remotes/../components/src/components/MatchRulesBlock/NotMatchRule/NotMatchRule.tsx","webpack://@reltio/remotes/../components/src/components/MatchRulesBlock/MatchRulesBlock.tsx","webpack://@reltio/remotes/../components/src/components/MatchRulesBlock/MatchRulesTitle.tsx","webpack://@reltio/remotes/../components/src/components/MatchRulesBlock/MatchRulesTooltip/styles.ts","webpack://@reltio/remotes/../components/src/icons/NegativeRuleTooltipIcon.tsx","webpack://@reltio/remotes/../components/src/components/MatchRulesBlock/MatchRulesTooltip/MatchRulesTooltip.tsx","webpack://@reltio/remotes/../components/src/components/MatchRulesBlock/SimpleMatchRules/styles.ts","webpack://@reltio/remotes/../components/src/icons/NegativeRuleIcon.tsx","webpack://@reltio/remotes/../components/src/components/MatchRulesBlock/SimpleMatchRules/SimpleMatchRules.tsx","webpack://@reltio/remotes/../components/src/components/MatchRulesBlock/SimpleMatchRulesBlock/styles.tsx","webpack://@reltio/remotes/../components/src/icons/MlMatch.tsx","webpack://@reltio/remotes/../components/src/components/MatchRulesBlock/SimpleMatchRulesBlock/SimpleMatchRulesBlock.tsx","webpack://@reltio/remotes/../components/src/components/MatchRulesBlock/SimpleMatchRulesBuilder/styles.ts","webpack://@reltio/remotes/../components/src/components/MatchRulesBlock/SimpleMatchRulesBuilder/SimpleMatchRulesBuilder.tsx","webpack://@reltio/remotes/../components/src/components/MatchRulesBlock/TransitiveMatchRules/styles.ts","webpack://@reltio/remotes/../components/src/components/MatchRulesBlock/TransitiveMatchRules/TransitiveMatchRule.tsx","webpack://@reltio/remotes/../components/src/components/MatchRulesBlock/TransitiveMatchBlock/styles.ts","webpack://@reltio/remotes/../components/src/components/MatchRulesBlock/TransitiveMatchRulesTooltip/styles.ts","webpack://@reltio/remotes/../components/src/components/MatchRulesBlock/TransitiveMatchRulesTooltip/TransitiveMatchRulesTooltip.tsx","webpack://@reltio/remotes/../components/src/components/MatchRulesBlock/TransitiveMatchBlock/TransitiveMatchBlock.tsx","webpack://@reltio/remotes/../components/src/components/MatchRulesBlock/types/index.ts","webpack://@reltio/remotes/../components/src/icons/MergeDark.tsx","webpack://@reltio/remotes/../components/src/components/MergeButton/MergeButton.tsx","webpack://@reltio/remotes/../components/src/components/ModeSwitcherSelect/styles.ts","webpack://@reltio/remotes/../components/src/components/ModeSwitcherSelect/ModeSwitcherSelect.tsx","webpack://@reltio/remotes/../components/src/icons/NotMatchDark.tsx","webpack://@reltio/remotes/../components/src/components/NotMatchButton/NotMatchButton.tsx","webpack://@reltio/remotes/../components/src/components/RelevanceScoreBadge/styles.ts","webpack://@reltio/remotes/../components/src/components/RelevanceScoreBadge/RelevanceScoreBadge.tsx","webpack://@reltio/remotes/../components/src/components/SidePanel/SidePanelContentHeader/styles.ts","webpack://@reltio/remotes/../components/src/components/SidePanel/SidePanelContentHeader/SidePanelContentHeader.tsx","webpack://@reltio/remotes/../components/src/components/workflow/components/AssigneeSelector/AssigneeSelector.tsx","webpack://@reltio/remotes/../components/src/components/workflow/components/TaskActions/TaskActions.tsx","webpack://@reltio/remotes/../components/src/components/workflow/components/WorkflowComments/styles.ts","webpack://@reltio/remotes/../components/src/components/workflow/components/WorkflowComments/Comment.js","webpack://@reltio/remotes/../components/src/components/workflow/components/WorkflowComments/CollapsedComments.js","webpack://@reltio/remotes/../components/src/components/workflow/components/WorkflowComments/ExpandedComments.js","webpack://@reltio/remotes/../components/src/components/workflow/components/WorkflowComments/WorkflowComments.tsx","webpack://@reltio/remotes/../components/src/components/workflow/helpers/errors.ts","webpack://@reltio/remotes/../components/src/components/workflow/helpers/index.ts","webpack://@reltio/remotes/../components/src/components/workflow/hooks/useWorkflowActions.ts","webpack://@reltio/remotes/../components/src/components/workflow/hooks/useWorkflowAssignee.ts","webpack://@reltio/remotes/../components/src/components/workflow/hooks/useWorkflowCheckPermission.ts","webpack://@reltio/remotes/../components/src/components/workflow/hooks/useWorkflowComments.ts","webpack://@reltio/remotes/../components/src/components/workflow/hooks/useWorkflowDefaultActionSuccessHandler.ts","webpack://@reltio/remotes/../components/src/contexts/SnackbarContext/index.ts","webpack://@reltio/remotes/../components/src/contexts/WorkflowTasksContext/index.ts","webpack://@reltio/remotes/../components/src/hooks/useActions.ts","webpack://@reltio/remotes/../components/src/hooks/useIsMountedRef.ts","webpack://@reltio/remotes/../components/src/hooks/useMarkAsNotMatchRequest.ts","webpack://@reltio/remotes/../components/src/hooks/useMatchesLoader.ts","webpack://@reltio/remotes/../components/src/hooks/helpers/merge.ts","webpack://@reltio/remotes/../components/src/hooks/useMergeAllRequest.ts","webpack://@reltio/remotes/../components/src/hooks/helpers/pagingSimulator.ts","webpack://@reltio/remotes/../components/src/hooks/usePagingSimulator.ts","webpack://@reltio/remotes/../components/src/hooks/useSavedStateForEntityType.ts"],"sourcesContent":["import {always, assoc, difference, dissoc, evolve, keys, path, when} from 'ramda';\nimport {createStandardAction, toggleSortOrder} from '../../../core';\n\nconst CHANGE_COLUMNS = 'CHANGE_COLUMNS';\nconst TOGGLE_FILTERS = 'TOGGLE_FILTERS';\nconst CHANGE_FILTER = 'CHANGE_FILTER';\nconst TOGGLE_SORT = 'TOGGLE_SORT';\nconst CHANGE_PAGE = 'CHANGE_PAGE';\nconst CHANGE_ROWS_PER_PAGE = 'CHANGE_ROWS_PER_PAGE';\n\nexport const actions = {\n changeColumns: createStandardAction(CHANGE_COLUMNS),\n toggleFilters: createStandardAction(TOGGLE_FILTERS),\n changeFilter: createStandardAction(CHANGE_FILTER),\n toggleSort: createStandardAction(TOGGLE_SORT),\n changePage: createStandardAction(CHANGE_PAGE),\n changeRowsPerPage: createStandardAction(CHANGE_ROWS_PER_PAGE)\n};\n\nexport const changeVisibleColumns = (state, nextVisibleColumns) => {\n const removedColumns = difference(state.visibleColumns, nextVisibleColumns);\n const isRemovedColumn = (columnId) => removedColumns.includes(columnId);\n return evolve(\n {\n visibleColumns: always(nextVisibleColumns),\n sorting: when(\n (sorting = {}) => isRemovedColumn(sorting.field),\n () => {\n const [nextSortField] = nextVisibleColumns;\n return {field: nextSortField, order: 'asc'};\n }\n ),\n filters: (filters) =>\n keys(filters).reduce(\n (acc, columnId) => (isRemovedColumn(columnId) ? dissoc(columnId, acc) : acc),\n filters\n )\n },\n state\n );\n};\n\nexport const reducer = (state, action) => {\n switch (action.type) {\n case CHANGE_COLUMNS: {\n const columnIds = action.payload;\n return changeVisibleColumns(state, columnIds);\n }\n case TOGGLE_FILTERS: {\n const enableFilters = !state.filters;\n return {\n ...state,\n filters: enableFilters ? {} : null,\n page: enableFilters ? state.page : 0\n };\n }\n case CHANGE_FILTER: {\n const {columnId, filter} = action.payload;\n return evolve({filters: filter ? assoc(columnId, filter) : dissoc(columnId), page: always(0)}, state);\n }\n case TOGGLE_SORT: {\n const nextSortField = action.payload;\n const prevSortField = path(['sorting', 'field'], state);\n const prevSortOrder = path(['sorting', 'order'], state);\n return {\n ...state,\n sorting: {\n field: nextSortField,\n order: toggleSortOrder(nextSortField === prevSortField ? prevSortOrder : null)\n },\n page: 0\n };\n }\n case CHANGE_PAGE:\n return {...state, page: action.payload};\n case CHANGE_ROWS_PER_PAGE:\n return {...state, rowsPerPage: action.payload};\n default:\n return state;\n }\n};\n\nexport default {\n reducer,\n actions,\n changeVisibleColumns\n};\n","import {makeStyles} from '@mui/styles';\n\nexport const useStyles = makeStyles({\n itemContainer: {\n width: '18px',\n height: '18px'\n },\n item: {\n width: '18px',\n height: '18px',\n background: 'none',\n fontSize: '1rem'\n }\n});\n","import React, {memo} from 'react';\nimport classnames from 'classnames';\nimport mdm from '@reltio/mdm-module';\nimport {useSelector} from 'react-redux';\nimport Tooltip from '@mui/material/Tooltip';\nimport {Crosswalk, getSourceSystemLabel} from '@reltio/mdm-sdk';\nimport {useCrosswalkColor} from '../../contexts';\nimport SourceIcon from '../SourceIcon/SourceIcon';\nimport {useStyles} from './styles';\n\ntype Props = {\n crosswalk: Crosswalk;\n className?: string;\n showTooltip?: boolean;\n};\n\nconst ColoredSourceIcon = ({className, crosswalk, showTooltip = true}: Props) => {\n const styles = useStyles();\n const color = useCrosswalkColor(crosswalk);\n const metadata = useSelector(mdm.selectors.getMetadata) || {};\n\n const content = (\n <div className={classnames(styles.itemContainer, className)} style={{background: color}}>\n <SourceIcon sourceType={crosswalk.type} className={styles.item} />\n </div>\n );\n return showTooltip ? <Tooltip title={getSourceSystemLabel(metadata, crosswalk.type)}>{content}</Tooltip> : content;\n};\n\nexport default memo(ColoredSourceIcon);\n","import {makeStyles} from '@mui/styles';\n\nconst styles = makeStyles((theme) => {\n return {\n label: {\n backgroundColor: 'rgba(43,152,240,0.12)',\n fontSize: '12px',\n lineHeight: '15px',\n color: theme.palette.text.primary,\n display: 'flex',\n alignItems: 'center',\n padding: '2px 7px'\n },\n container: {\n display: 'flex',\n alignItems: 'center',\n cursor: 'pointer'\n },\n expanded: {\n marginBottom: '8px'\n }\n };\n});\n\nexport default styles;\n","import React, {forwardRef} from 'react';\nimport classnames from 'classnames';\nimport ArrowExpandButton from '../../ArrowExpandButton/ArrowExpandButton';\n\nimport useStyles from './styles';\n\ntype Props = Omit<React.ComponentPropsWithoutRef<'div'>, 'onClick'> & {\n expanded?: boolean;\n onExpand?: React.MouseEventHandler<HTMLDivElement>;\n};\n\nconst MatchRulesBadge = forwardRef(\n ({children, expanded, onExpand, className, ...otherProps}: Props, ref: React.RefObject<HTMLDivElement>) => {\n const styles = useStyles();\n\n return (\n <div\n onClick={onExpand}\n ref={ref}\n className={classnames(styles.container, className, {[styles.expanded]: expanded})}\n {...otherProps}\n >\n <ArrowExpandButton expanded={expanded} />\n <div className={styles.label}>{children}</div>\n </div>\n );\n }\n);\n\nMatchRulesBadge.displayName = 'MatchRuleBadge';\n\nexport default MatchRulesBadge;\n","import React from 'react';\n\nconst SvgNotMatchRule: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width={24} height={24} viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M3 20h15.002L21 23l1.27-1.27-20-20.01L1 2.99l6.172 6.175a4.007 4.007 0 002.66 2.662l2.23 2.23A10.754 10.754 0 0011 14c-2.67 0-8 1.34-8 4v2zm8-16a3.987 3.987 0 00-2.795 1.137l5.656 5.659A3.999 3.999 0 0011 4z\"\n fill=\"#000\"\n fillOpacity={0.54}\n />\n </svg>\n );\n};\n\nexport default SvgNotMatchRule;\n","import {makeStyles} from '@mui/styles';\n\nexport const useStyles = makeStyles({\n notMatch: {\n display: 'flex',\n '& svg': {\n width: '14px',\n height: '14px'\n }\n }\n});\n","import React from 'react';\nimport i18n from 'ui-i18n';\nimport NotMatchRuleIcon from '../../../icons/NotMatchRule';\nimport {useStyles} from './styles';\n\nconst NotMatchRule = () => {\n const styles = useStyles();\n return (\n <div className={styles.notMatch}>\n <NotMatchRuleIcon /> {i18n.text('Not a match')}\n </div>\n );\n};\n\nexport default NotMatchRule;\n","import React from 'react';\nimport {\n Entity,\n getMatchRules,\n getTransitiveMatchRules,\n isTransitiveMatch,\n Metadata,\n Match,\n EntitiesMap,\n NOT_MATCH\n} from '@reltio/mdm-sdk';\n\nimport SimpleMatchRulesBlock from './SimpleMatchRulesBlock/SimpleMatchRulesBlock';\nimport TransitiveMatchBlock from './TransitiveMatchBlock/TransitiveMatchBlock';\nimport SimpleMatchRulesBuilder from './SimpleMatchRulesBuilder/SimpleMatchRulesBuilder';\nimport NotMatchRule from './NotMatchRule/NotMatchRule';\nimport {MatchRuleVariant} from './types';\n\ntype Props = {\n entitiesMap: EntitiesMap;\n entity: Entity;\n match: Match;\n metadata: Metadata;\n variant?: MatchRuleVariant;\n};\n\nconst MatchRulesBlock = ({entitiesMap, entity, match, metadata, variant = MatchRuleVariant.all}: Props) => {\n if (!match.matchRules && !match.negativeRules) {\n return null;\n }\n const isTransitive = isTransitiveMatch(match);\n const matchRules = getMatchRules(metadata, entity.type, (match.matchRules || []).concat(match.negativeRules || []));\n const rules = matchRules.filter(({uri}) => uri !== NOT_MATCH);\n const hasNotMatch = rules.length !== matchRules.length;\n const showSimple = !isTransitive && !hasNotMatch;\n const showNotMatch = hasNotMatch && variant !== MatchRuleVariant.excludeNotMatch;\n\n return (\n <>\n {isTransitive ? (\n <TransitiveMatchBlock\n transitiveMatchRules={getTransitiveMatchRules(metadata, match, entitiesMap)}\n matchRuleSummaries={match.matchRuleSummaries}\n />\n ) : null}\n {showSimple ? (\n <SimpleMatchRulesBuilder\n variant={variant}\n matchRules={matchRules}\n matchRuleSummaries={match.matchRuleSummaries}\n Component={SimpleMatchRulesBlock}\n />\n ) : null}\n {showNotMatch ? <NotMatchRule /> : null}\n </>\n );\n};\n\nexport default MatchRulesBlock;\n","import React from 'react';\nimport i18n from 'ui-i18n';\n\ntype Props = {\n isMlMatch?: boolean;\n};\n\nconst MatchRulesTitle = ({isMlMatch = false}: Props) => {\n return <>{isMlMatch ? i18n.text('Match IQ') : i18n.text('Match rules')}</>;\n};\n\nexport default MatchRulesTitle;\n","import {makeStyles} from '@mui/styles';\n\nconst styles = makeStyles({\n title: {\n fontWeight: 500,\n marginBottom: '9px'\n },\n body: {\n fontWeight: 'normal',\n marginLeft: '16px'\n },\n container: {\n padding: '8px',\n fontSize: '12px',\n lineHeight: '14px'\n },\n negativeRuleIcon: {\n position: 'relative',\n marginRight: '4px',\n top: '1px'\n }\n});\n\nexport default styles;\n","import React from 'react';\n\nconst NegativeRuleTooltipIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width=\"10\" height=\"10\" viewBox=\"0 0 10 10\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M5 0C2.24 0 0 2.24 0 5C0 7.76 2.24 10 5 10C7.76 10 10 7.76 10 5C10 2.24 7.76 0 5 0ZM7.5 5.5H2.5V4.5H7.5V5.5Z\"\n fill=\"white\"\n fillOpacity=\"0.54\"\n />\n </svg>\n );\n};\n\nexport default NegativeRuleTooltipIcon;\n","import React from 'react';\nimport MatchRulesTitle from '../MatchRulesTitle';\nimport {MatchRules} from '../types';\nimport useStyles from './styles';\nimport NegativeRuleTooltipIcon from '../../../icons/NegativeRuleTooltipIcon';\n\ntype Props = {\n isMlMatch?: boolean;\n matchRules: MatchRules;\n};\n\nconst MatchRulesTooltip = ({isMlMatch = false, matchRules}: Props) => {\n const styles = useStyles();\n return (\n <div className={styles.container}>\n <div className={styles.title}>\n <MatchRulesTitle isMlMatch={isMlMatch} />{' '}\n </div>\n <div className={styles.body}>\n {matchRules.map((match) => (\n <div key={match.uri}>\n {'- '}\n {match.negativeRule && <NegativeRuleTooltipIcon className={styles.negativeRuleIcon} />}\n {`${match.label}`}\n </div>\n ))}\n </div>\n </div>\n );\n};\n\nexport default MatchRulesTooltip;\n","import {makeStyles} from '@mui/styles';\n\nconst styles = makeStyles((theme) => ({\n container: {\n fontSize: '13px',\n lineHeight: '15px'\n },\n title: {\n color: theme.palette.text.secondary,\n marginBottom: '7px'\n },\n labelsContainer: {\n color: theme.palette.text.primary,\n marginBottom: '8px'\n },\n negativeRuleIcon: {\n position: 'relative',\n marginRight: '4px',\n top: '1px'\n },\n matchRuleInfo: {\n display: 'flex',\n alignItems: 'flex-start',\n justifyContent: 'space-between'\n },\n matchRuleLabel: {\n wordBreak: 'break-word'\n },\n relevanceScore: {\n marginLeft: '8px',\n color: theme.palette.text.secondary\n }\n}));\n\nexport default styles;\n","import React from 'react';\n\nconst NegativeRuleIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width=\"10\" height=\"10\" viewBox=\"0 0 10 10\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M5 0C2.24 0 0 2.24 0 5C0 7.76 2.24 10 5 10C7.76 10 10 7.76 10 5C10 2.24 7.76 0 5 0ZM7.5 5.5H2.5V4.5H7.5V5.5Z\"\n fill=\"black\"\n fillOpacity=\"0.54\"\n />\n </svg>\n );\n};\n\nexport default NegativeRuleIcon;\n","import React from 'react';\nimport classnames from 'classnames';\nimport {getMatchRuleSummary, formatRelevanceScore, MatchRuleSummary} from '@reltio/mdm-sdk';\nimport Tooltip from '@mui/material/Tooltip';\nimport i18n from 'ui-i18n';\nimport MatchRulesTitle from '../MatchRulesTitle';\nimport {MatchRules} from '../types';\nimport useStyles from './styles';\nimport NegativeRuleIcon from '../../../icons/NegativeRuleIcon';\n\ntype Props = {\n isMlMatch?: boolean;\n matchRules: MatchRules;\n className?: string;\n matchRuleSummaries?: MatchRuleSummary[];\n};\n\nconst SimpleMatchRules = ({isMlMatch, matchRules, className, matchRuleSummaries}: Props) => {\n const styles = useStyles();\n return (\n <div data-reltio-id=\"simple-match-rules\" className={classnames(styles.container, className)}>\n <div className={styles.title}>\n <MatchRulesTitle isMlMatch={isMlMatch} />\n </div>\n <div className={styles.labelsContainer}>\n {matchRules.map((matchRule) => {\n const matchRuleSummary = getMatchRuleSummary(matchRuleSummaries, matchRule.uri);\n const relevancePercentage = formatRelevanceScore(matchRuleSummary);\n return (\n <div className={styles.matchRuleInfo} key={matchRule.uri} data-reltio-id=\"match-rule-info\">\n <div className={styles.matchRuleLabel}>\n {'- '}\n {matchRule.negativeRule && <NegativeRuleIcon className={styles.negativeRuleIcon} />}\n {`${matchRule.label}`}\n </div>\n {relevancePercentage && (\n <Tooltip title={i18n.text('Relevance score')}>\n <div className={styles.relevanceScore}>{relevancePercentage}</div>\n </Tooltip>\n )}\n </div>\n );\n })}\n </div>\n </div>\n );\n};\n\nexport default SimpleMatchRules;\n","import {makeStyles} from '@mui/styles';\n\nconst styles = makeStyles({\n container: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'flex-start'\n },\n rulesContainer: {\n marginLeft: '16px',\n width: 'calc(100% - 16px)'\n },\n icon: {\n height: '17px',\n width: '15px',\n marginRight: '5px'\n }\n});\n\nexport default styles;\n","import React from 'react';\n\nconst SvgMlMatch: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg\n width={192}\n height={192}\n viewBox=\"0 0 192 192\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\n {...props}\n >\n <defs>\n <linearGradient x1=\"94.582%\" y1=\"6.451%\" x2=\"23.195%\" y2=\"83.323%\" id=\"MLMatch_svg__b\">\n <stop stopColor=\"#CDE1FF\" offset=\"0%\" />\n <stop stopColor=\"#AFFBF4\" offset=\"100%\" />\n </linearGradient>\n <linearGradient x1=\"94.582%\" y1=\"6.594%\" x2=\"23.195%\" y2=\"83.214%\" id=\"MLMatch_svg__d\">\n <stop stopColor=\"#FFF\" offset=\"0%\" />\n <stop stopColor=\"#FDFFFF\" offset=\"100%\" />\n </linearGradient>\n <linearGradient x1=\"93.837%\" y1=\"55.274%\" x2=\"29.292%\" y2=\"-20.431%\" id=\"MLMatch_svg__g\">\n <stop stopColor=\"#FFFCC7\" stopOpacity={0} offset=\"0%\" />\n <stop stopColor=\"#FFF470\" offset=\"100%\" />\n </linearGradient>\n <linearGradient x1=\"50%\" y1=\"0%\" x2=\"50%\" y2=\"98.152%\" id=\"MLMatch_svg__i\">\n <stop stopColor=\"#83D6FF\" offset=\"0%\" />\n <stop stopColor=\"#72B9EF\" offset=\"100%\" />\n </linearGradient>\n <path\n d=\"M1.821 66.003L34.263 9.94C36.633 5.813 45.673.594 51.398.072l64.445-.064c5.06-.241 14.821 5.084 17.888 10.395l31.467 54.503c3.186 5.518 2.765 16.592-.13 22.117l-30.948 53.481c-3.776 5.127-14.165 11.126-19.57 11.328l-62.134.061c-5.51-.264-15.934-5.764-18.758-10.655L1.856 86.155C-.846 81.475-.37 70.648 1.82 66.003z\"\n id=\"MLMatch_svg__a\"\n />\n <path\n d=\"M11.109 67.042l28.713-49.618C41.92 13.77 49.931 9.158 55.006 8.7l57.143.005c4.486-.209 13.147 4.516 15.871 9.223l27.954 48.298c2.83 4.89 2.467 14.696-.095 19.586l-27.391 47.334c-3.343 4.537-12.55 9.84-17.342 10.013l-55.094-.004c-4.886-.24-14.134-5.12-16.643-9.454L11.16 84.889c-2.4-4.147-1.989-13.735-.05-17.847z\"\n id=\"MLMatch_svg__c\"\n />\n <path\n d=\"M.995 0c26.4.684 47.59 22.234 47.59 48.72 0 26.23-23.795 34.53-23.795 56.987 0 3.703-3.011 6.705-6.725 6.705l-17.07-.001V68.985c6.466-1.238 11.353-6.923 11.353-13.75S7.46 42.722.995 41.485V0z\"\n id=\"MLMatch_svg__e\"\n />\n <path\n d=\"M47.353 0l-.087 41.235-.225.003c-7.588.167-13.688 6.37-13.688 13.997 0 7.683 6.19 13.92 13.854 14l-.091 43.265H27.887c-1.894-.56-3.197-1.234-3.91-2.025-.712-.79-1.357-2.275-1.933-4.455l-2.335-10.733c-.354-1.265-.674-2.183-.96-2.753-.286-.57-.784-1.281-1.494-2.134L2.002 70.367c-.846-.949-1.383-1.73-1.61-2.343-.228-.613-.356-1.626-.386-3.038V31.34c-.028-.785.044-1.37.216-1.757.173-.387.566-.848 1.18-1.382L28.368.885c.37-.367.665-.601.885-.704.22-.103.557-.163 1.01-.181h17.09z\"\n id=\"MLMatch_svg__h\"\n />\n </defs>\n <g stroke=\"none\" strokeWidth={1} fill=\"none\" fillRule=\"evenodd\">\n <g transform=\"translate(12 6)\">\n <use fill=\"url(#MLMatch_svg__b)\" xlinkHref=\"#MLMatch_svg__a\" />\n <use fill=\"url(#MLMatch_svg__d)\" opacity={0.5} xlinkHref=\"#MLMatch_svg__c\" />\n </g>\n <g transform=\"translate(69.652 30.765)\">\n <rect fill=\"#363636\" x={15.457} y={132.745} width={21.151} height={23.158} rx={10.576} />\n <path\n d=\"M48.146 118.763v18.93c0 7.198-5.944 13.035-13.277 13.035h-16.71c-7.333 0-13.278-5.837-13.278-13.036v-18.929a13 13 0 01.023-.763h43.22a13 13 0 01.022.763z\"\n fill=\"#717171\"\n />\n <path\n d=\"M41.348 137.2c0 7.199-4.947 13.035-11.048 13.035H16.395c-6.101 0-11.047-5.836-11.047-13.035v-18.965h36V137.2z\"\n fill=\"#828282\"\n />\n <path\n d=\"M47.51 138.235a4 4 0 110 8H4.556a4 4 0 110-8h42.956zm0-11a4 4 0 110 8H4.556a4 4 0 110-8h42.956zm0-11a4 4 0 110 8H4.556a4 4 0 110-8h42.956z\"\n fill=\"#B1B1B1\"\n />\n <path d=\"M24.999 138.234v8h-16v-8h16zm0-11v8h-16v-8h16zm0-11v8h-16v-8h16z\" fill=\"#C5C5C5\" />\n <g transform=\"translate(27)\">\n <mask id=\"MLMatch_svg__f\" fill=\"#fff\">\n <use xlinkHref=\"#MLMatch_svg__e\" />\n </mask>\n <use fill=\"#FFD44B\" xlinkHref=\"#MLMatch_svg__e\" />\n <path\n d=\"M-49 48.729C-49 21.583-27.155 0-.207 0 26.74 0 48.585 21.817 48.585 48.729c0 26.227-23.75 34.525-23.75 56.98a6.708 6.708 0 01-6.713 6.703h-38.208a6.708 6.708 0 01-6.712-6.704C-26.798 85.217-49 75.875-49 48.73z\"\n fill=\"#FFD347\"\n mask=\"url(#MLMatch_svg__f)\"\n />\n <path\n d=\"M-49 48.729C-49 21.583-27.155 0-.207 0 26.74 0 48.585 21.817 48.585 48.729c0 26.227-23.75 34.525-23.75 56.98a6.708 6.708 0 01-6.713 6.703h-38.208a6.708 6.708 0 01-6.712-6.704C-26.798 85.217-49 75.875-49 48.73z\"\n fill=\"#FFDE72\"\n mask=\"url(#MLMatch_svg__f)\"\n />\n <path\n d=\"M11.965 48.645c.17-7.171 7.488-10.693 13.863-6.802 7.245 4.422 4.05 16.311-4.742 16.548l-.268.004h-3.227l-4.608 56.092-5.995-.253 4.413-51.248.185-4.592-10.592.001v-6h10.83l.139-3.585.002-.165zm10.737-1.681c-2.54-1.55-4.64-.58-4.737 1.766l-.005.284-.131 3.38 2.99.001c2.852 0 3.999-3.945 2.011-5.347l-.128-.084z\"\n fill=\"#F3BE13\"\n mask=\"url(#MLMatch_svg__f)\"\n />\n <ellipse\n fill=\"url(#MLMatch_svg__g)\"\n mask=\"url(#MLMatch_svg__f)\"\n cx={-1.89}\n cy={48.245}\n rx={36.534}\n ry={36.667}\n />\n </g>\n </g>\n <g transform=\"translate(45.647 30.765)\">\n <mask id=\"MLMatch_svg__j\" fill=\"#fff\">\n <use xlinkHref=\"#MLMatch_svg__h\" />\n </mask>\n <use fill=\"url(#MLMatch_svg__i)\" xlinkHref=\"#MLMatch_svg__h\" />\n <path\n fill=\"#D6FCFA\"\n fillRule=\"nonzero\"\n opacity={0.5}\n mask=\"url(#MLMatch_svg__j)\"\n d=\"M38.24 11.235v6l-3.55-.001-22.207 22.207h-18.13v-6H9.997l22.207-22.206zM25.682 40.779l13.8 13.799H50v6H36.997L21.439 45.021zM53.311 28.235v6h-13.65l-3.935 4.246-4.4-4.08 5.718-6.166zM14.248 52.235l20.52 20.52h3.695v6h-6.18l-20.52-20.52H-.647v-6zM21.353 84.235h8.95L40.4 94.332h16.753v6H37.915L27.817 90.235z\"\n />\n </g>\n <circle fill=\"#008FD8\" cx={94} cy={86} r={9} />\n </g>\n </svg>\n );\n};\n\nexport default SvgMlMatch;\n","import React, {useCallback, useState} from 'react';\nimport {MatchRuleSummary} from '@reltio/mdm-sdk';\nimport MatchRulesTooltip from '../MatchRulesTooltip/MatchRulesTooltip';\nimport SimpleMatchRules from '../SimpleMatchRules/SimpleMatchRules';\nimport {withTooltip} from '../../../HOCs';\nimport MatchRulesBadge from '../MatchRulesBadge/MatchRulesBadge';\nimport useStyles from './styles';\nimport MLMatchIcon from '../../../icons/MlMatch';\nimport {MatchRules} from '../types';\nimport i18n from 'ui-i18n';\n\nexport const MatchRuleBadgeWithTooltip = withTooltip(MatchRulesBadge);\n\ntype Props = {\n isMlMatch?: boolean;\n matchRules: MatchRules;\n matchRuleSummaries?: MatchRuleSummary[];\n};\n\nconst SimpleMatchRulesBlock = ({isMlMatch = false, matchRules, matchRuleSummaries}: Props) => {\n const styles = useStyles();\n const [expanded, setExpanded] = useState(false);\n const handleOnExpand = useCallback(() => setExpanded((expand) => !expand), []);\n return (\n <div className={styles.container} data-reltio-id=\"simple-match-rules-block\">\n <MatchRuleBadgeWithTooltip\n tooltipTitle={<MatchRulesTooltip matchRules={matchRules} isMlMatch={isMlMatch} />}\n tooltipPlacement=\"bottom-start\"\n onExpand={handleOnExpand}\n expanded={expanded}\n >\n {isMlMatch ? (\n <>\n <MLMatchIcon className={styles.icon} />\n {i18n.text('Match IQ')}\n </>\n ) : (\n i18n.text('Rules')\n )}\n </MatchRuleBadgeWithTooltip>\n {expanded ? (\n <SimpleMatchRules\n className={styles.rulesContainer}\n matchRules={matchRules}\n isMlMatch={isMlMatch}\n matchRuleSummaries={matchRuleSummaries}\n />\n ) : null}\n </div>\n );\n};\n\nexport default SimpleMatchRulesBlock;\n","import {makeStyles} from '@mui/styles';\n\nconst styles = makeStyles({\n container: {\n display: 'flex',\n flexDirection: 'column',\n\n '& :not(:last-child)': {\n marginBottom: '2px'\n }\n }\n});\n\nexport default styles;\n","import React from 'react';\nimport {isEmpty} from 'ramda';\nimport {partitionByMlMatch, MatchRuleSummary} from '@reltio/mdm-sdk';\nimport {MatchRules, MatchRuleVariant} from '../types';\nimport useStyles from './styles';\n\ntype Props = {\n matchRules: MatchRules;\n Component: React.ElementType;\n className?: string;\n variant?: MatchRuleVariant;\n matchRuleSummaries?: MatchRuleSummary[];\n};\n\nconst SimpleMatchRulesBuilder = ({matchRules, Component, variant = MatchRuleVariant.all, ...otherProps}: Props) => {\n const styles = useStyles();\n const [MlMatchRules, otherMatchRules] = partitionByMlMatch(matchRules);\n const {all, simple, excludeNotMatch} = MatchRuleVariant;\n const showSimple = [all, simple, excludeNotMatch].includes(variant) && !isEmpty(otherMatchRules);\n const showML = [all, excludeNotMatch].includes(variant) && !isEmpty(MlMatchRules);\n\n return (\n <div className={styles.container}>\n {showSimple ? <Component matchRules={otherMatchRules} {...otherProps} /> : null}\n {showML ? <Component isMlMatch matchRules={MlMatchRules} {...otherProps} /> : null}\n </div>\n );\n};\n\nexport default SimpleMatchRulesBuilder;\n","import {makeStyles} from '@mui/styles';\n\nconst styles = makeStyles((theme) => ({\n label: {\n fontSize: '13px',\n lineHeight: '15px',\n color: theme.palette.primary.light\n },\n container: {\n display: 'flex',\n flexDirection: 'column'\n },\n badge: {\n display: 'flex',\n marginBottom: '8px',\n cursor: 'pointer'\n },\n matchLabels: {\n marginLeft: '30px'\n }\n}));\n\nexport default styles;\n","import React, {useCallback, useState} from 'react';\nimport {MatchRuleSummary} from '@reltio/mdm-sdk';\nimport ArrowExpandButton from '../../ArrowExpandButton/ArrowExpandButton';\nimport SimpleMatchRules from '../SimpleMatchRules/SimpleMatchRules';\nimport SimpleMatchRulesBuilder from '../SimpleMatchRulesBuilder/SimpleMatchRulesBuilder';\nimport {MatchRules} from '../types';\nimport useStyles from './styles';\n\ntype Props = {\n label: string;\n matchRules: MatchRules;\n matchRuleSummaries?: MatchRuleSummary[];\n};\n\nconst TransitiveMatchRule = ({label, matchRules, matchRuleSummaries}: Props) => {\n const styles = useStyles();\n const [expanded, setExpanded] = useState(false);\n const handleOnExpand = useCallback(() => setExpanded((expand) => !expand), []);\n\n return (\n <div data-reltio-id=\"transitive-match-rule\" className={styles.container}>\n <div onClick={handleOnExpand} className={styles.badge}>\n <ArrowExpandButton expanded={expanded} />\n <div className={styles.label}>{label}</div>\n </div>\n {expanded ? (\n <SimpleMatchRulesBuilder\n Component={SimpleMatchRules}\n matchRules={matchRules}\n matchRuleSummaries={matchRuleSummaries}\n className={styles.matchLabels}\n />\n ) : null}\n </div>\n );\n};\n\nexport default TransitiveMatchRule;\n","import {makeStyles} from '@mui/styles';\n\nconst styles = makeStyles({\n container: {\n display: 'flex',\n flexDirection: 'column',\n\n '& :not(:last-child)': {\n marginBottom: '2px'\n }\n }\n});\n\nexport default styles;\n","import {makeStyles} from '@mui/styles';\n\nconst styles = makeStyles({\n ruleWrapper: {\n paddingTop: '8px'\n },\n label: {\n fontWeight: 500,\n fontSize: '12px'\n }\n});\n\nexport default styles;\n","import React from 'react';\nimport MatchRulesTooltip from '../MatchRulesTooltip/MatchRulesTooltip';\nimport {TransitiveMatchRules} from '../types';\nimport useStyles from './styles';\n\ntype Props = {\n transitiveMatchRules: TransitiveMatchRules;\n};\n\nconst TransitiveMatchRulesTooltip = ({transitiveMatchRules}: Props) => {\n const styles = useStyles();\n return (\n <>\n {transitiveMatchRules.map(({label, matchRules}, index) => {\n return (\n <div key={index} className={styles.ruleWrapper}>\n <div className={styles.label}>{label}</div>\n <MatchRulesTooltip matchRules={matchRules} />\n </div>\n );\n })}\n </>\n );\n};\n\nexport default TransitiveMatchRulesTooltip;\n","import React, {useCallback, useState} from 'react';\nimport i18n from 'ui-i18n';\nimport {MatchRuleSummary} from '@reltio/mdm-sdk';\nimport MatchRulesBadge from '../MatchRulesBadge/MatchRulesBadge';\nimport TransitiveMatchRule from '../TransitiveMatchRules/TransitiveMatchRule';\nimport useStyles from './styles';\nimport {withTooltip} from '../../../HOCs';\nimport {TransitiveMatchRules} from '../types';\nimport TransitiveMatchRulesTooltip from '../TransitiveMatchRulesTooltip/TransitiveMatchRulesTooltip';\n\nexport const MatchRuleBadgeWithTooltip = withTooltip(MatchRulesBadge);\n\ntype Props = {\n transitiveMatchRules: TransitiveMatchRules;\n matchRuleSummaries?: MatchRuleSummary[];\n};\n\nconst TransitiveMatchBlock = ({transitiveMatchRules, matchRuleSummaries}: Props) => {\n const styles = useStyles();\n const [expanded, setExpanded] = useState(false);\n const handleOnExpand = useCallback(() => setExpanded((expand) => !expand), []);\n return (\n <div className={styles.container}>\n <MatchRuleBadgeWithTooltip\n tooltipTitle={<TransitiveMatchRulesTooltip transitiveMatchRules={transitiveMatchRules} />}\n tooltipPlacement=\"bottom-start\"\n onExpand={handleOnExpand}\n expanded={expanded}\n >\n {i18n.text('Transitive matches')}\n </MatchRuleBadgeWithTooltip>\n {expanded\n ? transitiveMatchRules.map((match, index) => {\n return <TransitiveMatchRule key={index} {...match} matchRuleSummaries={matchRuleSummaries} />;\n })\n : null}\n </div>\n );\n};\n\nexport default TransitiveMatchBlock;\n","type MatchRule = {\n uri: string;\n label: string;\n negativeRule?: Record<string, unknown>;\n};\n\nexport type MatchRules = MatchRule[];\nexport enum MatchRuleVariant {\n all = 'all',\n simple = 'simple',\n excludeNotMatch = 'excludeNotMatch'\n}\n\nexport type TransitiveMatchRules = Array<{\n label: string;\n matchRules: MatchRules;\n}>;\n","import React from 'react';\n\nconst SvgMergeDark: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width={24} height={24} viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M15.955 10.955v-3.5l4.5 4.5-4.5 4.5v-3.5h-6.41l-6-6 1.41-1.41 5.41 5.41h5.59zm-11 7.41l-1.41-1.41 3.41-3.41 1.41 1.41-3.41 3.41z\"\n fill=\"#000\"\n fillOpacity={0.54}\n />\n </svg>\n );\n};\n\nexport default SvgMergeDark;\n","import React, {forwardRef} from 'react';\nimport i18n from 'ui-i18n';\n\nimport MergeIcon from '../../icons/MergeDark';\n\nimport {noop} from '../../core';\nimport {ActionButton, ActionButtonMode} from '../ActionButton/ActionButton';\nimport {useMergeAllRequest} from '../../hooks';\nimport {ApiError, Entity} from '@reltio/mdm-sdk';\n\ntype Props = {\n className?: string;\n entities: Entity[];\n entity: Entity;\n mode?: ActionButtonMode;\n size?: string;\n onMenuClose?: () => void;\n disabled?: boolean;\n onStartRequest?: () => void;\n onFinishRequest?: () => void;\n onSuccess?: () => void;\n onError?: (error?: ApiError) => void;\n};\nexport const MergeButton = forwardRef<HTMLLIElement, Props>(\n (\n {\n className,\n mode = ActionButtonMode.iconButton,\n onMenuClose = noop,\n disabled = false,\n entity,\n entities,\n onStartRequest,\n onFinishRequest,\n onSuccess,\n onError,\n ...otherProps\n }: Props,\n ref\n ) => {\n const {sendMergeAllRequest} = useMergeAllRequest({\n entity,\n entities,\n onStartRequest,\n onFinishRequest,\n onError,\n onSuccess\n });\n\n return (\n <ActionButton\n className={className}\n disabled={disabled}\n mode={mode}\n label={i18n.text('Merge')}\n icon={MergeIcon}\n onClick={sendMergeAllRequest}\n onMenuClose={onMenuClose}\n ref={ref}\n {...otherProps}\n />\n );\n }\n);\n\nMergeButton.displayName = 'mergeButton';\n","import {makeStyles} from '@mui/styles';\n\nconst MAX_WIDTH_SELECT = 200;\nconst SELECT_PADDING_RIGHT = 32;\nconst SELECT_PADDING_LEFT = 12;\nconst CALCULATED_MAX_WIDTH_SELECT = MAX_WIDTH_SELECT - SELECT_PADDING_LEFT - SELECT_PADDING_RIGHT;\n\nexport const useStyles = makeStyles((theme) => ({\n root: {\n maxWidth: CALCULATED_MAX_WIDTH_SELECT,\n paddingTop: '9px',\n paddingBottom: '9px',\n '&$outlined': {\n minHeight: '1.1876em'\n }\n },\n outlined: {\n paddingRight: SELECT_PADDING_RIGHT,\n paddingLeft: SELECT_PADDING_LEFT\n },\n arrowIcon: {\n fontSize: '18px',\n top: 'calc(50% - 9px)',\n right: '12px',\n color: theme.palette.text.secondary\n },\n currentValue: {\n display: 'flex',\n alignItems: 'center'\n },\n currentValueIcon: {\n fontSize: '18px',\n marginRight: '8px',\n color: theme.palette.text.secondary\n },\n currentValueText: {\n fontSize: '14px',\n lineHeight: '16px',\n textTransform: 'uppercase',\n fontWeight: 500,\n color: theme.palette.text.primary,\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n overflow: 'hidden'\n },\n menuItem: {\n padding: '9px 12px 7px'\n },\n firstMenuItemButton: {\n borderTop: '1px solid #e4e4e4'\n },\n menuItemInner: {\n display: 'flex',\n alignItems: 'flex-start'\n },\n menuItemIcon: {\n fontSize: '18px',\n color: theme.palette.text.secondary,\n marginRight: '9px'\n },\n menuItemLabel: {\n fontSize: '14px',\n lineHeight: '16px',\n fontWeight: 500,\n color: theme.palette.text.primary\n },\n menuItemDescription: {\n fontSize: '10px',\n lineHeight: '16px',\n color: theme.palette.text.secondary\n }\n}));\n","import React from 'react';\nimport {propEq} from 'ramda';\nimport classnames from 'classnames';\nimport Select, {SelectChangeEvent} from '@mui/material/Select';\nimport MenuItem from '@mui/material/MenuItem';\nimport Box from '@mui/material/Box';\nimport Typography from '@mui/material/Typography';\nimport Tooltip from '@mui/material/Tooltip';\nimport {useStyles} from './styles';\n\ntype Option = {\n label: string;\n value: string;\n description?: string;\n icon?: React.ElementType;\n};\n\ntype Button = Option & {\n onClick: (value: string) => void;\n};\n\ntype ModeSwitcherSelectProps = {\n optionsGroup?: Option[];\n buttonsGroup?: Button[];\n value: string;\n onChange?: (value: string) => void;\n disabled?: boolean;\n};\n\ntype MenuItemProps = React.ComponentPropsWithoutRef<typeof MenuItem>;\n\nconst isButton = (value: Option | Button): value is Button => 'onClick' in value;\n\nexport const ModeSwitcherSelect = ({\n optionsGroup = [],\n buttonsGroup = [],\n value,\n onChange,\n disabled = false\n}: ModeSwitcherSelectProps) => {\n const styles = useStyles();\n\n const handleChange = (e: SelectChangeEvent<string>) => {\n const {value} = e.target;\n const isOption = optionsGroup.some(propEq('value', value));\n if (isOption) onChange(value);\n };\n\n const renderMenuItems = (items: (Option | Button)[]) => {\n const firstButtonIdx = items.findIndex(isButton);\n\n return items.map((item, idx) => {\n const {value, label, description, icon: IconComponent} = item;\n\n const menuItemProps: MenuItemProps = {\n value: value,\n className: styles.menuItem\n };\n\n if (isButton(item)) {\n menuItemProps.onClick = () => item.onClick(value);\n menuItemProps.className = classnames(menuItemProps.className, {\n [styles.firstMenuItemButton]: idx === firstButtonIdx\n });\n }\n\n return (\n <MenuItem key={value} {...menuItemProps} data-reltio-id={`reltio-profile-select-mode-${value}`}>\n <Box className={styles.menuItemInner}>\n {IconComponent && <IconComponent className={styles.menuItemIcon} />}\n <Box>\n <Typography className={styles.menuItemLabel}>{label}</Typography>\n <Typography className={styles.menuItemDescription}>{description}</Typography>\n </Box>\n </Box>\n </MenuItem>\n );\n });\n };\n\n return (\n <Select\n classes={{\n select: styles.root,\n icon: styles.arrowIcon,\n outlined: styles.outlined\n }}\n value={value}\n onChange={handleChange}\n variant=\"outlined\"\n renderValue={(value) => {\n const {icon: IconComponent, label = value} = optionsGroup.find(propEq('value', value)) || {};\n return (\n <Box className={styles.currentValue}>\n {IconComponent && <IconComponent className={styles.currentValueIcon} />}\n <Tooltip title={label}>\n <Typography className={styles.currentValueText}>{label}</Typography>\n </Tooltip>\n </Box>\n );\n }}\n MenuProps={{\n anchorOrigin: {\n vertical: 'bottom',\n horizontal: 'right'\n },\n transformOrigin: {\n vertical: 'top',\n horizontal: 'right'\n }\n }}\n disabled={disabled}\n data-reltio-id=\"reltio-profile-select-mode\"\n >\n {renderMenuItems([...optionsGroup, ...buttonsGroup])}\n </Select>\n );\n};\n","import React from 'react';\n\nconst SvgNotMatchDark: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width={24} height={24} viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M17 1.5v3.638h-1.247l-11.03 11H2v2h3.55l11.029-11H17V10.5L21.5 6 17 1.5zM8.844 8.785L5.55 5.5H2v2h2.723l2.707 2.7 1.414-1.415zm4.835 4.822l-1.414 1.414 3.488 3.479H17v3.638l4.5-4.5-4.5-4.5V16.5h-.421l-2.9-2.893z\"\n fill=\"#000\"\n fillOpacity={0.54}\n />\n </svg>\n );\n};\n\nexport default SvgNotMatchDark;\n","import {ApiError, Entity} from '@reltio/mdm-sdk';\nimport {ActionButton, ActionButtonMode} from '../ActionButton/ActionButton';\nimport React, {forwardRef} from 'react';\nimport NotMatchIcon from '../../icons/NotMatchDark';\nimport {noop} from '../../core';\nimport i18n from 'ui-i18n';\nimport {useMarkAsNotMatchRequest} from '../../hooks/useMarkAsNotMatchRequest';\n\ntype Props = {\n className?: string;\n entities: Entity[];\n entity: Entity;\n mode?: ActionButtonMode;\n size?: string;\n onMenuClose?: () => void;\n disabled?: boolean;\n onStartRequest?: () => void;\n onFinishRequest?: () => void;\n onSuccess?: () => void;\n onError?: (error?: ApiError) => void;\n};\nexport const NotMatchButton = forwardRef<HTMLLIElement, Props>(\n (\n {\n className,\n mode = ActionButtonMode.iconButton,\n onMenuClose = noop,\n disabled = false,\n entity,\n entities,\n onStartRequest,\n onFinishRequest,\n onError,\n onSuccess,\n ...otherProps\n }: Props,\n ref\n ) => {\n const {sendMarkAsNotMatchRequest} = useMarkAsNotMatchRequest({\n entity,\n entities,\n onStartRequest,\n onFinishRequest,\n onError,\n onSuccess\n });\n\n return (\n <ActionButton\n className={className}\n disabled={disabled}\n mode={mode}\n label={i18n.text('Not a match')}\n icon={NotMatchIcon}\n onClick={sendMarkAsNotMatchRequest}\n onMenuClose={onMenuClose}\n ref={ref}\n {...otherProps}\n />\n );\n }\n);\n\nNotMatchButton.displayName = 'notMatchButton';\n","import {makeStyles} from '@mui/styles';\n\nexport const useStyles = makeStyles({\n badge: {\n background: 'rgba(0, 0, 0, 0.03)',\n borderRadius: '2px',\n padding: '2px 7px',\n fontSize: '12px',\n wordBreak: 'break-word'\n }\n});\n","import React from 'react';\nimport classnames from 'classnames';\nimport mdmModule from '@reltio/mdm-module';\nimport {\n getMatchRuleLabel,\n MatchRuleSummary,\n formatRelevanceScore,\n checkMatchRuleSummaryRelevance\n} from '@reltio/mdm-sdk';\nimport {useSelector} from 'react-redux';\nimport Tooltip from '@mui/material/Tooltip';\nimport i18n from 'ui-i18n';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n className?: string;\n matchRuleSummaries?: MatchRuleSummary[];\n};\n\nexport const RelevanceScoreBadge = ({className, matchRuleSummaries}: Props) => {\n const styles = useStyles();\n const metadata = useSelector(mdmModule.selectors.getMetadata);\n const entity = useSelector(mdmModule.selectors.getEntity);\n const matchRuleSummaryWithBestScore = matchRuleSummaries\n ?.filter(checkMatchRuleSummaryRelevance)\n .sort((a, b) => b.relevance - a.relevance)[0];\n if (!matchRuleSummaryWithBestScore) {\n return null;\n }\n const {uri: matchRule} = matchRuleSummaryWithBestScore;\n const relevancePercentage = formatRelevanceScore(matchRuleSummaryWithBestScore);\n const tooltipTitle = i18n.text('Relevance score based on ${ruleName}', {\n ruleName: getMatchRuleLabel(metadata, entity.type, matchRule)\n });\n return (\n <Tooltip title={tooltipTitle}>\n <div className={classnames(className, styles.badge)}>\n {relevancePercentage}\n {`: ${i18n.text('Relevance score')}`}\n </div>\n </Tooltip>\n );\n};\n","import {makeStyles} from '@mui/styles';\n\nexport const useStyles = makeStyles({\n container: {\n display: 'flex',\n flexShrink: 0,\n height: '63px',\n alignItems: 'center',\n borderBottom: '1px solid rgba(0,0,0,0.12)'\n },\n icon: {\n margin: '0 12px'\n },\n divider: {\n borderColor: 'rgba(0,0,0,0.12)',\n margin: '19px 17px'\n },\n secondTitle: {\n fontSize: '14px'\n }\n});\n","import React, {ReactNode} from 'react';\nimport CloseIcon from '@mui/icons-material/Close';\nimport {useStyles} from './styles';\nimport Typography from '@mui/material/Typography';\nimport Divider from '@mui/material/Divider';\nimport i18n from 'ui-i18n';\nimport {SmallIconButtonWithTooltip} from '../../SmallIconButton';\n\ntype HeaderProps = {\n mainTitle?: string;\n secondTitle?: string;\n content?: ReactNode;\n rightContent?: ReactNode;\n};\n\ntype Props = HeaderProps & {\n onClose: () => void;\n};\nexport const SidePanelContentHeader = ({onClose, mainTitle, secondTitle, content, rightContent}: Props) => {\n const styles = useStyles();\n return (\n <div className={styles.container}>\n <SmallIconButtonWithTooltip\n size=\"L\"\n icon={CloseIcon}\n onClick={onClose}\n className={styles.icon}\n tooltipTitle={i18n.text('Close')}\n />\n {content || (\n <>\n <Typography variant=\"h6\">{mainTitle}</Typography>\n {secondTitle && (\n <>\n <Divider orientation=\"vertical\" flexItem className={styles.divider} />\n <Typography variant=\"body1\" color=\"textSecondary\" className={styles.secondTitle}>\n {secondTitle}\n </Typography>\n </>\n )}\n {rightContent}\n </>\n )}\n </div>\n );\n};\n","import React from 'react';\nimport i18n from 'ui-i18n';\nimport {WorkflowTaskData} from '@reltio/mdm-sdk';\n\nimport DropDownSelector from '../../../DropDownSelector/DropDownSelector';\nimport {useWorkflowAssignee} from '../../hooks/useWorkflowAssignee';\n\ntype Props = Pick<WorkflowTaskData, 'taskId' | 'assignee'> & {\n isTaskOpen?: WorkflowTaskData['isOpen'];\n};\n\nconst AssigneeSelector = ({taskId, assignee, isTaskOpen}: Props) => {\n const {\n assignee: currentAssignee,\n getAssignees,\n updateAssignee,\n updateRequestIsInProgress,\n readOnly\n } = useWorkflowAssignee({\n taskId,\n assignee,\n isOpen: isTaskOpen\n });\n const disabled = updateRequestIsInProgress || readOnly;\n\n return (\n <DropDownSelector\n isDisabled={disabled}\n getOptions={getAssignees}\n onChange={updateAssignee}\n hideSelectedOptions={false}\n label={i18n.text('Assigned to')}\n value={currentAssignee}\n defaultOptions={true}\n TextFieldProps={{disabled}}\n height={40}\n />\n );\n};\n\nexport default AssigneeSelector;\n","import React from 'react';\nimport MoreVertIcon from '@mui/icons-material/MoreVert';\n\nimport {TaskAction} from '../../hooks/useWorkflowActions';\nimport DropDownMenuButton from '../../../DropDownMenuButton/DropDownMenuButton';\nimport SmallIconButton from '../../../SmallIconButton/SmallIconButton';\n\ntype Props = {\n isInProgress?: boolean;\n actions: TaskAction[];\n};\n\nconst TaskActions = ({actions, isInProgress: disabled}: Props) => {\n return actions.length > 0 ? (\n <DropDownMenuButton\n buttonComponent={SmallIconButton}\n buttonProps={{\n icon: MoreVertIcon,\n size: 'L',\n disabled,\n 'data-reltio-id': 'task-actions'\n }}\n menuId={'workflow-actions'}\n menuItems={actions}\n />\n ) : null;\n};\n\nexport default TaskActions;\n","import {makeStyles} from '@mui/styles';\n\nexport const useCommentStyles = makeStyles((_theme) => ({\n comment: {\n display: 'flex',\n flexDirection: 'row',\n flex: 1,\n marginLeft: '6px'\n },\n avatar: {\n height: '24px',\n width: '24px',\n margin: '3px 13px 0 0'\n },\n icon: {\n fill: '#537280',\n backgroundColor: '#EAEDEE'\n },\n firstLine: {\n display: 'flex',\n flexDirection: 'row'\n },\n info: {\n flex: 1\n },\n author: {\n flex: 1,\n fontWeight: 500,\n color: 'rgba(0,0,0,0.87)',\n fontSize: '13px',\n lineHeight: '15px'\n },\n date: {\n color: 'rgba(0, 0, 0, 0.54)',\n fontSize: '11px',\n marginRight: '17px',\n lineHeight: '15px'\n },\n text: {\n color: 'rgba(0, 0, 0, 0.6)',\n fontSize: '13px',\n wordWrap: 'break-word',\n wordBreak: 'break-all',\n paddingRight: '10px'\n }\n}));\n\nexport const useCollapsedCommentsStyles = makeStyles((_theme) => ({\n circleButton: {\n maxWidth: '14px',\n maxHeight: '14px',\n border: '1px solid rgba(0, 0, 0, 0.3)',\n fontSize: '13px',\n color: 'rgba(0, 0, 0, 0.6)',\n position: 'absolute',\n top: '-11px',\n left: '5px',\n backgroundColor: '#ffffff',\n '&:hover': {\n backgroundColor: '#f7f7f7'\n },\n '&.focused': {\n backgroundColor: '#f7f7f7'\n }\n },\n\n delimiter: {\n position: 'relative',\n height: '4px',\n borderTop: '1px solid rgba(0, 0, 0, 0.3)',\n borderBottom: '1px solid rgba(0, 0, 0, 0.3)',\n margin: '15px 0 24px 0'\n }\n}));\nexport const useWorkflowStyles = makeStyles((_theme) => ({\n container: {\n padding: '5px 0',\n display: 'flex',\n flexDirection: 'column'\n },\n commentsContainer: {\n maxHeight: '300px',\n overflowY: 'auto'\n },\n title: {\n margin: '0 0 8px 5px',\n fontSize: '14px',\n color: 'rgba(0, 0, 0, 0.87)'\n },\n filledInputRoot: {\n backgroundColor: 'rgba(0, 0, 0, 0.03)',\n padding: '0 6px',\n height: '40px',\n margin: '10px 17px 0 6px',\n fontSize: '14px',\n '&:hover': {\n backgroundColor: 'rgba(0, 0, 0, 0.03)'\n },\n '&.focused': {\n backgroundColor: 'rgba(0, 0, 0, 0.03)'\n }\n },\n modeSwitcherWrapper: {\n marginLeft: 'auto',\n marginRight: '16px',\n marginTop: '8px'\n }\n}));\n\nexport const useExpandedComments = makeStyles((_theme) => ({\n messageContainer: {\n borderBottom: '1px solid rgba(0,0,0,0.3)',\n paddingBottom: '7px',\n marginBottom: '7px'\n }\n}));\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Avatar from '@mui/material/Avatar';\nimport Person from '@mui/icons-material/Person';\nimport i18n from 'ui-i18n';\nimport classnames from 'classnames';\nimport {useCommentStyles} from './styles';\n\nexport const Comment = ({author, classes, message, time}) => {\n const styles = useCommentStyles();\n return (\n <div className={styles.comment}>\n <Avatar className={styles.avatar}>\n <Person className={styles.icon} />\n </Avatar>\n <div className={classnames(styles.info, classes.messageContainer)}>\n <div className={styles.firstLine}>\n <div className={styles.author}>{author}</div>\n <span className={styles.date}>{i18n.date(time, 'L LT')}</span>\n </div>\n <div className={styles.text}>{message}</div>\n </div>\n </div>\n );\n};\nComment.defaultProps = {\n classes: {}\n};\nComment.propTypes = {\n classes: PropTypes.object,\n author: PropTypes.string,\n id: PropTypes.string,\n message: PropTypes.string,\n time: PropTypes.number\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport IconButton from '@mui/material/IconButton';\nimport {Comment} from './Comment';\nimport {useCollapsedCommentsStyles} from './styles';\n\nexport const CollapsedComments = ({comments, onClick}) => {\n const styles = useCollapsedCommentsStyles();\n return (\n <>\n <Comment {...comments[0]} />\n <div className={styles.delimiter}>\n <IconButton className={styles.circleButton} onClick={onClick} size=\"large\">\n {comments.length - 2}\n </IconButton>\n </div>\n <Comment {...comments[comments.length - 1]} />\n </>\n );\n};\nCollapsedComments.propTypes = {\n comments: PropTypes.arrayOf(\n PropTypes.shape({\n author: PropTypes.string,\n id: PropTypes.string,\n message: PropTypes.string,\n time: PropTypes.number\n })\n ),\n onClick: PropTypes.func\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport {Comment} from './Comment';\nimport {useExpandedComments} from './styles';\n\nexport const ExpandedComments = ({comments}) => {\n const styles = useExpandedComments();\n return comments.map(({author, id, message, time}) => (\n <Comment\n classes={{messageContainer: styles.messageContainer}}\n key={id}\n author={author}\n message={message}\n time={time}\n />\n ));\n};\nExpandedComments.propTypes = {\n comments: PropTypes.arrayOf(\n PropTypes.shape({\n author: PropTypes.string,\n id: PropTypes.string,\n message: PropTypes.string,\n time: PropTypes.number\n })\n )\n};\n","import React, {useCallback, useState, useMemo} from 'react';\nimport {pipe, propEq, when, both, always} from 'ramda';\nimport Input from '@mui/material/Input';\nimport InputAdornment from '@mui/material/InputAdornment';\nimport SendIcon from '@mui/icons-material/Send';\nimport i18n from 'ui-i18n';\nimport {WorkflowAction, WorkflowComment} from '@reltio/mdm-sdk';\nimport Button from '@mui/material/Button';\nimport {CollapsedComments} from './CollapsedComments';\nimport {ExpandedComments} from './ExpandedComments';\nimport {useWorkflowStyles} from './styles';\nimport {useWorkflowComments} from '../../hooks/useWorkflowComments';\nimport {SmallIconButton} from '../../../SmallIconButton';\nimport {TaskAction} from '../../hooks/useWorkflowActions';\nimport {ModeSwitcherSelect} from '../../../ModeSwitcherSelect/ModeSwitcherSelect';\n\nconst getValue = (e) => e.target.value;\n\ntype Props = {\n actionRequestIsInProgress?: boolean;\n workflowActions: TaskAction[];\n processInstanceComments: WorkflowComment[];\n taskId: string;\n isTaskOpen: boolean;\n preferredAction: WorkflowAction;\n};\n\nexport const WorkflowComments = ({\n workflowActions: actions,\n actionRequestIsInProgress,\n processInstanceComments,\n taskId,\n isTaskOpen,\n preferredAction\n}: Props) => {\n const styles = useWorkflowStyles();\n const [expanded, setExpanded] = useState(false);\n const [comment, setComment] = useState('');\n const [currentAction, setCurrentAction] = useState(preferredAction.label);\n const {comments, writeComment, readOnly} = useWorkflowComments({\n processInstanceComments,\n taskId,\n isOpen: isTaskOpen\n });\n\n const sendComment = useCallback(() => {\n writeComment(comment);\n setComment('');\n }, [comment, writeComment]);\n const onChange = pipe(getValue, setComment);\n\n const BUTTONS_GROUP = useMemo(\n () => [\n ...actions.map(({text, onClick}) => ({\n label: text,\n onClick: () => {\n setCurrentAction(text);\n onClick(comment);\n },\n value: text\n }))\n ],\n [actions, comment]\n );\n\n return (\n <div className={styles.container}>\n <div className={styles.title}> {i18n.text('Comments')} </div>\n <div className={styles.commentsContainer}>\n {expanded || comments.length < 3 ? (\n <ExpandedComments comments={comments} />\n ) : (\n <CollapsedComments onClick={() => setExpanded(true)} comments={comments} />\n )}\n </div>\n {!readOnly && (\n <Input\n endAdornment={\n <InputAdornment position=\"end\">\n <SmallIconButton\n icon={SendIcon}\n disabled={comment.length === 0}\n onClick={sendComment}\n data-reltio-id=\"send-button\"\n />\n </InputAdornment>\n }\n classes={{root: styles.filledInputRoot}}\n placeholder={i18n.text('Write a comment')}\n value={comment}\n onKeyPress={when(both(propEq('key', 'Enter'), always(comment.length > 0)), sendComment)}\n onChange={onChange}\n disableUnderline\n />\n )}\n <div className={styles.modeSwitcherWrapper}>\n {BUTTONS_GROUP.length === 1 && (\n <Button variant=\"outlined\" onClick={BUTTONS_GROUP[0].onClick} disabled={actionRequestIsInProgress}>\n {BUTTONS_GROUP[0].label}\n </Button>\n )}\n {BUTTONS_GROUP.length > 1 && (\n <ModeSwitcherSelect\n buttonsGroup={BUTTONS_GROUP}\n value={currentAction}\n disabled={actionRequestIsInProgress}\n />\n )}\n </div>\n </div>\n );\n};\n","import i18n from 'ui-i18n';\nimport {ApiError, ApiErrorCode, WorkflowApiError} from '@reltio/mdm-sdk';\nimport ErrorPopup from '../../ErrorPopup/ErrorPopup';\n\nexport const showApiError = (error: ApiError = {}) => {\n console.error(error); // eslint-disable-line\n ErrorPopup.addError({\n title: i18n.text('Error'),\n message: error.errorMessage || i18n.text('Something went wrong...')\n });\n};\n\nexport const showWorkflowError = (apiError: WorkflowApiError = {}) => {\n const error = apiError.error;\n if (error?.errorCode === ApiErrorCode.WORKFLOW_IS_NOT_REGISTERED_ERROR) {\n return;\n }\n showApiError(error);\n};\n","import {pipe, startsWith, isNil, unless, split, nth} from 'ramda';\nimport {WorkflowTaskData} from '@reltio/mdm-sdk';\n\nconst getDCRUri = (objectUris: string[] = []): string => objectUris.find(startsWith('changeRequests/'));\n\nconst getDCRId = (objectUris: string[] = []): string =>\n pipe(getDCRUri, unless(isNil, pipe(split('/'), nth(1))))(objectUris);\n\nconst isOpenTask = (isOpen: WorkflowTaskData['isOpen']) => isOpen === undefined || isOpen === true;\n\nexport {getDCRUri, getDCRId, isOpenTask};\n","import {useCallback, useContext, useMemo, useState, MouseEventHandler} from 'react';\nimport {useSelector} from 'react-redux';\nimport {runTaskAction, WorkflowTaskData} from '@reltio/mdm-sdk';\nimport mdmModule from '@reltio/mdm-module';\nimport {showWorkflowError} from '../helpers/errors';\nimport {WorkflowTasksContext} from '../../../contexts/WorkflowTasksContext';\nimport {isOpenTask} from '../helpers';\n\nexport type TaskAction = {text: string; onClick: (comment: string) => void};\n\ntype Props = Pick<WorkflowTaskData, 'taskId' | 'possibleActions' | 'assignee' | 'isOpen'>;\nexport const useWorkflowActions = ({possibleActions, assignee, taskId, isOpen}: Props) => {\n const {onActionSuccess} = useContext(WorkflowTasksContext) || {};\n const workflowPath: string = useSelector(mdmModule.selectors.getWorkflowPath);\n const environment: string = useSelector(mdmModule.selectors.getWorkflowEnvironmentUrl);\n const tenant: string = useSelector(mdmModule.selectors.getTenant);\n const username: string = useSelector(mdmModule.selectors.getUserName);\n const [actionRequestIsInProgress, setActionRequestIsInProgress] = useState(false);\n\n const performTaskAction = useCallback(\n (action: string) => (comment: string | MouseEventHandler<HTMLButtonElement>) => {\n if (workflowPath && taskId) {\n setActionRequestIsInProgress(true);\n const processInstanceComment = typeof comment === 'string' && comment.length ? comment : undefined;\n\n runTaskAction({\n taskId,\n workflowPath,\n environment,\n tenant,\n action,\n processInstanceComment\n })\n .then(() => {\n onActionSuccess?.(action);\n })\n .catch(showWorkflowError)\n .finally(() => {\n setActionRequestIsInProgress(false);\n });\n }\n },\n [workflowPath, taskId, environment, tenant, onActionSuccess]\n );\n\n const actions: TaskAction[] = useMemo(\n () =>\n username === assignee && isOpenTask(isOpen)\n ? (possibleActions || []).map(({action, label}) => ({\n text: label,\n onClick: performTaskAction(action)\n }))\n : [],\n [possibleActions, performTaskAction, username, assignee, isOpen]\n );\n return {actions, actionRequestIsInProgress};\n};\n","import {useState, useEffect, useCallback, useContext} from 'react';\nimport {filter} from 'ramda';\nimport {useSelector} from 'react-redux';\nimport {getAssigneeForTask, updateAssigneeForTask, utils, WorkflowTaskData} from '@reltio/mdm-sdk';\nimport mdmModule from '@reltio/mdm-module';\nimport {useSafePromise} from '../../../hooks';\nimport {WorkflowTasksContext} from '../../../contexts';\nimport {showWorkflowError} from '../helpers/errors';\nimport {useWorkflowCheckPermission} from './useWorkflowCheckPermission';\nimport {isOpenTask} from '../helpers';\n\ntype AssigneeOption = {label: string; value: string};\n\nconst assigneeToValue = (assignee: string): AssigneeOption => ({\n label: assignee,\n value: assignee\n});\nexport const useWorkflowAssignee = ({\n assignee,\n taskId,\n isOpen\n}: Partial<Pick<WorkflowTaskData, 'taskId' | 'assignee' | 'isOpen'>>) => {\n const {updateTaskState} = useContext(WorkflowTasksContext) || {};\n const workflowPath: string = useSelector(mdmModule.selectors.getWorkflowPath);\n const environment: string = useSelector(mdmModule.selectors.getWorkflowEnvironmentUrl);\n const tenant: string = useSelector(mdmModule.selectors.getTenant);\n const updateSafePromise = useSafePromise();\n const getSafePromise = useSafePromise();\n const [currentAssignee, setCurrentAssignee] = useState<AssigneeOption>(null);\n const [assignees, setAssignees] = useState<AssigneeOption[]>();\n const [updateRequestIsInProgress, setUpdateRequestIsInProgress] = useState(false);\n const checkWorkflowPermission = useWorkflowCheckPermission();\n const canUpdateTask = checkWorkflowPermission('UPDATE_TASK') && isOpenTask(isOpen);\n\n useEffect(() => {\n setCurrentAssignee(assigneeToValue(assignee));\n }, [assignee]);\n const getAssignees = useCallback(\n (text) => {\n if (workflowPath && canUpdateTask && taskId) {\n const filterOutRest: <T>(items: T[]) => T[] = filter((item) => item.value.toLowerCase().includes(text));\n if (assignees) {\n return Promise.resolve(filterOutRest(assignees));\n }\n return getSafePromise(\n getAssigneeForTask({\n taskId,\n workflowPath,\n environment,\n tenant\n })\n )\n .then((result) => {\n const {data} = result;\n const assignees = data\n .sort((a, b) => {\n return utils.strings.sort('asc', a, b);\n })\n .map(assigneeToValue);\n setAssignees(assignees);\n return filterOutRest(assignees);\n })\n .catch(showWorkflowError);\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [workflowPath, taskId, environment, tenant, assignees, setAssignees, canUpdateTask]\n );\n const updateAssignee = useCallback(\n (newValue: AssigneeOption) => {\n if (workflowPath && canUpdateTask && taskId) {\n const {value: assignee} = newValue;\n setUpdateRequestIsInProgress(true);\n updateSafePromise(\n updateAssigneeForTask({\n taskId,\n workflowPath,\n environment,\n tenant,\n assignee\n })\n )\n .then(() => {\n setCurrentAssignee(assigneeToValue(assignee));\n updateTaskState?.(taskId, {assignee});\n })\n .catch(showWorkflowError)\n .finally(() => {\n setUpdateRequestIsInProgress(false);\n });\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [workflowPath, taskId, environment, tenant, canUpdateTask]\n );\n return {\n assignee: currentAssignee,\n getAssignees,\n updateAssignee,\n updateRequestIsInProgress,\n readOnly: !canUpdateTask\n };\n};\n","import {useSelector} from 'react-redux';\nimport mdmModule from '@reltio/mdm-module';\n\nexport const useWorkflowCheckPermission: () => (permission: string) => boolean = () => {\n const workflowPath = useSelector(mdmModule.selectors.getWorkflowPath);\n const canUserStartProcessFromQuery = useSelector(mdmModule.selectors.getCanUserStartProcessFromQuery);\n const canUserViewWorkflowJobs = useSelector(mdmModule.selectors.getCanUserViewWorkflowJobs);\n const canUserViewWorkflowEnvironmentConfigJar = useSelector(\n mdmModule.selectors.getCanUserViewWorkflowEnvironmentConfigJar\n );\n const canUserViewWorkflowDefinition = useSelector(mdmModule.selectors.getCanUserViewWorkflowDefinition);\n const canUserViewWorkflowConfigJar = useSelector(mdmModule.selectors.getCanUserViewWorkflowConfigJar);\n const canUserViewProcessInstanceSearchQuery = useSelector(\n mdmModule.selectors.getCanUserViewProcessInstanceSearchQuery\n );\n const canUserUpdateWorkflowDataTask = useSelector(mdmModule.selectors.getCanUserUpdateWorkflowDataTask);\n const canUserUpdateProcessInstance = useSelector(mdmModule.selectors.getCanUserUpdateProcessInstance);\n const canUserReadWorkflowDataTask = useSelector(mdmModule.selectors.getCanUserReadWorkflowDataTask);\n const canUserManageWorkflowEnvironmentDefinition = useSelector(\n mdmModule.selectors.getCanUserManageWorkflowEnvironmentDefinition\n );\n const canUserManageWorkflowDefinition = useSelector(mdmModule.selectors.getCanUserManageWorkflowDefinition);\n const canUserExecuteWorkflowJobsValidateTasks = useSelector(\n mdmModule.selectors.getCanUserExecuteWorkflowJobsValidateTasks\n );\n const canUserExecuteWorkflowJobsUpdateTasks = useSelector(\n mdmModule.selectors.getCanUserExecuteWorkflowJobsUpdateTasks\n );\n const canUserExecuteWorkflowJobsTerminateProcessInstance = useSelector(\n mdmModule.selectors.getCanUserExecuteWorkflowJobsTerminateProcessInstance\n );\n const canUserExecuteWorkflowJobsSyncBusinessProcessData = useSelector(\n mdmModule.selectors.getCanUserExecuteWorkflowJobsSyncBusinessProcessData\n );\n const canUserExecuteWorkflowJobs = useSelector(mdmModule.selectors.getCanUserExecuteWorkflowJobs);\n const canUserCreateWorkflowEnvironmentConfigJar = useSelector(\n mdmModule.selectors.getCanUserCreateWorkflowEnvironmentConfigJar\n );\n const canUserRegisterConfigEnvironments = useSelector(mdmModule.selectors.getCanUserRegisterConfigEnvironments);\n const canUserCreateWorkflowConfigJar = useSelector(mdmModule.selectors.getCanUserCreateWorkflowConfigJar);\n const checkWorkflowPermission = (permission: string) => {\n if (!workflowPath) return false;\n switch (permission) {\n case 'VIEW_PROCESS_DEFINITIONS': {\n return canUserViewWorkflowDefinition;\n }\n case 'DEPLOY_GENERIC_PROCESS_DEFINITION': {\n return canUserManageWorkflowEnvironmentDefinition;\n }\n case 'VIEW_JOBS': {\n return canUserViewWorkflowJobs;\n }\n case 'START_JOB': {\n return (\n canUserExecuteWorkflowJobs ||\n (canUserExecuteWorkflowJobsSyncBusinessProcessData &&\n canUserExecuteWorkflowJobsTerminateProcessInstance &&\n canUserExecuteWorkflowJobsUpdateTasks &&\n canUserExecuteWorkflowJobsValidateTasks)\n );\n }\n case 'VIEW_CUSTOM_JARS': {\n return canUserViewWorkflowConfigJar || canUserViewWorkflowEnvironmentConfigJar;\n }\n case 'UPDATE_PROCESS_INSTANCE': {\n return canUserUpdateProcessInstance;\n }\n case 'VIEW_TASKS': {\n return canUserReadWorkflowDataTask;\n }\n case 'REGISTER_TENANT': {\n return canUserRegisterConfigEnvironments;\n }\n case 'START_PROCESS_INSTANCE': {\n return canUserStartProcessFromQuery;\n }\n case 'VIEW_PROCESS_INSTANCE_COMMENTS': {\n return canUserViewProcessInstanceSearchQuery;\n }\n case 'VIEW_PROCESS_INSTANCES': {\n return canUserViewProcessInstanceSearchQuery;\n }\n case 'UPDATE_TASK': {\n return canUserUpdateWorkflowDataTask;\n }\n case 'DEPLOY_TENANT_PROCESS_DEFINITION': {\n return canUserManageWorkflowDefinition;\n }\n case 'DEPLOY_CUSTOM_JAR': {\n return canUserCreateWorkflowConfigJar && canUserCreateWorkflowEnvironmentConfigJar;\n }\n case 'START_PROCESS_INSTANCE_SEARCH_QUERY': {\n return canUserStartProcessFromQuery;\n }\n case 'VIEW_PROCESS_INSTANCE_COUNT': {\n return canUserViewProcessInstanceSearchQuery;\n }\n }\n return false;\n };\n return checkWorkflowPermission;\n};\n","import {useState, useEffect, useCallback, useContext} from 'react';\nimport {addCommentForTask, getTaskById, WorkflowTaskData} from '@reltio/mdm-sdk';\nimport mdmModule from '@reltio/mdm-module';\nimport {useSelector} from 'react-redux';\nimport {useSafePromise} from '../../../hooks';\nimport {WorkflowTasksContext} from '../../../contexts/WorkflowTasksContext';\nimport {showWorkflowError} from '../helpers/errors';\nimport {useWorkflowCheckPermission} from './useWorkflowCheckPermission';\nimport {isOpenTask} from '../helpers';\n\ntype Props = Pick<WorkflowTaskData, 'processInstanceComments' | 'taskId' | 'isOpen'>;\n\nexport const useWorkflowComments = ({processInstanceComments, taskId, isOpen}: Props) => {\n const {updateTaskState} = useContext(WorkflowTasksContext) || {};\n const workflowPath: string = useSelector(mdmModule.selectors.getWorkflowPath);\n const environment: string = useSelector(mdmModule.selectors.getWorkflowEnvironmentUrl);\n const tenant: string = useSelector(mdmModule.selectors.getTenant);\n const safePromise = useSafePromise();\n const [comments, setComments] = useState([]);\n const [requestIsInProgress, setRequestIsInProgress] = useState(false);\n const checkWorkflowPermission = useWorkflowCheckPermission();\n const canUpdateTask = checkWorkflowPermission('UPDATE_TASK') && isOpenTask(isOpen);\n useEffect(() => {\n setComments(processInstanceComments || []);\n }, [processInstanceComments]);\n\n const writeComment = useCallback(\n (comment) => {\n if (canUpdateTask) {\n setRequestIsInProgress(true);\n safePromise(\n addCommentForTask({\n workflowPath,\n environment,\n tenant,\n taskId,\n comment\n }).then(() =>\n getTaskById({\n workflowPath,\n environment,\n tenant,\n taskId\n })\n )\n )\n .then(({processInstanceComments}) => {\n setComments(processInstanceComments || []);\n updateTaskState?.(taskId, {processInstanceComments});\n })\n .catch(showWorkflowError)\n .finally(() => setRequestIsInProgress(false));\n }\n },\n [environment, taskId, tenant, workflowPath, safePromise, updateTaskState, canUpdateTask]\n );\n return {comments, requestIsInProgress, writeComment, readOnly: !canUpdateTask};\n};\n","import {useCallback, useContext} from 'react';\nimport {useDispatch, useSelector} from 'react-redux';\nimport mdmModule, {profile, ui} from '@reltio/mdm-module';\nimport {ViewIdContext, WorkflowTasksContext} from '../../../contexts';\n\nexport const useWorkflowDefaultActionSuccessHandler = () => {\n const {loadTasks} = useContext(WorkflowTasksContext) || {};\n const viewId = useContext(ViewIdContext);\n const entityUri: string = useSelector(mdmModule.selectors.getEntityUri);\n const dispatch = useDispatch();\n return useCallback(\n (action: string) => {\n if (action === 'Delete') {\n dispatch(ui.actions.entityDeletionFinished());\n } else {\n // entity refreshing\n dispatch(profile.entity.actions.loadEntity({viewId, uri: entityUri}));\n loadTasks?.();\n }\n },\n [dispatch, entityUri, loadTasks, viewId]\n );\n};\n","import React from 'react';\n\nexport const SnackbarContext = React.createContext<(message: string) => void>(() => {});\n\nSnackbarContext.displayName = 'SnackbarContext';\n","import React from 'react';\nimport {WorkflowTaskData, WorkflowTasksResponse} from '@reltio/mdm-sdk';\n\nexport const WorkflowTasksContext = React.createContext<{\n tasks: WorkflowTaskData[];\n total: WorkflowTasksResponse['total'];\n loading: boolean;\n updateTaskState: (taskId: WorkflowTaskData['taskId'], payload: Partial<WorkflowTaskData>) => void;\n loadTasks: () => void;\n onActionSuccess?: (action: string) => void;\n }>(null);\n\nWorkflowTasksContext.displayName = 'WorkflowTasksContext';\n","import {useMemo} from 'react';\nimport {pipe} from 'ramda';\n\ntype UseActions = ({\n actions,\n dispatch\n}: {\n actions: {\n [key: string]: <T>(payload: T) => {type: string; payload: T};\n };\n dispatch: <T>({type, payload}: {type: string; payload: T}) => void;\n}) => {\n [key in keyof typeof actions]: <T>(payload: T) => void;\n};\n\nexport const useActions: UseActions = ({actions, dispatch}) =>\n useMemo(\n () =>\n Object.entries(actions).reduce((acc, [actionName, actionCreator]) => {\n return {...acc, [actionName]: pipe(actionCreator, dispatch)};\n }, {}),\n [dispatch, actions]\n );\n","import {useEffect, useRef} from 'react';\n\nexport const useIsMountedRef = () => {\n const isMountedRef = useRef(false);\n useEffect(() => {\n isMountedRef.current = true;\n return () => {\n isMountedRef.current = false;\n };\n });\n return isMountedRef;\n};\n","import {\n ApiError,\n Entity,\n isDataTenantEntity,\n markDataTenantEntityAsNotMatch,\n markMixedEntitiesAsNotMatches\n} from '@reltio/mdm-sdk';\nimport {useSelector} from 'react-redux';\nimport mdmModule from '@reltio/mdm-module';\nimport {useCallback, useState} from 'react';\nimport {noop} from '../core';\nimport {useIsMountedRef} from './useIsMountedRef';\n\ntype Props = {\n entities: Entity[];\n entity: Entity;\n onFinishRequest?: () => void;\n onStartRequest?: () => void;\n onSuccess?: () => void;\n onError?: (error?: ApiError) => void;\n};\n\nexport const useMarkAsNotMatchRequest = ({\n entities,\n entity,\n onFinishRequest,\n onStartRequest,\n onSuccess,\n onError = noop\n}: Props) => {\n const isMountedRef = useIsMountedRef();\n const tenant = useSelector(mdmModule.selectors.getTenant);\n const dtssPath = useSelector(mdmModule.selectors.getDtssPath);\n const [isPending, setIsPending] = useState<boolean>(false);\n const sendMarkAsNotMatchRequest = useCallback(() => {\n onStartRequest?.();\n setIsPending(true);\n const params = {dtssPath, customerTenant: tenant, entity, entities};\n (isDataTenantEntity(entity) ? markDataTenantEntityAsNotMatch(params) : markMixedEntitiesAsNotMatches(params))\n .then(() => {\n onSuccess?.();\n })\n .catch(onError)\n .finally(() => {\n onFinishRequest?.();\n isMountedRef.current && setIsPending(false);\n });\n }, [dtssPath, entities, entity, isMountedRef, onFinishRequest, onStartRequest, onError, onSuccess, tenant]);\n\n return {isPending, sendMarkAsNotMatchRequest};\n};\n","import {useCallback, useEffect, useMemo, useState} from 'react';\nimport {useSelector} from 'react-redux';\nimport mdmModule from '@reltio/mdm-module';\nimport {\n ActivityFilters,\n collectAllTransitiveEntitiesUris,\n Entity,\n getEntitiesMapForTransitiveMatches,\n getMatchesForDataTenantEntity,\n getMatchesFromDataTenants,\n getTransitiveMatches,\n GlobalSearchRequestOptions,\n isDataTenantEntity,\n isTempUri,\n Match,\n withDtssPotentialItems,\n addGlobalFilterToQuery,\n SortingField\n} from '@reltio/mdm-sdk';\nimport {usePagingSimulator} from './usePagingSimulator';\nimport {useSafePromise} from './useSafePromise';\n\ntype Props = {\n enabled: boolean;\n entity: Entity;\n filter: string;\n rules?: string;\n onFinishLoading?: () => void;\n onStartLoading?: () => void;\n options: {\n showTransitiveMatches?: boolean;\n showInactiveEntities?: boolean;\n };\n page: number;\n rowsPerPage: number;\n sorting?: SortingField;\n markMatchedValues?: boolean;\n};\n\nexport const useMatchesLoader = ({\n enabled,\n entity,\n filter,\n rules,\n onFinishLoading,\n onStartLoading,\n options,\n page,\n rowsPerPage,\n sorting,\n markMatchedValues\n}: Props) => {\n const {order, field} = sorting || {};\n const [total, setTotal] = useState(0);\n const [matches, setMatches] = useState<Match[]>([]);\n const [entitiesMap, setEntitiesMap] = useState<{[key: string]: Pick<Entity, 'uri' | 'type' | 'label'>}>({});\n const tenant = useSelector(mdmModule.selectors.getTenant);\n const dtssPath = useSelector(mdmModule.selectors.getDtssPath);\n const dataTenants = useSelector(mdmModule.selectors.getDataTenants);\n const {activityFilter, globalFilter}: GlobalSearchRequestOptions =\n useSelector(mdmModule.selectors.getGlobalSearchRequestOptions) || {};\n const activeness =\n typeof options.showInactiveEntities === 'boolean'\n ? options.showInactiveEntities\n ? ActivityFilters.ALL\n : ActivityFilters.ACTIVE_ONLY\n : activityFilter;\n const entityUri = entity?.uri;\n const dtssParams = useMemo(\n () => ({\n dtssPath,\n dataTenants,\n entity,\n customerTenant: tenant,\n dtssRequest: getMatchesFromDataTenants\n }),\n //eslint-disable-next-line react-hooks/exhaustive-deps\n [dtssPath, dataTenants, entityUri, tenant]\n );\n\n //eslint-disable-next-line react-hooks/exhaustive-deps\n const getTransitiveMatchesWithDtss = useCallback(withDtssPotentialItems(dtssParams, getTransitiveMatches), [\n dtssParams\n ]);\n\n const getTransitiveMatchesWithPaging = usePagingSimulator(getTransitiveMatchesWithDtss);\n const getPagedMatchesForDataTenantEntity = usePagingSimulator(getMatchesForDataTenantEntity);\n\n const safePromise = useSafePromise();\n const getMatches = useCallback(\n (force = false) => {\n if (!enabled || isTempUri(entityUri)) {\n setTotal(0);\n setMatches([]);\n setEntitiesMap({});\n return;\n }\n onStartLoading?.();\n safePromise(\n isDataTenantEntity(entity)\n ? getPagedMatchesForDataTenantEntity({\n dtssPath,\n entity,\n customerTenant: tenant,\n offset: page * rowsPerPage,\n max: rowsPerPage,\n force\n })\n : getTransitiveMatchesWithPaging({\n entityUri: entityUri,\n offset: page * rowsPerPage,\n max: rowsPerPage,\n filter: addGlobalFilterToQuery(globalFilter, filter) || '',\n rules,\n sort: field,\n order,\n force,\n markMatchedValues,\n deep: options.showTransitiveMatches ? undefined : 1,\n activeness\n })\n )\n .then((result) => {\n const {response, total, originalResponse} = result;\n setTotal(total);\n const matchUris = collectAllTransitiveEntitiesUris(originalResponse);\n if (matchUris.length > 0) {\n setEntitiesMap(getEntitiesMapForTransitiveMatches(originalResponse));\n }\n setMatches(response);\n })\n .finally(() => {\n onFinishLoading?.();\n });\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n globalFilter,\n activeness,\n dtssPath,\n enabled,\n entityUri,\n field,\n filter,\n rules,\n markMatchedValues,\n getPagedMatchesForDataTenantEntity,\n getTransitiveMatchesWithPaging,\n onFinishLoading,\n onStartLoading,\n options,\n order,\n page,\n rowsPerPage,\n safePromise,\n tenant\n ]\n );\n\n useEffect(() => {\n getMatches();\n }, [getMatches]);\n const loadMatches = useCallback(() => {\n getMatches(true);\n }, [getMatches]);\n return {\n total,\n matches,\n entitiesMap,\n loadMatches\n };\n};\n","import {equals, map, pipe, prop, reject} from 'ramda';\nimport {Entity, isDataTenantEntity, isEntityUri, mergeDataEntityWithCustomerEntity} from '@reltio/mdm-sdk';\n\ntype DtssMergeResponse = Awaited<ReturnType<typeof mergeDataEntityWithCustomerEntity>>;\nexport type MergeResponses = (Entity | undefined | DtssMergeResponse)[];\n\nconst isEntity = (response): response is Entity => response?.uri && isEntityUri(response.uri);\n\nconst getWinnerUriFromMergeResponses = (responses: MergeResponses) => responses.find(isEntity)?.uri;\n\nexport const getWinnerLosersUrisFromMergeResponses = (\n entity: Entity,\n entities: Entity[],\n responses: MergeResponses\n) => {\n const winnerUri = getWinnerUriFromMergeResponses(responses);\n if (winnerUri) {\n const losersUris: string[] = pipe(\n reject(isDataTenantEntity),\n map(prop('uri')),\n reject(equals(winnerUri))\n )([entity, ...entities]);\n return {winnerUri, losersUris};\n }\n};\n","import {useCallback, useState} from 'react';\nimport {useDispatch, useSelector} from 'react-redux';\nimport mdmModule, {search} from '@reltio/mdm-module';\nimport {\n ApiError,\n Entity,\n isDataTenantEntity,\n mergeCustomerTenantEntityWithMixedEntities,\n mergeDataTenantEntity\n} from '@reltio/mdm-sdk';\nimport {noop} from '../core';\nimport {useIsMountedRef} from './useIsMountedRef';\nimport {getWinnerLosersUrisFromMergeResponses, MergeResponses} from './helpers/merge';\n\ntype Props = {\n entities: Entity[];\n entity: Entity;\n onFinishRequest?: () => void;\n onStartRequest?: () => void;\n onSuccess?: () => void;\n onError?: (error?: ApiError) => void;\n};\nexport const useMergeAllRequest = ({\n entities,\n entity,\n onFinishRequest,\n onStartRequest,\n onSuccess,\n onError = noop\n}: Props) => {\n const isMountedRef = useIsMountedRef();\n const tenant = useSelector(mdmModule.selectors.getTenant);\n const dtssPath = useSelector(mdmModule.selectors.getDtssPath);\n const [isPending, setIsPending] = useState<boolean>(false);\n const dispatch = useDispatch();\n const sendMergeAllRequest = useCallback(() => {\n onStartRequest?.();\n setIsPending(true);\n const params = {dtssPath, customerTenant: tenant, entity, entities};\n (isDataTenantEntity(entity)\n ? mergeDataTenantEntity(params)\n : mergeCustomerTenantEntityWithMixedEntities(params)\n )\n .then((responses: MergeResponses) => {\n onSuccess?.();\n const uris = getWinnerLosersUrisFromMergeResponses(entity, entities, responses);\n if (uris) {\n const {winnerUri, losersUris} = uris;\n dispatch(search.actions.updateSearchNavigationDataOnMerge({winnerUri, losersUris}));\n }\n })\n .catch(onError)\n .finally(() => {\n onFinishRequest?.();\n isMountedRef.current && setIsPending(false);\n });\n }, [dtssPath, entities, entity, onError, onFinishRequest, onStartRequest, onSuccess, tenant, dispatch]);\n return {isPending, sendMergeAllRequest};\n};\n","import {equals} from 'ramda';\n\ntype RequestProps = {\n max: number;\n offset: number;\n force?: boolean;\n [key: string]: unknown;\n};\nexport const createPagingSimulator = (request) => {\n let previousValues = {};\n let requestResponse = [];\n return async ({max, offset, force, ...requestParams}: RequestProps) => {\n let shouldSendRequest = force;\n const previousValuesKeys = Object.keys(previousValues);\n shouldSendRequest = shouldSendRequest || !equals(Object.keys(requestParams), previousValuesKeys);\n if (!shouldSendRequest) {\n for (const key of previousValuesKeys) {\n shouldSendRequest = shouldSendRequest || !equals(previousValues[key], requestParams[key]);\n }\n }\n if (shouldSendRequest) {\n // eslint-disable-next-line no-unused-vars\n requestResponse = await request(requestParams);\n previousValues = requestParams;\n }\n\n return {\n response: requestResponse.slice(offset, offset + max),\n total: requestResponse.length,\n originalResponse: requestResponse\n };\n };\n};\n","import {useCallback} from 'react';\nimport {createPagingSimulator} from './helpers/pagingSimulator';\n\nexport const usePagingSimulator = (request) => {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n return useCallback(createPagingSimulator(request), [request]);\n};\n","import {useCallback, useEffect, useState} from 'react';\nimport {useDidUpdateEffect} from './useDidUpdateEffect';\n\ntype SavedState<T> = {\n [entityType: string]: T;\n};\n\ntype Props<T> = {\n getSavedState: () => Promise<SavedState<T>>;\n saveState: (state: SavedState<T>) => void;\n entityTypeUri?: string;\n};\n\nexport const useSavedStateForEntityType = <T>({getSavedState, saveState, entityTypeUri}: Props<T>) => {\n const [savedState, setSavedState] = useState<SavedState<T>>({});\n const [changedState, setChangedState] = useState<SavedState<T>>(null);\n const [isLoaded, setIsLoaded] = useState(false);\n\n const saveChangesLocallyForPrevEntityType = () => {\n if (changedState) {\n setSavedState({...savedState, ...changedState});\n setChangedState(null);\n }\n };\n useDidUpdateEffect(saveChangesLocallyForPrevEntityType, [entityTypeUri]);\n\n const updateSavedState = useCallback(\n (stateToSave: T) => {\n if (!entityTypeUri) return;\n const changedState = {\n [entityTypeUri]: stateToSave\n };\n setChangedState(changedState);\n saveState({...savedState, ...changedState});\n },\n [entityTypeUri, saveState, savedState]\n );\n\n useEffect(() => {\n getSavedState()\n .then((savedState) => {\n setSavedState(savedState || {});\n })\n .then((_) => setIsLoaded(true))\n .catch((_) => setIsLoaded(true));\n }, []); // eslint-disable-line\n\n return {isLoaded: isLoaded && !!entityTypeUri, savedState: savedState[entityTypeUri], updateSavedState};\n};\n"],"names":["CHANGE_COLUMNS","TOGGLE_FILTERS","CHANGE_FILTER","TOGGLE_SORT","CHANGE_PAGE","CHANGE_ROWS_PER_PAGE","actions","changeColumns","createStandardAction","toggleFilters","changeFilter","toggleSort","changePage","changeRowsPerPage","changeVisibleColumns","state","nextVisibleColumns","removedColumns","difference","visibleColumns","isRemovedColumn","columnId","includes","evolve","always","sorting","when","field","nextSortField","order","filters","keys","reduce","acc","dissoc","reducer","action","type","columnIds","payload","enableFilters","page","filter","assoc","prevSortField","path","prevSortOrder","toggleSortOrder","rowsPerPage","useStyles","makeStyles","itemContainer","width","height","item","background","fontSize","memo","className","crosswalk","showTooltip","styles","color","useCrosswalkColor","metadata","useSelector","mdm","content","classnames","style","SourceIcon","sourceType","Tooltip","title","getSourceSystemLabel","theme","label","backgroundColor","lineHeight","palette","text","primary","display","alignItems","padding","container","cursor","expanded","marginBottom","MatchRulesBadge","forwardRef","ref","children","onExpand","otherProps","onClick","ArrowExpandButton","displayName","props","viewBox","fill","xmlns","fillRule","clipRule","d","fillOpacity","notMatch","NotMatchRule","i18n","entitiesMap","entity","match","variant","MatchRuleVariant","matchRules","negativeRules","isTransitive","isTransitiveMatch","getMatchRules","concat","hasNotMatch","uri","NOT_MATCH","length","showSimple","showNotMatch","TransitiveMatchBlock","transitiveMatchRules","getTransitiveMatchRules","matchRuleSummaries","SimpleMatchRulesBuilder","Component","SimpleMatchRulesBlock","isMlMatch","fontWeight","body","marginLeft","negativeRuleIcon","position","marginRight","top","MatchRulesTitle","map","key","negativeRule","secondary","labelsContainer","matchRuleInfo","justifyContent","matchRuleLabel","wordBreak","relevanceScore","matchRule","matchRuleSummary","getMatchRuleSummary","relevancePercentage","formatRelevanceScore","flexDirection","rulesContainer","icon","xmlnsXlink","x1","y1","x2","y2","id","stopColor","offset","stopOpacity","stroke","strokeWidth","transform","xlinkHref","opacity","x","y","rx","mask","cx","cy","ry","r","MatchRuleBadgeWithTooltip","withTooltip","setExpanded","useState","handleOnExpand","useCallback","expand","tooltipTitle","MatchRulesTooltip","tooltipPlacement","SimpleMatchRules","MlMatchRules","otherMatchRules","partitionByMlMatch","all","simple","excludeNotMatch","isEmpty","showML","light","badge","matchLabels","ruleWrapper","paddingTop","index","MergeButton","mode","ActionButtonMode","onMenuClose","noop","disabled","entities","onStartRequest","onFinishRequest","onSuccess","onError","sendMergeAllRequest","useMergeAllRequest","ActionButton","MergeIcon","root","maxWidth","MAX_WIDTH_SELECT","paddingBottom","minHeight","outlined","paddingRight","paddingLeft","arrowIcon","right","currentValue","currentValueIcon","currentValueText","textTransform","whiteSpace","textOverflow","overflow","menuItem","firstMenuItemButton","borderTop","menuItemInner","menuItemIcon","menuItemLabel","menuItemDescription","isButton","value","ModeSwitcherSelect","optionsGroup","buttonsGroup","onChange","Select","classes","select","e","target","some","propEq","renderValue","IconComponent","find","Box","Typography","MenuProps","anchorOrigin","vertical","horizontal","transformOrigin","items","firstButtonIdx","findIndex","idx","description","menuItemProps","MenuItem","renderMenuItems","NotMatchButton","sendMarkAsNotMatchRequest","useMarkAsNotMatchRequest","NotMatchIcon","borderRadius","RelevanceScoreBadge","mdmModule","matchRuleSummaryWithBestScore","checkMatchRuleSummaryRelevance","sort","a","b","relevance","ruleName","getMatchRuleLabel","flexShrink","borderBottom","margin","divider","borderColor","secondTitle","SidePanelContentHeader","onClose","mainTitle","rightContent","SmallIconButton","size","CloseIcon","Divider","orientation","flexItem","taskId","assignee","isTaskOpen","currentAssignee","getAssignees","updateAssignee","updateRequestIsInProgress","readOnly","useWorkflowAssignee","isOpen","isDisabled","getOptions","hideSelectedOptions","defaultOptions","TextFieldProps","isInProgress","buttonComponent","buttonProps","MoreVertIcon","menuId","menuItems","useCommentStyles","_theme","comment","flex","avatar","firstLine","info","author","date","wordWrap","useCollapsedCommentsStyles","circleButton","maxHeight","border","left","delimiter","useWorkflowStyles","commentsContainer","overflowY","filledInputRoot","modeSwitcherWrapper","marginTop","useExpandedComments","messageContainer","Comment","message","time","Avatar","Person","defaultProps","propTypes","PropTypes","CollapsedComments","comments","IconButton","ExpandedComments","getValue","WorkflowComments","workflowActions","actionRequestIsInProgress","processInstanceComments","preferredAction","setComment","currentAction","setCurrentAction","writeComment","useWorkflowComments","sendComment","pipe","BUTTONS_GROUP","useMemo","Input","endAdornment","InputAdornment","SendIcon","placeholder","onKeyPress","both","disableUnderline","Button","showApiError","error","console","ErrorPopup","errorMessage","showWorkflowError","apiError","errorCode","ApiErrorCode","getDCRUri","objectUris","startsWith","getDCRId","unless","isNil","split","nth","isOpenTask","undefined","useWorkflowActions","possibleActions","onActionSuccess","useContext","WorkflowTasksContext","workflowPath","environment","tenant","username","setActionRequestIsInProgress","performTaskAction","processInstanceComment","runTaskAction","then","catch","finally","assigneeToValue","updateTaskState","updateSafePromise","useSafePromise","getSafePromise","setCurrentAssignee","assignees","setAssignees","setUpdateRequestIsInProgress","canUpdateTask","useWorkflowCheckPermission","checkWorkflowPermission","useEffect","filterOutRest","toLowerCase","Promise","resolve","getAssigneeForTask","result","data","utils","newValue","updateAssigneeForTask","canUserStartProcessFromQuery","canUserViewWorkflowJobs","canUserViewWorkflowEnvironmentConfigJar","canUserViewWorkflowDefinition","canUserViewWorkflowConfigJar","canUserViewProcessInstanceSearchQuery","canUserUpdateWorkflowDataTask","canUserUpdateProcessInstance","canUserReadWorkflowDataTask","canUserManageWorkflowEnvironmentDefinition","canUserManageWorkflowDefinition","canUserExecuteWorkflowJobsValidateTasks","canUserExecuteWorkflowJobsUpdateTasks","canUserExecuteWorkflowJobsTerminateProcessInstance","canUserExecuteWorkflowJobsSyncBusinessProcessData","canUserExecuteWorkflowJobs","canUserCreateWorkflowEnvironmentConfigJar","canUserRegisterConfigEnvironments","canUserCreateWorkflowConfigJar","permission","safePromise","setComments","requestIsInProgress","setRequestIsInProgress","addCommentForTask","getTaskById","useWorkflowDefaultActionSuccessHandler","loadTasks","viewId","ViewIdContext","entityUri","dispatch","useDispatch","ui","profile","SnackbarContext","React","useActions","Object","entries","actionName","actionCreator","useIsMountedRef","isMountedRef","useRef","current","dtssPath","isPending","setIsPending","params","customerTenant","isDataTenantEntity","markDataTenantEntityAsNotMatch","markMixedEntitiesAsNotMatches","useMatchesLoader","enabled","rules","onFinishLoading","onStartLoading","options","markMatchedValues","total","setTotal","matches","setMatches","setEntitiesMap","dataTenants","activityFilter","globalFilter","activeness","showInactiveEntities","ActivityFilters","dtssParams","dtssRequest","getMatchesFromDataTenants","getTransitiveMatchesWithDtss","withDtssPotentialItems","getTransitiveMatches","getTransitiveMatchesWithPaging","usePagingSimulator","getPagedMatchesForDataTenantEntity","getMatchesForDataTenantEntity","getMatches","force","isTempUri","max","addGlobalFilterToQuery","deep","showTransitiveMatches","response","originalResponse","collectAllTransitiveEntitiesUris","getEntitiesMapForTransitiveMatches","loadMatches","isEntity","isEntityUri","mergeDataTenantEntity","mergeCustomerTenantEntityWithMixedEntities","responses","uris","winnerUri","getWinnerUriFromMergeResponses","losersUris","reject","prop","equals","getWinnerLosersUrisFromMergeResponses","search","request","previousValues","requestResponse","async","requestParams","shouldSendRequest","previousValuesKeys","slice","createPagingSimulator","useSavedStateForEntityType","getSavedState","saveState","entityTypeUri","savedState","setSavedState","changedState","setChangedState","isLoaded","setIsLoaded","useDidUpdateEffect","updateSavedState","stateToSave","_"],"sourceRoot":""}
1
+ {"version":3,"file":"4703.js","mappings":"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","sources":["webpack://@reltio/remotes/../components/src/components/BasicTableView/viewState/basicTableViewState.js","webpack://@reltio/remotes/../components/src/components/ColoredSourceIcon/styles.ts","webpack://@reltio/remotes/../components/src/components/ColoredSourceIcon/ColoredSourceIcon.tsx","webpack://@reltio/remotes/../components/src/components/MatchRulesBlock/MatchRulesBadge/styles.ts","webpack://@reltio/remotes/../components/src/components/MatchRulesBlock/MatchRulesBadge/MatchRulesBadge.tsx","webpack://@reltio/remotes/../components/src/icons/NotMatchRule.tsx","webpack://@reltio/remotes/../components/src/components/MatchRulesBlock/NotMatchRule/styles.ts","webpack://@reltio/remotes/../components/src/components/MatchRulesBlock/NotMatchRule/NotMatchRule.tsx","webpack://@reltio/remotes/../components/src/components/MatchRulesBlock/MatchRulesBlock.tsx","webpack://@reltio/remotes/../components/src/components/MatchRulesBlock/MatchRulesTitle.tsx","webpack://@reltio/remotes/../components/src/components/MatchRulesBlock/MatchRulesTooltip/styles.ts","webpack://@reltio/remotes/../components/src/icons/NegativeRuleTooltipIcon.tsx","webpack://@reltio/remotes/../components/src/components/MatchRulesBlock/MatchRulesTooltip/MatchRulesTooltip.tsx","webpack://@reltio/remotes/../components/src/components/MatchRulesBlock/SimpleMatchRules/styles.ts","webpack://@reltio/remotes/../components/src/icons/NegativeRuleIcon.tsx","webpack://@reltio/remotes/../components/src/components/MatchRulesBlock/SimpleMatchRules/SimpleMatchRules.tsx","webpack://@reltio/remotes/../components/src/components/MatchRulesBlock/SimpleMatchRulesBlock/styles.tsx","webpack://@reltio/remotes/../components/src/icons/MlMatch.tsx","webpack://@reltio/remotes/../components/src/components/MatchRulesBlock/SimpleMatchRulesBlock/SimpleMatchRulesBlock.tsx","webpack://@reltio/remotes/../components/src/components/MatchRulesBlock/SimpleMatchRulesBuilder/styles.ts","webpack://@reltio/remotes/../components/src/components/MatchRulesBlock/SimpleMatchRulesBuilder/SimpleMatchRulesBuilder.tsx","webpack://@reltio/remotes/../components/src/components/MatchRulesBlock/TransitiveMatchRules/styles.ts","webpack://@reltio/remotes/../components/src/components/MatchRulesBlock/TransitiveMatchRules/TransitiveMatchRule.tsx","webpack://@reltio/remotes/../components/src/components/MatchRulesBlock/TransitiveMatchBlock/styles.ts","webpack://@reltio/remotes/../components/src/components/MatchRulesBlock/TransitiveMatchRulesTooltip/styles.ts","webpack://@reltio/remotes/../components/src/components/MatchRulesBlock/TransitiveMatchRulesTooltip/TransitiveMatchRulesTooltip.tsx","webpack://@reltio/remotes/../components/src/components/MatchRulesBlock/TransitiveMatchBlock/TransitiveMatchBlock.tsx","webpack://@reltio/remotes/../components/src/components/MatchRulesBlock/types/index.ts","webpack://@reltio/remotes/../components/src/icons/MergeDark.tsx","webpack://@reltio/remotes/../components/src/components/MergeButton/MergeButton.tsx","webpack://@reltio/remotes/../components/src/components/ModeSwitcherSelect/styles.ts","webpack://@reltio/remotes/../components/src/components/ModeSwitcherSelect/ModeSwitcherSelect.tsx","webpack://@reltio/remotes/../components/src/icons/NotMatchDark.tsx","webpack://@reltio/remotes/../components/src/components/NotMatchButton/NotMatchButton.tsx","webpack://@reltio/remotes/../components/src/components/RelevanceScoreBadge/styles.ts","webpack://@reltio/remotes/../components/src/components/RelevanceScoreBadge/RelevanceScoreBadge.tsx","webpack://@reltio/remotes/../components/src/components/SidePanel/SidePanelContentHeader/styles.ts","webpack://@reltio/remotes/../components/src/components/SidePanel/SidePanelContentHeader/SidePanelContentHeader.tsx","webpack://@reltio/remotes/../components/src/components/workflow/components/AssigneeSelector/AssigneeSelector.tsx","webpack://@reltio/remotes/../components/src/components/workflow/components/TaskActions/TaskActions.tsx","webpack://@reltio/remotes/../components/src/components/workflow/components/WorkflowComments/styles.ts","webpack://@reltio/remotes/../components/src/components/workflow/components/WorkflowComments/Comment.js","webpack://@reltio/remotes/../components/src/components/workflow/components/WorkflowComments/CollapsedComments.js","webpack://@reltio/remotes/../components/src/components/workflow/components/WorkflowComments/ExpandedComments.js","webpack://@reltio/remotes/../components/src/components/workflow/components/WorkflowComments/WorkflowComments.tsx","webpack://@reltio/remotes/../components/src/components/workflow/helpers/errors.ts","webpack://@reltio/remotes/../components/src/components/workflow/helpers/index.ts","webpack://@reltio/remotes/../components/src/components/workflow/hooks/useWorkflowActions.ts","webpack://@reltio/remotes/../components/src/components/workflow/hooks/useWorkflowAssignee.ts","webpack://@reltio/remotes/../components/src/components/workflow/hooks/useWorkflowCheckPermission.ts","webpack://@reltio/remotes/../components/src/components/workflow/hooks/useWorkflowComments.ts","webpack://@reltio/remotes/../components/src/components/workflow/hooks/useWorkflowDefaultActionSuccessHandler.ts","webpack://@reltio/remotes/../components/src/contexts/SnackbarContext/index.ts","webpack://@reltio/remotes/../components/src/contexts/WorkflowTasksContext/index.ts","webpack://@reltio/remotes/../components/src/hooks/useActions.ts","webpack://@reltio/remotes/../components/src/hooks/useIsMountedRef.ts","webpack://@reltio/remotes/../components/src/hooks/useMarkAsNotMatchRequest.ts","webpack://@reltio/remotes/../components/src/hooks/useMatchesLoader.ts","webpack://@reltio/remotes/../components/src/hooks/helpers/merge.ts","webpack://@reltio/remotes/../components/src/hooks/useMergeAllRequest.ts","webpack://@reltio/remotes/../components/src/hooks/helpers/pagingSimulator.ts","webpack://@reltio/remotes/../components/src/hooks/usePagingSimulator.ts","webpack://@reltio/remotes/../components/src/hooks/useSavedStateForEntityType.ts"],"sourcesContent":["import {always, assoc, difference, dissoc, evolve, keys, path, when} from 'ramda';\nimport {createStandardAction, toggleSortOrder} from '../../../core';\n\nconst CHANGE_COLUMNS = 'CHANGE_COLUMNS';\nconst TOGGLE_FILTERS = 'TOGGLE_FILTERS';\nconst CHANGE_FILTER = 'CHANGE_FILTER';\nconst TOGGLE_SORT = 'TOGGLE_SORT';\nconst CHANGE_PAGE = 'CHANGE_PAGE';\nconst CHANGE_ROWS_PER_PAGE = 'CHANGE_ROWS_PER_PAGE';\n\nexport const actions = {\n changeColumns: createStandardAction(CHANGE_COLUMNS),\n toggleFilters: createStandardAction(TOGGLE_FILTERS),\n changeFilter: createStandardAction(CHANGE_FILTER),\n toggleSort: createStandardAction(TOGGLE_SORT),\n changePage: createStandardAction(CHANGE_PAGE),\n changeRowsPerPage: createStandardAction(CHANGE_ROWS_PER_PAGE)\n};\n\nexport const changeVisibleColumns = (state, nextVisibleColumns) => {\n const removedColumns = difference(state.visibleColumns, nextVisibleColumns);\n const isRemovedColumn = (columnId) => removedColumns.includes(columnId);\n return evolve(\n {\n visibleColumns: always(nextVisibleColumns),\n sorting: when(\n (sorting = {}) => isRemovedColumn(sorting.field),\n () => {\n const [nextSortField] = nextVisibleColumns;\n return {field: nextSortField, order: 'asc'};\n }\n ),\n filters: (filters) =>\n keys(filters).reduce(\n (acc, columnId) => (isRemovedColumn(columnId) ? dissoc(columnId, acc) : acc),\n filters\n )\n },\n state\n );\n};\n\nexport const reducer = (state, action) => {\n switch (action.type) {\n case CHANGE_COLUMNS: {\n const columnIds = action.payload;\n return changeVisibleColumns(state, columnIds);\n }\n case TOGGLE_FILTERS: {\n const enableFilters = !state.filters;\n return {\n ...state,\n filters: enableFilters ? {} : null,\n page: enableFilters ? state.page : 0\n };\n }\n case CHANGE_FILTER: {\n const {columnId, filter} = action.payload;\n return evolve({filters: filter ? assoc(columnId, filter) : dissoc(columnId), page: always(0)}, state);\n }\n case TOGGLE_SORT: {\n const nextSortField = action.payload;\n const prevSortField = path(['sorting', 'field'], state);\n const prevSortOrder = path(['sorting', 'order'], state);\n return {\n ...state,\n sorting: {\n field: nextSortField,\n order: toggleSortOrder(nextSortField === prevSortField ? prevSortOrder : null)\n },\n page: 0\n };\n }\n case CHANGE_PAGE:\n return {...state, page: action.payload};\n case CHANGE_ROWS_PER_PAGE:\n return {...state, rowsPerPage: action.payload};\n default:\n return state;\n }\n};\n\nexport default {\n reducer,\n actions,\n changeVisibleColumns\n};\n","import {makeStyles} from '@mui/styles';\n\nexport const useStyles = makeStyles({\n itemContainer: {\n width: '18px',\n height: '18px'\n },\n item: {\n width: '18px',\n height: '18px',\n background: 'none',\n fontSize: '1rem'\n }\n});\n","import React, {memo} from 'react';\nimport classnames from 'classnames';\nimport mdm from '@reltio/mdm-module';\nimport {useSelector} from 'react-redux';\nimport Tooltip from '@mui/material/Tooltip';\nimport {Crosswalk, getSourceSystemLabel} from '@reltio/mdm-sdk';\nimport {useCrosswalkColor} from '../../contexts';\nimport SourceIcon from '../SourceIcon/SourceIcon';\nimport {useStyles} from './styles';\n\ntype Props = {\n crosswalk: Crosswalk;\n className?: string;\n showTooltip?: boolean;\n};\n\nconst ColoredSourceIcon = ({className, crosswalk, showTooltip = true}: Props) => {\n const styles = useStyles();\n const color = useCrosswalkColor(crosswalk);\n const metadata = useSelector(mdm.selectors.getMetadata) || {};\n\n const content = (\n <div className={classnames(styles.itemContainer, className)} style={{background: color}}>\n <SourceIcon sourceType={crosswalk.type} className={styles.item} />\n </div>\n );\n return showTooltip ? <Tooltip title={getSourceSystemLabel(metadata, crosswalk.type)}>{content}</Tooltip> : content;\n};\n\nexport default memo(ColoredSourceIcon);\n","import {makeStyles} from '@mui/styles';\n\nconst styles = makeStyles((theme) => {\n return {\n label: {\n backgroundColor: 'rgba(43,152,240,0.12)',\n fontSize: '12px',\n lineHeight: '15px',\n color: theme.palette.text.primary,\n display: 'flex',\n alignItems: 'center',\n padding: '2px 7px'\n },\n container: {\n display: 'flex',\n alignItems: 'center',\n cursor: 'pointer'\n },\n expanded: {\n marginBottom: '8px'\n }\n };\n});\n\nexport default styles;\n","import React, {forwardRef} from 'react';\nimport classnames from 'classnames';\nimport ArrowExpandButton from '../../ArrowExpandButton/ArrowExpandButton';\n\nimport useStyles from './styles';\n\ntype Props = Omit<React.ComponentPropsWithoutRef<'div'>, 'onClick'> & {\n expanded?: boolean;\n onExpand?: React.MouseEventHandler<HTMLDivElement>;\n};\n\nconst MatchRulesBadge = forwardRef(\n ({children, expanded, onExpand, className, ...otherProps}: Props, ref: React.RefObject<HTMLDivElement>) => {\n const styles = useStyles();\n\n return (\n <div\n onClick={onExpand}\n ref={ref}\n className={classnames(styles.container, className, {[styles.expanded]: expanded})}\n {...otherProps}\n >\n <ArrowExpandButton expanded={expanded} />\n <div className={styles.label}>{children}</div>\n </div>\n );\n }\n);\n\nMatchRulesBadge.displayName = 'MatchRuleBadge';\n\nexport default MatchRulesBadge;\n","import React from 'react';\n\nconst SvgNotMatchRule: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width={24} height={24} viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M3 20h15.002L21 23l1.27-1.27-20-20.01L1 2.99l6.172 6.175a4.007 4.007 0 002.66 2.662l2.23 2.23A10.754 10.754 0 0011 14c-2.67 0-8 1.34-8 4v2zm8-16a3.987 3.987 0 00-2.795 1.137l5.656 5.659A3.999 3.999 0 0011 4z\"\n fill=\"#000\"\n fillOpacity={0.54}\n />\n </svg>\n );\n};\n\nexport default SvgNotMatchRule;\n","import {makeStyles} from '@mui/styles';\n\nexport const useStyles = makeStyles({\n notMatch: {\n display: 'flex',\n '& svg': {\n width: '14px',\n height: '14px'\n }\n }\n});\n","import React from 'react';\nimport i18n from 'ui-i18n';\nimport NotMatchRuleIcon from '../../../icons/NotMatchRule';\nimport {useStyles} from './styles';\n\nconst NotMatchRule = () => {\n const styles = useStyles();\n return (\n <div className={styles.notMatch}>\n <NotMatchRuleIcon /> {i18n.text('Not a match')}\n </div>\n );\n};\n\nexport default NotMatchRule;\n","import React from 'react';\nimport {\n Entity,\n getMatchRules,\n getTransitiveMatchRules,\n isTransitiveMatch,\n Metadata,\n Match,\n EntitiesMap,\n NOT_MATCH\n} from '@reltio/mdm-sdk';\n\nimport SimpleMatchRulesBlock from './SimpleMatchRulesBlock/SimpleMatchRulesBlock';\nimport TransitiveMatchBlock from './TransitiveMatchBlock/TransitiveMatchBlock';\nimport SimpleMatchRulesBuilder from './SimpleMatchRulesBuilder/SimpleMatchRulesBuilder';\nimport NotMatchRule from './NotMatchRule/NotMatchRule';\nimport {MatchRuleVariant} from './types';\n\ntype Props = {\n entitiesMap: EntitiesMap;\n entity: Entity;\n match: Match;\n metadata: Metadata;\n variant?: MatchRuleVariant;\n};\n\nconst MatchRulesBlock = ({entitiesMap, entity, match, metadata, variant = MatchRuleVariant.all}: Props) => {\n if (!match.matchRules && !match.negativeRules) {\n return null;\n }\n const isTransitive = isTransitiveMatch(match);\n const matchRules = getMatchRules(metadata, entity.type, (match.matchRules || []).concat(match.negativeRules || []));\n const rules = matchRules.filter(({uri}) => uri !== NOT_MATCH);\n const hasNotMatch = rules.length !== matchRules.length;\n const showSimple = !isTransitive && !hasNotMatch;\n const showNotMatch = hasNotMatch && variant !== MatchRuleVariant.excludeNotMatch;\n\n return (\n <>\n {isTransitive ? (\n <TransitiveMatchBlock\n transitiveMatchRules={getTransitiveMatchRules(metadata, match, entitiesMap)}\n matchRuleSummaries={match.matchRuleSummaries}\n />\n ) : null}\n {showSimple ? (\n <SimpleMatchRulesBuilder\n variant={variant}\n matchRules={matchRules}\n matchRuleSummaries={match.matchRuleSummaries}\n Component={SimpleMatchRulesBlock}\n />\n ) : null}\n {showNotMatch ? <NotMatchRule /> : null}\n </>\n );\n};\n\nexport default MatchRulesBlock;\n","import React from 'react';\nimport i18n from 'ui-i18n';\n\ntype Props = {\n isMlMatch?: boolean;\n};\n\nconst MatchRulesTitle = ({isMlMatch = false}: Props) => {\n return <>{isMlMatch ? i18n.text('Match IQ') : i18n.text('Match rules')}</>;\n};\n\nexport default MatchRulesTitle;\n","import {makeStyles} from '@mui/styles';\n\nconst styles = makeStyles({\n title: {\n fontWeight: 500,\n marginBottom: '9px'\n },\n body: {\n fontWeight: 'normal',\n marginLeft: '16px'\n },\n container: {\n padding: '8px',\n fontSize: '12px',\n lineHeight: '14px'\n },\n negativeRuleIcon: {\n position: 'relative',\n marginRight: '4px',\n top: '1px'\n }\n});\n\nexport default styles;\n","import React from 'react';\n\nconst NegativeRuleTooltipIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width=\"10\" height=\"10\" viewBox=\"0 0 10 10\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M5 0C2.24 0 0 2.24 0 5C0 7.76 2.24 10 5 10C7.76 10 10 7.76 10 5C10 2.24 7.76 0 5 0ZM7.5 5.5H2.5V4.5H7.5V5.5Z\"\n fill=\"white\"\n fillOpacity=\"0.54\"\n />\n </svg>\n );\n};\n\nexport default NegativeRuleTooltipIcon;\n","import React from 'react';\nimport MatchRulesTitle from '../MatchRulesTitle';\nimport {MatchRules} from '../types';\nimport useStyles from './styles';\nimport NegativeRuleTooltipIcon from '../../../icons/NegativeRuleTooltipIcon';\n\ntype Props = {\n isMlMatch?: boolean;\n matchRules: MatchRules;\n};\n\nconst MatchRulesTooltip = ({isMlMatch = false, matchRules}: Props) => {\n const styles = useStyles();\n return (\n <div className={styles.container}>\n <div className={styles.title}>\n <MatchRulesTitle isMlMatch={isMlMatch} />{' '}\n </div>\n <div className={styles.body}>\n {matchRules.map((match) => (\n <div key={match.uri}>\n {'- '}\n {match.negativeRule && <NegativeRuleTooltipIcon className={styles.negativeRuleIcon} />}\n {`${match.label}`}\n </div>\n ))}\n </div>\n </div>\n );\n};\n\nexport default MatchRulesTooltip;\n","import {makeStyles} from '@mui/styles';\n\nconst styles = makeStyles((theme) => ({\n container: {\n fontSize: '13px',\n lineHeight: '15px'\n },\n title: {\n color: theme.palette.text.secondary,\n marginBottom: '7px'\n },\n labelsContainer: {\n color: theme.palette.text.primary,\n marginBottom: '8px'\n },\n negativeRuleIcon: {\n position: 'relative',\n marginRight: '4px',\n top: '1px'\n },\n matchRuleInfo: {\n display: 'flex',\n alignItems: 'flex-start',\n justifyContent: 'space-between'\n },\n matchRuleLabel: {\n wordBreak: 'break-word'\n },\n relevanceScore: {\n marginLeft: '8px',\n color: theme.palette.text.secondary\n }\n}));\n\nexport default styles;\n","import React from 'react';\n\nconst NegativeRuleIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width=\"10\" height=\"10\" viewBox=\"0 0 10 10\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M5 0C2.24 0 0 2.24 0 5C0 7.76 2.24 10 5 10C7.76 10 10 7.76 10 5C10 2.24 7.76 0 5 0ZM7.5 5.5H2.5V4.5H7.5V5.5Z\"\n fill=\"black\"\n fillOpacity=\"0.54\"\n />\n </svg>\n );\n};\n\nexport default NegativeRuleIcon;\n","import React from 'react';\nimport classnames from 'classnames';\nimport {getMatchRuleSummary, formatRelevanceScore, MatchRuleSummary} from '@reltio/mdm-sdk';\nimport Tooltip from '@mui/material/Tooltip';\nimport i18n from 'ui-i18n';\nimport MatchRulesTitle from '../MatchRulesTitle';\nimport {MatchRules} from '../types';\nimport useStyles from './styles';\nimport NegativeRuleIcon from '../../../icons/NegativeRuleIcon';\n\ntype Props = {\n isMlMatch?: boolean;\n matchRules: MatchRules;\n className?: string;\n matchRuleSummaries?: MatchRuleSummary[];\n};\n\nconst SimpleMatchRules = ({isMlMatch, matchRules, className, matchRuleSummaries}: Props) => {\n const styles = useStyles();\n return (\n <div data-reltio-id=\"simple-match-rules\" className={classnames(styles.container, className)}>\n <div className={styles.title}>\n <MatchRulesTitle isMlMatch={isMlMatch} />\n </div>\n <div className={styles.labelsContainer}>\n {matchRules.map((matchRule) => {\n const matchRuleSummary = getMatchRuleSummary(matchRuleSummaries, matchRule.uri);\n const relevancePercentage = formatRelevanceScore(matchRuleSummary);\n return (\n <div className={styles.matchRuleInfo} key={matchRule.uri} data-reltio-id=\"match-rule-info\">\n <div className={styles.matchRuleLabel}>\n {'- '}\n {matchRule.negativeRule && <NegativeRuleIcon className={styles.negativeRuleIcon} />}\n {`${matchRule.label}`}\n </div>\n {relevancePercentage && (\n <Tooltip title={i18n.text('Relevance score')}>\n <div className={styles.relevanceScore}>{relevancePercentage}</div>\n </Tooltip>\n )}\n </div>\n );\n })}\n </div>\n </div>\n );\n};\n\nexport default SimpleMatchRules;\n","import {makeStyles} from '@mui/styles';\n\nconst styles = makeStyles({\n container: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'flex-start'\n },\n rulesContainer: {\n marginLeft: '16px',\n width: 'calc(100% - 16px)'\n },\n icon: {\n height: '17px',\n width: '15px',\n marginRight: '5px'\n }\n});\n\nexport default styles;\n","import React from 'react';\n\nconst SvgMlMatch: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg\n width={192}\n height={192}\n viewBox=\"0 0 192 192\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\n {...props}\n >\n <defs>\n <linearGradient x1=\"94.582%\" y1=\"6.451%\" x2=\"23.195%\" y2=\"83.323%\" id=\"MLMatch_svg__b\">\n <stop stopColor=\"#CDE1FF\" offset=\"0%\" />\n <stop stopColor=\"#AFFBF4\" offset=\"100%\" />\n </linearGradient>\n <linearGradient x1=\"94.582%\" y1=\"6.594%\" x2=\"23.195%\" y2=\"83.214%\" id=\"MLMatch_svg__d\">\n <stop stopColor=\"#FFF\" offset=\"0%\" />\n <stop stopColor=\"#FDFFFF\" offset=\"100%\" />\n </linearGradient>\n <linearGradient x1=\"93.837%\" y1=\"55.274%\" x2=\"29.292%\" y2=\"-20.431%\" id=\"MLMatch_svg__g\">\n <stop stopColor=\"#FFFCC7\" stopOpacity={0} offset=\"0%\" />\n <stop stopColor=\"#FFF470\" offset=\"100%\" />\n </linearGradient>\n <linearGradient x1=\"50%\" y1=\"0%\" x2=\"50%\" y2=\"98.152%\" id=\"MLMatch_svg__i\">\n <stop stopColor=\"#83D6FF\" offset=\"0%\" />\n <stop stopColor=\"#72B9EF\" offset=\"100%\" />\n </linearGradient>\n <path\n d=\"M1.821 66.003L34.263 9.94C36.633 5.813 45.673.594 51.398.072l64.445-.064c5.06-.241 14.821 5.084 17.888 10.395l31.467 54.503c3.186 5.518 2.765 16.592-.13 22.117l-30.948 53.481c-3.776 5.127-14.165 11.126-19.57 11.328l-62.134.061c-5.51-.264-15.934-5.764-18.758-10.655L1.856 86.155C-.846 81.475-.37 70.648 1.82 66.003z\"\n id=\"MLMatch_svg__a\"\n />\n <path\n d=\"M11.109 67.042l28.713-49.618C41.92 13.77 49.931 9.158 55.006 8.7l57.143.005c4.486-.209 13.147 4.516 15.871 9.223l27.954 48.298c2.83 4.89 2.467 14.696-.095 19.586l-27.391 47.334c-3.343 4.537-12.55 9.84-17.342 10.013l-55.094-.004c-4.886-.24-14.134-5.12-16.643-9.454L11.16 84.889c-2.4-4.147-1.989-13.735-.05-17.847z\"\n id=\"MLMatch_svg__c\"\n />\n <path\n d=\"M.995 0c26.4.684 47.59 22.234 47.59 48.72 0 26.23-23.795 34.53-23.795 56.987 0 3.703-3.011 6.705-6.725 6.705l-17.07-.001V68.985c6.466-1.238 11.353-6.923 11.353-13.75S7.46 42.722.995 41.485V0z\"\n id=\"MLMatch_svg__e\"\n />\n <path\n d=\"M47.353 0l-.087 41.235-.225.003c-7.588.167-13.688 6.37-13.688 13.997 0 7.683 6.19 13.92 13.854 14l-.091 43.265H27.887c-1.894-.56-3.197-1.234-3.91-2.025-.712-.79-1.357-2.275-1.933-4.455l-2.335-10.733c-.354-1.265-.674-2.183-.96-2.753-.286-.57-.784-1.281-1.494-2.134L2.002 70.367c-.846-.949-1.383-1.73-1.61-2.343-.228-.613-.356-1.626-.386-3.038V31.34c-.028-.785.044-1.37.216-1.757.173-.387.566-.848 1.18-1.382L28.368.885c.37-.367.665-.601.885-.704.22-.103.557-.163 1.01-.181h17.09z\"\n id=\"MLMatch_svg__h\"\n />\n </defs>\n <g stroke=\"none\" strokeWidth={1} fill=\"none\" fillRule=\"evenodd\">\n <g transform=\"translate(12 6)\">\n <use fill=\"url(#MLMatch_svg__b)\" xlinkHref=\"#MLMatch_svg__a\" />\n <use fill=\"url(#MLMatch_svg__d)\" opacity={0.5} xlinkHref=\"#MLMatch_svg__c\" />\n </g>\n <g transform=\"translate(69.652 30.765)\">\n <rect fill=\"#363636\" x={15.457} y={132.745} width={21.151} height={23.158} rx={10.576} />\n <path\n d=\"M48.146 118.763v18.93c0 7.198-5.944 13.035-13.277 13.035h-16.71c-7.333 0-13.278-5.837-13.278-13.036v-18.929a13 13 0 01.023-.763h43.22a13 13 0 01.022.763z\"\n fill=\"#717171\"\n />\n <path\n d=\"M41.348 137.2c0 7.199-4.947 13.035-11.048 13.035H16.395c-6.101 0-11.047-5.836-11.047-13.035v-18.965h36V137.2z\"\n fill=\"#828282\"\n />\n <path\n d=\"M47.51 138.235a4 4 0 110 8H4.556a4 4 0 110-8h42.956zm0-11a4 4 0 110 8H4.556a4 4 0 110-8h42.956zm0-11a4 4 0 110 8H4.556a4 4 0 110-8h42.956z\"\n fill=\"#B1B1B1\"\n />\n <path d=\"M24.999 138.234v8h-16v-8h16zm0-11v8h-16v-8h16zm0-11v8h-16v-8h16z\" fill=\"#C5C5C5\" />\n <g transform=\"translate(27)\">\n <mask id=\"MLMatch_svg__f\" fill=\"#fff\">\n <use xlinkHref=\"#MLMatch_svg__e\" />\n </mask>\n <use fill=\"#FFD44B\" xlinkHref=\"#MLMatch_svg__e\" />\n <path\n d=\"M-49 48.729C-49 21.583-27.155 0-.207 0 26.74 0 48.585 21.817 48.585 48.729c0 26.227-23.75 34.525-23.75 56.98a6.708 6.708 0 01-6.713 6.703h-38.208a6.708 6.708 0 01-6.712-6.704C-26.798 85.217-49 75.875-49 48.73z\"\n fill=\"#FFD347\"\n mask=\"url(#MLMatch_svg__f)\"\n />\n <path\n d=\"M-49 48.729C-49 21.583-27.155 0-.207 0 26.74 0 48.585 21.817 48.585 48.729c0 26.227-23.75 34.525-23.75 56.98a6.708 6.708 0 01-6.713 6.703h-38.208a6.708 6.708 0 01-6.712-6.704C-26.798 85.217-49 75.875-49 48.73z\"\n fill=\"#FFDE72\"\n mask=\"url(#MLMatch_svg__f)\"\n />\n <path\n d=\"M11.965 48.645c.17-7.171 7.488-10.693 13.863-6.802 7.245 4.422 4.05 16.311-4.742 16.548l-.268.004h-3.227l-4.608 56.092-5.995-.253 4.413-51.248.185-4.592-10.592.001v-6h10.83l.139-3.585.002-.165zm10.737-1.681c-2.54-1.55-4.64-.58-4.737 1.766l-.005.284-.131 3.38 2.99.001c2.852 0 3.999-3.945 2.011-5.347l-.128-.084z\"\n fill=\"#F3BE13\"\n mask=\"url(#MLMatch_svg__f)\"\n />\n <ellipse\n fill=\"url(#MLMatch_svg__g)\"\n mask=\"url(#MLMatch_svg__f)\"\n cx={-1.89}\n cy={48.245}\n rx={36.534}\n ry={36.667}\n />\n </g>\n </g>\n <g transform=\"translate(45.647 30.765)\">\n <mask id=\"MLMatch_svg__j\" fill=\"#fff\">\n <use xlinkHref=\"#MLMatch_svg__h\" />\n </mask>\n <use fill=\"url(#MLMatch_svg__i)\" xlinkHref=\"#MLMatch_svg__h\" />\n <path\n fill=\"#D6FCFA\"\n fillRule=\"nonzero\"\n opacity={0.5}\n mask=\"url(#MLMatch_svg__j)\"\n d=\"M38.24 11.235v6l-3.55-.001-22.207 22.207h-18.13v-6H9.997l22.207-22.206zM25.682 40.779l13.8 13.799H50v6H36.997L21.439 45.021zM53.311 28.235v6h-13.65l-3.935 4.246-4.4-4.08 5.718-6.166zM14.248 52.235l20.52 20.52h3.695v6h-6.18l-20.52-20.52H-.647v-6zM21.353 84.235h8.95L40.4 94.332h16.753v6H37.915L27.817 90.235z\"\n />\n </g>\n <circle fill=\"#008FD8\" cx={94} cy={86} r={9} />\n </g>\n </svg>\n );\n};\n\nexport default SvgMlMatch;\n","import React, {useCallback, useState} from 'react';\nimport {MatchRuleSummary} from '@reltio/mdm-sdk';\nimport MatchRulesTooltip from '../MatchRulesTooltip/MatchRulesTooltip';\nimport SimpleMatchRules from '../SimpleMatchRules/SimpleMatchRules';\nimport {withTooltip} from '../../../HOCs';\nimport MatchRulesBadge from '../MatchRulesBadge/MatchRulesBadge';\nimport useStyles from './styles';\nimport MLMatchIcon from '../../../icons/MlMatch';\nimport {MatchRules} from '../types';\nimport i18n from 'ui-i18n';\n\nexport const MatchRuleBadgeWithTooltip = withTooltip(MatchRulesBadge);\n\ntype Props = {\n isMlMatch?: boolean;\n matchRules: MatchRules;\n matchRuleSummaries?: MatchRuleSummary[];\n};\n\nconst SimpleMatchRulesBlock = ({isMlMatch = false, matchRules, matchRuleSummaries}: Props) => {\n const styles = useStyles();\n const [expanded, setExpanded] = useState(false);\n const handleOnExpand = useCallback(() => setExpanded((expand) => !expand), []);\n return (\n <div className={styles.container} data-reltio-id=\"simple-match-rules-block\">\n <MatchRuleBadgeWithTooltip\n tooltipTitle={<MatchRulesTooltip matchRules={matchRules} isMlMatch={isMlMatch} />}\n tooltipPlacement=\"bottom-start\"\n onExpand={handleOnExpand}\n expanded={expanded}\n >\n {isMlMatch ? (\n <>\n <MLMatchIcon className={styles.icon} />\n {i18n.text('Match IQ')}\n </>\n ) : (\n i18n.text('Rules')\n )}\n </MatchRuleBadgeWithTooltip>\n {expanded ? (\n <SimpleMatchRules\n className={styles.rulesContainer}\n matchRules={matchRules}\n isMlMatch={isMlMatch}\n matchRuleSummaries={matchRuleSummaries}\n />\n ) : null}\n </div>\n );\n};\n\nexport default SimpleMatchRulesBlock;\n","import {makeStyles} from '@mui/styles';\n\nconst styles = makeStyles({\n container: {\n display: 'flex',\n flexDirection: 'column',\n\n '& :not(:last-child)': {\n marginBottom: '2px'\n }\n }\n});\n\nexport default styles;\n","import React from 'react';\nimport {isEmpty} from 'ramda';\nimport {partitionByMlMatch, MatchRuleSummary} from '@reltio/mdm-sdk';\nimport {MatchRules, MatchRuleVariant} from '../types';\nimport useStyles from './styles';\n\ntype Props = {\n matchRules: MatchRules;\n Component: React.ElementType;\n className?: string;\n variant?: MatchRuleVariant;\n matchRuleSummaries?: MatchRuleSummary[];\n};\n\nconst SimpleMatchRulesBuilder = ({matchRules, Component, variant = MatchRuleVariant.all, ...otherProps}: Props) => {\n const styles = useStyles();\n const [MlMatchRules, otherMatchRules] = partitionByMlMatch(matchRules);\n const {all, simple, excludeNotMatch} = MatchRuleVariant;\n const showSimple = [all, simple, excludeNotMatch].includes(variant) && !isEmpty(otherMatchRules);\n const showML = [all, excludeNotMatch].includes(variant) && !isEmpty(MlMatchRules);\n\n return (\n <div className={styles.container}>\n {showSimple ? <Component matchRules={otherMatchRules} {...otherProps} /> : null}\n {showML ? <Component isMlMatch matchRules={MlMatchRules} {...otherProps} /> : null}\n </div>\n );\n};\n\nexport default SimpleMatchRulesBuilder;\n","import {makeStyles} from '@mui/styles';\n\nconst styles = makeStyles((theme) => ({\n label: {\n fontSize: '13px',\n lineHeight: '15px',\n color: theme.palette.primary.light\n },\n container: {\n display: 'flex',\n flexDirection: 'column'\n },\n badge: {\n display: 'flex',\n marginBottom: '8px',\n cursor: 'pointer'\n },\n matchLabels: {\n marginLeft: '30px'\n }\n}));\n\nexport default styles;\n","import React, {useCallback, useState} from 'react';\nimport {MatchRuleSummary} from '@reltio/mdm-sdk';\nimport ArrowExpandButton from '../../ArrowExpandButton/ArrowExpandButton';\nimport SimpleMatchRules from '../SimpleMatchRules/SimpleMatchRules';\nimport SimpleMatchRulesBuilder from '../SimpleMatchRulesBuilder/SimpleMatchRulesBuilder';\nimport {MatchRules} from '../types';\nimport useStyles from './styles';\n\ntype Props = {\n label: string;\n matchRules: MatchRules;\n matchRuleSummaries?: MatchRuleSummary[];\n};\n\nconst TransitiveMatchRule = ({label, matchRules, matchRuleSummaries}: Props) => {\n const styles = useStyles();\n const [expanded, setExpanded] = useState(false);\n const handleOnExpand = useCallback(() => setExpanded((expand) => !expand), []);\n\n return (\n <div data-reltio-id=\"transitive-match-rule\" className={styles.container}>\n <div onClick={handleOnExpand} className={styles.badge}>\n <ArrowExpandButton expanded={expanded} />\n <div className={styles.label}>{label}</div>\n </div>\n {expanded ? (\n <SimpleMatchRulesBuilder\n Component={SimpleMatchRules}\n matchRules={matchRules}\n matchRuleSummaries={matchRuleSummaries}\n className={styles.matchLabels}\n />\n ) : null}\n </div>\n );\n};\n\nexport default TransitiveMatchRule;\n","import {makeStyles} from '@mui/styles';\n\nconst styles = makeStyles({\n container: {\n display: 'flex',\n flexDirection: 'column',\n\n '& :not(:last-child)': {\n marginBottom: '2px'\n }\n }\n});\n\nexport default styles;\n","import {makeStyles} from '@mui/styles';\n\nconst styles = makeStyles({\n ruleWrapper: {\n paddingTop: '8px'\n },\n label: {\n fontWeight: 500,\n fontSize: '12px'\n }\n});\n\nexport default styles;\n","import React from 'react';\nimport MatchRulesTooltip from '../MatchRulesTooltip/MatchRulesTooltip';\nimport {TransitiveMatchRules} from '../types';\nimport useStyles from './styles';\n\ntype Props = {\n transitiveMatchRules: TransitiveMatchRules;\n};\n\nconst TransitiveMatchRulesTooltip = ({transitiveMatchRules}: Props) => {\n const styles = useStyles();\n return (\n <>\n {transitiveMatchRules.map(({label, matchRules}, index) => {\n return (\n <div key={index} className={styles.ruleWrapper}>\n <div className={styles.label}>{label}</div>\n <MatchRulesTooltip matchRules={matchRules} />\n </div>\n );\n })}\n </>\n );\n};\n\nexport default TransitiveMatchRulesTooltip;\n","import React, {useCallback, useState} from 'react';\nimport i18n from 'ui-i18n';\nimport {MatchRuleSummary} from '@reltio/mdm-sdk';\nimport MatchRulesBadge from '../MatchRulesBadge/MatchRulesBadge';\nimport TransitiveMatchRule from '../TransitiveMatchRules/TransitiveMatchRule';\nimport useStyles from './styles';\nimport {withTooltip} from '../../../HOCs';\nimport {TransitiveMatchRules} from '../types';\nimport TransitiveMatchRulesTooltip from '../TransitiveMatchRulesTooltip/TransitiveMatchRulesTooltip';\n\nexport const MatchRuleBadgeWithTooltip = withTooltip(MatchRulesBadge);\n\ntype Props = {\n transitiveMatchRules: TransitiveMatchRules;\n matchRuleSummaries?: MatchRuleSummary[];\n};\n\nconst TransitiveMatchBlock = ({transitiveMatchRules, matchRuleSummaries}: Props) => {\n const styles = useStyles();\n const [expanded, setExpanded] = useState(false);\n const handleOnExpand = useCallback(() => setExpanded((expand) => !expand), []);\n return (\n <div className={styles.container}>\n <MatchRuleBadgeWithTooltip\n tooltipTitle={<TransitiveMatchRulesTooltip transitiveMatchRules={transitiveMatchRules} />}\n tooltipPlacement=\"bottom-start\"\n onExpand={handleOnExpand}\n expanded={expanded}\n >\n {i18n.text('Transitive matches')}\n </MatchRuleBadgeWithTooltip>\n {expanded\n ? transitiveMatchRules.map((match, index) => {\n return <TransitiveMatchRule key={index} {...match} matchRuleSummaries={matchRuleSummaries} />;\n })\n : null}\n </div>\n );\n};\n\nexport default TransitiveMatchBlock;\n","type MatchRule = {\n uri: string;\n label: string;\n negativeRule?: Record<string, unknown>;\n};\n\nexport type MatchRules = MatchRule[];\nexport enum MatchRuleVariant {\n all = 'all',\n simple = 'simple',\n excludeNotMatch = 'excludeNotMatch'\n}\n\nexport type TransitiveMatchRules = Array<{\n label: string;\n matchRules: MatchRules;\n}>;\n","import React from 'react';\n\nconst SvgMergeDark: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width={24} height={24} viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M15.955 10.955v-3.5l4.5 4.5-4.5 4.5v-3.5h-6.41l-6-6 1.41-1.41 5.41 5.41h5.59zm-11 7.41l-1.41-1.41 3.41-3.41 1.41 1.41-3.41 3.41z\"\n fill=\"#000\"\n fillOpacity={0.54}\n />\n </svg>\n );\n};\n\nexport default SvgMergeDark;\n","import React, {forwardRef} from 'react';\nimport i18n from 'ui-i18n';\n\nimport MergeIcon from '../../icons/MergeDark';\n\nimport {noop} from '../../core';\nimport {ActionButton, ActionButtonMode} from '../ActionButton/ActionButton';\nimport {useMergeAllRequest} from '../../hooks';\nimport {ApiError, Entity} from '@reltio/mdm-sdk';\n\ntype Props = {\n className?: string;\n entities: Entity[];\n entity: Entity;\n mode?: ActionButtonMode;\n size?: string;\n onMenuClose?: () => void;\n disabled?: boolean;\n onStartRequest?: () => void;\n onFinishRequest?: () => void;\n onSuccess?: () => void;\n onError?: (error?: ApiError) => void;\n};\nexport const MergeButton = forwardRef<HTMLLIElement, Props>(\n (\n {\n className,\n mode = ActionButtonMode.iconButton,\n onMenuClose = noop,\n disabled = false,\n entity,\n entities,\n onStartRequest,\n onFinishRequest,\n onSuccess,\n onError,\n ...otherProps\n }: Props,\n ref\n ) => {\n const {sendMergeAllRequest} = useMergeAllRequest({\n entity,\n entities,\n onStartRequest,\n onFinishRequest,\n onError,\n onSuccess\n });\n\n return (\n <ActionButton\n className={className}\n disabled={disabled}\n mode={mode}\n label={i18n.text('Merge')}\n icon={MergeIcon}\n onClick={sendMergeAllRequest}\n onMenuClose={onMenuClose}\n ref={ref}\n {...otherProps}\n />\n );\n }\n);\n\nMergeButton.displayName = 'mergeButton';\n","import {makeStyles} from '@mui/styles';\n\nconst MAX_WIDTH_SELECT = 200;\nconst SELECT_PADDING_RIGHT = 32;\nconst SELECT_PADDING_LEFT = 12;\nconst CALCULATED_MAX_WIDTH_SELECT = MAX_WIDTH_SELECT - SELECT_PADDING_LEFT - SELECT_PADDING_RIGHT;\n\nexport const useStyles = makeStyles((theme) => ({\n root: {\n maxWidth: CALCULATED_MAX_WIDTH_SELECT,\n paddingTop: '9px',\n paddingBottom: '9px',\n '&$outlined': {\n minHeight: '1.1876em'\n }\n },\n outlined: {\n paddingRight: SELECT_PADDING_RIGHT,\n paddingLeft: SELECT_PADDING_LEFT\n },\n arrowIcon: {\n fontSize: '18px',\n top: 'calc(50% - 9px)',\n right: '12px',\n color: theme.palette.text.secondary\n },\n currentValue: {\n display: 'flex',\n alignItems: 'center'\n },\n currentValueIcon: {\n fontSize: '18px',\n marginRight: '8px',\n color: theme.palette.text.secondary\n },\n currentValueText: {\n fontSize: '14px',\n lineHeight: '16px',\n textTransform: 'uppercase',\n fontWeight: 500,\n color: theme.palette.text.primary,\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n overflow: 'hidden'\n },\n menuItem: {\n padding: '9px 12px 7px'\n },\n firstMenuItemButton: {\n borderTop: '1px solid #e4e4e4'\n },\n menuItemInner: {\n display: 'flex',\n alignItems: 'flex-start'\n },\n menuItemIcon: {\n fontSize: '18px',\n color: theme.palette.text.secondary,\n marginRight: '9px'\n },\n menuItemLabel: {\n fontSize: '14px',\n lineHeight: '16px',\n fontWeight: 500,\n color: theme.palette.text.primary\n },\n menuItemDescription: {\n fontSize: '10px',\n lineHeight: '16px',\n color: theme.palette.text.secondary\n }\n}));\n","import React from 'react';\nimport {propEq} from 'ramda';\nimport classnames from 'classnames';\nimport Select, {SelectChangeEvent} from '@mui/material/Select';\nimport MenuItem from '@mui/material/MenuItem';\nimport Box from '@mui/material/Box';\nimport Typography from '@mui/material/Typography';\nimport Tooltip from '@mui/material/Tooltip';\nimport {useStyles} from './styles';\n\ntype Option = {\n label: string;\n value: string;\n description?: string;\n icon?: React.ElementType;\n};\n\ntype Button = Option & {\n onClick: (value: string) => void;\n};\n\ntype ModeSwitcherSelectProps = {\n optionsGroup?: Option[];\n buttonsGroup?: Button[];\n value: string;\n onChange?: (value: string) => void;\n disabled?: boolean;\n};\n\ntype MenuItemProps = React.ComponentPropsWithoutRef<typeof MenuItem>;\n\nconst isButton = (value: Option | Button): value is Button => 'onClick' in value;\n\nexport const ModeSwitcherSelect = ({\n optionsGroup = [],\n buttonsGroup = [],\n value,\n onChange,\n disabled = false\n}: ModeSwitcherSelectProps) => {\n const styles = useStyles();\n\n const handleChange = (e: SelectChangeEvent<string>) => {\n const {value} = e.target;\n const isOption = optionsGroup.some(propEq('value', value));\n if (isOption) onChange(value);\n };\n\n const renderMenuItems = (items: (Option | Button)[]) => {\n const firstButtonIdx = items.findIndex(isButton);\n\n return items.map((item, idx) => {\n const {value, label, description, icon: IconComponent} = item;\n\n const menuItemProps: MenuItemProps = {\n value: value,\n className: styles.menuItem\n };\n\n if (isButton(item)) {\n menuItemProps.onClick = () => item.onClick(value);\n menuItemProps.className = classnames(menuItemProps.className, {\n [styles.firstMenuItemButton]: idx === firstButtonIdx\n });\n }\n\n return (\n <MenuItem key={value} {...menuItemProps} data-reltio-id={`reltio-profile-select-mode-${value}`}>\n <Box className={styles.menuItemInner}>\n {IconComponent && <IconComponent className={styles.menuItemIcon} />}\n <Box>\n <Typography className={styles.menuItemLabel}>{label}</Typography>\n <Typography className={styles.menuItemDescription}>{description}</Typography>\n </Box>\n </Box>\n </MenuItem>\n );\n });\n };\n\n return (\n <Select\n classes={{\n select: styles.root,\n icon: styles.arrowIcon,\n outlined: styles.outlined\n }}\n value={value}\n onChange={handleChange}\n variant=\"outlined\"\n renderValue={(value) => {\n const {icon: IconComponent, label = value} = optionsGroup.find(propEq('value', value)) || {};\n return (\n <Box className={styles.currentValue}>\n {IconComponent && <IconComponent className={styles.currentValueIcon} />}\n <Tooltip title={label}>\n <Typography className={styles.currentValueText}>{label}</Typography>\n </Tooltip>\n </Box>\n );\n }}\n MenuProps={{\n anchorOrigin: {\n vertical: 'bottom',\n horizontal: 'right'\n },\n transformOrigin: {\n vertical: 'top',\n horizontal: 'right'\n }\n }}\n disabled={disabled}\n data-reltio-id=\"reltio-profile-select-mode\"\n >\n {renderMenuItems([...optionsGroup, ...buttonsGroup])}\n </Select>\n );\n};\n","import React from 'react';\n\nconst SvgNotMatchDark: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width={24} height={24} viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M17 1.5v3.638h-1.247l-11.03 11H2v2h3.55l11.029-11H17V10.5L21.5 6 17 1.5zM8.844 8.785L5.55 5.5H2v2h2.723l2.707 2.7 1.414-1.415zm4.835 4.822l-1.414 1.414 3.488 3.479H17v3.638l4.5-4.5-4.5-4.5V16.5h-.421l-2.9-2.893z\"\n fill=\"#000\"\n fillOpacity={0.54}\n />\n </svg>\n );\n};\n\nexport default SvgNotMatchDark;\n","import {ApiError, Entity} from '@reltio/mdm-sdk';\nimport {ActionButton, ActionButtonMode} from '../ActionButton/ActionButton';\nimport React, {forwardRef} from 'react';\nimport NotMatchIcon from '../../icons/NotMatchDark';\nimport {noop} from '../../core';\nimport i18n from 'ui-i18n';\nimport {useMarkAsNotMatchRequest} from '../../hooks/useMarkAsNotMatchRequest';\n\ntype Props = {\n className?: string;\n entities: Entity[];\n entity: Entity;\n mode?: ActionButtonMode;\n size?: string;\n onMenuClose?: () => void;\n disabled?: boolean;\n onStartRequest?: () => void;\n onFinishRequest?: () => void;\n onSuccess?: () => void;\n onError?: (error?: ApiError) => void;\n};\nexport const NotMatchButton = forwardRef<HTMLLIElement, Props>(\n (\n {\n className,\n mode = ActionButtonMode.iconButton,\n onMenuClose = noop,\n disabled = false,\n entity,\n entities,\n onStartRequest,\n onFinishRequest,\n onError,\n onSuccess,\n ...otherProps\n }: Props,\n ref\n ) => {\n const {sendMarkAsNotMatchRequest} = useMarkAsNotMatchRequest({\n entity,\n entities,\n onStartRequest,\n onFinishRequest,\n onError,\n onSuccess\n });\n\n return (\n <ActionButton\n className={className}\n disabled={disabled}\n mode={mode}\n label={i18n.text('Not a match')}\n icon={NotMatchIcon}\n onClick={sendMarkAsNotMatchRequest}\n onMenuClose={onMenuClose}\n ref={ref}\n {...otherProps}\n />\n );\n }\n);\n\nNotMatchButton.displayName = 'notMatchButton';\n","import {makeStyles} from '@mui/styles';\n\nexport const useStyles = makeStyles({\n badge: {\n background: 'rgba(0, 0, 0, 0.03)',\n borderRadius: '2px',\n padding: '2px 7px',\n fontSize: '12px',\n wordBreak: 'break-word'\n }\n});\n","import React from 'react';\nimport classnames from 'classnames';\nimport mdmModule from '@reltio/mdm-module';\nimport {\n getMatchRuleLabel,\n MatchRuleSummary,\n formatRelevanceScore,\n checkMatchRuleSummaryRelevance\n} from '@reltio/mdm-sdk';\nimport {useSelector} from 'react-redux';\nimport Tooltip from '@mui/material/Tooltip';\nimport i18n from 'ui-i18n';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n className?: string;\n matchRuleSummaries?: MatchRuleSummary[];\n};\n\nexport const RelevanceScoreBadge = ({className, matchRuleSummaries}: Props) => {\n const styles = useStyles();\n const metadata = useSelector(mdmModule.selectors.getMetadata);\n const entity = useSelector(mdmModule.selectors.getEntity);\n const matchRuleSummaryWithBestScore = matchRuleSummaries\n ?.filter(checkMatchRuleSummaryRelevance)\n .sort((a, b) => b.relevance - a.relevance)[0];\n if (!matchRuleSummaryWithBestScore) {\n return null;\n }\n const {uri: matchRule} = matchRuleSummaryWithBestScore;\n const relevancePercentage = formatRelevanceScore(matchRuleSummaryWithBestScore);\n const tooltipTitle = i18n.text('Relevance score based on ${ruleName}', {\n ruleName: getMatchRuleLabel(metadata, entity.type, matchRule)\n });\n return (\n <Tooltip title={tooltipTitle}>\n <div className={classnames(className, styles.badge)}>\n {relevancePercentage}\n {`: ${i18n.text('Relevance score')}`}\n </div>\n </Tooltip>\n );\n};\n","import {makeStyles} from '@mui/styles';\n\nexport const useStyles = makeStyles({\n container: {\n display: 'flex',\n flexShrink: 0,\n height: '63px',\n alignItems: 'center',\n borderBottom: '1px solid rgba(0,0,0,0.12)'\n },\n icon: {\n margin: '0 12px'\n },\n divider: {\n borderColor: 'rgba(0,0,0,0.12)',\n margin: '19px 17px'\n },\n secondTitle: {\n fontSize: '14px'\n }\n});\n","import React, {ReactNode} from 'react';\nimport CloseIcon from '@mui/icons-material/Close';\nimport {useStyles} from './styles';\nimport Typography from '@mui/material/Typography';\nimport Divider from '@mui/material/Divider';\nimport i18n from 'ui-i18n';\nimport {SmallIconButtonWithTooltip} from '../../SmallIconButton';\n\ntype HeaderProps = {\n mainTitle?: string;\n secondTitle?: string;\n content?: ReactNode;\n rightContent?: ReactNode;\n};\n\ntype Props = HeaderProps & {\n onClose: () => void;\n};\nexport const SidePanelContentHeader = ({onClose, mainTitle, secondTitle, content, rightContent}: Props) => {\n const styles = useStyles();\n return (\n <div className={styles.container}>\n <SmallIconButtonWithTooltip\n size=\"L\"\n icon={CloseIcon}\n onClick={onClose}\n className={styles.icon}\n tooltipTitle={i18n.text('Close')}\n />\n {content || (\n <>\n <Typography variant=\"h6\">{mainTitle}</Typography>\n {secondTitle && (\n <>\n <Divider orientation=\"vertical\" flexItem className={styles.divider} />\n <Typography variant=\"body1\" color=\"textSecondary\" className={styles.secondTitle}>\n {secondTitle}\n </Typography>\n </>\n )}\n {rightContent}\n </>\n )}\n </div>\n );\n};\n","import React from 'react';\nimport i18n from 'ui-i18n';\nimport {WorkflowTaskData} from '@reltio/mdm-sdk';\n\nimport DropDownSelector from '../../../DropDownSelector/DropDownSelector';\nimport {useWorkflowAssignee} from '../../hooks/useWorkflowAssignee';\n\ntype Props = Pick<WorkflowTaskData, 'taskId' | 'assignee'> & {\n isTaskOpen?: WorkflowTaskData['isOpen'];\n};\n\nconst AssigneeSelector = ({taskId, assignee, isTaskOpen}: Props) => {\n const {\n assignee: currentAssignee,\n getAssignees,\n updateAssignee,\n updateRequestIsInProgress,\n readOnly\n } = useWorkflowAssignee({\n taskId,\n assignee,\n isOpen: isTaskOpen\n });\n const disabled = updateRequestIsInProgress || readOnly;\n\n return (\n <DropDownSelector\n isDisabled={disabled}\n getOptions={getAssignees}\n onChange={updateAssignee}\n hideSelectedOptions={false}\n label={i18n.text('Assigned to')}\n value={currentAssignee}\n defaultOptions={true}\n TextFieldProps={{disabled}}\n height={40}\n />\n );\n};\n\nexport default AssigneeSelector;\n","import React from 'react';\nimport MoreVertIcon from '@mui/icons-material/MoreVert';\n\nimport {TaskAction} from '../../hooks/useWorkflowActions';\nimport DropDownMenuButton from '../../../DropDownMenuButton/DropDownMenuButton';\nimport SmallIconButton from '../../../SmallIconButton/SmallIconButton';\n\ntype Props = {\n isInProgress?: boolean;\n actions: TaskAction[];\n};\n\nconst TaskActions = ({actions, isInProgress: disabled}: Props) => {\n return actions.length > 0 ? (\n <DropDownMenuButton\n buttonComponent={SmallIconButton}\n buttonProps={{\n icon: MoreVertIcon,\n size: 'L',\n disabled,\n 'data-reltio-id': 'task-actions'\n }}\n menuId={'workflow-actions'}\n menuItems={actions}\n />\n ) : null;\n};\n\nexport default TaskActions;\n","import {makeStyles} from '@mui/styles';\n\nexport const useCommentStyles = makeStyles((_theme) => ({\n comment: {\n display: 'flex',\n flexDirection: 'row',\n flex: 1,\n marginLeft: '6px'\n },\n avatar: {\n height: '24px',\n width: '24px',\n margin: '3px 13px 0 0'\n },\n icon: {\n fill: '#537280',\n backgroundColor: '#EAEDEE'\n },\n firstLine: {\n display: 'flex',\n flexDirection: 'row'\n },\n info: {\n flex: 1\n },\n author: {\n flex: 1,\n fontWeight: 500,\n color: 'rgba(0,0,0,0.87)',\n fontSize: '13px',\n lineHeight: '15px'\n },\n date: {\n color: 'rgba(0, 0, 0, 0.54)',\n fontSize: '11px',\n marginRight: '17px',\n lineHeight: '15px'\n },\n text: {\n color: 'rgba(0, 0, 0, 0.6)',\n fontSize: '13px',\n wordWrap: 'break-word',\n wordBreak: 'break-all',\n paddingRight: '10px'\n }\n}));\n\nexport const useCollapsedCommentsStyles = makeStyles((_theme) => ({\n circleButton: {\n maxWidth: '14px',\n maxHeight: '14px',\n border: '1px solid rgba(0, 0, 0, 0.3)',\n fontSize: '13px',\n color: 'rgba(0, 0, 0, 0.6)',\n position: 'absolute',\n top: '-11px',\n left: '5px',\n backgroundColor: '#ffffff',\n '&:hover': {\n backgroundColor: '#f7f7f7'\n },\n '&.focused': {\n backgroundColor: '#f7f7f7'\n }\n },\n\n delimiter: {\n position: 'relative',\n height: '4px',\n borderTop: '1px solid rgba(0, 0, 0, 0.3)',\n borderBottom: '1px solid rgba(0, 0, 0, 0.3)',\n margin: '15px 0 24px 0'\n }\n}));\nexport const useWorkflowStyles = makeStyles((_theme) => ({\n container: {\n padding: '5px 0',\n display: 'flex',\n flexDirection: 'column'\n },\n commentsContainer: {\n maxHeight: '300px',\n overflowY: 'auto'\n },\n title: {\n margin: '0 0 8px 5px',\n fontSize: '14px',\n color: 'rgba(0, 0, 0, 0.87)'\n },\n filledInputRoot: {\n backgroundColor: 'rgba(0, 0, 0, 0.03)',\n padding: '0 6px',\n height: '40px',\n margin: '10px 17px 0 6px',\n fontSize: '14px',\n '&:hover': {\n backgroundColor: 'rgba(0, 0, 0, 0.03)'\n },\n '&.focused': {\n backgroundColor: 'rgba(0, 0, 0, 0.03)'\n }\n },\n modeSwitcherWrapper: {\n marginLeft: 'auto',\n marginRight: '16px',\n marginTop: '8px'\n }\n}));\n\nexport const useExpandedComments = makeStyles((_theme) => ({\n messageContainer: {\n borderBottom: '1px solid rgba(0,0,0,0.3)',\n paddingBottom: '7px',\n marginBottom: '7px'\n }\n}));\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Avatar from '@mui/material/Avatar';\nimport Person from '@mui/icons-material/Person';\nimport i18n from 'ui-i18n';\nimport classnames from 'classnames';\nimport {useCommentStyles} from './styles';\n\nexport const Comment = ({author, classes, message, time}) => {\n const styles = useCommentStyles();\n return (\n <div className={styles.comment}>\n <Avatar className={styles.avatar}>\n <Person className={styles.icon} />\n </Avatar>\n <div className={classnames(styles.info, classes.messageContainer)}>\n <div className={styles.firstLine}>\n <div className={styles.author}>{author}</div>\n <span className={styles.date}>{i18n.date(time, 'L LT')}</span>\n </div>\n <div className={styles.text}>{message}</div>\n </div>\n </div>\n );\n};\nComment.defaultProps = {\n classes: {}\n};\nComment.propTypes = {\n classes: PropTypes.object,\n author: PropTypes.string,\n id: PropTypes.string,\n message: PropTypes.string,\n time: PropTypes.number\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport IconButton from '@mui/material/IconButton';\nimport {Comment} from './Comment';\nimport {useCollapsedCommentsStyles} from './styles';\n\nexport const CollapsedComments = ({comments, onClick}) => {\n const styles = useCollapsedCommentsStyles();\n return (\n <>\n <Comment {...comments[0]} />\n <div className={styles.delimiter}>\n <IconButton className={styles.circleButton} onClick={onClick} size=\"large\">\n {comments.length - 2}\n </IconButton>\n </div>\n <Comment {...comments[comments.length - 1]} />\n </>\n );\n};\nCollapsedComments.propTypes = {\n comments: PropTypes.arrayOf(\n PropTypes.shape({\n author: PropTypes.string,\n id: PropTypes.string,\n message: PropTypes.string,\n time: PropTypes.number\n })\n ),\n onClick: PropTypes.func\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport {Comment} from './Comment';\nimport {useExpandedComments} from './styles';\n\nexport const ExpandedComments = ({comments}) => {\n const styles = useExpandedComments();\n return comments.map(({author, id, message, time}) => (\n <Comment\n classes={{messageContainer: styles.messageContainer}}\n key={id}\n author={author}\n message={message}\n time={time}\n />\n ));\n};\nExpandedComments.propTypes = {\n comments: PropTypes.arrayOf(\n PropTypes.shape({\n author: PropTypes.string,\n id: PropTypes.string,\n message: PropTypes.string,\n time: PropTypes.number\n })\n )\n};\n","import React, {useCallback, useState, useMemo} from 'react';\nimport {pipe, propEq, when, both, always} from 'ramda';\nimport Input from '@mui/material/Input';\nimport InputAdornment from '@mui/material/InputAdornment';\nimport SendIcon from '@mui/icons-material/Send';\nimport i18n from 'ui-i18n';\nimport {WorkflowAction, WorkflowComment} from '@reltio/mdm-sdk';\nimport Button from '@mui/material/Button';\nimport {CollapsedComments} from './CollapsedComments';\nimport {ExpandedComments} from './ExpandedComments';\nimport {useWorkflowStyles} from './styles';\nimport {useWorkflowComments} from '../../hooks/useWorkflowComments';\nimport {SmallIconButton} from '../../../SmallIconButton';\nimport {TaskAction} from '../../hooks/useWorkflowActions';\nimport {ModeSwitcherSelect} from '../../../ModeSwitcherSelect/ModeSwitcherSelect';\n\nconst getValue = (e) => e.target.value;\n\ntype Props = {\n actionRequestIsInProgress?: boolean;\n workflowActions: TaskAction[];\n processInstanceComments: WorkflowComment[];\n taskId: string;\n isTaskOpen: boolean;\n preferredAction: WorkflowAction;\n};\n\nexport const WorkflowComments = ({\n workflowActions: actions,\n actionRequestIsInProgress,\n processInstanceComments,\n taskId,\n isTaskOpen,\n preferredAction\n}: Props) => {\n const styles = useWorkflowStyles();\n const [expanded, setExpanded] = useState(false);\n const [comment, setComment] = useState('');\n const [currentAction, setCurrentAction] = useState(preferredAction.label);\n const {comments, writeComment, readOnly} = useWorkflowComments({\n processInstanceComments,\n taskId,\n isOpen: isTaskOpen\n });\n\n const sendComment = useCallback(() => {\n writeComment(comment);\n setComment('');\n }, [comment, writeComment]);\n const onChange = pipe(getValue, setComment);\n\n const BUTTONS_GROUP = useMemo(\n () => [\n ...actions.map(({text, onClick}) => ({\n label: text,\n onClick: () => {\n setCurrentAction(text);\n onClick(comment);\n },\n value: text\n }))\n ],\n [actions, comment]\n );\n\n return (\n <div className={styles.container}>\n <div className={styles.title}> {i18n.text('Comments')} </div>\n <div className={styles.commentsContainer}>\n {expanded || comments.length < 3 ? (\n <ExpandedComments comments={comments} />\n ) : (\n <CollapsedComments onClick={() => setExpanded(true)} comments={comments} />\n )}\n </div>\n {!readOnly && (\n <Input\n endAdornment={\n <InputAdornment position=\"end\">\n <SmallIconButton\n icon={SendIcon}\n disabled={comment.length === 0}\n onClick={sendComment}\n data-reltio-id=\"send-button\"\n />\n </InputAdornment>\n }\n classes={{root: styles.filledInputRoot}}\n placeholder={i18n.text('Write a comment')}\n value={comment}\n onKeyPress={when(both(propEq('key', 'Enter'), always(comment.length > 0)), sendComment)}\n onChange={onChange}\n disableUnderline\n />\n )}\n <div className={styles.modeSwitcherWrapper}>\n {BUTTONS_GROUP.length === 1 && (\n <Button variant=\"outlined\" onClick={BUTTONS_GROUP[0].onClick} disabled={actionRequestIsInProgress}>\n {BUTTONS_GROUP[0].label}\n </Button>\n )}\n {BUTTONS_GROUP.length > 1 && (\n <ModeSwitcherSelect\n buttonsGroup={BUTTONS_GROUP}\n value={currentAction}\n disabled={actionRequestIsInProgress}\n />\n )}\n </div>\n </div>\n );\n};\n","import i18n from 'ui-i18n';\nimport {ApiError, ApiErrorCode, WorkflowApiError} from '@reltio/mdm-sdk';\nimport ErrorPopup from '../../ErrorPopup/ErrorPopup';\n\nexport const showApiError = (error: ApiError = {}) => {\n console.error(error); // eslint-disable-line\n ErrorPopup.addError({\n title: i18n.text('Error'),\n message: error.errorMessage || i18n.text('Something went wrong...')\n });\n};\n\nexport const showWorkflowError = (apiError: WorkflowApiError = {}) => {\n const error = apiError.error;\n if (error?.errorCode === ApiErrorCode.WORKFLOW_IS_NOT_REGISTERED_ERROR) {\n return;\n }\n showApiError(error);\n};\n","import {pipe, startsWith, isNil, unless, split, nth} from 'ramda';\nimport {WorkflowTaskData} from '@reltio/mdm-sdk';\n\nconst getDCRUri = (objectUris: string[] = []): string => objectUris.find(startsWith('changeRequests/'));\n\nconst getDCRId = (objectUris: string[] = []): string =>\n pipe(getDCRUri, unless(isNil, pipe(split('/'), nth(1))))(objectUris);\n\nconst isOpenTask = (isOpen: WorkflowTaskData['isOpen']) => isOpen === undefined || isOpen === true;\n\nexport {getDCRUri, getDCRId, isOpenTask};\n","import {useCallback, useContext, useMemo, useState, MouseEventHandler} from 'react';\nimport {useSelector} from 'react-redux';\nimport {runTaskAction, WorkflowTaskData} from '@reltio/mdm-sdk';\nimport mdmModule from '@reltio/mdm-module';\nimport {showWorkflowError} from '../helpers/errors';\nimport {WorkflowTasksContext} from '../../../contexts/WorkflowTasksContext';\nimport {isOpenTask} from '../helpers';\n\nexport type TaskAction = {text: string; onClick: (comment: string) => void};\n\ntype Props = Pick<WorkflowTaskData, 'taskId' | 'possibleActions' | 'assignee' | 'isOpen'>;\nexport const useWorkflowActions = ({possibleActions, assignee, taskId, isOpen}: Props) => {\n const {onActionSuccess} = useContext(WorkflowTasksContext) || {};\n const workflowPath: string = useSelector(mdmModule.selectors.getWorkflowPath);\n const environment: string = useSelector(mdmModule.selectors.getWorkflowEnvironmentUrl);\n const tenant: string = useSelector(mdmModule.selectors.getTenant);\n const username: string = useSelector(mdmModule.selectors.getUserName);\n const [actionRequestIsInProgress, setActionRequestIsInProgress] = useState(false);\n\n const performTaskAction = useCallback(\n (action: string) => (comment: string | MouseEventHandler<HTMLButtonElement>) => {\n if (workflowPath && taskId) {\n setActionRequestIsInProgress(true);\n const processInstanceComment = typeof comment === 'string' && comment.length ? comment : undefined;\n\n runTaskAction({\n taskId,\n workflowPath,\n environment,\n tenant,\n action,\n processInstanceComment\n })\n .then(() => {\n onActionSuccess?.(action);\n })\n .catch(showWorkflowError)\n .finally(() => {\n setActionRequestIsInProgress(false);\n });\n }\n },\n [workflowPath, taskId, environment, tenant, onActionSuccess]\n );\n\n const actions: TaskAction[] = useMemo(\n () =>\n username === assignee && isOpenTask(isOpen)\n ? (possibleActions || []).map(({action, label}) => ({\n text: label,\n onClick: performTaskAction(action)\n }))\n : [],\n [possibleActions, performTaskAction, username, assignee, isOpen]\n );\n return {actions, actionRequestIsInProgress};\n};\n","import {useState, useEffect, useCallback, useContext} from 'react';\nimport {filter} from 'ramda';\nimport {useSelector} from 'react-redux';\nimport {getAssigneeForTask, updateAssigneeForTask, utils, WorkflowTaskData} from '@reltio/mdm-sdk';\nimport mdmModule from '@reltio/mdm-module';\nimport {useSafePromise} from '../../../hooks';\nimport {WorkflowTasksContext} from '../../../contexts';\nimport {showWorkflowError} from '../helpers/errors';\nimport {useWorkflowCheckPermission} from './useWorkflowCheckPermission';\nimport {isOpenTask} from '../helpers';\n\ntype AssigneeOption = {label: string; value: string};\n\nconst assigneeToValue = (assignee: string): AssigneeOption => ({\n label: assignee,\n value: assignee\n});\nexport const useWorkflowAssignee = ({\n assignee,\n taskId,\n isOpen\n}: Partial<Pick<WorkflowTaskData, 'taskId' | 'assignee' | 'isOpen'>>) => {\n const {updateTaskState} = useContext(WorkflowTasksContext) || {};\n const workflowPath: string = useSelector(mdmModule.selectors.getWorkflowPath);\n const environment: string = useSelector(mdmModule.selectors.getWorkflowEnvironmentUrl);\n const tenant: string = useSelector(mdmModule.selectors.getTenant);\n const updateSafePromise = useSafePromise();\n const getSafePromise = useSafePromise();\n const [currentAssignee, setCurrentAssignee] = useState<AssigneeOption>(null);\n const [assignees, setAssignees] = useState<AssigneeOption[]>();\n const [updateRequestIsInProgress, setUpdateRequestIsInProgress] = useState(false);\n const checkWorkflowPermission = useWorkflowCheckPermission();\n const canUpdateTask = checkWorkflowPermission('UPDATE_TASK') && isOpenTask(isOpen);\n\n useEffect(() => {\n setCurrentAssignee(assigneeToValue(assignee));\n }, [assignee]);\n const getAssignees = useCallback(\n (text) => {\n if (workflowPath && canUpdateTask && taskId) {\n const filterOutRest: <T>(items: T[]) => T[] = filter((item) => item.value.toLowerCase().includes(text));\n if (assignees) {\n return Promise.resolve(filterOutRest(assignees));\n }\n return getSafePromise(\n getAssigneeForTask({\n taskId,\n workflowPath,\n environment,\n tenant\n })\n )\n .then((result) => {\n const {data} = result;\n const assignees = data\n .sort((a, b) => {\n return utils.strings.sort('asc', a, b);\n })\n .map(assigneeToValue);\n setAssignees(assignees);\n return filterOutRest(assignees);\n })\n .catch(showWorkflowError);\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [workflowPath, taskId, environment, tenant, assignees, setAssignees, canUpdateTask]\n );\n const updateAssignee = useCallback(\n (newValue: AssigneeOption) => {\n if (workflowPath && canUpdateTask && taskId) {\n const {value: assignee} = newValue;\n setUpdateRequestIsInProgress(true);\n updateSafePromise(\n updateAssigneeForTask({\n taskId,\n workflowPath,\n environment,\n tenant,\n assignee\n })\n )\n .then(() => {\n setCurrentAssignee(assigneeToValue(assignee));\n updateTaskState?.(taskId, {assignee});\n })\n .catch(showWorkflowError)\n .finally(() => {\n setUpdateRequestIsInProgress(false);\n });\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [workflowPath, taskId, environment, tenant, canUpdateTask]\n );\n return {\n assignee: currentAssignee,\n getAssignees,\n updateAssignee,\n updateRequestIsInProgress,\n readOnly: !canUpdateTask\n };\n};\n","import {useSelector} from 'react-redux';\nimport mdmModule from '@reltio/mdm-module';\n\nexport const useWorkflowCheckPermission: () => (permission: string) => boolean = () => {\n const workflowPath = useSelector(mdmModule.selectors.getWorkflowPath);\n const canUserStartProcessFromQuery = useSelector(mdmModule.selectors.getCanUserStartProcessFromQuery);\n const canUserViewWorkflowJobs = useSelector(mdmModule.selectors.getCanUserViewWorkflowJobs);\n const canUserViewWorkflowEnvironmentConfigJar = useSelector(\n mdmModule.selectors.getCanUserViewWorkflowEnvironmentConfigJar\n );\n const canUserViewWorkflowDefinition = useSelector(mdmModule.selectors.getCanUserViewWorkflowDefinition);\n const canUserViewWorkflowConfigJar = useSelector(mdmModule.selectors.getCanUserViewWorkflowConfigJar);\n const canUserViewProcessInstanceSearchQuery = useSelector(\n mdmModule.selectors.getCanUserViewProcessInstanceSearchQuery\n );\n const canUserUpdateWorkflowDataTask = useSelector(mdmModule.selectors.getCanUserUpdateWorkflowDataTask);\n const canUserUpdateProcessInstance = useSelector(mdmModule.selectors.getCanUserUpdateProcessInstance);\n const canUserReadWorkflowDataTask = useSelector(mdmModule.selectors.getCanUserReadWorkflowDataTask);\n const canUserManageWorkflowEnvironmentDefinition = useSelector(\n mdmModule.selectors.getCanUserManageWorkflowEnvironmentDefinition\n );\n const canUserManageWorkflowDefinition = useSelector(mdmModule.selectors.getCanUserManageWorkflowDefinition);\n const canUserExecuteWorkflowJobsValidateTasks = useSelector(\n mdmModule.selectors.getCanUserExecuteWorkflowJobsValidateTasks\n );\n const canUserExecuteWorkflowJobsUpdateTasks = useSelector(\n mdmModule.selectors.getCanUserExecuteWorkflowJobsUpdateTasks\n );\n const canUserExecuteWorkflowJobsTerminateProcessInstance = useSelector(\n mdmModule.selectors.getCanUserExecuteWorkflowJobsTerminateProcessInstance\n );\n const canUserExecuteWorkflowJobsSyncBusinessProcessData = useSelector(\n mdmModule.selectors.getCanUserExecuteWorkflowJobsSyncBusinessProcessData\n );\n const canUserExecuteWorkflowJobs = useSelector(mdmModule.selectors.getCanUserExecuteWorkflowJobs);\n const canUserCreateWorkflowEnvironmentConfigJar = useSelector(\n mdmModule.selectors.getCanUserCreateWorkflowEnvironmentConfigJar\n );\n const canUserRegisterConfigEnvironments = useSelector(mdmModule.selectors.getCanUserRegisterConfigEnvironments);\n const canUserCreateWorkflowConfigJar = useSelector(mdmModule.selectors.getCanUserCreateWorkflowConfigJar);\n const checkWorkflowPermission = (permission: string) => {\n if (!workflowPath) return false;\n switch (permission) {\n case 'VIEW_PROCESS_DEFINITIONS': {\n return canUserViewWorkflowDefinition;\n }\n case 'DEPLOY_GENERIC_PROCESS_DEFINITION': {\n return canUserManageWorkflowEnvironmentDefinition;\n }\n case 'VIEW_JOBS': {\n return canUserViewWorkflowJobs;\n }\n case 'START_JOB': {\n return (\n canUserExecuteWorkflowJobs ||\n (canUserExecuteWorkflowJobsSyncBusinessProcessData &&\n canUserExecuteWorkflowJobsTerminateProcessInstance &&\n canUserExecuteWorkflowJobsUpdateTasks &&\n canUserExecuteWorkflowJobsValidateTasks)\n );\n }\n case 'VIEW_CUSTOM_JARS': {\n return canUserViewWorkflowConfigJar || canUserViewWorkflowEnvironmentConfigJar;\n }\n case 'UPDATE_PROCESS_INSTANCE': {\n return canUserUpdateProcessInstance;\n }\n case 'VIEW_TASKS': {\n return canUserReadWorkflowDataTask;\n }\n case 'REGISTER_TENANT': {\n return canUserRegisterConfigEnvironments;\n }\n case 'START_PROCESS_INSTANCE': {\n return canUserStartProcessFromQuery;\n }\n case 'VIEW_PROCESS_INSTANCE_COMMENTS': {\n return canUserViewProcessInstanceSearchQuery;\n }\n case 'VIEW_PROCESS_INSTANCES': {\n return canUserViewProcessInstanceSearchQuery;\n }\n case 'UPDATE_TASK': {\n return canUserUpdateWorkflowDataTask;\n }\n case 'DEPLOY_TENANT_PROCESS_DEFINITION': {\n return canUserManageWorkflowDefinition;\n }\n case 'DEPLOY_CUSTOM_JAR': {\n return canUserCreateWorkflowConfigJar && canUserCreateWorkflowEnvironmentConfigJar;\n }\n case 'START_PROCESS_INSTANCE_SEARCH_QUERY': {\n return canUserStartProcessFromQuery;\n }\n case 'VIEW_PROCESS_INSTANCE_COUNT': {\n return canUserViewProcessInstanceSearchQuery;\n }\n }\n return false;\n };\n return checkWorkflowPermission;\n};\n","import {useState, useEffect, useCallback, useContext} from 'react';\nimport {addCommentForTask, getTaskById, WorkflowTaskData} from '@reltio/mdm-sdk';\nimport mdmModule from '@reltio/mdm-module';\nimport {useSelector} from 'react-redux';\nimport {useSafePromise} from '../../../hooks';\nimport {WorkflowTasksContext} from '../../../contexts/WorkflowTasksContext';\nimport {showWorkflowError} from '../helpers/errors';\nimport {useWorkflowCheckPermission} from './useWorkflowCheckPermission';\nimport {isOpenTask} from '../helpers';\n\ntype Props = Pick<WorkflowTaskData, 'processInstanceComments' | 'taskId' | 'isOpen'>;\n\nexport const useWorkflowComments = ({processInstanceComments, taskId, isOpen}: Props) => {\n const {updateTaskState} = useContext(WorkflowTasksContext) || {};\n const workflowPath: string = useSelector(mdmModule.selectors.getWorkflowPath);\n const environment: string = useSelector(mdmModule.selectors.getWorkflowEnvironmentUrl);\n const tenant: string = useSelector(mdmModule.selectors.getTenant);\n const safePromise = useSafePromise();\n const [comments, setComments] = useState([]);\n const [requestIsInProgress, setRequestIsInProgress] = useState(false);\n const checkWorkflowPermission = useWorkflowCheckPermission();\n const canUpdateTask = checkWorkflowPermission('UPDATE_TASK') && isOpenTask(isOpen);\n useEffect(() => {\n setComments(processInstanceComments || []);\n }, [processInstanceComments]);\n\n const writeComment = useCallback(\n (comment) => {\n if (canUpdateTask) {\n setRequestIsInProgress(true);\n safePromise(\n addCommentForTask({\n workflowPath,\n environment,\n tenant,\n taskId,\n comment\n }).then(() =>\n getTaskById({\n workflowPath,\n environment,\n tenant,\n taskId\n })\n )\n )\n .then(({processInstanceComments}) => {\n setComments(processInstanceComments || []);\n updateTaskState?.(taskId, {processInstanceComments});\n })\n .catch(showWorkflowError)\n .finally(() => setRequestIsInProgress(false));\n }\n },\n [environment, taskId, tenant, workflowPath, safePromise, updateTaskState, canUpdateTask]\n );\n return {comments, requestIsInProgress, writeComment, readOnly: !canUpdateTask};\n};\n","import {useCallback, useContext} from 'react';\nimport {useDispatch, useSelector} from 'react-redux';\nimport mdmModule, {profile, ui} from '@reltio/mdm-module';\nimport {ViewIdContext, WorkflowTasksContext} from '../../../contexts';\n\nexport const useWorkflowDefaultActionSuccessHandler = () => {\n const {loadTasks} = useContext(WorkflowTasksContext) || {};\n const viewId = useContext(ViewIdContext);\n const entityUri: string = useSelector(mdmModule.selectors.getEntityUri);\n const dispatch = useDispatch();\n return useCallback(\n (action: string) => {\n if (action === 'Delete') {\n dispatch(ui.actions.entityDeletionFinished());\n } else {\n // entity refreshing\n dispatch(profile.entity.actions.loadEntity({viewId, uri: entityUri}));\n loadTasks?.();\n }\n },\n [dispatch, entityUri, loadTasks, viewId]\n );\n};\n","import React from 'react';\n\nexport const SnackbarContext = React.createContext<(message: string) => void>(() => {});\n\nSnackbarContext.displayName = 'SnackbarContext';\n","import React from 'react';\nimport {WorkflowTaskData, WorkflowTasksResponse} from '@reltio/mdm-sdk';\n\nexport const WorkflowTasksContext = React.createContext<{\n tasks: WorkflowTaskData[];\n total: WorkflowTasksResponse['total'];\n loading: boolean;\n updateTaskState: (taskId: WorkflowTaskData['taskId'], payload: Partial<WorkflowTaskData>) => void;\n loadTasks: () => void;\n onActionSuccess?: (action: string) => void;\n }>(null);\n\nWorkflowTasksContext.displayName = 'WorkflowTasksContext';\n","import {useMemo} from 'react';\nimport {pipe} from 'ramda';\n\ntype UseActions = ({\n actions,\n dispatch\n}: {\n actions: {\n [key: string]: <T>(payload: T) => {type: string; payload: T};\n };\n dispatch: <T>({type, payload}: {type: string; payload: T}) => void;\n}) => {\n [key in keyof typeof actions]: <T>(payload: T) => void;\n};\n\nexport const useActions: UseActions = ({actions, dispatch}) =>\n useMemo(\n () =>\n Object.entries(actions).reduce((acc, [actionName, actionCreator]) => {\n return {...acc, [actionName]: pipe(actionCreator, dispatch)};\n }, {}),\n [dispatch, actions]\n );\n","import {useEffect, useRef} from 'react';\n\nexport const useIsMountedRef = () => {\n const isMountedRef = useRef(false);\n useEffect(() => {\n isMountedRef.current = true;\n return () => {\n isMountedRef.current = false;\n };\n });\n return isMountedRef;\n};\n","import {\n ApiError,\n Entity,\n isDataTenantEntity,\n markDataTenantEntityAsNotMatch,\n markMixedEntitiesAsNotMatches\n} from '@reltio/mdm-sdk';\nimport {useSelector} from 'react-redux';\nimport mdmModule from '@reltio/mdm-module';\nimport {useCallback, useState} from 'react';\nimport {noop} from '../core';\nimport {useIsMountedRef} from './useIsMountedRef';\n\ntype Props = {\n entities: Entity[];\n entity: Entity;\n onFinishRequest?: () => void;\n onStartRequest?: () => void;\n onSuccess?: () => void;\n onError?: (error?: ApiError) => void;\n};\n\nexport const useMarkAsNotMatchRequest = ({\n entities,\n entity,\n onFinishRequest,\n onStartRequest,\n onSuccess,\n onError = noop\n}: Props) => {\n const isMountedRef = useIsMountedRef();\n const tenant = useSelector(mdmModule.selectors.getTenant);\n const dtssPath = useSelector(mdmModule.selectors.getDtssPath);\n const [isPending, setIsPending] = useState<boolean>(false);\n const sendMarkAsNotMatchRequest = useCallback(() => {\n onStartRequest?.();\n setIsPending(true);\n const params = {dtssPath, customerTenant: tenant, entity, entities};\n (isDataTenantEntity(entity) ? markDataTenantEntityAsNotMatch(params) : markMixedEntitiesAsNotMatches(params))\n .then(() => {\n onSuccess?.();\n })\n .catch(onError)\n .finally(() => {\n onFinishRequest?.();\n isMountedRef.current && setIsPending(false);\n });\n }, [dtssPath, entities, entity, isMountedRef, onFinishRequest, onStartRequest, onError, onSuccess, tenant]);\n\n return {isPending, sendMarkAsNotMatchRequest};\n};\n","import {useCallback, useEffect, useMemo, useState} from 'react';\nimport {useSelector} from 'react-redux';\nimport mdmModule from '@reltio/mdm-module';\nimport {\n ActivityFilters,\n collectAllTransitiveEntitiesUris,\n Entity,\n getEntitiesMapForTransitiveMatches,\n getMatchesForDataTenantEntity,\n getMatchesFromDataTenants,\n getTransitiveMatches,\n GlobalSearchRequestOptions,\n isDataTenantEntity,\n isTempUri,\n Match,\n withDtssPotentialItems,\n addGlobalFilterToQuery,\n SortingField\n} from '@reltio/mdm-sdk';\nimport {usePagingSimulator} from './usePagingSimulator';\nimport {useSafePromise} from './useSafePromise';\n\ntype Props = {\n enabled: boolean;\n entity: Entity;\n filter: string;\n rules?: string;\n onFinishLoading?: () => void;\n onStartLoading?: () => void;\n options: {\n showTransitiveMatches?: boolean;\n showInactiveEntities?: boolean;\n };\n page: number;\n rowsPerPage: number;\n sorting?: SortingField;\n markMatchedValues?: boolean;\n};\n\nexport const useMatchesLoader = ({\n enabled,\n entity,\n filter,\n rules,\n onFinishLoading,\n onStartLoading,\n options,\n page,\n rowsPerPage,\n sorting,\n markMatchedValues\n}: Props) => {\n const {order, field} = sorting || {};\n const [total, setTotal] = useState(0);\n const [matches, setMatches] = useState<Match[]>([]);\n const [entitiesMap, setEntitiesMap] = useState<{[key: string]: Pick<Entity, 'uri' | 'type' | 'label'>}>({});\n const tenant = useSelector(mdmModule.selectors.getTenant);\n const dtssPath = useSelector(mdmModule.selectors.getDtssPath);\n const dataTenants = useSelector(mdmModule.selectors.getDataTenants);\n const {activityFilter, globalFilter}: GlobalSearchRequestOptions =\n useSelector(mdmModule.selectors.getGlobalSearchRequestOptions) || {};\n const activeness =\n typeof options.showInactiveEntities === 'boolean'\n ? options.showInactiveEntities\n ? ActivityFilters.ALL\n : ActivityFilters.ACTIVE_ONLY\n : activityFilter;\n const entityUri = entity?.uri;\n const dtssParams = useMemo(\n () => ({\n dtssPath,\n dataTenants,\n entity,\n customerTenant: tenant,\n dtssRequest: getMatchesFromDataTenants\n }),\n //eslint-disable-next-line react-hooks/exhaustive-deps\n [dtssPath, dataTenants, entityUri, tenant]\n );\n\n //eslint-disable-next-line react-hooks/exhaustive-deps\n const getTransitiveMatchesWithDtss = useCallback(withDtssPotentialItems(dtssParams, getTransitiveMatches), [\n dtssParams\n ]);\n\n const getTransitiveMatchesWithPaging = usePagingSimulator(getTransitiveMatchesWithDtss);\n const getPagedMatchesForDataTenantEntity = usePagingSimulator(getMatchesForDataTenantEntity);\n\n const safePromise = useSafePromise();\n const getMatches = useCallback(\n (force = false) => {\n if (!enabled || isTempUri(entityUri)) {\n setTotal(0);\n setMatches([]);\n setEntitiesMap({});\n return;\n }\n onStartLoading?.();\n safePromise(\n isDataTenantEntity(entity)\n ? getPagedMatchesForDataTenantEntity({\n dtssPath,\n entity,\n customerTenant: tenant,\n offset: page * rowsPerPage,\n max: rowsPerPage,\n force\n })\n : getTransitiveMatchesWithPaging({\n entityUri: entityUri,\n offset: page * rowsPerPage,\n max: rowsPerPage,\n filter: addGlobalFilterToQuery(globalFilter, filter) || '',\n rules,\n sort: field,\n order,\n force,\n markMatchedValues,\n deep: options.showTransitiveMatches ? undefined : 1,\n activeness\n })\n )\n .then((result) => {\n const {response, total, originalResponse} = result;\n setTotal(total);\n const matchUris = collectAllTransitiveEntitiesUris(originalResponse);\n if (matchUris.length > 0) {\n setEntitiesMap(getEntitiesMapForTransitiveMatches(originalResponse));\n }\n setMatches(response);\n })\n .finally(() => {\n onFinishLoading?.();\n });\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n globalFilter,\n activeness,\n dtssPath,\n enabled,\n entityUri,\n field,\n filter,\n rules,\n markMatchedValues,\n getPagedMatchesForDataTenantEntity,\n getTransitiveMatchesWithPaging,\n onFinishLoading,\n onStartLoading,\n options,\n order,\n page,\n rowsPerPage,\n safePromise,\n tenant\n ]\n );\n\n useEffect(() => {\n getMatches();\n }, [getMatches]);\n const loadMatches = useCallback(() => {\n getMatches(true);\n }, [getMatches]);\n return {\n total,\n matches,\n entitiesMap,\n loadMatches\n };\n};\n","import {equals, map, pipe, prop, reject} from 'ramda';\nimport {Entity, isDataTenantEntity, isEntityUri, mergeDataEntityWithCustomerEntity} from '@reltio/mdm-sdk';\n\ntype DtssMergeResponse = Awaited<ReturnType<typeof mergeDataEntityWithCustomerEntity>>;\nexport type MergeResponses = (Entity | undefined | DtssMergeResponse)[];\n\nconst isEntity = (response): response is Entity => response?.uri && isEntityUri(response.uri);\n\nconst getWinnerUriFromMergeResponses = (responses: MergeResponses) => responses.find(isEntity)?.uri;\n\nexport const getWinnerLosersUrisFromMergeResponses = (\n entity: Entity,\n entities: Entity[],\n responses: MergeResponses\n) => {\n const winnerUri = getWinnerUriFromMergeResponses(responses);\n if (winnerUri) {\n const losersUris: string[] = pipe(\n reject(isDataTenantEntity),\n map(prop('uri')),\n reject(equals(winnerUri))\n )([entity, ...entities]);\n return {winnerUri, losersUris};\n }\n};\n","import {useCallback, useState} from 'react';\nimport {useDispatch, useSelector} from 'react-redux';\nimport mdmModule, {search} from '@reltio/mdm-module';\nimport {\n ApiError,\n Entity,\n isDataTenantEntity,\n mergeCustomerTenantEntityWithMixedEntities,\n mergeDataTenantEntity\n} from '@reltio/mdm-sdk';\nimport {noop} from '../core';\nimport {useIsMountedRef} from './useIsMountedRef';\nimport {getWinnerLosersUrisFromMergeResponses, MergeResponses} from './helpers/merge';\n\ntype Props = {\n entities: Entity[];\n entity: Entity;\n onFinishRequest?: () => void;\n onStartRequest?: () => void;\n onSuccess?: () => void;\n onError?: (error?: ApiError) => void;\n};\nexport const useMergeAllRequest = ({\n entities,\n entity,\n onFinishRequest,\n onStartRequest,\n onSuccess,\n onError = noop\n}: Props) => {\n const isMountedRef = useIsMountedRef();\n const tenant = useSelector(mdmModule.selectors.getTenant);\n const dtssPath = useSelector(mdmModule.selectors.getDtssPath);\n const [isPending, setIsPending] = useState<boolean>(false);\n const dispatch = useDispatch();\n const sendMergeAllRequest = useCallback(() => {\n onStartRequest?.();\n setIsPending(true);\n const params = {dtssPath, customerTenant: tenant, entity, entities};\n (isDataTenantEntity(entity)\n ? mergeDataTenantEntity(params)\n : mergeCustomerTenantEntityWithMixedEntities(params)\n )\n .then((responses: MergeResponses) => {\n onSuccess?.();\n const uris = getWinnerLosersUrisFromMergeResponses(entity, entities, responses);\n if (uris) {\n const {winnerUri, losersUris} = uris;\n dispatch(search.actions.updateSearchNavigationDataOnMerge({winnerUri, losersUris}));\n }\n })\n .catch(onError)\n .finally(() => {\n onFinishRequest?.();\n isMountedRef.current && setIsPending(false);\n });\n }, [dtssPath, entities, entity, onError, onFinishRequest, onStartRequest, onSuccess, tenant, dispatch]);\n return {isPending, sendMergeAllRequest};\n};\n","import {equals} from 'ramda';\n\ntype RequestProps = {\n max: number;\n offset: number;\n force?: boolean;\n [key: string]: unknown;\n};\nexport const createPagingSimulator = (request) => {\n let previousValues = {};\n let requestResponse = [];\n return async ({max, offset, force, ...requestParams}: RequestProps) => {\n let shouldSendRequest = force;\n const previousValuesKeys = Object.keys(previousValues);\n shouldSendRequest = shouldSendRequest || !equals(Object.keys(requestParams), previousValuesKeys);\n if (!shouldSendRequest) {\n for (const key of previousValuesKeys) {\n shouldSendRequest = shouldSendRequest || !equals(previousValues[key], requestParams[key]);\n }\n }\n if (shouldSendRequest) {\n // eslint-disable-next-line no-unused-vars\n requestResponse = await request(requestParams);\n previousValues = requestParams;\n }\n\n return {\n response: requestResponse.slice(offset, offset + max),\n total: requestResponse.length,\n originalResponse: requestResponse\n };\n };\n};\n","import {useCallback} from 'react';\nimport {createPagingSimulator} from './helpers/pagingSimulator';\n\nexport const usePagingSimulator = (request) => {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n return useCallback(createPagingSimulator(request), [request]);\n};\n","import {useCallback, useEffect, useState} from 'react';\nimport {useDidUpdateEffect} from './useDidUpdateEffect';\n\ntype SavedState<T> = {\n [entityType: string]: T;\n};\n\ntype Props<T> = {\n getSavedState: () => Promise<SavedState<T>>;\n saveState: (state: SavedState<T>) => void;\n entityTypeUri?: string;\n};\n\nexport const useSavedStateForEntityType = <T>({getSavedState, saveState, entityTypeUri}: Props<T>) => {\n const [savedState, setSavedState] = useState<SavedState<T>>({});\n const [changedState, setChangedState] = useState<SavedState<T>>(null);\n const [isLoaded, setIsLoaded] = useState(false);\n\n const saveChangesLocallyForPrevEntityType = () => {\n if (changedState) {\n setSavedState({...savedState, ...changedState});\n setChangedState(null);\n }\n };\n useDidUpdateEffect(saveChangesLocallyForPrevEntityType, [entityTypeUri]);\n\n const updateSavedState = useCallback(\n (stateToSave: T) => {\n if (!entityTypeUri) return;\n const changedState = {\n [entityTypeUri]: stateToSave\n };\n setChangedState(changedState);\n saveState({...savedState, ...changedState});\n },\n [entityTypeUri, saveState, savedState]\n );\n\n useEffect(() => {\n getSavedState()\n .then((savedState) => {\n setSavedState(savedState || {});\n })\n .then((_) => setIsLoaded(true))\n .catch((_) => setIsLoaded(true));\n }, []); // eslint-disable-line\n\n return {isLoaded: isLoaded && !!entityTypeUri, savedState: savedState[entityTypeUri], updateSavedState};\n};\n"],"names":["CHANGE_COLUMNS","TOGGLE_FILTERS","CHANGE_FILTER","TOGGLE_SORT","CHANGE_PAGE","CHANGE_ROWS_PER_PAGE","actions","changeColumns","createStandardAction","toggleFilters","changeFilter","toggleSort","changePage","changeRowsPerPage","changeVisibleColumns","state","nextVisibleColumns","removedColumns","difference","visibleColumns","isRemovedColumn","columnId","includes","evolve","always","sorting","when","field","nextSortField","order","filters","keys","reduce","acc","dissoc","reducer","action","type","columnIds","payload","enableFilters","page","filter","assoc","prevSortField","path","prevSortOrder","toggleSortOrder","rowsPerPage","useStyles","makeStyles","itemContainer","width","height","item","background","fontSize","memo","className","crosswalk","showTooltip","styles","color","useCrosswalkColor","metadata","useSelector","mdm","content","classnames","style","SourceIcon","sourceType","Tooltip","title","getSourceSystemLabel","theme","label","backgroundColor","lineHeight","palette","text","primary","display","alignItems","padding","container","cursor","expanded","marginBottom","MatchRulesBadge","forwardRef","ref","children","onExpand","otherProps","onClick","ArrowExpandButton","displayName","props","viewBox","fill","xmlns","fillRule","clipRule","d","fillOpacity","notMatch","NotMatchRule","i18n","entitiesMap","entity","match","variant","MatchRuleVariant","matchRules","negativeRules","isTransitive","isTransitiveMatch","getMatchRules","concat","hasNotMatch","uri","NOT_MATCH","length","showSimple","showNotMatch","TransitiveMatchBlock","transitiveMatchRules","getTransitiveMatchRules","matchRuleSummaries","SimpleMatchRulesBuilder","Component","SimpleMatchRulesBlock","isMlMatch","fontWeight","body","marginLeft","negativeRuleIcon","position","marginRight","top","MatchRulesTitle","map","key","negativeRule","secondary","labelsContainer","matchRuleInfo","justifyContent","matchRuleLabel","wordBreak","relevanceScore","matchRule","matchRuleSummary","getMatchRuleSummary","relevancePercentage","formatRelevanceScore","flexDirection","rulesContainer","icon","xmlnsXlink","x1","y1","x2","y2","id","stopColor","offset","stopOpacity","stroke","strokeWidth","transform","xlinkHref","opacity","x","y","rx","mask","cx","cy","ry","r","MatchRuleBadgeWithTooltip","withTooltip","setExpanded","useState","handleOnExpand","useCallback","expand","tooltipTitle","MatchRulesTooltip","tooltipPlacement","SimpleMatchRules","MlMatchRules","otherMatchRules","partitionByMlMatch","all","simple","excludeNotMatch","isEmpty","showML","light","badge","matchLabels","ruleWrapper","paddingTop","index","MergeButton","mode","ActionButtonMode","onMenuClose","noop","disabled","entities","onStartRequest","onFinishRequest","onSuccess","onError","sendMergeAllRequest","useMergeAllRequest","ActionButton","MergeIcon","root","maxWidth","MAX_WIDTH_SELECT","paddingBottom","minHeight","outlined","paddingRight","paddingLeft","arrowIcon","right","currentValue","currentValueIcon","currentValueText","textTransform","whiteSpace","textOverflow","overflow","menuItem","firstMenuItemButton","borderTop","menuItemInner","menuItemIcon","menuItemLabel","menuItemDescription","isButton","value","ModeSwitcherSelect","optionsGroup","buttonsGroup","onChange","Select","classes","select","e","target","some","propEq","renderValue","IconComponent","find","Box","Typography","MenuProps","anchorOrigin","vertical","horizontal","transformOrigin","items","firstButtonIdx","findIndex","idx","description","menuItemProps","MenuItem","renderMenuItems","NotMatchButton","sendMarkAsNotMatchRequest","useMarkAsNotMatchRequest","NotMatchIcon","borderRadius","RelevanceScoreBadge","mdmModule","matchRuleSummaryWithBestScore","checkMatchRuleSummaryRelevance","sort","a","b","relevance","ruleName","getMatchRuleLabel","flexShrink","borderBottom","margin","divider","borderColor","secondTitle","SidePanelContentHeader","onClose","mainTitle","rightContent","SmallIconButton","size","CloseIcon","Divider","orientation","flexItem","taskId","assignee","isTaskOpen","currentAssignee","getAssignees","updateAssignee","updateRequestIsInProgress","readOnly","useWorkflowAssignee","isOpen","isDisabled","getOptions","hideSelectedOptions","defaultOptions","TextFieldProps","isInProgress","buttonComponent","buttonProps","MoreVertIcon","menuId","menuItems","useCommentStyles","_theme","comment","flex","avatar","firstLine","info","author","date","wordWrap","useCollapsedCommentsStyles","circleButton","maxHeight","border","left","delimiter","useWorkflowStyles","commentsContainer","overflowY","filledInputRoot","modeSwitcherWrapper","marginTop","useExpandedComments","messageContainer","Comment","message","time","Avatar","Person","defaultProps","propTypes","PropTypes","CollapsedComments","comments","IconButton","ExpandedComments","getValue","WorkflowComments","workflowActions","actionRequestIsInProgress","processInstanceComments","preferredAction","setComment","currentAction","setCurrentAction","writeComment","useWorkflowComments","sendComment","pipe","BUTTONS_GROUP","useMemo","Input","endAdornment","InputAdornment","SendIcon","placeholder","onKeyPress","both","disableUnderline","Button","showApiError","error","console","ErrorPopup","errorMessage","showWorkflowError","apiError","errorCode","ApiErrorCode","getDCRUri","objectUris","startsWith","getDCRId","unless","isNil","split","nth","isOpenTask","undefined","useWorkflowActions","possibleActions","onActionSuccess","useContext","WorkflowTasksContext","workflowPath","environment","tenant","username","setActionRequestIsInProgress","performTaskAction","processInstanceComment","runTaskAction","then","catch","finally","assigneeToValue","updateTaskState","updateSafePromise","useSafePromise","getSafePromise","setCurrentAssignee","assignees","setAssignees","setUpdateRequestIsInProgress","canUpdateTask","useWorkflowCheckPermission","checkWorkflowPermission","useEffect","filterOutRest","toLowerCase","Promise","resolve","getAssigneeForTask","result","data","utils","newValue","updateAssigneeForTask","canUserStartProcessFromQuery","canUserViewWorkflowJobs","canUserViewWorkflowEnvironmentConfigJar","canUserViewWorkflowDefinition","canUserViewWorkflowConfigJar","canUserViewProcessInstanceSearchQuery","canUserUpdateWorkflowDataTask","canUserUpdateProcessInstance","canUserReadWorkflowDataTask","canUserManageWorkflowEnvironmentDefinition","canUserManageWorkflowDefinition","canUserExecuteWorkflowJobsValidateTasks","canUserExecuteWorkflowJobsUpdateTasks","canUserExecuteWorkflowJobsTerminateProcessInstance","canUserExecuteWorkflowJobsSyncBusinessProcessData","canUserExecuteWorkflowJobs","canUserCreateWorkflowEnvironmentConfigJar","canUserRegisterConfigEnvironments","canUserCreateWorkflowConfigJar","permission","safePromise","setComments","requestIsInProgress","setRequestIsInProgress","addCommentForTask","getTaskById","useWorkflowDefaultActionSuccessHandler","loadTasks","viewId","ViewIdContext","entityUri","dispatch","useDispatch","ui","profile","SnackbarContext","React","useActions","Object","entries","actionName","actionCreator","useIsMountedRef","isMountedRef","useRef","current","dtssPath","isPending","setIsPending","params","customerTenant","isDataTenantEntity","markDataTenantEntityAsNotMatch","markMixedEntitiesAsNotMatches","useMatchesLoader","enabled","rules","onFinishLoading","onStartLoading","options","markMatchedValues","total","setTotal","matches","setMatches","setEntitiesMap","dataTenants","activityFilter","globalFilter","activeness","showInactiveEntities","ActivityFilters","dtssParams","dtssRequest","getMatchesFromDataTenants","getTransitiveMatchesWithDtss","withDtssPotentialItems","getTransitiveMatches","getTransitiveMatchesWithPaging","usePagingSimulator","getPagedMatchesForDataTenantEntity","getMatchesForDataTenantEntity","getMatches","force","isTempUri","max","addGlobalFilterToQuery","deep","showTransitiveMatches","response","originalResponse","collectAllTransitiveEntitiesUris","getEntitiesMapForTransitiveMatches","loadMatches","isEntity","isEntityUri","mergeDataTenantEntity","mergeCustomerTenantEntityWithMixedEntities","responses","uris","winnerUri","getWinnerUriFromMergeResponses","losersUris","reject","prop","equals","getWinnerLosersUrisFromMergeResponses","search","request","previousValues","requestResponse","async","requestParams","shouldSendRequest","previousValuesKeys","slice","createPagingSimulator","useSavedStateForEntityType","getSavedState","saveState","entityTypeUri","savedState","setSavedState","changedState","setChangedState","isLoaded","setIsLoaded","useDidUpdateEffect","updateSavedState","stateToSave","_"],"sourceRoot":""}