@reltio/components 1.4.1371 → 1.4.1373

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 (69) hide show
  1. package/cjs/components/LinearLoadIndicator/LinearLoadIndicator.js +1 -1
  2. package/cjs/components/RelationEditor/RelationEditor.d.ts +5 -32
  3. package/cjs/components/RelationEditor/RelationEditor.js +33 -22
  4. package/cjs/components/RelationEditor/index.d.ts +3 -152
  5. package/cjs/components/RelationEditor/styles.js +2 -1
  6. package/cjs/components/attributes/editMode/AttributesPager/AttributeRenderer.d.ts +10 -6
  7. package/cjs/components/attributes/editMode/AttributesPager/AttributeRenderer.js +19 -5
  8. package/cjs/components/attributes/editMode/AttributesPager/styles.d.ts +1 -1
  9. package/cjs/components/attributes/editMode/AttributesPager/styles.js +2 -1
  10. package/cjs/components/attributes/editMode/AttributesPager/utils.d.ts +2 -1
  11. package/cjs/components/attributes/editMode/AttributesView/styles.js +1 -0
  12. package/cjs/components/attributes/editMode/ComplexAttribute/ComplexAttribute.d.ts +5 -160
  13. package/cjs/components/attributes/editMode/ComplexAttribute/ComplexAttribute.js +29 -13
  14. package/cjs/components/attributes/editMode/ComplexAttribute/styles.d.ts +1 -1
  15. package/cjs/components/attributes/editMode/ComplexAttribute/styles.js +3 -0
  16. package/cjs/components/attributes/editMode/ReferenceAttribute/ReferenceAttribute.d.ts +1 -130
  17. package/cjs/components/attributes/editMode/ReferenceAttribute/ReferenceAttribute.js +24 -19
  18. package/cjs/components/attributes/editMode/ReferenceAttribute/index.d.ts +1 -129
  19. package/cjs/components/attributes/editMode/SimpleAttributeEditor/SimpleAttributeEditor.d.ts +1 -1
  20. package/cjs/components/attributes/editMode/SimpleAttributeEditor/SimpleAttributeEditor.js +23 -12
  21. package/cjs/components/attributes/editMode/SimpleAttributeEditor/styles.d.ts +1 -1
  22. package/cjs/components/attributes/editMode/SimpleAttributeEditor/styles.js +2 -1
  23. package/cjs/components/editors/DataTypeValueEditor/DataTypeValueEditor.d.ts +18 -17
  24. package/cjs/components/editors/DataTypeValueEditor/DataTypeValueEditor.js +3 -1
  25. package/cjs/contexts/ScrollToErrorContext/index.d.ts +13 -0
  26. package/cjs/contexts/ScrollToErrorContext/index.js +48 -0
  27. package/cjs/contexts/index.d.ts +1 -0
  28. package/cjs/contexts/index.js +4 -1
  29. package/cjs/hooks/index.d.ts +1 -0
  30. package/cjs/hooks/index.js +3 -1
  31. package/cjs/hooks/useScrollToAttributeError/styles.d.ts +1 -0
  32. package/cjs/hooks/useScrollToAttributeError/styles.js +49 -0
  33. package/cjs/hooks/useScrollToAttributeError/useScrollToAttributeError.d.ts +14 -0
  34. package/cjs/hooks/useScrollToAttributeError/useScrollToAttributeError.js +31 -0
  35. package/esm/components/LinearLoadIndicator/LinearLoadIndicator.js +1 -1
  36. package/esm/components/RelationEditor/RelationEditor.d.ts +5 -32
  37. package/esm/components/RelationEditor/RelationEditor.js +33 -22
  38. package/esm/components/RelationEditor/index.d.ts +3 -152
  39. package/esm/components/RelationEditor/styles.js +2 -1
  40. package/esm/components/attributes/editMode/AttributesPager/AttributeRenderer.d.ts +10 -6
  41. package/esm/components/attributes/editMode/AttributesPager/AttributeRenderer.js +20 -6
  42. package/esm/components/attributes/editMode/AttributesPager/styles.d.ts +1 -1
  43. package/esm/components/attributes/editMode/AttributesPager/styles.js +2 -1
  44. package/esm/components/attributes/editMode/AttributesPager/utils.d.ts +2 -1
  45. package/esm/components/attributes/editMode/AttributesView/styles.js +1 -0
  46. package/esm/components/attributes/editMode/ComplexAttribute/ComplexAttribute.d.ts +5 -160
  47. package/esm/components/attributes/editMode/ComplexAttribute/ComplexAttribute.js +29 -13
  48. package/esm/components/attributes/editMode/ComplexAttribute/styles.d.ts +1 -1
  49. package/esm/components/attributes/editMode/ComplexAttribute/styles.js +3 -0
  50. package/esm/components/attributes/editMode/ReferenceAttribute/ReferenceAttribute.d.ts +1 -130
  51. package/esm/components/attributes/editMode/ReferenceAttribute/ReferenceAttribute.js +27 -22
  52. package/esm/components/attributes/editMode/ReferenceAttribute/index.d.ts +1 -129
  53. package/esm/components/attributes/editMode/SimpleAttributeEditor/SimpleAttributeEditor.d.ts +1 -1
  54. package/esm/components/attributes/editMode/SimpleAttributeEditor/SimpleAttributeEditor.js +24 -13
  55. package/esm/components/attributes/editMode/SimpleAttributeEditor/styles.d.ts +1 -1
  56. package/esm/components/attributes/editMode/SimpleAttributeEditor/styles.js +2 -1
  57. package/esm/components/editors/DataTypeValueEditor/DataTypeValueEditor.d.ts +18 -17
  58. package/esm/components/editors/DataTypeValueEditor/DataTypeValueEditor.js +3 -1
  59. package/esm/contexts/ScrollToErrorContext/index.d.ts +13 -0
  60. package/esm/contexts/ScrollToErrorContext/index.js +21 -0
  61. package/esm/contexts/index.d.ts +1 -0
  62. package/esm/contexts/index.js +1 -0
  63. package/esm/hooks/index.d.ts +1 -0
  64. package/esm/hooks/index.js +1 -0
  65. package/esm/hooks/useScrollToAttributeError/styles.d.ts +1 -0
  66. package/esm/hooks/useScrollToAttributeError/styles.js +46 -0
  67. package/esm/hooks/useScrollToAttributeError/useScrollToAttributeError.d.ts +14 -0
  68. package/esm/hooks/useScrollToAttributeError/useScrollToAttributeError.js +24 -0
  69. package/package.json +3 -3
@@ -38,21 +38,25 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
38
38
  };
39
39
  Object.defineProperty(exports, "__esModule", { value: true });
40
40
  var react_1 = __importStar(require("react"));
41
+ var ramda_1 = require("ramda");
41
42
  var prop_types_1 = __importDefault(require("prop-types"));
42
43
  var classnames_1 = __importDefault(require("classnames"));
