@reltio/components 1.4.1511 → 1.4.1515

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 (79) hide show
  1. package/cjs/components/ProfilesList/styles.d.ts +1 -1
  2. package/cjs/components/RelationEditor/RelationEditor.js +4 -4
  3. package/cjs/components/attributes/editMode/AttributesFactory/Attribute.d.ts +6 -1
  4. package/cjs/components/attributes/editMode/AttributesFactory/Attribute.js +40 -4
  5. package/cjs/components/attributes/editMode/AttributesList/AttributesList.d.ts +3 -39
  6. package/cjs/components/attributes/editMode/AttributesList/AttributesList.js +10 -3
  7. package/cjs/components/attributes/editMode/AttributesPager/AttributeRenderer.d.ts +9 -7
  8. package/cjs/components/attributes/editMode/AttributesPager/AttributeRenderer.js +8 -12
  9. package/cjs/components/attributes/editMode/AttributesPager/AttributesPager.d.ts +38 -2
  10. package/cjs/components/attributes/editMode/AttributesPager/AttributesPager.js +19 -28
  11. package/cjs/components/attributes/editMode/AttributesPager/ImageLineRenderer.d.ts +4 -2
  12. package/cjs/components/attributes/editMode/AttributesPager/ImageLineRenderer.js +5 -2
  13. package/cjs/components/attributes/editMode/AttributesPager/SpecialRenderer.d.ts +3 -1
  14. package/cjs/components/attributes/editMode/AttributesPager/SpecialRenderer.js +6 -3
  15. package/cjs/components/attributes/editMode/AttributesPager/index.d.ts +4 -1
  16. package/cjs/components/attributes/editMode/ComplexAttribute/ComplexAttribute.js +5 -4
  17. package/cjs/components/attributes/editMode/ReferenceAttribute/ReferenceAttribute.js +3 -3
  18. package/cjs/components/attributes/editMode/SimpleAttributeEditor/SimpleAttributeEditor.js +3 -3
  19. package/cjs/components/attributes/editMode/hooks/useScrollToAttribute/styles.d.ts +1 -0
  20. package/cjs/components/attributes/editMode/hooks/useScrollToAttribute/styles.js +38 -0
  21. package/cjs/components/attributes/editMode/hooks/useScrollToAttribute/useScrollToAttribute.d.ts +8 -0
  22. package/cjs/components/attributes/editMode/hooks/useScrollToAttribute/useScrollToAttribute.js +17 -0
  23. package/cjs/components/attributes/inline/common/CrosswalkIcon.js +4 -2
  24. package/cjs/components/attributes/inline/common/__test__/CrosswalkIcon.spec.js +114 -64
  25. package/cjs/components/attributes/inline/common/styles.d.ts +1 -0
  26. package/cjs/components/attributes/inline/common/styles.js +4 -2
  27. package/cjs/components/workflow/helpers/errors.d.ts +3 -2
  28. package/cjs/components/workflow/helpers/errors.js +15 -9
  29. package/cjs/components/workflow/hooks/useChangeRequest.js +2 -2
  30. package/cjs/contexts/ScrollToElementContext/index.d.ts +20 -0
  31. package/cjs/contexts/ScrollToElementContext/index.js +73 -0
  32. package/cjs/contexts/index.d.ts +1 -1
  33. package/cjs/contexts/index.js +7 -4
  34. package/cjs/hooks/useScrollToAttributeError/useScrollToAttributeError.d.ts +2 -2
  35. package/cjs/hooks/useScrollToAttributeError/useScrollToAttributeError.js +2 -2
  36. package/cjs/test-utils/store-utils.d.ts +78 -0
  37. package/cjs/test-utils/store-utils.js +19 -0
  38. package/esm/components/ProfilesList/styles.d.ts +1 -1
  39. package/esm/components/RelationEditor/RelationEditor.js +5 -5
  40. package/esm/components/attributes/editMode/AttributesFactory/Attribute.d.ts +6 -1
  41. package/esm/components/attributes/editMode/AttributesFactory/Attribute.js +17 -4
  42. package/esm/components/attributes/editMode/AttributesList/AttributesList.d.ts +3 -39
  43. package/esm/components/attributes/editMode/AttributesList/AttributesList.js +12 -5
  44. package/esm/components/attributes/editMode/AttributesPager/AttributeRenderer.d.ts +9 -7
  45. package/esm/components/attributes/editMode/AttributesPager/AttributeRenderer.js +10 -14
  46. package/esm/components/attributes/editMode/AttributesPager/AttributesPager.d.ts +38 -2
  47. package/esm/components/attributes/editMode/AttributesPager/AttributesPager.js +20 -6
  48. package/esm/components/attributes/editMode/AttributesPager/ImageLineRenderer.d.ts +4 -2
  49. package/esm/components/attributes/editMode/AttributesPager/ImageLineRenderer.js +5 -2
  50. package/esm/components/attributes/editMode/AttributesPager/SpecialRenderer.d.ts +3 -1
  51. package/esm/components/attributes/editMode/AttributesPager/SpecialRenderer.js +6 -3
  52. package/esm/components/attributes/editMode/AttributesPager/index.d.ts +4 -1
  53. package/esm/components/attributes/editMode/ComplexAttribute/ComplexAttribute.js +6 -5
  54. package/esm/components/attributes/editMode/ReferenceAttribute/ReferenceAttribute.js +4 -4
  55. package/esm/components/attributes/editMode/SimpleAttributeEditor/SimpleAttributeEditor.js +4 -4
  56. package/esm/components/attributes/editMode/hooks/useScrollToAttribute/styles.d.ts +1 -0
  57. package/esm/components/attributes/editMode/hooks/useScrollToAttribute/styles.js +35 -0
  58. package/esm/components/attributes/editMode/hooks/useScrollToAttribute/useScrollToAttribute.d.ts +8 -0
  59. package/esm/components/attributes/editMode/hooks/useScrollToAttribute/useScrollToAttribute.js +13 -0
  60. package/esm/components/attributes/inline/common/CrosswalkIcon.js +4 -2
  61. package/esm/components/attributes/inline/common/__test__/CrosswalkIcon.spec.js +116 -43
  62. package/esm/components/attributes/inline/common/styles.d.ts +1 -0
  63. package/esm/components/attributes/inline/common/styles.js +4 -2
  64. package/esm/components/workflow/helpers/errors.d.ts +3 -2
  65. package/esm/components/workflow/helpers/errors.js +13 -8
  66. package/esm/components/workflow/hooks/useChangeRequest.js +3 -3
  67. package/esm/contexts/ScrollToElementContext/index.d.ts +20 -0
  68. package/esm/contexts/ScrollToElementContext/index.js +44 -0
  69. package/esm/contexts/index.d.ts +1 -1
  70. package/esm/contexts/index.js +1 -1
  71. package/esm/hooks/useScrollToAttributeError/useScrollToAttributeError.d.ts +2 -2
  72. package/esm/hooks/useScrollToAttributeError/useScrollToAttributeError.js +2 -2
  73. package/esm/test-utils/store-utils.d.ts +78 -0
  74. package/esm/test-utils/store-utils.js +12 -0
  75. package/package.json +3 -3
  76. package/cjs/contexts/ScrollToErrorContext/index.d.ts +0 -13
  77. package/cjs/contexts/ScrollToErrorContext/index.js +0 -48
  78. package/esm/contexts/ScrollToErrorContext/index.d.ts +0 -13
  79. package/esm/contexts/ScrollToErrorContext/index.js +0 -21
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useScrollToAttribute = void 0;
4
+ var react_1 = require("react");
5
+ var styles_1 = require("./styles");
6
+ var useScrollToAttribute = function (context) {
7
+ var styles = (0, styles_1.useStyles)();
8
+ var ref = (0, react_1.useRef)(null);
9
+ var scrollIntoRef = (context || {}).scrollIntoRef;
10
+ (0, react_1.useEffect)(function () {
11
+ if (context) {
12
+ scrollIntoRef(ref);
13
+ }
14
+ }, [context, scrollIntoRef]);
15
+ return context ? { ref: ref, highlightedClassName: styles.highlighted } : { ref: ref };
16
+ };
17
+ exports.useScrollToAttribute = useScrollToAttribute;
@@ -4,6 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  var react_1 = __importDefault(require("react"));
7
+ var mdm_sdk_1 = require("@reltio/mdm-sdk");
7
8
  var contexts_1 = require("../../../../contexts");
