@reltio/components 1.4.2096 → 1.4.2100

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 (59) hide show
  1. package/BasicTable/basicTableViewState.d.ts +3 -3
  2. package/HOCs/withErrorBoundary/index.d.ts +1 -0
  3. package/HOCs/withErrorBoundary/index.js +1 -0
  4. package/HOCs/withErrorBoundary/withErrorBoundary.d.ts +5 -0
  5. package/HOCs/withErrorBoundary/withErrorBoundary.js +23 -0
  6. package/SegmentIdLink/SegmentIdLink.d.ts +5 -0
  7. package/SegmentIdLink/SegmentIdLink.js +41 -0
  8. package/SegmentIdLink/index.d.ts +1 -0
  9. package/SegmentIdLink/index.js +1 -0
  10. package/cjs/BasicTable/basicTableViewState.d.ts +3 -3
  11. package/cjs/HOCs/withErrorBoundary/index.d.ts +1 -0
  12. package/cjs/HOCs/withErrorBoundary/index.js +5 -0
  13. package/cjs/HOCs/withErrorBoundary/withErrorBoundary.d.ts +5 -0
  14. package/cjs/HOCs/withErrorBoundary/withErrorBoundary.js +30 -0
  15. package/cjs/SegmentIdLink/SegmentIdLink.d.ts +5 -0
  16. package/cjs/SegmentIdLink/SegmentIdLink.js +67 -0
  17. package/cjs/SegmentIdLink/index.d.ts +1 -0
  18. package/cjs/SegmentIdLink/index.js +5 -0
  19. package/cjs/contexts/MdmModuleContext/context.d.ts +8 -0
  20. package/cjs/contexts/MdmModuleContext/hooks.d.ts +4 -0
  21. package/cjs/contexts/UrlGeneratorsContext/index.d.ts +6 -0
  22. package/cjs/contexts/UrlGeneratorsContext/index.js +2 -1
  23. package/cjs/helpers/segments.js +2 -1
  24. package/cjs/hooks/useRelationsLoader/useRelationsLoader.d.ts +2 -5
  25. package/cjs/hooks/useSegmentsLoader/useSegmentsLoader.d.ts +1 -1
  26. package/cjs/hooks/useSegmentsLoader/useSegmentsLoader.js +27 -16
  27. package/cjs/hooks/useSegmentsSizesLoader/index.d.ts +1 -0
  28. package/cjs/hooks/useSegmentsSizesLoader/index.js +5 -0
  29. package/cjs/hooks/useSegmentsSizesLoader/useSegmentsSizesLoader.d.ts +6 -0
  30. package/{hooks/useSegmentsRequest/helper.js → cjs/hooks/useSegmentsSizesLoader/useSegmentsSizesLoader.js} +50 -11
  31. package/cjs/index.d.ts +2 -1
  32. package/cjs/index.js +8 -6
  33. package/cjs/types/basicTable.d.ts +1 -5
  34. package/contexts/MdmModuleContext/context.d.ts +8 -0
  35. package/contexts/MdmModuleContext/hooks.d.ts +4 -0
  36. package/contexts/UrlGeneratorsContext/index.d.ts +6 -0
  37. package/contexts/UrlGeneratorsContext/index.js +3 -2
  38. package/helpers/segments.js +2 -1
  39. package/hooks/useRelationsLoader/useRelationsLoader.d.ts +2 -5
  40. package/hooks/useSegmentsLoader/useSegmentsLoader.d.ts +1 -1
  41. package/hooks/useSegmentsLoader/useSegmentsLoader.js +28 -17
  42. package/hooks/useSegmentsSizesLoader/index.d.ts +1 -0
  43. package/hooks/useSegmentsSizesLoader/index.js +1 -0
  44. package/hooks/useSegmentsSizesLoader/useSegmentsSizesLoader.d.ts +6 -0
  45. package/{cjs/hooks/useSegmentsRequest/helper.js → hooks/useSegmentsSizesLoader/useSegmentsSizesLoader.js} +46 -15
  46. package/index.d.ts +2 -1
  47. package/index.js +1 -0
  48. package/package.json +3 -3
  49. package/types/basicTable.d.ts +1 -5
  50. package/cjs/hooks/useSegmentsRequest/helper.d.ts +0 -2
  51. package/cjs/hooks/useSegmentsRequest/index.d.ts +0 -1
  52. package/cjs/hooks/useSegmentsRequest/index.js +0 -5
  53. package/cjs/hooks/useSegmentsRequest/useSegmentsRequest.d.ts +0 -42
  54. package/cjs/hooks/useSegmentsRequest/useSegmentsRequest.js +0 -146
  55. package/hooks/useSegmentsRequest/helper.d.ts +0 -2
  56. package/hooks/useSegmentsRequest/index.d.ts +0 -1
  57. package/hooks/useSegmentsRequest/index.js +0 -1
  58. package/hooks/useSegmentsRequest/useSegmentsRequest.d.ts +0 -42
  59. package/hooks/useSegmentsRequest/useSegmentsRequest.js +0 -142
