@reltio/components 1.4.2094 → 1.4.2096

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 (43) hide show
  1. package/BlobRenderer/BlobRenderer.d.ts +2 -1
  2. package/BlobRenderer/BlobRenderer.js +3 -2
  3. package/BlobRenderer/BlobRenderer.test.js +3 -1
  4. package/DefaultCellValueRenderer/DefaultCellValueRenderer.js +1 -1
  5. package/HOCs/withCollapseButton/WithCollapseButton.module.css.js +9 -0
  6. package/HOCs/withCollapseButton/index.d.ts +1 -0
  7. package/HOCs/withCollapseButton/index.js +1 -0
  8. package/HOCs/withCollapseButton/withCollapseButton.d.ts +13 -0
  9. package/HOCs/withCollapseButton/withCollapseButton.js +36 -0
  10. package/cjs/BlobRenderer/BlobRenderer.d.ts +2 -1
  11. package/cjs/BlobRenderer/BlobRenderer.js +3 -2
  12. package/cjs/BlobRenderer/BlobRenderer.test.js +3 -1
  13. package/cjs/DefaultCellValueRenderer/DefaultCellValueRenderer.js +1 -1
  14. package/cjs/HOCs/withCollapseButton/WithCollapseButton.module.css.js +9 -0
  15. package/cjs/HOCs/withCollapseButton/index.d.ts +1 -0
  16. package/cjs/HOCs/withCollapseButton/index.js +5 -0
  17. package/cjs/HOCs/withCollapseButton/withCollapseButton.d.ts +13 -0
  18. package/cjs/HOCs/withCollapseButton/withCollapseButton.js +43 -0
  19. package/cjs/helpers/entitiesTable.d.ts +9 -0
  20. package/cjs/helpers/entitiesTable.js +39 -0
  21. package/cjs/helpers/entitiesTable.test.d.ts +1 -0
  22. package/cjs/helpers/entitiesTable.test.js +20 -0
  23. package/cjs/helpers/segments.d.ts +1 -0
  24. package/cjs/helpers/segments.js +36 -0
  25. package/cjs/hooks/useSegmentsLoader/index.d.ts +1 -0
  26. package/cjs/hooks/useSegmentsLoader/index.js +5 -0
  27. package/cjs/hooks/useSegmentsLoader/useSegmentsLoader.d.ts +15 -0
  28. package/cjs/hooks/useSegmentsLoader/useSegmentsLoader.js +92 -0
  29. package/cjs/index.d.ts +3 -0
  30. package/cjs/index.js +12 -4
  31. package/helpers/entitiesTable.d.ts +9 -0
  32. package/helpers/entitiesTable.js +34 -0
  33. package/helpers/entitiesTable.test.d.ts +1 -0
  34. package/helpers/entitiesTable.test.js +18 -0
  35. package/helpers/segments.d.ts +1 -0
  36. package/helpers/segments.js +33 -0
  37. package/hooks/useSegmentsLoader/index.d.ts +1 -0
  38. package/hooks/useSegmentsLoader/index.js +1 -0
  39. package/hooks/useSegmentsLoader/useSegmentsLoader.d.ts +15 -0
  40. package/hooks/useSegmentsLoader/useSegmentsLoader.js +88 -0
  41. package/index.d.ts +3 -0
  42. package/index.js +3 -0
  43. package/package.json +2 -2
@@ -1,6 +1,7 @@
1
1
  import React from 'react';
2
2
  type Props = {
3
3
  value?: React.ReactNode;
4
+ className?: string;
4
5
  };
5
- export declare const BlobRenderer: ({ value }: Props) => React.JSX.Element;
6
+ export declare const BlobRenderer: ({ value, className }: Props) => React.JSX.Element;
6
7
  export {};
@@ -1,6 +1,7 @@
1
1
  import React from 'react';
2
+ import classnames from 'classnames';
2
3
  import styles from './BlobRenderer.module.css';
3
4
  export var BlobRenderer = function (_a) {
4
- var value = _a.value;
5
- return (React.createElement("div", { "data-reltio-id": "blob-renderer", className: styles.blobWrapper, onScroll: function (e) { return e.stopPropagation(); } }, value));
5
+ var value = _a.value, className = _a.className;
6
+ return (React.createElement("div", { "data-reltio-id": "blob-renderer", className: classnames(styles.blobWrapper, className), onScroll: function (e) { return e.stopPropagation(); } }, value));
6
7
  };
@@ -14,7 +14,8 @@ import { BlobRenderer } from './BlobRenderer';
14
14
  import { fireEvent, render, screen } from '@testing-library/react';