8
9
  var SourceItem_1 = __importDefault(require("./SourceItem"));
9
10
  var LightArrowTooltip_1 = __importDefault(require("../../../LightArrowTooltip/LightArrowTooltip"));
@@ -12,9 +13,10 @@ var styles_1 = require("./styles");
12
13
  var CrosswalkIcon = function (_a) {
13
14
  var crosswalk = _a.crosswalk, className = _a.className;
14
15
  var color = (0, contexts_1.useCrosswalkColor)(crosswalk);
16
+ var isDisabled = (0, mdm_sdk_1.isCrosswalkDisabled)(crosswalk);
15
17
  var _b = (0, contexts_1.useCrosswalkHighlight)(crosswalk), isDimmed = _b.isDimmed, highlightCrosswalk = _b.highlightCrosswalk, removeHighlight = _b.removeHighlight;
16
- var styles = (0, styles_1.useStyles)({ isOpaque: !isDimmed, color: color });
18
+ var styles = (0, styles_1.useStyles)({ isOpaque: !isDimmed, color: color, isDisabled: isDisabled });
17
19
  return (react_1.default.createElement(LightArrowTooltip_1.default, { title: react_1.default.createElement(SourceItem_1.default, { crosswalk: crosswalk, color: color }), placement: 'top' },
18
- react_1.default.createElement("div", { className: (0, classnames_1.default)(styles.crosswalkIcon, className), onMouseEnter: function () { return highlightCrosswalk(); }, onMouseLeave: function () { return removeHighlight(); } })));
20
+ react_1.default.createElement("div", { "data-reltio-id": "crosswalk-icon", className: (0, classnames_1.default)(styles.crosswalkIcon, className), onMouseEnter: function () { return highlightCrosswalk(); }, onMouseLeave: function () { return removeHighlight(); } })));
19
21
  };
20
22
  exports.default = CrosswalkIcon;
