@reltio/components 1.4.966 → 1.4.970

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 (37) hide show
  1. package/cjs/components/SidePanel/SidePanelContentHeader/SidePanelContentHeader.js +4 -3
  2. package/cjs/components/SidePanel/SidePanelContentHeader/styles.js +1 -1
  3. package/cjs/components/attributes/readMode/SimpleAttribute/styles.js +9 -3
  4. package/cjs/components/history/HistoryFilterButton/HistoryFilterButton.d.ts +2 -1
  5. package/cjs/components/history/HistoryFilterButton/HistoryFilterButton.js +2 -2
  6. package/cjs/components/history/HistoryFilterButton/styles.d.ts +1 -1
  7. package/cjs/components/history/HistoryFilterButton/styles.js +0 -3
  8. package/cjs/components/history/HistoryHeader/HistoryHeader.d.ts +1 -1
  9. package/cjs/components/history/HistoryHeader/HistoryHeader.js +6 -5
  10. package/cjs/components/history/HistoryHeader/styles.d.ts +1 -1
  11. package/cjs/components/history/HistoryHeader/styles.js +3 -0
  12. package/cjs/components/history/HistoryMenuButton/HistoryMenuButton.js +1 -4
  13. package/cjs/components/history/HistoryMenuButton/styles.d.ts +1 -1
  14. package/cjs/components/history/HistoryMenuButton/styles.js +0 -3
  15. package/cjs/components/workflow/components/AddWorkflowDialog/AddWorkflowDialog.js +1 -0
  16. package/cjs/hooks/useCollaboration.js +1 -1
  17. package/cjs/hooks/useRelationsLoader.d.ts +1 -0
  18. package/cjs/hooks/useRelationsLoader.js +8 -3
  19. package/esm/components/SidePanel/SidePanelContentHeader/SidePanelContentHeader.js +4 -3
  20. package/esm/components/SidePanel/SidePanelContentHeader/styles.js +1 -1
  21. package/esm/components/attributes/readMode/SimpleAttribute/styles.js +9 -3
  22. package/esm/components/history/HistoryFilterButton/HistoryFilterButton.d.ts +2 -1
  23. package/esm/components/history/HistoryFilterButton/HistoryFilterButton.js +2 -2
  24. package/esm/components/history/HistoryFilterButton/styles.d.ts +1 -1
  25. package/esm/components/history/HistoryFilterButton/styles.js +0 -3
  26. package/esm/components/history/HistoryHeader/HistoryHeader.d.ts +1 -1
  27. package/esm/components/history/HistoryHeader/HistoryHeader.js +6 -5
  28. package/esm/components/history/HistoryHeader/styles.d.ts +1 -1
  29. package/esm/components/history/HistoryHeader/styles.js +3 -0
  30. package/esm/components/history/HistoryMenuButton/HistoryMenuButton.js +1 -4
  31. package/esm/components/history/HistoryMenuButton/styles.d.ts +1 -1
  32. package/esm/components/history/HistoryMenuButton/styles.js +0 -3
  33. package/esm/components/workflow/components/AddWorkflowDialog/AddWorkflowDialog.js +1 -0
  34. package/esm/hooks/useCollaboration.js +1 -1
  35. package/esm/hooks/useRelationsLoader.d.ts +1 -0
  36. package/esm/hooks/useRelationsLoader.js +10 -5
  37. package/package.json +3 -3
@@ -15,11 +15,12 @@ var SidePanelContentHeader = function (_a) {
15
15
  var onClose = _a.onClose, mainTitle = _a.mainTitle, secondTitle = _a.secondTitle, content = _a.content, rightContent = _a.rightContent;
16
16
  var styles = styles_1.useStyles();
17
17
  return (react_1.default.createElement("div", { className: styles.container },
18
- react_1.default.createElement(SmallIconButton_1.SmallIconButtonWithTooltip, { size: "S", icon: Close_1.default, onClick: onClose, className: styles.icon, tooltipTitle: ui_i18n_1.default.text('Close') }),
18
+ react_1.default.createElement(SmallIconButton_1.SmallIconButtonWithTooltip, { size: "L", icon: Close_1.default, onClick: onClose, className: styles.icon, tooltipTitle: ui_i18n_1.default.text('Close') }),
19
19
  content || (react_1.default.createElement(react_1.default.Fragment, null,
20
20
  react_1.default.createElement(Typography_1.default, { variant: "h6" }, mainTitle),
21
- react_1.default.createElement(Divider_1.default, { orientation: "vertical", flexItem: true, className: styles.divider }),
22
- react_1.default.createElement(Typography_1.default, { variant: "body1", color: "textSecondary", className: styles.secondTitle }, secondTitle),
21
+ secondTitle && (react_1.default.createElement(react_1.default.Fragment, null,
22
+ react_1.default.createElement(Divider_1.default, { orientation: "vertical", flexItem: true, className: styles.divider }),
23
+ react_1.default.createElement(Typography_1.default, { variant: "body1", color: "textSecondary", className: styles.secondTitle }, secondTitle))),
23
24
  rightContent))));
24
25
  };
