@reltio/components 1.4.1667 → 1.4.1669

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 (45) hide show
  1. package/cjs/components/ConnectionEditor/ConnectionEditor.js +2 -2
  2. package/cjs/components/EntityUriLink/EntityUriLink.d.ts +3 -5
  3. package/cjs/components/EntityUriLink/EntityUriLink.js +6 -8
  4. package/cjs/components/ValueChip/ValueChip.d.ts +7 -14
  5. package/cjs/components/ValueChip/ValueChip.js +1 -7
  6. package/cjs/components/ValueChip/styles.d.ts +2 -2
  7. package/cjs/components/attributes/editMode/NestedAttribute/NestedAttribute.d.ts +1 -1
  8. package/cjs/components/attributes/editMode/Tags/Tags.js +63 -19
  9. package/cjs/components/attributes/inline/ComplexAttribute/ComplexAttribute.js +2 -2
  10. package/cjs/components/attributes/inline/NestedAttributesBlock/NestedAttributesBlock.js +1 -1
  11. package/cjs/components/attributes/inline/SimpleAttribute/SimpleAttribute.js +2 -2
  12. package/cjs/components/attributes/inline/SimpleAttributesBlock/SimpleAttributesBlock.js +1 -1
  13. package/cjs/components/attributes/readMode/NestedAttribute/NestedAttribute.d.ts +1 -1
  14. package/cjs/components/crosswalks/AttributesTable/AddAttributesButton/AddAttributesButton.js +1 -1
  15. package/cjs/components/editors/DataTypeValueEditor/useEditorContext.d.ts +1 -1
  16. package/cjs/components/editors/TypeaheadEditor/TypeaheadEditor.d.ts +20 -24
  17. package/cjs/components/editors/TypeaheadEditor/TypeaheadEditor.js +155 -83
  18. package/cjs/components/editors/TypeaheadEditor/styles.d.ts +1 -1
  19. package/cjs/components/editors/TypeaheadEditor/styles.js +17 -17
  20. package/cjs/components/history/ContributorsPanel/styles.d.ts +1 -1
  21. package/cjs/hooks/useCommentsEntitiesMap.js +1 -1
  22. package/cjs/hooks/useMatchesLoader.js +2 -2
  23. package/esm/components/ConnectionEditor/ConnectionEditor.js +3 -3
  24. package/esm/components/EntityUriLink/EntityUriLink.d.ts +3 -5
  25. package/esm/components/EntityUriLink/EntityUriLink.js +6 -8
  26. package/esm/components/ValueChip/ValueChip.d.ts +7 -14
  27. package/esm/components/ValueChip/ValueChip.js +1 -7
  28. package/esm/components/ValueChip/styles.d.ts +2 -2
  29. package/esm/components/attributes/editMode/NestedAttribute/NestedAttribute.d.ts +1 -1
  30. package/esm/components/attributes/editMode/Tags/Tags.js +65 -21
  31. package/esm/components/attributes/inline/ComplexAttribute/ComplexAttribute.js +3 -3
  32. package/esm/components/attributes/inline/NestedAttributesBlock/NestedAttributesBlock.js +2 -2
  33. package/esm/components/attributes/inline/SimpleAttribute/SimpleAttribute.js +3 -3
  34. package/esm/components/attributes/inline/SimpleAttributesBlock/SimpleAttributesBlock.js +2 -2
  35. package/esm/components/attributes/readMode/NestedAttribute/NestedAttribute.d.ts +1 -1
  36. package/esm/components/crosswalks/AttributesTable/AddAttributesButton/AddAttributesButton.js +2 -2
  37. package/esm/components/editors/DataTypeValueEditor/useEditorContext.d.ts +1 -1
  38. package/esm/components/editors/TypeaheadEditor/TypeaheadEditor.d.ts +20 -24
  39. package/esm/components/editors/TypeaheadEditor/TypeaheadEditor.js +155 -83
  40. package/esm/components/editors/TypeaheadEditor/styles.d.ts +1 -1
  41. package/esm/components/editors/TypeaheadEditor/styles.js +17 -17
  42. package/esm/components/history/ContributorsPanel/styles.d.ts +1 -1
  43. package/esm/hooks/useCommentsEntitiesMap.js +2 -2
  44. package/esm/hooks/useMatchesLoader.js +3 -3
  45. package/package.json +2 -2
@@ -33,6 +33,42 @@ var __importStar = (this && this.__importStar) || function (mod) {
33
33
  __setModuleDefault(result, mod);
34
34
  return result;
35
35
  };
36
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
37
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
38
+ return new (P || (P = Promise))(function (resolve, reject) {
39
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
40
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
41
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
42
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
43
+ });
44
+ };
45
+ var __generator = (this && this.__generator) || function (thisArg, body) {
46
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
47
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
48
+ function verb(n) { return function (v) { return step([n, v]); }; }
49
+ function step(op) {
50
+ if (f) throw new TypeError("Generator is already executing.");
51
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
52
+ 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;
53
+ if (y = 0, t) op = [op[0] & 2, t.value];
54
+ switch (op[0]) {
55
+ case 0: case 1: t = op; break;
56
+ case 4: _.label++; return { value: op[1], done: false };
57
+ case 5: _.label++; y = op[1]; op = [0]; continue;
58
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
59
+ default:
60
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
61
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
62
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
63
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
64
+ if (t[2]) _.ops.pop();
65
+ _.trys.pop(); continue;
66
+ }
67
+ op = body.call(thisArg, _);
68
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
69
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
70
+ }
71
+ };
36
72
  var __rest = (this && this.__rest) || function (s, e) {
37
73
  var t = {};
38
74
  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
@@ -57,133 +93,169 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
57
93
  return (mod && mod.__esModule) ? mod : { "default": mod };
58
94
  };
