@reltio/components 1.4.2006 → 1.4.2008

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 (83) hide show
  1. package/Drawer/Drawer.test.js +1 -0
  2. package/EditModeAttributesView/IntegrationEditModeAttributesView.test.js +1 -2
  3. package/HierarchyNodeTitle/useEntityDetails.test.js +3 -2
  4. package/LineChart/LineChart.test.js +1 -0
  5. package/MapChart/components/Legend/styles.d.ts +1 -1
  6. package/ProfileResizablePanes/styles.d.ts +1 -1
  7. package/ReactSortableTree/ReactSortableTree.test.js +3 -1
  8. package/ReltioMap/ReltioMap.d.ts +15 -11
  9. package/ReltioMap/ReltioMap.js +49 -39
  10. package/ReltioMap/ReltioMap.spec.js +232 -116
  11. package/ReltioMap/components/ClusteredMarkers/ClusteredMarkers.d.ts +11 -0
  12. package/ReltioMap/components/ClusteredMarkers/ClusteredMarkers.js +58 -0
  13. package/ReltioMap/components/ClusteredMarkers/CustomClusterRenderer.d.ts +8 -0
  14. package/ReltioMap/components/ClusteredMarkers/CustomClusterRenderer.js +18 -0
  15. package/ReltioMap/components/ClusteredMarkers/index.d.ts +1 -0
  16. package/ReltioMap/components/ClusteredMarkers/index.js +1 -0
  17. package/ReltioMap/components/DrawingManager/DrawingManager.d.ts +2 -0
  18. package/ReltioMap/components/DrawingManager/DrawingManager.js +5 -0
  19. package/ReltioMap/components/DrawingManager/index.d.ts +1 -0
  20. package/ReltioMap/components/DrawingManager/index.js +1 -0
  21. package/ReltioMap/components/DrawingManager/useDrawingManager.d.ts +7 -0
  22. package/ReltioMap/components/DrawingManager/useDrawingManager.js +36 -0
  23. package/ReltioMap/components/EntityMarker/EntityMarker.d.ts +8 -7
  24. package/ReltioMap/components/EntityMarker/EntityMarker.js +23 -23
  25. package/ReltioMap/components/EntityMarker/EntityMarker.spec.js +151 -66
  26. package/ReltioMap/components/Polygon/Polygon.d.ts +7 -0
  27. package/ReltioMap/components/Polygon/Polygon.js +8 -0
  28. package/ReltioMap/components/Polygon/index.d.ts +1 -0
  29. package/ReltioMap/components/Polygon/index.js +1 -0
  30. package/ReltioMap/components/Polygon/usePolygon.d.ts +10 -0
  31. package/ReltioMap/components/Polygon/usePolygon.js +35 -0
  32. package/ReltioMap/components/TopCenterMapControls/TopCenterMapControls.d.ts +2 -1
  33. package/ReltioMap/components/TopCenterMapControls/TopCenterMapControls.js +6 -5
  34. package/ReltioMap/components/TopRightMapControls/TopRightMapControls.d.ts +2 -1
  35. package/ReltioMap/components/TopRightMapControls/TopRightMapControls.js +3 -2
  36. package/ReltioMap/components/TopRightMapControls/styles.js +1 -1
  37. package/ReltioMap/helpers.d.ts +3 -2
  38. package/ReltioMap/types.d.ts +6 -3
  39. package/cjs/Drawer/Drawer.test.js +1 -0
  40. package/cjs/EditModeAttributesView/IntegrationEditModeAttributesView.test.js +1 -2
  41. package/cjs/HierarchyNodeTitle/useEntityDetails.test.js +3 -2
  42. package/cjs/LineChart/LineChart.test.js +1 -0
  43. package/cjs/MapChart/components/Legend/styles.d.ts +1 -1
  44. package/cjs/ProfileResizablePanes/styles.d.ts +1 -1
  45. package/cjs/ReactSortableTree/ReactSortableTree.test.js +3 -1
  46. package/cjs/ReltioMap/ReltioMap.d.ts +15 -11
  47. package/cjs/ReltioMap/ReltioMap.js +48 -38
  48. package/cjs/ReltioMap/ReltioMap.spec.js +230 -114
  49. package/cjs/ReltioMap/components/ClusteredMarkers/ClusteredMarkers.d.ts +11 -0
  50. package/cjs/ReltioMap/components/ClusteredMarkers/ClusteredMarkers.js +84 -0
  51. package/cjs/ReltioMap/components/ClusteredMarkers/CustomClusterRenderer.d.ts +8 -0
  52. package/cjs/ReltioMap/components/ClusteredMarkers/CustomClusterRenderer.js +21 -0
  53. package/cjs/ReltioMap/components/ClusteredMarkers/index.d.ts +1 -0
  54. package/cjs/ReltioMap/components/ClusteredMarkers/index.js +5 -0
  55. package/cjs/ReltioMap/components/DrawingManager/DrawingManager.d.ts +2 -0
  56. package/cjs/ReltioMap/components/DrawingManager/DrawingManager.js +9 -0
  57. package/cjs/ReltioMap/components/DrawingManager/index.d.ts +1 -0
  58. package/cjs/ReltioMap/components/DrawingManager/index.js +5 -0
  59. package/cjs/ReltioMap/components/DrawingManager/useDrawingManager.d.ts +7 -0
  60. package/cjs/ReltioMap/components/DrawingManager/useDrawingManager.js +40 -0
  61. package/cjs/ReltioMap/components/EntityMarker/EntityMarker.d.ts +8 -7
  62. package/cjs/ReltioMap/components/EntityMarker/EntityMarker.js +22 -22
  63. package/cjs/ReltioMap/components/EntityMarker/EntityMarker.spec.js +151 -66
  64. package/cjs/ReltioMap/components/Polygon/Polygon.d.ts +7 -0
  65. package/cjs/ReltioMap/components/Polygon/Polygon.js +11 -0
  66. package/cjs/ReltioMap/components/Polygon/index.d.ts +1 -0
  67. package/cjs/ReltioMap/components/Polygon/index.js +5 -0
  68. package/cjs/ReltioMap/components/Polygon/usePolygon.d.ts +10 -0
  69. package/cjs/ReltioMap/components/Polygon/usePolygon.js +39 -0
  70. package/cjs/ReltioMap/components/TopCenterMapControls/TopCenterMapControls.d.ts +2 -1
  71. package/cjs/ReltioMap/components/TopCenterMapControls/TopCenterMapControls.js +6 -5
  72. package/cjs/ReltioMap/components/TopRightMapControls/TopRightMapControls.d.ts +2 -1
  73. package/cjs/ReltioMap/components/TopRightMapControls/TopRightMapControls.js +3 -2
  74. package/cjs/ReltioMap/components/TopRightMapControls/styles.js +1 -1
  75. package/cjs/ReltioMap/helpers.d.ts +3 -2
  76. package/cjs/ReltioMap/types.d.ts +6 -3
  77. package/cjs/features/graph/DataModelGraph/hooks/useFakeCenterNode.test.js +1 -0
  78. package/cjs/hooks/useMarkers/referenceHelpers.js +25 -2
  79. package/cjs/hooks/useMarkers/referenceHelpers.test.js +10 -1
  80. package/features/graph/DataModelGraph/hooks/useFakeCenterNode.test.js +1 -0
  81. package/hooks/useMarkers/referenceHelpers.js +25 -2
  82. package/hooks/useMarkers/referenceHelpers.test.js +10 -1
  83. package/package.json +3 -2