@@ -1,79 +1,129 @@
1
1
  "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
12
10
  };
13
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
- if (k2 === undefined) k2 = k;
15
- var desc = Object.getOwnPropertyDescriptor(m, k);
16
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
- desc = { enumerable: true, get: function() { return m[k]; } };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (_) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
18
36
  }
19
- Object.defineProperty(o, k2, desc);
20
- }) : (function(o, m, k, k2) {
21
- if (k2 === undefined) k2 = k;
22
- o[k2] = m[k];
23
- }));
24
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
- Object.defineProperty(o, "default", { enumerable: true, value: v });
26
- }) : function(o, v) {
27
- o["default"] = v;
28
- });
29
- var __importStar = (this && this.__importStar) || function (mod) {
30
- if (mod && mod.__esModule) return mod;
31
- var result = {};
32
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
33
- __setModuleDefault(result, mod);
34
- return result;
35
37
  };
36
38
  var __importDefault = (this && this.__importDefault) || function (mod) {
37
39
  return (mod && mod.__esModule) ? mod : { "default": mod };
38
40
  };
39
41
  Object.defineProperty(exports, "__esModule", { value: true });
40
42
  var react_1 = __importDefault(require("react"));
41
- var enzyme_1 = require("enzyme");
43
+ var react_2 = require("@testing-library/react");
44
+ var user_event_1 = __importDefault(require("@testing-library/user-event"));
45
+ var react_redux_1 = require("react-redux");
42
46
  var CrosswalkIcon_1 = __importDefault(require("../CrosswalkIcon"));
