@reltio/components 1.4.2095 → 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.
@@ -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
@@ -274,6 +274,7 @@ export { useSegmentationRequest } from './hooks/useSegmentationRequest';
274
274
  export { useFilterAutoFocus } from './hooks/useFilterAutoFocus';
275
275
  export { useDynamicYAxisWidth } from './hooks/useDynamicYAxisWidth';
276
276
  export { useDndBasicTableScrollModifier } from './hooks/useDndBasicTableScrollModifier';
277
+ export { useSegmentsLoader } from './hooks/useSegmentsLoader';
277
278
  export { buildColumnsFilter, buildColumnsSizeById, columnFilterToMdmFilter, defaultGetRowCellHeight, defaultRenderRowCell } from './helpers/basicTable';
278
279
  export { enrichDataWithPercents } from './helpers/charts';
279
280
  export { showDefaultErrorMessage, showErrorMessage } from './helpers/errors';
package/cjs/index.js CHANGED
@@ -20,7 +20,7 @@ exports.Popper = exports.MultipleInput = exports.ModeSwitcherSelect = exports.Mo
20
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
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
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.useDndBasicTableScrollModifier = exports.useDynamicYAxisWidth = exports.useFilterAutoFocus = exports.useSegmentationRequest = exports.resolveMarkers = exports.useMarkers = exports.useMaskedAttribute = exports.useKeyboardNavigation = exports.useDynamicRowCellHeight = 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; } });
@@ -609,6 +609,8 @@ var useDynamicYAxisWidth_1 = require("./hooks/useDynamicYAxisWidth");
609
609
  Object.defineProperty(exports, "useDynamicYAxisWidth", { enumerable: true, get: function () { return useDynamicYAxisWidth_1.useDynamicYAxisWidth; } });
610
610
  var useDndBasicTableScrollModifier_1 = require("./hooks/useDndBasicTableScrollModifier");
611
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; } });
612
614
  // helpers
613
615
  var basicTable_1 = require("./helpers/basicTable");
614
616
  Object.defineProperty(exports, "buildColumnsFilter", { enumerable: true, get: function () { return basicTable_1.buildColumnsFilter; } });
@@ -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
@@ -274,6 +274,7 @@ export { useSegmentationRequest } from './hooks/useSegmentationRequest';
274
274
  export { useFilterAutoFocus } from './hooks/useFilterAutoFocus';
275
275
  export { useDynamicYAxisWidth } from './hooks/useDynamicYAxisWidth';
276
276
  export { useDndBasicTableScrollModifier } from './hooks/useDndBasicTableScrollModifier';
277
+ export { useSegmentsLoader } from './hooks/useSegmentsLoader';
277
278
  export { buildColumnsFilter, buildColumnsSizeById, columnFilterToMdmFilter, defaultGetRowCellHeight, defaultRenderRowCell } from './helpers/basicTable';
278
279
  export { enrichDataWithPercents } from './helpers/charts';
279
280
  export { showDefaultErrorMessage, showErrorMessage } from './helpers/errors';
package/index.js CHANGED
@@ -277,6 +277,7 @@ export { useSegmentationRequest } from './hooks/useSegmentationRequest';
277
277
  export { useFilterAutoFocus } from './hooks/useFilterAutoFocus';
278
278
  export { useDynamicYAxisWidth } from './hooks/useDynamicYAxisWidth';
279
279
  export { useDndBasicTableScrollModifier } from './hooks/useDndBasicTableScrollModifier';
280
+ export { useSegmentsLoader } from './hooks/useSegmentsLoader';
280
281
  // helpers
281
282
  export { buildColumnsFilter, buildColumnsSizeById, columnFilterToMdmFilter, defaultGetRowCellHeight, defaultRenderRowCell } from './helpers/basicTable';
282
283
  export { enrichDataWithPercents } from './helpers/charts';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@reltio/components",
3
- "version": "1.4.2095",
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.1933",
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",