@reltio/components 1.4.1485 → 1.4.1487

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.
@@ -0,0 +1,11 @@
1
+ /// <reference types="react" />
2
+ declare type NodeTitleProps = {
3
+ title: string;
4
+ entityUri: string;
5
+ viewId: string;
6
+ isSelected?: boolean;
7
+ anchorEl?: HTMLElement;
8
+ withEntityDetails?: boolean;
9
+ };
10
+ export declare const HierarchyNodeTitle: ({ title, isSelected, entityUri, viewId, anchorEl, withEntityDetails }: NodeTitleProps) => JSX.Element;
11
+ export {};
@@ -0,0 +1,59 @@
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.HierarchyNodeTitle = void 0;
30
+ var react_1 = __importStar(require("react"));
31
+ var classnames_1 = __importDefault(require("classnames"));
32
+ var react_redux_1 = require("react-redux");
33
+ var mdm_module_1 = __importStar(require("@reltio/mdm-module"));
34
+ var Link_1 = __importDefault(require("../Link/Link"));
35
+ var Popper_1 = __importDefault(require("../Popper/Popper"));
36
+ var ProfileCard_1 = __importDefault(require("../ProfileCard/ProfileCard"));
37
+ var contexts_1 = require("../../contexts");
38
+ var useEntityDetails_1 = require("./hooks/useEntityDetails");
39
+ var styles_1 = require("./styles");
40
+ var HierarchyNodeTitle = function (_a) {
41
+ var _b;
42
+ var title = _a.title, isSelected = _a.isSelected, entityUri = _a.entityUri, viewId = _a.viewId, anchorEl = _a.anchorEl, _c = _a.withEntityDetails, withEntityDetails = _c === void 0 ? true : _c;
43
+ var styles = (0, styles_1.useStyles)();
44
+ var dispatch = (0, react_redux_1.useDispatch)();
45
+ var uiPath = (0, react_redux_1.useSelector)(mdm_module_1.default.selectors.getUIPath);
46
+ var generateEntityUrl = (0, react_1.useContext)(contexts_1.UrlGeneratorsContext).generateEntityUrl;
47
+ var _d = (0, useEntityDetails_1.useEntityDetails)(entityUri), isLoading = _d.isLoading, entityDetails = _d.entityDetails, showEntityDetails = _d.showEntityDetails, hideEntityDetails = _d.hideEntityDetails;
48
+ var link = generateEntityUrl({ uiPath: uiPath, uri: entityUri });
49
+ var showPopper = Boolean(entityDetails) || isLoading;
50
+ var handleClick = (0, react_1.useCallback)(function () {
51
+ dispatch(mdm_module_1.ui.actions.openEntity({ uri: entityUri, viewId: viewId }));
52
+ }, [dispatch, entityUri, viewId]);
53
+ return (react_1.default.createElement(react_1.default.Fragment, null,
54
+ react_1.default.createElement("span", { className: (0, classnames_1.default)(styles.link, (_b = {}, _b[styles.selected] = isSelected, _b)), onMouseEnter: withEntityDetails ? showEntityDetails : undefined, onMouseLeave: withEntityDetails ? hideEntityDetails : undefined },
55
+ react_1.default.createElement(Link_1.default, { to: link, onClick: handleClick }, title)),
56
+ react_1.default.createElement(Popper_1.default, { anchorEl: anchorEl, className: styles.popper, open: showPopper, modal: false, placement: "top-start" },
57
+ react_1.default.createElement(ProfileCard_1.default, { entity: entityDetails, variant: isLoading ? 'loading' : 'normal' }))));
58
+ };
59
+ exports.HierarchyNodeTitle = HierarchyNodeTitle;
@@ -0,0 +1,6 @@
1
+ export declare const useEntityDetails: (entityUri: string) => {
2
+ isLoading: boolean;
3
+ entityDetails: any;
4
+ showEntityDetails: () => void;
5
+ hideEntityDetails: () => void;
6
+ };
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useEntityDetails = void 0;
4
+ var react_1 = require("react");
5
+ var mdm_sdk_1 = require("@reltio/mdm-sdk");
6
+ var useSafePromise_1 = require("../../../hooks/useSafePromise");
7
+ var useEntityDetails = function (entityUri) {
8
+ var _a = (0, react_1.useState)(null), entityDetails = _a[0], setEntityDetails = _a[1];
9
+ var _b = (0, react_1.useState)(false), isLoading = _b[0], setIsLoading = _b[1];
10
+ var timerId = (0, react_1.useRef)(null);
11
+ var safePromise = (0, useSafePromise_1.useSafePromise)();
12
+ var cancelRequest = (0, react_1.useCallback)(function () { return safePromise(Promise.resolve()); }, [safePromise]);
13
+ var showEntityDetails = (0, react_1.useCallback)(function () {
14
+ timerId.current = setTimeout(function () {
15
+ setIsLoading(true);
16
+ safePromise((0, mdm_sdk_1.getEntity)(entityUri))
17
+ .then(setEntityDetails)
18
+ .finally(function () { return setIsLoading(false); });
19
+ }, 1000);
20
+ }, [entityUri, safePromise]);
21
+ var hideEntityDetails = (0, react_1.useCallback)(function () {
22
+ cancelRequest();
23
+ clearTimeout(timerId.current);
24
+ setIsLoading(false);
25
+ setEntityDetails(null);
26
+ }, [cancelRequest]);
27
+ (0, react_1.useEffect)(function () {
28
+ return function () { return clearTimeout(timerId.current); };
29
+ }, []);
30
+ return {
31
+ isLoading: isLoading,
32
+ entityDetails: entityDetails,
33
+ showEntityDetails: showEntityDetails,
34
+ hideEntityDetails: hideEntityDetails
35
+ };
36
+ };
37
+ exports.useEntityDetails = useEntityDetails;
@@ -0,0 +1 @@
1
+ export declare const useStyles: (props?: any) => import("@material-ui/core/styles/withStyles").ClassNameMap<"link" | "selected" | "popper">;
@@ -0,0 +1,22 @@
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 = (0, styles_1.makeStyles)(function (theme) { return ({
6
+ link: {
7
+ cursor: 'pointer',
8
+ color: theme.palette.primary.main,
9
+ lineHeight: '15px',
10
+ wordBreak: 'break-word'
11
+ },
12
+ selected: {
13
+ fontWeight: 'bold'
14
+ },
15
+ popper: {
16
+ maxWidth: '345px',
17
+ minWidth: '200px',
18
+ boxShadow: '0 1px 1px 0 rgba(0,0,0,0.14), 0 2px 1px -1px rgba(0,0,0,0.12), 0 1px 3px 0 rgba(0,0,0,0.2)',
19
+ backgroundColor: 'white',
20
+ borderRadius: '2px'
21
+ }
22
+ }); });
@@ -144,4 +144,5 @@ export { TenantIcon } from './TenantIcon/TenantIcon';
144
144
  export { TenantsDropDownSelector } from './TenantsDropDownSelector/TenantsDropDownSelector';
