@reltio/components 1.4.2176 → 1.4.2178
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/AdvancedSearchFabButton/AdvancedSearchFabButton.d.ts +1 -1
- package/AdvancedSearchFabButton/AdvancedSearchFabButton.js +5 -4
- package/FacetsSelector/FacetsSelector.d.ts +13 -0
- package/FacetsSelector/FacetsSelector.js +31 -0
- package/FacetsSelector/FacetsSelector.module.css.js +9 -0
- package/FacetsSelector/components/AttributeSelectorPopup/AttributeSelectorPopup.d.ts +15 -0
- package/FacetsSelector/components/AttributeSelectorPopup/AttributeSelectorPopup.js +77 -0
- package/FacetsSelector/components/AttributeSelectorPopup/AttributeSelectorPopup.module.css.js +9 -0
- package/FacetsSelector/components/AttributeSelectorPopup/index.d.ts +1 -0
- package/FacetsSelector/components/AttributeSelectorPopup/index.js +1 -0
- package/FacetsSelector/components/FacetsList/FacetsList.d.ts +17 -0
- package/FacetsSelector/components/FacetsList/FacetsList.js +52 -0
- package/FacetsSelector/components/FacetsList/FacetsList.module.css.js +9 -0
- package/FacetsSelector/components/FacetsList/index.d.ts +1 -0
- package/FacetsSelector/components/FacetsList/index.js +1 -0
- package/FacetsSelector/constants.d.ts +6 -0
- package/FacetsSelector/constants.js +6 -0
- package/FacetsSelector/helpers.d.ts +16 -0
- package/FacetsSelector/helpers.js +62 -0
- package/FacetsSelector/helpers.test.d.ts +1 -0
- package/FacetsSelector/helpers.test.js +26 -0
- package/FacetsSelector/index.d.ts +2 -0
- package/FacetsSelector/index.js +1 -0
- package/FacetsSelector/types.d.ts +11 -0
- package/FacetsSelector/types.js +1 -0
- package/InlineSimpleAttribute/InlineSimpleAttribute.js +4 -1
- package/InlineSimpleAttribute/InlineSimpleAttribute.spec.js +63 -4
- package/QuickFiltersFacetPanel/QuickFiltersFacetPanel.d.ts +1 -1
- package/QuickFiltersFacetPanel/QuickFiltersFacetPanel.js +1 -1
- package/cjs/AdvancedSearchFabButton/AdvancedSearchFabButton.d.ts +1 -1
- package/cjs/AdvancedSearchFabButton/AdvancedSearchFabButton.js +28 -5
- package/cjs/FacetsSelector/FacetsSelector.d.ts +13 -0
- package/cjs/FacetsSelector/FacetsSelector.js +61 -0
- package/cjs/FacetsSelector/FacetsSelector.module.css.js +9 -0
- package/cjs/FacetsSelector/components/AttributeSelectorPopup/AttributeSelectorPopup.d.ts +15 -0
- package/cjs/FacetsSelector/components/AttributeSelectorPopup/AttributeSelectorPopup.js +107 -0
- package/cjs/FacetsSelector/components/AttributeSelectorPopup/AttributeSelectorPopup.module.css.js +9 -0
- package/cjs/FacetsSelector/components/AttributeSelectorPopup/index.d.ts +1 -0
- package/cjs/FacetsSelector/components/AttributeSelectorPopup/index.js +5 -0
- package/cjs/FacetsSelector/components/FacetsList/FacetsList.d.ts +17 -0
- package/cjs/FacetsSelector/components/FacetsList/FacetsList.js +82 -0
- package/cjs/FacetsSelector/components/FacetsList/FacetsList.module.css.js +9 -0
- package/cjs/FacetsSelector/components/FacetsList/index.d.ts +1 -0
- package/cjs/FacetsSelector/components/FacetsList/index.js +5 -0
- package/cjs/FacetsSelector/constants.d.ts +6 -0
- package/cjs/FacetsSelector/constants.js +9 -0
- package/cjs/FacetsSelector/helpers.d.ts +16 -0
- package/cjs/FacetsSelector/helpers.js +68 -0
- package/cjs/FacetsSelector/helpers.test.d.ts +1 -0
- package/cjs/FacetsSelector/helpers.test.js +28 -0
- package/cjs/FacetsSelector/index.d.ts +2 -0
- package/cjs/FacetsSelector/index.js +5 -0
- package/cjs/FacetsSelector/types.d.ts +11 -0
- package/cjs/FacetsSelector/types.js +2 -0
- package/cjs/InlineSimpleAttribute/InlineSimpleAttribute.js +4 -1
- package/cjs/InlineSimpleAttribute/InlineSimpleAttribute.spec.js +62 -3
- package/cjs/QuickFiltersFacetPanel/QuickFiltersFacetPanel.d.ts +1 -1
- package/cjs/QuickFiltersFacetPanel/QuickFiltersFacetPanel.js +1 -1
- package/cjs/index.d.ts +1 -0
- package/cjs/index.js +6 -4
- package/index.d.ts +1 -0
- package/index.js +1 -0
- package/package.json +2 -2
|
@@ -10,6 +10,29 @@ var __assign = (this && this.__assign) || function () {
|
|
|
10
10
|
};
|
|
11
11
|
return __assign.apply(this, arguments);
|
|
12
12
|
};
|
|
13
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
16
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
17
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
18
|
+
}
|
|
19
|
+
Object.defineProperty(o, k2, desc);
|
|
20
|
+
}) : (function(o, m, k, k2) {
|
|
21
|
+
if (k2 === undefined) k2 = k;
|
|
22
|
+
o[k2] = m[k];
|
|
23
|
+
}));
|
|
24
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
25
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
26
|
+
}) : function(o, v) {
|
|
27
|
+
o["default"] = v;
|
|
28
|
+
});
|
|
29
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
30
|
+
if (mod && mod.__esModule) return mod;
|
|
31
|
+
var result = {};
|
|
32
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
33
|
+
__setModuleDefault(result, mod);
|
|
34
|
+
return result;
|
|
35
|
+
};
|
|
13
36
|
var __rest = (this && this.__rest) || function (s, e) {
|
|
14
37
|
var t = {};
|
|
15
38
|
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
@@ -26,7 +49,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
26
49
|
};
|
|
27
50
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
28
51
|
exports.AdvancedSearchFabButton = void 0;
|
|
29
|
-
var react_1 =
|
|
52
|
+
var react_1 = __importStar(require("react"));
|
|
30
53
|
var ui_i18n_1 = __importDefault(require("ui-i18n"));
|
|
31
54
|
var Fab_1 = __importDefault(require("@mui/material/Fab"));
|
|
32
55
|
var Tune_1 = __importDefault(require("@mui/icons-material/Tune"));
|
|
@@ -34,11 +57,11 @@ var ChevronRight_1 = __importDefault(require("@mui/icons-material/ChevronRight")
|
|
|
34
57
|
var withTooltip_1 = require("../HOCs/withTooltip");
|
|
35
58
|
var AdvancedSearchFabButton_module_css_1 = __importDefault(require("./AdvancedSearchFabButton.module.css"));
|
|
36
59
|
var FabButtonWithTooltip = (0, withTooltip_1.withTooltip)(Fab_1.default);
|
|
37
|
-
|
|
60
|
+
exports.AdvancedSearchFabButton = (0, react_1.forwardRef)(function (_a, ref) {
|
|
38
61
|
var tooltipTitle = _a.tooltipTitle, onClick = _a.onClick, otherProps = __rest(_a, ["tooltipTitle", "onClick"]);
|
|
39
|
-
return (react_1.default.createElement(FabButtonWithTooltip, __assign({ tooltipTitle: tooltipTitle || ui_i18n_1.default.text('Open advanced search'), tooltipPlacement: "bottom-end", variant: "extended", classes: { root: AdvancedSearchFabButton_module_css_1.default.buttonRoot, extended: AdvancedSearchFabButton_module_css_1.default.buttonExtended }, onClick: onClick, "data-reltio-id": "reltio-advanced-search-fab-button" }, otherProps),
|
|
62
|
+
return (react_1.default.createElement(FabButtonWithTooltip, __assign({ tooltipTitle: tooltipTitle || ui_i18n_1.default.text('Open advanced search'), tooltipPlacement: "bottom-end", variant: "extended", classes: { root: AdvancedSearchFabButton_module_css_1.default.buttonRoot, extended: AdvancedSearchFabButton_module_css_1.default.buttonExtended }, onClick: onClick, "data-reltio-id": "reltio-advanced-search-fab-button", ref: ref }, otherProps),
|
|
40
63
|
react_1.default.createElement(Tune_1.default, { color: "primary", className: AdvancedSearchFabButton_module_css_1.default.menuIcon }),
|
|
41
64
|
react_1.default.createElement("span", { className: AdvancedSearchFabButton_module_css_1.default.buttonLabel }, ui_i18n_1.default.text('Advanced search')),
|
|
42
65
|
react_1.default.createElement(ChevronRight_1.default, { color: "action", className: AdvancedSearchFabButton_module_css_1.default.goToActionIcon })));
|
|
43
|
-
};
|
|
44
|
-
exports.AdvancedSearchFabButton = AdvancedSearchFabButton;
|
|
66
|
+
});
|
|
67
|
+
exports.AdvancedSearchFabButton.displayName = 'AdvancedSearchFabButton';
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { FacetConfig } from '@reltio/mdm-sdk';
|
|
3
|
+
import { MoreFacetItem } from './types';
|
|
4
|
+
type Props = {
|
|
5
|
+
open?: boolean;
|
|
6
|
+
data?: MoreFacetItem[];
|
|
7
|
+
selectedFacets: FacetConfig[];
|
|
8
|
+
onOpen: () => void;
|
|
9
|
+
onClose: () => void;
|
|
10
|
+
onFacetToggle: (item: FacetConfig, selected: boolean) => void;
|
|
11
|
+
};
|
|
12
|
+
export declare const FacetsSelector: ({ open, data, selectedFacets, onOpen, onClose, onFacetToggle }: Props) => React.JSX.Element;
|
|
13
|
+
export default FacetsSelector;
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
exports.FacetsSelector = void 0;
|
|
30
|
+
var react_1 = __importStar(require("react"));
|
|
31
|
+
var ui_i18n_1 = __importDefault(require("ui-i18n"));
|
|
32
|
+
var AttributeSelectorPopup_1 = require("./components/AttributeSelectorPopup");
|
|
33
|
+
var SearchInput_1 = require("../SearchInput");
|
|
34
|
+
var helpers_1 = require("./helpers");
|
|
35
|
+
var FacetsSelector_module_css_1 = __importDefault(require("./FacetsSelector.module.css"));
|
|
36
|
+
var FacetsSelector = function (_a) {
|
|
37
|
+
var open = _a.open, data = _a.data, selectedFacets = _a.selectedFacets, onOpen = _a.onOpen, onClose = _a.onClose, onFacetToggle = _a.onFacetToggle;
|
|
38
|
+
var _b = (0, react_1.useState)(''), filterText = _b[0], setFilterText = _b[1];
|
|
39
|
+
var _c = (0, react_1.useState)(null), lastFacetClicked = _c[0], setLastFacetClicked = _c[1];
|
|
40
|
+
var searchInputRootRef = (0, react_1.useRef)(null);
|
|
41
|
+
var filteredList = (0, react_1.useMemo)(function () { return (filterText ? (0, helpers_1.filterItemsInGroups)(data, filterText) : data); }, [data, filterText]);
|
|
42
|
+
var showSearchInput = function () { return searchInputRootRef.current.scrollIntoView(true); };
|
|
43
|
+
var handleClose = (0, react_1.useCallback)(function () {
|
|
44
|
+
onClose();
|
|
45
|
+
setFilterText('');
|
|
46
|
+
setLastFacetClicked(null);
|
|
47
|
+
}, [onClose]);
|
|
48
|
+
var handleListItemClick = (0, react_1.useCallback)(function (facetConfig, checked, groupId) {
|
|
49
|
+
setLastFacetClicked({ facetConfig: facetConfig, groupId: groupId });
|
|
50
|
+
onFacetToggle(facetConfig, checked);
|
|
51
|
+
}, [onFacetToggle]);
|
|
52
|
+
var handleOpen = (0, react_1.useCallback)(function () {
|
|
53
|
+
showSearchInput();
|
|
54
|
+
onOpen();
|
|
55
|
+
}, [onOpen]);
|
|
56
|
+
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
57
|
+
react_1.default.createElement(SearchInput_1.SearchInput, { classes: { root: FacetsSelector_module_css_1.default.inputContainer }, onSearch: setFilterText, onFocus: handleOpen, rootRef: searchInputRootRef, value: filterText, placeholder: ui_i18n_1.default.text('Search & add attributes'), height: 40, "data-reltio-id": "reltio-search-more-facets-search-input" }),
|
|
58
|
+
react_1.default.createElement(AttributeSelectorPopup_1.AttributeSelectorPopup, { open: open, selectedFacets: selectedFacets, data: filteredList, lastFacetClicked: lastFacetClicked, anchorRef: searchInputRootRef, onListItemClick: handleListItemClick, onClose: handleClose, onSearch: setFilterText })));
|
|
59
|
+
};
|
|
60
|
+
exports.FacetsSelector = FacetsSelector;
|
|
61
|
+
exports.default = exports.FacetsSelector;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
const styles = {"inputContainer":"FacetsSelector-inputContainer--e6n0w"};
|
|
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 = `.FacetsSelector-inputContainer--e6n0w{flex-shrink:0;margin:4px 16px 16px}`;
|
|
7
|
+
head.appendChild(style);
|
|
8
|
+
}
|
|
9
|
+
module.exports = styles;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { FacetConfig } from '@reltio/mdm-sdk';
|
|
3
|
+
import { MoreFacetItem, SelectedFacet } from '../../types';
|
|
4
|
+
type Props = {
|
|
5
|
+
open?: boolean;
|
|
6
|
+
selectedFacets: FacetConfig[];
|
|
7
|
+
data?: MoreFacetItem[];
|
|
8
|
+
lastFacetClicked?: SelectedFacet;
|
|
9
|
+
anchorRef: React.RefObject<HTMLInputElement>;
|
|
10
|
+
onListItemClick: (item: FacetConfig, selected: boolean, groupId: string) => void;
|
|
11
|
+
onSearch?: (value?: string) => void;
|
|
12
|
+
onClose?: () => void;
|
|
13
|
+
};
|
|
14
|
+
export declare const AttributeSelectorPopup: ({ open, selectedFacets, data, lastFacetClicked, anchorRef, onListItemClick, onSearch, onClose }: Props) => React.JSX.Element;
|
|
15
|
+
export {};
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
exports.AttributeSelectorPopup = void 0;
|
|
30
|
+
var react_1 = __importStar(require("react"));
|
|
31
|
+
var ramda_1 = require("ramda");
|
|
32
|
+
var ui_i18n_1 = __importDefault(require("ui-i18n"));
|
|
33
|
+
var Typography_1 = __importDefault(require("@mui/material/Typography"));
|
|
34
|
+
var mdm_sdk_1 = require("@reltio/mdm-sdk");
|
|
35
|
+
var useKeyboardNavigation_1 = require("../../../hooks/useKeyboardNavigation");
|
|
36
|
+
var helpers_1 = require("../../helpers");
|
|
37
|
+
var VirtualGroupedList_1 = require("../../../VirtualGroupedList");
|
|
38
|
+
var FacetsList_1 = require("../FacetsList");
|
|
39
|
+
var SelectionPopup_1 = require("../../../SelectionPopup");
|
|
40
|
+
var constants_1 = require("../../constants");
|
|
41
|
+
var AttributeSelectorPopup_module_css_1 = __importDefault(require("./AttributeSelectorPopup.module.css"));
|
|
42
|
+
var defaultLastFacetClicked = {};
|
|
43
|
+
var AttributeSelectorPopup = function (_a) {
|
|
44
|
+
var _b, _c;
|
|
45
|
+
var open = _a.open, selectedFacets = _a.selectedFacets, _d = _a.data, data = _d === void 0 ? [] : _d, _e = _a.lastFacetClicked, lastFacetClicked = _e === void 0 ? defaultLastFacetClicked : _e, anchorRef = _a.anchorRef, onListItemClick = _a.onListItemClick, onSearch = _a.onSearch, onClose = _a.onClose;
|
|
46
|
+
var _f = (0, react_1.useState)(constants_1.DEFAULT_LIST_HEIGHT), listHeight = _f[0], setListHeight = _f[1];
|
|
47
|
+
var _g = (0, helpers_1.adjustVerticalPopupLayout)(anchorRef.current, constants_1.DEFAULT_ATTRIBUTE_SELECTOR_POPUP_HEIGHT), verticalOrigin = _g.verticalOrigin, _h = _g.popupHeight, popupHeight = _h === void 0 ? constants_1.DEFAULT_ATTRIBUTE_SELECTOR_POPUP_HEIGHT : _h;
|
|
48
|
+
var maxListHeight = popupHeight - constants_1.POPUP_HEADER_HEIGHT;
|
|
49
|
+
(0, react_1.useEffect)(function () {
|
|
50
|
+
setListHeight(maxListHeight);
|
|
51
|
+
}, [maxListHeight]);
|
|
52
|
+
var handleResizeList = (0, react_1.useCallback)(function (width, height) { return setListHeight((0, ramda_1.clamp)(constants_1.MIN_LIST_HEIGHT, maxListHeight, height)); }, [maxListHeight]);
|
|
53
|
+
var popupActionRef = (0, react_1.useRef)();
|
|
54
|
+
(0, react_1.useEffect)(function () {
|
|
55
|
+
var updatePopupPosition = (0, ramda_1.path)(['current', 'updatePosition'], popupActionRef);
|
|
56
|
+
if (updatePopupPosition)
|
|
57
|
+
updatePopupPosition();
|
|
58
|
+
}, [listHeight]);
|
|
59
|
+
var getFacetGroupData = (0, react_1.useCallback)(function (item, groupId, level) {
|
|
60
|
+
if (level === void 0) { level = 0; }
|
|
61
|
+
return [
|
|
62
|
+
{
|
|
63
|
+
type: 'item',
|
|
64
|
+
item: item,
|
|
65
|
+
moveTo: (0, ramda_1.has)('facetConfig')(lastFacetClicked) &&
|
|
66
|
+
lastFacetClicked.facetConfig.fieldName === item.fieldName &&
|
|
67
|
+
groupId === lastFacetClicked.groupId,
|
|
68
|
+
level: level,
|
|
69
|
+
groupId: groupId
|
|
70
|
+
}
|
|
71
|
+
]
|
|
72
|
+
.concat(item.children
|
|
73
|
+
? item.children.flatMap(function (subItem) { return getFacetGroupData(subItem, groupId, level + 1); })
|
|
74
|
+
: [])
|
|
75
|
+
.flat()
|
|
76
|
+
.filter(function (item) { return !item.item.hide; });
|
|
77
|
+
}, [lastFacetClicked]);
|
|
78
|
+
var getFacetsData = (0, react_1.useCallback)(function (data) {
|
|
79
|
+
return data
|
|
80
|
+
.map(function (group) { return ({
|
|
81
|
+
type: 'group',
|
|
82
|
+
item: group,
|
|
83
|
+
items: group.facets.filter(function (item) { return !item.hide; }).map(function (item) { return getFacetGroupData(item, group.id); })
|
|
84
|
+
}); })
|
|
85
|
+
.filter(function (group) { return group.items.length; });
|
|
86
|
+
}, [getFacetGroupData]);
|
|
87
|
+
var groupedItems = (0, react_1.useMemo)(function () { return getFacetsData(data); }, [data, getFacetsData]);
|
|
88
|
+
var items = (0, react_1.useMemo)(function () { return (0, VirtualGroupedList_1.flattenGroupedItemsData)(groupedItems); }, [groupedItems]);
|
|
89
|
+
var popupOrigin = (0, helpers_1.constructPopoverOrigin)(verticalOrigin);
|
|
90
|
+
var popupWidth = (_c = (_b = anchorRef.current) === null || _b === void 0 ? void 0 : _b.getBoundingClientRect().width) !== null && _c !== void 0 ? _c : 0;
|
|
91
|
+
var handleSearchOnEnter = (0, react_1.useCallback)(function (_a) {
|
|
92
|
+
var item = _a.item, groupData = _a.groupData;
|
|
93
|
+
onListItemClick(item, !(0, helpers_1.isSelectedFacet)({ facet: item, selectedFacets: selectedFacets }), groupData.groupId);
|
|
94
|
+
}, [onListItemClick, selectedFacets]);
|
|
95
|
+
var _j = (0, useKeyboardNavigation_1.useKeyboardNavigation)({
|
|
96
|
+
items: items,
|
|
97
|
+
open: open,
|
|
98
|
+
onSelectFocusedItem: handleSearchOnEnter,
|
|
99
|
+
selectedItems: selectedFacets
|
|
100
|
+
}), focusIndex = _j.focusIndex, handleKeyDown = _j.handleKeyDown;
|
|
101
|
+
var containerWidth = Math.max(popupWidth || (0, mdm_sdk_1.getMaxItemWidth)('title')(groupedItems), constants_1.DEFAULT_MIN_CONTAINER_WIDTH);
|
|
102
|
+
return (react_1.default.createElement(SelectionPopup_1.SelectionPopup, { open: open, action: popupActionRef, title: ui_i18n_1.default.text('Select attribute'), containerWidth: containerWidth, searchInputOnKeyDown: handleKeyDown, containerHeight: constants_1.POPUP_HEADER_HEIGHT + listHeight, anchorOrigin: popupOrigin, transformOrigin: popupOrigin, headerPlacement: verticalOrigin === 'bottom' ? 'bottom' : 'top', anchorEl: anchorRef.current, disableRestoreFocus: true, onSearch: onSearch, onClose: onClose },
|
|
103
|
+
react_1.default.createElement(FacetsList_1.FacetsList, { focusIndex: focusIndex, selectedFacets: selectedFacets, onListItemClick: onListItemClick, items: items, height: listHeight, onInnerContainerResize: handleResizeList }),
|
|
104
|
+
items.length === 0 && (react_1.default.createElement("div", { className: AttributeSelectorPopup_module_css_1.default.noResultsCaptionContainer },
|
|
105
|
+
react_1.default.createElement(Typography_1.default, { variant: "caption", display: "block", gutterBottom: true }, ui_i18n_1.default.text('No results found'))))));
|
|
106
|
+
};
|
|
107
|
+
exports.AttributeSelectorPopup = AttributeSelectorPopup;
|
package/cjs/FacetsSelector/components/AttributeSelectorPopup/AttributeSelectorPopup.module.css.js
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
const styles = {"noResultsCaptionContainer":"AttributeSelectorPopup-noResultsCaptionContainer--EjZUT"};
|
|
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 = `.AttributeSelectorPopup-noResultsCaptionContainer--EjZUT{align-items:center;bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0}`;
|
|
7
|
+
head.appendChild(style);
|
|
8
|
+
}
|
|
9
|
+
module.exports = styles;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { AttributeSelectorPopup } from './AttributeSelectorPopup';
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AttributeSelectorPopup = void 0;
|
|
4
|
+
var AttributeSelectorPopup_1 = require("./AttributeSelectorPopup");
|
|
5
|
+
Object.defineProperty(exports, "AttributeSelectorPopup", { enumerable: true, get: function () { return AttributeSelectorPopup_1.AttributeSelectorPopup; } });
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import React, { ComponentProps } from 'react';
|
|
2
|
+
import { AttributeType, FacetConfig } from '@reltio/mdm-sdk';
|
|
3
|
+
import { VirtualGroupedList } from '../../../VirtualGroupedList';
|
|
4
|
+
type Data = {
|
|
5
|
+
fieldName: string;
|
|
6
|
+
title: string;
|
|
7
|
+
filterText?: string;
|
|
8
|
+
attrType: AttributeType;
|
|
9
|
+
LogoIcon?: React.ElementType;
|
|
10
|
+
};
|
|
11
|
+
type Props = Omit<ComponentProps<typeof VirtualGroupedList>, 'renderItem' | 'getItemSize'> & {
|
|
12
|
+
focusIndex: number;
|
|
13
|
+
selectedFacets: FacetConfig[];
|
|
14
|
+
onListItemClick: (data: Data, checked: boolean, groupId: string) => void;
|
|
15
|
+
};
|
|
16
|
+
export declare const FacetsList: ({ onListItemClick, focusIndex, selectedFacets, ...otherProps }: Props) => React.JSX.Element;
|
|
17
|
+
export {};
|
|
@@ -0,0 +1,82 @@
|
|
|
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
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
16
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
17
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
18
|
+
}
|
|
19
|
+
Object.defineProperty(o, k2, desc);
|
|
20
|
+
}) : (function(o, m, k, k2) {
|
|
21
|
+
if (k2 === undefined) k2 = k;
|
|
22
|
+
o[k2] = m[k];
|
|
23
|
+
}));
|
|
24
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
25
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
26
|
+
}) : function(o, v) {
|
|
27
|
+
o["default"] = v;
|
|
28
|
+
});
|
|
29
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
30
|
+
if (mod && mod.__esModule) return mod;
|
|
31
|
+
var result = {};
|
|
32
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
33
|
+
__setModuleDefault(result, mod);
|
|
34
|
+
return result;
|
|
35
|
+
};
|
|
36
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
37
|
+
var t = {};
|
|
38
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
39
|
+
t[p] = s[p];
|
|
40
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
41
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
42
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
43
|
+
t[p[i]] = s[p[i]];
|
|
44
|
+
}
|
|
45
|
+
return t;
|
|
46
|
+
};
|
|
47
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
48
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
49
|
+
};
|
|
50
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
51
|
+
exports.FacetsList = void 0;
|
|
52
|
+
var react_1 = __importStar(require("react"));
|
|
53
|
+
var ListItem_1 = __importDefault(require("@mui/material/ListItem"));
|
|
54
|
+
var helpers_1 = require("../../helpers");
|
|
55
|
+
var AttributeListItem_1 = require("../../../AttributeListItem");
|
|
56
|
+
var VirtualGroupedList_1 = require("../../../VirtualGroupedList");
|
|
57
|
+
var Highlighter_1 = require("../../../Highlighter");
|
|
58
|
+
var AttributeGroupIcon_1 = require("../../../AttributeGroupIcon");
|
|
59
|
+
var constants_1 = require("../../constants");
|
|
60
|
+
var MdmModuleContext_1 = require("../../../contexts/MdmModuleContext");
|
|
61
|
+
var FacetsList_module_css_1 = __importDefault(require("./FacetsList.module.css"));
|
|
62
|
+
var ITEM_GROUP_TITLE_HEIGHT = 40;
|
|
63
|
+
var FacetsList = function (_a) {
|
|
64
|
+
var onListItemClick = _a.onListItemClick, focusIndex = _a.focusIndex, selectedFacets = _a.selectedFacets, otherProps = __rest(_a, ["onListItemClick", "focusIndex", "selectedFacets"]);
|
|
65
|
+
var selectedFacetsRef = (0, react_1.useRef)(null);
|
|
66
|
+
selectedFacetsRef.current = selectedFacets;
|
|
67
|
+
var focusIndexRef = (0, react_1.useRef)(null);
|
|
68
|
+
focusIndexRef.current = focusIndex;
|
|
69
|
+
var metadata = (0, MdmModuleContext_1.useMdmMetadata)();
|
|
70
|
+
var renderItem = (0, react_1.useCallback)(function (style, _a, index) {
|
|
71
|
+
var item = _a.item, level = _a.level, groupId = _a.groupId;
|
|
72
|
+
var checked = (0, helpers_1.isSelectedFacet)({ facet: item, selectedFacets: selectedFacetsRef.current });
|
|
73
|
+
var isFocused = focusIndexRef.current === index;
|
|
74
|
+
return (react_1.default.createElement(AttributeListItem_1.AttributeListItem, { key: "item-".concat(groupId, "-").concat(item.fieldName), onClick: onListItemClick, data: item, label: react_1.default.createElement(Highlighter_1.Highlighter, { text: item.title, highlight: item.filterText }), labelInText: item.title, level: level, style: style, checked: checked, isFocused: isFocused, groupId: groupId, LogoIcon: item.LogoIcon }));
|
|
75
|
+
}, [onListItemClick]);
|
|
76
|
+
var renderGroupTitle = (0, react_1.useCallback)(function (style, item) { return (react_1.default.createElement(ListItem_1.default, { component: 'div', className: FacetsList_module_css_1.default.subHeader, style: style, key: "group-".concat(item.item.id) },
|
|
77
|
+
item.item.needGroupIcon && react_1.default.createElement(AttributeGroupIcon_1.AttributeGroupIcon, { metadata: metadata, group: item.item }),
|
|
78
|
+
item.item.title)); }, [metadata]);
|
|
79
|
+
var getItemSize = (0, react_1.useCallback)(function (i, item) { return (item.items ? ITEM_GROUP_TITLE_HEIGHT : constants_1.FACET_LIST_ITEM_HEIGHT); }, []);
|
|
80
|
+
return (react_1.default.createElement(VirtualGroupedList_1.VirtualGroupedList, __assign({ getItemSize: getItemSize, renderGroupTitle: renderGroupTitle, renderItem: renderItem, focusIndex: focusIndex }, otherProps, { disableHorizontalScrollbar: true })));
|
|
81
|
+
};
|
|
82
|
+
exports.FacetsList = FacetsList;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
const styles = {"subHeader":"FacetsList-subHeader--jcWLn","icon":"FacetsList-icon--HO3ZO","recommendedIcon":"FacetsList-recommendedIcon--ekXsX"};
|
|
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 = `.FacetsList-subHeader--jcWLn{align-items:center;background-color:#f5f5f5;color:rgba(0,0,0,.84);display:flex;font-size:14px;font-weight:500;margin:0;padding:0 16px}.FacetsList-subHeader--jcWLn .FacetsList-icon--HO3ZO{margin-right:16px;max-height:25px;max-width:25px}.FacetsList-recommendedIcon--ekXsX:is(.FacetsList-subHeader--jcWLn .FacetsList-icon--HO3ZO){height:20px;width:20px}`;
|
|
7
|
+
head.appendChild(style);
|
|
8
|
+
}
|
|
9
|
+
module.exports = styles;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { FacetsList } from './FacetsList';
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FacetsList = void 0;
|
|
4
|
+
var FacetsList_1 = require("./FacetsList");
|
|
5
|
+
Object.defineProperty(exports, "FacetsList", { enumerable: true, get: function () { return FacetsList_1.FacetsList; } });
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export declare const FACET_LIST_ITEM_HEIGHT = 28;
|
|
2
|
+
export declare const DEFAULT_LIST_HEIGHT = 464;
|
|
3
|
+
export declare const DEFAULT_MIN_CONTAINER_WIDTH = 240;
|
|
4
|
+
export declare const MIN_LIST_HEIGHT: number;
|
|
5
|
+
export declare const POPUP_HEADER_HEIGHT = 110;
|
|
6
|
+
export declare const DEFAULT_ATTRIBUTE_SELECTOR_POPUP_HEIGHT: number;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DEFAULT_ATTRIBUTE_SELECTOR_POPUP_HEIGHT = exports.POPUP_HEADER_HEIGHT = exports.MIN_LIST_HEIGHT = exports.DEFAULT_MIN_CONTAINER_WIDTH = exports.DEFAULT_LIST_HEIGHT = exports.FACET_LIST_ITEM_HEIGHT = void 0;
|
|
4
|
+
exports.FACET_LIST_ITEM_HEIGHT = 28;
|
|
5
|
+
exports.DEFAULT_LIST_HEIGHT = 464;
|
|
6
|
+
exports.DEFAULT_MIN_CONTAINER_WIDTH = 240;
|
|
7
|
+
exports.MIN_LIST_HEIGHT = exports.FACET_LIST_ITEM_HEIGHT * 2;
|
|
8
|
+
exports.POPUP_HEADER_HEIGHT = 110;
|
|
9
|
+
exports.DEFAULT_ATTRIBUTE_SELECTOR_POPUP_HEIGHT = exports.POPUP_HEADER_HEIGHT + exports.DEFAULT_LIST_HEIGHT;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { PopoverOrigin } from '@mui/material/Popover';
|
|
2
|
+
import { MoreFacetItem } from './types';
|
|
3
|
+
declare const adjustVerticalPopupLayout: (anchorEl: HTMLElement, popupHeight: number) => {
|
|
4
|
+
verticalOrigin: "bottom" | "top";
|
|
5
|
+
popupHeight: number;
|
|
6
|
+
};
|
|
7
|
+
declare const filterItemsInGroups: (groups: MoreFacetItem[], filterText: string) => MoreFacetItem[];
|
|
8
|
+
declare const isSelectedFacet: ({ facet, selectedFacets }: {
|
|
9
|
+
facet: any;
|
|
10
|
+
selectedFacets: any;
|
|
11
|
+
}) => boolean;
|
|
12
|
+
declare const constructPopoverOrigin: (verticalOrigin: PopoverOrigin["vertical"], horizontalOrigin?: PopoverOrigin["horizontal"]) => {
|
|
13
|
+
vertical: number | "bottom" | "top" | "center";
|
|
14
|
+
horizontal: number | "left" | "right" | "center";
|
|
15
|
+
};
|
|
16
|
+
export { adjustVerticalPopupLayout, filterItemsInGroups, isSelectedFacet, constructPopoverOrigin };
|
|
@@ -0,0 +1,68 @@
|
|
|
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.constructPopoverOrigin = exports.isSelectedFacet = exports.filterItemsInGroups = exports.adjustVerticalPopupLayout = void 0;
|
|
15
|
+
var ramda_1 = require("ramda");
|
|
16
|
+
var adjustVerticalPopupLayout = function (anchorEl, popupHeight) {
|
|
17
|
+
var verticalOrigin = 'top';
|
|
18
|
+
var marginThreshold = 16;
|
|
19
|
+
if (anchorEl) {
|
|
20
|
+
var anchorRect = anchorEl.getBoundingClientRect();
|
|
21
|
+
var highestPoint = marginThreshold;
|
|
22
|
+
var lowestPoint = window.innerHeight - marginThreshold;
|
|
23
|
+
if (anchorRect.top + popupHeight > lowestPoint) {
|
|
24
|
+
if (anchorRect.bottom - popupHeight < highestPoint) {
|
|
25
|
+
var maxHeightToBottom = anchorRect.bottom - highestPoint;
|
|
26
|
+
var maxHeightToTop = lowestPoint - anchorRect.top;
|
|
27
|
+
popupHeight = Math.max(maxHeightToBottom, maxHeightToTop);
|
|
28
|
+
verticalOrigin = maxHeightToBottom > maxHeightToTop ? 'bottom' : 'top';
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
verticalOrigin = 'bottom';
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
return { verticalOrigin: verticalOrigin, popupHeight: popupHeight };
|
|
36
|
+
};
|
|
37
|
+
exports.adjustVerticalPopupLayout = adjustVerticalPopupLayout;
|
|
38
|
+
var filterItem = function (item, filterText) { var _a, _b; return (_b = (_a = item.title) === null || _a === void 0 ? void 0 : _a.toLowerCase().includes(filterText.toLowerCase())) !== null && _b !== void 0 ? _b : false; };
|
|
39
|
+
var filterItemsTree = function (item, filterText) {
|
|
40
|
+
return filterItem(item, filterText) || (item.children || []).some(function (child) { return filterItemsTree(child, filterText); });
|
|
41
|
+
};
|
|
42
|
+
var getFilteredFacets = function (facets, filterText) {
|
|
43
|
+
return (facets || [])
|
|
44
|
+
.map(function (facet) { return (__assign(__assign({}, facet), { hide: !filterItemsTree(facet, filterText), filterText: filterText })); })
|
|
45
|
+
.map(function (facet) {
|
|
46
|
+
var children = getFilteredFacets(facet.children, filterText);
|
|
47
|
+
return (0, ramda_1.isEmpty)(children)
|
|
48
|
+
? facet
|
|
49
|
+
: __assign(__assign({}, facet), { children: children });
|
|
50
|
+
});
|
|
51
|
+
};
|
|
52
|
+
var filterItemsInGroups = function (groups, filterText) {
|
|
53
|
+
return groups.map(function (group) { return (__assign(__assign({}, group), { facets: getFilteredFacets(group.facets, filterText) })); });
|
|
54
|
+
};
|
|
55
|
+
exports.filterItemsInGroups = filterItemsInGroups;
|
|
56
|
+
var isSelectedFacet = function (_a) {
|
|
57
|
+
var facet = _a.facet, selectedFacets = _a.selectedFacets;
|
|
58
|
+
return !!selectedFacets.find(function (selFacet) { return selFacet.fieldName === facet.fieldName || selFacet.fieldName.includes("".concat(facet.fieldName, ".")); });
|
|
59
|
+
};
|
|
60
|
+
exports.isSelectedFacet = isSelectedFacet;
|
|
61
|
+
var constructPopoverOrigin = function (verticalOrigin, horizontalOrigin) {
|
|
62
|
+
if (horizontalOrigin === void 0) { horizontalOrigin = 'right'; }
|
|
63
|
+
return {
|
|
64
|
+
vertical: verticalOrigin,
|
|
65
|
+
horizontal: horizontalOrigin
|
|
66
|
+
};
|
|
67
|
+
};
|
|
68
|
+
exports.constructPopoverOrigin = constructPopoverOrigin;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var helpers_1 = require("./helpers");
|
|
4
|
+
describe('helpers tests', function () {
|
|
5
|
+
describe('adjustVerticalPopupLayout tests', function () {
|
|
6
|
+
it('should return top vertical origin if popup fits to the bottom', function () {
|
|
7
|
+
var anchorEl = document.createElement('div');
|
|
8
|
+
anchorEl.getBoundingClientRect = jest.fn(function () {
|
|
9
|
+
return { top: 100, bottom: 200 };
|
|
10
|
+
});
|
|
11
|
+
var popupHeight = 50;
|
|
12
|
+
var result = (0, helpers_1.adjustVerticalPopupLayout)(anchorEl, popupHeight);
|
|
13
|
+
expect(result).toEqual({ verticalOrigin: 'top', popupHeight: popupHeight });
|
|
14
|
+
});
|
|
15
|
+
it('should return correct height', function () {
|
|
16
|
+
var originalInnerHeight = global.innerHeight;
|
|
17
|
+
global.innerHeight = 600;
|
|
18
|
+
var anchorEl = document.createElement('div');
|
|
19
|
+
anchorEl.getBoundingClientRect = jest.fn(function () {
|
|
20
|
+
return { top: 540, bottom: 580 };
|
|
21
|
+
});
|
|
22
|
+
var popupHeight = 574;
|
|
23
|
+
var result = (0, helpers_1.adjustVerticalPopupLayout)(anchorEl, popupHeight);
|
|
24
|
+
expect(result).toEqual({ verticalOrigin: 'bottom', popupHeight: 564 });
|
|
25
|
+
global.innerHeight = originalInnerHeight;
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
});
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FacetsSelector = void 0;
|
|
4
|
+
var FacetsSelector_1 = require("./FacetsSelector");
|
|
5
|
+
Object.defineProperty(exports, "FacetsSelector", { enumerable: true, get: function () { return FacetsSelector_1.FacetsSelector; } });
|
|
@@ -57,7 +57,10 @@ var InlineSimpleAttribute = function (_a) {
|
|
|
57
57
|
var id = (0, mdm_sdk_1.getLastUriPart)(attributeValue.uri);
|
|
58
58
|
var crosswalkDisabled = (0, mdm_sdk_1.isCrosswalkDisabled)(crosswalk);
|
|
59
59
|
var canModifyAttribute = !attributeType.system && !crosswalkDisabled;
|
|
60
|
-
var canEdit = canModifyAttribute &&
|
|
60
|
+
var canEdit = canModifyAttribute &&
|
|
61
|
+
!disableEdit &&
|
|
62
|
+
(0, mdm_sdk_1.checkMetadataForUpdate)(mdm_sdk_1.Mode.Editing, attributeType) &&
|
|
63
|
+
(!attributeValue.masked || isUnmaskingNeeded);
|
|
61
64
|
var canDelete = canModifyAttribute && !disableDelete && (0, mdm_sdk_1.checkMetadataForDelete)(mdm_sdk_1.Mode.Editing, attributeType);
|
|
62
65
|
var isTemporary = (0, mdm_sdk_1.isTempUri)(attributeValue.uri);
|
|
63
66
|
var hasBasicPermission = (0, mdm_sdk_1.checkBasicMetadataPermission)(mdm_sdk_1.MetadataPermissions.UPDATE, attributeType) && !disableEdit && canModifyAttribute;
|