44
+ var ui_i18n_1 = __importDefault(require("ui-i18n"));
45
+ var mdm_sdk_1 = require("@reltio/mdm-sdk");
43
46
  var Button_1 = __importDefault(require("@material-ui/core/Button"));
44
- var SmallIconButton_1 = __importDefault(require("../../../SmallIconButton/SmallIconButton"));
45
47
  var Delete_1 = __importDefault(require("@material-ui/icons/Delete"));
46
48
  var Typography_1 = __importDefault(require("@material-ui/core/Typography"));
47
- var ui_i18n_1 = __importDefault(require("ui-i18n"));
48
- var mdm_sdk_1 = require("@reltio/mdm-sdk");
49
- var styles_1 = require("./styles");
49
+ var SmallIconButton_1 = __importDefault(require("../../../SmallIconButton/SmallIconButton"));
50
+ var ArrowExpandButton_1 = __importDefault(require("../../../ArrowExpandButton/ArrowExpandButton"));
50
51
  var ErrorWrapper_1 = __importDefault(require("../../../ErrorWrapper/ErrorWrapper"));
51
52
  var AttributesList_1 = __importDefault(require("../AttributesList/AttributesList"));
52
- var ArrowExpandButton_1 = __importDefault(require("../../../ArrowExpandButton/ArrowExpandButton"));
53
+ var HOCs_1 = require("../../../../HOCs");
54
+ var contexts_1 = require("../../../../contexts");
55
+ var hooks_1 = require("../../../../hooks");
56
+ var styles_1 = require("./styles");
53
57
  var ComplexAttribute = function (_a) {
54
58
  var _b;
55
- var label = _a.label, attributeTypesList = _a.attributeTypesList, attributeType = _a.attributeType, attributeValue = _a.attributeValue, children = _a.children, errors = _a.errors, ownError = _a.ownError, mode = _a.mode, metadata = _a.metadata, crosswalks = _a.crosswalks, lazy = _a.lazy, showEmptyEditors = _a.showEmptyEditors, onAddOneMore = _a.onAddOneMore, onAddAttributes = _a.onAddAttributes, onDeleteAttribute = _a.onDeleteAttribute, onChangeAttribute = _a.onChangeAttribute, additionalControlsRenderer = _a.additionalControlsRenderer, hideDeleteButton = _a.hideDeleteButton, state = _a.state, showNonOv = _a.showNonOv, _c = _a.expanded, expandedProp = _c === void 0 ? false : _c;
59
+ var label = _a.label, attributeTypesList = _a.attributeTypesList, attributeType = _a.attributeType, attributeValue = _a.attributeValue, children = _a.children, errors = _a.errors, ownError = _a.ownError, mode = _a.mode, metadata = _a.metadata, crosswalks = _a.crosswalks, lazy = _a.lazy, showEmptyEditors = _a.showEmptyEditors, onAddOneMore = _a.onAddOneMore, onAddAttributes = _a.onAddAttributes, onDeleteAttribute = _a.onDeleteAttribute, onChangeAttribute = _a.onChangeAttribute, additionalControlsRenderer = _a.additionalControlsRenderer, hideDeleteButton = _a.hideDeleteButton, state = _a.state, showNonOv = _a.showNonOv, isHighlightedPath = _a.isHighlightedPath, highlightedError = _a.highlightedError, _c = _a.expanded, expandedProp = _c === void 0 ? false : _c;
56
60
  var styles = (0, styles_1.useStyles)();
57
61
  var deleted = state === 'deleted';
58
62
  var edited = state === 'edited';
@@ -60,6 +64,12 @@ var ComplexAttribute = function (_a) {
60
64
  var isNew = (0, mdm_sdk_1.isTempUri)(uri);
61
65
  var defaultExpand = isNew || expandedProp;
62
66
  var _d = (0, react_1.useState)(defaultExpand), expanded = _d[0], setExpanded = _d[1];
67
+ var _e = (0, hooks_1.useScrollToAttributeError)({ highlightedError: highlightedError }), ref = _e.ref, errorClassName = _e.errorClassName;
68
+ (0, react_1.useEffect)(function () {
69
+ if (isHighlightedPath) {
70
+ setExpanded(true);
71
+ }
72
+ }, [isHighlightedPath]);
63
73
  (0, react_1.useEffect)(function () {
64
74
  setExpanded(defaultExpand);
65
75
  }, [defaultExpand]);
@@ -74,10 +84,7 @@ var ComplexAttribute = function (_a) {
74
84
  }, [attributeType, attributeValue, mode, metadata, crosswalks]);
75
85
  var showDeleteButton = !deleted && !hideDeleteButton && !!onDeleteAttribute && canDelete;
76
86
  var onDeleteThis = function () { return onDeleteAttribute({ uri: uri, attributeType: attributeType, attributeValue: attributeValue }); };
77
- var hasDescendantsWithErrors = (0, react_1.useMemo)(function () { return (0, mdm_sdk_1.hasAttributeDescendantsWithErrors)(attributeValue, errors); }, [
78
- errors,
79
- attributeValue
80
- ]);
87
+ var hasDescendantsWithErrors = (0, react_1.useMemo)(function () { return (0, mdm_sdk_1.hasAttributeDescendantsWithErrors)(attributeValue, errors); }, [errors, attributeValue]);
81
88
  (0, react_1.useEffect)(function () {
82
89
  if (hasDescendantsWithErrors) {
83
90
  setExpanded(true);
@@ -94,7 +101,7 @@ var ComplexAttribute = function (_a) {
94
101
  analyticsAttributes: hasAnalyticValue ? attributeValue.value : null
95
102
  }); }, [attributeValue, hasAnalyticValue]);
96
103
  var errorMessage = (0, mdm_sdk_1.getErrorMessage)(ownError) || (hasDescendantsWithErrors && ui_i18n_1.default.text('Has an incorrect value')) || '';
97
- return lazy ? (react_1.default.createElement(Button_1.default, { variant: "text", color: "primary", onClick: onAddOneMore }, "Create attribute")) : (react_1.default.createElement(react_1.default.Fragment, null,
104
+ return lazy ? (react_1.default.createElement(Button_1.default, { variant: "text", color: "primary", onClick: onAddOneMore }, "Create attribute")) : (react_1.default.createElement("div", { ref: ref, className: (0, classnames_1.default)(styles.complexWrapper, errorClassName) },
98
105
  react_1.default.createElement("div", { className: styles.editor },
99
106
  react_1.default.createElement("div", { className: styles.titleContainer },
100
107
  react_1.default.createElement(ArrowExpandButton_1.default, { onClick: function () { return setExpanded(function (value) { return !value; }); }, expanded: expanded, className: styles.expandButton, disabled: deleted }),
@@ -109,5 +116,14 @@ var ComplexAttribute = function (_a) {
109
116
  showDeleteButton && react_1.default.createElement(SmallIconButton_1.default, { icon: Delete_1.default, onClick: onDeleteThis, size: "L" }))),
110
117
  expanded && (react_1.default.createElement(AttributesList_1.default, { parentAttributeType: attributeType, attrTypes: attributeTypesList, entity: attributeListEntity, showEmptyEditors: showEmptyEditors || isNew, drawLines: true, parentUri: uri, mode: mode, crosswalks: crosswalks, onAddAttributes: onAddAttributes, onChangeAttribute: onChangeAttribute, onDeleteAttribute: onDeleteAttribute, additionalControlsRenderer: additionalControlsRenderer, showNonOv: showNonOv }, children))));
111
118
  };
112
- ComplexAttribute.propTypes = __assign({ label: prop_types_1.default.string, children: prop_types_1.default.node, attributeTypesList: prop_types_1.default.arrayOf(mdm_sdk_1.AttributeTypeType), attributeValue: prop_types_1.default.oneOfType([mdm_sdk_1.NestedAttributeValueType, mdm_sdk_1.ReferenceAttributeValueType]) }, mdm_sdk_1.ComplexAttributeType);
113
- exports.default = ComplexAttribute;
119
+ ComplexAttribute.propTypes = __assign({ label: prop_types_1.default.string, children: prop_types_1.default.node, attributeTypesList: prop_types_1.default.arrayOf(mdm_sdk_1.AttributeTypeType), attributeValue: prop_types_1.default.oneOfType([mdm_sdk_1.NestedAttributeValueType, mdm_sdk_1.ReferenceAttributeValueType]), highlightedError: prop_types_1.default.object, isHighlightedPath: prop_types_1.default.bool }, mdm_sdk_1.ComplexAttributeType);
120
+ exports.default = (0, HOCs_1.withContext)(contexts_1.ScrollToErrorContext, function (contextValue, _a) {
121
+ var attributeValue = _a.attributeValue;
122
+ var error = (contextValue || {}).error;
123
+ var isHighlighted = (error === null || error === void 0 ? void 0 : error.uri) === attributeValue.uri;
124
+ var isHighlightedPath = (0, ramda_1.pipe)((0, ramda_1.propOr)([], 'path'), (0, ramda_1.any)((0, ramda_1.pathEq)(['value', 'uri'], attributeValue.uri)))(error);
125
+ return {
126
+ highlightedError: isHighlighted ? contextValue : null,
127
+ isHighlightedPath: isHighlightedPath
128
+ };
129
+ }, ComplexAttribute);
@@ -1 +1 @@
1
- export const useStyles: (props?: any) => import("@material-ui/core/styles/withStyles").ClassNameMap<"actions" | "label" | "deleted" | "editor" | "expandButton" | "editedLabel" | "titleContainer" | "errorWrapperHelperText">;
1
+ export declare const useStyles: (props?: any) => import("@material-ui/core/styles/withStyles").ClassNameMap<"actions" | "label" | "deleted" | "editor" | "expandButton" | "editedLabel" | "complexWrapper" | "titleContainer" | "errorWrapperHelperText">;
@@ -3,6 +3,9 @@ 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 = (0, styles_1.makeStyles)(function (theme) { return ({
6
+ complexWrapper: {
7
+ position: 'relative'
8
+ },
6
9
  editor: {
7
10
  display: 'flex',
8
11
  flex: 1,
@@ -1,132 +1,3 @@
1
- declare const _default: React.MemoExoticComponent<{
2
- (props: any): JSX.Element;
3
- propTypes: {
4
- modifiedEntity: PropTypes.Requireable<PropTypes.InferProps<{
5
- uri: PropTypes.Requireable<string>;
6
- type: PropTypes.Requireable<string>;
7
- }>>;
8
- metadata: PropTypes.Requireable<PropTypes.InferProps<{
9
- uri: PropTypes.Requireable<string>;
10
- description: PropTypes.Requireable<string>;
11
- label: PropTypes.Requireable<string>;
12
- schemaVersion: PropTypes.Requireable<string>;
13
- entityTypes: PropTypes.Requireable<PropTypes.InferProps<{
14
- typeColor: PropTypes.Requireable<string>;
15
- typeIcon: PropTypes.Requireable<string>;
16
- typeImage: PropTypes.Requireable<string>;
17
- label: PropTypes.Requireable<string>;
18
- uri: PropTypes.Requireable<string>;
19
- attributes: PropTypes.Requireable<PropTypes.InferProps<{
20
- label: PropTypes.Requireable<string>;
21
- name: PropTypes.Requireable<string>;
22
- description: PropTypes.Requireable<string>;
23
- type: PropTypes.Requireable<string>;
24
- hidden: PropTypes.Requireable<boolean>;
25
- faceted: PropTypes.Requireable<boolean>;
26
- searchable: PropTypes.Requireable<boolean>;
27
- uri: PropTypes.Requireable<string>;
28
- access: PropTypes.Requireable<string[]>;
29
- cardinality: PropTypes.Requireable<PropTypes.InferProps<{
30
- minValue: PropTypes.Requireable<number>;
31
- maxValue: PropTypes.Requireable<number>;
32
- }>>;
33
- }>[]>;
34
- }>[]>;
35
- roles: PropTypes.Requireable<object[]>;
36
- groupTypes: PropTypes.Requireable<object[]>;
37
- relationTypes: PropTypes.Requireable<PropTypes.InferProps<{
38
- label: PropTypes.Requireable<string>;
39
- uri: PropTypes.Requireable<string>;
40
- typeColor: PropTypes.Requireable<string>;
41
- direction: PropTypes.Requireable<string>;
42
- startObject: PropTypes.Requireable<object>;
43
- endObject: PropTypes.Requireable<object>;
44
- }>[]>;
45
- graphTypes: PropTypes.Requireable<PropTypes.InferProps<{
46
- uri: PropTypes.Requireable<string>;
47
- label: PropTypes.Requireable<string>;
48
- extendsTypeUri: PropTypes.Requireable<string>;
49
- relationshipTypeURIs: PropTypes.Requireable<string[]>;
50
- }>[]>;
51
- interactionTypes: PropTypes.Requireable<PropTypes.InferProps<{
52
- uri: PropTypes.Requireable<string>;
53
- label: PropTypes.Requireable<string>;
54
- memberTypes: PropTypes.Requireable<any[]>;
55
- extendsTypeUri: PropTypes.Requireable<string>;
56
- attributes: PropTypes.Requireable<PropTypes.InferProps<{
57
- label: PropTypes.Requireable<string>;
58
- name: PropTypes.Requireable<string>;
59
- description: PropTypes.Requireable<string>;
60
- type: PropTypes.Requireable<string>;
61
- hidden: PropTypes.Requireable<boolean>;
62
- faceted: PropTypes.Requireable<boolean>;
63
- searchable: PropTypes.Requireable<boolean>;
64
- uri: PropTypes.Requireable<string>;
65
- access: PropTypes.Requireable<string[]>;
66
- cardinality: PropTypes.Requireable<PropTypes.InferProps<{
67
- minValue: PropTypes.Requireable<number>;
68
- maxValue: PropTypes.Requireable<number>;
69
- }>>;
70
- }>[]>;
71
- }>[]>;
72
- sources: PropTypes.Requireable<object[]>;
73
- }>>;
74
- globalSearchRequestOptions: PropTypes.Requireable<object>;
75
- onDeleteModifiedEntity: PropTypes.Requireable<(...args: any[]) => any>;
76
- onUpdateModifiedEntity: PropTypes.Requireable<(...args: any[]) => any>;
77
- onDeactivateError: PropTypes.Requireable<(...args: any[]) => any>;
78
- attributeType: PropTypes.Requireable<PropTypes.InferProps<{
79
- label: PropTypes.Requireable<string>;
80
- name: PropTypes.Requireable<string>;
81
- description: PropTypes.Requireable<string>;
82
- type: PropTypes.Requireable<string>;
83
- hidden: PropTypes.Requireable<boolean>;
84
- faceted: PropTypes.Requireable<boolean>;
85
- searchable: PropTypes.Requireable<boolean>;
86
- uri: PropTypes.Requireable<string>;
87
- access: PropTypes.Requireable<string[]>;
88
- cardinality: PropTypes.Requireable<PropTypes.InferProps<{
89
- minValue: PropTypes.Requireable<number>;
90
- maxValue: PropTypes.Requireable<number>;
91
- }>>;
92
- }>>;
93
- showEmptyEditors: PropTypes.Requireable<boolean>;
94
- lazy: PropTypes.Requireable<boolean>;
95
- mode: PropTypes.Requireable<any>;
96
- ownError: PropTypes.Requireable<PropTypes.InferProps<{
97
- type: PropTypes.Validator<NonNullable<import("@reltio/mdm-sdk").ErrorType>>;
98
- attributeTypeUri: PropTypes.Validator<string>;
99
- parentUri: PropTypes.Validator<string>;
100
- uri: PropTypes.Requireable<string>;
101
- message: PropTypes.Requireable<string>;
102
- }>>;
103
- errors: PropTypes.Requireable<PropTypes.InferProps<{
104
- type: PropTypes.Validator<NonNullable<import("@reltio/mdm-sdk").ErrorType>>;
105
- attributeTypeUri: PropTypes.Validator<string>;
106
- parentUri: PropTypes.Validator<string>;
107
- uri: PropTypes.Requireable<string>;
108
- message: PropTypes.Requireable<string>;
109
- }>[]>;
110
- crosswalks: PropTypes.Requireable<any[]>;
111
- onAddAttributes: PropTypes.Requireable<(...args: any[]) => any>;
112
- onAddOneMore: PropTypes.Requireable<(...args: any[]) => any>;
113
- onDeleteAttribute: PropTypes.Requireable<(...args: any[]) => any>;
114
- onChangeAttribute: PropTypes.Requireable<(...args: any[]) => any>;
115
- additionalControlsRenderer: PropTypes.Requireable<(...args: any[]) => any>;
116
- hideDeleteButton: PropTypes.Requireable<boolean>;
117
- showNonOv: PropTypes.Requireable<boolean>;
118
- state: PropTypes.Requireable<string>;
119
- expanded: PropTypes.Requireable<boolean>;
120
- attributeValue: PropTypes.Requireable<PropTypes.InferProps<{
121
- refEntity: PropTypes.Requireable<object>;
122
- refRelation: PropTypes.Requireable<object>;
123
- value: PropTypes.Requireable<object>;
124
- ov: PropTypes.Requireable<boolean>;
125
- type: PropTypes.Requireable<string>;
126
- uri: PropTypes.Requireable<string>;
127
- }>>;
128
- };
129
- }>;
1
+ declare const _default: React.ComponentType<any> | ((props: any) => JSX.Element);
130
2
  export default _default;
131
- import PropTypes from "prop-types";
132
3
  import React from "react";
@@ -56,13 +56,17 @@ var mdm_sdk_1 = require("@reltio/mdm-sdk");
56
56
  var ComplexAttribute_1 = __importDefault(require("../ComplexAttribute/ComplexAttribute"));
57
57
  var EntitySelector_1 = __importDefault(require("../EntitySelector/EntitySelector"));
58
58
  var index_1 = require("../../../index");
59
+ var HOCs_1 = require("../../../../HOCs");
60
+ var contexts_1 = require("../../../../contexts");
61
+ var hooks_1 = require("../../../../hooks");
59
62
  var styles_1 = require("./styles");
60
63
  var ReferenceAttribute = function (props) {
61
64
  var _a;
62
65
  var styles = (0, styles_1.useStyles)();
63
- var modifiedEntity = props.modifiedEntity, metadata = props.metadata, globalSearchRequestOptions = props.globalSearchRequestOptions, onDeleteModifiedEntity = props.onDeleteModifiedEntity, onUpdateModifiedEntity = props.onUpdateModifiedEntity, onDeactivateError = props.onDeactivateError, ownProps = __rest(props, ["modifiedEntity", "metadata", "globalSearchRequestOptions", "onDeleteModifiedEntity", "onUpdateModifiedEntity", "onDeactivateError"]);
66
+ var modifiedEntity = props.modifiedEntity, metadata = props.metadata, globalSearchRequestOptions = props.globalSearchRequestOptions, onDeleteModifiedEntity = props.onDeleteModifiedEntity, onUpdateModifiedEntity = props.onUpdateModifiedEntity, onDeactivateError = props.onDeactivateError, highlightedError = props.highlightedError, ownProps = __rest(props, ["modifiedEntity", "metadata", "globalSearchRequestOptions", "onDeleteModifiedEntity", "onUpdateModifiedEntity", "onDeactivateError", "highlightedError"]);
64
67
  var attributeValue = ownProps.attributeValue, attributeType = ownProps.attributeType, mode = ownProps.mode, crosswalks = ownProps.crosswalks, errors = ownProps.errors, onChangeAttribute = ownProps.onChangeAttribute;
65
68
  var initialAttributeValue = (0, react_1.useRef)(attributeValue);
69
+ var _b = (0, hooks_1.useScrollToAttributeError)({ highlightedError: highlightedError, isSimple: true }), ref = _b.ref, errorClassName = _b.errorClassName;
66
70
  var referencedEntity = (0, mdm_sdk_1.getReferencedEntityFromAttrValue)(attributeValue);
67
71
  var referencedRelation = (0, mdm_sdk_1.getReferencedRelationFromAttrValue)(attributeValue);
68
72
  var referencedEntityTypeUri = (0, mdm_sdk_1.getReferencedEntityTypeUriFromAttrType)(attributeType);
@@ -71,14 +75,8 @@ var ReferenceAttribute = function (props) {
71
75
  ? (0, mdm_sdk_1.evaluateDeepEntityLabel)(modifiedEntity, referencedEntityType.dataLabelPattern)
72
76
  : attributeValue.label;
73
77
  var entityTypesUris = (0, react_1.useMemo)(function () { return [referencedEntityTypeUri]; }, [referencedEntityTypeUri]);
74
- var allCrosswalks = (0, react_1.useMemo)(function () { return (0, mdm_sdk_1.addReferencedRelationCrosswalks)(crosswalks, referencedRelation); }, [
75
- crosswalks,
76
- referencedRelation
77
- ]);
78
- var referencedEntityMissedError = (0, react_1.useMemo)(function () { return (0, mdm_sdk_1.getReferencedEntityActiveError)(attributeValue, errors); }, [
79
- attributeValue,
80
- errors
81
- ]);
78
+ var allCrosswalks = (0, react_1.useMemo)(function () { return (0, mdm_sdk_1.addReferencedRelationCrosswalks)(crosswalks, referencedRelation); }, [crosswalks, referencedRelation]);
79
+ var referencedEntityMissedError = (0, react_1.useMemo)(function () { return (0, mdm_sdk_1.getReferencedEntityActiveError)(attributeValue, errors); }, [attributeValue, errors]);
82
80
  var selectedEntity = (0, react_1.useMemo)(function () {
83
81
  return referencedEntity && {
84
82
  entityUri: (0, mdm_sdk_1.getReferencedEntityUri)(referencedEntity),
@@ -141,16 +139,23 @@ var ReferenceAttribute = function (props) {
141
139
  isReltioCrosswalk: (0, mdm_sdk_1.isReltioCrosswalk)(crosswalks, attributeValue)
142
140
  });
143
141
  }, [attributeType, attributeValue, mode, crosswalks]);
144
- var canCreateReferencedEntity = (0, react_1.useMemo)(function () { return (0, mdm_sdk_1.checkMetadataForCreate)(mode, referencedEntityType); }, [
145
- mode,
146
- referencedEntityType
147
- ]);
142
+ var canCreateReferencedEntity = (0, react_1.useMemo)(function () { return (0, mdm_sdk_1.checkMetadataForCreate)(mode, referencedEntityType); }, [mode, referencedEntityType]);
148
143
  var errorMessage = (0, mdm_sdk_1.getErrorMessage)(referencedEntityMissedError);
149
144
  return (react_1.default.createElement(ComplexAttribute_1.default, __assign({}, ownProps, { label: (0, mdm_sdk_1.getLabel)(label), attributeTypesList: editableAttrTypes, crosswalks: allCrosswalks, metadata: metadata }),
150
- react_1.default.createElement(index_1.ErrorWrapper, { errorMessage: errorMessage },
151
- react_1.default.createElement(EntitySelector_1.default, { className: (0, classnames_1.default)(styles.item, (_a = {},
152
- _a[styles.dense] = errorMessage || (selectedEntity && (0, mdm_sdk_1.isTempUri)(selectedEntity.entityUri)),
153
- _a)), entity: selectedEntity || {}, entityTypesUris: entityTypesUris, max: 20, globalSearchRequestOptions: globalSearchRequestOptions, mode: mode, onChange: canChangeReferencedEntity ? onChangeEntity : undefined, onCreate: canCreateReferencedEntity ? onCreateEntity : undefined, metadata: metadata, attributeTypesSelectionStrategy: newEntityAttrTypesSelectionStrategy }))));
145
+ react_1.default.createElement("div", { ref: ref, className: errorClassName },
146
+ react_1.default.createElement(index_1.ErrorWrapper, { errorMessage: errorMessage },
147
+ react_1.default.createElement(EntitySelector_1.default, { className: (0, classnames_1.default)(styles.item, (_a = {},
148
+ _a[styles.dense] = errorMessage || (selectedEntity && (0, mdm_sdk_1.isTempUri)(selectedEntity.entityUri)),
149
+ _a)), entity: selectedEntity || {}, entityTypesUris: entityTypesUris, max: 20, globalSearchRequestOptions: globalSearchRequestOptions, mode: mode, onChange: canChangeReferencedEntity ? onChangeEntity : undefined, onCreate: canCreateReferencedEntity ? onCreateEntity : undefined, metadata: metadata, attributeTypesSelectionStrategy: newEntityAttrTypesSelectionStrategy })))));
154
150
  };
155
- ReferenceAttribute.propTypes = __assign(__assign({}, mdm_sdk_1.ReferenceAttributeType), { modifiedEntity: mdm_sdk_1.EntityType, metadata: mdm_sdk_1.MetadataType, globalSearchRequestOptions: prop_types_1.default.object, onDeleteModifiedEntity: prop_types_1.default.func, onUpdateModifiedEntity: prop_types_1.default.func, onDeactivateError: prop_types_1.default.func });
156
- exports.default = (0, react_1.memo)(ReferenceAttribute);
151
+ ReferenceAttribute.propTypes = __assign(__assign({}, mdm_sdk_1.ReferenceAttributeType), { modifiedEntity: mdm_sdk_1.EntityType, metadata: mdm_sdk_1.MetadataType, globalSearchRequestOptions: prop_types_1.default.object, onDeleteModifiedEntity: prop_types_1.default.func, onUpdateModifiedEntity: prop_types_1.default.func, onDeactivateError: prop_types_1.default.func, highlightedError: prop_types_1.default.object });
152
+ exports.default = (0, HOCs_1.withContext)(contexts_1.ScrollToErrorContext, function (contextValue, _a) {
153
+ var attributeValue = _a.attributeValue, attributeType = _a.attributeType;
154
+ var error = (contextValue || {}).error;
155
+ var isHighlighted = (0, ramda_1.allPass)([
156
+ (0, ramda_1.pipe)((0, ramda_1.prop)('uri'), mdm_sdk_1.isEmptyValue),
157
+ (0, ramda_1.propEq)('parentUri', attributeValue.uri),
158
+ (0, ramda_1.propEq)('attributeTypeUri', attributeType.uri)
159
+ ])(error);
160
+ return { highlightedError: isHighlighted ? contextValue : null };
161
+ }, ReferenceAttribute);
@@ -1,132 +1,4 @@
1
1
  export { ReferenceAttribute };
2
- declare const _default: import("react-redux").ConnectedComponent<import("react").MemoExoticComponent<{
3
- (props: any): JSX.Element;
4
- propTypes: {
5
- modifiedEntity: import("prop-types").Requireable<import("prop-types").InferProps<{
6
- uri: import("prop-types").Requireable<string>;
7
- type: import("prop-types").Requireable<string>;
8
- }>>;
9
- metadata: import("prop-types").Requireable<import("prop-types").InferProps<{
10
- uri: import("prop-types").Requireable<string>;
11
- description: import("prop-types").Requireable<string>;
12
- label: import("prop-types").Requireable<string>;
13
- schemaVersion: import("prop-types").Requireable<string>;
14
- entityTypes: import("prop-types").Requireable<import("prop-types").InferProps<{
15
- typeColor: import("prop-types").Requireable<string>;
16
- typeIcon: import("prop-types").Requireable<string>;
17
- typeImage: import("prop-types").Requireable<string>;
18
- label: import("prop-types").Requireable<string>;
19
- uri: import("prop-types").Requireable<string>;
20
- attributes: import("prop-types").Requireable<import("prop-types").InferProps<{
21
- label: import("prop-types").Requireable<string>;
22
- name: import("prop-types").Requireable<string>;
23
- description: import("prop-types").Requireable<string>;
24
- type: import("prop-types").Requireable<string>;
25
- hidden: import("prop-types").Requireable<boolean>;
26
- faceted: import("prop-types").Requireable<boolean>;
27
- searchable: import("prop-types").Requireable<boolean>;
28
- uri: import("prop-types").Requireable<string>;
29
- access: import("prop-types").Requireable<string[]>;
30
- cardinality: import("prop-types").Requireable<import("prop-types").InferProps<{
31
- minValue: import("prop-types").Requireable<number>;
32
- maxValue: import("prop-types").Requireable<number>;
33
- }>>;
34
- }>[]>;
35
- }>[]>;
36
- roles: import("prop-types").Requireable<object[]>;
37
- groupTypes: import("prop-types").Requireable<object[]>;
38
- relationTypes: import("prop-types").Requireable<import("prop-types").InferProps<{
39
- label: import("prop-types").Requireable<string>;
40
- uri: import("prop-types").Requireable<string>;
41
- typeColor: import("prop-types").Requireable<string>;
42
- direction: import("prop-types").Requireable<string>;
43
- startObject: import("prop-types").Requireable<object>;
44
- endObject: import("prop-types").Requireable<object>;
45
- }>[]>;
46
- graphTypes: import("prop-types").Requireable<import("prop-types").InferProps<{
47
- uri: import("prop-types").Requireable<string>;
48
- label: import("prop-types").Requireable<string>;
49
- extendsTypeUri: import("prop-types").Requireable<string>;
50
- relationshipTypeURIs: import("prop-types").Requireable<string[]>;
51
- }>[]>;
52
- interactionTypes: import("prop-types").Requireable<import("prop-types").InferProps<{
53
- uri: import("prop-types").Requireable<string>;
54
- label: import("prop-types").Requireable<string>;
55
- memberTypes: import("prop-types").Requireable<any[]>;
56
- extendsTypeUri: import("prop-types").Requireable<string>;
57
- attributes: import("prop-types").Requireable<import("prop-types").InferProps<{
58
- label: import("prop-types").Requireable<string>;
59
- name: import("prop-types").Requireable<string>;
60
- description: import("prop-types").Requireable<string>;
61
- type: import("prop-types").Requireable<string>;
62
- hidden: import("prop-types").Requireable<boolean>;
63
- faceted: import("prop-types").Requireable<boolean>;
64
- searchable: import("prop-types").Requireable<boolean>;
65
- uri: import("prop-types").Requireable<string>;
66
- access: import("prop-types").Requireable<string[]>;
67
- cardinality: import("prop-types").Requireable<import("prop-types").InferProps<{
68
- minValue: import("prop-types").Requireable<number>;
69
- maxValue: import("prop-types").Requireable<number>;
70
- }>>;
71
- }>[]>;
72
- }>[]>;
73
- sources: import("prop-types").Requireable<object[]>;
74
- }>>;
75
- globalSearchRequestOptions: import("prop-types").Requireable<object>;
76
- onDeleteModifiedEntity: import("prop-types").Requireable<(...args: any[]) => any>;
77
- onUpdateModifiedEntity: import("prop-types").Requireable<(...args: any[]) => any>;
78
- onDeactivateError: import("prop-types").Requireable<(...args: any[]) => any>;
79
- attributeType: import("prop-types").Requireable<import("prop-types").InferProps<{
80
- label: import("prop-types").Requireable<string>;
81
- name: import("prop-types").Requireable<string>;
82
- description: import("prop-types").Requireable<string>;
83
- type: import("prop-types").Requireable<string>;
84
- hidden: import("prop-types").Requireable<boolean>;
85
- faceted: import("prop-types").Requireable<boolean>;
86
- searchable: import("prop-types").Requireable<boolean>;
87
- uri: import("prop-types").Requireable<string>;
88
- access: import("prop-types").Requireable<string[]>;
89
- cardinality: import("prop-types").Requireable<import("prop-types").InferProps<{
90
- minValue: import("prop-types").Requireable<number>;
91
- maxValue: import("prop-types").Requireable<number>;
92
- }>>;
93
- }>>;
94
- showEmptyEditors: import("prop-types").Requireable<boolean>;
95
- lazy: import("prop-types").Requireable<boolean>;
96
- mode: import("prop-types").Requireable<any>;
97
- ownError: import("prop-types").Requireable<import("prop-types").InferProps<{
98
- type: import("prop-types").Validator<NonNullable<import("@reltio/mdm-sdk").ErrorType>>;
99
- attributeTypeUri: import("prop-types").Validator<string>;
100
- parentUri: import("prop-types").Validator<string>;
101
- uri: import("prop-types").Requireable<string>;
102
- message: import("prop-types").Requireable<string>;
103
- }>>;
104
- errors: import("prop-types").Requireable<import("prop-types").InferProps<{
105
- type: import("prop-types").Validator<NonNullable<import("@reltio/mdm-sdk").ErrorType>>;
106
- attributeTypeUri: import("prop-types").Validator<string>;
107
- parentUri: import("prop-types").Validator<string>;
108
- uri: import("prop-types").Requireable<string>;
109
- message: import("prop-types").Requireable<string>;
110
- }>[]>;
111
- crosswalks: import("prop-types").Requireable<any[]>;
112
- onAddAttributes: import("prop-types").Requireable<(...args: any[]) => any>;
113
- onAddOneMore: import("prop-types").Requireable<(...args: any[]) => any>;
114
- onDeleteAttribute: import("prop-types").Requireable<(...args: any[]) => any>;
115
- onChangeAttribute: import("prop-types").Requireable<(...args: any[]) => any>;
116
- additionalControlsRenderer: import("prop-types").Requireable<(...args: any[]) => any>;
117
- hideDeleteButton: import("prop-types").Requireable<boolean>;
118
- showNonOv: import("prop-types").Requireable<boolean>;
119
- state: import("prop-types").Requireable<string>;
120
- expanded: import("prop-types").Requireable<boolean>;
121
- attributeValue: import("prop-types").Requireable<import("prop-types").InferProps<{
122
- refEntity: import("prop-types").Requireable<object>;
123
- refRelation: import("prop-types").Requireable<object>;
124
- value: import("prop-types").Requireable<object>;
125
- ov: import("prop-types").Requireable<boolean>;
126
- type: import("prop-types").Requireable<string>;
127
- uri: import("prop-types").Requireable<string>;
128
- }>>;
129
- };
130
- }>, any>;
2
+ declare const _default: import("react-redux").ConnectedComponent<import("react").ComponentType<any> | ((props: any) => JSX.Element), any>;
131
3
  export default _default;
132
4
  import ReferenceAttribute from "./ReferenceAttribute";
@@ -1,3 +1,3 @@
1
- declare const _default: React.MemoExoticComponent<React.ForwardRefExoticComponent<React.RefAttributes<any>>>;
1
+ declare const _default: React.ForwardRefExoticComponent<React.RefAttributes<any>>;
2
2
  export default _default;
3
3
  import React from "react";
@@ -65,6 +65,9 @@ var SmallIconButton_1 = __importDefault(require("../../../SmallIconButton/SmallI
65
65
  var utils_1 = require("./utils");
66
66
  var withAsyncMount_1 = __importDefault(require("../../../../HOCs/withAsyncMount/withAsyncMount"));
67
67
  var getDependentLookupEditorContext_1 = require("./selectors/getDependentLookupEditorContext");
68
+ var HOCs_1 = require("../../../../HOCs");
69
+ var contexts_1 = require("../../../../contexts");
70
+ var hooks_1 = require("../../../../hooks");
68
71
  var styles_1 = require("./styles");
69
72
  var AsyncMountPlaceholder = function () {
70
73
  var styles = (0, styles_1.useStyles)();
@@ -72,13 +75,11 @@ var AsyncMountPlaceholder = function () {
72
75
  };
73
76
  var SimpleAttributeEditor = function (_a) {
74
77
  var _b, _c;
75
- var className = _a.className, attributeValue = _a.attributeValue, attributeType = _a.attributeType, isReltioCrosswalk = _a.isReltioCrosswalk, ownError = _a.ownError, mode = _a.mode, onAddOneMore = _a.onAddOneMore, onDeleteAttribute = _a.onDeleteAttribute, onChangeAttribute = _a.onChangeAttribute, onDeactivateError = _a.onDeactivateError, additionalControlsRenderer = _a.additionalControlsRenderer, state = _a.state, otherProps = __rest(_a, ["className", "attributeValue", "attributeType", "isReltioCrosswalk", "ownError", "mode", "onAddOneMore", "onDeleteAttribute", "onChangeAttribute", "onDeactivateError", "additionalControlsRenderer", "state"]);
78
+ var className = _a.className, attributeValue = _a.attributeValue, attributeType = _a.attributeType, isReltioCrosswalk = _a.isReltioCrosswalk, ownError = _a.ownError, mode = _a.mode, onAddOneMore = _a.onAddOneMore, onDeleteAttribute = _a.onDeleteAttribute, onChangeAttribute = _a.onChangeAttribute, onDeactivateError = _a.onDeactivateError, additionalControlsRenderer = _a.additionalControlsRenderer, state = _a.state, highlightedError = _a.highlightedError, otherProps = __rest(_a, ["className", "attributeValue", "attributeType", "isReltioCrosswalk", "ownError", "mode", "onAddOneMore", "onDeleteAttribute", "onChangeAttribute", "onDeactivateError", "additionalControlsRenderer", "state", "highlightedError"]);
76
79
  var styles = (0, styles_1.useStyles)();
77
80
  var deleted = state === 'deleted';
78
81
  var edited = state === 'edited';
79
82
  var isEditableMode = (0, mdm_sdk_1.isEditableMode)(mode);
80
- var dataTypeDefinition = (0, mdm_sdk_1.getAttrDataTypeDefinition)(attributeType);
81
- var value = (0, utils_1.attributeValueToEditorValue)(attributeValue, dataTypeDefinition);
82
83
  var canCreate = (0, mdm_sdk_1.checkCanCreateAttribute)({ attributeType: attributeType, mode: mode });
83
84
  var canEdit = (0, mdm_sdk_1.checkCanEditAttribute)({ attributeType: attributeType, attributeValue: attributeValue, mode: mode, isReltioCrosswalk: isReltioCrosswalk });
84
85
  var canDelete = (0, mdm_sdk_1.checkCanDeleteAttribute)({ attributeType: attributeType, attributeValue: attributeValue, mode: mode, isReltioCrosswalk: isReltioCrosswalk });
@@ -89,24 +90,28 @@ var SimpleAttributeEditor = function (_a) {
89
90
  ? (0, getDependentLookupEditorContext_1.getDependentLookupEditorContext)(state, attributeValue, attributeType === null || attributeType === void 0 ? void 0 : attributeType.uri)
90
91
  : null;
91
92
  });
93
+ var _d = (0, hooks_1.useScrollToAttributeError)({ highlightedError: highlightedError, isSimple: true }), ref = _d.ref, errorClassName = _d.errorClassName;
94
+ var dataTypeDefinition = (0, react_1.useMemo)(function () { return (0, mdm_sdk_1.getAttrDataTypeDefinition)(attributeType); }, [attributeType]);
95
+ var value = (0, react_1.useMemo)(function () { return (0, utils_1.attributeValueToEditorValue)(attributeValue, dataTypeDefinition); }, [attributeValue, dataTypeDefinition]);
96
+ var deactivateError = (0, react_1.useCallback)(function () {
97
+ if (ownError) {
98
+ onDeactivateError((0, mdm_sdk_1.getErrorId)(ownError));
99
+ }
100
+ }, [ownError, onDeactivateError]);
101
+ var onValueEditorChange = (0, react_1.useCallback)((0, ramda_1.pipe)((0, utils_1.prepareChangeData)(attributeValue, attributeType), onChangeAttribute, deactivateError), [attributeValue, attributeType, onChangeAttribute, deactivateError]);
92
102
  var onDelete = function () {
93
103
  onDeleteAttribute({ uri: attributeValue.uri, attributeType: attributeType });
94
104
  if ((0, mdm_sdk_1.getErrorType)(ownError) !== mdm_sdk_1.ErrorType.missed) {
95
105
  deactivateError();
96
106
  }
97
107
  };
98
- var deactivateError = function () {
99
- if (ownError) {
100
- onDeactivateError((0, mdm_sdk_1.getErrorId)(ownError));
101
- }
102
- };
103
108
  var showAddButton = !!onAddOneMore && canCreate && !attributeType.singleValue;
104
109
  var showDeleteButton = !deleted && !!onDeleteAttribute && canDelete;
105
110
  var hasError = !!errorMessage;
106
111
  var deletedProps = deleted ? { disabled: true } : {};
107
- return (react_1.default.createElement("div", { className: (0, classnames_1.default)(styles.editor, className) },
112
+ return (react_1.default.createElement("div", { ref: ref, className: (0, classnames_1.default)(styles.editor, className, errorClassName) },
108
113
  react_1.default.createElement(ErrorWrapper_1.default, { errorMessage: errorMessage, className: styles.errorWrapper },
109
- react_1.default.createElement("div", { className: (0, classnames_1.default)(styles['editor-value'], (_b = {}, _b[styles.deleted] = deleted, _b), (_c = {}, _c[styles['editor-read-only-value']] = !showToEdit, _c)), "data-reltio-id": "reltio-attribute-value" }, showToEdit ? (react_1.default.createElement(DataTypeValueEditor_1.default, __assign({ fieldName: (0, mdm_sdk_1.attributeUriToSearchUri)(attributeType.uri), value: value, dataTypeDefinition: dataTypeDefinition, error: hasError, onChange: (0, ramda_1.pipe)((0, utils_1.prepareChangeData)(attributeValue, attributeType), onChangeAttribute, deactivateError), fullWidth: true }, dependentLookupEditorContext, otherProps, deletedProps))) : (react_1.default.createElement(DataTypeValue_1.default, { value: (0, mdm_sdk_1.getAttributeValue)(attributeValue), dataTypeDefinition: dataTypeDefinition })))),
114
+ react_1.default.createElement("div", { className: (0, classnames_1.default)(styles['editor-value'], (_b = {}, _b[styles.deleted] = deleted, _b), (_c = {}, _c[styles['editor-read-only-value']] = !showToEdit, _c)), "data-reltio-id": "reltio-attribute-value" }, showToEdit ? (react_1.default.createElement(DataTypeValueEditor_1.default, __assign({ fieldName: (0, mdm_sdk_1.attributeUriToSearchUri)(attributeType.uri), value: value, dataTypeDefinition: dataTypeDefinition, error: hasError, onChange: onValueEditorChange, fullWidth: true }, dependentLookupEditorContext, otherProps, deletedProps))) : (react_1.default.createElement(DataTypeValue_1.default, { value: (0, mdm_sdk_1.getAttributeValue)(attributeValue), dataTypeDefinition: dataTypeDefinition })))),
110
115
  react_1.default.createElement("div", { className: styles['editor-actions'] },
111
116
  edited && (react_1.default.createElement(Typography_1.default, { variant: "caption", className: styles.editedLabel },
112
117
  "(",
@@ -128,6 +133,12 @@ SimpleAttributeEditor.propTypes = {
128
133
  onDeleteAttribute: prop_types_1.default.func,
129
134
  onChangeAttribute: prop_types_1.default.func,
130
135
  onDeactivateError: prop_types_1.default.func,
131
- additionalControlsRenderer: prop_types_1.default.func
136
+ additionalControlsRenderer: prop_types_1.default.func,
137
+ highlightedError: prop_types_1.default.object
132
138
  };
133
- exports.default = (0, react_1.memo)((0, withAsyncMount_1.default)(SimpleAttributeEditor, AsyncMountPlaceholder));
139
+ exports.default = (0, withAsyncMount_1.default)((0, HOCs_1.withContext)(contexts_1.ScrollToErrorContext, function (contextValue, _a) {
140
+ var attributeValue = _a.attributeValue;
141
+ var error = (contextValue || {}).error;
142
+ var isHighlighted = (error === null || error === void 0 ? void 0 : error.uri) === attributeValue.uri;
143
+ return { highlightedError: isHighlighted ? contextValue : null };
144
+ }, SimpleAttributeEditor), AsyncMountPlaceholder);
@@ -1 +1 @@
1
- export const useStyles: (props?: any) => import("@material-ui/core/styles/withStyles").ClassNameMap<"button" | "placeholder" | "deleted" | "editor" | "wrapper" | "addButton" | "errorWrapper" | "editor-value" | "editor-read-only-value" | "editor-actions" | "editedLabel">;
1
+ export declare const useStyles: (props?: any) => import("@material-ui/core/styles/withStyles").ClassNameMap<"button" | "placeholder" | "deleted" | "editor" | "wrapper" | "addButton" | "errorWrapper" | "editor-value" | "editor-read-only-value" | "editor-actions" | "editedLabel">;
@@ -14,7 +14,8 @@ exports.useStyles = (0, styles_1.makeStyles)(function (theme) { return ({
14
14
  display: 'flex',
15
15
  flex: 1,
16
16
  alignItems: 'flex-start',
17
- marginBottom: "".concat(marginBottom, "px")
17
+ marginBottom: "".concat(marginBottom, "px"),
18
+ position: 'relative'
18
19
  },
19
20
  'editor-value': {
20
21
  flex: '1 1 auto'
@@ -1,18 +1,19 @@
1
- export default DataTypeValueEditor;
2
- declare function DataTypeValueEditor({ fieldName, value, onChange, dataTypeDefinition, TextFieldProps, ...otherProps }: {
3
- [x: string]: any;
4
- fieldName: any;
5
- value: any;
6
- onChange: any;
7
- dataTypeDefinition: any;
8
- TextFieldProps?: {};
9
- }): JSX.Element;
10
- declare namespace DataTypeValueEditor {
11
- namespace propTypes {
12
- const fieldName: PropTypes.Requireable<string>;
13
- const value: PropTypes.Requireable<any>;
14
- const onChange: PropTypes.Requireable<(...args: any[]) => any>;
15
- const dataTypeDefinition: PropTypes.Requireable<object>;
16
- }
17
- }
1
+ declare const _default: import("react").MemoExoticComponent<{
2
+ ({ fieldName, value, onChange, dataTypeDefinition, TextFieldProps, ...otherProps }: {
3
+ [x: string]: any;
4
+ fieldName: any;
5
+ value: any;
6
+ onChange: any;
7
+ dataTypeDefinition: any;
8
+ TextFieldProps?: {};
9
+ }): JSX.Element;
10
+ propTypes: {
11
+ fieldName: PropTypes.Requireable<string>;
12
+ value: PropTypes.Requireable<any>;
13
+ onChange: PropTypes.Requireable<(...args: any[]) => any>;
14
+ dataTypeDefinition: PropTypes.Requireable<object>;
15
+ };
16
+ displayName: string;
17
+ }>;
18
+ export default _default;
18
19
  import PropTypes from "prop-types";
@@ -25,6 +25,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
25
25
  return (mod && mod.__esModule) ? mod : { "default": mod };
26
26
  };
27
27
  Object.defineProperty(exports, "__esModule", { value: true });
28
+ var react_1 = require("react");
28
29
  var ramda_1 = require("ramda");
29
30
  var EditorsFactory_1 = __importDefault(require("../EditorsFactory"));
30
31
  var prop_types_1 = __importDefault(require("prop-types"));
@@ -49,4 +50,5 @@ DataTypeValueEditor.propTypes = {
49
50
  onChange: prop_types_1.default.func,
50
51
  dataTypeDefinition: prop_types_1.default.object
51
52
  };
52
- exports.default = DataTypeValueEditor;
53
+ DataTypeValueEditor.displayName = 'DataTypeValueEditor';
54
+ exports.default = (0, react_1.memo)(DataTypeValueEditor);
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ import { AttributeError } from '@reltio/mdm-sdk';
3
+ declare type ScrollToErrorContextProps = {
4
+ error: AttributeError | null;
5
+ highlightError: (error: AttributeError) => void;
6
+ scrollIntoRef: (ref: React.MutableRefObject<HTMLDivElement>) => void;
7
+ };
8
+ export declare const ScrollToErrorContext: React.Context<ScrollToErrorContextProps>;
9
+ declare type Props = {
10
+ children: React.ReactNode;
11
+ };
12
+ export declare const ScrollToErrorProvider: ({ children }: Props) => JSX.Element;
13
+ export {};