@reltio/components 1.4.1266 → 1.4.1268

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. package/cjs/components/TenantIcon/TenantIcon.d.ts +7 -0
  2. package/cjs/components/TenantIcon/TenantIcon.js +44 -0
  3. package/cjs/components/TenantIcon/styles.d.ts +1 -0
  4. package/cjs/components/TenantIcon/styles.js +11 -0
  5. package/cjs/components/TenantsDropDownSelector/TenantMenuItem/TenantMenuItem.d.ts +12 -0
  6. package/cjs/components/TenantsDropDownSelector/TenantMenuItem/TenantMenuItem.js +45 -0
  7. package/cjs/components/TenantsDropDownSelector/TenantMenuItem/styles.d.ts +1 -0
  8. package/cjs/components/TenantsDropDownSelector/TenantMenuItem/styles.js +10 -0
  9. package/cjs/components/TenantsDropDownSelector/TenantsDropDownSelector.d.ts +9 -0
  10. package/cjs/components/TenantsDropDownSelector/TenantsDropDownSelector.js +69 -0
  11. package/cjs/components/TenantsDropDownSelector/styles.d.ts +1 -0
  12. package/cjs/components/TenantsDropDownSelector/styles.js +9 -0
  13. package/cjs/components/index.d.ts +2 -0
  14. package/cjs/components/index.js +5 -1
  15. package/esm/components/TenantIcon/TenantIcon.d.ts +7 -0
  16. package/esm/components/TenantIcon/TenantIcon.js +18 -0
  17. package/esm/components/TenantIcon/styles.d.ts +1 -0
  18. package/esm/components/TenantIcon/styles.js +8 -0
  19. package/esm/components/TenantsDropDownSelector/TenantMenuItem/TenantMenuItem.d.ts +12 -0
  20. package/esm/components/TenantsDropDownSelector/TenantMenuItem/TenantMenuItem.js +21 -0
  21. package/esm/components/TenantsDropDownSelector/TenantMenuItem/styles.d.ts +1 -0
  22. package/esm/components/TenantsDropDownSelector/TenantMenuItem/styles.js +7 -0
  23. package/esm/components/TenantsDropDownSelector/TenantsDropDownSelector.d.ts +9 -0
  24. package/esm/components/TenantsDropDownSelector/TenantsDropDownSelector.js +43 -0
  25. package/esm/components/TenantsDropDownSelector/styles.d.ts +1 -0
  26. package/esm/components/TenantsDropDownSelector/styles.js +6 -0
  27. package/esm/components/index.d.ts +2 -0
  28. package/esm/components/index.js +2 -0
  29. package/package.json +3 -3
