@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.
- package/Drawer/Drawer.test.js +1 -0
- package/EditModeAttributesView/IntegrationEditModeAttributesView.test.js +1 -2
- package/HierarchyNodeTitle/useEntityDetails.test.js +3 -2
- package/LineChart/LineChart.test.js +1 -0
- package/MapChart/components/Legend/styles.d.ts +1 -1
- package/ProfileResizablePanes/styles.d.ts +1 -1
- package/ReactSortableTree/ReactSortableTree.test.js +3 -1
- package/ReltioMap/ReltioMap.d.ts +15 -11
- package/ReltioMap/ReltioMap.js +49 -39
- package/ReltioMap/ReltioMap.spec.js +232 -116
- package/ReltioMap/components/ClusteredMarkers/ClusteredMarkers.d.ts +11 -0
- package/ReltioMap/components/ClusteredMarkers/ClusteredMarkers.js +58 -0
- package/ReltioMap/components/ClusteredMarkers/CustomClusterRenderer.d.ts +8 -0
- package/ReltioMap/components/ClusteredMarkers/CustomClusterRenderer.js +18 -0
- package/ReltioMap/components/ClusteredMarkers/index.d.ts +1 -0
- package/ReltioMap/components/ClusteredMarkers/index.js +1 -0
- package/ReltioMap/components/DrawingManager/DrawingManager.d.ts +2 -0
- package/ReltioMap/components/DrawingManager/DrawingManager.js +5 -0
- package/ReltioMap/components/DrawingManager/index.d.ts +1 -0
- package/ReltioMap/components/DrawingManager/index.js +1 -0
- package/ReltioMap/components/DrawingManager/useDrawingManager.d.ts +7 -0
- package/ReltioMap/components/DrawingManager/useDrawingManager.js +36 -0
- package/ReltioMap/components/EntityMarker/EntityMarker.d.ts +8 -7
- package/ReltioMap/components/EntityMarker/EntityMarker.js +23 -23
- package/ReltioMap/components/EntityMarker/EntityMarker.spec.js +151 -66
- package/ReltioMap/components/Polygon/Polygon.d.ts +7 -0
- package/ReltioMap/components/Polygon/Polygon.js +8 -0
- package/ReltioMap/components/Polygon/index.d.ts +1 -0
- package/ReltioMap/components/Polygon/index.js +1 -0
- package/ReltioMap/components/Polygon/usePolygon.d.ts +10 -0
- package/ReltioMap/components/Polygon/usePolygon.js +35 -0
- package/ReltioMap/components/TopCenterMapControls/TopCenterMapControls.d.ts +2 -1
- package/ReltioMap/components/TopCenterMapControls/TopCenterMapControls.js +6 -5
- package/ReltioMap/components/TopRightMapControls/TopRightMapControls.d.ts +2 -1
- package/ReltioMap/components/TopRightMapControls/TopRightMapControls.js +3 -2
- package/ReltioMap/components/TopRightMapControls/styles.js +1 -1
- package/ReltioMap/helpers.d.ts +3 -2
- package/ReltioMap/types.d.ts +6 -3
- package/cjs/Drawer/Drawer.test.js +1 -0
- package/cjs/EditModeAttributesView/IntegrationEditModeAttributesView.test.js +1 -2
- package/cjs/HierarchyNodeTitle/useEntityDetails.test.js +3 -2
- package/cjs/LineChart/LineChart.test.js +1 -0
- package/cjs/MapChart/components/Legend/styles.d.ts +1 -1
- package/cjs/ProfileResizablePanes/styles.d.ts +1 -1
- package/cjs/ReactSortableTree/ReactSortableTree.test.js +3 -1
- package/cjs/ReltioMap/ReltioMap.d.ts +15 -11
- package/cjs/ReltioMap/ReltioMap.js +48 -38
- package/cjs/ReltioMap/ReltioMap.spec.js +230 -114
- package/cjs/ReltioMap/components/ClusteredMarkers/ClusteredMarkers.d.ts +11 -0
- package/cjs/ReltioMap/components/ClusteredMarkers/ClusteredMarkers.js +84 -0
- package/cjs/ReltioMap/components/ClusteredMarkers/CustomClusterRenderer.d.ts +8 -0
- package/cjs/ReltioMap/components/ClusteredMarkers/CustomClusterRenderer.js +21 -0
- package/cjs/ReltioMap/components/ClusteredMarkers/index.d.ts +1 -0
- package/cjs/ReltioMap/components/ClusteredMarkers/index.js +5 -0
- package/cjs/ReltioMap/components/DrawingManager/DrawingManager.d.ts +2 -0
- package/cjs/ReltioMap/components/DrawingManager/DrawingManager.js +9 -0
- package/cjs/ReltioMap/components/DrawingManager/index.d.ts +1 -0
- package/cjs/ReltioMap/components/DrawingManager/index.js +5 -0
- package/cjs/ReltioMap/components/DrawingManager/useDrawingManager.d.ts +7 -0
- package/cjs/ReltioMap/components/DrawingManager/useDrawingManager.js +40 -0
- package/cjs/ReltioMap/components/EntityMarker/EntityMarker.d.ts +8 -7
- package/cjs/ReltioMap/components/EntityMarker/EntityMarker.js +22 -22
- package/cjs/ReltioMap/components/EntityMarker/EntityMarker.spec.js +151 -66
- package/cjs/ReltioMap/components/Polygon/Polygon.d.ts +7 -0
- package/cjs/ReltioMap/components/Polygon/Polygon.js +11 -0
- package/cjs/ReltioMap/components/Polygon/index.d.ts +1 -0
- package/cjs/ReltioMap/components/Polygon/index.js +5 -0
- package/cjs/ReltioMap/components/Polygon/usePolygon.d.ts +10 -0
- package/cjs/ReltioMap/components/Polygon/usePolygon.js +39 -0
- package/cjs/ReltioMap/components/TopCenterMapControls/TopCenterMapControls.d.ts +2 -1
- package/cjs/ReltioMap/components/TopCenterMapControls/TopCenterMapControls.js +6 -5
- package/cjs/ReltioMap/components/TopRightMapControls/TopRightMapControls.d.ts +2 -1
- package/cjs/ReltioMap/components/TopRightMapControls/TopRightMapControls.js +3 -2
- package/cjs/ReltioMap/components/TopRightMapControls/styles.js +1 -1
- package/cjs/ReltioMap/helpers.d.ts +3 -2
- package/cjs/ReltioMap/types.d.ts +6 -3
- package/cjs/features/graph/DataModelGraph/hooks/useFakeCenterNode.test.js +1 -0
- package/cjs/hooks/useMarkers/referenceHelpers.js +25 -2
- package/cjs/hooks/useMarkers/referenceHelpers.test.js +10 -1
- package/features/graph/DataModelGraph/hooks/useFakeCenterNode.test.js +1 -0
- package/hooks/useMarkers/referenceHelpers.js +25 -2
- package/hooks/useMarkers/referenceHelpers.test.js +10 -1
- 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*/, (
|
|
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 (
|
|
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([]);
|
|
@@ -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*/,
|
|
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
|
|
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.
|
|
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
|
-
"@
|
|
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",
|