@@ -75,6 +75,10 @@ export type MdmModuleActionsContextProps = Partial<{
75
75
  source?: string | null;
76
76
  screen?: string;
77
77
  }) => void;
78
+ openSegment: (payload: {
79
+ segmentId: string;
80
+ tabId?: string;
81
+ }) => void;
78
82
  setDefaultProfilePicForModifiedEntity: (payload: {
79
83
  entityUri: string;
80
84
  value: ImageAttributeValue;
@@ -146,6 +150,10 @@ export declare const MdmModuleActionsContext: import("@fluentui/react-context-se
146
150
  source?: string | null;
147
151
  screen?: string;
148
152
  }) => void;
153
+ openSegment: (payload: {
154
+ segmentId: string;
155
+ tabId?: string;
156
+ }) => void;
149
157
  setDefaultProfilePicForModifiedEntity: (payload: {
150
158
  entityUri: string;
151
159
  value: ImageAttributeValue;
@@ -91,6 +91,10 @@ export declare const useMdmAction: <T extends keyof MdmModuleActionsContextProps
91
91
  source?: string | null;
92
92
  screen?: string;
93
93
  }) => void;
94
+ openSegment: (payload: {
95
+ segmentId: string;
96
+ tabId?: string;
97
+ }) => void;
94
98
  setDefaultProfilePicForModifiedEntity: (payload: {
95
99
  entityUri: string;
96
100
  value: import("@reltio/mdm-sdk").ImageAttributeValue;
@@ -14,10 +14,16 @@ type GenerateTagUrl = (params: {
14
14
  tag: string;
15
15
  entityUri: string;
16
16
  }) => string;
17
+ type GenerateSegmentUrl = (params: {
18
+ uiPath: string;
19
+ segmentId: string;
20
+ screen?: string;
21
+ }) => string;
17
22
  type UrlGenerators = {
18
23
  generateEntityUrl?: GenerateEntityUrl;
19
24
  generatePivotingUrl?: GeneratePivotingUrl;
20
25
  generateTagUrl?: GenerateTagUrl;
26
+ generateSegmentUrl?: GenerateSegmentUrl;
21
27
  };
22
28
  export declare const UrlGeneratorsContext: React.Context<UrlGenerators>;
23
29
  export {};
@@ -1,8 +1,9 @@
1
1
  import React from 'react';
2
- import { generateEntityUrlForOldMode, generatePivotingUrlForOldMode, generateTagUrlForOldMode } from '@reltio/mdm-sdk';
2
+ import { generateEntityUrlForOldMode, generatePivotingUrlForOldMode, generateTagUrlForOldMode, generateSegmentUrl } from '@reltio/mdm-sdk';
3
3
  export var UrlGeneratorsContext = React.createContext({
4
4
  generateEntityUrl: generateEntityUrlForOldMode,
5
5
  generatePivotingUrl: generatePivotingUrlForOldMode,
6
- generateTagUrl: generateTagUrlForOldMode
6
+ generateTagUrl: generateTagUrlForOldMode,
7
+ generateSegmentUrl: generateSegmentUrl
7
8
  });
8
9
  UrlGeneratorsContext.displayName = 'UrlGeneratorsContext';
@@ -28,6 +28,7 @@ var getFilterClauseBuilder = cond([
28
28
  [equals('searchValue'), function () { return buildSearchValueFilterClause; }]
29
29
  ]);
30
30
  export var buildSegmentsFilterString = pipe(defaultTo({}), reject(isEmptyValue), toPairs, map(function (_a) {
31
+ var _b;
31
32
  var key = _a[0], value = _a[1];
32
- return getFilterClauseBuilder(key)(value);
33
+ return (_b = getFilterClauseBuilder(key)) === null || _b === void 0 ? void 0 : _b(value);
33
34
  }), reject(isEmptyValue), map(wrapInBrackets), join(' and '));
@@ -1,9 +1,6 @@
1
- import { ActivityFilter, Entity, Mode, RelationsViewConfig, RelationsTableViewConfig } from '@reltio/mdm-sdk';
1
+ import { ActivityFilter, Entity, Mode, RelationsViewConfig, RelationsTableViewConfig, SortingField } from '@reltio/mdm-sdk';
2
2
  type Props = {
3
- sorting?: {
4
- field: string;
5
- order: string;
6
- };
3
+ sorting?: SortingField;
7
4
  filter?: string;
8
5
  page: number;
9
6
  rowsPerPage: number;
@@ -7,7 +7,7 @@ type Props = {
7
7
  filters?: SegmentationFilters;
8
8
  };
9
9
  export declare const useSegmentsLoader: ({ sorting, rowsPerPage, page, filters }: Props) => {
10
- requestState: RequestStates;
10
+ state: RequestStates;
11
11
  segments: NewSegment[];
12
12
  total: number;
13
13
  reload: () => Promise<void>;
@@ -34,55 +34,66 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
34
34
  if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35
35
  }
36
36
  };
37
- import { useCallback, useEffect, useMemo, useState } from 'react';
37
+ import { useCallback, useContext, useEffect, useMemo, useState } from 'react';
38
38
  import { reject } from 'ramda';
39
39
  import { getSegments, isAbortError, isEmptyValue } from '@reltio/mdm-sdk';
40
40
  import { RequestStates } from '../../types';
41
41
  import { buildSegmentsFilterString } from '../../helpers/segments';
42
+ import { PageRequestsAbortingContext } from '../../contexts/PageRequestsAbortingContext';
42
43
  export var useSegmentsLoader = function (_a) {
43
44
  var sorting = _a.sorting, rowsPerPage = _a.rowsPerPage, page = _a.page, filters = _a.filters;
45
+ var signal = useContext(PageRequestsAbortingContext);
44
46
  var _b = useState(RequestStates.INIT), requestState = _b[0], setRequestState = _b[1];
45
47
  var _c = useState([]), segments = _c[0], setSegments = _c[1];
46
- var _d = useState(0), segmentsTotal = _d[0], setSegmentsTotal = _d[1];
48
+ var _d = useState(0), total = _d[0], setTotal = _d[1];
47
49
  var _e = sorting || {}, sort = _e.field, order = _e.order;
48
50
  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]);
51
+ var params = useMemo(function () {
52
+ return reject(isEmptyValue, {
53
+ signal: signal,
54
+ sort: sort,
55
+ order: order,
56
+ max: rowsPerPage,
57
+ offset: page * rowsPerPage,
58
+ filter: filterString
59
+ });
60
+ }, [sort, order, rowsPerPage, page, filterString, signal]);
50
61
  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) {
62
+ var response, error_1;
63
+ return __generator(this, function (_a) {
64
+ switch (_a.label) {
54
65
  case 0:
55
66
  setRequestState(RequestStates.LOADING);
56
- _b.label = 1;
67
+ _a.label = 1;
57
68
  case 1:
58
- _b.trys.push([1, 3, , 4]);
59
- return [4 /*yield*/, getSegments(segmentsRequestParams)];
69
+ _a.trys.push([1, 3, , 4]);
70
+ return [4 /*yield*/, getSegments(params)];
60
71
  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);
72
+ response = _a.sent();
73
+ setSegments(response.segments || []);
74
+ setTotal(response.total);
64
75
  setRequestState(RequestStates.LOADED);
65
76
  return [3 /*break*/, 4];
66
77
  case 3:
67
- error_1 = _b.sent();
78
+ error_1 = _a.sent();
68
79
  console.warn(error_1);
69
80
  if (!isAbortError(error_1)) {
70
81
  setSegments([]);
71
- setSegmentsTotal(0);
82
+ setTotal(0);
72
83
  }
73
84
  setRequestState(RequestStates.ERROR);
74
85
  return [3 /*break*/, 4];
75
86
  case 4: return [2 /*return*/];
76
87
  }
77
88
  });
78
- }); }, [segmentsRequestParams]);
89
+ }); }, [params]);
79
90
  useEffect(function () {
80
91
  loadRequest();
81
92
  }, [loadRequest]);