@@ -0,0 +1,7 @@
1
+ /// <reference types="react" />
2
+ import { DataTenant } from '@reltio/mdm-sdk';
3
+ declare type Props = {
4
+ tenant: DataTenant;
5
+ };
6
+ export declare const TenantIcon: ({ tenant }: Props) => JSX.Element;
7
+ export {};
@@ -0,0 +1,44 @@
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
+ exports.TenantIcon = void 0;
26
+ var mdm_sdk_1 = require("@reltio/mdm-sdk");
27
+ var react_1 = __importStar(require("react"));
28
+ var ramda_1 = require("ramda");
29
+ var Typography_1 = __importDefault(require("@material-ui/core/Typography"));
30
+ var styles_1 = require("./styles");
31
+ var TenantIcon = function (_a) {
32
+ var tenant = _a.tenant;
33
+ var styles = styles_1.useStyles();
34
+ var wrapperStyle = react_1.useMemo(function () {
35
+ var bgColor = mdm_sdk_1.getTenantIconColor(tenant === null || tenant === void 0 ? void 0 : tenant.id);
36
+ return {
37
+ backgroundColor: bgColor,
38
+ color: mdm_sdk_1.getFontColor(bgColor)
39
+ };
40
+ }, [tenant === null || tenant === void 0 ? void 0 : tenant.id]);
41
+ return (react_1.default.createElement("div", { style: wrapperStyle, className: styles.root },
42
+ react_1.default.createElement(Typography_1.default, { variant: 'body2' }, ramda_1.toUpper(ramda_1.head(tenant === null || tenant === void 0 ? void 0 : tenant.name)))));
43
+ };
44
+ exports.TenantIcon = TenantIcon;
@@ -0,0 +1 @@
1
+ export declare const useStyles: (props?: any) => import("@material-ui/core/styles/withStyles").ClassNameMap<"root">;
@@ -0,0 +1,11 @@
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({
6
+ root: {
7
+ height: '18px',
8
+ width: '18px',
9
+ textAlign: 'center'
10
+ }
11
+ });
@@ -0,0 +1,12 @@
1
+ import React from 'react';
2
+ import { DataTenant } from '@reltio/mdm-sdk';
3
+ declare type Item = {
4
+ tenant: DataTenant;
5
+ onClick: (tenant: DataTenant) => void;
6
+ };
7
+ declare type Props = {
8
+ item: Item;
9
+ onMenuClose?: () => void;
10
+ };
11
+ declare const TenantMenuItem: React.ForwardRefExoticComponent<Props & React.RefAttributes<HTMLLIElement>>;
12
+ export default TenantMenuItem;
@@ -0,0 +1,45 @@
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 MenuItem_1 = __importDefault(require("@material-ui/core/MenuItem"));
27
+ var Typography_1 = __importDefault(require("@material-ui/core/Typography"));
28
+ var core_1 = require("../../../core");
29
+ var TenantIcon_1 = require("../../TenantIcon/TenantIcon");
30
+ var styles_1 = require("./styles");
31
+ var TenantMenuItem = react_1.forwardRef(function (_a, ref) {
32
+ var item = _a.item, _b = _a.onMenuClose, onMenuClose = _b === void 0 ? core_1.noop : _b;
33
+ var styles = styles_1.useStyles();
34
+ var tenant = item.tenant, onClick = item.onClick;
35
+ var handleClick = function () {
36
+ onMenuClose();
37
+ onClick(tenant);
38
+ };
39
+ var tenantCaption = tenant.label ? tenant.label + " : " + tenant.name : tenant.name;
40
+ return (react_1.default.createElement(MenuItem_1.default, { onClick: handleClick, ref: ref, className: styles.root },
41
+ react_1.default.createElement(TenantIcon_1.TenantIcon, { tenant: tenant }),
42
+ react_1.default.createElement(Typography_1.default, null, tenantCaption)));
43
+ });
44
+ TenantMenuItem.displayName = 'TenantMenuItem';
45
+ exports.default = TenantMenuItem;
@@ -0,0 +1 @@
1
+ export declare const useStyles: (props?: any) => import("@material-ui/core/styles/withStyles").ClassNameMap<"root">;
@@ -0,0 +1,10 @@
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({
6
+ root: {
7
+ minHeight: '48px',
8
+ gap: '30px'
9
+ }
10
+ });
@@ -0,0 +1,9 @@
1
+ /// <reference types="react" />
2
+ import { DataTenant } from '@reltio/mdm-sdk';
3
+ declare type Props = {
4
+ selectedTenant: DataTenant;
5
+ entityTypeUri: string;
6
+ onChangeTenant: (tenant: DataTenant) => void;
7
+ };
8
+ export declare const TenantsDropDownSelector: ({ entityTypeUri, onChangeTenant, selectedTenant }: Props) => JSX.Element;
9
+ export {};
@@ -0,0 +1,69 @@
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
+ exports.TenantsDropDownSelector = void 0;
26
+ var react_1 = __importStar(require("react"));
27
+ var react_redux_1 = require("react-redux");
28
+ var ramda_1 = require("ramda");
29
+ var ArrowDropDown_1 = __importDefault(require("@material-ui/icons/ArrowDropDown"));
30
+ var mdm_module_1 = __importDefault(require("@reltio/mdm-module"));
31
+ var mdm_sdk_1 = require("@reltio/mdm-sdk");
32
+ var index_1 = require("../index");
33
+ var TenantMenuItem_1 = __importDefault(require("./TenantMenuItem/TenantMenuItem"));
34
+ var styles_1 = require("./styles");
35
+ var TenantsDropDownSelector = function (_a) {
36
+ var entityTypeUri = _a.entityTypeUri, onChangeTenant = _a.onChangeTenant, selectedTenant = _a.selectedTenant;
37
+ var styles = styles_1.useStyles();
38
+ var dataTenants = react_redux_1.useSelector(mdm_module_1.default.selectors.getDataTenants);
39
+ var customerTenant = react_redux_1.useSelector(mdm_module_1.default.selectors.getTenantObject);
40
+ var menuItems = react_1.useMemo(function () {
41
+ return ramda_1.pipe(ramda_1.defaultTo([]), ramda_1.filter(mdm_sdk_1.isAvailableTenantForEntityType(entityTypeUri)), ramda_1.map(function (dataTenant) { return ({
42
+ tenant: dataTenant,
43
+ onClick: onChangeTenant
44
+ }); }), ramda_1.prepend({
45
+ tenant: customerTenant,
46
+ onClick: onChangeTenant
47
+ }))(dataTenants);
48
+ }, [dataTenants, entityTypeUri, onChangeTenant, customerTenant]);
49
+ if (mdm_sdk_1.isEmptyValue(dataTenants) || !onChangeTenant) {
50
+ return null;
51
+ }
52
+ return (react_1.default.createElement(index_1.DropDownMenuButton, { menuId: 'tenantSelector', MenuItemRenderer: TenantMenuItem_1.default, buttonContent: react_1.default.createElement(index_1.TenantIcon, { tenant: selectedTenant }), menuItems: menuItems, buttonProps: {
53
+ variant: 'outlined',
54
+ endIcon: react_1.default.createElement(ArrowDropDown_1.default, null),
55
+ classes: {
56
+ root: styles.menuButtonRoot
57
+ }
58
+ }, popoverProps: {
59
+ anchorOrigin: {
60
+ vertical: 'bottom',
61
+ horizontal: 'left'
62
+ },
63
+ transformOrigin: {
64
+ vertical: 'top',
65
+ horizontal: 'left'
66
+ }
67
+ } }));
68
+ };
69
+ exports.TenantsDropDownSelector = TenantsDropDownSelector;
@@ -0,0 +1 @@
1
+ export declare const useStyles: (props?: any) => import("@material-ui/core/styles/withStyles").ClassNameMap<"menuButtonRoot">;
@@ -0,0 +1,9 @@
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({
6
+ menuButtonRoot: {
7
+ padding: 0
8
+ }
9
+ });
@@ -138,3 +138,5 @@ export * from './AttributesFiltersBuilder';
138
138
  export { default as MultiValueSelector } from './MultiValueSelector/MultiValueSelector';