59
95
  Object.defineProperty(exports, "__esModule", { value: true });
96
+ var react_1 = __importStar(require("react"));
97
+ var ramda_1 = require("ramda");
98
+ var classnames_1 = __importDefault(require("classnames"));
99
+ var mdm_sdk_1 = require("@reltio/mdm-sdk");
60
100
  var react_autosuggest_1 = __importDefault(require("react-autosuggest"));
61
101
  var react_input_autosize_1 = __importDefault(require("react-input-autosize"));
62
- var classnames_1 = __importDefault(require("classnames"));
63
102
  var TextField_1 = __importDefault(require("@mui/material/TextField"));
64
103
  var MenuItem_1 = __importDefault(require("@mui/material/MenuItem"));
65
104
  var Paper_1 = __importDefault(require("@mui/material/Paper"));
105
+ var hooks_1 = require("../../../hooks");
66
106
  var Popper_1 = __importDefault(require("../../Popper/Popper"));
67
- var prop_types_1 = __importDefault(require("prop-types"));
68
- var react_1 = __importStar(require("react"));
69
107
  var EmptySearchResult_1 = require("../../../components/EmptySearchResult");
70
- var ramda_1 = require("ramda");
71
- var mdm_sdk_1 = require("@reltio/mdm-sdk");
72
- var utils_1 = require("../../../core/utils");
73
- var styles_1 = require("./styles");
74
108
  var ExpandedValueTooltip_1 = __importDefault(require("../../ExpandedValueTooltip/ExpandedValueTooltip"));
75
109
  var ValueChip_1 = __importDefault(require("../../ValueChip/ValueChip"));
76
110
  var LoadMoreButton_1 = __importDefault(require("../../commonReactSelectComponents/LoadMoreButton"));
77
- var hooks_1 = require("../../../hooks");
111
+ var styles_1 = require("./styles");
78
112
  var FETCH_DEBOUNCE_INTERVAL = 300;
79
113
  var PAGE_SIZE = 50;