82
93
  return {
83
- requestState: requestState,
94
+ state: requestState,
84
95
  segments: segments,
85
- total: segmentsTotal,
96
+ total: total,
86
97
  reload: loadRequest
87
98
  };
88
99
  };
@@ -0,0 +1 @@
1
+ export { useSegmentsSizesLoader } from './useSegmentsSizesLoader';
@@ -0,0 +1 @@
1
+ export { useSegmentsSizesLoader } from './useSegmentsSizesLoader';
@@ -0,0 +1,6 @@
1
+ import { NewSegment } from '@reltio/mdm-sdk';
2
+ type SegmentsSizes = {
3
+ [id: string]: number;
4
+ };
5
+ export declare const useSegmentsSizesLoader: (segments: NewSegment[]) => SegmentsSizes;
6
+ export {};
@@ -1,4 +1,14 @@
1
- "use strict";
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
+ };
2
12
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
13
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
14
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -35,17 +45,38 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
35
45
  if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
46
  }
37
47
  };
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.getAudienceCount = void 0;
40
- var getAudienceCount = function (segments) { return __awaiter(void 0, void 0, void 0, function () {
41
- return __generator(this, function (_a) {
42
- return [2 /*return*/, segments.reduce(function (acc, segment) {
43
- acc[segment.uri] = {
44
- isLoading: false,
45
- count: Math.floor(Math.random() * 100000)
46
- };
47
- return acc;
48
- }, {})];
49
- });
50
- }); };
51
- exports.getAudienceCount = getAudienceCount;
48
+ import { useContext, useEffect, useState } from 'react';
49
+ import { getSegmentTotal } from '@reltio/mdm-sdk';
50
+ import { PageRequestsAbortingContext } from '../../contexts/PageRequestsAbortingContext';
51
+ export var useSegmentsSizesLoader = function (segments) {
52
+ var _a = useState({}), segmentsSizes = _a[0], setSegmentsSizes = _a[1];
53
+ var signal = useContext(PageRequestsAbortingContext);
54
+ useEffect(function () {
55
+ segments.forEach(function (segment) { return __awaiter(void 0, void 0, void 0, function () {
56
+ var total_1, _a;
57
+ return __generator(this, function (_b) {
58
+ switch (_b.label) {
59
+ case 0:
60
+ _b.trys.push([0, 2, , 3]);
61
+ return [4 /*yield*/, getSegmentTotal({ segmentId: segment.id, signal: signal })];
62
+ case 1:
63
+ total_1 = (_b.sent()).total;
64
+ setSegmentsSizes(function (prevSegmentsSize) {
65
+ var _a;
66
+ return __assign(__assign({}, prevSegmentsSize), (_a = {}, _a[segment.id] = total_1, _a));
67
+ });
68
+ return [3 /*break*/, 3];
69
+ case 2:
70
+ _a = _b.sent();
71
+ setSegmentsSizes(function (prevSegmentsSize) {
72
+ var _a;
73
+ return __assign(__assign({}, prevSegmentsSize), (_a = {}, _a[segment.id] = null, _a));
74
+ });
75
+ return [3 /*break*/, 3];
76
+ case 3: return [2 /*return*/];
77
+ }
78
+ });
79
+ }); });
80
+ }, [segments, signal]);
81
+ return segmentsSizes;
82
+ };
package/index.d.ts CHANGED
@@ -77,6 +77,7 @@ export { EntityTypeBadge } from './EntityTypeBadge';
77
77
  export { EntityTypeIcon } from './EntityTypeIcon';
