@reltio/components 1.4.2149 → 1.4.2151
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.
- package/AttributesFiltersBuilder/AttributesFiltersBuilder.js +5 -4
- package/AttributesFiltersBuilder/AttributesFiltersBuilder.module.css.js +9 -0
- package/AttributesFiltersBuilder/AttributesFiltersBuilder.test.js +20 -13
- package/AttributesFiltersBuilder/components/RowActions/RowActions.js +3 -3
- package/QueryBuilderRow/QueryBuilderRow.d.ts +1 -0
- package/QueryBuilderRow/QueryBuilderRow.js +4 -3
- package/QueryBuilderRow/QueryBuilderRow.module.css.js +9 -0
- package/cjs/AttributesFiltersBuilder/AttributesFiltersBuilder.js +10 -6
- package/cjs/AttributesFiltersBuilder/AttributesFiltersBuilder.module.css.js +9 -0
- package/cjs/AttributesFiltersBuilder/AttributesFiltersBuilder.test.js +20 -13
- package/cjs/AttributesFiltersBuilder/components/RowActions/RowActions.js +3 -3
- package/cjs/QueryBuilderRow/QueryBuilderRow.d.ts +1 -0
- package/cjs/QueryBuilderRow/QueryBuilderRow.js +8 -7
- package/cjs/QueryBuilderRow/QueryBuilderRow.module.css.js +9 -0
- package/cjs/icons/Duplicate.js +2 -8
- package/icons/Duplicate.js +2 -8
- package/package.json +2 -2
- package/AttributesFiltersBuilder/styles.d.ts +0 -1
- package/AttributesFiltersBuilder/styles.js +0 -18
- package/QueryBuilderRow/styles.d.ts +0 -1
- package/QueryBuilderRow/styles.js +0 -19
- package/cjs/AttributesFiltersBuilder/styles.d.ts +0 -1
- package/cjs/AttributesFiltersBuilder/styles.js +0 -21
- package/cjs/QueryBuilderRow/styles.d.ts +0 -1
- package/cjs/QueryBuilderRow/styles.js +0 -22
|
@@ -31,22 +31,23 @@ import { useMdmMetadata } from '../contexts/MdmModuleContext';
|
|
|
31
31
|
import { AttributeSelector } from './components/AttributeSelector';
|
|
32
32
|
import { useFilterAutoFocus } from '../hooks/useFilterAutoFocus';
|
|
33
33
|
import { AttributesValuesEditor } from '../AttributesValuesEditor';
|
|
34
|
-
import
|
|
34
|
+
import styles from './AttributesFiltersBuilder.module.css';
|
|
35
35
|
var EMPTY_FILTER = { fieldName: null, filter: null, operator: SearchOperator.and, values: [] };
|
|
36
36
|
var AttributesFiltersBuilder = function (_a) {
|
|
37
37
|
var _b = _a.classes, classes = _b === void 0 ? {} : _b, attributesTypesGroups = _a.attributesTypesGroups, attributesTypesGroupFilter = _a.attributesTypesGroupFilter, filters = _a.filters, onChange = _a.onChange, _c = _a.components, components = _c === void 0 ? {} : _c, onFilterAttributeChange = _a.onFilterAttributeChange;
|
|
38
38
|
var _d = components, CustomValuesEditor = _d.ValuesEditor, CustomFilterSelector = _d.FilterSelector, _e = _d.LogicalOperator, LogicalOperator = _e === void 0 ? EmptyStub : _e;
|
|
39
|
-
var styles = useStyles();
|
|
40
39
|
var actualFilters = useRef(filters);
|
|
41
40
|
var attributesCountRef = useRef(null);
|
|
42
41
|
var metadata = useMdmMetadata();
|
|
43
42
|
actualFilters.current = filters;
|
|
44
43
|
var rowClasses = useMemo(function () { return ({
|
|
44
|
+
root: styles.root,
|
|
45
45
|
attributeSelectorContainer: classes.attributeSelectorContainer || styles.attrSelector,
|
|
46
46
|
valuesEditorContainer: classes.valuesEditorContainer || '',
|
|
47
47
|
filterSelectorContainer: styles.filterSelector,
|
|
48
|
-
actionsContainer: styles.actionContainer
|
|
49
|
-
|
|
48
|
+
actionsContainer: styles.actionContainer,
|
|
49
|
+
rowActions: styles.rowActions
|
|
50
|
+
}); }, [classes]);
|
|
50
51
|
var currentEntityType = useMemo(function () {
|
|
51
52
|
var entityTypesUris = attributesTypesGroups.map(function (_a) {
|
|
52
53
|
var attributeTypes = _a.attributeTypes;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
const styles = {"root":"AttributesFiltersBuilder-root--u1-JO","rowActions":"AttributesFiltersBuilder-rowActions---qhXB","attrSelector":"AttributesFiltersBuilder-attrSelector--QhzaV","filterSelector":"AttributesFiltersBuilder-filterSelector--vLHRP","actionContainer":"AttributesFiltersBuilder-actionContainer--mEAev"};
|
|
2
|
+
if (typeof document !== 'undefined') {
|
|
3
|
+
const head = document.head || document.getElementsByTagName('head')[0]
|
|
4
|
+
const style = document.createElement('style');
|
|
5
|
+
style.type = 'text/css'
|
|
6
|
+
style.innerHTML = `.AttributesFiltersBuilder-root--u1-JO:hover .AttributesFiltersBuilder-rowActions---qhXB{opacity:1;visibility:visible}.AttributesFiltersBuilder-attrSelector--QhzaV{flex-shrink:0;height:40px;width:222px}.AttributesFiltersBuilder-filterSelector--vLHRP{flex-shrink:0;margin-bottom:0;margin-top:0;width:180px}.AttributesFiltersBuilder-actionContainer--mEAev{align-items:center;margin-right:15px}.AttributesFiltersBuilder-rowActions---qhXB{opacity:0;transition:opacity .3s,visibility .3s;visibility:hidden}`;
|
|
7
|
+
head.appendChild(style);
|
|
8
|
+
}
|
|
9
|
+
export default styles;
|
|
@@ -100,7 +100,7 @@ describe('Attributes filters builder tests', function () {
|
|
|
100
100
|
return __assign({ user: user }, render(React.createElement(AttributesFiltersBuilder, __assign({}, defaultProps, props)), { wrapper: Providers }));
|
|
101
101
|
};
|
|
102
102
|
it('should render default state correctly', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
103
|
-
var user;
|
|
103
|
+
var user, actionButtons, attributeSelector;
|
|
104
104
|
return __generator(this, function (_a) {
|
|
105
105
|
switch (_a.label) {
|
|
106
106
|
case 0:
|
|
@@ -108,10 +108,13 @@ describe('Attributes filters builder tests', function () {
|
|
|
108
108
|
expect(screen.getByText('Select attribute')).toBeInTheDocument();
|
|
109
109
|
expect(screen.getByText('Equals')).toBeInTheDocument();
|
|
110
110
|
expect(screen.getByRole('combobox')).toBeDisabled();
|
|
111
|
-
|
|
112
|
-
expect(
|
|
113
|
-
expect(
|
|
114
|
-
|
|
111
|
+
actionButtons = screen.getAllByTestId('query-builder-row-actions');
|
|
112
|
+
expect(actionButtons).toHaveLength(1);
|
|
113
|
+
expect(within(actionButtons[0]).getByTestId('query-builder-row-actions-add')).toBeInTheDocument();
|
|
114
|
+
expect(within(actionButtons[0]).queryByTestId('query-builder-row-actions-duplicate')).not.toBeInTheDocument();
|
|
115
|
+
expect(within(actionButtons[0]).getByTestId('query-builder-row-actions-delete')).toBeInTheDocument();
|
|
116
|
+
attributeSelector = screen.getByTestId('attribute-selector');
|
|
117
|
+
return [4 /*yield*/, user.click(within(attributeSelector).getByRole('button'))];
|
|
115
118
|
case 1:
|
|
116
119
|
_a.sent();
|
|
117
120
|
expect(screen.getByRole('presentation')).toBeInTheDocument();
|
|
@@ -142,7 +145,7 @@ describe('Attributes filters builder tests', function () {
|
|
|
142
145
|
});
|
|
143
146
|
}); });
|
|
144
147
|
it('should render attribute groups correctly', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
145
|
-
var expectedAttributes, user, items;
|
|
148
|
+
var expectedAttributes, user, attributeSelector, items;
|
|
146
149
|
return __generator(this, function (_a) {
|
|
147
150
|
switch (_a.label) {
|
|
148
151
|
case 0:
|
|
@@ -160,7 +163,8 @@ describe('Attributes filters builder tests', function () {
|
|
|
160
163
|
'Affiliated Type'
|
|
161
164
|
];
|
|
162
165
|
user = setUp({ filters: [] }).user;
|
|
163
|
-
|
|
166
|
+
attributeSelector = screen.getByTestId('attribute-selector');
|
|
167
|
+
return [4 /*yield*/, user.click(within(attributeSelector).getByRole('button'))];
|
|
164
168
|
case 1:
|
|
165
169
|
_a.sent();
|
|
166
170
|
items = screen.getAllByRole('menuitem');
|
|
@@ -215,12 +219,13 @@ describe('Attributes filters builder tests', function () {
|
|
|
215
219
|
});
|
|
216
220
|
}); });
|
|
217
221
|
it('should call onChange with correct fieldName for simple attributes', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
218
|
-
var user;
|
|
222
|
+
var user, attributeSelector;
|
|
219
223
|
return __generator(this, function (_a) {
|
|
220
224
|
switch (_a.label) {
|
|
221
225
|
case 0:
|
|
222
226
|
user = setUp({ filters: [] }).user;
|
|
223
|
-
|
|
227
|
+
attributeSelector = screen.getByTestId('attribute-selector');
|
|
228
|
+
return [4 /*yield*/, user.click(within(attributeSelector).getByRole('button'))];
|
|
224
229
|
case 1:
|
|
225
230
|
_a.sent();
|
|
226
231
|
return [4 /*yield*/, user.click(screen.getByRole('menuitem', { name: 'Int' }))];
|
|
@@ -256,12 +261,13 @@ describe('Attributes filters builder tests', function () {
|
|
|
256
261
|
});
|
|
257
262
|
}); });
|
|
258
263
|
it('should call onChange with correct fieldName for nested attributes', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
259
|
-
var user;
|
|
264
|
+
var user, attributeSelector;
|
|
260
265
|
return __generator(this, function (_a) {
|
|
261
266
|
switch (_a.label) {
|
|
262
267
|
case 0:
|
|
263
268
|
user = setUp({ filters: [] }).user;
|
|
264
|
-
|
|
269
|
+
attributeSelector = screen.getByTestId('attribute-selector');
|
|
270
|
+
return [4 /*yield*/, user.click(within(attributeSelector).getByRole('button'))];
|
|
265
271
|
case 1:
|
|
266
272
|
_a.sent();
|
|
267
273
|
return [4 /*yield*/, user.click(screen.getByRole('menuitem', { name: 'Date Level 2' }))];
|
|
@@ -275,12 +281,13 @@ describe('Attributes filters builder tests', function () {
|
|
|
275
281
|
});
|
|
276
282
|
}); });
|
|
277
283
|
it('should call onChange with correct fieldName for reference attributes', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
278
|
-
var user;
|
|
284
|
+
var user, attributeSelector;
|
|
279
285
|
return __generator(this, function (_a) {
|
|
280
286
|
switch (_a.label) {
|
|
281
287
|
case 0:
|
|
282
288
|
user = setUp({ filters: [] }).user;
|
|
283
|
-
|
|
289
|
+
attributeSelector = screen.getByTestId('attribute-selector');
|
|
290
|
+
return [4 /*yield*/, user.click(within(attributeSelector).getByRole('button'))];
|
|
284
291
|
case 1:
|
|
285
292
|
_a.sent();
|
|
286
293
|
return [4 /*yield*/, user.click(screen.getByRole('menuitem', { name: 'Affiliated Type' }))];
|
|
@@ -20,8 +20,8 @@ var RowActions = function (_a) {
|
|
|
20
20
|
removeRow(index);
|
|
21
21
|
}, [index, removeRow]);
|
|
22
22
|
return (React.createElement("div", { className: styles.actions },
|
|
23
|
-
React.createElement(SmallIconButtonWithTooltip, { tooltipTitle: i18n.text('Add'), icon: AddCircleIcon, size: "M", onClick: onAddRowAfterId }),
|
|
24
|
-
attribute && (React.createElement(SmallIconButtonWithTooltip, { tooltipTitle: i18n.text('Duplicate'), icon: DuplicateIcon, size: "M", onClick: onRowDuplicate })),
|
|
25
|
-
React.createElement(SmallIconButtonWithTooltip, { tooltipTitle: i18n.text('Delete'), icon: CloseIcon, size: "M", onClick: onRowDelete })));
|
|
23
|
+
React.createElement(SmallIconButtonWithTooltip, { "data-reltio-id": "query-builder-row-actions-add", tooltipTitle: i18n.text('Add'), icon: AddCircleIcon, size: "M", onClick: onAddRowAfterId }),
|
|
24
|
+
attribute && (React.createElement(SmallIconButtonWithTooltip, { "data-reltio-id": "query-builder-row-actions-duplicate", tooltipTitle: i18n.text('Duplicate'), icon: DuplicateIcon, size: "M", onClick: onRowDuplicate })),
|
|
25
|
+
React.createElement(SmallIconButtonWithTooltip, { "data-reltio-id": "query-builder-row-actions-delete", tooltipTitle: i18n.text('Delete'), icon: CloseIcon, size: "M", onClick: onRowDelete })));
|
|
26
26
|
};
|
|
27
27
|
export default memo(RowActions);
|
|
@@ -13,11 +13,10 @@ import React, { memo } from 'react';
|
|
|
13
13
|
import classnames from 'classnames';
|
|
14
14
|
import { ReadOnlyLogicOperator } from './components/ReadOnlyLogicOperator';
|
|
15
15
|
import { ReadOnlyFilter } from './components/ReadOnlyFilter';
|
|
16
|
-
import
|
|
16
|
+
import styles from './QueryBuilderRow.module.css';
|
|
17
17
|
var QueryBuilderRow = function (_a) {
|
|
18
18
|
var _b;
|
|
19
19
|
var _c = _a.classes, classes = _c === void 0 ? {} : _c, rowData = _a.rowData, previousRowData = _a.previousRowData, _d = _a.LogicOperatorComponent, LogicOperatorComponent = _d === void 0 ? ReadOnlyLogicOperator : _d, AttributeSelectorComponent = _a.AttributeSelectorComponent, _e = _a.FilterSelectorComponent, FilterSelectorComponent = _e === void 0 ? ReadOnlyFilter : _e, ValuesEditorComponent = _a.ValuesEditorComponent, ActionsComponent = _a.ActionsComponent, filterSelectorRef = _a.filterSelectorRef, _f = _a.attributeSelectorProps, attributeSelectorProps = _f === void 0 ? {} : _f, rowContext = __rest(_a, ["classes", "rowData", "previousRowData", "LogicOperatorComponent", "AttributeSelectorComponent", "FilterSelectorComponent", "ValuesEditorComponent", "ActionsComponent", "filterSelectorRef", "attributeSelectorProps"]);
|
|
20
|
-
var styles = useStyles();
|
|
21
20
|
return (React.createElement("div", { className: classnames(styles.row, classes.root), "data-reltio-id": "query-builder-row" },
|
|
22
21
|
React.createElement(LogicOperatorComponent, { className: classes.logicOperatorContainer, rowContext: rowContext, rowData: previousRowData }),
|
|
23
22
|
React.createElement("div", { className: classnames(styles.rowItem, classes.attributeSelectorContainer), "data-reltio-id": "query-builder-row-attribute-selector" },
|
|
@@ -26,7 +25,9 @@ var QueryBuilderRow = function (_a) {
|
|
|
26
25
|
React.createElement(FilterSelectorComponent, { textFieldInputRef: filterSelectorRef, rowContext: rowContext, rowData: rowData })),
|
|
27
26
|
React.createElement("div", { className: classnames(styles.rowItem, styles.fullWidth, classes.valuesEditorContainer), "data-reltio-id": "query-builder-row-values-editor" },
|
|
28
27
|
React.createElement(ValuesEditorComponent, { rowContext: rowContext, rowData: rowData })),
|
|
29
|
-
React.createElement("div", { className: classnames(styles.rowItem, classes.actionsContainer, (_b = {},
|
|
28
|
+
React.createElement("div", { className: classnames(styles.rowItem, classes.actionsContainer, classes.rowActions, (_b = {},
|
|
29
|
+
_b[styles.hidden] = !rowData,
|
|
30
|
+
_b)), "data-reltio-id": "query-builder-row-actions" },
|
|
30
31
|
React.createElement(ActionsComponent, { rowContext: rowContext, rowData: rowData }))));
|
|
31
32
|
};
|
|
32
33
|
export default memo(QueryBuilderRow);
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
const styles = {"row":"QueryBuilderRow-row--lJJMo","rowItem":"QueryBuilderRow-rowItem--SVEaJ","fullWidth":"QueryBuilderRow-fullWidth--p9CT8","hidden":"QueryBuilderRow-hidden--MDfe-"};
|
|
2
|
+
if (typeof document !== 'undefined') {
|
|
3
|
+
const head = document.head || document.getElementsByTagName('head')[0]
|
|
4
|
+
const style = document.createElement('style');
|
|
5
|
+
style.type = 'text/css'
|
|
6
|
+
style.innerHTML = `.QueryBuilderRow-row--lJJMo{display:flex;margin-bottom:12px}.QueryBuilderRow-rowItem--SVEaJ{display:flex;padding-right:10px}.QueryBuilderRow-fullWidth--p9CT8{flex-basis:0;flex-grow:1;overflow:hidden}.QueryBuilderRow-hidden--MDfe-{visibility:hidden!important}`;
|
|
7
|
+
head.appendChild(style);
|
|
8
|
+
}
|
|
9
|
+
export default styles;
|
|
@@ -42,6 +42,9 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
|
42
42
|
}
|
|
43
43
|
return to.concat(ar || Array.prototype.slice.call(from));
|
|
44
44
|
};
|
|
45
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
46
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
47
|
+
};
|
|
45
48
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
46
49
|
var react_1 = __importStar(require("react"));
|
|
47
50
|
var ramda_1 = require("ramda");
|
|
@@ -56,22 +59,23 @@ var MdmModuleContext_1 = require("../contexts/MdmModuleContext");
|
|
|
56
59
|
var AttributeSelector_1 = require("./components/AttributeSelector");
|
|
57
60
|
var useFilterAutoFocus_1 = require("../hooks/useFilterAutoFocus");
|
|
58
61
|
var AttributesValuesEditor_1 = require("../AttributesValuesEditor");
|
|
59
|
-
var
|
|
62
|
+
var AttributesFiltersBuilder_module_css_1 = __importDefault(require("./AttributesFiltersBuilder.module.css"));
|
|
60
63
|
var EMPTY_FILTER = { fieldName: null, filter: null, operator: mdm_sdk_1.SearchOperator.and, values: [] };
|
|
61
64
|
var AttributesFiltersBuilder = function (_a) {
|
|
62
65
|
var _b = _a.classes, classes = _b === void 0 ? {} : _b, attributesTypesGroups = _a.attributesTypesGroups, attributesTypesGroupFilter = _a.attributesTypesGroupFilter, filters = _a.filters, onChange = _a.onChange, _c = _a.components, components = _c === void 0 ? {} : _c, onFilterAttributeChange = _a.onFilterAttributeChange;
|
|
63
66
|
var _d = components, CustomValuesEditor = _d.ValuesEditor, CustomFilterSelector = _d.FilterSelector, _e = _d.LogicalOperator, LogicalOperator = _e === void 0 ? EmptyStub_1.EmptyStub : _e;
|
|
64
|
-
var styles = (0, styles_1.useStyles)();
|
|
65
67
|
var actualFilters = (0, react_1.useRef)(filters);
|
|
66
68
|
var attributesCountRef = (0, react_1.useRef)(null);
|
|
67
69
|
var metadata = (0, MdmModuleContext_1.useMdmMetadata)();
|
|
68
70
|
actualFilters.current = filters;
|
|
69
71
|
var rowClasses = (0, react_1.useMemo)(function () { return ({
|
|
70
|
-
|
|
72
|
+
root: AttributesFiltersBuilder_module_css_1.default.root,
|
|
73
|
+
attributeSelectorContainer: classes.attributeSelectorContainer || AttributesFiltersBuilder_module_css_1.default.attrSelector,
|
|
71
74
|
valuesEditorContainer: classes.valuesEditorContainer || '',
|
|
72
|
-
filterSelectorContainer:
|
|
73
|
-
actionsContainer:
|
|
74
|
-
|
|
75
|
+
filterSelectorContainer: AttributesFiltersBuilder_module_css_1.default.filterSelector,
|
|
76
|
+
actionsContainer: AttributesFiltersBuilder_module_css_1.default.actionContainer,
|
|
77
|
+
rowActions: AttributesFiltersBuilder_module_css_1.default.rowActions
|
|
78
|
+
}); }, [classes]);
|
|
75
79
|
var currentEntityType = (0, react_1.useMemo)(function () {
|
|
76
80
|
var entityTypesUris = attributesTypesGroups.map(function (_a) {
|
|
77
81
|
var attributeTypes = _a.attributeTypes;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
const styles = {"root":"AttributesFiltersBuilder-root--u1-JO","rowActions":"AttributesFiltersBuilder-rowActions---qhXB","attrSelector":"AttributesFiltersBuilder-attrSelector--QhzaV","filterSelector":"AttributesFiltersBuilder-filterSelector--vLHRP","actionContainer":"AttributesFiltersBuilder-actionContainer--mEAev"};
|
|
2
|
+
if (typeof document !== 'undefined') {
|
|
3
|
+
const head = document.head || document.getElementsByTagName('head')[0]
|
|
4
|
+
const style = document.createElement('style');
|
|
5
|
+
style.type = 'text/css'
|
|
6
|
+
style.innerHTML = `.AttributesFiltersBuilder-root--u1-JO:hover .AttributesFiltersBuilder-rowActions---qhXB{opacity:1;visibility:visible}.AttributesFiltersBuilder-attrSelector--QhzaV{flex-shrink:0;height:40px;width:222px}.AttributesFiltersBuilder-filterSelector--vLHRP{flex-shrink:0;margin-bottom:0;margin-top:0;width:180px}.AttributesFiltersBuilder-actionContainer--mEAev{align-items:center;margin-right:15px}.AttributesFiltersBuilder-rowActions---qhXB{opacity:0;transition:opacity .3s,visibility .3s;visibility:hidden}`;
|
|
7
|
+
head.appendChild(style);
|
|
8
|
+
}
|
|
9
|
+
module.exports = styles;
|
|
@@ -105,7 +105,7 @@ describe('Attributes filters builder tests', function () {
|
|
|
105
105
|
return __assign({ user: user }, (0, react_2.render)(react_1.default.createElement(AttributesFiltersBuilder_1.AttributesFiltersBuilder, __assign({}, defaultProps, props)), { wrapper: Providers }));
|
|
106
106
|
};
|
|
107
107
|
it('should render default state correctly', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
108
|
-
var user;
|
|
108
|
+
var user, actionButtons, attributeSelector;
|
|
109
109
|
return __generator(this, function (_a) {
|
|
110
110
|
switch (_a.label) {
|
|
111
111
|
case 0:
|
|
@@ -113,10 +113,13 @@ describe('Attributes filters builder tests', function () {
|
|
|
113
113
|
expect(react_2.screen.getByText('Select attribute')).toBeInTheDocument();
|
|
114
114
|
expect(react_2.screen.getByText('Equals')).toBeInTheDocument();
|
|
115
115
|
expect(react_2.screen.getByRole('combobox')).toBeDisabled();
|
|
116
|
-
|
|
117
|
-
expect(
|
|
118
|
-
expect(react_2.
|
|
119
|
-
|
|
116
|
+
actionButtons = react_2.screen.getAllByTestId('query-builder-row-actions');
|
|
117
|
+
expect(actionButtons).toHaveLength(1);
|
|
118
|
+
expect((0, react_2.within)(actionButtons[0]).getByTestId('query-builder-row-actions-add')).toBeInTheDocument();
|
|
119
|
+
expect((0, react_2.within)(actionButtons[0]).queryByTestId('query-builder-row-actions-duplicate')).not.toBeInTheDocument();
|
|
120
|
+
expect((0, react_2.within)(actionButtons[0]).getByTestId('query-builder-row-actions-delete')).toBeInTheDocument();
|
|
121
|
+
attributeSelector = react_2.screen.getByTestId('attribute-selector');
|
|
122
|
+
return [4 /*yield*/, user.click((0, react_2.within)(attributeSelector).getByRole('button'))];
|
|
120
123
|
case 1:
|
|
121
124
|
_a.sent();
|
|
122
125
|
expect(react_2.screen.getByRole('presentation')).toBeInTheDocument();
|
|
@@ -147,7 +150,7 @@ describe('Attributes filters builder tests', function () {
|
|
|
147
150
|
});
|
|
148
151
|
}); });
|
|
149
152
|
it('should render attribute groups correctly', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
150
|
-
var expectedAttributes, user, items;
|
|
153
|
+
var expectedAttributes, user, attributeSelector, items;
|
|
151
154
|
return __generator(this, function (_a) {
|
|
152
155
|
switch (_a.label) {
|
|
153
156
|
case 0:
|
|
@@ -165,7 +168,8 @@ describe('Attributes filters builder tests', function () {
|
|
|
165
168
|
'Affiliated Type'
|
|
166
169
|
];
|
|
167
170
|
user = setUp({ filters: [] }).user;
|
|
168
|
-
|
|
171
|
+
attributeSelector = react_2.screen.getByTestId('attribute-selector');
|
|
172
|
+
return [4 /*yield*/, user.click((0, react_2.within)(attributeSelector).getByRole('button'))];
|
|
169
173
|
case 1:
|
|
170
174
|
_a.sent();
|
|
171
175
|
items = react_2.screen.getAllByRole('menuitem');
|
|
@@ -220,12 +224,13 @@ describe('Attributes filters builder tests', function () {
|
|
|
220
224
|
});
|
|
221
225
|
}); });
|
|
222
226
|
it('should call onChange with correct fieldName for simple attributes', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
223
|
-
var user;
|
|
227
|
+
var user, attributeSelector;
|
|
224
228
|
return __generator(this, function (_a) {
|
|
225
229
|
switch (_a.label) {
|
|
226
230
|
case 0:
|
|
227
231
|
user = setUp({ filters: [] }).user;
|
|
228
|
-
|
|
232
|
+
attributeSelector = react_2.screen.getByTestId('attribute-selector');
|
|
233
|
+
return [4 /*yield*/, user.click((0, react_2.within)(attributeSelector).getByRole('button'))];
|
|
229
234
|
case 1:
|
|
230
235
|
_a.sent();
|
|
231
236
|
return [4 /*yield*/, user.click(react_2.screen.getByRole('menuitem', { name: 'Int' }))];
|
|
@@ -261,12 +266,13 @@ describe('Attributes filters builder tests', function () {
|
|
|
261
266
|
});
|
|
262
267
|
}); });
|
|
263
268
|
it('should call onChange with correct fieldName for nested attributes', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
264
|
-
var user;
|
|
269
|
+
var user, attributeSelector;
|
|
265
270
|
return __generator(this, function (_a) {
|
|
266
271
|
switch (_a.label) {
|
|
267
272
|
case 0:
|
|
268
273
|
user = setUp({ filters: [] }).user;
|
|
269
|
-
|
|
274
|
+
attributeSelector = react_2.screen.getByTestId('attribute-selector');
|
|
275
|
+
return [4 /*yield*/, user.click((0, react_2.within)(attributeSelector).getByRole('button'))];
|
|
270
276
|
case 1:
|
|
271
277
|
_a.sent();
|
|
272
278
|
return [4 /*yield*/, user.click(react_2.screen.getByRole('menuitem', { name: 'Date Level 2' }))];
|
|
@@ -280,12 +286,13 @@ describe('Attributes filters builder tests', function () {
|
|
|
280
286
|
});
|
|
281
287
|
}); });
|
|
282
288
|
it('should call onChange with correct fieldName for reference attributes', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
283
|
-
var user;
|
|
289
|
+
var user, attributeSelector;
|
|
284
290
|
return __generator(this, function (_a) {
|
|
285
291
|
switch (_a.label) {
|
|
286
292
|
case 0:
|
|
287
293
|
user = setUp({ filters: [] }).user;
|
|
288
|
-
|
|
294
|
+
attributeSelector = react_2.screen.getByTestId('attribute-selector');
|
|
295
|
+
return [4 /*yield*/, user.click((0, react_2.within)(attributeSelector).getByRole('button'))];
|
|
289
296
|
case 1:
|
|
290
297
|
_a.sent();
|
|
291
298
|
return [4 /*yield*/, user.click(react_2.screen.getByRole('menuitem', { name: 'Affiliated Type' }))];
|
|
@@ -48,8 +48,8 @@ var RowActions = function (_a) {
|
|
|
48
48
|
removeRow(index);
|
|
49
49
|
}, [index, removeRow]);
|
|
50
50
|
return (react_1.default.createElement("div", { className: styles.actions },
|
|
51
|
-
react_1.default.createElement(index_1.SmallIconButtonWithTooltip, { tooltipTitle: ui_i18n_1.default.text('Add'), icon: AddCircle_1.default, size: "M", onClick: onAddRowAfterId }),
|
|
52
|
-
attribute && (react_1.default.createElement(index_1.SmallIconButtonWithTooltip, { tooltipTitle: ui_i18n_1.default.text('Duplicate'), icon: Duplicate_1.default, size: "M", onClick: onRowDuplicate })),
|
|
53
|
-
react_1.default.createElement(index_1.SmallIconButtonWithTooltip, { tooltipTitle: ui_i18n_1.default.text('Delete'), icon: Close_1.default, size: "M", onClick: onRowDelete })));
|
|
51
|
+
react_1.default.createElement(index_1.SmallIconButtonWithTooltip, { "data-reltio-id": "query-builder-row-actions-add", tooltipTitle: ui_i18n_1.default.text('Add'), icon: AddCircle_1.default, size: "M", onClick: onAddRowAfterId }),
|
|
52
|
+
attribute && (react_1.default.createElement(index_1.SmallIconButtonWithTooltip, { "data-reltio-id": "query-builder-row-actions-duplicate", tooltipTitle: ui_i18n_1.default.text('Duplicate'), icon: Duplicate_1.default, size: "M", onClick: onRowDuplicate })),
|
|
53
|
+
react_1.default.createElement(index_1.SmallIconButtonWithTooltip, { "data-reltio-id": "query-builder-row-actions-delete", tooltipTitle: ui_i18n_1.default.text('Delete'), icon: Close_1.default, size: "M", onClick: onRowDelete })));
|
|
54
54
|
};
|
|
55
55
|
exports.default = (0, react_1.memo)(RowActions);
|
|
@@ -41,20 +41,21 @@ var react_1 = __importStar(require("react"));
|
|
|
41
41
|
var classnames_1 = __importDefault(require("classnames"));
|
|
42
42
|
var ReadOnlyLogicOperator_1 = require("./components/ReadOnlyLogicOperator");
|
|
43
43
|
var ReadOnlyFilter_1 = require("./components/ReadOnlyFilter");
|
|
44
|
-
var
|
|
44
|
+
var QueryBuilderRow_module_css_1 = __importDefault(require("./QueryBuilderRow.module.css"));
|
|
45
45
|
var QueryBuilderRow = function (_a) {
|
|
46
46
|
var _b;
|
|
47
47
|
var _c = _a.classes, classes = _c === void 0 ? {} : _c, rowData = _a.rowData, previousRowData = _a.previousRowData, _d = _a.LogicOperatorComponent, LogicOperatorComponent = _d === void 0 ? ReadOnlyLogicOperator_1.ReadOnlyLogicOperator : _d, AttributeSelectorComponent = _a.AttributeSelectorComponent, _e = _a.FilterSelectorComponent, FilterSelectorComponent = _e === void 0 ? ReadOnlyFilter_1.ReadOnlyFilter : _e, ValuesEditorComponent = _a.ValuesEditorComponent, ActionsComponent = _a.ActionsComponent, filterSelectorRef = _a.filterSelectorRef, _f = _a.attributeSelectorProps, attributeSelectorProps = _f === void 0 ? {} : _f, rowContext = __rest(_a, ["classes", "rowData", "previousRowData", "LogicOperatorComponent", "AttributeSelectorComponent", "FilterSelectorComponent", "ValuesEditorComponent", "ActionsComponent", "filterSelectorRef", "attributeSelectorProps"]);
|
|
48
|
-
|
|
49
|
-
return (react_1.default.createElement("div", { className: (0, classnames_1.default)(styles.row, classes.root), "data-reltio-id": "query-builder-row" },
|
|
48
|
+
return (react_1.default.createElement("div", { className: (0, classnames_1.default)(QueryBuilderRow_module_css_1.default.row, classes.root), "data-reltio-id": "query-builder-row" },
|
|
50
49
|
react_1.default.createElement(LogicOperatorComponent, { className: classes.logicOperatorContainer, rowContext: rowContext, rowData: previousRowData }),
|
|
51
|
-
react_1.default.createElement("div", { className: (0, classnames_1.default)(
|
|
50
|
+
react_1.default.createElement("div", { className: (0, classnames_1.default)(QueryBuilderRow_module_css_1.default.rowItem, classes.attributeSelectorContainer), "data-reltio-id": "query-builder-row-attribute-selector" },
|
|
52
51
|
react_1.default.createElement(AttributeSelectorComponent, { attributeSelectorProps: attributeSelectorProps, rowContext: rowContext, rowData: rowData })),
|
|
53
|
-
react_1.default.createElement("div", { className: (0, classnames_1.default)(
|
|
52
|
+
react_1.default.createElement("div", { className: (0, classnames_1.default)(QueryBuilderRow_module_css_1.default.rowItem, classes.filterSelectorContainer), "data-reltio-id": "query-builder-row-filter-selector" },
|
|
54
53
|
react_1.default.createElement(FilterSelectorComponent, { textFieldInputRef: filterSelectorRef, rowContext: rowContext, rowData: rowData })),
|
|
55
|
-
react_1.default.createElement("div", { className: (0, classnames_1.default)(
|
|
54
|
+
react_1.default.createElement("div", { className: (0, classnames_1.default)(QueryBuilderRow_module_css_1.default.rowItem, QueryBuilderRow_module_css_1.default.fullWidth, classes.valuesEditorContainer), "data-reltio-id": "query-builder-row-values-editor" },
|
|
56
55
|
react_1.default.createElement(ValuesEditorComponent, { rowContext: rowContext, rowData: rowData })),
|
|
57
|
-
react_1.default.createElement("div", { className: (0, classnames_1.default)(
|
|
56
|
+
react_1.default.createElement("div", { className: (0, classnames_1.default)(QueryBuilderRow_module_css_1.default.rowItem, classes.actionsContainer, classes.rowActions, (_b = {},
|
|
57
|
+
_b[QueryBuilderRow_module_css_1.default.hidden] = !rowData,
|
|
58
|
+
_b)), "data-reltio-id": "query-builder-row-actions" },
|
|
58
59
|
react_1.default.createElement(ActionsComponent, { rowContext: rowContext, rowData: rowData }))));
|
|
59
60
|
};
|
|
60
61
|
exports.default = (0, react_1.memo)(QueryBuilderRow);
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
const styles = {"row":"QueryBuilderRow-row--lJJMo","rowItem":"QueryBuilderRow-rowItem--SVEaJ","fullWidth":"QueryBuilderRow-fullWidth--p9CT8","hidden":"QueryBuilderRow-hidden--MDfe-"};
|
|
2
|
+
if (typeof document !== 'undefined') {
|
|
3
|
+
const head = document.head || document.getElementsByTagName('head')[0]
|
|
4
|
+
const style = document.createElement('style');
|
|
5
|
+
style.type = 'text/css'
|
|
6
|
+
style.innerHTML = `.QueryBuilderRow-row--lJJMo{display:flex;margin-bottom:12px}.QueryBuilderRow-rowItem--SVEaJ{display:flex;padding-right:10px}.QueryBuilderRow-fullWidth--p9CT8{flex-basis:0;flex-grow:1;overflow:hidden}.QueryBuilderRow-hidden--MDfe-{visibility:hidden!important}`;
|
|
7
|
+
head.appendChild(style);
|
|
8
|
+
}
|
|
9
|
+
module.exports = styles;
|
package/cjs/icons/Duplicate.js
CHANGED
|
@@ -16,13 +16,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
var react_1 = __importDefault(require("react"));
|
|
18
18
|
var SvgDuplicate = function (props) {
|
|
19
|
-
return (react_1.default.createElement("svg", __assign({ width: 20, height: 20, viewBox: "0 0 20 20", xmlns: "http://www.w3.org/2000/svg",
|
|
20
|
-
react_1.default.createElement("
|
|
21
|
-
react_1.default.createElement("path", { d: "M20.222 6C21.21 6 22 6.8 22 7.778v12.444C22 21.2 21.209 22 20.222 22H7.778C6.79 22 6 21.2 6 20.222V7.778C6 6.8 6.791 6 7.778 6h12.444zM8 8v12h12V8H8zM4 18H2V4c0-1.1.9-2 2-2h14v2H4v14z", id: "Duplicate_svg__a" })),
|
|
22
|
-
react_1.default.createElement("g", { transform: "translate(-2 -2)", stroke: "none", strokeWidth: 1, fill: "none", fillRule: "evenodd" },
|
|
23
|
-
react_1.default.createElement("mask", { id: "Duplicate_svg__b", fill: "#fff" },
|
|
24
|
-
react_1.default.createElement("use", { xlinkHref: "#Duplicate_svg__a" })),
|
|
25
|
-
react_1.default.createElement("g", { mask: "url(#Duplicate_svg__b)", fill: "#000", fillOpacity: 0.54 },
|
|
26
|
-
react_1.default.createElement("path", { d: "M0 0h24v24H0z" })))));
|
|
19
|
+
return (react_1.default.createElement("svg", __assign({ width: 20, height: 20, viewBox: "0 0 20 20", xmlns: "http://www.w3.org/2000/svg", focusable: "false", "data-reltio-id": "SvgDuplicate" }, props),
|
|
20
|
+
react_1.default.createElement("path", { d: "M18.222 4C19.21 4 20 4.8 20 5.778v12.444C20 19.2 19.209 20 18.222 20H5.778C4.79 20 4 19.2 4 18.222V5.778C4 4.8 4.791 4 5.778 4h12.444zM6 6v12h12V6H6zM2 16H0V2C0 .9.9 0 2 0h14v2H2v14z", fill: "#000", fillOpacity: 0.54, fillRule: "nonzero", stroke: "none", strokeWidth: 1 })));
|
|
27
21
|
};
|
|
28
22
|
exports.default = SvgDuplicate;
|
package/icons/Duplicate.js
CHANGED
|
@@ -11,13 +11,7 @@ var __assign = (this && this.__assign) || function () {
|
|
|
11
11
|
};
|
|
12
12
|
import React from 'react';
|
|
13
13
|
var SvgDuplicate = function (props) {
|
|
14
|
-
return (React.createElement("svg", __assign({ width: 20, height: 20, viewBox: "0 0 20 20", xmlns: "http://www.w3.org/2000/svg",
|
|
15
|
-
React.createElement("
|
|
16
|
-
React.createElement("path", { d: "M20.222 6C21.21 6 22 6.8 22 7.778v12.444C22 21.2 21.209 22 20.222 22H7.778C6.79 22 6 21.2 6 20.222V7.778C6 6.8 6.791 6 7.778 6h12.444zM8 8v12h12V8H8zM4 18H2V4c0-1.1.9-2 2-2h14v2H4v14z", id: "Duplicate_svg__a" })),
|
|
17
|
-
React.createElement("g", { transform: "translate(-2 -2)", stroke: "none", strokeWidth: 1, fill: "none", fillRule: "evenodd" },
|
|
18
|
-
React.createElement("mask", { id: "Duplicate_svg__b", fill: "#fff" },
|
|
19
|
-
React.createElement("use", { xlinkHref: "#Duplicate_svg__a" })),
|
|
20
|
-
React.createElement("g", { mask: "url(#Duplicate_svg__b)", fill: "#000", fillOpacity: 0.54 },
|
|
21
|
-
React.createElement("path", { d: "M0 0h24v24H0z" })))));
|
|
14
|
+
return (React.createElement("svg", __assign({ width: 20, height: 20, viewBox: "0 0 20 20", xmlns: "http://www.w3.org/2000/svg", focusable: "false", "data-reltio-id": "SvgDuplicate" }, props),
|
|
15
|
+
React.createElement("path", { d: "M18.222 4C19.21 4 20 4.8 20 5.778v12.444C20 19.2 19.209 20 18.222 20H5.778C4.79 20 4 19.2 4 18.222V5.778C4 4.8 4.791 4 5.778 4h12.444zM6 6v12h12V6H6zM2 16H0V2C0 .9.9 0 2 0h14v2H2v14z", fill: "#000", fillOpacity: 0.54, fillRule: "nonzero", stroke: "none", strokeWidth: 1 })));
|
|
22
16
|
};
|
|
23
17
|
export default SvgDuplicate;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@reltio/components",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.2151",
|
|
4
4
|
"license": "SEE LICENSE IN LICENSE FILE",
|
|
5
5
|
"main": "./cjs/index.js",
|
|
6
6
|
"module": "./index.js",
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"@fluentui/react-context-selector": "^9.1.26",
|
|
12
12
|
"@googlemaps/markerclusterer": "^2.5.3",
|
|
13
13
|
"@react-sigma/core": "3.4.0",
|
|
14
|
-
"@reltio/mdm-sdk": "^1.4.
|
|
14
|
+
"@reltio/mdm-sdk": "^1.4.1973",
|
|
15
15
|
"@vis.gl/react-google-maps": "^1.3.0",
|
|
16
16
|
"d3-cloud": "^1.2.5",
|
|
17
17
|
"d3-geo": "^2.0.1",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const useStyles: (props?: any) => import("@mui/styles").ClassNameMap<"attrSelector" | "filterSelector" | "actionContainer">;
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { makeStyles } from '@mui/styles';
|
|
2
|
-
export var useStyles = makeStyles(function () { return ({
|
|
3
|
-
attrSelector: {
|
|
4
|
-
width: '222px',
|
|
5
|
-
height: '40px',
|
|
6
|
-
flexShrink: 0
|
|
7
|
-
},
|
|
8
|
-
filterSelector: {
|
|
9
|
-
width: '180px',
|
|
10
|
-
flexShrink: 0,
|
|
11
|
-
marginTop: 0,
|
|
12
|
-
marginBottom: 0
|
|
13
|
-
},
|
|
14
|
-
actionContainer: {
|
|
15
|
-
alignItems: 'center',
|
|
16
|
-
marginRight: '15px'
|
|
17
|
-
}
|
|
18
|
-
}); });
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const useStyles: (props?: any) => import("@mui/styles").ClassNameMap<"hidden" | "row" | "fullWidth" | "rowItem">;
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { makeStyles } from '@mui/styles';
|
|
2
|
-
export var useStyles = makeStyles(function () { return ({
|
|
3
|
-
row: {
|
|
4
|
-
display: 'flex',
|
|
5
|
-
marginBottom: '12px'
|
|
6
|
-
},
|
|
7
|
-
rowItem: {
|
|
8
|
-
paddingRight: '10px',
|
|
9
|
-
display: 'flex'
|
|
10
|
-
},
|
|
11
|
-
fullWidth: {
|
|
12
|
-
flexGrow: '1',
|
|
13
|
-
flexBasis: '0',
|
|
14
|
-
overflow: 'hidden'
|
|
15
|
-
},
|
|
16
|
-
hidden: {
|
|
17
|
-
visibility: 'hidden'
|
|
18
|
-
}
|
|
19
|
-
}); });
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const useStyles: (props?: any) => import("@mui/styles").ClassNameMap<"attrSelector" | "filterSelector" | "actionContainer">;
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.useStyles = void 0;
|
|
4
|
-
var styles_1 = require("@mui/styles");
|
|
5
|
-
exports.useStyles = (0, styles_1.makeStyles)(function () { return ({
|
|
6
|
-
attrSelector: {
|
|
7
|
-
width: '222px',
|
|
8
|
-
height: '40px',
|
|
9
|
-
flexShrink: 0
|
|
10
|
-
},
|
|
11
|
-
filterSelector: {
|
|
12
|
-
width: '180px',
|
|
13
|
-
flexShrink: 0,
|
|
14
|
-
marginTop: 0,
|
|
15
|
-
marginBottom: 0
|
|
16
|
-
},
|
|
17
|
-
actionContainer: {
|
|
18
|
-
alignItems: 'center',
|
|
19
|
-
marginRight: '15px'
|
|
20
|
-
}
|
|
21
|
-
}); });
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const useStyles: (props?: any) => import("@mui/styles").ClassNameMap<"hidden" | "row" | "fullWidth" | "rowItem">;
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.useStyles = void 0;
|
|
4
|
-
var styles_1 = require("@mui/styles");
|
|
5
|
-
exports.useStyles = (0, styles_1.makeStyles)(function () { return ({
|
|
6
|
-
row: {
|
|
7
|
-
display: 'flex',
|
|
8
|
-
marginBottom: '12px'
|
|
9
|
-
},
|
|
10
|
-
rowItem: {
|
|
11
|
-
paddingRight: '10px',
|
|
12
|
-
display: 'flex'
|
|
13
|
-
},
|
|
14
|
-
fullWidth: {
|
|
15
|
-
flexGrow: '1',
|
|
16
|
-
flexBasis: '0',
|
|
17
|
-
overflow: 'hidden'
|
|
18
|
-
},
|
|
19
|
-
hidden: {
|
|
20
|
-
visibility: 'hidden'
|
|
21
|
-
}
|
|
22
|
-
}); });
|