25
26
  exports.SidePanelContentHeader = SidePanelContentHeader;
@@ -11,7 +11,7 @@ exports.useStyles = styles_1.makeStyles({
11
11
  borderBottom: '1px solid rgba(0,0,0,0.12)'
12
12
  },
13
13
  icon: {
14
- margin: '0 20px'
14
+ margin: '0 12px'
15
15
  },
16
16
  divider: {
17
17
  backgroundColor: 'rgba(0,0,0,0.12)',
@@ -28,9 +28,15 @@ exports.useStyles = styles_1.makeStyles({
28
28
  flex: 1,
29
29
  wordBreak: 'break-all'
30
30
  },
31
- updateAttribute: __assign({ width: 'fit-content', padding: '0 4px', marginLeft: '-4px' }, historyAppearance_1.historyPalettes[historyAppearance_1.HistoryOperations.updateAttribute]),
32
- insertAttribute: __assign({ width: 'fit-content' }, historyAppearance_1.historyPalettes[historyAppearance_1.HistoryOperations.insertAttribute]),
33
- deleteAttribute: __assign({ width: 'fit-content', padding: '0 4px', marginLeft: '-4px', textDecoration: 'line-through' }, historyAppearance_1.historyPalettes[historyAppearance_1.HistoryOperations.deleteAttribute]),
31
+ updateAttribute: __assign(__assign({ width: 'fit-content', padding: '0 4px', marginLeft: '-4px' }, historyAppearance_1.historyPalettes[historyAppearance_1.HistoryOperations.updateAttribute]), { '& > a': {
32
+ color: historyAppearance_1.historyPalettes[historyAppearance_1.HistoryOperations.updateAttribute].color
33
+ } }),
34
+ insertAttribute: __assign(__assign({ width: 'fit-content' }, historyAppearance_1.historyPalettes[historyAppearance_1.HistoryOperations.insertAttribute]), { '& > a': {
35
+ color: historyAppearance_1.historyPalettes[historyAppearance_1.HistoryOperations.insertAttribute].color
36
+ } }),
37
+ deleteAttribute: __assign(__assign({ width: 'fit-content', padding: '0 4px', marginLeft: '-4px', textDecoration: 'line-through' }, historyAppearance_1.historyPalettes[historyAppearance_1.HistoryOperations.deleteAttribute]), { '& > a': {
38
+ color: historyAppearance_1.historyPalettes[historyAppearance_1.HistoryOperations.deleteAttribute].color
39
+ } }),
34
40
  multilineAttribute: {
35
41
  width: 'fit-content'
36
42
  }
@@ -2,10 +2,11 @@
2
2
  import { TEntityType } from '@reltio/mdm-sdk';
3
3
  import { HistoryFilter } from '../types';
4
4
  declare type Props = {
5
+ className?: string;
5
6
  filter: HistoryFilter;
6
7
  onApplyFilter: (filter: HistoryFilter) => void;
7
8
  onClearFilter: () => void;
8
9
  entityType: TEntityType;
9
10
  };
10
- declare const HistoryFilterButton: ({ filter, onApplyFilter, onClearFilter, entityType }: Props) => JSX.Element;
11
+ declare const HistoryFilterButton: ({ className, filter, onApplyFilter, onClearFilter, entityType }: Props) => JSX.Element;
11
12
  export default HistoryFilterButton;
@@ -48,7 +48,7 @@ var DateRangeSelector_1 = __importDefault(require("../DateRangeSelector/DateRang
48
48
  var HistoryActivitySelector_1 = __importDefault(require("../HistoryActivitySelector/HistoryActivitySelector"));
49
49
  var styles_1 = require("./styles");
50
50
  var HistoryFilterButton = function (_a) {
51
- var filter = _a.filter, onApplyFilter = _a.onApplyFilter, onClearFilter = _a.onClearFilter, entityType = _a.entityType;
51
+ var className = _a.className, filter = _a.filter, onApplyFilter = _a.onApplyFilter, onClearFilter = _a.onClearFilter, entityType = _a.entityType;
52
52
  var styles = styles_1.useStyles();
53
53
  var _b = react_1.useState(null), anchorEl = _b[0], setAnchorEl = _b[1];
54
54
  var openPopup = function (event) { return setAnchorEl(event.currentTarget); };
@@ -65,7 +65,7 @@ var HistoryFilterButton = function (_a) {
65
65
  });
66
66
  var _d = currentValue || {}, _e = _d.activities, activities = _e === void 0 ? [] : _e, _f = _d.attributes, attributes = _f === void 0 ? [] : _f, _g = _d.dateRange, dateRange = _g === void 0 ? null : _g, _h = _d.users, users = _h === void 0 ? [] : _h;
67
67
  return (react_1.default.createElement(react_1.default.Fragment, null,
68
- react_1.default.createElement(SmallIconButton_1.SmallIconButton, { icon: FilterList_1.default, size: "XS", onClick: openPopup, className: styles.icon }),
68
+ react_1.default.createElement(SmallIconButton_1.SmallIconButton, { icon: FilterList_1.default, size: "L", onClick: openPopup, className: className }),
69
69
  react_1.default.createElement(Popover_1.default, { classes: { paper: styles.popup }, open: !!anchorEl, anchorEl: anchorEl, onClose: closePopup, anchorOrigin: {
70
70
  vertical: 'bottom',
71
71
  horizontal: 'right'
@@ -1 +1 @@
1
- export declare const useStyles: (props?: any) => import("@material-ui/core/styles/withStyles").ClassNameMap<"icon" | "input" | "popup" | "filterControls" | "clearButton" | "filterContainer" | "filterContainerScrollable" | "filterItem">;
1
+ export declare const useStyles: (props?: any) => import("@material-ui/core/styles/withStyles").ClassNameMap<"input" | "popup" | "filterControls" | "clearButton" | "filterContainer" | "filterContainerScrollable" | "filterItem">;
@@ -3,9 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.useStyles = void 0;
4
4
  var styles_1 = require("@material-ui/core/styles");
5
5
  exports.useStyles = styles_1.makeStyles({
6
- icon: {
7
- margin: 5
8
- },
9
6
  popup: {
10
7
  width: 500,
11
8
  height: 500,
@@ -2,7 +2,7 @@
2
2
  import { TEntityType } from '@reltio/mdm-sdk';
3
3
  import { HistoryFilter } from '../types';
4
4
  declare type Props = {
5
- total: number;
5
+ total?: number;
6
6
  entityType: TEntityType;
7
7
  filter: HistoryFilter;
8
8
  onApplyFilter: (value: HistoryFilter) => void;
@@ -17,12 +17,13 @@ var HistoryHeader = function (_a) {
17
17
  var styles = styles_1.useStyles();
18
18
  return (react_1.default.createElement("div", { className: styles.root },
19
19
  react_1.default.createElement(Typography_1.default, { variant: "h6" }, ui_i18n_1.default.text('History')),
20
- react_1.default.createElement(Divider_1.default, { orientation: "vertical", flexItem: true, className: styles.divider }),
21
- !ramda_1.isNil(total) && (react_1.default.createElement(Typography_1.default, { variant: "body1", color: "textSecondary", className: styles.count }, total === 1
22
- ? ui_i18n_1.default.text('${count} contributing profile', { count: total })
23
- : ui_i18n_1.default.text('${count} contributing profiles', { count: total }))),
20
+ !ramda_1.isNil(total) && (react_1.default.createElement(react_1.default.Fragment, null,
21
+ react_1.default.createElement(Divider_1.default, { orientation: "vertical", flexItem: true, className: styles.divider }),
22
+ react_1.default.createElement(Typography_1.default, { variant: "body1", color: "textSecondary", className: styles.count }, total === 1
23
+ ? ui_i18n_1.default.text('${count} contributing profile', { count: total })
24
+ : ui_i18n_1.default.text('${count} contributing profiles', { count: total })))),
24
25
  react_1.default.createElement(Spacer_1.default, null),
25
- react_1.default.createElement(HistoryFilterButton_1.default, { entityType: entityType, filter: filter, onApplyFilter: onApplyFilter, onClearFilter: onClearFilter }),
26
+ react_1.default.createElement(HistoryFilterButton_1.default, { className: styles.filterButton, entityType: entityType, filter: filter, onApplyFilter: onApplyFilter, onClearFilter: onClearFilter }),
26
27
  react_1.default.createElement(HistoryMenuButton_1.default, null)));
27
28
  };
28
29
  exports.default = HistoryHeader;
@@ -1 +1 @@
1
- export declare const useStyles: (props?: any) => import("@material-ui/core/styles/withStyles").ClassNameMap<"count" | "icon" | "root" | "divider">;
1
+ export declare const useStyles: (props?: any) => import("@material-ui/core/styles/withStyles").ClassNameMap<"count" | "icon" | "root" | "divider" | "filterButton">;
@@ -17,5 +17,8 @@ exports.useStyles = styles_1.makeStyles({
17
17
  },
18
18
  count: {
19
19
  fontSize: 14
20
+ },
21
+ filterButton: {
22
+ marginRight: '-4px'
20
23
  }
21
24
  });
@@ -30,9 +30,7 @@ var mdm_module_1 = __importStar(require("@reltio/mdm-module"));
30
30
  var SmallIconButton_1 = require("../../SmallIconButton");
31
31
  var DropDownMenuButton_1 = __importDefault(require("../../DropDownMenuButton/DropDownMenuButton"));
32
32
  var MenuItemRenderer_1 = __importDefault(require("./MenuItemRenderer"));
33
- var styles_1 = require("./styles");
34
33
  var HistoryMenuButton = function () {
35
- var styles = styles_1.useStyles();
36
34
  var mode = react_redux_1.useSelector(mdm_module_1.default.selectors.getHistoryMode);
37
35
  var dispatch = react_redux_1.useDispatch();
38
36
  var handleModeChange = function (selectedMode) {
@@ -52,8 +50,7 @@ var HistoryMenuButton = function () {
52
50
  ];
53
51
  return (react_1.default.createElement(DropDownMenuButton_1.default, { MenuItemRenderer: MenuItemRenderer_1.default, buttonComponent: SmallIconButton_1.SmallIconButton, buttonProps: {
54
52
  icon: MoreVert_1.default,
55
- size: 'L',
56
- className: styles.icon
53
+ size: 'L'
57
54
  }, menuId: 'history-menu', menuItems: menuItems }));
58
55
  };
59
56
  exports.default = HistoryMenuButton;
@@ -1 +1 @@
1
- export declare const useStyles: (props?: any) => import("@material-ui/core/styles/withStyles").ClassNameMap<"icon" | "menuItem" | "menuText" | "checkIcon">;
1
+ export declare const useStyles: (props?: any) => import("@material-ui/core/styles/withStyles").ClassNameMap<"menuItem" | "menuText" | "checkIcon">;
@@ -3,9 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.useStyles = void 0;
4
4
  var styles_1 = require("@material-ui/core/styles");
5
5
  exports.useStyles = styles_1.makeStyles({
6
- icon: {
7
- margin: 5
8
- },
9
6
  menuItem: {
10
7
  minHeight: '32px'
11
8
  },
@@ -55,6 +55,7 @@ var AddWorkflowDialog = function (_a) {
55
55
  setIsOpenSnackbar(true);
56
56
  setComment('');
57
57
  setTaskType(null);
58
+ onClose();
58
59
  })
59
60
  .catch(function () { });
60
61
  };
@@ -168,7 +168,7 @@ var useCollaboration = function (_a) {
168
168
  }
169
169
  setCommentsMap(function (prevCommentsMap) {
170
170
  var _a;
171
- return (__assign(__assign({}, prevCommentsMap), (_a = {}, _a[uri] = prevCommentsMap[uri].map(function (comment) {
171
+ return (__assign(__assign({}, prevCommentsMap), (_a = {}, _a[uri] = (prevCommentsMap[uri] || []).map(function (comment) {
172
172
  if (comment.commentId === commentId) {
173
173
  return __assign(__assign({}, comment), { status: newStatus, replies: comment.replies + 1 });
174
174
  }
@@ -10,6 +10,7 @@ declare type Props = {
10
10
  config: {
11
11
  id: string;
12
12
  content: Record<string, unknown>;
13
+ suggested?: Record<string, unknown>[] | Record<string, unknown>;
13
14
  };
14
15
  entity: Entity;
15
16
  relationActivityFilter?: ActivityFilter;
@@ -38,6 +38,7 @@ var mdm_module_1 = __importStar(require("@reltio/mdm-module"));
38
38
  var mdm_sdk_1 = require("@reltio/mdm-sdk");
39
39
  var useSafePromise_1 = require("./useSafePromise");
40
40
  var usePrevious_1 = require("./usePrevious");
41
+ var buildSuggestedIds = ramda_1.when(ramda_1.identity, ramda_1.pipe(mdm_sdk_1.wrapInArrayIfNeeded, ramda_1.length, ramda_1.times(function (n) { return n + 1; })));
41
42
  var useRelationsLoader = function (_a) {
42
43
  var sorting = _a.sorting, filter = _a.filter, page = _a.page, rowsPerPage = _a.rowsPerPage, config = _a.config, entity = _a.entity, relationActivityFilter = _a.relationActivityFilter, mode = _a.mode;
43
44
  var _b = react_1.useState(false), isLoading = _b[0], setIsLoading = _b[1];
@@ -46,12 +47,16 @@ var useRelationsLoader = function (_a) {
46
47
  var dtssPath = react_redux_1.useSelector(mdm_module_1.default.selectors.getDtssPath);
47
48
  var _c = react_redux_1.useSelector(mdm_module_1.default.selectors.getGlobalSearchRequestOptions) || {}, activityFilter = _c.activityFilter, globalFilter = _c.globalFilter;
48
49
  var safePromise = useSafePromise_1.useSafePromise();
50
+ var suggested = config.suggested;
49
51
  var loadRelations = react_1.useCallback(function () {
50
52
  if (entity === null || entity === void 0 ? void 0 : entity.uri) {
51
53
  var requestConfig_1 = __assign(__assign({}, config.content), { sortBy: sorting === null || sorting === void 0 ? void 0 : sorting.field, order: sorting === null || sorting === void 0 ? void 0 : sorting.order, returnDates: true, returnObjects: true, activeness: {
52
54
  relation: relationActivityFilter || mdm_sdk_1.ActivityFilter.ALL,
53
55
  entity: activityFilter
54
- }, max: rowsPerPage, offset: page * rowsPerPage, filter: mdm_sdk_1.addGlobalFilterToQuery(globalFilter, filter) || undefined });
56
+ }, max: rowsPerPage, offset: page * rowsPerPage, filter: mdm_sdk_1.addGlobalFilterToQuery(globalFilter, filter) || undefined, suggested: buildSuggestedIds(suggested) });
57
+ var configs_1 = [requestConfig_1].concat(ramda_1.ifElse(ramda_1.identity, ramda_1.pipe(mdm_sdk_1.wrapInArrayIfNeeded, function (suggested) {
58
+ return suggested.map(function (config, i) { return (__assign(__assign({}, config), { id: requestConfig_1.suggested[i] })); });
59
+ }), ramda_1.always([]))(suggested));
55
60
  var request = ramda_1.cond([
56
61
  [ramda_1.pipe(ramda_1.prop('uri'), mdm_sdk_1.isTempUri), function () { return Promise.resolve([{ total: 0 }]); }],
57
62
  [
@@ -59,14 +64,14 @@ var useRelationsLoader = function (_a) {
59
64
  function (entity) {
60
65
  return mdm_sdk_1.getRelationsForDataTenantEntity({
61
66
  entityUri: entity.uri,
62
- configs: [requestConfig_1],
67
+ configs: configs_1,
63
68
  customerTenant: tenant,
64
69
  dataTenant: entity.dataTenant,
65
70
  dtssPath: dtssPath
66
71
  });
67
72
  }
68
73
  ],
69
- [ramda_1.T, function (entity) { return mdm_sdk_1.getRelationsForEntity(entity.uri, [requestConfig_1]); }]
74
+ [ramda_1.T, function (entity) { return mdm_sdk_1.getRelationsForEntity(entity.uri, configs_1); }]
70
75
  ]);
71
76
  setIsLoading(true);
72
77
  safePromise(request(entity))
@@ -9,10 +9,11 @@ export var SidePanelContentHeader = function (_a) {
9
9
  var onClose = _a.onClose, mainTitle = _a.mainTitle, secondTitle = _a.secondTitle, content = _a.content, rightContent = _a.rightContent;
10
10
  var styles = useStyles();
11
11
  return (React.createElement("div", { className: styles.container },
12
- React.createElement(SmallIconButtonWithTooltip, { size: "S", icon: CloseIcon, onClick: onClose, className: styles.icon, tooltipTitle: i18n.text('Close') }),
12
+ React.createElement(SmallIconButtonWithTooltip, { size: "L", icon: CloseIcon, onClick: onClose, className: styles.icon, tooltipTitle: i18n.text('Close') }),
13
13
  content || (React.createElement(React.Fragment, null,
14
14
  React.createElement(Typography, { variant: "h6" }, mainTitle),
15
- React.createElement(Divider, { orientation: "vertical", flexItem: true, className: styles.divider }),
16
- React.createElement(Typography, { variant: "body1", color: "textSecondary", className: styles.secondTitle }, secondTitle),
15
+ secondTitle && (React.createElement(React.Fragment, null,
16
+ React.createElement(Divider, { orientation: "vertical", flexItem: true, className: styles.divider }),
17
+ React.createElement(Typography, { variant: "body1", color: "textSecondary", className: styles.secondTitle }, secondTitle))),
17
18
  rightContent))));
18
19
  };
@@ -8,7 +8,7 @@ export var useStyles = makeStyles({
8
8
  borderBottom: '1px solid rgba(0,0,0,0.12)'
9
9
  },
10
10
  icon: {
11
- margin: '0 20px'
11
+ margin: '0 12px'
12
12
  },
13
13
  divider: {
14
14
  backgroundColor: 'rgba(0,0,0,0.12)',
@@ -25,9 +25,15 @@ export var useStyles = makeStyles({
25
25
  flex: 1,
26
26
  wordBreak: 'break-all'
27
27
  },
28
- updateAttribute: __assign({ width: 'fit-content', padding: '0 4px', marginLeft: '-4px' }, historyPalettes[HistoryOperations.updateAttribute]),
29
- insertAttribute: __assign({ width: 'fit-content' }, historyPalettes[HistoryOperations.insertAttribute]),
30
- deleteAttribute: __assign({ width: 'fit-content', padding: '0 4px', marginLeft: '-4px', textDecoration: 'line-through' }, historyPalettes[HistoryOperations.deleteAttribute]),
28
+ updateAttribute: __assign(__assign({ width: 'fit-content', padding: '0 4px', marginLeft: '-4px' }, historyPalettes[HistoryOperations.updateAttribute]), { '& > a': {
29
+ color: historyPalettes[HistoryOperations.updateAttribute].color
30
+ } }),
31
+ insertAttribute: __assign(__assign({ width: 'fit-content' }, historyPalettes[HistoryOperations.insertAttribute]), { '& > a': {
32
+ color: historyPalettes[HistoryOperations.insertAttribute].color
33
+ } }),
34
+ deleteAttribute: __assign(__assign({ width: 'fit-content', padding: '0 4px', marginLeft: '-4px', textDecoration: 'line-through' }, historyPalettes[HistoryOperations.deleteAttribute]), { '& > a': {
35
+ color: historyPalettes[HistoryOperations.deleteAttribute].color
36
+ } }),
31
37
  multilineAttribute: {
32
38
  width: 'fit-content'
33
39
  }
@@ -2,10 +2,11 @@
2
2
  import { TEntityType } from '@reltio/mdm-sdk';
3
3
  import { HistoryFilter } from '../types';
4
4
  declare type Props = {
5
+ className?: string;
5
6
  filter: HistoryFilter;
6
7
  onApplyFilter: (filter: HistoryFilter) => void;
7
8
  onClearFilter: () => void;
8
9
  entityType: TEntityType;
9
10
  };
10
- declare const HistoryFilterButton: ({ filter, onApplyFilter, onClearFilter, entityType }: Props) => JSX.Element;
11
+ declare const HistoryFilterButton: ({ className, filter, onApplyFilter, onClearFilter, entityType }: Props) => JSX.Element;
11
12
  export default HistoryFilterButton;
@@ -24,7 +24,7 @@ import DateRangeSelector from '../DateRangeSelector/DateRangeSelector';
24
24
  import HistoryActivitySelector from '../HistoryActivitySelector/HistoryActivitySelector';
25
25
  import { useStyles } from './styles';
26
26
  var HistoryFilterButton = function (_a) {
27
- var filter = _a.filter, onApplyFilter = _a.onApplyFilter, onClearFilter = _a.onClearFilter, entityType = _a.entityType;
27
+ var className = _a.className, filter = _a.filter, onApplyFilter = _a.onApplyFilter, onClearFilter = _a.onClearFilter, entityType = _a.entityType;
28
28
  var styles = useStyles();
29
29
  var _b = useState(null), anchorEl = _b[0], setAnchorEl = _b[1];
30
30
  var openPopup = function (event) { return setAnchorEl(event.currentTarget); };
@@ -41,7 +41,7 @@ var HistoryFilterButton = function (_a) {
41
41
  });
42
42
  var _d = currentValue || {}, _e = _d.activities, activities = _e === void 0 ? [] : _e, _f = _d.attributes, attributes = _f === void 0 ? [] : _f, _g = _d.dateRange, dateRange = _g === void 0 ? null : _g, _h = _d.users, users = _h === void 0 ? [] : _h;
43
43
  return (React.createElement(React.Fragment, null,
44
- React.createElement(SmallIconButton, { icon: FilterListIcon, size: "XS", onClick: openPopup, className: styles.icon }),
44
+ React.createElement(SmallIconButton, { icon: FilterListIcon, size: "L", onClick: openPopup, className: className }),
45
45
  React.createElement(Popover, { classes: { paper: styles.popup }, open: !!anchorEl, anchorEl: anchorEl, onClose: closePopup, anchorOrigin: {
46
46
  vertical: 'bottom',
47
47
  horizontal: 'right'
@@ -1 +1 @@
1
- export declare const useStyles: (props?: any) => import("@material-ui/core/styles/withStyles").ClassNameMap<"icon" | "input" | "popup" | "filterControls" | "clearButton" | "filterContainer" | "filterContainerScrollable" | "filterItem">;
1
+ export declare const useStyles: (props?: any) => import("@material-ui/core/styles/withStyles").ClassNameMap<"input" | "popup" | "filterControls" | "clearButton" | "filterContainer" | "filterContainerScrollable" | "filterItem">;
@@ -1,8 +1,5 @@
1
1
  import { makeStyles } from '@material-ui/core/styles';
2
2
  export var useStyles = makeStyles({
3
- icon: {
4
- margin: 5
5
- },
6
3
  popup: {
7
4
  width: 500,
8
5
  height: 500,
@@ -2,7 +2,7 @@
2
2
  import { TEntityType } from '@reltio/mdm-sdk';
3
3
  import { HistoryFilter } from '../types';
4
4
  declare type Props = {
5
- total: number;
5
+ total?: number;
6
6
  entityType: TEntityType;
7
7
  filter: HistoryFilter;
8
8
  onApplyFilter: (value: HistoryFilter) => void;
@@ -12,12 +12,13 @@ var HistoryHeader = function (_a) {
12
12
  var styles = useStyles();
13
13
  return (React.createElement("div", { className: styles.root },
14
14
  React.createElement(Typography, { variant: "h6" }, i18n.text('History')),
15
- React.createElement(Divider, { orientation: "vertical", flexItem: true, className: styles.divider }),
16
- !isNil(total) && (React.createElement(Typography, { variant: "body1", color: "textSecondary", className: styles.count }, total === 1
17
- ? i18n.text('${count} contributing profile', { count: total })
18
- : i18n.text('${count} contributing profiles', { count: total }))),
15
+ !isNil(total) && (React.createElement(React.Fragment, null,
16
+ React.createElement(Divider, { orientation: "vertical", flexItem: true, className: styles.divider }),
17
+ React.createElement(Typography, { variant: "body1", color: "textSecondary", className: styles.count }, total === 1
18
+ ? i18n.text('${count} contributing profile', { count: total })
19
+ : i18n.text('${count} contributing profiles', { count: total })))),
19
20
  React.createElement(Spacer, null),
20
- React.createElement(HistoryFilterButton, { entityType: entityType, filter: filter, onApplyFilter: onApplyFilter, onClearFilter: onClearFilter }),
21
+ React.createElement(HistoryFilterButton, { className: styles.filterButton, entityType: entityType, filter: filter, onApplyFilter: onApplyFilter, onClearFilter: onClearFilter }),
21
22
  React.createElement(HistoryMenuButton, null)));
22
23
  };
23
24
  export default HistoryHeader;
@@ -1 +1 @@
1
- export declare const useStyles: (props?: any) => import("@material-ui/core/styles/withStyles").ClassNameMap<"count" | "icon" | "root" | "divider">;
1
+ export declare const useStyles: (props?: any) => import("@material-ui/core/styles/withStyles").ClassNameMap<"count" | "icon" | "root" | "divider" | "filterButton">;
@@ -14,5 +14,8 @@ export var useStyles = makeStyles({
14
14
  },
15
15
  count: {
16
16
  fontSize: 14
17
+ },
18
+ filterButton: {
19
+ marginRight: '-4px'
17
20
  }
18
21
  });
@@ -6,9 +6,7 @@ import mdmModule, { HistoryMode, profile } from '@reltio/mdm-module';
6
6
  import { SmallIconButton } from '../../SmallIconButton';
7
7
  import DropDownMenuButton from '../../DropDownMenuButton/DropDownMenuButton';
8
8
  import MenuItemRenderer from './MenuItemRenderer';
9
- import { useStyles } from './styles';
10
9
  var HistoryMenuButton = function () {
11
- var styles = useStyles();
12
10
  var mode = useSelector(mdmModule.selectors.getHistoryMode);
13
11
  var dispatch = useDispatch();
14
12
  var handleModeChange = function (selectedMode) {
@@ -28,8 +26,7 @@ var HistoryMenuButton = function () {
28
26
  ];
29
27
  return (React.createElement(DropDownMenuButton, { MenuItemRenderer: MenuItemRenderer, buttonComponent: SmallIconButton, buttonProps: {
30
28
  icon: MoreVertIcon,
31
- size: 'L',
32
- className: styles.icon
29
+ size: 'L'
33
30
  }, menuId: 'history-menu', menuItems: menuItems }));
34
31
  };
35
32
  export default HistoryMenuButton;
@@ -1 +1 @@
1
- export declare const useStyles: (props?: any) => import("@material-ui/core/styles/withStyles").ClassNameMap<"icon" | "menuItem" | "menuText" | "checkIcon">;
1
+ export declare const useStyles: (props?: any) => import("@material-ui/core/styles/withStyles").ClassNameMap<"menuItem" | "menuText" | "checkIcon">;
@@ -1,8 +1,5 @@
1
1
  import { makeStyles } from '@material-ui/core/styles';
2
2
  export var useStyles = makeStyles({
3
- icon: {
4
- margin: 5
5
- },
6
3
  menuItem: {
7
4
  minHeight: '32px'
8
5
  },
@@ -30,6 +30,7 @@ export var AddWorkflowDialog = function (_a) {
30
30
  setIsOpenSnackbar(true);
31
31
  setComment('');
32
32
  setTaskType(null);
33
+ onClose();
33
34
  })
34
35
  .catch(function () { });
35
36
  };
@@ -162,7 +162,7 @@ export var useCollaboration = function (_a) {
162
162
  }
163
163
  setCommentsMap(function (prevCommentsMap) {
164
164
  var _a;
165
- return (__assign(__assign({}, prevCommentsMap), (_a = {}, _a[uri] = prevCommentsMap[uri].map(function (comment) {
165
+ return (__assign(__assign({}, prevCommentsMap), (_a = {}, _a[uri] = (prevCommentsMap[uri] || []).map(function (comment) {
166
166
  if (comment.commentId === commentId) {
167
167
  return __assign(__assign({}, comment), { status: newStatus, replies: comment.replies + 1 });
168
168
  }
@@ -10,6 +10,7 @@ declare type Props = {
10
10
  config: {
11
11
  id: string;
12
12
  content: Record<string, unknown>;
13
+ suggested?: Record<string, unknown>[] | Record<string, unknown>;
13
14
  };
14
15
  entity: Entity;
15
16
  relationActivityFilter?: ActivityFilter;
@@ -11,11 +11,12 @@ var __assign = (this && this.__assign) || function () {
11
11
  };
12
12
  import { useCallback, useEffect, useRef, useState } from 'react';
13
13
  import { useDispatch, useSelector } from 'react-redux';
14
- import { cond, pipe, prop, T } from 'ramda';
14
+ import { cond, pipe, prop, T, when, identity, times, length, ifElse, always } from 'ramda';
15
15
  import mdm, { profile } from '@reltio/mdm-module';
16
- import { ActivityFilter, addGlobalFilterToQuery, getRelationsForDataTenantEntity, getRelationsForEntity, isDataTenantEntity, isTempUri, Mode } from '@reltio/mdm-sdk';
16
+ import { ActivityFilter, addGlobalFilterToQuery, getRelationsForDataTenantEntity, getRelationsForEntity, isDataTenantEntity, isTempUri, Mode, wrapInArrayIfNeeded } from '@reltio/mdm-sdk';
17
17
  import { useSafePromise } from './useSafePromise';
18
18
  import { usePrevious } from './usePrevious';
19
+ var buildSuggestedIds = when(identity, pipe(wrapInArrayIfNeeded, length, times(function (n) { return n + 1; })));
19
20
  export var useRelationsLoader = function (_a) {
20
21
  var sorting = _a.sorting, filter = _a.filter, page = _a.page, rowsPerPage = _a.rowsPerPage, config = _a.config, entity = _a.entity, relationActivityFilter = _a.relationActivityFilter, mode = _a.mode;
21
22
  var _b = useState(false), isLoading = _b[0], setIsLoading = _b[1];
@@ -24,12 +25,16 @@ export var useRelationsLoader = function (_a) {
24
25
  var dtssPath = useSelector(mdm.selectors.getDtssPath);
25
26
  var _c = useSelector(mdm.selectors.getGlobalSearchRequestOptions) || {}, activityFilter = _c.activityFilter, globalFilter = _c.globalFilter;
26
27
  var safePromise = useSafePromise();
28
+ var suggested = config.suggested;
27
29
  var loadRelations = useCallback(function () {
28
30
  if (entity === null || entity === void 0 ? void 0 : entity.uri) {
29
31
  var requestConfig_1 = __assign(__assign({}, config.content), { sortBy: sorting === null || sorting === void 0 ? void 0 : sorting.field, order: sorting === null || sorting === void 0 ? void 0 : sorting.order, returnDates: true, returnObjects: true, activeness: {
30
32
  relation: relationActivityFilter || ActivityFilter.ALL,
31
33
  entity: activityFilter
32
- }, max: rowsPerPage, offset: page * rowsPerPage, filter: addGlobalFilterToQuery(globalFilter, filter) || undefined });
34
+ }, max: rowsPerPage, offset: page * rowsPerPage, filter: addGlobalFilterToQuery(globalFilter, filter) || undefined, suggested: buildSuggestedIds(suggested) });
35
+ var configs_1 = [requestConfig_1].concat(ifElse(identity, pipe(wrapInArrayIfNeeded, function (suggested) {
36
+ return suggested.map(function (config, i) { return (__assign(__assign({}, config), { id: requestConfig_1.suggested[i] })); });
37
+ }), always([]))(suggested));
33
38
  var request = cond([
34
39
  [pipe(prop('uri'), isTempUri), function () { return Promise.resolve([{ total: 0 }]); }],
35
40
  [
@@ -37,14 +42,14 @@ export var useRelationsLoader = function (_a) {
37
42
  function (entity) {
38
43
  return getRelationsForDataTenantEntity({
39
44
  entityUri: entity.uri,
40
- configs: [requestConfig_1],
45
+ configs: configs_1,
41
46
  customerTenant: tenant,
42
47
  dataTenant: entity.dataTenant,
43
48
  dtssPath: dtssPath
44
49
  });
45
50
  }
46
51
  ],
47
- [T, function (entity) { return getRelationsForEntity(entity.uri, [requestConfig_1]); }]
52
+ [T, function (entity) { return getRelationsForEntity(entity.uri, configs_1); }]
48
53
  ]);
49
54
  setIsLoading(true);
50
55
  safePromise(request(entity))
package/package.json CHANGED
@@ -1,14 +1,14 @@
1
1
  {
2
2
  "name": "@reltio/components",
3
- "version": "1.4.966",
3
+ "version": "1.4.970",
4
4
  "license": "SEE LICENSE IN LICENSE FILE",
5
5
  "main": "./cjs/index.js",
6
6
  "module": "./esm/index.js",
7
7
  "dependencies": {
8
8
  "@date-io/moment": "^1.3.5",
9
9
  "@react-google-maps/api": "^2.7.0",
10
- "@reltio/mdm-module": "^1.4.966",
11
- "@reltio/mdm-sdk": "^1.4.966",
10
+ "@reltio/mdm-module": "^1.4.970",
11
+ "@reltio/mdm-sdk": "^1.4.970",
12
12
  "classnames": "^2.2.5",
13
13
  "d3-cloud": "^1.2.5",
14
14
  "d3-geo": "^2.0.1",