78
78
  export { EntityTypesSelector } from './EntityTypesSelector';
79
79
  export { EntityUriLink } from './EntityUriLink';
80
+ export { SegmentIdLink } from './SegmentIdLink';
80
81
  export { ErrorBoundary } from './ErrorBoundary';
81
82
  export { ErrorPopup } from './ErrorPopup';
82
83
  export { ExpandableSearchInput } from './ExpandableSearchInput';
@@ -286,7 +287,7 @@ export { getNestedPathByColumnId, getAttributeHeight, getAttrPathFromColumnId }
286
287
  export type { AttributeFiltersComponentProps } from './AttributesFiltersBuilder';
287
288
  export type { ChartData } from './types/charts';
288
289
  export type { AddInlineAttributeEvent, DeleteInlineAttributeEvent, EditInlineAttributeEvent, IgnoreInlineAttributeEvent, PinInlineAttributeEvent } from './types/inlineAttributes';
289
- export type { ColumnData, ColumnSize, ColumnFilter, Sorting, GroupedColumnsData, GroupedColumns, RenderRowCellProps, RowId, ElementsRowsData, TableRowsData, RowValue, DraggableProps } from './types/basicTable';
290
+ export type { ColumnData, ColumnSize, ColumnFilter, GroupedColumnsData, GroupedColumns, RenderRowCellProps, RowId, ElementsRowsData, TableRowsData, RowValue, DraggableProps } from './types/basicTable';
290
291
  export * from './types/preferences';