139
139
  export { default as MatchRulesSelector } from './MatchRulesSelector/MatchRulesSelector';
140
140
  export { default as SourceSystemsSelector } from './SourceSystemsSelector/SourceSystemsSelector';
141
+ export { TenantIcon } from './TenantIcon/TenantIcon';
142
+ export { TenantsDropDownSelector } from './TenantsDropDownSelector/TenantsDropDownSelector';
@@ -15,7 +15,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
15
15
  Object.defineProperty(exports, "__esModule", { value: true });
16
16
  exports.EMPTY_STATE_VARIANTS = exports.EMPTY_STATE_ICONS = exports.EmptyState = exports.NoResults = exports.NoData = exports.DropDownSelector = exports.DropDownMenuButton = exports.Drawer = exports.DataTypeValue = exports.ConnectionRelationTypeSelector = exports.ConfigureColumnsPopup = exports.MenuWithPopper = exports.MenuList = exports.LoadMoreButton = exports.DropdownIndicatorWithIconButton = exports.DropdownIndicator = exports.CommentsContainer = exports.ColorBar = exports.CollapseButton = exports.CollaborationItem = exports.ClickAwayProvider = exports.BasicViewHeader = exports.BasicViewContent = exports.BasicView = exports.ProfileBandNavigation = exports.AvatarWithFallback = exports.AutoSizeList = exports.ReadOnlyAttributesPager = exports.SimpleAttribute = exports.ReferenceAttribute = exports.NestedAttribute = exports.EditableImageAttributesLine = exports.ImageAttributesLine = exports.ReadOnlyAttributesList = exports.ReadOnlyAttributeValuesBlock = exports.EditableAttribute = exports.ReadOnlyAttribute = exports.CardinalityMessage = exports.AttributesPager = exports.SimpleAttributeEditor = exports.RelationTypeSelector = exports.ReferenceAttributeEditor = exports.NestedAttributeEditor = exports.MoreAttributesButton = exports.EntitySelector = exports.EntityCreator = exports.AttributesList = exports.BranchDecorator = exports.AttributesView = exports.AttributeListItem = void 0;