114
+ var ChangeMethod;
115
+ (function (ChangeMethod) {
116
+ ChangeMethod["Type"] = "type";
117
+ ChangeMethod["Escape"] = "escape";
118
+ ChangeMethod["Click"] = "click";
119
+ ChangeMethod["Enter"] = "enter";
120
+ })(ChangeMethod || (ChangeMethod = {}));
80
121
  var TypeaheadEditor = function (_a) {
81
122
  var value = _a.value, _b = _a.max, max = _b === void 0 ? PAGE_SIZE : _b, getSuggestions = _a.getSuggestions, onChange = _a.onChange, multiple = _a.multiple, fullWidth = _a.fullWidth, _c = _a.InputProps, InputProps = _c === void 0 ? {} : _c, _d = _a.isCrossedOut, isCrossedOut = _d === void 0 ? false : _d, inputProps = __rest(_a, ["value", "max", "getSuggestions", "onChange", "multiple", "fullWidth", "InputProps", "isCrossedOut"]);
123
+ var styles = (0, styles_1.useStyles)();
124
+ var inputRef = (0, react_1.useRef)(null);
82
125
  var _e = (0, react_1.useState)([]), suggestions = _e[0], setSuggestions = _e[1];
83
126
  var _f = (0, react_1.useState)(false), isPlaceholderVisible = _f[0], setPlaceholderVisibility = _f[1];
84
127
  var _g = (0, react_1.useState)(1), pageNumber = _g[0], setPageNumber = _g[1];
85
128
  var _h = (0, react_1.useState)(false), nextPageIsLoading = _h[0], setNextPageIsLoading = _h[1];
129
+ var _j = (0, react_1.useState)(''), inputValue = _j[0], setInputValue = _j[1];
130
+ var _k = (0, react_1.useState)(null), highlightedItem = _k[0], setHighlightedItem = _k[1];
86
131
  var pageSizeForRequest = max + 1;
87
- var _j = (0, react_1.useState)(''), currentValue = _j[0], setCurrentValue = _j[1];
88
- value = (0, ramda_1.defaultTo)(multiple ? [] : '', value);
89
- var inputValue = multiple ? currentValue : value;
90
- (0, hooks_1.useDidUpdateEffect)(function () {
91
- setPageNumber(1);
92
- }, [inputValue]);
93
- var inputRef = (0, react_1.useRef)();
94
- var styles = (0, styles_1.useStyles)();
132
+ var displayedSuggestions = (0, react_1.useMemo)(function () { return suggestions.slice(0, pageNumber * max); }, [suggestions, pageNumber, max]);
133
+ var showMoreButton = suggestions.length > displayedSuggestions.length;
95
134
  var isFocused = function () { var _a; return ((_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.querySelector('input')) === document.activeElement; };
96
- var fetchSuggestions = (0, ramda_1.pipe)((0, ramda_1.prop)('value'), ramda_1.trim, function (value) { return getSuggestions(value, pageSizeForRequest); }, (0, ramda_1.andThen)((0, ramda_1.pipe)((0, ramda_1.tap)(setSuggestions), (0, ramda_1.both)(ramda_1.isEmpty, isFocused), setPlaceholderVisibility)));
97
- var onLoadMoreSuggestions = function () {
98
- setNextPageIsLoading(true);
99
- getSuggestions(inputValue, pageSizeForRequest, pageNumber + 1)
100
- .then((0, ramda_1.pipe)((0, ramda_1.concat)(suggestions), setSuggestions, (0, ramda_1.always)(pageNumber + 1), setPageNumber))
101
- .finally(function () {
102
- setNextPageIsLoading(false);
135
+ var fetchSuggestions = (0, react_1.useCallback)(function (_a) {
136
+ var value = _a.value;
137
+ return __awaiter(void 0, void 0, void 0, function () {
138
+ var response;
139
+ return __generator(this, function (_b) {
140
+ switch (_b.label) {
141
+ case 0: return [4 /*yield*/, getSuggestions(value.trim(), pageSizeForRequest)];
142
+ case 1:
143
+ response = _b.sent();
144
+ setSuggestions(response);
145
+ setPlaceholderVisibility((0, ramda_1.isEmpty)(response) && isFocused());
146
+ return [2 /*return*/];
147
+ }
148
+ });
103
149
  });
104
- };
105
- var onMouseDown = function (event) {
106
- event.preventDefault();
107
- };
150
+ }, [getSuggestions, pageSizeForRequest]);
108
151
  var debouncedFetchSuggestions = (0, react_1.useCallback)((0, mdm_sdk_1.debounce)(fetchSuggestions, FETCH_DEBOUNCE_INTERVAL), [
109
152
  getSuggestions
110
153
  ]);
111
- var displayedSuggestions = (0, react_1.useMemo)(function () { return suggestions.slice(0, pageNumber * max); }, [suggestions, pageNumber, max]);
112
- var showMoreButton = suggestions.length > displayedSuggestions.length;
113
- var _k = (0, react_1.useState)(false), hasHighlightedItem = _k[0], setHasHighlightedItem = _k[1];
114
- var onInputChange = function (_a) {
154
+ var handleLoadMoreSuggestions = (0, react_1.useCallback)(function () { return __awaiter(void 0, void 0, void 0, function () {
155
+ var response_1;
156
+ return __generator(this, function (_a) {
157
+ switch (_a.label) {
158
+ case 0:
159
+ setNextPageIsLoading(true);
160
+ _a.label = 1;
161
+ case 1:
162
+ _a.trys.push([1, , 3, 4]);
163
+ return [4 /*yield*/, getSuggestions(inputValue, pageSizeForRequest, pageNumber + 1)];
164
+ case 2:
165
+ response_1 = _a.sent();
166
+ setSuggestions(function (prevSuggestions) { return __spreadArray(__spreadArray([], prevSuggestions, true), response_1, true); });
167
+ setPageNumber(function (prevPageNumber) { return prevPageNumber + 1; });
168
+ return [3 /*break*/, 4];
169
+ case 3:
170
+ setNextPageIsLoading(false);
171
+ return [7 /*endfinally*/];
172
+ case 4: return [2 /*return*/];
173
+ }
174
+ });
175
+ }); }, [getSuggestions, inputValue, pageNumber, pageSizeForRequest]);
176
+ var handleSuggestionsFetchRequested = (0, react_1.useCallback)(function (value) {
177
+ if (value.reason === 'input-changed') {
178
+ debouncedFetchSuggestions(value);
179
+ }
180
+ else {
181
+ fetchSuggestions(value);
182
+ }
183
+ }, [debouncedFetchSuggestions, fetchSuggestions]);
184
+ var handleSuggestionsClearRequested = (0, react_1.useCallback)(function () {
185
+ setSuggestions([]);
186
+ setPlaceholderVisibility(false);
187
+ setPageNumber(1);
188
+ }, []);
189
+ var handleSuggestionHighlighted = (0, react_1.useCallback)(function (_a) {
190
+ var suggestion = _a.suggestion;
191
+ setHighlightedItem(suggestion);
192
+ }, []);
193
+ var handleInputValueChange = (0, react_1.useCallback)(function (_a) {
115
194
  var newValue = _a.newValue, method = _a.method;
116
195
  switch (method) {
117
- case 'type': {
118
- if (multiple) {
119
- setCurrentValue(newValue);
120
- }
121
- break;
122
- }
123
- case 'escape': {
124
- if (multiple) {
125
- setCurrentValue(newValue);
126
- }
127
- else {
128
- onChange(newValue);
129
- }
196
+ case ChangeMethod.Type:
197
+ case ChangeMethod.Escape:
198
+ setInputValue(newValue);
130
199
  break;
131
- }
132
- case 'click':
133
- case 'enter': {
134
- if (multiple) {
135
- setCurrentValue('');
136
- if (newValue) {
200
+ case ChangeMethod.Click:
201
+ case ChangeMethod.Enter: {
202
+ if (multiple === true) {
203
+ if (newValue)
137
204
  onChange((0, ramda_1.uniq)(__spreadArray(__spreadArray([], value, true), [newValue], false)));
138
- }
205
+ setInputValue('');
139
206
  }
140
207
  else {
141
- onChange(newValue);
208
+ setInputValue(newValue);
142
209
  }
143
- break;
144
210
  }
145
211
  }
146
- };
147
- return (react_1.default.createElement(react_autosuggest_1.default, { suggestions: displayedSuggestions, shouldRenderSuggestions: ramda_1.T, inputProps: __assign(__assign({ value: inputValue, onChange: (0, ramda_1.pipe)((0, ramda_1.nthArg)(1), onInputChange), onKeyDown: function (event) {
148
- if (event.code === 'Enter' && multiple && !hasHighlightedItem) {
149
- onInputChange({ method: 'enter', newValue: currentValue });
150
- }
151
- }, fullWidth: fullWidth }, inputProps), { autoComplete: 'nope' }), getSuggestionValue: ramda_1.identity, onSuggestionsFetchRequested: (0, ramda_1.ifElse)((0, ramda_1.propEq)('reason', 'input-changed'), debouncedFetchSuggestions, fetchSuggestions), onSuggestionsClearRequested: (0, ramda_1.pipe)((0, ramda_1.always)([]), setSuggestions, ramda_1.F, setPlaceholderVisibility, (0, ramda_1.always)(1), setPageNumber), renderInputComponent: function (_a) {
212
+ }, [multiple, onChange, value]);
213
+ var handleKeyDown = (0, react_1.useCallback)(function (event) {
214
+ if (event.code !== 'Enter' || highlightedItem)
215
+ return;
216
+ if (multiple === true) {
217
+ handleInputValueChange({ method: ChangeMethod.Enter, newValue: inputValue });
218
+ }
219
+ else {
220
+ onChange(inputValue);
221
+ }
222
+ }, [handleInputValueChange, onChange, highlightedItem, inputValue, multiple]);
223
+ var handleBlur = (0, react_1.useCallback)(function () {
224
+ if (multiple !== true)
225
+ onChange(inputValue);
226
+ }, [inputValue, onChange, multiple]);
227
+ (0, react_1.useEffect)(function () {
228
+ if (multiple !== true)
229
+ setInputValue(value !== null && value !== void 0 ? value : '');
230
+ }, [value, multiple]);
231
+ (0, hooks_1.useDidUpdateEffect)(function () {
232
+ setPageNumber(1);
233
+ }, [inputValue]);
234
+ return (react_1.default.createElement(react_autosuggest_1.default, { suggestions: displayedSuggestions, shouldRenderSuggestions: ramda_1.T, getSuggestionValue: ramda_1.identity, onSuggestionsFetchRequested: handleSuggestionsFetchRequested, onSuggestionsClearRequested: handleSuggestionsClearRequested, onSuggestionHighlighted: handleSuggestionHighlighted, theme: {
235
+ container: fullWidth ? styles.suggestionsContainer : '',
236
+ suggestionsList: styles.suggestionsList,
237
+ suggestionsContainerOpen: styles.suggestionsContainerOpen
238
+ }, inputProps: __assign({ value: inputValue, onChange: (0, ramda_1.pipe)((0, ramda_1.nthArg)(1), handleInputValueChange), onKeyDown: handleKeyDown, onBlur: handleBlur, fullWidth: fullWidth, variant: 'standard', autoComplete: 'nope' }, inputProps), renderInputComponent: function (_a) {
152
239
  var _b, _c;
153
- var ref = _a.ref, onInputChange = _a.onChange, otherProps = __rest(_a, ["ref", "onChange"]);
240
+ var ref = _a.ref, otherProps = __rest(_a, ["ref"]);
154
241
  var commonClasses = {
155
- underline: (0, classnames_1.default)((_b = {}, _b[styles['input__underline']] = (0, mdm_sdk_1.isEmptyValue)(value), _b)),
242
+ underline: (0, classnames_1.default)((_b = {}, _b[styles.underline] = (0, mdm_sdk_1.isEmptyValue)(value), _b)),
156
243
  input: (0, classnames_1.default)(styles['rawInput'], (0, ramda_1.path)(['classes', 'input'], InputProps))
157
244
  };
158
- return multiple ? (react_1.default.createElement(TextField_1.default, __assign({ variant: "standard" }, otherProps, { ref: inputRef, inputRef: ref, InputProps: __assign(__assign({}, InputProps), { startAdornment: value.map(function (item, index) { return (react_1.default.createElement(ValueChip_1.default, { key: item, label: item, onDelete: function () { return onChange((0, ramda_1.remove)(index, 1, value)); } })); }), inputComponent: react_input_autosize_1.default, classes: __assign(__assign({ root: (0, classnames_1.default)(styles['multiple-input__input'], (0, ramda_1.path)(['classes', 'root'], InputProps)) }, commonClasses), { input: (0, classnames_1.default)(styles.autosizeInput, commonClasses.input), adornedStart: styles['multiple-input__adornedStart'] }) }), value: currentValue, onChange: onInputChange, classes: { root: styles['multiple-input__root'] } }))) : (react_1.default.createElement(TextField_1.default, __assign({ variant: "standard" }, otherProps, { ref: inputRef, inputRef: ref, value: value, onChange: (0, ramda_1.pipe)((0, ramda_1.tap)(onInputChange), utils_1.getValue, onChange), InputProps: __assign(__assign({}, InputProps), { classes: __assign({ root: (0, classnames_1.default)(styles['input__root'], (0, ramda_1.path)(['classes', 'root'], InputProps), (_c = {},
245
+ return multiple === true ? (react_1.default.createElement(TextField_1.default, __assign({}, otherProps, { ref: inputRef, inputRef: ref, InputProps: __assign(__assign({}, InputProps), { startAdornment: value.map(function (item, index) { return (react_1.default.createElement(ValueChip_1.default, { key: item, label: item, onDelete: function () { return onChange((0, ramda_1.remove)(index, 1, value)); } })); }), inputComponent: react_input_autosize_1.default, classes: __assign(__assign({ root: (0, classnames_1.default)(styles.multipleTextFieldInput, (0, ramda_1.path)(['classes', 'root'], InputProps)) }, commonClasses), { input: (0, classnames_1.default)(styles.autosizeInput, commonClasses.input), adornedStart: styles.multipleTextFieldAdornedStart }) }), classes: { root: styles.multipleTextField } }))) : (react_1.default.createElement(TextField_1.default, __assign({}, otherProps, { ref: inputRef, inputRef: ref, InputProps: __assign(__assign({}, InputProps), { classes: __assign({ root: (0, classnames_1.default)(styles.inputRoot, (0, ramda_1.path)(['classes', 'root'], InputProps), (_c = {},
159
246
  _c[styles.isCrossedOut] = isCrossedOut,
160
247
  _c)) }, commonClasses) }) })));
161
248
  }, renderSuggestionsContainer: function (_a) {
162
249
  var children = _a.children, _b = _a.containerProps, ref = _b.ref, restContainerProps = __rest(_b, ["ref"]);
163
250
  return (react_1.default.createElement(Popper_1.default, { anchorEl: inputRef.current, open: Boolean(children) || isPlaceholderVisible },
164
- react_1.default.createElement(Paper_1.default, __assign({ ref: ref, square: true }, restContainerProps, { style: { width: (0, ramda_1.prop)('clientWidth', inputRef.current) } }),
165
- children || react_1.default.createElement(EmptySearchResult_1.NoResults, { className: styles['typeahead__suggestions-placeholder'] }),
166
- showMoreButton && !isPlaceholderVisible && (react_1.default.createElement(LoadMoreButton_1.default, { onClick: onLoadMoreSuggestions, onMouseDown: onMouseDown, loading: nextPageIsLoading })))));
251
+ react_1.default.createElement(Paper_1.default, __assign({}, restContainerProps, { ref: ref, square: true, style: { width: (0, ramda_1.prop)('clientWidth', inputRef.current) } }),
252
+ children || react_1.default.createElement(EmptySearchResult_1.NoResults, { className: styles.suggestionsPlaceholder }),
253
+ showMoreButton && !isPlaceholderVisible && (react_1.default.createElement(LoadMoreButton_1.default, { onClick: handleLoadMoreSuggestions, onMouseDown: function (event) { return event.preventDefault(); }, loading: nextPageIsLoading })))));
167
254
  }, renderSuggestion: function (suggestion, _a) {
168
255
  var isHighlighted = _a.isHighlighted;
169
- return (react_1.default.createElement(MenuItem_1.default, { className: styles['typeahead__suggestions-menuItem'], selected: isHighlighted, component: "div" },
256
+ return (react_1.default.createElement(MenuItem_1.default, { className: styles.suggestionsItem, selected: isHighlighted, component: "div" },
170
257
  react_1.default.createElement(ExpandedValueTooltip_1.default, { value: suggestion },
171
- react_1.default.createElement("div", { className: styles['menuItem--item'] }, suggestion))));
172
- }, theme: {
173
- container: fullWidth ? styles['typeahead__suggestions-container'] : '',
174
- suggestionsList: styles['typeahead__suggestions-list'],
175
- suggestionsContainerOpen: styles['typeahead__suggestions-container--open']
176
- }, onSuggestionHighlighted: (0, ramda_1.pipe)((0, ramda_1.prop)('suggestion'), Boolean, setHasHighlightedItem) }));
177
- };
178
- TypeaheadEditor.propTypes = {
179
- multiple: prop_types_1.default.bool,
180
- fullWidth: prop_types_1.default.bool,
181
- placeholder: prop_types_1.default.string,
182
- value: prop_types_1.default.oneOfType([prop_types_1.default.string, prop_types_1.default.arrayOf(prop_types_1.default.string)]),
183
- onChange: prop_types_1.default.func.isRequired,
184
- getSuggestions: prop_types_1.default.func.isRequired,
185
- InputProps: prop_types_1.default.object,
186
- max: prop_types_1.default.number,
187
- isCrossedOut: prop_types_1.default.bool
258
+ react_1.default.createElement("div", { className: styles.suggestionsItemText }, suggestion))));
259
+ } }));
188
260
  };
189
261
  exports.default = TypeaheadEditor;
@@ -1 +1 @@
1
- export const useStyles: (props?: any) => import("@mui/styles").ClassNameMap<"isCrossedOut" | "autosizeInput" | "typeahead__suggestions-placeholder" | "typeahead__suggestions-container--open" | "typeahead__suggestions-list" | "typeahead__suggestions-menuItem" | "input__root" | "rawInput" | "multiple-input__root" | "multiple-input__input" | "multiple-input__adornedStart" | "input__underline" | "typeahead__suggestions-container" | "menuItem--item">;
1
+ export declare const useStyles: (props?: any) => import("@mui/styles").ClassNameMap<"underline" | "inputRoot" | "isCrossedOut" | "autosizeInput" | "suggestionsPlaceholder" | "suggestionsContainer" | "suggestionsContainerOpen" | "suggestionsList" | "suggestionsItem" | "suggestionsItemText" | "rawInput" | "multipleTextField" | "multipleTextFieldInput" | "multipleTextFieldAdornedStart">;
@@ -3,24 +3,32 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.useStyles = void 0;
4
4
  var styles_1 = require("@mui/styles");
5
5
  exports.useStyles = (0, styles_1.makeStyles)({
6
- 'typeahead__suggestions-placeholder': {
6
+ suggestionsPlaceholder: {
7
7
  padding: '8px 16px',
8
8
  textAlign: 'center'
9
9
  },
10
- 'typeahead__suggestions-container--open': {
10
+ suggestionsContainer: {
11
+ width: '100%'
12
+ },
13
+ suggestionsContainerOpen: {
11
14
  maxHeight: '230px',
12
15
  overflowY: 'auto'
13
16
  },
14
- 'typeahead__suggestions-list': {
17
+ suggestionsList: {
15
18
  margin: 0,
16
19
  padding: 0,
17
20
  listStyleType: 'none'
18
21
  },
19
- 'typeahead__suggestions-menuItem': {
22
+ suggestionsItem: {
20
23
  color: 'rgba(0,0,0,0.87)',
21
24
  fontSize: '14px'
22
25
  },
23
- input__root: {
26
+ suggestionsItemText: {
27
+ overflow: 'hidden',
28
+ textOverflow: 'ellipsis',
29
+ display: 'block'
30
+ },
31
+ inputRoot: {
24
32
  color: 'rgba(0,0,0,0.87)',
25
33
  fontSize: '14px'
26
34
  },
@@ -48,29 +56,21 @@ exports.useStyles = (0, styles_1.makeStyles)({
48
56
  isCrossedOut: {
49
57
  textDecoration: 'line-through'
50
58
  },
51
- 'multiple-input__root': {
59
+ multipleTextField: {
52
60
  flexWrap: 'wrap',
53
61
  color: 'rgba(0,0,0,0.87)',
54
62
  fontSize: '14px'
55
63
  },
56
- 'multiple-input__input': {
64
+ multipleTextFieldInput: {
57
65
  flex: '1 0 25px',
58
66
  flexWrap: 'wrap'
59
67
  },
60
- 'multiple-input__adornedStart': {
68
+ multipleTextFieldAdornedStart: {
61
69
  paddingLeft: '8px'
62
70
  },
63
- input__underline: {
71
+ underline: {
64
72
  '&:before': {
65
73
  display: 'none'
66
74
  }
67
- },
68
- 'typeahead__suggestions-container': {
69
- width: '100%'
70
- },
71
- 'menuItem--item': {
72
- overflow: 'hidden',
73
- textOverflow: 'ellipsis',
74
- display: 'block'
75
75
  }
76
76
  });
@@ -2,5 +2,5 @@ export declare const useStyles: (props?: any) => import("@mui/styles").ClassName
2
2
  type StylesProps = {
3
3
  color: string;
4
4
  };
5
- export declare const useContributorStyles: (props: StylesProps) => import("@mui/styles").ClassNameMap<"active" | "icon" | "inactive" | "clickable">;
5
+ export declare const useContributorStyles: (props: StylesProps) => import("@mui/styles").ClassNameMap<"icon" | "active" | "inactive" | "clickable">;
6
6
  export {};
@@ -32,7 +32,7 @@ var useCommentsEntitiesMap = function (comments) {
32
32
  ];
33
33
  var requestOptions = {
34
34
  max: entitiesUris.length,
35
- activeness: mdm_sdk_1.ActivityFilters.ALL,
35
+ activeness: mdm_sdk_1.ActivityFilter.ALL,
36
36
  select: 'uri,label,type'
37
37
  };
38
38
  return safePromise((0, mdm_sdk_1.getFilteredEntities)(requestFilters, requestOptions));
@@ -18,8 +18,8 @@ var useMatchesLoader = function (_a) {
18
18
  var _f = (0, contexts_1.useMdmGlobalSearchRequestOptions)() || {}, activityFilter = _f.activityFilter, globalFilter = _f.globalFilter;
19
19
  var activeness = typeof options.showInactiveEntities === 'boolean'
20
20
  ? options.showInactiveEntities
21
- ? mdm_sdk_1.ActivityFilters.ALL
22
- : mdm_sdk_1.ActivityFilters.ACTIVE_ONLY
21
+ ? mdm_sdk_1.ActivityFilter.ALL
22
+ : mdm_sdk_1.ActivityFilter.ACTIVE_ONLY
23
23
  : activityFilter;
24
24
  var entityUri = entity === null || entity === void 0 ? void 0 : entity.uri;
25
25
  var dtssParams = (0, react_1.useMemo)(function () { return ({
@@ -12,7 +12,7 @@ var __assign = (this && this.__assign) || function () {
12
12
  import { useStyles } from './styles';
13
13
  import { useDidUpdateEffect } from '../../hooks';
14
14
  import React, { useCallback, useEffect, useMemo } from 'react';
15
- import { Directions, getActivenessAttributes, getSuitableEntityTypeUrisForRelationTypes, getDefaultRelationTypeObject, getLabel, getRelationAttributesList, getRelationType, isAvailableRelationBetweenEntities, ModeTypes } from '@reltio/mdm-sdk';
15
+ import { Directions, getActivenessAttributes, getSuitableEntityTypeUrisForRelationTypes, getDefaultRelationTypeObject, getLabel, getRelationAttributesList, getRelationType, isAvailableRelationBetweenEntities, Mode } from '@reltio/mdm-sdk';
16
16
  import AttributesList from '../attributes/editMode/AttributesList';
17
17
  import classnames from 'classnames';
18
18
  import { uniq } from 'ramda';
@@ -84,6 +84,6 @@ export var ConnectionEditor = function (_a) {
84
84
  return (React.createElement(React.Fragment, null,
85
85
  onChangeRelationType && (React.createElement(ConnectionRelationTypeSelector, { className: styles.item, relation: selectorCompatibleRelation, metadata: metadata, inRelationTypes: inRelationTypes, outRelationTypes: outRelationTypes, onChange: handleChangeRelationType })),
86
86
  onChangeEntity && (React.createElement(ErrorWrapper, { errorMessage: entityErrorMessage, className: styles.item },
87
- React.createElement(EntitySelector, { key: relationTypeUri, className: classnames((_b = {}, _b[styles.dense] = entityErrorMessage, _b)), entity: selectorCompatibleEntity || {}, entityTypesUris: availableEntityTypeUris, max: 20, globalSearchRequestOptions: globalSearchRequestOptions, mode: ModeTypes.EDITING, onChange: onChangeEntity, onCreate: undefined, metadata: metadata, attributeTypesSelectionStrategy: undefined }))),
88
- relationTypeUri && (React.createElement(AttributesList, { attrTypes: relationAttrTypes, entity: attributeListEntity, showEmptyEditors: showEmptyEditors, mode: ModeTypes.EDITING, parentUri: relationUri, onAddAttributes: onAddAttributes, onChangeAttribute: onChangeAttribute, onDeleteAttribute: onRemoveAttribute }))));
87
+ React.createElement(EntitySelector, { key: relationTypeUri, className: classnames((_b = {}, _b[styles.dense] = entityErrorMessage, _b)), entity: selectorCompatibleEntity || {}, entityTypesUris: availableEntityTypeUris, max: 20, globalSearchRequestOptions: globalSearchRequestOptions, mode: Mode.Editing, onChange: onChangeEntity, onCreate: undefined, metadata: metadata, attributeTypesSelectionStrategy: undefined }))),
88
+ relationTypeUri && (React.createElement(AttributesList, { attrTypes: relationAttrTypes, entity: attributeListEntity, showEmptyEditors: showEmptyEditors, mode: Mode.Editing, parentUri: relationUri, onAddAttributes: onAddAttributes, onChangeAttribute: onChangeAttribute, onDeleteAttribute: onRemoveAttribute }))));
89
89
  };
@@ -1,9 +1,7 @@
1
1
  import React from 'react';
2
- type Props = {
3
- className?: string;
2
+ declare const EntityUriLink: React.ForwardRefExoticComponent<Pick<Omit<React.HTMLProps<HTMLAnchorElement>, "target" | "href" | "onClick"> & {
4
3
  value: string;
5
4
  screen?: string;
6
- children: React.ReactNode;
7
- };
8
- declare const EntityUriLink: React.ForwardRefExoticComponent<Props & React.RefAttributes<HTMLAnchorElement>>;
5
+ shouldOpenInNewTab?: boolean;
6
+ }, "value" | "label" | "id" | "step" | "type" | "name" | "hidden" | "content" | "max" | "open" | "title" | "data" | "list" | "scope" | "key" | "children" | "default" | "defaultValue" | "required" | "size" | "method" | "headers" | "start" | "prefix" | "action" | "width" | "height" | "screen" | "pattern" | "integrity" | "results" | "cite" | "form" | "slot" | "span" | "style" | "summary" | "color" | "translate" | "wrap" | "multiple" | "disabled" | "className" | "lang" | "media" | "min" | "role" | "tabIndex" | "crossOrigin" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "classID" | "useMap" | "wmode" | "defaultChecked" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "placeholder" | "spellCheck" | "radioGroup" | "about" | "datatype" | "inlist" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "security" | "unselectable" | "inputMode" | "is" | "htmlFor" | "as" | "hrefLang" | "rel" | "sizes" | "charSet" | "cellPadding" | "cellSpacing" | "selected" | "src" | "srcSet" | "autoComplete" | "autoFocus" | "dateTime" | "manifest" | "download" | "alt" | "coords" | "shape" | "autoPlay" | "controls" | "loop" | "mediaGroup" | "muted" | "playsInline" | "preload" | "formAction" | "formEncType" | "formMethod" | "formNoValidate" | "formTarget" | "acceptCharset" | "encType" | "noValidate" | "allowFullScreen" | "allowTransparency" | "frameBorder" | "marginHeight" | "marginWidth" | "sandbox" | "scrolling" | "seamless" | "srcDoc" | "accept" | "capture" | "checked" | "maxLength" | "minLength" | "readOnly" | "challenge" | "keyType" | "keyParams" | "httpEquiv" | "high" | "low" | "optimum" | "reversed" | "async" | "defer" | "nonce" | "scoped" | "colSpan" | "rowSpan" | "cols" | "rows" | "kind" | "srcLang" | "poster" | "shouldOpenInNewTab"> & React.RefAttributes<HTMLAnchorElement>>;
9
7
  export default EntityUriLink;
@@ -23,20 +23,18 @@ var __rest = (this && this.__rest) || function (s, e) {
23
23
  import React, { forwardRef, useCallback, useContext } from 'react';
24
24
  import { ViewIdContext, UrlGeneratorsContext, useMdmUiPath, useMdmAction } from '../../contexts';
25
25
  var EntityUriLink = forwardRef(function (_a, ref) {
26
- var value = _a.value, children = _a.children, screen = _a.screen, className = _a.className, otherProps = __rest(_a, ["value", "children", "screen", "className"]);
26
+ var value = _a.value, children = _a.children, screen = _a.screen, className = _a.className, _b = _a.shouldOpenInNewTab, shouldOpenInNewTab = _b === void 0 ? false : _b, otherProps = __rest(_a, ["value", "children", "screen", "className", "shouldOpenInNewTab"]);
27
27
  var viewId = useContext(ViewIdContext);
28
28
  var generateEntityUrl = useContext(UrlGeneratorsContext).generateEntityUrl;
29
29
  var openEntity = useMdmAction('openEntity');
30
30
  var uiPath = useMdmUiPath();
31
31
  var generateEntityUrlByUri = function (uri) { return generateEntityUrl({ uiPath: uiPath, uri: uri, screen: screen }); };
32
- var onClick = useCallback(function () {
32
+ var handleClick = useCallback(function (e) {
33
33
  openEntity({ uri: value, viewId: viewId, screen: screen });
34
- }, [viewId, value, openEntity, screen]);
35
- return (React.createElement("a", __assign({ ref: ref, href: generateEntityUrlByUri(value), onClick: function (e) {
36
- onClick();
37
- e.stopPropagation();
38
- e.preventDefault();
39
- }, className: className }, otherProps), children));
34
+ e.stopPropagation();
35
+ e.preventDefault();
36
+ }, [openEntity, screen, value, viewId]);
37
+ return (React.createElement("a", __assign({ ref: ref, href: generateEntityUrlByUri(value), onClick: shouldOpenInNewTab ? undefined : handleClick, target: shouldOpenInNewTab ? '_blank' : '_self', className: className }, otherProps), children));
40
38
  });
41
39
  EntityUriLink.displayName = 'EntityUriLink';
42
40
  export default EntityUriLink;
@@ -1,15 +1,8 @@
1
+ /// <reference types="react" />
2
+ import { ChipProps } from '@mui/material/Chip';
3
+ type Props = Omit<ChipProps, 'label'> & {
4
+ label: string;
5
+ count?: string;
6
+ };
7
+ declare const ValueChip: ({ classes: classesProp, label, count, ...otherProp }: Props) => JSX.Element;
1
8
  export default ValueChip;
2
- declare function ValueChip({ classes: classesProp, label, count, ...otherProp }: {
3
- [x: string]: any;
4
- classes?: {};
5
- label: any;
6
- count: any;
7
- }): JSX.Element;
8
- declare namespace ValueChip {
9
- namespace propTypes {
10
- const classes: PropTypes.Requireable<object>;
11
- const label: PropTypes.Requireable<string>;
12
- const count: PropTypes.Requireable<string>;
13
- }
14
- }
15
- import PropTypes from 'prop-types';
@@ -21,11 +21,10 @@ var __rest = (this && this.__rest) || function (s, e) {
21
21
  return t;
22
22
  };
23
23
  import React from 'react';
24
- import PropTypes from 'prop-types';
25
24
  import Chip from '@mui/material/Chip';
26
- import { useStyles, useChipStyles } from './styles';
27
25
  import { mergeClasses } from '../../core/utils';
28
26
  import ExpandedValueTooltip from '../ExpandedValueTooltip/ExpandedValueTooltip';
27
+ import { useStyles, useChipStyles } from './styles';
29
28
  var ValueChip = function (_a) {
30
29
  var _b = _a.classes, classesProp = _b === void 0 ? {} : _b, label = _a.label, count = _a.count, otherProp = __rest(_a, ["classes", "label", "count"]);
31
30
  var classes = useChipStyles();
@@ -35,9 +34,4 @@ var ValueChip = function (_a) {
35
34
  React.createElement("div", { className: styles.label }, label)),
36
35
  count && React.createElement("div", { className: styles.count }, count)) }, otherProp)));
37
36
  };
38
- ValueChip.propTypes = {
39
- classes: PropTypes.object,
40
- label: PropTypes.string,
41
- count: PropTypes.string
42
- };
43
37
  export default ValueChip;
@@ -1,2 +1,2 @@
1
- export const useChipStyles: (props?: any) => import("@mui/styles").ClassNameMap<"label" | "root" | "deleteIcon">;
2
- export const useStyles: (props?: any) => import("@mui/styles").ClassNameMap<"label" | "count" | "container">;
1
+ export declare const useChipStyles: (props?: any) => import("@mui/styles").ClassNameMap<"label" | "root" | "deleteIcon">;
2
+ export declare const useStyles: (props?: any) => import("@mui/styles").ClassNameMap<"label" | "count" | "container">;
@@ -18,7 +18,7 @@ declare const _default: React.MemoExoticComponent<{
18
18
  }>>;
19
19
  showEmptyEditors: import("prop-types").Requireable<boolean>;
20
20
  lazy: import("prop-types").Requireable<boolean>;
21
- mode: import("prop-types").Requireable<any>;
21
+ mode: import("prop-types").Requireable<import("@reltio/mdm-sdk").Mode>;
22
22
  metadata: import("prop-types").Requireable<import("prop-types").InferProps<{
23
23
  uri: import("prop-types").Requireable<string>;
24
24
  description: import("prop-types").Requireable<string>;