291
292
  export * from './types';
292
293
  export * from './constants';
package/index.js CHANGED
@@ -78,6 +78,7 @@ export { EntityTypeBadge } from './EntityTypeBadge';
78
78
  export { EntityTypeIcon } from './EntityTypeIcon';
79
79
  export { EntityTypesSelector } from './EntityTypesSelector';
80
80
  export { EntityUriLink } from './EntityUriLink';
81
+ export { SegmentIdLink } from './SegmentIdLink';
81
82
  export { ErrorBoundary } from './ErrorBoundary';
82
83
  export { ErrorPopup } from './ErrorPopup';
83
84
  export { ExpandableSearchInput } from './ExpandableSearchInput';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@reltio/components",
3
- "version": "1.4.2096",
3
+ "version": "1.4.2100",
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.1934",
14
+ "@reltio/mdm-sdk": "^1.4.1938",
15
15
  "@vis.gl/react-google-maps": "^1.3.0",
16
16
  "d3-cloud": "^1.2.5",
17
17
  "d3-geo": "^2.0.1",
@@ -28,7 +28,7 @@
28
28
  "react-dnd-html5-backend": "^10.0.2",
29
29
  "react-grid-layout": "1.4.2",
30
30
  "react-lifecycles-compat": "^3.0.4",
31
- "react-mentions": "4.3.0",
31
+ "react-mentions": "^4.3.0",
32
32
  "react-number-format": "^4.9.2",
33
33
  "react-resizable-panels": "^2.0.20",
34
34
  "react-router-dom": "^6.2.1",
@@ -1,11 +1,7 @@
1
1
  import React from 'react';
2
- import { DataTypeDefinition, SearchValue, SortOrder } from '@reltio/mdm-sdk';
2
+ import { DataTypeDefinition, SearchValue } from '@reltio/mdm-sdk';
3
3
  import { useCollapsibleTableRows } from '../hooks/useCollapsibleTableRows';
4
4
  import { DraggableAttributes } from '@dnd-kit/core';