17
17
  exports.SidePanelEmptyState = exports.SideButtonsPanel = exports.SelectorWithOnlyOptionAutoSelect = exports.SelectionPopupPopper = exports.SelectionPopup = exports.useKeyboardNavigation = exports.WhiteSearchInput = exports.SearchInput = exports.ResizablePanes = exports.ReltioGridLayout = exports.ReactSortableTreeUtils = exports.ReactSortableTreeHandlers = exports.ReactSortableTree = exports.ReactSelectOptionFilters = exports.MultiSelect = exports.QueryBuilderRowsGroup = exports.QueryBuilderRow = exports.ProfileCard = exports.ProfileBand = exports.PotentialMatchReviewCard = exports.PopupWithArrow = exports.Popper = exports.MultipleInput = exports.ModeSwitcherSelect = exports.ModeSwitcher = exports.TransitiveMatchBlock = exports.SimpleMatchRulesBlock = exports.MatchRuleVariant = exports.MatchRulesBlock = exports.LoadingSpinner = exports.Link = exports.LinearLoadIndicator = exports.ImportModes = exports.ImportButton = exports.ImageGalleryDialog = exports.Highlighter = exports.HierarchicalAttributeTooltip = exports.HideOnShrink = exports.FlipCard = exports.FacetViewHeader = exports.ExpandedValueTooltip = exports.ErrorWrapper = exports.ErrorPopup = exports.ErrorBoundary = exports.EntityUriLink = exports.RelationTypesSelector = exports.EntityTypesSelector = exports.EntityTypeIcon = exports.EntityTypeBadge = exports.EntityAvatar = void 0;
18
- exports.SourceSystemsSelector = exports.MatchRulesSelector = exports.MultiValueSelector = exports.DragAndDrop = exports.ConnectionEditor = exports.AttributesFiltersBuilder = exports.AttributesFiltersButton = exports.AttributeGroupIcon = exports.BasicAttributeSelector = exports.ProfilesList = exports.ActionButtonMode = exports.ActionButton = exports.NotMatchButton = exports.MergeButton = exports.ProfileMatchCard = exports.RelationEditor = exports.OvIcon = exports.ErrorMessage = exports.ReltioMap = exports.ConfirmDeleteDialog = exports.ConfirmationDialog = exports.Marginator = exports.LightArrowTooltip = exports.ArrowExpandButton = exports.ScrollableTabs = exports.ExpandableSearchInput = exports.VirtualGroupedList = exports.ViewMoreToggle = exports.VerticalHeadingsTable = exports.VerticalDivider = exports.AttributeTitle = exports.Spacer = exports.SourceIcon = exports.SmallIconButtonWithTooltip = exports.SmallIconButton = exports.SimpleDropDownSelector = exports.SidePanelContentHeader = exports.SidePanel = void 0;
18
+ exports.TenantsDropDownSelector = exports.TenantIcon = exports.SourceSystemsSelector = exports.MatchRulesSelector = exports.MultiValueSelector = exports.DragAndDrop = exports.ConnectionEditor = exports.AttributesFiltersBuilder = exports.AttributesFiltersButton = exports.AttributeGroupIcon = exports.BasicAttributeSelector = exports.ProfilesList = exports.ActionButtonMode = exports.ActionButton = exports.NotMatchButton = exports.MergeButton = exports.ProfileMatchCard = exports.RelationEditor = exports.OvIcon = exports.ErrorMessage = exports.ReltioMap = exports.ConfirmDeleteDialog = exports.ConfirmationDialog = exports.Marginator = exports.LightArrowTooltip = exports.ArrowExpandButton = exports.ScrollableTabs = exports.ExpandableSearchInput = exports.VirtualGroupedList = exports.ViewMoreToggle = exports.VerticalHeadingsTable = exports.VerticalDivider = exports.AttributeTitle = exports.Spacer = exports.SourceIcon = exports.SmallIconButtonWithTooltip = exports.SmallIconButton = exports.SimpleDropDownSelector = exports.SidePanelContentHeader = exports.SidePanel = void 0;
19
19
  __exportStar(require("./activityLog"), exports);