@@ -60,6 +60,29 @@ exports.getPointsFromReference = void 0;
60
60
  var ramda_1 = require("ramda");
61
61
  var mdm_sdk_1 = require("@reltio/mdm-sdk");
62
62
  var helpers_1 = require("./helpers");
63
+ var createCachedDecodeAddress = function (maxCacheSize) {
64
+ if (maxCacheSize === void 0) { maxCacheSize = 500; }
65
+ var cache = new Map();
66
+ return function (_a) {
67
+ var servicesPath = _a.servicesPath, address = _a.address;
68
+ if (cache.has(address)) {
69
+ var cached = cache.get(address);
70
+ // maintain LRU cache - move recently used item to the end of the queue
71
+ cache.delete(address);
72
+ cache.set(address, cached);
73
+ return cached;
74
+ }
75
+ var promise = (0, mdm_sdk_1.decodeAddress)({ servicesPath: servicesPath, address: address });
76
+ cache.set(address, promise);
77
+ promise.catch(function () { return cache.delete(address); });
78
+ if (cache.size > maxCacheSize) {
79
+ // maintain LRU cache - remove the oldest (first) item
80
+ cache.delete(cache.keys().next().value);
81
+ }
82
+ return promise;
83
+ };
84
+ };
85
+ var cachedDecodeAddress = createCachedDecodeAddress();
63
86
  var getGeoLocation = function (servicesPath, entity, attributes, metadata, refAttribute, name) { return __awaiter(void 0, void 0, void 0, function () {
64
87
  var entityType, results, geoLocation, results, response, _a;
65
88
  var _b;
@@ -98,7 +121,7 @@ var getGeoLocation = function (servicesPath, entity, attributes, metadata, refAt
98
121
  _c.label = 1;
99
122
  case 1:
100
123
  _c.trys.push([1, 3, , 4]);
101
- return [4 /*yield*/, (0, mdm_sdk_1.decodeAddress)({ servicesPath: servicesPath, address: refAttribute.label })];
124
+ return [4 /*yield*/, cachedDecodeAddress({ servicesPath: servicesPath, address: refAttribute.label })];
102
125
  case 2:
103
126
  response = _c.sent();
104
127
  return [2 /*return*/, response.location];
@@ -162,7 +185,7 @@ var getPointsFromReference = function (servicesPath_1, metadata_1) {
162
185
  return getGeoLocation(servicesPath, entity, pointSource, metadata, refAttribute, name)
163
186
  .then(function (points) {
164
187
  if (!points && entity.label) {
165
- return (0, mdm_sdk_1.decodeAddress)({ servicesPath: servicesPath, address: entity.label })
188
+ return cachedDecodeAddress({ servicesPath: servicesPath, address: entity.label })
166
189
  .then(function (response) { return response.location; })
167
190
  .catch(function () { return null; });
168
191
  }
@@ -338,6 +338,15 @@ describe('from reference strategy test', function () {
338
338
  expect(points[0].entity).toEqual(entities[0]);
339
339
  expect(points[0].label).toBe('label');
340
340
  expect(points[0].point).toEqual({ lat: 321, lng: 123 });
341
+ expect(mdm_sdk_1.decodeAddress).toHaveBeenCalledTimes(1);
342
+ return [4 /*yield*/, (0, referenceHelpers_1.getPointsFromReference)(servicesPath, defaultMetadata, entities)];
343
+ case 2:
344
+ points = _a.sent();
345
+ expect(points[0].id).toBe('entities/111');
346
+ expect(points[0].entity).toEqual(entities[0]);
347
+ expect(points[0].label).toBe('label');
348
+ expect(points[0].point).toEqual({ lat: 321, lng: 123 });
349
+ expect(mdm_sdk_1.decodeAddress).toHaveBeenCalledTimes(1);
341
350
  return [2 /*return*/];
342
351
  }
343
352
  });
@@ -479,7 +488,7 @@ describe('from reference strategy test', function () {
479
488
  switch (_a.label) {
480
489
  case 0:
481
490
  metadata = (0, ramda_1.assocPath)(['entityTypes', 0, 'attributes', 0, 'attributes', 0, 'masking'], { regex: '***' }, defaultMetadata);
482
- return [4 /*yield*/, (0, referenceHelpers_1.getPointsFromReference)(servicesPath, metadata, defaultEntities)];
491
+ return [4 /*yield*/, (0, referenceHelpers_1.getPointsFromReference)(servicesPath, metadata, defaultEntities.map(function (entity) { return (__assign(__assign({}, entity), { label: '***' })); }))];
483
492
  case 1:
484
493
  points = _a.sent();
485
494
  expect(points).toEqual([]);
@@ -31,5 +31,6 @@ describe('useFakeCenterNode tests', function () {
31
31
  jest.advanceTimersByTime(1000);
32
32
  });
33
33
  expect(graph.hasNode(FAKE_CENTER_NODE_ID)).toBe(false);
34
+ jest.useRealTimers();
34
35
  });
35
36
  });
@@ -57,6 +57,29 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
57
57
  import { identity, flatten } from 'ramda';
58
58
  import { decodeAddress, getEntityType, wrapInArrayIfNeeded, hasMaskingByUris } from '@reltio/mdm-sdk';
59
59
  import { getPointsFromAttributes, isSet } from './helpers';
60
+ var createCachedDecodeAddress = function (maxCacheSize) {
61
+ if (maxCacheSize === void 0) { maxCacheSize = 500; }
62
+ var cache = new Map();
63
+ return function (_a) {
64
+ var servicesPath = _a.servicesPath, address = _a.address;
65
+ if (cache.has(address)) {
66
+ var cached = cache.get(address);
67
+ // maintain LRU cache - move recently used item to the end of the queue
68
+ cache.delete(address);
69
+ cache.set(address, cached);
70
+ return cached;
71
+ }
72
+ var promise = decodeAddress({ servicesPath: servicesPath, address: address });
73
+ cache.set(address, promise);
74
+ promise.catch(function () { return cache.delete(address); });
75
+ if (cache.size > maxCacheSize) {
76
+ // maintain LRU cache - remove the oldest (first) item
77
+ cache.delete(cache.keys().next().value);
78
+ }
79
+ return promise;
80
+ };
81
+ };
82
+ var cachedDecodeAddress = createCachedDecodeAddress();
60
83
  var getGeoLocation = function (servicesPath, entity, attributes, metadata, refAttribute, name) { return __awaiter(void 0, void 0, void 0, function () {
61
84
  var entityType, results, geoLocation, results, response, _a;
62
85
  var _b;
@@ -95,7 +118,7 @@ var getGeoLocation = function (servicesPath, entity, attributes, metadata, refAt
95
118
  _c.label = 1;
96
119
  case 1:
97
120
  _c.trys.push([1, 3, , 4]);
98
- return [4 /*yield*/, decodeAddress({ servicesPath: servicesPath, address: refAttribute.label })];
121
+ return [4 /*yield*/, cachedDecodeAddress({ servicesPath: servicesPath, address: refAttribute.label })];
99
122
  case 2:
100
123
  response = _c.sent();
101
124
  return [2 /*return*/, response.location];
@@ -159,7 +182,7 @@ export var getPointsFromReference = function (servicesPath_1, metadata_1) {
159
182
  return getGeoLocation(servicesPath, entity, pointSource, metadata, refAttribute, name)
160
183
  .then(function (points) {
161
184
  if (!points && entity.label) {
162
- return decodeAddress({ servicesPath: servicesPath, address: entity.label })
185
+ return cachedDecodeAddress({ servicesPath: servicesPath, address: entity.label })
163
186
  .then(function (response) { return response.location; })
164
187
  .catch(function () { return null; });
165
188
  }
@@ -336,6 +336,15 @@ describe('from reference strategy test', function () {
336
336
  expect(points[0].entity).toEqual(entities[0]);
337
337
  expect(points[0].label).toBe('label');
338
338
  expect(points[0].point).toEqual({ lat: 321, lng: 123 });
339
+ expect(decodeAddress).toHaveBeenCalledTimes(1);
340
+ return [4 /*yield*/, getPointsFromReference(servicesPath, defaultMetadata, entities)];
341
+ case 2:
342
+ points = _a.sent();
343
+ expect(points[0].id).toBe('entities/111');
344
+ expect(points[0].entity).toEqual(entities[0]);
345
+ expect(points[0].label).toBe('label');
346
+ expect(points[0].point).toEqual({ lat: 321, lng: 123 });
347
+ expect(decodeAddress).toHaveBeenCalledTimes(1);
339
348
  return [2 /*return*/];
340
349
  }
341
350
  });
@@ -477,7 +486,7 @@ describe('from reference strategy test', function () {
477
486
  switch (_a.label) {
478
487
  case 0:
479
488
  metadata = assocPath(['entityTypes', 0, 'attributes', 0, 'attributes', 0, 'masking'], { regex: '***' }, defaultMetadata);
480
- return [4 /*yield*/, getPointsFromReference(servicesPath, metadata, defaultEntities)];
489
+ return [4 /*yield*/, getPointsFromReference(servicesPath, metadata, defaultEntities.map(function (entity) { return (__assign(__assign({}, entity), { label: '***' })); }))];
481
490
  case 1:
482
491
  points = _a.sent();
483
492
  expect(points).toEqual([]);
package/package.json CHANGED
@@ -1,14 +1,15 @@
1
1
  {
2
2
  "name": "@reltio/components",
3
- "version": "1.4.2006",
3
+ "version": "1.4.2008",
4
4
  "license": "SEE LICENSE IN LICENSE FILE",
5
5
  "main": "./cjs/index.js",
6
6
  "module": "./index.js",
7
7
  "dependencies": {
8
8
  "@fluentui/react-context-selector": "^9.1.26",
9
- "@react-google-maps/api": "2.7.0",
9
+ "@googlemaps/markerclusterer": "^2.5.3",
10
10
  "@react-sigma/core": "3.4.0",
11
11
  "@reltio/mdm-sdk": "^1.4.1893",
12
+ "@vis.gl/react-google-maps": "^1.3.0",
12
13
  "d3-cloud": "^1.2.5",
13
14
  "d3-geo": "^2.0.1",
14
15
  "d3-hierarchy": "^2.0.0",