43
- var crosswalksDisplay = __importStar(require("../../../../../contexts/CrosswalksDisplayContext"));
44
- var LightArrowTooltip_1 = __importDefault(require("../../../../LightArrowTooltip/LightArrowTooltip"));
47
+ var CrosswalksDisplayContext_1 = require("../../../../../contexts/CrosswalksDisplayContext");
48
+ var store_utils_1 = require("../../../../../test-utils/store-utils");
49
+ jest.unmock('@material-ui/core/styles');
45
50
  describe('CrosswalkIcon tests', function () {
46
- var highlightCrosswalk = jest.fn();
47
- var removeHighlight = jest.fn();
48
- var color = '#FF0000';
49
- beforeAll(function () {
50
- jest.spyOn(crosswalksDisplay, 'useCrosswalkColor').mockReturnValue(color);
51
- jest.spyOn(crosswalksDisplay, 'useCrosswalkHighlight').mockReturnValue({
52
- isHighlighted: true,
53
- isDimmed: false,
54
- highlightCrosswalk: highlightCrosswalk,
55
- removeHighlight: removeHighlight
51
+ var setCrosswalkHighlighted = jest.fn();
52
+ var crosswalk = { type: 'Reltio', uri: 'crosswalkUri', value: '20' };
53
+ var disabledCrosswalk = { type: 'Reltio', uri: 'crosswalkUri', value: '20', deleteDate: 1000000 };
54
+ var setUp = function (crosswalk, className, color) {
55
+ if (className === void 0) { className = ''; }
56
+ if (color === void 0) { color = '#F0F'; }
57
+ var store = (0, store_utils_1.createTestStore)({
58
+ metadata: {
59
+ tenant: {
60
+ sources: [{ uri: 'configuration/sources/Reltio', label: 'Reltio' }]
61
+ }
62
+ },
63
+ tenant: {
64
+ id: 'tenant'
65
+ }
56
66
  });
57
- });
58
- var props = {
59
- crosswalk: { type: 'testType', uri: 'crosswalkUri', value: '20' },
60
- className: 'testClassName'
67
+ var Providers = function (_a) {
68
+ var children = _a.children;
69
+ return (react_1.default.createElement(react_redux_1.Provider, { store: store },
70
+ react_1.default.createElement(CrosswalksDisplayContext_1.CrosswalksDisplayProvider, { setCrosswalkHighlighted: setCrosswalkHighlighted, getCrosswalkColor: function () { return color; } }, children)));
71
+ };
72
+ return (0, react_2.render)(react_1.default.createElement(CrosswalkIcon_1.default, { crosswalk: crosswalk, className: className }), { wrapper: Providers });
61
73
  };
62
- it('should render CrosswalkIcon correctly', function () {
63
- var wrapper = (0, enzyme_1.shallow)(react_1.default.createElement(CrosswalkIcon_1.default, __assign({}, props)));
64
- var tooltip = wrapper.find(LightArrowTooltip_1.default);
65
- var title = tooltip.prop('title');
66
- expect(title.props.crosswalk).toEqual(props.crosswalk);
67
- expect(title.props.color).toEqual(color);
68
- expect(wrapper.find('div').length).toBe(1);
69
- });
70
- it('should support highlighting', function () {
71
- var wrapper = (0, enzyme_1.shallow)(react_1.default.createElement(CrosswalkIcon_1.default, __assign({}, props)));
72
- var div = wrapper.find('div');
73
- expect(div.prop('className')).toBe('crosswalkIcon testClassName');
74
- div.simulate('mouseenter');
75
- expect(highlightCrosswalk).toBeCalledTimes(1);
76
- div.simulate('mouseleave');
77
- expect(removeHighlight).toBeCalledTimes(1);
74
+ it('should render CrosswalkIcon correctly', function () { return __awaiter(void 0, void 0, void 0, function () {
75
+ var user, icon;
76
+ return __generator(this, function (_a) {
77
+ switch (_a.label) {
78
+ case 0:
79
+ user = user_event_1.default.setup();
80
+ setUp(crosswalk);
81
+ icon = react_2.screen.getByTestId('crosswalk-icon');
82
+ return [4 /*yield*/, user.hover(icon)];
83
+ case 1:
84
+ _a.sent();
85
+ return [4 /*yield*/, react_2.screen.findByRole('tooltip')];
86
+ case 2:
87
+ _a.sent();
88
+ expect(react_2.screen.getByText('R')).toBeInTheDocument();
89
+ return [2 /*return*/];
90
+ }
91
+ });
92
+ }); });
93
+ it('should support highlighting', function () { return __awaiter(void 0, void 0, void 0, function () {
94
+ var user, icon, hoverArgs, unhoverArgs;
95
+ return __generator(this, function (_a) {
96
+ switch (_a.label) {
97
+ case 0:
98
+ setCrosswalkHighlighted.mockReset();
99
+ user = user_event_1.default.setup();
100
+ setUp(crosswalk);
101
+ icon = react_2.screen.getByTestId('crosswalk-icon');
102
+ return [4 /*yield*/, user.hover(icon)];
103
+ case 1:
104
+ _a.sent();
105
+ expect(setCrosswalkHighlighted).toHaveBeenCalledTimes(1);
106
+ hoverArgs = setCrosswalkHighlighted.mock.calls[0];
107
+ expect(hoverArgs[0]).toBe(crosswalk);
108
+ expect(hoverArgs[1]).toBeTruthy();
109
+ return [4 /*yield*/, user.unhover(icon)];
110
+ case 2:
111
+ _a.sent();
112
+ expect(setCrosswalkHighlighted).toHaveBeenCalledTimes(2);
113
+ unhoverArgs = setCrosswalkHighlighted.mock.calls[1];
114
+ expect(unhoverArgs[0]).toBe(crosswalk);
115
+ expect(unhoverArgs[1]).toBeFalsy();
116
+ return [2 /*return*/];
117
+ }
118
+ });
119
+ }); });
120
+ it('should render correct icon for disabled crosswalk', function () {
121
+ setUp(disabledCrosswalk);
122
+ var element = react_2.screen.getByTestId('crosswalk-icon');
123
+ var style = getComputedStyle(element);
124
+ expect(style).toMatchObject({
125
+ border: '2px solid #f0f',
126
+ 'box-sizing': 'border-box'
127
+ });
78
128
  });
79
129
  });
@@ -2,6 +2,7 @@ declare type StylesProps = {
2
2
  color: string;
3
3
  isOpaque?: boolean;
4
4
  isFocused?: boolean;
5
+ isDisabled?: boolean;
5
6
  };
6
7
  export declare const useStyles: (props: StylesProps) => import("@material-ui/core/styles/withStyles").ClassNameMap<"label" | "crosswalkValue" | "sourceItem" | "eyeIcon" | "sourceInfo" | "sourceIcon" | "crosswalkIcon">;
7
8
  export declare const useComplexAttributeLabelStyles: (props?: any) => import("@material-ui/core/styles/withStyles").ClassNameMap<"label">;
@@ -41,11 +41,13 @@ exports.useStyles = (0, styles_1.makeStyles)({
41
41
  });
42
42
  },
43
43
  crosswalkIcon: function (_a) {
44
- var color = _a.color, isOpaque = _a.isOpaque;
44
+ var color = _a.color, isOpaque = _a.isOpaque, isDisabled = _a.isDisabled;
45
45
  return ({
46
- backgroundColor: color,
46
+ backgroundColor: isDisabled ? '#fff' : color,
47
+ border: isDisabled ? "2px solid ".concat(color) : null,
47
48
  height: '12px',
48
49
  width: '12px',
50
+ boxSizing: 'border-box',
49
51
  borderRadius: '30px',
50
52
  opacity: isOpaque ? 1 : 0.38,
51
53
  transition: 'opacity 0.3s'
@@ -1,2 +1,3 @@
1
- import { ApiError } from '@reltio/mdm-sdk';
2
- export declare const showWorkflowError: (error?: ApiError) => void;
1
+ import { ApiError, WorkflowApiError } from '@reltio/mdm-sdk';
2
+ export declare const showApiError: (error?: ApiError) => void;
3
+ export declare const showWorkflowError: (apiError?: WorkflowApiError) => void;
@@ -3,19 +3,25 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.showWorkflowError = void 0;
6
+ exports.showWorkflowError = exports.showApiError = void 0;
7
7
  var ui_i18n_1 = __importDefault(require("ui-i18n"));
8
8
  var mdm_sdk_1 = require("@reltio/mdm-sdk");
9
9
  var ErrorPopup_1 = __importDefault(require("../../ErrorPopup/ErrorPopup"));
10
- var showWorkflowError = function (error) {
10
+ var showApiError = function (error) {
11
11
  if (error === void 0) { error = {}; }
12
- var errorMessage = error.errorMessage, errorCode = error.errorCode;
13
- if (errorCode !== mdm_sdk_1.ApiErrorCode.WORKFLOW_IS_NOT_REGISTERED_ERROR) {
14
- console.error(error); // eslint-disable-line
15
- ErrorPopup_1.default.addError({
16
- title: ui_i18n_1.default.text('Error'),
17
- message: errorMessage || ui_i18n_1.default.text('Something went wrong...')
18
- });
12
+ console.error(error); // eslint-disable-line
13
+ ErrorPopup_1.default.addError({
14
+ title: ui_i18n_1.default.text('Error'),
15
+ message: error.errorMessage || ui_i18n_1.default.text('Something went wrong...')
16
+ });
17
+ };
18
+ exports.showApiError = showApiError;
19
+ var showWorkflowError = function (apiError) {
20
+ if (apiError === void 0) { apiError = {}; }
21
+ var error = apiError.error;
22
+ if ((error === null || error === void 0 ? void 0 : error.errorCode) === mdm_sdk_1.ApiErrorCode.WORKFLOW_IS_NOT_REGISTERED_ERROR) {
23
+ return;
19
24
  }
25
+ (0, exports.showApiError)(error);
20
26
  };
21
27
  exports.showWorkflowError = showWorkflowError;
@@ -48,10 +48,10 @@ var useChangeRequest = function (dcrUri) {
48
48
  relationsObjectsWithRequestedEntities
49
49
  ]);
50
50
  })
51
- .catch(errors_1.showWorkflowError);
51
+ .catch(errors_1.showApiError);
52
52
  setDcr(dcr);
53
53
  })
54
- .catch(errors_1.showWorkflowError);
54
+ .catch(errors_1.showApiError);
55
55
  }, [dcrUri, requestEntities]);
56
56
  return { dcr: dcr, groupedObjects: groupedObjects };
57
57
  };
@@ -0,0 +1,20 @@
1
+ import React from 'react';
2
+ export declare enum ScrollType {
3
+ Error = "Error",
4
+ NewAttribute = "NewAttribute"
5
+ }
6
+ declare type ScrollToElementContextProps = {
7
+ element: unknown;
8
+ type: ScrollType;
9
+ highlightError?: (element: unknown) => void;
10
+ highlightAttribute?: (element: unknown) => void;
11
+ scrollIntoRef: (ref: React.MutableRefObject<HTMLDivElement>) => void;
12
+ };
13
+ export declare const isHighlightedErrorType: (type: ScrollType) => boolean;
14
+ export declare const isHighlightedAttributeType: (type: ScrollType) => boolean;
15
+ export declare const ScrollToElementContext: React.Context<ScrollToElementContextProps>;
16
+ declare type Props = {
17
+ children: React.ReactNode;
18
+ };
19
+ export declare const ScrollToElementProvider: ({ children }: Props) => JSX.Element;
20
+ export {};
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.ScrollToElementProvider = exports.ScrollToElementContext = exports.isHighlightedAttributeType = exports.isHighlightedErrorType = exports.ScrollType = void 0;
27
+ var react_1 = __importStar(require("react"));
28
+ var core_1 = require("../../core");
29
+ var ScrollType;
30
+ (function (ScrollType) {
31
+ ScrollType["Error"] = "Error";
32
+ ScrollType["NewAttribute"] = "NewAttribute";
33
+ })(ScrollType = exports.ScrollType || (exports.ScrollType = {}));
34
+ var isHighlightedErrorType = function (type) { return type === ScrollType.Error; };
35
+ exports.isHighlightedErrorType = isHighlightedErrorType;
36
+ var isHighlightedAttributeType = function (type) { return type === ScrollType.NewAttribute; };
37
+ exports.isHighlightedAttributeType = isHighlightedAttributeType;
38
+ exports.ScrollToElementContext = react_1.default.createContext({
39
+ element: null,
40
+ type: null,
41
+ highlightError: core_1.noop,
42
+ highlightAttribute: core_1.noop,
43
+ scrollIntoRef: core_1.noop
44
+ });
45
+ var ScrollToElementProvider = function (_a) {
46
+ var children = _a.children;
47
+ var _b = (0, react_1.useState)(null), element = _b[0], setElement = _b[1];
48
+ var highlightTimer = (0, react_1.useRef)(null);
49
+ var scrollIntoRef = (0, react_1.useCallback)(function (ref) {
50
+ ref.current.scrollIntoView({ behavior: 'smooth', block: 'center' });
51
+ if (highlightTimer) {
52
+ clearTimeout(highlightTimer.current);
53
+ }
54
+ highlightTimer.current = setTimeout(function () {
55
+ setElement(null);
56
+ }, 2000);
57
+ }, []);
58
+ var handleHighlightError = (0, react_1.useCallback)(function (highlightedError) {
59
+ setElement({ value: highlightedError, type: ScrollType.Error });
60
+ }, []);
61
+ var handleHighlightAttribute = (0, react_1.useCallback)(function (highlightedAttribute) {
62
+ setTimeout(function () { return setElement({ value: highlightedAttribute, type: ScrollType.NewAttribute }); }, 300);
63
+ }, []);
64
+ var contextValue = (0, react_1.useMemo)(function () { return ({
65
+ element: element === null || element === void 0 ? void 0 : element.value,
66
+ highlightError: handleHighlightError,
67
+ highlightAttribute: handleHighlightAttribute,
68
+ scrollIntoRef: scrollIntoRef,
69
+ type: element === null || element === void 0 ? void 0 : element.type
70
+ }); }, [element, scrollIntoRef]);
71
+ return react_1.default.createElement(exports.ScrollToElementContext.Provider, { value: contextValue }, children);
72
+ };
73
+ exports.ScrollToElementProvider = ScrollToElementProvider;
@@ -23,7 +23,7 @@ export { SnackbarContext } from './SnackbarContext';
23
23
  export { HighlightedValuesContext } from './HighlightedValuesContext';
24
24
  export { InterceptHandlersContext } from './InterceptHandlersContext';
25
25
  export { SearchValueContext } from './SearchValueContext';
26
- export { ScrollToErrorContext, ScrollToErrorProvider } from './ScrollToErrorContext';
26
+ export { ScrollToElementContext, ScrollToElementProvider, ScrollType, isHighlightedErrorType, isHighlightedAttributeType } from './ScrollToElementContext';
27
27
  export { UrlGeneratorsContext } from './UrlGeneratorsContext';
28
28
  export { LabelsContext } from './LabelsContext';
29
29
  export { FeaturesContext } from './FeaturesContext';
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useActionsHook = exports.ActionsHookProvider = exports.PageRequestsAbortingContext = exports.DependentLookupAutopopulationContext = exports.FeaturesContext = exports.LabelsContext = exports.UrlGeneratorsContext = exports.ScrollToErrorProvider = exports.ScrollToErrorContext = exports.SearchValueContext = exports.InterceptHandlersContext = exports.HighlightedValuesContext = exports.SnackbarContext = exports.SearchFiltersContext = exports.useReloadFacet = exports.ReloadFacetProvider = exports.useReloadAllFacets = exports.SandboxAPIContext = exports.EntityContext = exports.RelatedObjectUrisContext = exports.WorkflowTasksContext = exports.EntityLoadingIndicationContext = exports.EntityMarkerContext = exports.useAttributeExpanded = exports.ExpandedAttributesProvider = exports.useHighlightedCrosswalks = exports.useCrosswalkHighlight = exports.useCrosswalkFocus = exports.useCrosswalkColor = exports.CrosswalksDisplayProvider = exports.EntitiesMapContext = exports.IdContext = exports.ProfilePerspectiveViewContext = exports.PivotingAttributeContext = exports.UsersContext = exports.CollaborationContextProvider = exports.CollaborationContext = exports.BlockImageGalleryDialogContext = exports.ViewIdContext = exports.PopupBoundariesContext = exports.HistoryDiffContext = exports.AsyncMountContext = void 0;
3
+ exports.useActionsHook = exports.ActionsHookProvider = exports.PageRequestsAbortingContext = exports.DependentLookupAutopopulationContext = exports.FeaturesContext = exports.LabelsContext = exports.UrlGeneratorsContext = exports.isHighlightedAttributeType = exports.isHighlightedErrorType = exports.ScrollType = exports.ScrollToElementProvider = exports.ScrollToElementContext = exports.SearchValueContext = exports.InterceptHandlersContext = exports.HighlightedValuesContext = exports.SnackbarContext = exports.SearchFiltersContext = exports.useReloadFacet = exports.ReloadFacetProvider = exports.useReloadAllFacets = exports.SandboxAPIContext = exports.EntityContext = exports.RelatedObjectUrisContext = exports.WorkflowTasksContext = exports.EntityLoadingIndicationContext = exports.EntityMarkerContext = exports.useAttributeExpanded = exports.ExpandedAttributesProvider = exports.useHighlightedCrosswalks = exports.useCrosswalkHighlight = exports.useCrosswalkFocus = exports.useCrosswalkColor = exports.CrosswalksDisplayProvider = exports.EntitiesMapContext = exports.IdContext = exports.ProfilePerspectiveViewContext = exports.PivotingAttributeContext = exports.UsersContext = exports.CollaborationContextProvider = exports.CollaborationContext = exports.BlockImageGalleryDialogContext = exports.ViewIdContext = exports.PopupBoundariesContext = exports.HistoryDiffContext = exports.AsyncMountContext = void 0;
4
4
  var AsyncMountContext_1 = require("./AsyncMountContext");
5
5
  Object.defineProperty(exports, "AsyncMountContext", { enumerable: true, get: function () { return AsyncMountContext_1.AsyncMountContext; } });
6
6
  var HistoryAppearanceContext_1 = require("./HistoryAppearanceContext");
@@ -59,9 +59,12 @@ var InterceptHandlersContext_1 = require("./InterceptHandlersContext");
59
59
  Object.defineProperty(exports, "InterceptHandlersContext", { enumerable: true, get: function () { return InterceptHandlersContext_1.InterceptHandlersContext; } });
60
60
  var SearchValueContext_1 = require("./SearchValueContext");
61
61
  Object.defineProperty(exports, "SearchValueContext", { enumerable: true, get: function () { return SearchValueContext_1.SearchValueContext; } });
62
- var ScrollToErrorContext_1 = require("./ScrollToErrorContext");
63
- Object.defineProperty(exports, "ScrollToErrorContext", { enumerable: true, get: function () { return ScrollToErrorContext_1.ScrollToErrorContext; } });
64
- Object.defineProperty(exports, "ScrollToErrorProvider", { enumerable: true, get: function () { return ScrollToErrorContext_1.ScrollToErrorProvider; } });
62
+ var ScrollToElementContext_1 = require("./ScrollToElementContext");
63
+ Object.defineProperty(exports, "ScrollToElementContext", { enumerable: true, get: function () { return ScrollToElementContext_1.ScrollToElementContext; } });
64
+ Object.defineProperty(exports, "ScrollToElementProvider", { enumerable: true, get: function () { return ScrollToElementContext_1.ScrollToElementProvider; } });
65
+ Object.defineProperty(exports, "ScrollType", { enumerable: true, get: function () { return ScrollToElementContext_1.ScrollType; } });
66
+ Object.defineProperty(exports, "isHighlightedErrorType", { enumerable: true, get: function () { return ScrollToElementContext_1.isHighlightedErrorType; } });
67
+ Object.defineProperty(exports, "isHighlightedAttributeType", { enumerable: true, get: function () { return ScrollToElementContext_1.isHighlightedAttributeType; } });
65
68
  var UrlGeneratorsContext_1 = require("./UrlGeneratorsContext");
66
69
  Object.defineProperty(exports, "UrlGeneratorsContext", { enumerable: true, get: function () { return UrlGeneratorsContext_1.UrlGeneratorsContext; } });
67
70
  var LabelsContext_1 = require("./LabelsContext");
@@ -1,7 +1,7 @@
1
1
  import { ContextType } from 'react';
2
- import { ScrollToErrorContext } from '../../contexts';
2
+ import { ScrollToElementContext } from '../../contexts';
3
3
  declare type Props = {
4
- highlightedError: ContextType<typeof ScrollToErrorContext> | null;
4
+ highlightedError: ContextType<typeof ScrollToElementContext> | null;
5
5
  isSimple?: boolean;
6
6
  };
7
7
  export declare const useScrollToAttributeError: ({ highlightedError: context, isSimple }: Props) => {
@@ -14,8 +14,8 @@ var useScrollToAttributeError = function (_a) {
14
14
  var context = _a.highlightedError, _c = _a.isSimple, isSimple = _c === void 0 ? false : _c;
15
15
  var styles = (0, styles_1.useStyles)();
16
16
  var ref = (0, react_1.useRef)(null);
17
- var _d = context || {}, error = _d.error, scrollIntoRef = _d.scrollIntoRef;
18
- var severity = (0, react_1.useMemo)(function () { return (0, ramda_1.propOr)(mdm_sdk_1.ErrorSeverity.ERROR, 'severity')(error); }, [error]);
17
+ var _d = context || {}, element = _d.element, scrollIntoRef = _d.scrollIntoRef;
18
+ var severity = (0, react_1.useMemo)(function () { return (0, ramda_1.propOr)(mdm_sdk_1.ErrorSeverity.ERROR, 'severity')(element); }, [element]);
19
19
  var errorClassName = (0, classnames_1.default)((_b = {},
20
20
  _b[styles.highlightError] = severity === mdm_sdk_1.ErrorSeverity.ERROR,
21
21
  _b[styles.highlightWarning] = severity === mdm_sdk_1.ErrorSeverity.WARNING,
@@ -0,0 +1,78 @@
1
+ export declare const createTestStore: (initialState: any) => import("redux-dynamic-modules").IModuleStore<{
2
+ dataTenants: any;
3
+ tenants: any;
4
+ metadata: any;
5
+ profile: import("redux").CombinedState<{
6
+ dependentLookups: import("@reltio/mdm-module/src/profile/dependentLookups/constants").DependentLookupsState;
7
+ entity: import("@reltio/mdm-sdk").Entity;
8
+ errors: import("@reltio/mdm-sdk").AttributeError[];
9
+ history: import("@reltio/mdm-module").History;
10
+ lastLoadedTime: any;
11
+ lookups: any;
12
+ mode: import("@reltio/mdm-sdk").Mode;
13
+ modifiedEntities: import("@reltio/mdm-module/src/profile/modifiedEntities/constants").ModifiedEntitiesState;
14
+ relations: any;
15
+ trees: import("@reltio/mdm-sdk").TreesState;
16
+ operation: import("@reltio/mdm-sdk").Operation;
17
+ views: import("@reltio/mdm-module/src/profile/views/constants").ProfileViewsState;
18
+ sidePanelViews: string[] | import("@reltio/mdm-sdk").SidePanelViewConfig[];
19
+ }>;
20
+ tenant: any;
21
+ environment: any;
22
+ user: any;
23
+ ui: any;
24
+ search: {
25
+ searchResults: any;
26
+ keyword: any;
27
+ searchOptions: {
28
+ searchByOv: boolean;
29
+ ovOnly: boolean;
30
+ };
31
+ activityFilter: string;
32
+ globalFilter: {
33
+ query: any;
34
+ savedSearchesUris: any[];
35
+ isMuted: boolean;
36
+ };
37
+ searchProviderData: any;
38
+ searchNavigationData: any;
39
+ } | {
40
+ keyword: any;
41
+ searchOptions: any;
42
+ activityFilter: string;
43
+ globalFilter: {
44
+ query: any;
45
+ savedSearchesUris: any[];
46
+ isMuted: boolean;
47
+ };
48
+ searchNavigationData: any;
49
+ searchProviderData: any;
50
+ searchResults: any[];
51
+ } | {
52
+ activityFilter: any;
53
+ searchResults: any[];
54
+ keyword: any;
55
+ searchOptions: {
56
+ searchByOv: boolean;
57
+ ovOnly: boolean;
58
+ };
59
+ globalFilter: {
60
+ query: any;
61
+ savedSearchesUris: any[];
62
+ isMuted: boolean;
63
+ };
64
+ searchProviderData: any;
65
+ searchNavigationData: any;
66
+ } | {
67
+ globalFilter: any;
68
+ searchResults: any[];
69
+ keyword: any;
70
+ searchOptions: {
71
+ searchByOv: boolean;
72
+ ovOnly: boolean;
73
+ };
74
+ activityFilter: string;
75
+ searchProviderData: any;
76
+ searchNavigationData: any;
77
+ };
78
+ }>;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.createTestStore = void 0;
7
+ /// we do it temporary because of rootDir
8
+ var redux_dynamic_modules_saga_1 = require("redux-dynamic-modules-saga");
9
+ var redux_dynamic_modules_thunk_1 = require("redux-dynamic-modules-thunk");
10
+ var redux_dynamic_modules_1 = require("redux-dynamic-modules");
11
+ var mdm_module_1 = __importDefault(require("@reltio/mdm-module"));
12
+ var createTestStore = function (initialState) {
13
+ return (0, redux_dynamic_modules_1.createStore)({
14
+ initialState: initialState,
15
+ enhancers: [],
16
+ extensions: [(0, redux_dynamic_modules_thunk_1.getThunkExtension)(), (0, redux_dynamic_modules_saga_1.getSagaExtension)()]
17
+ }, mdm_module_1.default.getModule());
18
+ };
19
+ exports.createTestStore = createTestStore;
@@ -1 +1 @@
1
- export declare const useStyles: (props?: any) => import("@material-ui/core/styles/withStyles").ClassNameMap<"inactive" | "label" | "image" | "selected" | "secondaryLabel" | "item" | "info" | "avatar" | "clickable" | "businessCard" | "@keyframes animate" | "highlighted" | "justImported" | "secondRow">;
1
+ export declare const useStyles: (props?: any) => import("@material-ui/core/styles/withStyles").ClassNameMap<"inactive" | "label" | "image" | "selected" | "secondaryLabel" | "item" | "info" | "avatar" | "clickable" | "highlighted" | "businessCard" | "@keyframes animate" | "justImported" | "secondRow">;
@@ -24,7 +24,7 @@ import ErrorWrapper from '../ErrorWrapper/ErrorWrapper';
24
24
  import EntitySelector from '../attributes/editMode/EntitySelector/EntitySelector';
25
25
  import AttributesList from '../attributes/editMode/AttributesList';
26
26
  import { withContext } from '../../HOCs';
27
- import { ScrollToErrorContext } from '../../contexts';
27
+ import { isHighlightedErrorType, ScrollToElementContext } from '../../contexts';
28
28
  import { useScrollToAttributeError } from '../../hooks';
29
29
  import { useStyles } from './styles';
30
30
  var areRelatedEntitiesChanged = function (initial, actual) {
@@ -174,10 +174,10 @@ RelationEditor.propTypes = {
174
174
  parentEntityUri: PropTypes.string,
175
175
  highlightedError: PropTypes.object
176
176
  };
177
- export default withContext(ScrollToErrorContext, function (contextValue, _a) {
177
+ export default withContext(ScrollToElementContext, function (contextValue, _a) {
178
178
  var connection = _a.connection;
179
- var _b = (contextValue || {}).error, error = _b === void 0 ? {} : _b;
180
- var _c = connection.relation, relationUri = _c.relationUri, relationType = _c.relationType;
181
- var isHighlighted = isAttributeTypeError(error, relationUri, relationType);
179
+ var _b = contextValue || {}, _c = _b.element, element = _c === void 0 ? {} : _c, type = _b.type;
180
+ var _d = connection.relation, relationUri = _d.relationUri, relationType = _d.relationType;
181
+ var isHighlighted = isHighlightedErrorType(type) && isAttributeTypeError(element, relationUri, relationType);
182
182
  return { highlightedError: isHighlighted ? contextValue : null };
183
183
  }, RelationEditor);
@@ -1,2 +1,7 @@
1
+ import { AttributeType } from '@reltio/mdm-sdk';
2
+ import React from 'react';
3
+ declare const Attribute: React.ForwardRefExoticComponent<Pick<{
4
+ className?: string;
5
+ attributeType: AttributeType;
6
+ } & Record<string, unknown>, string> & React.RefAttributes<HTMLDivElement>>;
1
7
  export default Attribute;
2
- declare function Attribute(props: any): JSX.Element;