20
20
  var AttributeListItem_1 = require("./AttributeListItem/AttributeListItem");
21
21
  Object.defineProperty(exports, "AttributeListItem", { enumerable: true, get: function () { return __importDefault(AttributeListItem_1).default; } });
@@ -294,3 +294,7 @@ var MatchRulesSelector_1 = require("./MatchRulesSelector/MatchRulesSelector");
294
294
  Object.defineProperty(exports, "MatchRulesSelector", { enumerable: true, get: function () { return __importDefault(MatchRulesSelector_1).default; } });
295
295
  var SourceSystemsSelector_1 = require("./SourceSystemsSelector/SourceSystemsSelector");
296
296
  Object.defineProperty(exports, "SourceSystemsSelector", { enumerable: true, get: function () { return __importDefault(SourceSystemsSelector_1).default; } });
297
+ var TenantIcon_1 = require("./TenantIcon/TenantIcon");
298
+ Object.defineProperty(exports, "TenantIcon", { enumerable: true, get: function () { return TenantIcon_1.TenantIcon; } });
299
+ var TenantsDropDownSelector_1 = require("./TenantsDropDownSelector/TenantsDropDownSelector");
300
+ Object.defineProperty(exports, "TenantsDropDownSelector", { enumerable: true, get: function () { return TenantsDropDownSelector_1.TenantsDropDownSelector; } });
@@ -0,0 +1,7 @@
1
+ /// <reference types="react" />
2
+ import { DataTenant } from '@reltio/mdm-sdk';
3
+ declare type Props = {
4
+ tenant: DataTenant;
5
+ };
6
+ export declare const TenantIcon: ({ tenant }: Props) => JSX.Element;
7
+ export {};
@@ -0,0 +1,18 @@
1
+ import { getFontColor, getTenantIconColor } from '@reltio/mdm-sdk';
2
+ import React, { useMemo } from 'react';
3
+ import { head, toUpper } from 'ramda';
4
+ import Typography from '@material-ui/core/Typography';
5
+ import { useStyles } from './styles';
6
+ export var TenantIcon = function (_a) {
7
+ var tenant = _a.tenant;
8
+ var styles = useStyles();
9
+ var wrapperStyle = useMemo(function () {
10
+ var bgColor = getTenantIconColor(tenant === null || tenant === void 0 ? void 0 : tenant.id);
11
+ return {
12
+ backgroundColor: bgColor,
13
+ color: getFontColor(bgColor)
14
+ };
15
+ }, [tenant === null || tenant === void 0 ? void 0 : tenant.id]);
16
+ return (React.createElement("div", { style: wrapperStyle, className: styles.root },
17
+ React.createElement(Typography, { variant: 'body2' }, toUpper(head(tenant === null || tenant === void 0 ? void 0 : tenant.name)))));
18
+ };
@@ -0,0 +1 @@
1
+ export declare const useStyles: (props?: any) => import("@material-ui/core/styles/withStyles").ClassNameMap<"root">;
@@ -0,0 +1,8 @@
1
+ import { makeStyles } from '@material-ui/core/styles';
2
+ export var useStyles = makeStyles({
3
+ root: {
4
+ height: '18px',
5
+ width: '18px',
6
+ textAlign: 'center'
7
+ }
8
+ });
@@ -0,0 +1,12 @@
1
+ import React from 'react';
2
+ import { DataTenant } from '@reltio/mdm-sdk';
3
+ declare type Item = {
4
+ tenant: DataTenant;
5
+ onClick: (tenant: DataTenant) => void;
6
+ };
7
+ declare type Props = {
8
+ item: Item;
9
+ onMenuClose?: () => void;
10
+ };
11
+ declare const TenantMenuItem: React.ForwardRefExoticComponent<Props & React.RefAttributes<HTMLLIElement>>;
12
+ export default TenantMenuItem;
@@ -0,0 +1,21 @@
1
+ import React, { forwardRef } from 'react';
2
+ import MenuItem from '@material-ui/core/MenuItem';
3
+ import Typography from '@material-ui/core/Typography';
4
+ import { noop } from '../../../core';
5
+ import { TenantIcon } from '../../TenantIcon/TenantIcon';
6
+ import { useStyles } from './styles';
7
+ var TenantMenuItem = forwardRef(function (_a, ref) {
8
+ var item = _a.item, _b = _a.onMenuClose, onMenuClose = _b === void 0 ? noop : _b;
9
+ var styles = useStyles();
10
+ var tenant = item.tenant, onClick = item.onClick;
11
+ var handleClick = function () {
12
+ onMenuClose();
13
+ onClick(tenant);
14
+ };
15
+ var tenantCaption = tenant.label ? tenant.label + " : " + tenant.name : tenant.name;
16
+ return (React.createElement(MenuItem, { onClick: handleClick, ref: ref, className: styles.root },
17
+ React.createElement(TenantIcon, { tenant: tenant }),
18
+ React.createElement(Typography, null, tenantCaption)));
19
+ });
20
+ TenantMenuItem.displayName = 'TenantMenuItem';
21
+ export default TenantMenuItem;
@@ -0,0 +1 @@
1
+ export declare const useStyles: (props?: any) => import("@material-ui/core/styles/withStyles").ClassNameMap<"root">;
@@ -0,0 +1,7 @@
1
+ import { makeStyles } from '@material-ui/core/styles';
2
+ export var useStyles = makeStyles({
3
+ root: {
4
+ minHeight: '48px',
5
+ gap: '30px'
6
+ }
7
+ });
@@ -0,0 +1,9 @@
1
+ /// <reference types="react" />
2
+ import { DataTenant } from '@reltio/mdm-sdk';
3
+ declare type Props = {
4
+ selectedTenant: DataTenant;
5
+ entityTypeUri: string;
6
+ onChangeTenant: (tenant: DataTenant) => void;
7
+ };
8
+ export declare const TenantsDropDownSelector: ({ entityTypeUri, onChangeTenant, selectedTenant }: Props) => JSX.Element;
9
+ export {};
@@ -0,0 +1,43 @@
1
+ import React, { useMemo } from 'react';
2
+ import { useSelector } from 'react-redux';
3
+ import { defaultTo, filter, map, pipe, prepend } from 'ramda';
4
+ import ArrowDropDownIcon from '@material-ui/icons/ArrowDropDown';
5
+ import mdmModule from '@reltio/mdm-module';
6
+ import { isAvailableTenantForEntityType, isEmptyValue } from '@reltio/mdm-sdk';
7
+ import { DropDownMenuButton, TenantIcon } from '../index';
8
+ import TenantMenuItem from './TenantMenuItem/TenantMenuItem';
9
+ import { useStyles } from './styles';
10
+ export var TenantsDropDownSelector = function (_a) {
11
+ var entityTypeUri = _a.entityTypeUri, onChangeTenant = _a.onChangeTenant, selectedTenant = _a.selectedTenant;
12
+ var styles = useStyles();
13
+ var dataTenants = useSelector(mdmModule.selectors.getDataTenants);
14
+ var customerTenant = useSelector(mdmModule.selectors.getTenantObject);
15
+ var menuItems = useMemo(function () {
16
+ return pipe(defaultTo([]), filter(isAvailableTenantForEntityType(entityTypeUri)), map(function (dataTenant) { return ({
17
+ tenant: dataTenant,
18
+ onClick: onChangeTenant
19
+ }); }), prepend({
20
+ tenant: customerTenant,
21
+ onClick: onChangeTenant
22
+ }))(dataTenants);
23
+ }, [dataTenants, entityTypeUri, onChangeTenant, customerTenant]);
24
+ if (isEmptyValue(dataTenants) || !onChangeTenant) {
25
+ return null;
26
+ }
27
+ return (React.createElement(DropDownMenuButton, { menuId: 'tenantSelector', MenuItemRenderer: TenantMenuItem, buttonContent: React.createElement(TenantIcon, { tenant: selectedTenant }), menuItems: menuItems, buttonProps: {
28
+ variant: 'outlined',
29
+ endIcon: React.createElement(ArrowDropDownIcon, null),
30
+ classes: {
31
+ root: styles.menuButtonRoot
32
+ }
33
+ }, popoverProps: {
34
+ anchorOrigin: {
35
+ vertical: 'bottom',
36
+ horizontal: 'left'
37
+ },
38
+ transformOrigin: {
39
+ vertical: 'top',
40
+ horizontal: 'left'
41
+ }
42
+ } }));
43
+ };
@@ -0,0 +1 @@
1
+ export declare const useStyles: (props?: any) => import("@material-ui/core/styles/withStyles").ClassNameMap<"menuButtonRoot">;
@@ -0,0 +1,6 @@
1
+ import { makeStyles } from '@material-ui/core/styles';
2
+ export var useStyles = makeStyles({
3
+ menuButtonRoot: {
4
+ padding: 0
5
+ }
6
+ });
@@ -138,3 +138,5 @@ export * from './AttributesFiltersBuilder';
138
138
  export { default as MultiValueSelector } from './MultiValueSelector/MultiValueSelector';