5
- export type Sorting = {
6
- field: string;
7
- order: SortOrder;
8
- };
9
5
  export type ColumnFilter = {
10
6
  filter: string;
11
7
  value?: SearchValue;
@@ -1,2 +0,0 @@
1
- import { Segment } from '@reltio/mdm-sdk';
2
- export declare const getAudienceCount: (segments: Segment[]) => Promise<{}>;
@@ -1 +0,0 @@
1
- export { useSegmentsRequest } from './useSegmentsRequest';
@@ -1,5 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useSegmentsRequest = void 0;
4
- var useSegmentsRequest_1 = require("./useSegmentsRequest");
5
- Object.defineProperty(exports, "useSegmentsRequest", { enumerable: true, get: function () { return useSegmentsRequest_1.useSegmentsRequest; } });
@@ -1,42 +0,0 @@
1
- import { SavedSearchesOptions, SavedSearchType, SortOrder } from '@reltio/mdm-sdk';
2
- import { RequestStates } from '../../types';
3
- type Props = {
4
- options?: SavedSearchesOptions;
5
- defaultRowsPerPage: number;
6
- };
7
- export declare const useSegmentsRequest: ({ options, defaultRowsPerPage }: Props) => {
8
- data: {
9
- uri: string;
10
- name: string;
11
- description?: string;
12
- query: string;
13
- isFavorite: boolean;
14
- uiState: Record<string, any>;
15
- createDate: number;
16
- updateDate: number;
17
- isPublic: boolean;
18
- count: number;
19
- owner: string;
20
- type: SavedSearchType;
21
- isLoadingTotal?: boolean;
22
- }[];
23
- total: number;
24
- page: number;
25
- rowsPerPage: number;
26
- audienceCountMap: Record<string, {
27
- isLoading?: boolean;
28
- count?: number;
29
- }>;
30
- loadingState: RequestStates;
31
- reload: () => void;
32
- updateRowsPerPage: import("react").Dispatch<import("react").SetStateAction<number>>;
33
- updatePage: import("react").Dispatch<import("react").SetStateAction<number>>;
34
- loadSegments: () => Promise<void>;
35
- nameSortOrder: SortOrder;
36
- setNameSortOrder: import("react").Dispatch<import("react").SetStateAction<SortOrder>>;
37
- favoriteOnly: boolean;
38
- setFavoriteOnly: import("react").Dispatch<import("react").SetStateAction<boolean>>;
39
- containsWordStartingWith: string;
40
- setContainsWordStartingWith: import("react").Dispatch<import("react").SetStateAction<string>>;
41
- };
42
- export {};
@@ -1,146 +0,0 @@
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 __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
- return new (P || (P = Promise))(function (resolve, reject) {
16
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19
- step((generator = generator.apply(thisArg, _arguments || [])).next());
20
- });
21
- };
22
- var __generator = (this && this.__generator) || function (thisArg, body) {
23
- 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);
24
- return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25
- function verb(n) { return function (v) { return step([n, v]); }; }
26
- function step(op) {
27
- if (f) throw new TypeError("Generator is already executing.");
28
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
29
- 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;
30
- if (y = 0, t) op = [op[0] & 2, t.value];
31
- switch (op[0]) {
32
- case 0: case 1: t = op; break;
33
- case 4: _.label++; return { value: op[1], done: false };
34
- case 5: _.label++; y = op[1]; op = [0]; continue;
35
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
36
- default:
37
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
38
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
39
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
41
- if (t[2]) _.ops.pop();
42
- _.trys.pop(); continue;
43
- }
44
- op = body.call(thisArg, _);
45
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
46
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
- }
48
- };
49
- Object.defineProperty(exports, "__esModule", { value: true });
50
- exports.useSegmentsRequest = void 0;
51
- var react_1 = require("react");
52
- var ramda_1 = require("ramda");
53
- var PageRequestsAbortingContext_1 = require("../../contexts/PageRequestsAbortingContext");
54
- var mdm_sdk_1 = require("@reltio/mdm-sdk");
55
- var helper_1 = require("./helper");
56
- var types_1 = require("../../types");
57
- var useSegmentsRequest = function (_a) {
58
- var options = _a.options, defaultRowsPerPage = _a.defaultRowsPerPage;
59
- var _b = (0, react_1.useState)(0), page = _b[0], setPage = _b[1];
60
- var _c = (0, react_1.useState)(defaultRowsPerPage), rowsPerPage = _c[0], setRowsPerPage = _c[1];
61
- var _d = (0, react_1.useState)([]), data = _d[0], setData = _d[1];
62
- var _e = (0, react_1.useState)(0), total = _e[0], setTotal = _e[1];
63
- var _f = (0, react_1.useState)({}), audienceCountMap = _f[0], setAudienceCountMap = _f[1];
64
- var _g = (0, react_1.useState)(types_1.RequestStates.INIT), loadingState = _g[0], setLoadingState = _g[1];
65
- var _h = (0, react_1.useState)(null), nameSortOrder = _h[0], setNameSortOrder = _h[1];
66
- var _j = (0, react_1.useState)(false), favoriteOnly = _j[0], setFavoriteOnly = _j[1];
67
- var _k = (0, react_1.useState)(''), containsWordStartingWith = _k[0], setContainsWordStartingWith = _k[1];
68
- var signal = (0, react_1.useContext)(PageRequestsAbortingContext_1.PageRequestsAbortingContext);
69
- var allOptions = (0, react_1.useMemo)(function () { return (__assign(__assign({}, options), { containsWordStartingWith: containsWordStartingWith
70
- ? containsWordStartingWith
71
- : options === null || options === void 0 ? void 0 : options.containsWordStartingWith, sortBy: nameSortOrder ? 'NAME' : options === null || options === void 0 ? void 0 : options.sortBy, sortOrder: nameSortOrder ? nameSortOrder : options === null || options === void 0 ? void 0 : options.sortOrder, favoriteOnly: favoriteOnly ? favoriteOnly : options === null || options === void 0 ? void 0 : options.favoriteOnly, max: rowsPerPage, offset: rowsPerPage * page })); }, [options, page, rowsPerPage, containsWordStartingWith, nameSortOrder, favoriteOnly]);
72
- var loadSegments = (0, react_1.useCallback)(function () { return __awaiter(void 0, void 0, void 0, function () {
73
- var _a, _b, segments, total_1, audienceCountMap_1, error_1;
74
- return __generator(this, function (_c) {
75
- switch (_c.label) {
76
- case 0:
77
- setLoadingState(types_1.RequestStates.LOADING);
78
- _c.label = 1;
79
- case 1:
80
- _c.trys.push([1, 4, , 5]);
81
- return [4 /*yield*/, (0, mdm_sdk_1.getSavedSearches)(__assign(__assign({}, allOptions), { type: mdm_sdk_1.SavedSearchType.SEGMENTATION }), signal)];
82
- case 2:
83
- _a = _c.sent(), _b = _a.result, segments = _b === void 0 ? [] : _b, total_1 = _a.total;
84
- return [4 /*yield*/, (0, helper_1.getAudienceCount)(segments)];
85
- case 3:
86
- audienceCountMap_1 = _c.sent();
87
- setAudienceCountMap(audienceCountMap_1);
88
- setData(segments || []);
89
- setTotal(total_1);
90
- setLoadingState(types_1.RequestStates.LOADED);
91
- return [3 /*break*/, 5];
92
- case 4:
93
- error_1 = _c.sent();
94
- console.warn(error_1);
95
- if (!(0, mdm_sdk_1.isAbortError)(error_1)) {
96
- setLoadingState(types_1.RequestStates.ERROR);
97
- setData([]);
98
- }
99
- return [3 /*break*/, 5];
100
- case 5: return [2 /*return*/];
101
- }
102
- });
103
- }); }, [allOptions, signal]);
104
- var segmentsWithAudienceCount = (0, react_1.useMemo)(function () {
105
- return data.map(function (segment) {
106
- var _a;
107
- var _b = (_a = audienceCountMap[segment.uri]) !== null && _a !== void 0 ? _a : {}, count = _b.count, isLoading = _b.isLoading;
108
- var segmentWithAudienceCount = __assign({}, segment);
109
- if (!(0, ramda_1.isNil)(count))
110
- segmentWithAudienceCount.count = count;
111
- if (!(0, ramda_1.isNil)(isLoading))
112
- segmentWithAudienceCount.isLoadingTotal = isLoading;
113
- return segmentWithAudienceCount;
114
- });
115
- }, [data, audienceCountMap]);
116
- (0, react_1.useEffect)(function () {
117
- loadSegments();
118
- }, [loadSegments]);
119
- var reload = (0, react_1.useCallback)(function () {
120
- setPage(0);
121
- setRowsPerPage(defaultRowsPerPage);
122
- setNameSortOrder(null);
123
- setFavoriteOnly(false);
124
- setContainsWordStartingWith('');
125
- loadSegments();
126
- }, [defaultRowsPerPage, loadSegments]);
127
- return {
128
- data: segmentsWithAudienceCount,
129
- total: total,
130
- page: page,
131
- rowsPerPage: rowsPerPage,
132
- audienceCountMap: audienceCountMap,
133
- loadingState: loadingState,
134
- reload: reload,
135
- updateRowsPerPage: setRowsPerPage,
136
- updatePage: setPage,
137
- loadSegments: loadSegments,
138
- nameSortOrder: nameSortOrder,
139
- setNameSortOrder: setNameSortOrder,
140
- favoriteOnly: favoriteOnly,
141
- setFavoriteOnly: setFavoriteOnly,
142
- containsWordStartingWith: containsWordStartingWith,
143
- setContainsWordStartingWith: setContainsWordStartingWith
144
- };
145
- };
146
- exports.useSegmentsRequest = useSegmentsRequest;
@@ -1,2 +0,0 @@
1
- import { Segment } from '@reltio/mdm-sdk';
2
- export declare const getAudienceCount: (segments: Segment[]) => Promise<{}>;
@@ -1 +0,0 @@
1
- export { useSegmentsRequest } from './useSegmentsRequest';
@@ -1 +0,0 @@
1
- export { useSegmentsRequest } from './useSegmentsRequest';
@@ -1,42 +0,0 @@
1
- import { SavedSearchesOptions, SavedSearchType, SortOrder } from '@reltio/mdm-sdk';
2
- import { RequestStates } from '../../types';
3
- type Props = {
4
- options?: SavedSearchesOptions;
5
- defaultRowsPerPage: number;
6
- };
7
- export declare const useSegmentsRequest: ({ options, defaultRowsPerPage }: Props) => {
8
- data: {
9
- uri: string;
10
- name: string;
11
- description?: string;
12
- query: string;
13
- isFavorite: boolean;
14
- uiState: Record<string, any>;
15
- createDate: number;
16
- updateDate: number;
17
- isPublic: boolean;
18
- count: number;
19
- owner: string;
20
- type: SavedSearchType;
21
- isLoadingTotal?: boolean;
22
- }[];
23
- total: number;
24
- page: number;
25
- rowsPerPage: number;
26
- audienceCountMap: Record<string, {
27
- isLoading?: boolean;
28
- count?: number;
29
- }>;
30
- loadingState: RequestStates;
31
- reload: () => void;
32
- updateRowsPerPage: import("react").Dispatch<import("react").SetStateAction<number>>;
33
- updatePage: import("react").Dispatch<import("react").SetStateAction<number>>;
34
- loadSegments: () => Promise<void>;
35
- nameSortOrder: SortOrder;
36
- setNameSortOrder: import("react").Dispatch<import("react").SetStateAction<SortOrder>>;
37
- favoriteOnly: boolean;
38
- setFavoriteOnly: import("react").Dispatch<import("react").SetStateAction<boolean>>;
39
- containsWordStartingWith: string;
40
- setContainsWordStartingWith: import("react").Dispatch<import("react").SetStateAction<string>>;
41
- };
42
- export {};