145
145
  export { default as SettingsMenu } from './SettingsMenu/SettingsMenu';
146
146
  export { DataTenantBadge } from './DataTenantBadge/DataTenantBadge';
147
+ export { HierarchyNodeTitle } from './HierarchyNodeTitle/HierarchyNodeTitle';
147
148
  export { default as RequiredMark } from './RequiredMark/RequiredMark';
@@ -19,7 +19,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
19
19
  Object.defineProperty(exports, "__esModule", { value: true });
20
20
  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.ScreenProfileBand = 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.DescriptionIcon = exports.AttributesView = exports.AttributeListItem = void 0;
21
21
  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 = exports.EMPTY_STATE_VARIANTS = exports.EMPTY_STATE_ICONS = void 0;
22
- exports.RequiredMark = exports.DataTenantBadge = exports.SettingsMenu = 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 = exports.SidePanelEmptyState = exports.SideButtonsPanel = void 0;
22
+ exports.RequiredMark = exports.HierarchyNodeTitle = exports.DataTenantBadge = exports.SettingsMenu = 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 = exports.SidePanelEmptyState = exports.SideButtonsPanel = void 0;
23
23
  __exportStar(require("./activityLog"), exports);
24
24
  var AttributeListItem_1 = require("./AttributeListItem/AttributeListItem");
25
25
  Object.defineProperty(exports, "AttributeListItem", { enumerable: true, get: function () { return __importDefault(AttributeListItem_1).default; } });
@@ -310,5 +310,7 @@ var SettingsMenu_1 = require("./SettingsMenu/SettingsMenu");
310
310
  Object.defineProperty(exports, "SettingsMenu", { enumerable: true, get: function () { return __importDefault(SettingsMenu_1).default; } });