15
15
  describe('BlobRenderer test', function () {
16
16
  var defaultProps = {
17
- value: 'testValue'
17
+ value: 'testValue',
18
+ className: 'columnClassName'
18
19
  };
19
20
  var setUp = function (props, wrapper) {
20
21
  if (props === void 0) { props = defaultProps; }
@@ -23,6 +24,7 @@ describe('BlobRenderer test', function () {
23
24
  it('should render value', function () {
24
25
  setUp();
25
26
  expect(screen.getByText(defaultProps.value)).toBeInTheDocument();
27
+ expect(screen.getByText(defaultProps.value)).toHaveClass('columnClassName');
26
28
  });
27
29
  it('should stop propagation scroll event', function () {
28
30
  var scrollHandler = jest.fn();
@@ -21,7 +21,7 @@ export var DefaultCellValueRenderer = function (props) {
21
21
  var value = props.value, _a = props.columnData, dataTypeDefinition = _a.dataTypeDefinition, columnClassName = _a.className, className = props.className;
22
22
  switch (dataTypeDefinition.type) {
23
23
  case DataTypes.TYPE_BLOB:
24
- return React.createElement(BlobRenderer, __assign({}, props));
24
+ return React.createElement(BlobRenderer, __assign({}, props, { className: columnClassName }));
25
25
  default: {
26
26
  var dataTypeValue = React.createElement(DataTypeValue, { value: value, dataTypeDefinition: dataTypeDefinition });
27
27
  return (React.createElement(ExpandedValueTooltip, { value: dataTypeValue },
@@ -0,0 +1,9 @@
1
+ const styles = {"collapser":"withCollapseButton-collapser--5njVm","cellWithCollapseLocal":"withCollapseButton-cellWithCollapseLocal--jOuCd"};
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 = `.withCollapseButton-collapser--5njVm{margin-left:-2px}.withCollapseButton-cellWithCollapseLocal--jOuCd{align-items:center;display:flex;height:100%}`;
7
+ head.appendChild(style);
8
+ }
9
+ export default styles;
@@ -0,0 +1 @@
1
+ export { withCollapseButton } from './withCollapseButton';
@@ -0,0 +1 @@
1
+ export { withCollapseButton } from './withCollapseButton';
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ import { RowValue } from '../../types/basicTable';
3
+ type WithCollapseButtonProps = {
4
+ hasCollapseButton?: boolean;
5
+ };
6
+ export declare const withCollapseButton: <P extends {
7
+ rowValue: RowValue;
8
+ rowIndex: number;
9
+ }>(Component: React.ComponentType<P>) => {
10
+ (componentProps: P & WithCollapseButtonProps): React.JSX.Element;
11
+ displayName: string;
12
+ };
13
+ export {};
@@ -0,0 +1,36 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ var __rest = (this && this.__rest) || function (s, e) {
13
+ var t = {};
14
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
15
+ t[p] = s[p];
16
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
17
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
18
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
19
+ t[p[i]] = s[p[i]];
20
+ }
21
+ return t;
22
+ };
23
+ import React from 'react';
24
+ import classnames from 'classnames';
25
+ import { CollapseRowButton } from '../../CollapseRowButton';
26
+ import styles from './WithCollapseButton.module.css';
27
+ export var withCollapseButton = function (Component) {
28
+ var WrappedComponent = function (componentProps) {
29
+ var hasCollapseButton = componentProps.hasCollapseButton, restProps = __rest(componentProps, ["hasCollapseButton"]);
30
+ return hasCollapseButton ? (React.createElement("div", { className: classnames(styles.cellWithCollapseLocal, 'cellWithCollapser') },
31
+ React.createElement(CollapseRowButton, { className: styles.collapser, rowIndex: componentProps.rowIndex, rowValue: componentProps.rowValue }),
32
+ React.createElement(Component, __assign({}, restProps)))) : (React.createElement(Component, __assign({}, restProps)));
33
+ };
34
+ WrappedComponent.displayName = "withCollapseButton(".concat(Component.displayName || 'Component', ")");
35
+ return WrappedComponent;
36
+ };
@@ -1,6 +1,7 @@
1
1
  import React from 'react';
2
2
  type Props = {
3
3
  value?: React.ReactNode;
4
+ className?: string;
4
5
  };
5
- export declare const BlobRenderer: ({ value }: Props) => React.JSX.Element;
6
+ export declare const BlobRenderer: ({ value, className }: Props) => React.JSX.Element;
6
7
  export {};
@@ -5,9 +5,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.BlobRenderer = void 0;
7
7
  var react_1 = __importDefault(require("react"));
8
+ var classnames_1 = __importDefault(require("classnames"));
8
9
  var BlobRenderer_module_css_1 = __importDefault(require("./BlobRenderer.module.css"));
9
10
  var BlobRenderer = function (_a) {
10
- var value = _a.value;
11
- return (react_1.default.createElement("div", { "data-reltio-id": "blob-renderer", className: BlobRenderer_module_css_1.default.blobWrapper, onScroll: function (e) { return e.stopPropagation(); } }, value));
11
+ var value = _a.value, className = _a.className;
12
+ return (react_1.default.createElement("div", { "data-reltio-id": "blob-renderer", className: (0, classnames_1.default)(BlobRenderer_module_css_1.default.blobWrapper, className), onScroll: function (e) { return e.stopPropagation(); } }, value));
12
13
  };
13
14
  exports.BlobRenderer = BlobRenderer;
@@ -19,7 +19,8 @@ var BlobRenderer_1 = require("./BlobRenderer");
19
19
  var react_2 = require("@testing-library/react");
20
20
  describe('BlobRenderer test', function () {
21
21
  var defaultProps = {
22
- value: 'testValue'
22
+ value: 'testValue',
23
+ className: 'columnClassName'
23
24
  };
24
25
  var setUp = function (props, wrapper) {
25
26
  if (props === void 0) { props = defaultProps; }
@@ -28,6 +29,7 @@ describe('BlobRenderer test', function () {
28
29
  it('should render value', function () {
29
30
  setUp();
30
31
  expect(react_2.screen.getByText(defaultProps.value)).toBeInTheDocument();
32
+ expect(react_2.screen.getByText(defaultProps.value)).toHaveClass('columnClassName');
31
33
  });
32
34
  it('should stop propagation scroll event', function () {
33
35
  var scrollHandler = jest.fn();
@@ -27,7 +27,7 @@ var DefaultCellValueRenderer = function (props) {
27
27
  var value = props.value, _a = props.columnData, dataTypeDefinition = _a.dataTypeDefinition, columnClassName = _a.className, className = props.className;
28
28
  switch (dataTypeDefinition.type) {
29
29
  case mdm_sdk_1.DataTypes.TYPE_BLOB:
30
- return react_1.default.createElement(BlobRenderer_1.BlobRenderer, __assign({}, props));
30
+ return react_1.default.createElement(BlobRenderer_1.BlobRenderer, __assign({}, props, { className: columnClassName }));
31
31
  default: {
32
32
  var dataTypeValue = react_1.default.createElement(DataTypeValue_1.DataTypeValue, { value: value, dataTypeDefinition: dataTypeDefinition });
33
33
  return (react_1.default.createElement(ExpandedValueTooltip_1.ExpandedValueTooltip, { value: dataTypeValue },
@@ -0,0 +1,9 @@
1
+ const styles = {"collapser":"withCollapseButton-collapser--5njVm","cellWithCollapseLocal":"withCollapseButton-cellWithCollapseLocal--jOuCd"};
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 = `.withCollapseButton-collapser--5njVm{margin-left:-2px}.withCollapseButton-cellWithCollapseLocal--jOuCd{align-items:center;display:flex;height:100%}`;
7
+ head.appendChild(style);
8
+ }
9
+ module.exports = styles;
@@ -0,0 +1 @@
1
+ export { withCollapseButton } from './withCollapseButton';
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.withCollapseButton = void 0;
4
+ var withCollapseButton_1 = require("./withCollapseButton");
5
+ Object.defineProperty(exports, "withCollapseButton", { enumerable: true, get: function () { return withCollapseButton_1.withCollapseButton; } });
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ import { RowValue } from '../../types/basicTable';
3
+ type WithCollapseButtonProps = {
4
+ hasCollapseButton?: boolean;
5
+ };
6
+ export declare const withCollapseButton: <P extends {
7
+ rowValue: RowValue;
8
+ rowIndex: number;
9
+ }>(Component: React.ComponentType<P>) => {
10
+ (componentProps: P & WithCollapseButtonProps): React.JSX.Element;
11
+ displayName: string;
12
+ };
13
+ export {};
@@ -0,0 +1,43 @@
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 __rest = (this && this.__rest) || function (s, e) {
14
+ var t = {};
15
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
16
+ t[p] = s[p];
17
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
18
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
19
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
20
+ t[p[i]] = s[p[i]];
21
+ }
22
+ return t;
23
+ };
24
+ var __importDefault = (this && this.__importDefault) || function (mod) {
25
+ return (mod && mod.__esModule) ? mod : { "default": mod };
26
+ };
27
+ Object.defineProperty(exports, "__esModule", { value: true });
28
+ exports.withCollapseButton = void 0;
29
+ var react_1 = __importDefault(require("react"));
30
+ var classnames_1 = __importDefault(require("classnames"));
31
+ var CollapseRowButton_1 = require("../../CollapseRowButton");
32
+ var WithCollapseButton_module_css_1 = __importDefault(require("./WithCollapseButton.module.css"));
33
+ var withCollapseButton = function (Component) {
34
+ var WrappedComponent = function (componentProps) {
35
+ var hasCollapseButton = componentProps.hasCollapseButton, restProps = __rest(componentProps, ["hasCollapseButton"]);
36
+ return hasCollapseButton ? (react_1.default.createElement("div", { className: (0, classnames_1.default)(WithCollapseButton_module_css_1.default.cellWithCollapseLocal, 'cellWithCollapser') },
37
+ react_1.default.createElement(CollapseRowButton_1.CollapseRowButton, { className: WithCollapseButton_module_css_1.default.collapser, rowIndex: componentProps.rowIndex, rowValue: componentProps.rowValue }),
38
+ react_1.default.createElement(Component, __assign({}, restProps)))) : (react_1.default.createElement(Component, __assign({}, restProps)));
39
+ };
40
+ WrappedComponent.displayName = "withCollapseButton(".concat(Component.displayName || 'Component', ")");
41
+ return WrappedComponent;
42
+ };
43
+ exports.withCollapseButton = withCollapseButton;
@@ -0,0 +1,9 @@
1
+ export declare const REFERENCE_HEIGHT = 28;
2
+ export declare const BLOB_HEIGHT = 100;
3
+ export declare const IMAGE_HEIGHT = 76;
4
+ export declare const getAttributeHeight: ({ columnData, cell }: {
5
+ columnData: any;
6
+ cell: any;
7
+ }) => number;
8
+ export declare const getAttrPathFromColumnId: any;
9
+ export declare const getNestedPathByColumnId: (columnId: string) => string[];
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getNestedPathByColumnId = exports.getAttrPathFromColumnId = exports.getAttributeHeight = exports.IMAGE_HEIGHT = exports.BLOB_HEIGHT = exports.REFERENCE_HEIGHT = void 0;
4
+ var ramda_1 = require("ramda");
5
+ var mdm_sdk_1 = require("@reltio/mdm-sdk");
6
+ exports.REFERENCE_HEIGHT = 28;
7
+ exports.BLOB_HEIGHT = 100;
8
+ exports.IMAGE_HEIGHT = 76;
9
+ var PADDING = 17;
10
+ var getAttributeHeight = function (_a) {
11
+ var columnData = _a.columnData, cell = _a.cell;
12
+ var countAttributes = cell.values.length;
13
+ var defaultHeight = 28 * Math.max(countAttributes, 1) + 20;
14
+ if (!countAttributes) {
15
+ return defaultHeight;
16
+ }
17
+ switch ((0, ramda_1.path)(['dataTypeDefinition', 'type'], columnData)) {
18
+ case 'Reference':
19
+ return exports.REFERENCE_HEIGHT * countAttributes + PADDING;
20
+ case 'Blob':
21
+ return exports.BLOB_HEIGHT * countAttributes;
22
+ case 'Image':
23
+ return exports.IMAGE_HEIGHT * countAttributes + PADDING;
24
+ default:
25
+ return defaultHeight;
26
+ }
27
+ };
28
+ exports.getAttributeHeight = getAttributeHeight;
29
+ exports.getAttrPathFromColumnId = (0, ramda_1.split)('.');
30
+ var getNestedPathByColumnId = function (columnId) {
31
+ if ((0, mdm_sdk_1.isAttributeSearchUri)(columnId)) {
32
+ var _a = (0, exports.getAttrPathFromColumnId)(columnId), attrPath = _a.slice(1);
33
+ return attrPath.length > 1 ? attrPath.slice(0, -1) : null;
34
+ }
35
+ else {
36
+ return null;
37
+ }
38
+ };
39
+ exports.getNestedPathByColumnId = getNestedPathByColumnId;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var entitiesTable_1 = require("./entitiesTable");
4
+ describe('height calculator tests', function () {
5
+ it('should return height correctly when countAttributes more than 1', function () {
6
+ expect((0, entitiesTable_1.getAttributeHeight)({ columnData: {}, cell: { values: [1, 2] } })).toBe(76);
7
+ });
8
+ it('should return height correctly when countAttributes is 0', function () {
9
+ expect((0, entitiesTable_1.getAttributeHeight)({ columnData: {}, cell: { values: [] } })).toBe(48);
10
+ });
11
+ it('should return height correctly when attribute is Reference', function () {
12
+ expect((0, entitiesTable_1.getAttributeHeight)({ columnData: { dataTypeDefinition: { type: 'Reference' } }, cell: { values: [{ entity: {} }] } })).toBe(45);
13
+ });
14
+ it('should return height correctly when attribute is Blob', function () {
15
+ expect((0, entitiesTable_1.getAttributeHeight)({ columnData: { dataTypeDefinition: { type: 'Blob' } }, cell: { values: ['123'] } })).toBe(100);
16
+ });
17
+ it('should return height correctly when attribute is Image', function () {
18
+ expect((0, entitiesTable_1.getAttributeHeight)({ columnData: { dataTypeDefinition: { type: 'Image' } }, cell: { values: ['uri/123'] } })).toBe(93);
19
+ });
20
+ });
@@ -0,0 +1 @@
1
+ export declare const buildSegmentsFilterString: any;
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.buildSegmentsFilterString = void 0;
4
+ var ramda_1 = require("ramda");
5
+ var mdm_sdk_1 = require("@reltio/mdm-sdk");
6
+ var buildFavoriteFilterClause = function (value) {
7
+ return value ? "equals(favorite, 'true')" : '';
8
+ };
9
+ var buildOwnerFilterClause = function (user) {
10
+ return "equals(owner, '".concat(user, "')");
11
+ };
12
+ var buildStatusFilterClause = function (status) {
13
+ return "equals(status, '".concat(status, "')");
14
+ };
15
+ var buildSharingFilterClause = function (value) {
16
+ return "equals(sharing, '".concat(value, "')");
17
+ };
18
+ var buildDestinationFilterClause = function (value) {
19
+ return "equals(integrationIDs, '".concat(value, "')");
20
+ };
21
+ var buildSearchValueFilterClause = function (value) {
22
+ return "contains(label, '".concat(value, "')");
23
+ };
24
+ var getFilterClauseBuilder = (0, ramda_1.cond)([
25
+ [(0, ramda_1.equals)('showFavorite'), function () { return buildFavoriteFilterClause; }],
26
+ [(0, ramda_1.equals)('ownedBy'), function () { return buildOwnerFilterClause; }],
27
+ [(0, ramda_1.equals)('statuses'), function () { return (0, mdm_sdk_1.multiValueFilter)(buildStatusFilterClause); }],
28
+ [(0, ramda_1.equals)('createdBy'), function () { return (0, mdm_sdk_1.multiValueFilter)(buildOwnerFilterClause); }],
29
+ [(0, ramda_1.equals)('sharedWith'), function () { return (0, mdm_sdk_1.multiValueFilter)(buildSharingFilterClause); }],
30
+ [(0, ramda_1.equals)('destinations'), function () { return (0, mdm_sdk_1.multiValueFilter)(buildDestinationFilterClause); }],
31
+ [(0, ramda_1.equals)('searchValue'), function () { return buildSearchValueFilterClause; }]
32
+ ]);
33
+ exports.buildSegmentsFilterString = (0, ramda_1.pipe)((0, ramda_1.defaultTo)({}), (0, ramda_1.reject)(mdm_sdk_1.isEmptyValue), ramda_1.toPairs, (0, ramda_1.map)(function (_a) {
34
+ var key = _a[0], value = _a[1];
35
+ return getFilterClauseBuilder(key)(value);
36
+ }), (0, ramda_1.reject)(mdm_sdk_1.isEmptyValue), (0, ramda_1.map)(mdm_sdk_1.wrapInBrackets), (0, ramda_1.join)(' and '));
@@ -0,0 +1 @@
1
+ export { useSegmentsLoader } from './useSegmentsLoader';
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useSegmentsLoader = void 0;
4
+ var useSegmentsLoader_1 = require("./useSegmentsLoader");
5
+ Object.defineProperty(exports, "useSegmentsLoader", { enumerable: true, get: function () { return useSegmentsLoader_1.useSegmentsLoader; } });
@@ -0,0 +1,15 @@
1
+ import { NewSegment, SegmentationFilters, SortingField } from '@reltio/mdm-sdk';
2
+ import { RequestStates } from '../../types';
3
+ type Props = {
4
+ sorting?: SortingField;
5
+ rowsPerPage: number;
6
+ page: number;
7
+ filters?: SegmentationFilters;
8
+ };
9
+ export declare const useSegmentsLoader: ({ sorting, rowsPerPage, page, filters }: Props) => {
10
+ requestState: RequestStates;
11
+ segments: NewSegment[];
12
+ total: number;
13
+ reload: () => Promise<void>;
14
+ };
15
+ export {};
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
13
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.useSegmentsLoader = void 0;
40
+ var react_1 = require("react");
41
+ var ramda_1 = require("ramda");
42
+ var mdm_sdk_1 = require("@reltio/mdm-sdk");
43
+ var types_1 = require("../../types");
44
+ var segments_1 = require("../../helpers/segments");
45
+ var useSegmentsLoader = function (_a) {
46
+ var sorting = _a.sorting, rowsPerPage = _a.rowsPerPage, page = _a.page, filters = _a.filters;
47
+ var _b = (0, react_1.useState)(types_1.RequestStates.INIT), requestState = _b[0], setRequestState = _b[1];
48
+ var _c = (0, react_1.useState)([]), segments = _c[0], setSegments = _c[1];
49
+ var _d = (0, react_1.useState)(0), segmentsTotal = _d[0], setSegmentsTotal = _d[1];
50
+ var _e = sorting || {}, sort = _e.field, order = _e.order;
51
+ var filterString = (0, segments_1.buildSegmentsFilterString)(filters);
52
+ var segmentsRequestParams = (0, react_1.useMemo)(function () { return (0, ramda_1.reject)(mdm_sdk_1.isEmptyValue, { sort: sort, order: order, max: rowsPerPage, offset: page * rowsPerPage, filter: filterString }); }, [sort, order, rowsPerPage, page, filterString]);
53
+ var loadRequest = (0, react_1.useCallback)(function () { return __awaiter(void 0, void 0, void 0, function () {
54
+ var _a, segments_2, total, error_1;
55
+ return __generator(this, function (_b) {
56
+ switch (_b.label) {
57
+ case 0:
58
+ setRequestState(types_1.RequestStates.LOADING);
59
+ _b.label = 1;
60
+ case 1:
61
+ _b.trys.push([1, 3, , 4]);
62
+ return [4 /*yield*/, (0, mdm_sdk_1.getSegments)(segmentsRequestParams)];
63
+ case 2:
64
+ _a = _b.sent(), segments_2 = _a.segments, total = _a.total;
65
+ setSegments(segments_2 !== null && segments_2 !== void 0 ? segments_2 : []);
66
+ setSegmentsTotal(total);
67
+ setRequestState(types_1.RequestStates.LOADED);
68
+ return [3 /*break*/, 4];
69
+ case 3:
70
+ error_1 = _b.sent();
71
+ console.warn(error_1);
72
+ if (!(0, mdm_sdk_1.isAbortError)(error_1)) {
73
+ setSegments([]);
74
+ setSegmentsTotal(0);
75
+ }
76
+ setRequestState(types_1.RequestStates.ERROR);
77
+ return [3 /*break*/, 4];
78
+ case 4: return [2 /*return*/];
79
+ }
80
+ });
81
+ }); }, [segmentsRequestParams]);
82
+ (0, react_1.useEffect)(function () {
83
+ loadRequest();
84
+ }, [loadRequest]);
85
+ return {
86
+ requestState: requestState,
87
+ segments: segments,
88
+ total: segmentsTotal,
89
+ reload: loadRequest
90
+ };
91
+ };
92
+ exports.useSegmentsLoader = useSegmentsLoader;
package/cjs/index.d.ts CHANGED
@@ -189,6 +189,7 @@ export { withContext } from './HOCs/withContext';
189
189
  export { withChartDataPercents as withPercents } from './HOCs/withChartDataPercents';
190
190
  export { withFilterAtBottom } from './HOCs/withFilterAtBottom';
191
191
  export { withTableContext } from './HOCs/withTableContext';
192
+ export { withCollapseButton } from './HOCs/withCollapseButton';
192
193
  export { MdmModuleProvider } from './contexts/MdmModuleContext';
193
194
  export { AsyncMountContext } from './contexts/AsyncMountContext';
194
195
  export { HistoryDiffContext } from './contexts/HistoryAppearanceContext';
@@ -273,6 +274,7 @@ export { useSegmentationRequest } from './hooks/useSegmentationRequest';
273
274
  export { useFilterAutoFocus } from './hooks/useFilterAutoFocus';
274
275
  export { useDynamicYAxisWidth } from './hooks/useDynamicYAxisWidth';
275
276
  export { useDndBasicTableScrollModifier } from './hooks/useDndBasicTableScrollModifier';
277
+ export { useSegmentsLoader } from './hooks/useSegmentsLoader';
276
278
  export { buildColumnsFilter, buildColumnsSizeById, columnFilterToMdmFilter, defaultGetRowCellHeight, defaultRenderRowCell } from './helpers/basicTable';
277
279
  export { enrichDataWithPercents } from './helpers/charts';
278
280
  export { showDefaultErrorMessage, showErrorMessage } from './helpers/errors';
@@ -280,6 +282,7 @@ export { getChecked, getValue, isControlOrCommandPressed } from './helpers/event
280
282
  export { mergeClasses } from './helpers/classes';
281
283
  export { getAttributeSelectorItems } from './helpers/attributesSelector';
282
284
  export { applyCompactValuesCountConstraint } from './helpers/tableCompactCollapseHelpers';
285
+ export { getNestedPathByColumnId, getAttributeHeight, getAttrPathFromColumnId } from './helpers/entitiesTable';
283
286
  export type { AttributeFiltersComponentProps } from './AttributesFiltersBuilder';
284
287
  export type { ChartData } from './types/charts';
285
288
  export type { AddInlineAttributeEvent, DeleteInlineAttributeEvent, EditInlineAttributeEvent, IgnoreInlineAttributeEvent, PinInlineAttributeEvent } from './types/inlineAttributes';
package/cjs/index.js CHANGED
@@ -17,10 +17,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  exports.NestedAttributeEditor = exports.NestedAttribute = exports.MoreAttributesButton = exports.InlineReferenceAttribute = exports.InlineNestedAttribute = exports.InlineImageAttribute = exports.InlineAttributesPager = exports.InfoIcon = exports.EditableImageAttributesLine = exports.FilterButton = exports.FacetViewHeader = exports.ExpandedValueTooltip = exports.EntitySelector = exports.EntityCreator = exports.AttributesPager = exports.AttributesList = exports.EditableAttribute = exports.DropDownMenuButton = exports.DescriptionIcon = exports.DefaultCellValueRenderer = exports.ControlAttributeIcon = exports.ColumnsSettingsPopup = exports.ColumnsSettings = exports.ColorBar = exports.CollapseRowButton = exports.BasicChartsFactory = exports.ChartsFactory = exports.CardinalityMessage = exports.BranchDecorator = exports.BasicViewHeader = exports.BasicViewContent = exports.BasicView = exports.BasicTablePagination = exports.basicTableViewState = exports.BasicTable = exports.BasicAttributeSelector = exports.BarChart = exports.AvatarWithFallback = exports.AutoSizeList = exports.AttributesView = exports.AttributesValuesEditor = exports.AttributesFiltersButton = exports.AttributesFiltersBuilder = exports.AttributesFilterSelector = exports.AttributesErrorsPanel = exports.AttributeListItem = exports.AttributeGroupIcon = exports.ArrowExpandButton = exports.ActionsPanel = exports.ActionButton = void 0;
18
18
  exports.ConnectionEditor = exports.DropDownSelector = exports.ReactSelectOptionWithCheckIcon = exports.ReactSelectMenuWithPopper = exports.ReactSelectMenuList = exports.ReactSelectLoadMoreButton = exports.ReactSelectDropdownIndicatorWithIconButton = exports.ReactSelectDropdownIndicator = exports.Highlighter = exports.HierarchyNodeTitle = exports.HierarchicalAttributeTooltip = exports.HideOnShrink = exports.ExpandableSearchInput = exports.ErrorPopup = exports.ErrorBoundary = exports.EntityUriLink = exports.EntityTypesSelector = exports.EntityTypeIcon = exports.EntityTypeBadge = exports.EntityAvatar = exports.EMPTY_STATE_VARIANTS = exports.EMPTY_STATE_ICONS = exports.EmptyState = exports.Drawer = exports.DataTypeValue = exports.DataTenantBadge = exports.ConnectionRelationTypeSelector = exports.CollaborationItem = exports.ConfirmationDialog = exports.CommentsContainer = exports.ColoredSourceIcon = exports.CollapseButton = exports.TreeChart = exports.TableWithBars = exports.SourceIcon = exports.SmallIconButtonWithTooltip = exports.SmallIconButton = exports.SimpleAttributeEditor = exports.SimpleAttribute = exports.RowCellAutoSizer = exports.RelationTypeSelector = exports.ReferenceAttributeEditor = exports.ReferenceAttribute = exports.ImageAttributesLine = exports.ReadOnlyAttributesPager = exports.ReadOnlyAttributesList = exports.ReadOnlyAttribute = exports.ReadOnlyAttributeValuesBlock = exports.PieChart = exports.OvIcon = void 0;
19
19
  exports.Popper = exports.MultipleInput = exports.ModeSwitcherSelect = exports.ModeSwitcher = exports.TransitiveMatchBlock = exports.SimpleMatchRulesBuilder = exports.SimpleMatchRulesBlock = exports.SimpleMatchRules = exports.MatchRulesBlock = exports.LoadingSpinner = exports.Link = exports.LinearLoadIndicator = exports.ImportButton = exports.ReadableSearchQueryBuilder = exports.ReadableSearchQuery = exports.LogicOperator = exports.TableSkeleton = exports.StepNavigation = exports.TenantLabel = exports.RelevanceScoreBadge = exports.RequiredMark = exports.SettingsMenu = exports.TenantsDropDownSelector = exports.TenantIcon = exports.SourceSystemsSelector = exports.MatchRulesSelector = exports.MultiValueSelector = exports.ProfilesList = exports.NotMatchButton = exports.MergeButton = exports.ProfileMatchCard = exports.ImageGalleryDialog = exports.RelationTypesSelector = exports.ScreenProfileBand = exports.ProfileBandNavigation = exports.EmptyStub = exports.MaskingSwitcher = exports.FileTypeEditor = exports.EmptySearchResult = exports.DropDownEditor = exports.FilterValueEditor = exports.MultiValueChip = exports.TextEditor = exports.DateRangeEditor = exports.NumberEditor = exports.DataTypeValueEditor = exports.DateEditor = exports.ErrorWrapper = exports.ErrorMessage = exports.ConfigureColumnsPopup = void 0;
20
- exports.MdmModuleProvider = exports.withTableContext = exports.withFilterAtBottom = exports.withPercents = exports.withContext = exports.withDateRangeSelector = exports.withDragHandle = exports.withAsyncMount = exports.withTooltip = exports.DefaultHeadCellRendererWithTooltip = exports.LazyRenderer = exports.MetadataTypesSelector = exports.DateRangeSelector = exports.UpSetChart = exports.GaugeChart = exports.RelationEditor = exports.ReltioMap = exports.Marginator = exports.LightArrowTooltip = exports.ScrollableTabs = exports.VirtualGroupedList = exports.ViewMoreToggle = exports.VerticalHeadingsTable = exports.VerticalDivider = exports.AttributeTitle = exports.Spacer = exports.SimpleDropDownSelector = exports.SidePanelContentHeader = exports.SidePanel = exports.SidePanelEmptyState = exports.SideButtonsPanel = exports.SelectorWithOnlyOptionAutoSelect = exports.SelectionPopup = exports.WhiteSearchInput = exports.SearchInput = exports.ProfileResizablePanes = exports.ResizablePanes = exports.ReltioGridLayout = exports.RCTreeSwitchRenderer = exports.RCTreeLevelLines = exports.RCTree = exports.reactSortableTreeHelpers = exports.ReactSortableTree = exports.MultiSelect = exports.QueryBuilderRowsGroup = exports.QueryBuilderRow = exports.ProfileCard = exports.ProfileBand = exports.PotentialMatchReviewCard = exports.PopupWithArrow = void 0;
21
- exports.ConfigPermissionsContextProvider = exports.ConfigPermissionsContext = exports.useActionsHook = exports.ActionsHookProvider = exports.PageRequestsAbortingContext = exports.DependentLookupAutopopulationContext = exports.FeaturesContext = exports.LabelsContext = exports.UrlGeneratorsContext = exports.isHighlightedAttributeType = exports.isHighlightedErrorType = exports.ScrollType = exports.ScrollToElementProvider = exports.ScrollToElementContext = exports.SearchValueContext = exports.InterceptHandlersContext = exports.HighlightedValuesContext = exports.SnackbarContext = exports.SearchFiltersContext = exports.useReloadFacet = exports.ReloadFacetProvider = exports.useReloadAllFacets = exports.SandboxAPIContext = exports.EntityContext = exports.RelatedObjectUrisContext = exports.WorkflowTasksContext = exports.useEntityLoadingIndication = exports.EntityLoadingIndicationProvider = exports.EntityMarkerContext = exports.useAttributeExpanded = exports.ExpandedAttributesProvider = exports.useHighlightedCrosswalks = exports.useCrosswalkHighlight = exports.useCrosswalkFocus = exports.useCrosswalkColor = exports.CrosswalksDisplayProvider = exports.EntitiesMapContext = exports.IdContext = exports.ProfilePerspectiveViewContext = exports.usePerspectivesSettings = exports.PerspectivesSettingsContext = exports.PivotingAttributeContext = exports.UsersContext = exports.InitialCollaborationContextValue = exports.CollaborationContextProvider = exports.CollaborationContext = exports.BlockImageGalleryDialogContext = exports.PopupBoundariesContext = exports.HistoryDiffContext = exports.AsyncMountContext = void 0;
22
- exports.useDynamicRowCellHeight = exports.useClickableStyle = exports.BasicTableCellRenderer = exports.useBasicTableCellRenderer = exports.useHiddenAttributes = exports.useSavedSearchesRequest = exports.useRequestDCRReview = exports.useAutoFocus = exports.useExpandInvalidRelations = exports.useLayoutResetter = exports.useIsMountedRef = exports.useSnackbar = exports.useSavedStateForEntityType = exports.useReadableSearchState = exports.useEditableConnection = exports.useCustomScripts = exports.useMarkAsNotMatchRequest = exports.useMergeAllRequest = exports.usePagingSimulator = exports.useMatchesLoader = exports.useConfigPermissions = exports.useWhyDidYouUpdate = exports.useUsers = exports.useSavedState = exports.useSafePromise = exports.useRunOnceAfterValueInitialization = exports.useRelationsLoader = exports.useRelationTypeSelector = exports.usePrevious = exports.useDidUpdateEffect = exports.useCommentsEntitiesMap = exports.useCollaboration = exports.useAsyncMount = exports.useAPI = exports.useActions = exports.useMatchesColumnsData = exports.useScrollToAttributeError = exports.ThemeProvider = exports.ProfileTablesContext = exports.HiddenAttributesContext = exports.BasicTableContext = exports.BasicTableRowCollapseContext = exports.useDeleteUnmaskedAttributeForRelation = exports.useUnmaskedAttributeValue = exports.useUnmaskAttributeValue = exports.useMaskAttributeValue = exports.MaskedAttributesProvider = exports.useReloadData = exports.ReloadDataProvider = exports.useAttributeValueConfigPermissions = void 0;
23
- exports.mockComputedStyles = exports.FakeMouseEvent = exports.rerenderWrapper = exports.mockElementSizes = exports.fixClicksOnResizablePanes = exports.mockBasicTableSizing = exports.getMuiIconsByName = exports.getMuiIconByName = exports.deepFreeze = exports.awaitMockPromises = exports.TestStylesProvider = exports.TestPerspectivesSettingsProvider = exports.applyCompactValuesCountConstraint = exports.getAttributeSelectorItems = exports.mergeClasses = exports.isControlOrCommandPressed = exports.getValue = exports.getChecked = exports.showErrorMessage = exports.showDefaultErrorMessage = exports.enrichDataWithPercents = exports.defaultRenderRowCell = exports.defaultGetRowCellHeight = exports.columnFilterToMdmFilter = exports.buildColumnsSizeById = exports.buildColumnsFilter = exports.useDndBasicTableScrollModifier = exports.useDynamicYAxisWidth = exports.useFilterAutoFocus = exports.useSegmentationRequest = exports.resolveMarkers = exports.useMarkers = exports.useMaskedAttribute = exports.useKeyboardNavigation = void 0;
20
+ exports.withCollapseButton = exports.withTableContext = exports.withFilterAtBottom = exports.withPercents = exports.withContext = exports.withDateRangeSelector = exports.withDragHandle = exports.withAsyncMount = exports.withTooltip = exports.DefaultHeadCellRendererWithTooltip = exports.LazyRenderer = exports.MetadataTypesSelector = exports.DateRangeSelector = exports.UpSetChart = exports.GaugeChart = exports.RelationEditor = exports.ReltioMap = exports.Marginator = exports.LightArrowTooltip = exports.ScrollableTabs = exports.VirtualGroupedList = exports.ViewMoreToggle = exports.VerticalHeadingsTable = exports.VerticalDivider = exports.AttributeTitle = exports.Spacer = exports.SimpleDropDownSelector = exports.SidePanelContentHeader = exports.SidePanel = exports.SidePanelEmptyState = exports.SideButtonsPanel = exports.SelectorWithOnlyOptionAutoSelect = exports.SelectionPopup = exports.WhiteSearchInput = exports.SearchInput = exports.ProfileResizablePanes = exports.ResizablePanes = exports.ReltioGridLayout = exports.RCTreeSwitchRenderer = exports.RCTreeLevelLines = exports.RCTree = exports.reactSortableTreeHelpers = exports.ReactSortableTree = exports.MultiSelect = exports.QueryBuilderRowsGroup = exports.QueryBuilderRow = exports.ProfileCard = exports.ProfileBand = exports.PotentialMatchReviewCard = exports.PopupWithArrow = void 0;
21
+ exports.ConfigPermissionsContext = exports.useActionsHook = exports.ActionsHookProvider = exports.PageRequestsAbortingContext = exports.DependentLookupAutopopulationContext = exports.FeaturesContext = exports.LabelsContext = exports.UrlGeneratorsContext = exports.isHighlightedAttributeType = exports.isHighlightedErrorType = exports.ScrollType = exports.ScrollToElementProvider = exports.ScrollToElementContext = exports.SearchValueContext = exports.InterceptHandlersContext = exports.HighlightedValuesContext = exports.SnackbarContext = exports.SearchFiltersContext = exports.useReloadFacet = exports.ReloadFacetProvider = exports.useReloadAllFacets = exports.SandboxAPIContext = exports.EntityContext = exports.RelatedObjectUrisContext = exports.WorkflowTasksContext = exports.useEntityLoadingIndication = exports.EntityLoadingIndicationProvider = exports.EntityMarkerContext = exports.useAttributeExpanded = exports.ExpandedAttributesProvider = exports.useHighlightedCrosswalks = exports.useCrosswalkHighlight = exports.useCrosswalkFocus = exports.useCrosswalkColor = exports.CrosswalksDisplayProvider = exports.EntitiesMapContext = exports.IdContext = exports.ProfilePerspectiveViewContext = exports.usePerspectivesSettings = exports.PerspectivesSettingsContext = exports.PivotingAttributeContext = exports.UsersContext = exports.InitialCollaborationContextValue = exports.CollaborationContextProvider = exports.CollaborationContext = exports.BlockImageGalleryDialogContext = exports.PopupBoundariesContext = exports.HistoryDiffContext = exports.AsyncMountContext = exports.MdmModuleProvider = void 0;
22
+ exports.useClickableStyle = exports.BasicTableCellRenderer = exports.useBasicTableCellRenderer = exports.useHiddenAttributes = exports.useSavedSearchesRequest = exports.useRequestDCRReview = exports.useAutoFocus = exports.useExpandInvalidRelations = exports.useLayoutResetter = exports.useIsMountedRef = exports.useSnackbar = exports.useSavedStateForEntityType = exports.useReadableSearchState = exports.useEditableConnection = exports.useCustomScripts = exports.useMarkAsNotMatchRequest = exports.useMergeAllRequest = exports.usePagingSimulator = exports.useMatchesLoader = exports.useConfigPermissions = exports.useWhyDidYouUpdate = exports.useUsers = exports.useSavedState = exports.useSafePromise = exports.useRunOnceAfterValueInitialization = exports.useRelationsLoader = exports.useRelationTypeSelector = exports.usePrevious = exports.useDidUpdateEffect = exports.useCommentsEntitiesMap = exports.useCollaboration = exports.useAsyncMount = exports.useAPI = exports.useActions = exports.useMatchesColumnsData = exports.useScrollToAttributeError = exports.ThemeProvider = exports.ProfileTablesContext = exports.HiddenAttributesContext = exports.BasicTableContext = exports.BasicTableRowCollapseContext = exports.useDeleteUnmaskedAttributeForRelation = exports.useUnmaskedAttributeValue = exports.useUnmaskAttributeValue = exports.useMaskAttributeValue = exports.MaskedAttributesProvider = exports.useReloadData = exports.ReloadDataProvider = exports.useAttributeValueConfigPermissions = exports.ConfigPermissionsContextProvider = void 0;
23
+ exports.mockComputedStyles = exports.FakeMouseEvent = exports.rerenderWrapper = exports.mockElementSizes = exports.fixClicksOnResizablePanes = exports.mockBasicTableSizing = exports.getMuiIconsByName = exports.getMuiIconByName = exports.deepFreeze = exports.awaitMockPromises = exports.TestStylesProvider = exports.TestPerspectivesSettingsProvider = exports.getAttrPathFromColumnId = exports.getAttributeHeight = exports.getNestedPathByColumnId = exports.applyCompactValuesCountConstraint = exports.getAttributeSelectorItems = exports.mergeClasses = exports.isControlOrCommandPressed = exports.getValue = exports.getChecked = exports.showErrorMessage = exports.showDefaultErrorMessage = exports.enrichDataWithPercents = exports.defaultRenderRowCell = exports.defaultGetRowCellHeight = exports.columnFilterToMdmFilter = exports.buildColumnsSizeById = exports.buildColumnsFilter = exports.useSegmentsLoader = exports.useDndBasicTableScrollModifier = exports.useDynamicYAxisWidth = exports.useFilterAutoFocus = exports.useSegmentationRequest = exports.resolveMarkers = exports.useMarkers = exports.useMaskedAttribute = exports.useKeyboardNavigation = exports.useDynamicRowCellHeight = void 0;
24
24
  // components
25
25
  var ActionButton_1 = require("./ActionButton");
26
26
  Object.defineProperty(exports, "ActionButton", { enumerable: true, get: function () { return ActionButton_1.ActionButton; } });
@@ -412,6 +412,8 @@ var withFilterAtBottom_1 = require("./HOCs/withFilterAtBottom");
412
412
  Object.defineProperty(exports, "withFilterAtBottom", { enumerable: true, get: function () { return withFilterAtBottom_1.withFilterAtBottom; } });
413
413
  var withTableContext_1 = require("./HOCs/withTableContext");
414
414
  Object.defineProperty(exports, "withTableContext", { enumerable: true, get: function () { return withTableContext_1.withTableContext; } });
415
+ var withCollapseButton_1 = require("./HOCs/withCollapseButton");
416
+ Object.defineProperty(exports, "withCollapseButton", { enumerable: true, get: function () { return withCollapseButton_1.withCollapseButton; } });
415
417
  // contexts
416
418
  var MdmModuleContext_1 = require("./contexts/MdmModuleContext");
417
419
  Object.defineProperty(exports, "MdmModuleProvider", { enumerable: true, get: function () { return MdmModuleContext_1.MdmModuleProvider; } });
@@ -607,6 +609,8 @@ var useDynamicYAxisWidth_1 = require("./hooks/useDynamicYAxisWidth");
607
609
  Object.defineProperty(exports, "useDynamicYAxisWidth", { enumerable: true, get: function () { return useDynamicYAxisWidth_1.useDynamicYAxisWidth; } });
608
610
  var useDndBasicTableScrollModifier_1 = require("./hooks/useDndBasicTableScrollModifier");
609
611
  Object.defineProperty(exports, "useDndBasicTableScrollModifier", { enumerable: true, get: function () { return useDndBasicTableScrollModifier_1.useDndBasicTableScrollModifier; } });
612
+ var useSegmentsLoader_1 = require("./hooks/useSegmentsLoader");
613
+ Object.defineProperty(exports, "useSegmentsLoader", { enumerable: true, get: function () { return useSegmentsLoader_1.useSegmentsLoader; } });
610
614
  // helpers
611
615
  var basicTable_1 = require("./helpers/basicTable");
612
616
  Object.defineProperty(exports, "buildColumnsFilter", { enumerable: true, get: function () { return basicTable_1.buildColumnsFilter; } });
@@ -629,6 +633,10 @@ var attributesSelector_1 = require("./helpers/attributesSelector");
629
633
  Object.defineProperty(exports, "getAttributeSelectorItems", { enumerable: true, get: function () { return attributesSelector_1.getAttributeSelectorItems; } });
630
634
  var tableCompactCollapseHelpers_1 = require("./helpers/tableCompactCollapseHelpers");
631
635
  Object.defineProperty(exports, "applyCompactValuesCountConstraint", { enumerable: true, get: function () { return tableCompactCollapseHelpers_1.applyCompactValuesCountConstraint; } });
636
+ var entitiesTable_1 = require("./helpers/entitiesTable");
637
+ Object.defineProperty(exports, "getNestedPathByColumnId", { enumerable: true, get: function () { return entitiesTable_1.getNestedPathByColumnId; } });
638
+ Object.defineProperty(exports, "getAttributeHeight", { enumerable: true, get: function () { return entitiesTable_1.getAttributeHeight; } });
639
+ Object.defineProperty(exports, "getAttrPathFromColumnId", { enumerable: true, get: function () { return entitiesTable_1.getAttrPathFromColumnId; } });
632
640
  __exportStar(require("./types/preferences"), exports);
633
641
  __exportStar(require("./types"), exports);
634
642
  // constants
@@ -0,0 +1,9 @@
1
+ export declare const REFERENCE_HEIGHT = 28;
2
+ export declare const BLOB_HEIGHT = 100;
3
+ export declare const IMAGE_HEIGHT = 76;
4
+ export declare const getAttributeHeight: ({ columnData, cell }: {
5
+ columnData: any;
6
+ cell: any;
7
+ }) => number;
8
+ export declare const getAttrPathFromColumnId: any;
9
+ export declare const getNestedPathByColumnId: (columnId: string) => string[];
@@ -0,0 +1,34 @@
1
+ import { split, path } from 'ramda';
2
+ import { isAttributeSearchUri } from '@reltio/mdm-sdk';
3
+ export var REFERENCE_HEIGHT = 28;
4
+ export var BLOB_HEIGHT = 100;
5
+ export var IMAGE_HEIGHT = 76;
6
+ var PADDING = 17;
7
+ export var getAttributeHeight = function (_a) {
8
+ var columnData = _a.columnData, cell = _a.cell;
9
+ var countAttributes = cell.values.length;
10
+ var defaultHeight = 28 * Math.max(countAttributes, 1) + 20;
11
+ if (!countAttributes) {
12
+ return defaultHeight;
13
+ }
14
+ switch (path(['dataTypeDefinition', 'type'], columnData)) {
15
+ case 'Reference':
16
+ return REFERENCE_HEIGHT * countAttributes + PADDING;
17
+ case 'Blob':
18
+ return BLOB_HEIGHT * countAttributes;
19
+ case 'Image':
20
+ return IMAGE_HEIGHT * countAttributes + PADDING;
21
+ default:
22
+ return defaultHeight;
23
+ }
24
+ };
25
+ export var getAttrPathFromColumnId = split('.');
26
+ export var getNestedPathByColumnId = function (columnId) {
27
+ if (isAttributeSearchUri(columnId)) {
28
+ var _a = getAttrPathFromColumnId(columnId), attrPath = _a.slice(1);
29
+ return attrPath.length > 1 ? attrPath.slice(0, -1) : null;
30
+ }
31
+ else {
32
+ return null;
33
+ }
34
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,18 @@
1
+ import { getAttributeHeight } from './entitiesTable';
2
+ describe('height calculator tests', function () {
3
+ it('should return height correctly when countAttributes more than 1', function () {
4
+ expect(getAttributeHeight({ columnData: {}, cell: { values: [1, 2] } })).toBe(76);
5
+ });
6
+ it('should return height correctly when countAttributes is 0', function () {
7
+ expect(getAttributeHeight({ columnData: {}, cell: { values: [] } })).toBe(48);
8
+ });
9
+ it('should return height correctly when attribute is Reference', function () {
10
+ expect(getAttributeHeight({ columnData: { dataTypeDefinition: { type: 'Reference' } }, cell: { values: [{ entity: {} }] } })).toBe(45);
11
+ });
12
+ it('should return height correctly when attribute is Blob', function () {
13
+ expect(getAttributeHeight({ columnData: { dataTypeDefinition: { type: 'Blob' } }, cell: { values: ['123'] } })).toBe(100);
14
+ });
15
+ it('should return height correctly when attribute is Image', function () {
16
+ expect(getAttributeHeight({ columnData: { dataTypeDefinition: { type: 'Image' } }, cell: { values: ['uri/123'] } })).toBe(93);
17
+ });
18
+ });
@@ -0,0 +1 @@
1
+ export declare const buildSegmentsFilterString: any;
@@ -0,0 +1,33 @@
1
+ import { cond, defaultTo, equals, join, map, pipe, reject, toPairs } from 'ramda';
2
+ import { isEmptyValue, wrapInBrackets, multiValueFilter } from '@reltio/mdm-sdk';
3
+ var buildFavoriteFilterClause = function (value) {
4
+ return value ? "equals(favorite, 'true')" : '';
5
+ };
6
+ var buildOwnerFilterClause = function (user) {
7
+ return "equals(owner, '".concat(user, "')");
8
+ };
9
+ var buildStatusFilterClause = function (status) {
10
+ return "equals(status, '".concat(status, "')");
11
+ };
12
+ var buildSharingFilterClause = function (value) {
13
+ return "equals(sharing, '".concat(value, "')");
14
+ };
15
+ var buildDestinationFilterClause = function (value) {
16
+ return "equals(integrationIDs, '".concat(value, "')");
17
+ };
18
+ var buildSearchValueFilterClause = function (value) {
19
+ return "contains(label, '".concat(value, "')");
20
+ };
21
+ var getFilterClauseBuilder = cond([
22
+ [equals('showFavorite'), function () { return buildFavoriteFilterClause; }],
23
+ [equals('ownedBy'), function () { return buildOwnerFilterClause; }],
24
+ [equals('statuses'), function () { return multiValueFilter(buildStatusFilterClause); }],
25
+ [equals('createdBy'), function () { return multiValueFilter(buildOwnerFilterClause); }],
26
+ [equals('sharedWith'), function () { return multiValueFilter(buildSharingFilterClause); }],
27
+ [equals('destinations'), function () { return multiValueFilter(buildDestinationFilterClause); }],
28
+ [equals('searchValue'), function () { return buildSearchValueFilterClause; }]
29
+ ]);
30
+ export var buildSegmentsFilterString = pipe(defaultTo({}), reject(isEmptyValue), toPairs, map(function (_a) {
31
+ var key = _a[0], value = _a[1];
32
+ return getFilterClauseBuilder(key)(value);
33
+ }), reject(isEmptyValue), map(wrapInBrackets), join(' and '));
@@ -0,0 +1 @@
1
+ export { useSegmentsLoader } from './useSegmentsLoader';
@@ -0,0 +1 @@
1
+ export { useSegmentsLoader } from './useSegmentsLoader';
@@ -0,0 +1,15 @@
1
+ import { NewSegment, SegmentationFilters, SortingField } from '@reltio/mdm-sdk';
2
+ import { RequestStates } from '../../types';
3
+ type Props = {
4
+ sorting?: SortingField;
5
+ rowsPerPage: number;
6
+ page: number;
7
+ filters?: SegmentationFilters;
8
+ };
9
+ export declare const useSegmentsLoader: ({ sorting, rowsPerPage, page, filters }: Props) => {
10
+ requestState: RequestStates;
11
+ segments: NewSegment[];
12
+ total: number;
13
+ reload: () => Promise<void>;
14
+ };
15
+ export {};
@@ -0,0 +1,88 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ var __generator = (this && this.__generator) || function (thisArg, body) {
11
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
12
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
13
+ function verb(n) { return function (v) { return step([n, v]); }; }
14
+ function step(op) {
15
+ if (f) throw new TypeError("Generator is already executing.");
16
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
17
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
18
+ if (y = 0, t) op = [op[0] & 2, t.value];
19
+ switch (op[0]) {
20
+ case 0: case 1: t = op; break;
21
+ case 4: _.label++; return { value: op[1], done: false };
22
+ case 5: _.label++; y = op[1]; op = [0]; continue;
23
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
24
+ default:
25
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
26
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
27
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
28
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
29
+ if (t[2]) _.ops.pop();
30
+ _.trys.pop(); continue;
31
+ }
32
+ op = body.call(thisArg, _);
33
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
34
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35
+ }
36
+ };
37
+ import { useCallback, useEffect, useMemo, useState } from 'react';
38
+ import { reject } from 'ramda';
39
+ import { getSegments, isAbortError, isEmptyValue } from '@reltio/mdm-sdk';
40
+ import { RequestStates } from '../../types';
41
+ import { buildSegmentsFilterString } from '../../helpers/segments';
42
+ export var useSegmentsLoader = function (_a) {
43
+ var sorting = _a.sorting, rowsPerPage = _a.rowsPerPage, page = _a.page, filters = _a.filters;
44
+ var _b = useState(RequestStates.INIT), requestState = _b[0], setRequestState = _b[1];
45
+ var _c = useState([]), segments = _c[0], setSegments = _c[1];
46
+ var _d = useState(0), segmentsTotal = _d[0], setSegmentsTotal = _d[1];
47
+ var _e = sorting || {}, sort = _e.field, order = _e.order;
48
+ var filterString = buildSegmentsFilterString(filters);
49
+ var segmentsRequestParams = useMemo(function () { return reject(isEmptyValue, { sort: sort, order: order, max: rowsPerPage, offset: page * rowsPerPage, filter: filterString }); }, [sort, order, rowsPerPage, page, filterString]);
50
+ var loadRequest = useCallback(function () { return __awaiter(void 0, void 0, void 0, function () {
51
+ var _a, segments_1, total, error_1;
52
+ return __generator(this, function (_b) {
53
+ switch (_b.label) {
54
+ case 0:
55
+ setRequestState(RequestStates.LOADING);
56
+ _b.label = 1;
57
+ case 1:
58
+ _b.trys.push([1, 3, , 4]);
59
+ return [4 /*yield*/, getSegments(segmentsRequestParams)];
60
+ case 2:
61
+ _a = _b.sent(), segments_1 = _a.segments, total = _a.total;
62
+ setSegments(segments_1 !== null && segments_1 !== void 0 ? segments_1 : []);
63
+ setSegmentsTotal(total);
64
+ setRequestState(RequestStates.LOADED);
65
+ return [3 /*break*/, 4];
66
+ case 3:
67
+ error_1 = _b.sent();
68
+ console.warn(error_1);
69
+ if (!isAbortError(error_1)) {
70
+ setSegments([]);
71
+ setSegmentsTotal(0);
72
+ }
73
+ setRequestState(RequestStates.ERROR);
74
+ return [3 /*break*/, 4];
75
+ case 4: return [2 /*return*/];
76
+ }
77
+ });
78
+ }); }, [segmentsRequestParams]);
79
+ useEffect(function () {
80
+ loadRequest();
81
+ }, [loadRequest]);
82
+ return {
83
+ requestState: requestState,
84
+ segments: segments,
85
+ total: segmentsTotal,
86
+ reload: loadRequest
87
+ };
88
+ };
package/index.d.ts CHANGED
@@ -189,6 +189,7 @@ export { withContext } from './HOCs/withContext';
189
189
  export { withChartDataPercents as withPercents } from './HOCs/withChartDataPercents';
190
190
  export { withFilterAtBottom } from './HOCs/withFilterAtBottom';
191
191
  export { withTableContext } from './HOCs/withTableContext';
192
+ export { withCollapseButton } from './HOCs/withCollapseButton';
192
193
  export { MdmModuleProvider } from './contexts/MdmModuleContext';
193
194
  export { AsyncMountContext } from './contexts/AsyncMountContext';
194
195
  export { HistoryDiffContext } from './contexts/HistoryAppearanceContext';
@@ -273,6 +274,7 @@ export { useSegmentationRequest } from './hooks/useSegmentationRequest';
273
274
  export { useFilterAutoFocus } from './hooks/useFilterAutoFocus';
274
275
  export { useDynamicYAxisWidth } from './hooks/useDynamicYAxisWidth';
275
276
  export { useDndBasicTableScrollModifier } from './hooks/useDndBasicTableScrollModifier';
277
+ export { useSegmentsLoader } from './hooks/useSegmentsLoader';
276
278
  export { buildColumnsFilter, buildColumnsSizeById, columnFilterToMdmFilter, defaultGetRowCellHeight, defaultRenderRowCell } from './helpers/basicTable';
277
279
  export { enrichDataWithPercents } from './helpers/charts';
278
280
  export { showDefaultErrorMessage, showErrorMessage } from './helpers/errors';
@@ -280,6 +282,7 @@ export { getChecked, getValue, isControlOrCommandPressed } from './helpers/event
280
282
  export { mergeClasses } from './helpers/classes';
281
283
  export { getAttributeSelectorItems } from './helpers/attributesSelector';
282
284
  export { applyCompactValuesCountConstraint } from './helpers/tableCompactCollapseHelpers';
285
+ export { getNestedPathByColumnId, getAttributeHeight, getAttrPathFromColumnId } from './helpers/entitiesTable';
283
286
  export type { AttributeFiltersComponentProps } from './AttributesFiltersBuilder';
284
287
  export type { ChartData } from './types/charts';
285
288
  export type { AddInlineAttributeEvent, DeleteInlineAttributeEvent, EditInlineAttributeEvent, IgnoreInlineAttributeEvent, PinInlineAttributeEvent } from './types/inlineAttributes';
package/index.js CHANGED
@@ -190,6 +190,7 @@ export { withContext } from './HOCs/withContext';
190
190
  export { withChartDataPercents as withPercents } from './HOCs/withChartDataPercents';
191
191
  export { withFilterAtBottom } from './HOCs/withFilterAtBottom';
192
192
  export { withTableContext } from './HOCs/withTableContext';
193
+ export { withCollapseButton } from './HOCs/withCollapseButton';
193
194
  // contexts
194
195
  export { MdmModuleProvider } from './contexts/MdmModuleContext';
195
196
  export { AsyncMountContext } from './contexts/AsyncMountContext';
@@ -276,6 +277,7 @@ export { useSegmentationRequest } from './hooks/useSegmentationRequest';
276
277
  export { useFilterAutoFocus } from './hooks/useFilterAutoFocus';
277
278
  export { useDynamicYAxisWidth } from './hooks/useDynamicYAxisWidth';
278
279
  export { useDndBasicTableScrollModifier } from './hooks/useDndBasicTableScrollModifier';
280
+ export { useSegmentsLoader } from './hooks/useSegmentsLoader';
279
281
  // helpers
280
282
  export { buildColumnsFilter, buildColumnsSizeById, columnFilterToMdmFilter, defaultGetRowCellHeight, defaultRenderRowCell } from './helpers/basicTable';
281
283
  export { enrichDataWithPercents } from './helpers/charts';
@@ -284,6 +286,7 @@ export { getChecked, getValue, isControlOrCommandPressed } from './helpers/event
284
286
  export { mergeClasses } from './helpers/classes';
285
287
  export { getAttributeSelectorItems } from './helpers/attributesSelector';
286
288
  export { applyCompactValuesCountConstraint } from './helpers/tableCompactCollapseHelpers';
289
+ export { getNestedPathByColumnId, getAttributeHeight, getAttrPathFromColumnId } from './helpers/entitiesTable';
287
290
  export * from './types/preferences';
288
291
  export * from './types';
289
292
  // constants
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@reltio/components",
3
- "version": "1.4.2094",
3
+ "version": "1.4.2096",
4
4
  "license": "SEE LICENSE IN LICENSE FILE",
5
5
  "main": "./cjs/index.js",
6
6
  "module": "./index.js",
@@ -11,7 +11,7 @@
11
11
  "@fluentui/react-context-selector": "^9.1.26",
12
12
  "@googlemaps/markerclusterer": "^2.5.3",
13
13
  "@react-sigma/core": "3.4.0",
14
- "@reltio/mdm-sdk": "^1.4.1932",
14
+ "@reltio/mdm-sdk": "^1.4.1934",
15
15
  "@vis.gl/react-google-maps": "^1.3.0",
16
16
  "d3-cloud": "^1.2.5",
17
17
  "d3-geo": "^2.0.1",