@reltio/components 1.4.1067 → 1.4.1072
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/cjs/components/AttributeGroupIcon/AttributeGroupIcon.d.ts +11 -0
- package/cjs/components/AttributeGroupIcon/AttributeGroupIcon.js +20 -0
- package/cjs/components/AttributeGroupIcon/styles.d.ts +1 -0
- package/cjs/components/AttributeGroupIcon/styles.js +11 -0
- package/cjs/components/AttributesFiltersBuilder/AttributesFiltersBuilder.d.ts +9 -0
- package/cjs/components/AttributesFiltersBuilder/AttributesFiltersBuilder.js +112 -0
- package/cjs/components/AttributesFiltersBuilder/components/AttributeSelector/AttributeSelector.d.ts +9 -0
- package/cjs/components/AttributesFiltersBuilder/components/AttributeSelector/AttributeSelector.js +53 -0
- package/cjs/components/AttributesFiltersBuilder/components/FilterSelector/FilterSelector.d.ts +7 -0
- package/cjs/components/AttributesFiltersBuilder/components/FilterSelector/FilterSelector.js +56 -0
- package/cjs/components/AttributesFiltersBuilder/components/FilterSelector/styles.d.ts +2 -0
- package/cjs/components/AttributesFiltersBuilder/components/FilterSelector/styles.js +9 -0
- package/cjs/components/AttributesFiltersBuilder/components/RowActions/RowActions.d.ts +4 -0
- package/cjs/components/AttributesFiltersBuilder/components/RowActions/RowActions.js +51 -0
- package/cjs/components/AttributesFiltersBuilder/components/RowActions/styles.d.ts +1 -0
- package/cjs/components/AttributesFiltersBuilder/components/RowActions/styles.js +23 -0
- package/cjs/components/AttributesFiltersBuilder/components/ValueEditor/ValueEditor.d.ts +4 -0
- package/cjs/components/AttributesFiltersBuilder/components/ValueEditor/ValueEditor.js +60 -0
- package/cjs/components/AttributesFiltersBuilder/components/ValueEditor/styles.d.ts +1 -0
- package/cjs/components/AttributesFiltersBuilder/components/ValueEditor/styles.js +25 -0
- package/cjs/components/AttributesFiltersBuilder/helpers.d.ts +12 -0
- package/cjs/components/AttributesFiltersBuilder/helpers.js +77 -0
- package/cjs/components/AttributesFiltersBuilder/styles.d.ts +1 -0
- package/cjs/components/AttributesFiltersBuilder/styles.js +21 -0
- package/cjs/components/AttributesFiltersBuilder/types.d.ts +24 -0
- package/cjs/components/AttributesFiltersBuilder/types.js +2 -0
- package/cjs/components/AttributesFiltersButton/ActionButtons/ActionButtons.d.ts +8 -0
- package/cjs/components/AttributesFiltersButton/ActionButtons/ActionButtons.js +18 -0
- package/cjs/components/AttributesFiltersButton/ActionButtons/styles.d.ts +1 -0
- package/cjs/components/AttributesFiltersButton/ActionButtons/styles.js +26 -0
- package/cjs/components/AttributesFiltersButton/AttributesFiltersButton.d.ts +9 -0
- package/cjs/components/AttributesFiltersButton/AttributesFiltersButton.js +82 -0
- package/cjs/components/AttributesFiltersButton/styles.d.ts +1 -0
- package/cjs/components/AttributesFiltersButton/styles.js +30 -0
- package/cjs/components/BasicAttributeSelector/AttributeTitle/AttributeTitle.d.ts +14 -0
- package/cjs/components/BasicAttributeSelector/AttributeTitle/AttributeTitle.js +27 -0
- package/cjs/components/BasicAttributeSelector/AttributeTitle/styles.d.ts +2 -0
- package/cjs/components/BasicAttributeSelector/AttributeTitle/styles.js +44 -0
- package/cjs/components/BasicAttributeSelector/BasicAttributeSelector.d.ts +4 -0
- package/cjs/components/BasicAttributeSelector/BasicAttributeSelector.js +99 -0
- package/cjs/components/BasicAttributeSelector/helpers.d.ts +22 -0
- package/cjs/components/BasicAttributeSelector/helpers.js +80 -0
- package/cjs/components/BasicAttributeSelector/styles.d.ts +2 -0
- package/cjs/components/BasicAttributeSelector/styles.js +14 -0
- package/cjs/components/ConnectionEditor/ConnectionEditor.d.ts +12 -3
- package/cjs/components/ConnectionEditor/ConnectionEditor.js +72 -5
- package/cjs/components/ConnectionEditor/styles.d.ts +1 -0
- package/cjs/components/ConnectionEditor/styles.js +12 -0
- package/cjs/components/ConnectionRelationTypeSelector/ConnectionRelationTypeSelector.js +3 -2
- package/cjs/components/Image/ImageActionsOverlay/styles.d.ts +1 -1
- package/cjs/components/ImageDetailsView/MetaInfoForm/styles.d.ts +1 -1
- package/cjs/components/QueryBuilderRow/QueryBuilderRow.d.ts +2 -2
- package/cjs/components/QueryBuilderRowsGroup/QueryBuilderRowsGroup.d.ts +2 -2
- package/cjs/components/QueryBuilderRowsGroup/QueryBuilderRowsGroup.js +1 -1
- package/cjs/components/SelectAttributesList/SelectAttributesList.d.ts +14 -0
- package/cjs/components/SelectAttributesList/SelectAttributesList.js +75 -0
- package/cjs/components/SelectAttributesList/styles.d.ts +1 -0
- package/cjs/components/SelectAttributesList/styles.js +16 -0
- package/cjs/components/SelectionPopup/SelectionPopup.d.ts +1 -1
- package/cjs/components/SidePanel/SidePanelContentHeader/SidePanelContentHeader.d.ts +2 -2
- package/cjs/components/Title/Title.d.ts +7 -13
- package/cjs/components/Title/Title.js +24 -8
- package/cjs/components/Title/styles.d.ts +1 -1
- package/cjs/components/activityLog/activities/SearchActivity.js +2 -2
- package/cjs/components/attributes/editMode/AttributesPager/AttributeRenderer.js +1 -1
- package/cjs/components/attributes/editMode/AttributesPager/AttributesPager.js +1 -1
- package/cjs/components/attributes/editMode/AttributesPager/SpecialRenderer.js +1 -1
- package/cjs/components/attributes/editMode/ComplexAttribute/ComplexAttribute.js +1 -1
- package/cjs/components/attributes/editMode/EntitySelector/EntitySelector.d.ts +1 -1
- package/cjs/components/attributes/editMode/EntitySelector/EntitySelector.js +13 -6
- package/cjs/components/attributes/editMode/ImageAttributesLine/ImageAttributesLine.js +1 -1
- package/cjs/components/attributes/editMode/Roles/Roles.js +1 -1
- package/cjs/components/attributes/editMode/SimpleAttributeEditor/SimpleAttributeEditor.js +1 -1
- package/cjs/components/attributes/editMode/Tags/Tags.js +1 -1
- package/cjs/components/attributes/readMode/AttributesPager/AttributesPager.js +1 -1
- package/cjs/components/attributes/readMode/AttributesPager/MultiLineRenderer.js +1 -1
- package/cjs/components/attributes/readMode/AttributesPager/OneLineRenderer.js +1 -1
- package/cjs/components/attributes/readMode/AttributesPager/SpecialRenderer.js +1 -1
- package/cjs/components/attributes/readMode/ComplexAttribute/ComplexAttribute.js +1 -1
- package/cjs/components/attributes/readMode/ImageAttributesLine/ImageAttributesLine.js +1 -1
- package/cjs/components/attributes/readMode/SimpleAttribute/SimpleAttribute.js +2 -2
- package/cjs/components/attributes/readMode/SpecialAttributes/Roles/Roles.js +1 -1
- package/cjs/components/attributes/readMode/SpecialAttributes/SpecialAttributesArray.d.ts +2 -1
- package/cjs/components/attributes/readMode/SpecialAttributes/SpecialAttributesArray.js +2 -2
- package/cjs/components/attributes/readMode/SpecialAttributes/Tags/Tags.d.ts +1 -0
- package/cjs/components/attributes/readMode/SpecialAttributes/Tags/Tags.js +1 -1
- package/cjs/components/index.d.ts +4 -0
- package/cjs/components/index.js +9 -1
- package/cjs/components/workflow/hooks/useWorkflowAssignee.d.ts +1 -1
- package/cjs/components/workflow/hooks/useWorkflowAssignee.js +2 -2
- package/cjs/constants/prop-types.d.ts +1 -1
- package/cjs/constants/prop-types.js +1 -1
- package/cjs/hooks/index.d.ts +1 -0
- package/cjs/hooks/index.js +3 -1
- package/cjs/hooks/useEditableConnection.d.ts +10 -4
- package/cjs/hooks/useEditableConnection.js +27 -3
- package/cjs/hooks/useReadableSearchState.d.ts +2 -0
- package/cjs/{components/activityLog/hooks → hooks}/useReadableSearchState.js +0 -0
- package/cjs/icons/Duplicate.d.ts +3 -0
- package/cjs/icons/Duplicate.js +28 -0
- package/cjs/icons/index.d.ts +6 -3
- package/cjs/icons/index.js +14 -7
- package/cjs/types/index.d.ts +40 -0
- package/esm/components/AttributeGroupIcon/AttributeGroupIcon.d.ts +11 -0
- package/esm/components/AttributeGroupIcon/AttributeGroupIcon.js +15 -0
- package/esm/components/AttributeGroupIcon/styles.d.ts +1 -0
- package/esm/components/AttributeGroupIcon/styles.js +8 -0
- package/esm/components/AttributesFiltersBuilder/AttributesFiltersBuilder.d.ts +9 -0
- package/esm/components/AttributesFiltersBuilder/AttributesFiltersBuilder.js +88 -0
- package/esm/components/AttributesFiltersBuilder/components/AttributeSelector/AttributeSelector.d.ts +9 -0
- package/esm/components/AttributesFiltersBuilder/components/AttributeSelector/AttributeSelector.js +29 -0
- package/esm/components/AttributesFiltersBuilder/components/FilterSelector/FilterSelector.d.ts +7 -0
- package/esm/components/AttributesFiltersBuilder/components/FilterSelector/FilterSelector.js +32 -0
- package/esm/components/AttributesFiltersBuilder/components/FilterSelector/styles.d.ts +2 -0
- package/esm/components/AttributesFiltersBuilder/components/FilterSelector/styles.js +7 -0
- package/esm/components/AttributesFiltersBuilder/components/RowActions/RowActions.d.ts +4 -0
- package/esm/components/AttributesFiltersBuilder/components/RowActions/RowActions.js +27 -0
- package/esm/components/AttributesFiltersBuilder/components/RowActions/styles.d.ts +1 -0
- package/esm/components/AttributesFiltersBuilder/components/RowActions/styles.js +20 -0
- package/esm/components/AttributesFiltersBuilder/components/ValueEditor/ValueEditor.d.ts +4 -0
- package/esm/components/AttributesFiltersBuilder/components/ValueEditor/ValueEditor.js +36 -0
- package/esm/components/AttributesFiltersBuilder/components/ValueEditor/styles.d.ts +1 -0
- package/esm/components/AttributesFiltersBuilder/components/ValueEditor/styles.js +22 -0
- package/esm/components/AttributesFiltersBuilder/helpers.d.ts +12 -0
- package/esm/components/AttributesFiltersBuilder/helpers.js +70 -0
- package/esm/components/AttributesFiltersBuilder/styles.d.ts +1 -0
- package/esm/components/AttributesFiltersBuilder/styles.js +18 -0
- package/esm/components/AttributesFiltersBuilder/types.d.ts +24 -0
- package/esm/components/AttributesFiltersBuilder/types.js +1 -0
- package/esm/components/AttributesFiltersButton/ActionButtons/ActionButtons.d.ts +8 -0
- package/esm/components/AttributesFiltersButton/ActionButtons/ActionButtons.js +13 -0
- package/esm/components/AttributesFiltersButton/ActionButtons/styles.d.ts +1 -0
- package/esm/components/AttributesFiltersButton/ActionButtons/styles.js +23 -0
- package/esm/components/AttributesFiltersButton/AttributesFiltersButton.d.ts +9 -0
- package/esm/components/AttributesFiltersButton/AttributesFiltersButton.js +58 -0
- package/esm/components/AttributesFiltersButton/styles.d.ts +1 -0
- package/esm/components/AttributesFiltersButton/styles.js +27 -0
- package/esm/components/BasicAttributeSelector/AttributeTitle/AttributeTitle.d.ts +14 -0
- package/esm/components/BasicAttributeSelector/AttributeTitle/AttributeTitle.js +22 -0
- package/esm/components/BasicAttributeSelector/AttributeTitle/styles.d.ts +2 -0
- package/esm/components/BasicAttributeSelector/AttributeTitle/styles.js +42 -0
- package/esm/components/BasicAttributeSelector/BasicAttributeSelector.d.ts +4 -0
- package/esm/components/BasicAttributeSelector/BasicAttributeSelector.js +75 -0
- package/esm/components/BasicAttributeSelector/helpers.d.ts +22 -0
- package/esm/components/BasicAttributeSelector/helpers.js +72 -0
- package/esm/components/BasicAttributeSelector/styles.d.ts +2 -0
- package/esm/components/BasicAttributeSelector/styles.js +12 -0
- package/esm/components/ConnectionEditor/ConnectionEditor.d.ts +12 -3
- package/esm/components/ConnectionEditor/ConnectionEditor.js +74 -7
- package/esm/components/ConnectionEditor/styles.d.ts +1 -0
- package/esm/components/ConnectionEditor/styles.js +9 -0
- package/esm/components/ConnectionRelationTypeSelector/ConnectionRelationTypeSelector.js +3 -2
- package/esm/components/Image/ImageActionsOverlay/styles.d.ts +1 -1
- package/esm/components/ImageDetailsView/MetaInfoForm/styles.d.ts +1 -1
- package/esm/components/QueryBuilderRow/QueryBuilderRow.d.ts +2 -2
- package/esm/components/QueryBuilderRowsGroup/QueryBuilderRowsGroup.d.ts +2 -2
- package/esm/components/QueryBuilderRowsGroup/QueryBuilderRowsGroup.js +1 -1
- package/esm/components/SelectAttributesList/SelectAttributesList.d.ts +14 -0
- package/esm/components/SelectAttributesList/SelectAttributesList.js +51 -0
- package/esm/components/SelectAttributesList/styles.d.ts +1 -0
- package/esm/components/SelectAttributesList/styles.js +13 -0
- package/esm/components/SelectionPopup/SelectionPopup.d.ts +1 -1
- package/esm/components/SidePanel/SidePanelContentHeader/SidePanelContentHeader.d.ts +2 -2
- package/esm/components/Title/Title.d.ts +7 -13
- package/esm/components/Title/Title.js +24 -8
- package/esm/components/Title/styles.d.ts +1 -1
- package/esm/components/activityLog/activities/SearchActivity.js +1 -1
- package/esm/components/attributes/editMode/AttributesPager/AttributeRenderer.js +1 -1
- package/esm/components/attributes/editMode/AttributesPager/AttributesPager.js +1 -1
- package/esm/components/attributes/editMode/AttributesPager/SpecialRenderer.js +1 -1
- package/esm/components/attributes/editMode/ComplexAttribute/ComplexAttribute.js +1 -1
- package/esm/components/attributes/editMode/EntitySelector/EntitySelector.d.ts +1 -1
- package/esm/components/attributes/editMode/EntitySelector/EntitySelector.js +13 -6
- package/esm/components/attributes/editMode/ImageAttributesLine/ImageAttributesLine.js +1 -1
- package/esm/components/attributes/editMode/Roles/Roles.js +1 -1
- package/esm/components/attributes/editMode/SimpleAttributeEditor/SimpleAttributeEditor.js +1 -1
- package/esm/components/attributes/editMode/Tags/Tags.js +1 -1
- package/esm/components/attributes/readMode/AttributesPager/AttributesPager.js +1 -1
- package/esm/components/attributes/readMode/AttributesPager/MultiLineRenderer.js +1 -1
- package/esm/components/attributes/readMode/AttributesPager/OneLineRenderer.js +1 -1
- package/esm/components/attributes/readMode/AttributesPager/SpecialRenderer.js +1 -1
- package/esm/components/attributes/readMode/ComplexAttribute/ComplexAttribute.js +1 -1
- package/esm/components/attributes/readMode/ImageAttributesLine/ImageAttributesLine.js +1 -1
- package/esm/components/attributes/readMode/SimpleAttribute/SimpleAttribute.js +2 -2
- package/esm/components/attributes/readMode/SpecialAttributes/Roles/Roles.js +1 -1
- package/esm/components/attributes/readMode/SpecialAttributes/SpecialAttributesArray.d.ts +2 -1
- package/esm/components/attributes/readMode/SpecialAttributes/SpecialAttributesArray.js +2 -2
- package/esm/components/attributes/readMode/SpecialAttributes/Tags/Tags.d.ts +1 -0
- package/esm/components/attributes/readMode/SpecialAttributes/Tags/Tags.js +1 -1
- package/esm/components/index.d.ts +4 -0
- package/esm/components/index.js +4 -0
- package/esm/components/workflow/hooks/useWorkflowAssignee.d.ts +1 -1
- package/esm/components/workflow/hooks/useWorkflowAssignee.js +1 -1
- package/esm/constants/prop-types.d.ts +1 -1
- package/esm/constants/prop-types.js +1 -1
- package/esm/hooks/index.d.ts +1 -0
- package/esm/hooks/index.js +1 -0
- package/esm/hooks/useEditableConnection.d.ts +10 -4
- package/esm/hooks/useEditableConnection.js +24 -3
- package/esm/hooks/useReadableSearchState.d.ts +2 -0
- package/esm/{components/activityLog/hooks → hooks}/useReadableSearchState.js +0 -0
- package/esm/icons/Duplicate.d.ts +3 -0
- package/esm/icons/Duplicate.js +23 -0
- package/esm/icons/index.d.ts +6 -3
- package/esm/icons/index.js +6 -3
- package/esm/types/index.d.ts +40 -0
- package/package.json +3 -3
- package/cjs/components/activityLog/hooks/useReadableSearchState.d.ts +0 -1
- package/esm/components/activityLog/hooks/useReadableSearchState.d.ts +0 -1
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
var react_1 = __importDefault(require("react"));
|
|
7
|
+
var ui_i18n_1 = __importDefault(require("ui-i18n"));
|
|
8
|
+
var Button_1 = __importDefault(require("@material-ui/core/Button"));
|
|
9
|
+
var styles_1 = require("./styles");
|
|
10
|
+
var ActionButtons = function (_a) {
|
|
11
|
+
var onClear = _a.onClear, onCancel = _a.onCancel, onApply = _a.onApply;
|
|
12
|
+
var styles = styles_1.useStyles();
|
|
13
|
+
return (react_1.default.createElement("div", { className: styles.buttonsWrapper },
|
|
14
|
+
react_1.default.createElement(Button_1.default, { onClick: onClear, variant: "text", color: "default", className: styles.clearButon }, ui_i18n_1.default.text('Clear all')),
|
|
15
|
+
react_1.default.createElement(Button_1.default, { onClick: onCancel, variant: "text", color: "default", className: styles.cancelButton }, ui_i18n_1.default.text('Cancel')),
|
|
16
|
+
react_1.default.createElement(Button_1.default, { onClick: onApply, variant: "text", color: "primary", className: styles.applyButton }, ui_i18n_1.default.text('Apply'))));
|
|
17
|
+
};
|
|
18
|
+
exports.default = ActionButtons;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const useStyles: (props?: any) => import("@material-ui/core/styles/withStyles").ClassNameMap<"buttonsWrapper" | "cancelButton" | "applyButton" | "clearButon">;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.useStyles = void 0;
|
|
15
|
+
var styles_1 = require("@material-ui/core/styles");
|
|
16
|
+
var allButtonsStyle = {
|
|
17
|
+
alignSelf: 'center'
|
|
18
|
+
};
|
|
19
|
+
exports.useStyles = styles_1.makeStyles(function () { return ({
|
|
20
|
+
buttonsWrapper: {
|
|
21
|
+
display: 'flex'
|
|
22
|
+
},
|
|
23
|
+
applyButton: __assign(__assign({}, allButtonsStyle), { marginRight: '16px' }),
|
|
24
|
+
cancelButton: __assign(__assign({}, allButtonsStyle), { marginLeft: 'auto' }),
|
|
25
|
+
clearButon: __assign({}, allButtonsStyle)
|
|
26
|
+
}); });
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { SearchFilter, AttributeType } from '@reltio/mdm-sdk';
|
|
3
|
+
declare type Props = {
|
|
4
|
+
filters: SearchFilter[];
|
|
5
|
+
onChange: (filtres: SearchFilter[]) => void;
|
|
6
|
+
attributeTypes: AttributeType[];
|
|
7
|
+
};
|
|
8
|
+
declare const _default: React.MemoExoticComponent<({ filters: filtersProp, attributeTypes, onChange }: Props) => JSX.Element>;
|
|
9
|
+
export default _default;
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
+
}) : function(o, v) {
|
|
12
|
+
o["default"] = v;
|
|
13
|
+
});
|
|
14
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
+
if (mod && mod.__esModule) return mod;
|
|
16
|
+
var result = {};
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
+
__setModuleDefault(result, mod);
|
|
19
|
+
return result;
|
|
20
|
+
};
|
|
21
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
22
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
23
|
+
};
|
|
24
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
25
|
+
var react_1 = __importStar(require("react"));
|
|
26
|
+
var ui_i18n_1 = __importDefault(require("ui-i18n"));
|
|
27
|
+
var Popover_1 = __importDefault(require("@material-ui/core/Popover"));
|
|
28
|
+
var Button_1 = __importDefault(require("@material-ui/core/Button"));
|
|
29
|
+
var FilterList_1 = __importDefault(require("@material-ui/icons/FilterList"));
|
|
30
|
+
var Typography_1 = __importDefault(require("@material-ui/core/Typography"));
|
|
31
|
+
var Divider_1 = __importDefault(require("@material-ui/core/Divider"));
|
|
32
|
+
var AttributesFiltersBuilder_1 = __importDefault(require("../AttributesFiltersBuilder/AttributesFiltersBuilder"));
|
|
33
|
+
var ActionButtons_1 = __importDefault(require("./ActionButtons/ActionButtons"));
|
|
34
|
+
var styles_1 = require("./styles");
|
|
35
|
+
var AttributesFiltersButton = function (_a) {
|
|
36
|
+
var filtersProp = _a.filters, attributeTypes = _a.attributeTypes, onChange = _a.onChange;
|
|
37
|
+
var styles = styles_1.useStyles();
|
|
38
|
+
var buttonRef = react_1.useRef();
|
|
39
|
+
var _b = react_1.useState(false), isOpen = _b[0], setIsOpen = _b[1];
|
|
40
|
+
var _c = react_1.useState([]), filters = _c[0], setFilters = _c[1];
|
|
41
|
+
var isFiltersApplied = filtersProp.some(function (_a) {
|
|
42
|
+
var fieldName = _a.fieldName, filter = _a.filter, values = _a.values;
|
|
43
|
+
return fieldName && filter && values.length;
|
|
44
|
+
});
|
|
45
|
+
var buttonColor = isFiltersApplied ? 'primary' : 'inherit';
|
|
46
|
+
var togglePopup = function () { return setIsOpen(function (open) { return !open; }); };
|
|
47
|
+
react_1.useEffect(function () {
|
|
48
|
+
if (isOpen) {
|
|
49
|
+
setFilters(filtersProp);
|
|
50
|
+
}
|
|
51
|
+
}, [filtersProp, isOpen]);
|
|
52
|
+
var applyButtonHandler = react_1.useCallback(function () {
|
|
53
|
+
onChange(filters);
|
|
54
|
+
togglePopup();
|
|
55
|
+
}, [filters, onChange]);
|
|
56
|
+
var cancelButtonHandler = react_1.useCallback(function () {
|
|
57
|
+
togglePopup();
|
|
58
|
+
}, []);
|
|
59
|
+
var clearAllButtonHandler = react_1.useCallback(function () {
|
|
60
|
+
setFilters([]);
|
|
61
|
+
}, []);
|
|
62
|
+
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
63
|
+
react_1.default.createElement(Button_1.default, { ref: buttonRef, color: buttonColor, classes: {
|
|
64
|
+
root: styles.triggerButton,
|
|
65
|
+
textPrimary: styles.changedFiltersIndicator
|
|
66
|
+
}, onClick: togglePopup },
|
|
67
|
+
react_1.default.createElement(FilterList_1.default, { color: buttonColor })),
|
|
68
|
+
react_1.default.createElement(Popover_1.default, { open: isOpen, classes: { paper: styles.popupContent }, anchorEl: buttonRef.current, onClose: togglePopup, anchorOrigin: {
|
|
69
|
+
vertical: 'bottom',
|
|
70
|
+
horizontal: 'right'
|
|
71
|
+
}, transformOrigin: {
|
|
72
|
+
vertical: 'top',
|
|
73
|
+
horizontal: 'left'
|
|
74
|
+
} },
|
|
75
|
+
react_1.default.createElement(react_1.default.Fragment, null,
|
|
76
|
+
react_1.default.createElement(Typography_1.default, { variant: "h6" }, ui_i18n_1.default.text('Filter')),
|
|
77
|
+
react_1.default.createElement("div", { className: styles.filtersBuilderWrapper },
|
|
78
|
+
react_1.default.createElement(AttributesFiltersBuilder_1.default, { attributeTypes: attributeTypes, filters: filters, onChange: setFilters })),
|
|
79
|
+
react_1.default.createElement(Divider_1.default, { className: styles.divider }),
|
|
80
|
+
react_1.default.createElement(ActionButtons_1.default, { onApply: applyButtonHandler, onCancel: cancelButtonHandler, onClear: clearAllButtonHandler })))));
|
|
81
|
+
};
|
|
82
|
+
exports.default = react_1.memo(AttributesFiltersButton);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const useStyles: (props?: any) => import("@material-ui/core/styles/withStyles").ClassNameMap<"divider" | "triggerButton" | "filtersBuilderWrapper" | "popupContent" | "changedFiltersIndicator">;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useStyles = void 0;
|
|
4
|
+
var styles_1 = require("@material-ui/core/styles");
|
|
5
|
+
exports.useStyles = styles_1.makeStyles(function (theme) { return ({
|
|
6
|
+
triggerButton: {
|
|
7
|
+
minWidth: 0,
|
|
8
|
+
color: 'rgba(0,0,0,0.54)',
|
|
9
|
+
width: '40px',
|
|
10
|
+
marginLeft: 'auto',
|
|
11
|
+
marginRight: '12px'
|
|
12
|
+
},
|
|
13
|
+
filtersBuilderWrapper: {
|
|
14
|
+
marginTop: '20px'
|
|
15
|
+
},
|
|
16
|
+
popupContent: {
|
|
17
|
+
paddingLeft: '16px',
|
|
18
|
+
paddingTop: '20px',
|
|
19
|
+
paddingBottom: '6px',
|
|
20
|
+
width: '770px'
|
|
21
|
+
},
|
|
22
|
+
divider: {
|
|
23
|
+
marginBottom: '14px',
|
|
24
|
+
marginLeft: '-16px',
|
|
25
|
+
background: 'rgba(0, 0, 0, 0.121569)'
|
|
26
|
+
},
|
|
27
|
+
changedFiltersIndicator: {
|
|
28
|
+
backgroundColor: styles_1.fade(theme.palette.primary.main, 0.12)
|
|
29
|
+
}
|
|
30
|
+
}); });
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { AttributeSelectorItem } from '../../../types';
|
|
3
|
+
declare type Value = {
|
|
4
|
+
fieldName: string;
|
|
5
|
+
title: string;
|
|
6
|
+
};
|
|
7
|
+
declare type Props = {
|
|
8
|
+
value: AttributeSelectorItem;
|
|
9
|
+
disabled: boolean;
|
|
10
|
+
getLabel: (value: Value) => string;
|
|
11
|
+
onSelectAttributeClick: (event: any) => void;
|
|
12
|
+
};
|
|
13
|
+
declare const AttributeTitle: ({ value, getLabel, onSelectAttributeClick, disabled }: Props) => JSX.Element;
|
|
14
|
+
export default AttributeTitle;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
var react_1 = __importDefault(require("react"));
|
|
7
|
+
var ui_i18n_1 = __importDefault(require("ui-i18n"));
|
|
8
|
+
var classnames_1 = __importDefault(require("classnames"));
|
|
9
|
+
var ramda_1 = require("ramda");
|
|
10
|
+
var icons_1 = require("@material-ui/icons");
|
|
11
|
+
var ExpandedValueTooltip_1 = __importDefault(require("../../ExpandedValueTooltip/ExpandedValueTooltip"));
|
|
12
|
+
var SmallIconButton_1 = __importDefault(require("../../SmallIconButton/SmallIconButton"));
|
|
13
|
+
var styles_1 = __importDefault(require("./styles"));
|
|
14
|
+
var defaultGetLabel = ramda_1.either(ramda_1.prop('title'), ramda_1.prop('fieldName'));
|
|
15
|
+
var AttributeTitle = function (_a) {
|
|
16
|
+
var _b, _c, _d;
|
|
17
|
+
var value = _a.value, _e = _a.getLabel, getLabel = _e === void 0 ? defaultGetLabel : _e, onSelectAttributeClick = _a.onSelectAttributeClick, _f = _a.disabled, disabled = _f === void 0 ? false : _f;
|
|
18
|
+
var styles = styles_1.default();
|
|
19
|
+
var label = value && getLabel(value);
|
|
20
|
+
return (react_1.default.createElement("div", { onClick: disabled ? undefined : onSelectAttributeClick, className: classnames_1.default(styles.attribute, (_b = {},
|
|
21
|
+
_b[styles.attributeWithValue] = !!label,
|
|
22
|
+
_b), (_c = {}, _c[styles.disabled] = disabled, _c)) },
|
|
23
|
+
react_1.default.createElement(ExpandedValueTooltip_1.default, { value: label },
|
|
24
|
+
react_1.default.createElement("div", { className: classnames_1.default(styles.name, (_d = {}, _d[styles.disabled] = disabled, _d)) }, label || react_1.default.createElement("span", { className: styles.noSelect }, ui_i18n_1.default.text('Select attribute')))),
|
|
25
|
+
react_1.default.createElement(SmallIconButton_1.default, { size: 'M', icon: icons_1.ArrowDropDown, disabled: disabled })));
|
|
26
|
+
};
|
|
27
|
+
exports.default = AttributeTitle;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var styles_1 = require("@material-ui/core/styles");
|
|
4
|
+
var useStyles = styles_1.makeStyles({
|
|
5
|
+
attribute: {
|
|
6
|
+
cursor: 'pointer',
|
|
7
|
+
lineHeight: '16px',
|
|
8
|
+
flexBasis: '100%',
|
|
9
|
+
display: 'flex',
|
|
10
|
+
alignItems: 'center',
|
|
11
|
+
padding: '0 10px 0 16px',
|
|
12
|
+
width: 'calc(100% - 32px)',
|
|
13
|
+
'&$attributeWithValue': {
|
|
14
|
+
borderBottom: '1px solid rgba(0,0,0,0.38)'
|
|
15
|
+
},
|
|
16
|
+
'&$disabled': {
|
|
17
|
+
cursor: 'default'
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
disabled: {},
|
|
21
|
+
attributeWithValue: {},
|
|
22
|
+
noSelect: {},
|
|
23
|
+
name: {
|
|
24
|
+
fontSize: '14px',
|
|
25
|
+
color: 'rgba(0,0,0,0.87)',
|
|
26
|
+
overflow: 'hidden',
|
|
27
|
+
whiteSpace: 'nowrap',
|
|
28
|
+
textOverflow: 'ellipsis',
|
|
29
|
+
direction: 'rtl',
|
|
30
|
+
textAlign: 'left',
|
|
31
|
+
flex: '1 0',
|
|
32
|
+
width: '0',
|
|
33
|
+
'& $noSelect': {
|
|
34
|
+
color: 'rgba(0,0,0,0.38)'
|
|
35
|
+
},
|
|
36
|
+
'&$disabled': {
|
|
37
|
+
color: 'rgba(0,0,0,0.26)',
|
|
38
|
+
'& $noSelect': {
|
|
39
|
+
color: 'rgba(0,0,0,0.26)'
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
exports.default = useStyles;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { BasicAttributeSelectorProps } from '../../types';
|
|
3
|
+
declare const _default: React.MemoExoticComponent<({ className, itemsGroups, value, getLabel, onSelect, onRestoreFocus, onOpenPopup, disableRestoreFocus, disableEnforceFocus, single, ungroup, disabled, hideCheckBox }: BasicAttributeSelectorProps) => JSX.Element>;
|
|
4
|
+
export default _default;
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
+
}) : function(o, v) {
|
|
12
|
+
o["default"] = v;
|
|
13
|
+
});
|
|
14
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
+
if (mod && mod.__esModule) return mod;
|
|
16
|
+
var result = {};
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
+
__setModuleDefault(result, mod);
|
|
19
|
+
return result;
|
|
20
|
+
};
|
|
21
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
22
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
23
|
+
};
|
|
24
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
25
|
+
var react_1 = __importStar(require("react"));
|
|
26
|
+
var ui_i18n_1 = __importDefault(require("ui-i18n"));
|
|
27
|
+
var classnames_1 = __importDefault(require("classnames"));
|
|
28
|
+
var ramda_1 = require("ramda");
|
|
29
|
+
var SelectionPopup_1 = __importDefault(require("../SelectionPopup/SelectionPopup"));
|
|
30
|
+
var helpers_1 = require("../SelectionPopup/helpers");
|
|
31
|
+
var AttributeTitle_1 = __importDefault(require("./AttributeTitle/AttributeTitle"));
|
|
32
|
+
var helpers_2 = require("./helpers");
|
|
33
|
+
var SelectAttributesList_1 = __importDefault(require("../SelectAttributesList/SelectAttributesList"));
|
|
34
|
+
var helpers_3 = require("../VirtualGroupedList/helpers");
|
|
35
|
+
var styles_1 = __importDefault(require("./styles"));
|
|
36
|
+
var ATTRIBUTES_LIST_HEIGHT = 400;
|
|
37
|
+
var ATTRIBUTES_LIST_WIDTH = 308;
|
|
38
|
+
var ATTRIBUTES_POPUP_HEIGHT = 507;
|
|
39
|
+
var BasicAttributeSelector = function (_a) {
|
|
40
|
+
var className = _a.className, itemsGroups = _a.itemsGroups, value = _a.value, getLabel = _a.getLabel, onSelect = _a.onSelect, _b = _a.onRestoreFocus, onRestoreFocus = _b === void 0 ? ramda_1.identity : _b, _c = _a.onOpenPopup, onOpenPopup = _c === void 0 ? ramda_1.identity : _c, _d = _a.disableRestoreFocus, disableRestoreFocus = _d === void 0 ? false : _d, _e = _a.disableEnforceFocus, disableEnforceFocus = _e === void 0 ? false : _e, _f = _a.single, single = _f === void 0 ? false : _f, _g = _a.ungroup, ungroup = _g === void 0 ? false : _g, _h = _a.disabled, disabled = _h === void 0 ? false : _h, _j = _a.hideCheckBox, hideCheckBox = _j === void 0 ? false : _j;
|
|
41
|
+
var styles = styles_1.default();
|
|
42
|
+
var _k = react_1.useState(null), selectAnchor = _k[0], setSelectAnchor = _k[1];
|
|
43
|
+
var openPopup = function (event) {
|
|
44
|
+
onOpenPopup();
|
|
45
|
+
setSelectAnchor(event.currentTarget);
|
|
46
|
+
};
|
|
47
|
+
var closePopup = react_1.useCallback(function () { return setSelectAnchor(null); }, []);
|
|
48
|
+
var isPopupOpen = !!selectAnchor;
|
|
49
|
+
var _l = react_1.useState(''), filterText = _l[0], setFilterText = _l[1];
|
|
50
|
+
var clearFilterText = react_1.useCallback(function () { return setFilterText(''); }, []);
|
|
51
|
+
var _m = react_1.useState([]), selectedAttributes = _m[0], setSelectedAttributes = _m[1];
|
|
52
|
+
var clearSelectedAttributes = react_1.useCallback(function () { return setSelectedAttributes([]); }, []);
|
|
53
|
+
var filteredItemsGroups = react_1.useMemo(function () { return helpers_2.prepareGroupsForSelectAttributeList(filterText, itemsGroups); }, [
|
|
54
|
+
itemsGroups,
|
|
55
|
+
filterText
|
|
56
|
+
]);
|
|
57
|
+
var items = react_1.useMemo(function () {
|
|
58
|
+
return ramda_1.pipe(ramda_1.when(ramda_1.always(ungroup), ramda_1.chain(ramda_1.pipe(ramda_1.prop('items'), ramda_1.flatten, ramda_1.map(ramda_1.pick(['item', 'level']))))), helpers_3.flattenGroupedItemsData)(filteredItemsGroups);
|
|
59
|
+
}, [ungroup, filteredItemsGroups]);
|
|
60
|
+
var containerWidth = react_1.useMemo(function () { return Math.max(helpers_2.getContainerWidth(filteredItemsGroups), ATTRIBUTES_LIST_WIDTH); }, [
|
|
61
|
+
filteredItemsGroups
|
|
62
|
+
]);
|
|
63
|
+
var handleOnClose = ramda_1.pipe(ramda_1.tap(ramda_1.pipe(clearSelectedAttributes, clearFilterText, closePopup)), onRestoreFocus);
|
|
64
|
+
var searchInputRef = react_1.useRef();
|
|
65
|
+
var onListItemClick = react_1.useCallback(function (attribute, checked) {
|
|
66
|
+
onSelect({
|
|
67
|
+
checked: checked,
|
|
68
|
+
attribute: attribute,
|
|
69
|
+
index: checked ? selectedAttributes.length : helpers_2.getAttributeIndex(selectedAttributes, attribute),
|
|
70
|
+
selectedAttributes: selectedAttributes
|
|
71
|
+
});
|
|
72
|
+
if (single) {
|
|
73
|
+
setSelectedAttributes(checked ? [attribute] : []);
|
|
74
|
+
handleOnClose({});
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
setSelectedAttributes(helpers_2.filterSelectedAttributes({ selectedAttributes: selectedAttributes, attribute: attribute, checked: checked }));
|
|
78
|
+
if (searchInputRef.current) {
|
|
79
|
+
searchInputRef.current.focus();
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}, [selectedAttributes, onSelect, single, handleOnClose, searchInputRef]);
|
|
83
|
+
var handleSearchOnEnter = react_1.useCallback(helpers_2.getOnEnterHandler({ onListItemClick: onListItemClick, selectedAttributes: selectedAttributes }), [
|
|
84
|
+
onListItemClick,
|
|
85
|
+
selectedAttributes
|
|
86
|
+
]);
|
|
87
|
+
var _o = helpers_1.useKeyboardNavigation({
|
|
88
|
+
items: items,
|
|
89
|
+
open: isPopupOpen,
|
|
90
|
+
onSelectFocusedItem: handleSearchOnEnter,
|
|
91
|
+
selectedItems: selectedAttributes,
|
|
92
|
+
onClose: handleOnClose
|
|
93
|
+
}), focusIndex = _o.focusIndex, handleKeyDown = _o.handleKeyDown;
|
|
94
|
+
return (react_1.default.createElement("div", { className: classnames_1.default(styles.selector, className), "data-reltio-id": "attribute-selector" },
|
|
95
|
+
react_1.default.createElement(AttributeTitle_1.default, { value: value, getLabel: getLabel, onSelectAttributeClick: openPopup, disabled: disabled }),
|
|
96
|
+
react_1.default.createElement(SelectionPopup_1.default, { open: isPopupOpen, anchorEl: selectAnchor, onClose: handleOnClose, onSearch: setFilterText, title: ui_i18n_1.default.text('Select attribute'), containerWidth: containerWidth, containerHeight: ATTRIBUTES_POPUP_HEIGHT, searchInputOnKeyDown: handleKeyDown, anchorOrigin: { horizontal: 'right', vertical: 'bottom' }, searchInputRef: searchInputRef, disableRestoreFocus: disableRestoreFocus, disableEnforceFocus: disableEnforceFocus },
|
|
97
|
+
react_1.default.createElement(SelectAttributesList_1.default, { items: items, onItemClick: onListItemClick, selectedAttributes: selectedAttributes, width: containerWidth, height: ATTRIBUTES_LIST_HEIGHT, focusIndex: focusIndex, hideCheckBox: hideCheckBox }))));
|
|
98
|
+
};
|
|
99
|
+
exports.default = react_1.memo(BasicAttributeSelector);
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { AttributeSelectorItem, AttributeSelectorItemsGroup } from '../../types';
|
|
2
|
+
export declare const isEqualAttributes: any;
|
|
3
|
+
export declare const checkAttributeIncludes: (attribute: AttributeSelectorItem, selectedAttributes: AttributeSelectorItem[]) => boolean;
|
|
4
|
+
export declare const filterItemsTree: (item: AttributeSelectorItem, filterText: string) => boolean;
|
|
5
|
+
export declare const filterSelectedAttributes: ({ attribute, selectedAttributes, checked }: {
|
|
6
|
+
attribute: AttributeSelectorItem;
|
|
7
|
+
selectedAttributes: AttributeSelectorItem[];
|
|
8
|
+
checked: boolean;
|
|
9
|
+
}) => AttributeSelectorItem[];
|
|
10
|
+
export declare const getAttributeIndex: (selectedAttributes: AttributeSelectorItem[], attribute: AttributeSelectorItem) => number;
|
|
11
|
+
export declare const getContainerWidth: (items: any) => any;
|
|
12
|
+
export declare const getOnEnterHandler: ({ onListItemClick, selectedAttributes }: {
|
|
13
|
+
selectedAttributes: AttributeSelectorItem[];
|
|
14
|
+
onListItemClick: (attribute: AttributeSelectorItem, checked: boolean) => void;
|
|
15
|
+
}) => ({ item, groupData }: {
|
|
16
|
+
item: any;
|
|
17
|
+
groupData: any;
|
|
18
|
+
}) => void;
|
|
19
|
+
export declare const prepareGroupsForSelectAttributeList: (filterText: string, groups: AttributeSelectorItemsGroup[]) => {
|
|
20
|
+
item: AttributeSelectorItemsGroup[];
|
|
21
|
+
items: AttributeSelectorItem[];
|
|
22
|
+
};
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.prepareGroupsForSelectAttributeList = exports.getOnEnterHandler = exports.getContainerWidth = exports.getAttributeIndex = exports.filterSelectedAttributes = exports.filterItemsTree = exports.checkAttributeIncludes = exports.isEqualAttributes = void 0;
|
|
15
|
+
var ramda_1 = require("ramda");
|
|
16
|
+
var mdm_sdk_1 = require("@reltio/mdm-sdk");
|
|
17
|
+
exports.isEqualAttributes = ramda_1.eqBy(ramda_1.pick(['fieldName', 'uri', 'entityTypeUri']));
|
|
18
|
+
var checkAttributeIncludes = function (attribute, selectedAttributes) {
|
|
19
|
+
return selectedAttributes && !!selectedAttributes.find(exports.isEqualAttributes(attribute));
|
|
20
|
+
};
|
|
21
|
+
exports.checkAttributeIncludes = checkAttributeIncludes;
|
|
22
|
+
var filterItem = function (item, filterText) {
|
|
23
|
+
return item.title.toLowerCase().includes(filterText.toLowerCase());
|
|
24
|
+
};
|
|
25
|
+
var filterItemsTree = function (item, filterText) {
|
|
26
|
+
return filterItem(item, filterText) || (item.children || []).some(function (item) { return exports.filterItemsTree(item, filterText); });
|
|
27
|
+
};
|
|
28
|
+
exports.filterItemsTree = filterItemsTree;
|
|
29
|
+
var filterSelectedAttributes = function (_a) {
|
|
30
|
+
var attribute = _a.attribute, selectedAttributes = _a.selectedAttributes, checked = _a.checked;
|
|
31
|
+
return checked
|
|
32
|
+
? selectedAttributes.concat(attribute)
|
|
33
|
+
: selectedAttributes.filter(function (selectedAttribute) { return !exports.isEqualAttributes(attribute, selectedAttribute); });
|
|
34
|
+
};
|
|
35
|
+
exports.filterSelectedAttributes = filterSelectedAttributes;
|
|
36
|
+
var getAttributeIndex = function (selectedAttributes, attribute) {
|
|
37
|
+
return selectedAttributes.findIndex(exports.isEqualAttributes(attribute));
|
|
38
|
+
};
|
|
39
|
+
exports.getAttributeIndex = getAttributeIndex;
|
|
40
|
+
exports.getContainerWidth = mdm_sdk_1.getMaxItemWidth('title');
|
|
41
|
+
var getOnEnterHandler = function (_a) {
|
|
42
|
+
var onListItemClick = _a.onListItemClick, selectedAttributes = _a.selectedAttributes;
|
|
43
|
+
return function (_a) {
|
|
44
|
+
var item = _a.item, groupData = _a.groupData;
|
|
45
|
+
var checked = exports.checkAttributeIncludes(item, selectedAttributes);
|
|
46
|
+
onListItemClick(__assign(__assign({}, item), { groupName: groupData.groupName }), !checked);
|
|
47
|
+
};
|
|
48
|
+
};
|
|
49
|
+
exports.getOnEnterHandler = getOnEnterHandler;
|
|
50
|
+
var getAttributeGroupData = function (item, groupId, groupName, filterText, level, noFilter) {
|
|
51
|
+
if (level === void 0) { level = 0; }
|
|
52
|
+
if (noFilter === void 0) { noFilter = false; }
|
|
53
|
+
var isItemFiltered = filterItem(item, filterText);
|
|
54
|
+
return [
|
|
55
|
+
{
|
|
56
|
+
item: filterText ? __assign(__assign({}, item), { filterText: filterText }) : item,
|
|
57
|
+
level: level,
|
|
58
|
+
groupId: groupId,
|
|
59
|
+
groupName: groupName
|
|
60
|
+
}
|
|
61
|
+
]
|
|
62
|
+
.concat(item.children
|
|
63
|
+
? item.children
|
|
64
|
+
.filter(function (subItem) { return noFilter || isItemFiltered || exports.filterItemsTree(subItem, filterText); })
|
|
65
|
+
.flatMap(function (subItem) {
|
|
66
|
+
return getAttributeGroupData(subItem, groupId, groupName, filterText, level + 1, noFilter || isItemFiltered);
|
|
67
|
+
})
|
|
68
|
+
: [])
|
|
69
|
+
.flat();
|
|
70
|
+
};
|
|
71
|
+
exports.prepareGroupsForSelectAttributeList = ramda_1.curry(function (filterText, groups) {
|
|
72
|
+
return groups
|
|
73
|
+
.map(function (group) { return ({
|
|
74
|
+
item: group,
|
|
75
|
+
items: group.attributes
|
|
76
|
+
.filter(function (attribute) { return exports.filterItemsTree(attribute, filterText); })
|
|
77
|
+
.map(function (item) { return getAttributeGroupData(item, group.id, group.title, filterText); })
|
|
78
|
+
}); })
|
|
79
|
+
.filter(function (group) { return group.items.length; });
|
|
80
|
+
});
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var styles_1 = require("@material-ui/core/styles");
|
|
4
|
+
var useStyles = styles_1.makeStyles({
|
|
5
|
+
selector: {
|
|
6
|
+
minWidth: '200px',
|
|
7
|
+
alignItems: 'stretch',
|
|
8
|
+
background: 'rgba(0,0,0, 0.0267)',
|
|
9
|
+
boxSizing: 'border-box',
|
|
10
|
+
borderRadius: '4px',
|
|
11
|
+
display: 'flex'
|
|
12
|
+
}
|
|
13
|
+
});
|
|
14
|
+
exports.default = useStyles;
|
|
@@ -1,11 +1,20 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
import { EditingConnection,
|
|
2
|
+
import { AttributeItem, EditingConnection, Entity, TRelationType } from '@reltio/mdm-sdk';
|
|
3
3
|
declare type Props = {
|
|
4
4
|
connection: EditingConnection;
|
|
5
5
|
showEmptyEditors?: boolean;
|
|
6
6
|
onChangeAttribute: (attribute: AttributeItem) => void;
|
|
7
7
|
onAddAttributes: (attributes: AttributeItem[]) => void;
|
|
8
|
-
onRemoveAttribute: (
|
|
8
|
+
onRemoveAttribute: (attributes: AttributeItem) => void;
|
|
9
|
+
onChangeRelationType?: (value: {
|
|
10
|
+
type: string;
|
|
11
|
+
direction: string;
|
|
12
|
+
}) => void;
|
|
13
|
+
onChangeEntity?: (entity: Entity) => void;
|
|
14
|
+
relatedEntity?: Entity;
|
|
15
|
+
inRelationTypes?: TRelationType[];
|
|
16
|
+
outRelationTypes?: TRelationType[];
|
|
17
|
+
entityErrorMessage?: string;
|
|
9
18
|
};
|
|
10
|
-
export declare const ConnectionEditor: ({ connection, onChangeAttribute, onRemoveAttribute, onAddAttributes,
|
|
19
|
+
export declare const ConnectionEditor: ({ connection, relatedEntity, inRelationTypes, outRelationTypes, showEmptyEditors, entityErrorMessage, onChangeAttribute, onRemoveAttribute, onAddAttributes, onChangeRelationType, onChangeEntity }: Props) => JSX.Element;
|
|
11
20
|
export {};
|
|
@@ -34,21 +34,88 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
34
34
|
};
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
36
|
exports.ConnectionEditor = void 0;
|
|
37
|
+
var styles_1 = require("./styles");
|
|
38
|
+
var hooks_1 = require("../../hooks");
|
|
37
39
|
var react_1 = __importStar(require("react"));
|
|
38
40
|
var react_redux_1 = require("react-redux");
|
|
39
41
|
var mdm_module_1 = __importDefault(require("@reltio/mdm-module"));
|
|
40
42
|
var mdm_sdk_1 = require("@reltio/mdm-sdk");
|
|
41
43
|
var AttributesList_1 = __importDefault(require("../attributes/editMode/AttributesList"));
|
|
44
|
+
var classnames_1 = __importDefault(require("classnames"));
|
|
45
|
+
var ramda_1 = require("ramda");
|
|
46
|
+
var ConnectionRelationTypeSelector_1 = __importDefault(require("../ConnectionRelationTypeSelector/ConnectionRelationTypeSelector"));
|
|
47
|
+
var ErrorWrapper_1 = __importDefault(require("../ErrorWrapper/ErrorWrapper"));
|
|
48
|
+
var EntitySelector_1 = __importDefault(require("../attributes/editMode/EntitySelector/EntitySelector"));
|
|
42
49
|
var ConnectionEditor = function (_a) {
|
|
43
|
-
var
|
|
44
|
-
var
|
|
45
|
-
var
|
|
50
|
+
var _b;
|
|
51
|
+
var connection = _a.connection, relatedEntity = _a.relatedEntity, _c = _a.inRelationTypes, inRelationTypes = _c === void 0 ? [] : _c, _d = _a.outRelationTypes, outRelationTypes = _d === void 0 ? [] : _d, showEmptyEditors = _a.showEmptyEditors, entityErrorMessage = _a.entityErrorMessage, onChangeAttribute = _a.onChangeAttribute, onRemoveAttribute = _a.onRemoveAttribute, onAddAttributes = _a.onAddAttributes, onChangeRelationType = _a.onChangeRelationType, onChangeEntity = _a.onChangeEntity;
|
|
52
|
+
var styles = styles_1.useStyles();
|
|
53
|
+
var relation = connection.relation, entity = connection.entity;
|
|
54
|
+
var _e = relation || {}, attributes = _e.attributes, relationUri = _e.uri, _f = _e.type, relationTypeUri = _f === void 0 ? '' : _f, direction = _e.direction;
|
|
55
|
+
var isRelationTypeSelected = Boolean(relationTypeUri);
|
|
46
56
|
var metadata = react_redux_1.useSelector(mdm_module_1.default.selectors.getMetadata);
|
|
47
|
-
var attributeListEntity = react_1.useMemo(function () {
|
|
57
|
+
var attributeListEntity = react_1.useMemo(function () {
|
|
58
|
+
return relation && __assign({ attributes: attributes }, mdm_sdk_1.getActivenessAttributes(relation));
|
|
59
|
+
}, [relation, attributes]);
|
|
48
60
|
var relationAttrTypes = react_1.useMemo(function () { return mdm_sdk_1.getRelationAttributesList(metadata, relationTypeUri); }, [
|
|
49
61
|
relationTypeUri,
|
|
50
62
|
metadata
|
|
51
63
|
]);
|
|
52
|
-
|
|
64
|
+
var availableEntityTypeUris = react_1.useMemo(function () {
|
|
65
|
+
return isRelationTypeSelected
|
|
66
|
+
? mdm_sdk_1.getSuitableEntityTypeUrisForRelationTypes(direction === mdm_sdk_1.Directions.OUT, metadata, [
|
|
67
|
+
mdm_sdk_1.getRelationType(metadata, relationTypeUri)
|
|
68
|
+
])
|
|
69
|
+
: ramda_1.uniq(mdm_sdk_1.getSuitableEntityTypeUrisForRelationTypes(true, metadata, outRelationTypes).concat(mdm_sdk_1.getSuitableEntityTypeUrisForRelationTypes(false, metadata, inRelationTypes)));
|
|
70
|
+
}, [isRelationTypeSelected, relationTypeUri, metadata, inRelationTypes, outRelationTypes]);
|
|
71
|
+
var globalSearchRequestOptions = react_redux_1.useSelector(function (state) {
|
|
72
|
+
return mdm_module_1.default.selectors.getGlobalSearchRequestOptions(state, ['ovOnly']);
|
|
73
|
+
});
|
|
74
|
+
var selectorCompatibleRelation = react_1.useMemo(function () {
|
|
75
|
+
return relation && {
|
|
76
|
+
relationType: relation.type,
|
|
77
|
+
direction: relation.direction
|
|
78
|
+
};
|
|
79
|
+
}, [relation]);
|
|
80
|
+
var selectorCompatibleEntity = react_1.useMemo(function () {
|
|
81
|
+
return entity && {
|
|
82
|
+
entityUri: entity.uri,
|
|
83
|
+
entityType: entity.type,
|
|
84
|
+
entityLabel: mdm_sdk_1.getLabel(entity.label)
|
|
85
|
+
};
|
|
86
|
+
}, [entity]);
|
|
87
|
+
var availableInRelationTypes = react_1.useMemo(function () {
|
|
88
|
+
return entity && entity.uri
|
|
89
|
+
? inRelationTypes.filter(mdm_sdk_1.isAvailableRelationBetweenEntities(false, entity, relatedEntity, metadata))
|
|
90
|
+
: inRelationTypes;
|
|
91
|
+
}, [entity, inRelationTypes, relatedEntity, metadata]);
|
|
92
|
+
var availableOutRelationTypes = react_1.useMemo(function () {
|
|
93
|
+
return entity && entity.uri
|
|
94
|
+
? outRelationTypes.filter(mdm_sdk_1.isAvailableRelationBetweenEntities(true, entity, relatedEntity, metadata))
|
|
95
|
+
: outRelationTypes;
|
|
96
|
+
}, [entity, outRelationTypes, relatedEntity, metadata]);
|
|
97
|
+
react_1.useEffect(function () {
|
|
98
|
+
// autoselecting relation type on mount
|
|
99
|
+
var _a = mdm_sdk_1.getDefaultRelationTypeObject(inRelationTypes, outRelationTypes) || {}, type = _a.type, direction = _a.direction;
|
|
100
|
+
if (!relationTypeUri && type && onChangeRelationType) {
|
|
101
|
+
onChangeRelationType({ type: type.uri, direction: direction });
|
|
102
|
+
}
|
|
103
|
+
}, [relationTypeUri, inRelationTypes, outRelationTypes, onChangeRelationType]);
|
|
104
|
+
hooks_1.useDidUpdateEffect(function () {
|
|
105
|
+
// autoselecting relation type on entity change
|
|
106
|
+
var _a = mdm_sdk_1.getDefaultRelationTypeObject(availableInRelationTypes, availableOutRelationTypes) || {}, type = _a.type, direction = _a.direction;
|
|
107
|
+
if (!relationTypeUri && type) {
|
|
108
|
+
onChangeRelationType({ type: type.uri, direction: direction });
|
|
109
|
+
}
|
|
110
|
+
}, [relationTypeUri, entity, availableInRelationTypes, availableOutRelationTypes, onChangeEntity]);
|
|
111
|
+
var handleChangeRelationType = react_1.useCallback(function (_a) {
|
|
112
|
+
var type = _a.type, direction = _a.direction;
|
|
113
|
+
onChangeRelationType({ type: type.uri, direction: direction });
|
|
114
|
+
}, [onChangeRelationType]);
|
|
115
|
+
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
116
|
+
onChangeRelationType && (react_1.default.createElement(ConnectionRelationTypeSelector_1.default, { className: styles.item, relation: selectorCompatibleRelation, metadata: metadata, inRelationTypes: inRelationTypes, outRelationTypes: outRelationTypes, onChange: handleChangeRelationType })),
|
|
117
|
+
onChangeEntity && (react_1.default.createElement(ErrorWrapper_1.default, { errorMessage: entityErrorMessage, className: styles.item },
|
|
118
|
+
react_1.default.createElement(EntitySelector_1.default, { key: relationTypeUri, className: classnames_1.default((_b = {}, _b[styles.dense] = entityErrorMessage, _b)), entity: selectorCompatibleEntity || {}, entityTypesUris: availableEntityTypeUris, max: 20, globalSearchRequestOptions: globalSearchRequestOptions, mode: mdm_sdk_1.ModeTypes.EDITING, onChange: onChangeEntity, onCreate: undefined, metadata: metadata, attributeTypesSelectionStrategy: undefined }))),
|
|
119
|
+
relationTypeUri && (react_1.default.createElement(AttributesList_1.default, { attrTypes: relationAttrTypes, entity: attributeListEntity, showEmptyEditors: showEmptyEditors, mode: mdm_sdk_1.ModeTypes.EDITING, parentUri: relationUri, onAddAttributes: onAddAttributes, onChangeAttribute: onChangeAttribute, onDeleteAttribute: onRemoveAttribute }))));
|
|
53
120
|
};
|
|
54
121
|
exports.ConnectionEditor = ConnectionEditor;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const useStyles: (props?: any) => import("@material-ui/core/styles/withStyles").ClassNameMap<"item" | "dense">;
|