311
311
  var DataTenantBadge_1 = require("./DataTenantBadge/DataTenantBadge");
312
312
  Object.defineProperty(exports, "DataTenantBadge", { enumerable: true, get: function () { return DataTenantBadge_1.DataTenantBadge; } });
313
+ var HierarchyNodeTitle_1 = require("./HierarchyNodeTitle/HierarchyNodeTitle");
314
+ Object.defineProperty(exports, "HierarchyNodeTitle", { enumerable: true, get: function () { return HierarchyNodeTitle_1.HierarchyNodeTitle; } });
313
315
  var RequiredMark_1 = require("./RequiredMark/RequiredMark");
314
316
  Object.defineProperty(exports, "RequiredMark", { enumerable: true, get: function () { return __importDefault(RequiredMark_1).default; } });
@@ -0,0 +1,11 @@
1
+ /// <reference types="react" />
2
+ declare type NodeTitleProps = {
3
+ title: string;
4
+ entityUri: string;
5
+ viewId: string;
6
+ isSelected?: boolean;
7
+ anchorEl?: HTMLElement;
8
+ withEntityDetails?: boolean;
9
+ };
10
+ export declare const HierarchyNodeTitle: ({ title, isSelected, entityUri, viewId, anchorEl, withEntityDetails }: NodeTitleProps) => JSX.Element;
11
+ export {};
@@ -0,0 +1,29 @@
1
+ import React, { useCallback, useContext } from 'react';
2
+ import classnames from 'classnames';
3
+ import { useSelector, useDispatch } from 'react-redux';
4
+ import mdm, { ui } from '@reltio/mdm-module';
5
+ import Link from '../Link/Link';
6
+ import Popper from '../Popper/Popper';
7
+ import ProfileCard from '../ProfileCard/ProfileCard';
8
+ import { UrlGeneratorsContext } from '../../contexts';
9
+ import { useEntityDetails } from './hooks/useEntityDetails';
10
+ import { useStyles } from './styles';
11
+ export var HierarchyNodeTitle = function (_a) {
12
+ var _b;
13
+ var title = _a.title, isSelected = _a.isSelected, entityUri = _a.entityUri, viewId = _a.viewId, anchorEl = _a.anchorEl, _c = _a.withEntityDetails, withEntityDetails = _c === void 0 ? true : _c;
14
+ var styles = useStyles();
15
+ var dispatch = useDispatch();
16
+ var uiPath = useSelector(mdm.selectors.getUIPath);
17
+ var generateEntityUrl = useContext(UrlGeneratorsContext).generateEntityUrl;
18
+ var _d = useEntityDetails(entityUri), isLoading = _d.isLoading, entityDetails = _d.entityDetails, showEntityDetails = _d.showEntityDetails, hideEntityDetails = _d.hideEntityDetails;
19
+ var link = generateEntityUrl({ uiPath: uiPath, uri: entityUri });
20
+ var showPopper = Boolean(entityDetails) || isLoading;
21
+ var handleClick = useCallback(function () {
22
+ dispatch(ui.actions.openEntity({ uri: entityUri, viewId: viewId }));
23
+ }, [dispatch, entityUri, viewId]);
24
+ return (React.createElement(React.Fragment, null,
25
+ React.createElement("span", { className: classnames(styles.link, (_b = {}, _b[styles.selected] = isSelected, _b)), onMouseEnter: withEntityDetails ? showEntityDetails : undefined, onMouseLeave: withEntityDetails ? hideEntityDetails : undefined },
26
+ React.createElement(Link, { to: link, onClick: handleClick }, title)),
27
+ React.createElement(Popper, { anchorEl: anchorEl, className: styles.popper, open: showPopper, modal: false, placement: "top-start" },
28
+ React.createElement(ProfileCard, { entity: entityDetails, variant: isLoading ? 'loading' : 'normal' }))));
29
+ };
@@ -0,0 +1,6 @@
1
+ export declare const useEntityDetails: (entityUri: string) => {
2
+ isLoading: boolean;
3
+ entityDetails: any;
4
+ showEntityDetails: () => void;
5
+ hideEntityDetails: () => void;
6
+ };
@@ -0,0 +1,33 @@
1
+ import { useState, useCallback, useRef, useEffect } from 'react';
2
+ import { getEntity } from '@reltio/mdm-sdk';
3
+ import { useSafePromise } from '../../../hooks/useSafePromise';
4
+ export var useEntityDetails = function (entityUri) {
5
+ var _a = useState(null), entityDetails = _a[0], setEntityDetails = _a[1];
6
+ var _b = useState(false), isLoading = _b[0], setIsLoading = _b[1];
7
+ var timerId = useRef(null);
8
+ var safePromise = useSafePromise();
9
+ var cancelRequest = useCallback(function () { return safePromise(Promise.resolve()); }, [safePromise]);
10
+ var showEntityDetails = useCallback(function () {
11
+ timerId.current = setTimeout(function () {
12
+ setIsLoading(true);
13
+ safePromise(getEntity(entityUri))
14
+ .then(setEntityDetails)
15
+ .finally(function () { return setIsLoading(false); });
16
+ }, 1000);
17
+ }, [entityUri, safePromise]);
18
+ var hideEntityDetails = useCallback(function () {
19
+ cancelRequest();
20
+ clearTimeout(timerId.current);
21
+ setIsLoading(false);
22
+ setEntityDetails(null);
23
+ }, [cancelRequest]);
24
+ useEffect(function () {
25
+ return function () { return clearTimeout(timerId.current); };
26
+ }, []);
27
+ return {
28
+ isLoading: isLoading,
29
+ entityDetails: entityDetails,
30
+ showEntityDetails: showEntityDetails,
31
+ hideEntityDetails: hideEntityDetails
32
+ };
33
+ };
@@ -0,0 +1 @@
1
+ export declare const useStyles: (props?: any) => import("@material-ui/core/styles/withStyles").ClassNameMap<"link" | "selected" | "popper">;
@@ -0,0 +1,19 @@
1
+ import { makeStyles } from '@material-ui/core/styles';
2
+ export var useStyles = makeStyles(function (theme) { return ({
3
+ link: {
4
+ cursor: 'pointer',
5
+ color: theme.palette.primary.main,
6
+ lineHeight: '15px',
7
+ wordBreak: 'break-word'
8
+ },
9
+ selected: {
10
+ fontWeight: 'bold'
11
+ },
12
+ popper: {
13
+ maxWidth: '345px',
14
+ minWidth: '200px',
15
+ boxShadow: '0 1px 1px 0 rgba(0,0,0,0.14), 0 2px 1px -1px rgba(0,0,0,0.12), 0 1px 3px 0 rgba(0,0,0,0.2)',
16
+ backgroundColor: 'white',
17
+ borderRadius: '2px'
18
+ }
19
+ }); });
@@ -144,4 +144,5 @@ export { TenantIcon } from './TenantIcon/TenantIcon';
144
144
  export { TenantsDropDownSelector } from './TenantsDropDownSelector/TenantsDropDownSelector';