139
139
  export { default as MatchRulesSelector } from './MatchRulesSelector/MatchRulesSelector';
140
140
  export { default as SourceSystemsSelector } from './SourceSystemsSelector/SourceSystemsSelector';
141
+ export { TenantIcon } from './TenantIcon/TenantIcon';
142
+ export { TenantsDropDownSelector } from './TenantsDropDownSelector/TenantsDropDownSelector';
@@ -138,3 +138,5 @@ export * from './AttributesFiltersBuilder';
138
138
  export { default as MultiValueSelector } from './MultiValueSelector/MultiValueSelector';
139
139
  export { default as MatchRulesSelector } from './MatchRulesSelector/MatchRulesSelector';
140
140
  export { default as SourceSystemsSelector } from './SourceSystemsSelector/SourceSystemsSelector';
141
+ export { TenantIcon } from './TenantIcon/TenantIcon';
142
+ export { TenantsDropDownSelector } from './TenantsDropDownSelector/TenantsDropDownSelector';
package/package.json CHANGED
@@ -1,14 +1,14 @@
1
1
  {
2
2
  "name": "@reltio/components",
3
- "version": "1.4.1266",
3
+ "version": "1.4.1268",
4
4
  "license": "SEE LICENSE IN LICENSE FILE",
5
5
  "main": "./cjs/index.js",
6
6
  "module": "./esm/index.js",
7
7
  "dependencies": {
8
8
  "@date-io/moment": "^1.3.5",
9
9
  "@react-google-maps/api": "2.7.0",
10
- "@reltio/mdm-module": "^1.4.1266",
11
- "@reltio/mdm-sdk": "^1.4.1266",
10
+ "@reltio/mdm-module": "^1.4.1268",
11
+ "@reltio/mdm-sdk": "^1.4.1268",
12
12
  "classnames": "^2.2.5",
13
13
  "d3-cloud": "^1.2.5",
14
14
  "d3-geo": "^2.0.1",