145
145
  export { default as SettingsMenu } from './SettingsMenu/SettingsMenu';
146
146
  export { DataTenantBadge } from './DataTenantBadge/DataTenantBadge';
147
+ export { HierarchyNodeTitle } from './HierarchyNodeTitle/HierarchyNodeTitle';
147
148
  export { default as RequiredMark } from './RequiredMark/RequiredMark';
@@ -144,4 +144,5 @@ export { TenantIcon } from './TenantIcon/TenantIcon';
144
144
  export { TenantsDropDownSelector } from './TenantsDropDownSelector/TenantsDropDownSelector';
145
145
  export { default as SettingsMenu } from './SettingsMenu/SettingsMenu';
146
146
  export { DataTenantBadge } from './DataTenantBadge/DataTenantBadge';
147
+ export { HierarchyNodeTitle } from './HierarchyNodeTitle/HierarchyNodeTitle';
147
148
  export { default as RequiredMark } from './RequiredMark/RequiredMark';
package/package.json CHANGED
@@ -1,14 +1,14 @@
1
1
  {
2
2
  "name": "@reltio/components",
3
- "version": "1.4.1485",
3
+ "version": "1.4.1487",
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.1485",
11
- "@reltio/mdm-sdk": "^1.4.1485",
10
+ "@reltio/mdm-module": "^1.4.1487",
11
+ "@reltio/mdm-sdk": "^1.4.1487",
12
12
  "classnames": "^2.2.5",
13
13
  "d3-cloud": "^1.2.5",
14
14
  "d3-geo": "^2.0.1",