@flowmap.gl/data 8.0.0-alpha.16 → 8.0.0-alpha.17

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 (53) hide show
  1. package/{dist-es5 → dist}/FlowmapAggregateAccessors.d.ts +0 -0
  2. package/{dist-es5 → dist}/FlowmapAggregateAccessors.d.ts.map +0 -0
  3. package/dist/FlowmapAggregateAccessors.js +46 -0
  4. package/{dist-es5 → dist}/FlowmapSelectors.d.ts +0 -0
  5. package/{dist-es5 → dist}/FlowmapSelectors.d.ts.map +0 -0
  6. package/dist/FlowmapSelectors.js +887 -0
  7. package/{dist-es5 → dist}/FlowmapState.d.ts +0 -0
  8. package/{dist-es5 → dist}/FlowmapState.d.ts.map +0 -0
  9. package/{dist-es5 → dist}/FlowmapState.js +1 -2
  10. package/{dist-es5 → dist}/cluster/ClusterIndex.d.ts +0 -0
  11. package/{dist-es5 → dist}/cluster/ClusterIndex.d.ts.map +0 -0
  12. package/dist/cluster/ClusterIndex.js +178 -0
  13. package/{dist-es5 → dist}/cluster/cluster.d.ts +0 -0
  14. package/{dist-es5 → dist}/cluster/cluster.d.ts.map +0 -0
  15. package/dist/cluster/cluster.js +211 -0
  16. package/{dist-es5 → dist}/colors.d.ts +0 -0
  17. package/{dist-es5 → dist}/colors.d.ts.map +0 -0
  18. package/dist/colors.js +476 -0
  19. package/{dist-es5 → dist}/getViewStateForLocations.d.ts +0 -0
  20. package/{dist-es5 → dist}/getViewStateForLocations.d.ts.map +0 -0
  21. package/dist/getViewStateForLocations.js +44 -0
  22. package/{dist-es5 → dist}/index.d.ts +0 -0
  23. package/{dist-es5 → dist}/index.d.ts.map +0 -0
  24. package/dist/index.js +10 -0
  25. package/{dist-es5 → dist}/provider/FlowmapDataProvider.d.ts +0 -0
  26. package/{dist-es5 → dist}/provider/FlowmapDataProvider.d.ts.map +0 -0
  27. package/dist/provider/FlowmapDataProvider.js +17 -0
  28. package/{dist-es5 → dist}/provider/LocalFlowmapDataProvider.d.ts +0 -0
  29. package/{dist-es5 → dist}/provider/LocalFlowmapDataProvider.d.ts.map +0 -0
  30. package/dist/provider/LocalFlowmapDataProvider.js +99 -0
  31. package/{dist-es5 → dist}/time.d.ts +0 -0
  32. package/{dist-es5 → dist}/time.d.ts.map +0 -0
  33. package/dist/time.js +126 -0
  34. package/{dist-es5 → dist}/types.d.ts +0 -0
  35. package/{dist-es5 → dist}/types.d.ts.map +0 -0
  36. package/dist/types.js +23 -0
  37. package/{dist-es5 → dist}/util.d.ts +0 -0
  38. package/{dist-es5 → dist}/util.d.ts.map +0 -0
  39. package/dist/util.js +11 -0
  40. package/package.json +5 -7
  41. package/dist-es5/FlowmapAggregateAccessors.js +0 -57
  42. package/dist-es5/FlowmapSelectors.js +0 -1587
  43. package/dist-es5/cluster/ClusterIndex.js +0 -297
  44. package/dist-es5/cluster/cluster.js +0 -278
  45. package/dist-es5/colors.js +0 -510
  46. package/dist-es5/getViewStateForLocations.js +0 -97
  47. package/dist-es5/index.js +0 -28
  48. package/dist-es5/provider/FlowmapDataProvider.js +0 -22
  49. package/dist-es5/provider/LocalFlowmapDataProvider.js +0 -155
  50. package/dist-es5/time.js +0 -168
  51. package/dist-es5/types.js +0 -29
  52. package/dist-es5/util.js +0 -14
  53. package/tsconfig.es5.json +0 -11
@@ -0,0 +1,17 @@
1
+ export function isFlowmapData(data) {
2
+ return (data && data.locations && data.flows
3
+ // TODO: test that they are iterable
4
+ // Array.isArray(data.locations) &&
5
+ // Array.isArray(data.flows)
6
+ );
7
+ }
8
+ export function isFlowmapDataProvider(dataProvider) {
9
+ return (dataProvider &&
10
+ typeof dataProvider.setFlowmapState === 'function' &&
11
+ typeof dataProvider.getViewportForLocations === 'function' &&
12
+ typeof dataProvider.getFlowByIndex === 'function' &&
13
+ typeof dataProvider.getLocationById === 'function' &&
14
+ typeof dataProvider.getLocationByIndex === 'function' &&
15
+ typeof dataProvider.getLayersData === 'function');
16
+ }
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmxvd21hcERhdGFQcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm92aWRlci9GbG93bWFwRGF0YVByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXdDQSxNQUFNLFVBQVUsYUFBYSxDQUMzQixJQUF5QjtJQUV6QixPQUFPLENBQ0wsSUFBSSxJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLEtBQUs7SUFDcEMsb0NBQW9DO0lBQ3BDLG1DQUFtQztJQUNuQyw0QkFBNEI7S0FDN0IsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUscUJBQXFCLENBQ25DLFlBQWlDO0lBRWpDLE9BQU8sQ0FDTCxZQUFZO1FBQ1osT0FBTyxZQUFZLENBQUMsZUFBZSxLQUFLLFVBQVU7UUFDbEQsT0FBTyxZQUFZLENBQUMsdUJBQXVCLEtBQUssVUFBVTtRQUMxRCxPQUFPLFlBQVksQ0FBQyxjQUFjLEtBQUssVUFBVTtRQUNqRCxPQUFPLFlBQVksQ0FBQyxlQUFlLEtBQUssVUFBVTtRQUNsRCxPQUFPLFlBQVksQ0FBQyxrQkFBa0IsS0FBSyxVQUFVO1FBQ3JELE9BQU8sWUFBWSxDQUFDLGFBQWEsS0FBSyxVQUFVLENBQ2pELENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBZ2dyZWdhdGVGbG93LCBDbHVzdGVyLCBMb2NhdGlvbkFjY2Vzc29ycywgTG9jYXRpb25Ub3RhbHN9IGZyb20gJy4uJztcbmltcG9ydCB7Rmxvd21hcFN0YXRlfSBmcm9tICcuLi9GbG93bWFwU3RhdGUnO1xuaW1wb3J0IHtcbiAgQ2x1c3Rlck5vZGUsXG4gIEZsb3dtYXBEYXRhLFxuICBGbG93bWFwRGF0YUFjY2Vzc29ycyxcbiAgTGF5ZXJzRGF0YSxcbiAgVmlld3BvcnRQcm9wcyxcbn0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgZGVmYXVsdCBpbnRlcmZhY2UgRmxvd21hcERhdGFQcm92aWRlcjxMLCBGPiB7XG4gIHNldEFjY2Vzc29ycyhhY2Nlc3NvcnM6IEZsb3dtYXBEYXRhQWNjZXNzb3JzPEwsIEY+KTogdm9pZDtcblxuICBzZXRGbG93bWFwU3RhdGUoZmxvd21hcFN0YXRlOiBGbG93bWFwU3RhdGUpOiBQcm9taXNlPHZvaWQ+O1xuXG4gIC8vIGNsZWFyRGF0YSgpOiB2b2lkO1xuXG4gIGdldFZpZXdwb3J0Rm9yTG9jYXRpb25zKFxuICAgIGRpbXM6IFtudW1iZXIsIG51bWJlcl0sXG4gICk6IFByb21pc2U8Vmlld3BvcnRQcm9wcyB8IHVuZGVmaW5lZD47XG5cbiAgLy8gZ2V0Rmxvd1RvdGFscygpOiBQcm9taXNlPEZsb3dUb3RhbHM+O1xuXG4gIGdldEZsb3dCeUluZGV4KGluZGV4OiBudW1iZXIpOiBQcm9taXNlPEYgfCBBZ2dyZWdhdGVGbG93IHwgdW5kZWZpbmVkPjtcblxuICBnZXRMb2NhdGlvbkJ5SWQoaWQ6IHN0cmluZyk6IFByb21pc2U8TCB8IENsdXN0ZXIgfCB1bmRlZmluZWQ+O1xuXG4gIGdldExvY2F0aW9uQnlJbmRleChpZHg6IG51bWJlcik6IFByb21pc2U8TCB8IENsdXN0ZXJOb2RlIHwgdW5kZWZpbmVkPjtcblxuICBnZXRUb3RhbHNGb3JMb2NhdGlvbihpZDogc3RyaW5nKTogUHJvbWlzZTxMb2NhdGlvblRvdGFscyB8IHVuZGVmaW5lZD47XG5cbiAgLy8gZ2V0TG9jYXRpb25zSW5CYm94KFxuICAvLyAgIGJib3g6IFtudW1iZXIsIG51bWJlciwgbnVtYmVyLCBudW1iZXJdLFxuICAvLyApOiBQcm9taXNlPEFycmF5PEZsb3dMb2NhdGlvbiB8IENsdXN0ZXJOb2RlPiB8IHVuZGVmaW5lZD47XG5cbiAgLy8gZ2V0TG9jYXRpb25zRm9yU2VhcmNoQm94KCk6IFByb21pc2U8KEZsb3dMb2NhdGlvbiB8IENsdXN0ZXJOb2RlKVtdIHwgdW5kZWZpbmVkPjtcblxuICBnZXRMYXllcnNEYXRhKCk6IFByb21pc2U8TGF5ZXJzRGF0YSB8IHVuZGVmaW5lZD47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0Zsb3dtYXBEYXRhPEwsIEY+KFxuICBkYXRhOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuKTogZGF0YSBpcyBGbG93bWFwRGF0YTxMLCBGPiB7XG4gIHJldHVybiAoXG4gICAgZGF0YSAmJiBkYXRhLmxvY2F0aW9ucyAmJiBkYXRhLmZsb3dzXG4gICAgLy8gVE9ETzogdGVzdCB0aGF0IHRoZXkgYXJlIGl0ZXJhYmxlXG4gICAgLy8gQXJyYXkuaXNBcnJheShkYXRhLmxvY2F0aW9ucykgJiZcbiAgICAvLyBBcnJheS5pc0FycmF5KGRhdGEuZmxvd3MpXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0Zsb3dtYXBEYXRhUHJvdmlkZXI8TCwgRj4oXG4gIGRhdGFQcm92aWRlcjogUmVjb3JkPHN0cmluZywgYW55Pixcbik6IGRhdGFQcm92aWRlciBpcyBGbG93bWFwRGF0YVByb3ZpZGVyPEwsIEY+IHtcbiAgcmV0dXJuIChcbiAgICBkYXRhUHJvdmlkZXIgJiZcbiAgICB0eXBlb2YgZGF0YVByb3ZpZGVyLnNldEZsb3dtYXBTdGF0ZSA9PT0gJ2Z1bmN0aW9uJyAmJlxuICAgIHR5cGVvZiBkYXRhUHJvdmlkZXIuZ2V0Vmlld3BvcnRGb3JMb2NhdGlvbnMgPT09ICdmdW5jdGlvbicgJiZcbiAgICB0eXBlb2YgZGF0YVByb3ZpZGVyLmdldEZsb3dCeUluZGV4ID09PSAnZnVuY3Rpb24nICYmXG4gICAgdHlwZW9mIGRhdGFQcm92aWRlci5nZXRMb2NhdGlvbkJ5SWQgPT09ICdmdW5jdGlvbicgJiZcbiAgICB0eXBlb2YgZGF0YVByb3ZpZGVyLmdldExvY2F0aW9uQnlJbmRleCA9PT0gJ2Z1bmN0aW9uJyAmJlxuICAgIHR5cGVvZiBkYXRhUHJvdmlkZXIuZ2V0TGF5ZXJzRGF0YSA9PT0gJ2Z1bmN0aW9uJ1xuICApO1xufVxuIl19
@@ -0,0 +1,99 @@
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
+ import FlowmapSelectors from '../FlowmapSelectors';
11
+ import { getViewStateForLocations, } from '../getViewStateForLocations';
12
+ export default class LocalFlowmapDataProvider {
13
+ constructor(accessors) {
14
+ // scope selectors to the concrete instance of FlowmapDataProvider
15
+ this.selectors = new FlowmapSelectors(accessors);
16
+ this.flowmapData = undefined;
17
+ this.flowmapState = undefined;
18
+ }
19
+ setAccessors(accessors) {
20
+ this.selectors.setAccessors(accessors);
21
+ }
22
+ setFlowmapData(flowmapData) {
23
+ return __awaiter(this, void 0, void 0, function* () {
24
+ this.flowmapData = flowmapData;
25
+ });
26
+ }
27
+ setFlowmapState(flowmapState) {
28
+ return __awaiter(this, void 0, void 0, function* () {
29
+ this.flowmapState = flowmapState;
30
+ });
31
+ }
32
+ getFlowByIndex(idx) {
33
+ return __awaiter(this, void 0, void 0, function* () {
34
+ if (!this.flowmapState || !this.flowmapData) {
35
+ return undefined;
36
+ }
37
+ const flows = this.selectors.getFlowsForFlowmapLayer(this.flowmapState, this.flowmapData);
38
+ return flows === null || flows === void 0 ? void 0 : flows[idx];
39
+ });
40
+ }
41
+ // TODO: this is unreliable, should replace by unqiue ID
42
+ getLocationByIndex(idx) {
43
+ return __awaiter(this, void 0, void 0, function* () {
44
+ if (!this.flowmapState || !this.flowmapData) {
45
+ return undefined;
46
+ }
47
+ const locations = this.selectors.getLocationsForFlowmapLayer(this.flowmapState, this.flowmapData);
48
+ return locations === null || locations === void 0 ? void 0 : locations[idx];
49
+ });
50
+ }
51
+ getLayersData() {
52
+ return __awaiter(this, void 0, void 0, function* () {
53
+ if (!this.flowmapState || !this.flowmapData) {
54
+ return undefined;
55
+ }
56
+ return this.selectors.getLayersData(this.flowmapState, this.flowmapData);
57
+ });
58
+ }
59
+ getLocationById(id) {
60
+ return __awaiter(this, void 0, void 0, function* () {
61
+ if (!this.flowmapState || !this.flowmapData) {
62
+ return undefined;
63
+ }
64
+ const clusterIndex = this.selectors.getClusterIndex(this.flowmapState, this.flowmapData);
65
+ if (clusterIndex) {
66
+ const cluster = clusterIndex.getClusterById(id);
67
+ if (cluster) {
68
+ return cluster;
69
+ }
70
+ }
71
+ const locationsById = this.selectors.getLocationsById(this.flowmapState, this.flowmapData);
72
+ return locationsById === null || locationsById === void 0 ? void 0 : locationsById.get(id);
73
+ });
74
+ }
75
+ getTotalsForLocation(id) {
76
+ var _a;
77
+ return __awaiter(this, void 0, void 0, function* () {
78
+ if (!this.flowmapState || !this.flowmapData) {
79
+ return undefined;
80
+ }
81
+ return (_a = this.selectors
82
+ .getLocationTotals(this.flowmapState, this.flowmapData)) === null || _a === void 0 ? void 0 : _a.get(id);
83
+ });
84
+ }
85
+ getViewportForLocations(dims, opts) {
86
+ var _a;
87
+ return __awaiter(this, void 0, void 0, function* () {
88
+ if (!((_a = this.flowmapData) === null || _a === void 0 ? void 0 : _a.locations)) {
89
+ return undefined;
90
+ }
91
+ // @ts-ignore
92
+ return getViewStateForLocations(this.flowmapData.locations, (loc) => [
93
+ this.selectors.accessors.getLocationLon(loc),
94
+ this.selectors.accessors.getLocationLat(loc),
95
+ ], dims, opts);
96
+ });
97
+ }
98
+ }
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTG9jYWxGbG93bWFwRGF0YVByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Byb3ZpZGVyL0xvY2FsRmxvd21hcERhdGFQcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFZQSxPQUFPLGdCQUFnQixNQUFNLHFCQUFxQixDQUFDO0FBQ25ELE9BQU8sRUFFTCx3QkFBd0IsR0FDekIsTUFBTSw2QkFBNkIsQ0FBQztBQUVyQyxNQUFNLENBQUMsT0FBTyxPQUFPLHdCQUF3QjtJQU8zQyxZQUFZLFNBQXFDO1FBQy9DLGtFQUFrRTtRQUNsRSxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksZ0JBQWdCLENBQU8sU0FBUyxDQUFDLENBQUM7UUFDdkQsSUFBSSxDQUFDLFdBQVcsR0FBRyxTQUFTLENBQUM7UUFDN0IsSUFBSSxDQUFDLFlBQVksR0FBRyxTQUFTLENBQUM7SUFDaEMsQ0FBQztJQUVELFlBQVksQ0FBQyxTQUFxQztRQUNoRCxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUssY0FBYyxDQUFDLFdBQThCOztZQUNqRCxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztRQUNqQyxDQUFDO0tBQUE7SUFFSyxlQUFlLENBQUMsWUFBMEI7O1lBQzlDLElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO1FBQ25DLENBQUM7S0FBQTtJQUVLLGNBQWMsQ0FBQyxHQUFXOztZQUM5QixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7Z0JBQzNDLE9BQU8sU0FBUyxDQUFDO2FBQ2xCO1lBQ0QsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyx1QkFBdUIsQ0FDbEQsSUFBSSxDQUFDLFlBQVksRUFDakIsSUFBSSxDQUFDLFdBQVcsQ0FDakIsQ0FBQztZQUNGLE9BQU8sS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFHLEdBQUcsQ0FBQyxDQUFDO1FBQ3RCLENBQUM7S0FBQTtJQUVELHdEQUF3RDtJQUNsRCxrQkFBa0IsQ0FBQyxHQUFXOztZQUNsQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7Z0JBQzNDLE9BQU8sU0FBUyxDQUFDO2FBQ2xCO1lBQ0QsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQywyQkFBMkIsQ0FDMUQsSUFBSSxDQUFDLFlBQVksRUFDakIsSUFBSSxDQUFDLFdBQVcsQ0FDakIsQ0FBQztZQUNGLE9BQU8sU0FBUyxhQUFULFNBQVMsdUJBQVQsU0FBUyxDQUFHLEdBQUcsQ0FBQyxDQUFDO1FBQzFCLENBQUM7S0FBQTtJQUVLLGFBQWE7O1lBQ2pCLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTtnQkFDM0MsT0FBTyxTQUFTLENBQUM7YUFDbEI7WUFDRCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzNFLENBQUM7S0FBQTtJQUVLLGVBQWUsQ0FBQyxFQUFVOztZQUM5QixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7Z0JBQzNDLE9BQU8sU0FBUyxDQUFDO2FBQ2xCO1lBQ0QsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQ2pELElBQUksQ0FBQyxZQUFZLEVBQ2pCLElBQUksQ0FBQyxXQUFXLENBQ2pCLENBQUM7WUFDRixJQUFJLFlBQVksRUFBRTtnQkFDaEIsTUFBTSxPQUFPLEdBQUcsWUFBWSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDaEQsSUFBSSxPQUFPLEVBQUU7b0JBQ1gsT0FBTyxPQUFPLENBQUM7aUJBQ2hCO2FBQ0Y7WUFDRCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGdCQUFnQixDQUNuRCxJQUFJLENBQUMsWUFBWSxFQUNqQixJQUFJLENBQUMsV0FBVyxDQUNqQixDQUFDO1lBQ0YsT0FBTyxhQUFhLGFBQWIsYUFBYSx1QkFBYixhQUFhLENBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2hDLENBQUM7S0FBQTtJQUVLLG9CQUFvQixDQUFDLEVBQVU7OztZQUNuQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7Z0JBQzNDLE9BQU8sU0FBUyxDQUFDO2FBQ2xCO1lBQ0QsT0FBTyxNQUFBLElBQUksQ0FBQyxTQUFTO2lCQUNsQixpQkFBaUIsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsMENBQ3JELEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQzs7S0FDYjtJQUVLLHVCQUF1QixDQUMzQixJQUFzQixFQUN0QixJQUEwQjs7O1lBRTFCLElBQUksQ0FBQyxDQUFBLE1BQUEsSUFBSSxDQUFDLFdBQVcsMENBQUUsU0FBUyxDQUFBLEVBQUU7Z0JBQ2hDLE9BQU8sU0FBUyxDQUFDO2FBQ2xCO1lBQ0QsYUFBYTtZQUNiLE9BQU8sd0JBQXdCLENBQzdCLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxFQUMxQixDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUM7Z0JBQ1AsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQztnQkFDNUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQzthQUM3QyxFQUNELElBQUksRUFDSixJQUFJLENBQ0wsQ0FBQzs7S0FDSDtDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgRmxvd21hcERhdGFQcm92aWRlciBmcm9tICcuL0Zsb3dtYXBEYXRhUHJvdmlkZXInO1xuaW1wb3J0IHR5cGUge1xuICBDbHVzdGVyLFxuICBDbHVzdGVyTm9kZSxcbiAgRmxvd21hcERhdGEsXG4gIEZsb3dtYXBEYXRhQWNjZXNzb3JzLFxuICBMYXllcnNEYXRhLFxuICBMb2NhdGlvblRvdGFscyxcbiAgVmlld3BvcnRQcm9wcyxcbiAgQWdncmVnYXRlRmxvdyxcbn0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHtGbG93bWFwU3RhdGV9IGZyb20gJy4uL0Zsb3dtYXBTdGF0ZSc7XG5pbXBvcnQgRmxvd21hcFNlbGVjdG9ycyBmcm9tICcuLi9GbG93bWFwU2VsZWN0b3JzJztcbmltcG9ydCB7XG4gIEdldFZpZXdTdGF0ZU9wdGlvbnMsXG4gIGdldFZpZXdTdGF0ZUZvckxvY2F0aW9ucyxcbn0gZnJvbSAnLi4vZ2V0Vmlld1N0YXRlRm9yTG9jYXRpb25zJztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTG9jYWxGbG93bWFwRGF0YVByb3ZpZGVyPEwsIEY+XG4gIGltcGxlbWVudHMgRmxvd21hcERhdGFQcm92aWRlcjxMLCBGPlxue1xuICBwcml2YXRlIHNlbGVjdG9yczogRmxvd21hcFNlbGVjdG9yczxMLCBGPjtcbiAgcHJpdmF0ZSBmbG93bWFwRGF0YTogRmxvd21hcERhdGE8TCwgRj4gfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgZmxvd21hcFN0YXRlOiBGbG93bWFwU3RhdGUgfCB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3IoYWNjZXNzb3JzOiBGbG93bWFwRGF0YUFjY2Vzc29yczxMLCBGPikge1xuICAgIC8vIHNjb3BlIHNlbGVjdG9ycyB0byB0aGUgY29uY3JldGUgaW5zdGFuY2Ugb2YgRmxvd21hcERhdGFQcm92aWRlclxuICAgIHRoaXMuc2VsZWN0b3JzID0gbmV3IEZsb3dtYXBTZWxlY3RvcnM8TCwgRj4oYWNjZXNzb3JzKTtcbiAgICB0aGlzLmZsb3dtYXBEYXRhID0gdW5kZWZpbmVkO1xuICAgIHRoaXMuZmxvd21hcFN0YXRlID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgc2V0QWNjZXNzb3JzKGFjY2Vzc29yczogRmxvd21hcERhdGFBY2Nlc3NvcnM8TCwgRj4pIHtcbiAgICB0aGlzLnNlbGVjdG9ycy5zZXRBY2Nlc3NvcnMoYWNjZXNzb3JzKTtcbiAgfVxuXG4gIGFzeW5jIHNldEZsb3dtYXBEYXRhKGZsb3dtYXBEYXRhOiBGbG93bWFwRGF0YTxMLCBGPik6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMuZmxvd21hcERhdGEgPSBmbG93bWFwRGF0YTtcbiAgfVxuXG4gIGFzeW5jIHNldEZsb3dtYXBTdGF0ZShmbG93bWFwU3RhdGU6IEZsb3dtYXBTdGF0ZSk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMuZmxvd21hcFN0YXRlID0gZmxvd21hcFN0YXRlO1xuICB9XG5cbiAgYXN5bmMgZ2V0Rmxvd0J5SW5kZXgoaWR4OiBudW1iZXIpOiBQcm9taXNlPEYgfCBBZ2dyZWdhdGVGbG93IHwgdW5kZWZpbmVkPiB7XG4gICAgaWYgKCF0aGlzLmZsb3dtYXBTdGF0ZSB8fCAhdGhpcy5mbG93bWFwRGF0YSkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgY29uc3QgZmxvd3MgPSB0aGlzLnNlbGVjdG9ycy5nZXRGbG93c0ZvckZsb3dtYXBMYXllcihcbiAgICAgIHRoaXMuZmxvd21hcFN0YXRlLFxuICAgICAgdGhpcy5mbG93bWFwRGF0YSxcbiAgICApO1xuICAgIHJldHVybiBmbG93cz8uW2lkeF07XG4gIH1cblxuICAvLyBUT0RPOiB0aGlzIGlzIHVucmVsaWFibGUsIHNob3VsZCByZXBsYWNlIGJ5IHVucWl1ZSBJRFxuICBhc3luYyBnZXRMb2NhdGlvbkJ5SW5kZXgoaWR4OiBudW1iZXIpOiBQcm9taXNlPEwgfCBDbHVzdGVyTm9kZSB8IHVuZGVmaW5lZD4ge1xuICAgIGlmICghdGhpcy5mbG93bWFwU3RhdGUgfHwgIXRoaXMuZmxvd21hcERhdGEpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGNvbnN0IGxvY2F0aW9ucyA9IHRoaXMuc2VsZWN0b3JzLmdldExvY2F0aW9uc0ZvckZsb3dtYXBMYXllcihcbiAgICAgIHRoaXMuZmxvd21hcFN0YXRlLFxuICAgICAgdGhpcy5mbG93bWFwRGF0YSxcbiAgICApO1xuICAgIHJldHVybiBsb2NhdGlvbnM/LltpZHhdO1xuICB9XG5cbiAgYXN5bmMgZ2V0TGF5ZXJzRGF0YSgpOiBQcm9taXNlPExheWVyc0RhdGEgfCB1bmRlZmluZWQ+IHtcbiAgICBpZiAoIXRoaXMuZmxvd21hcFN0YXRlIHx8ICF0aGlzLmZsb3dtYXBEYXRhKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5zZWxlY3RvcnMuZ2V0TGF5ZXJzRGF0YSh0aGlzLmZsb3dtYXBTdGF0ZSwgdGhpcy5mbG93bWFwRGF0YSk7XG4gIH1cblxuICBhc3luYyBnZXRMb2NhdGlvbkJ5SWQoaWQ6IHN0cmluZyk6IFByb21pc2U8TCB8IENsdXN0ZXIgfCB1bmRlZmluZWQ+IHtcbiAgICBpZiAoIXRoaXMuZmxvd21hcFN0YXRlIHx8ICF0aGlzLmZsb3dtYXBEYXRhKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBjb25zdCBjbHVzdGVySW5kZXggPSB0aGlzLnNlbGVjdG9ycy5nZXRDbHVzdGVySW5kZXgoXG4gICAgICB0aGlzLmZsb3dtYXBTdGF0ZSxcbiAgICAgIHRoaXMuZmxvd21hcERhdGEsXG4gICAgKTtcbiAgICBpZiAoY2x1c3RlckluZGV4KSB7XG4gICAgICBjb25zdCBjbHVzdGVyID0gY2x1c3RlckluZGV4LmdldENsdXN0ZXJCeUlkKGlkKTtcbiAgICAgIGlmIChjbHVzdGVyKSB7XG4gICAgICAgIHJldHVybiBjbHVzdGVyO1xuICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBsb2NhdGlvbnNCeUlkID0gdGhpcy5zZWxlY3RvcnMuZ2V0TG9jYXRpb25zQnlJZChcbiAgICAgIHRoaXMuZmxvd21hcFN0YXRlLFxuICAgICAgdGhpcy5mbG93bWFwRGF0YSxcbiAgICApO1xuICAgIHJldHVybiBsb2NhdGlvbnNCeUlkPy5nZXQoaWQpO1xuICB9XG5cbiAgYXN5bmMgZ2V0VG90YWxzRm9yTG9jYXRpb24oaWQ6IHN0cmluZyk6IFByb21pc2U8TG9jYXRpb25Ub3RhbHMgfCB1bmRlZmluZWQ+IHtcbiAgICBpZiAoIXRoaXMuZmxvd21hcFN0YXRlIHx8ICF0aGlzLmZsb3dtYXBEYXRhKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5zZWxlY3RvcnNcbiAgICAgIC5nZXRMb2NhdGlvblRvdGFscyh0aGlzLmZsb3dtYXBTdGF0ZSwgdGhpcy5mbG93bWFwRGF0YSlcbiAgICAgID8uZ2V0KGlkKTtcbiAgfVxuXG4gIGFzeW5jIGdldFZpZXdwb3J0Rm9yTG9jYXRpb25zKFxuICAgIGRpbXM6IFtudW1iZXIsIG51bWJlcl0sXG4gICAgb3B0cz86IEdldFZpZXdTdGF0ZU9wdGlvbnMsXG4gICk6IFByb21pc2U8Vmlld3BvcnRQcm9wcyB8IHVuZGVmaW5lZD4ge1xuICAgIGlmICghdGhpcy5mbG93bWFwRGF0YT8ubG9jYXRpb25zKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICAvLyBAdHMtaWdub3JlXG4gICAgcmV0dXJuIGdldFZpZXdTdGF0ZUZvckxvY2F0aW9ucyhcbiAgICAgIHRoaXMuZmxvd21hcERhdGEubG9jYXRpb25zLFxuICAgICAgKGxvYykgPT4gW1xuICAgICAgICB0aGlzLnNlbGVjdG9ycy5hY2Nlc3NvcnMuZ2V0TG9jYXRpb25Mb24obG9jKSxcbiAgICAgICAgdGhpcy5zZWxlY3RvcnMuYWNjZXNzb3JzLmdldExvY2F0aW9uTGF0KGxvYyksXG4gICAgICBdLFxuICAgICAgZGltcyxcbiAgICAgIG9wdHMsXG4gICAgKTtcbiAgfVxufVxuIl19
File without changes
File without changes
package/dist/time.js ADDED
@@ -0,0 +1,126 @@
1
+ import { timeFormat, timeParse } from 'd3-time-format';
2
+ import { timeDay, timeHour, timeMinute, timeMonth, timeSecond, timeWeek, timeYear, } from 'd3-time';
3
+ const dateParsers = [
4
+ timeParse('%Y-%m-%d'),
5
+ timeParse('%Y-%m-%d %H:%M'),
6
+ timeParse('%Y-%m-%d %H:%M:%S'),
7
+ timeParse('%Y'),
8
+ timeParse('%Y-%m'),
9
+ ];
10
+ export function parseTime(input) {
11
+ if (input != null) {
12
+ if (input instanceof Date) {
13
+ return input;
14
+ }
15
+ for (const parse of dateParsers) {
16
+ const date = parse(input);
17
+ if (date) {
18
+ return date;
19
+ }
20
+ }
21
+ }
22
+ return undefined;
23
+ }
24
+ export var TimeGranularityKey;
25
+ (function (TimeGranularityKey) {
26
+ TimeGranularityKey["SECOND"] = "SECOND";
27
+ TimeGranularityKey["MINUTE"] = "MINUTE";
28
+ TimeGranularityKey["HOUR"] = "HOUR";
29
+ TimeGranularityKey["DAY"] = "DAY";
30
+ TimeGranularityKey["MONTH"] = "MONTH";
31
+ TimeGranularityKey["YEAR"] = "YEAR";
32
+ })(TimeGranularityKey || (TimeGranularityKey = {}));
33
+ // const preferredLocale = navigator.languages ? navigator.languages[0] : 'en';
34
+ const formatMillisecond = timeFormat('.%L'), formatSecond = timeFormat(':%S'), formatMinute = timeFormat('%I:%M'),
35
+ // formatHour = (d: Date) => d.toLocaleString(preferredLocale, { hour: 'numeric' }),
36
+ formatHour = timeFormat('%I %p'), formatDay = timeFormat('%a %d'), formatWeek = timeFormat('%b %d'), formatMonth = timeFormat('%b'), formatYear = timeFormat('%Y');
37
+ export function tickMultiFormat(date) {
38
+ return (timeSecond(date) < date
39
+ ? formatMillisecond
40
+ : timeMinute(date) < date
41
+ ? formatSecond
42
+ : timeHour(date) < date
43
+ ? formatMinute
44
+ : timeDay(date) < date
45
+ ? formatHour
46
+ : timeMonth(date) < date
47
+ ? timeWeek(date) < date
48
+ ? formatDay
49
+ : formatWeek
50
+ : timeYear(date) < date
51
+ ? formatMonth
52
+ : formatYear)(date);
53
+ }
54
+ export const TIME_GRANULARITIES = [
55
+ {
56
+ order: 0,
57
+ key: TimeGranularityKey.SECOND,
58
+ interval: timeSecond,
59
+ format: formatSecond,
60
+ formatFull: timeFormat('%Y-%m-%d %H:%M:%S'),
61
+ },
62
+ {
63
+ order: 1,
64
+ key: TimeGranularityKey.MINUTE,
65
+ interval: timeMinute,
66
+ format: formatMinute,
67
+ formatFull: timeFormat('%Y-%m-%d %H:%M'),
68
+ },
69
+ {
70
+ order: 2,
71
+ key: TimeGranularityKey.HOUR,
72
+ interval: timeHour,
73
+ // format: (d: Date) => d.toLocaleString(preferredLocale, { hour: 'numeric', minute: '2-digit' }),
74
+ format: formatHour,
75
+ formatFull: timeFormat('%a %d %b %Y, %I %p'),
76
+ },
77
+ {
78
+ order: 3,
79
+ key: TimeGranularityKey.DAY,
80
+ interval: timeDay,
81
+ format: formatDay,
82
+ formatFull: timeFormat('%a %d %b %Y'),
83
+ },
84
+ {
85
+ order: 4,
86
+ key: TimeGranularityKey.MONTH,
87
+ interval: timeMonth,
88
+ format: formatMonth,
89
+ formatFull: timeFormat('%b %Y'),
90
+ },
91
+ {
92
+ order: 5,
93
+ key: TimeGranularityKey.YEAR,
94
+ interval: timeYear,
95
+ format: formatYear,
96
+ formatFull: timeFormat('%Y'),
97
+ },
98
+ ];
99
+ export function getTimeGranularityByKey(key) {
100
+ return TIME_GRANULARITIES.find((s) => s.key === key);
101
+ }
102
+ export function getTimeGranularityByOrder(order) {
103
+ return TIME_GRANULARITIES.find((s) => s.order === order);
104
+ }
105
+ export function getTimeGranularityForDate(date) {
106
+ let prev = undefined;
107
+ for (const current of TIME_GRANULARITIES) {
108
+ const { interval } = current;
109
+ const floored = interval(date);
110
+ if (floored < date) {
111
+ if (!prev)
112
+ return current;
113
+ return prev;
114
+ }
115
+ prev = current;
116
+ }
117
+ return TIME_GRANULARITIES[TIME_GRANULARITIES.length - 1];
118
+ }
119
+ export function areRangesEqual(a, b) {
120
+ if (!a && !b)
121
+ return true;
122
+ if (!a || !b)
123
+ return false;
124
+ return a[0] === b[0] && a[1] === b[1];
125
+ }
126
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy90aW1lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUNMLE9BQU8sRUFDUCxRQUFRLEVBRVIsVUFBVSxFQUNWLFNBQVMsRUFDVCxVQUFVLEVBQ1YsUUFBUSxFQUNSLFFBQVEsR0FDVCxNQUFNLFNBQVMsQ0FBQztBQUVqQixNQUFNLFdBQVcsR0FBRztJQUNsQixTQUFTLENBQUMsVUFBVSxDQUFDO0lBQ3JCLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQztJQUMzQixTQUFTLENBQUMsbUJBQW1CLENBQUM7SUFDOUIsU0FBUyxDQUFDLElBQUksQ0FBQztJQUNmLFNBQVMsQ0FBQyxPQUFPLENBQUM7Q0FDbkIsQ0FBQztBQUVGLE1BQU0sVUFBVSxTQUFTLENBQUMsS0FBZ0M7SUFDeEQsSUFBSSxLQUFLLElBQUksSUFBSSxFQUFFO1FBQ2pCLElBQUksS0FBSyxZQUFZLElBQUksRUFBRTtZQUN6QixPQUFPLEtBQUssQ0FBQztTQUNkO1FBQ0QsS0FBSyxNQUFNLEtBQUssSUFBSSxXQUFXLEVBQUU7WUFDL0IsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzFCLElBQUksSUFBSSxFQUFFO2dCQUNSLE9BQU8sSUFBSSxDQUFDO2FBQ2I7U0FDRjtLQUNGO0lBQ0QsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQztBQUVELE1BQU0sQ0FBTixJQUFZLGtCQU9YO0FBUEQsV0FBWSxrQkFBa0I7SUFDNUIsdUNBQWlCLENBQUE7SUFDakIsdUNBQWlCLENBQUE7SUFDakIsbUNBQWEsQ0FBQTtJQUNiLGlDQUFXLENBQUE7SUFDWCxxQ0FBZSxDQUFBO0lBQ2YsbUNBQWEsQ0FBQTtBQUNmLENBQUMsRUFQVyxrQkFBa0IsS0FBbEIsa0JBQWtCLFFBTzdCO0FBVUQsK0VBQStF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QUMsQ0FBQyxDQUFDO0FBQ3hDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge3RpbWVGb3JtYXQsIHRpbWVQYXJzZX0gZnJvbSAnZDMtdGltZS1mb3JtYXQnO1xuaW1wb3J0IHtcbiAgdGltZURheSxcbiAgdGltZUhvdXIsXG4gIFRpbWVJbnRlcnZhbCxcbiAgdGltZU1pbnV0ZSxcbiAgdGltZU1vbnRoLFxuICB0aW1lU2Vjb25kLFxuICB0aW1lV2VlayxcbiAgdGltZVllYXIsXG59IGZyb20gJ2QzLXRpbWUnO1xuXG5jb25zdCBkYXRlUGFyc2VycyA9IFtcbiAgdGltZVBhcnNlKCclWS0lbS0lZCcpLFxuICB0aW1lUGFyc2UoJyVZLSVtLSVkICVIOiVNJyksXG4gIHRpbWVQYXJzZSgnJVktJW0tJWQgJUg6JU06JVMnKSxcbiAgdGltZVBhcnNlKCclWScpLFxuICB0aW1lUGFyc2UoJyVZLSVtJyksXG5dO1xuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VUaW1lKGlucHV0OiBzdHJpbmcgfCBEYXRlIHwgdW5kZWZpbmVkKTogRGF0ZSB8IHVuZGVmaW5lZCB7XG4gIGlmIChpbnB1dCAhPSBudWxsKSB7XG4gICAgaWYgKGlucHV0IGluc3RhbmNlb2YgRGF0ZSkge1xuICAgICAgcmV0dXJuIGlucHV0O1xuICAgIH1cbiAgICBmb3IgKGNvbnN0IHBhcnNlIG9mIGRhdGVQYXJzZXJzKSB7XG4gICAgICBjb25zdCBkYXRlID0gcGFyc2UoaW5wdXQpO1xuICAgICAgaWYgKGRhdGUpIHtcbiAgICAgICAgcmV0dXJuIGRhdGU7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBlbnVtIFRpbWVHcmFudWxhcml0eUtleSB7XG4gIFNFQ09ORCA9ICdTRUNPTkQnLFxuICBNSU5VVEUgPSAnTUlOVVRFJyxcbiAgSE9VUiA9ICdIT1VSJyxcbiAgREFZID0gJ0RBWScsXG4gIE1PTlRIID0gJ01PTlRIJyxcbiAgWUVBUiA9ICdZRUFSJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUaW1lR3JhbnVsYXJpdHkge1xuICBrZXk6IFRpbWVHcmFudWxhcml0eUtleTtcbiAgb3JkZXI6IG51bWJlcjtcbiAgaW50ZXJ2YWw6IFRpbWVJbnRlcnZhbDtcbiAgZm9ybWF0OiAoZGF0ZTogRGF0ZSkgPT4gc3RyaW5nO1xuICBmb3JtYXRGdWxsOiAoZGF0ZTogRGF0ZSkgPT4gc3RyaW5nO1xufVxuXG4vLyBjb25zdCBwcmVmZXJyZWRMb2NhbGUgPSBuYXZpZ2F0b3IubGFuZ3VhZ2VzID8gbmF2aWdhdG9yLmxhbmd1YWdlc1swXSA6ICdlbic7XG5cbmNvbnN0IGZvcm1hdE1pbGxpc2Vjb25kID0gdGltZUZvcm1hdCgnLiVMJyksXG4gIGZvcm1hdFNlY29uZCA9IHRpbWVGb3JtYXQoJzolUycpLFxuICBmb3JtYXRNaW51dGUgPSB0aW1lRm9ybWF0KCclSTolTScpLFxuICAvLyBmb3JtYXRIb3VyID0gKGQ6IERhdGUpID0+IGQudG9Mb2NhbGVTdHJpbmcocHJlZmVycmVkTG9jYWxlLCB7IGhvdXI6ICdudW1lcmljJyB9KSxcbiAgZm9ybWF0SG91ciA9IHRpbWVGb3JtYXQoJyVJICVwJyksXG4gIGZvcm1hdERheSA9IHRpbWVGb3JtYXQoJyVhICVkJyksXG4gIGZvcm1hdFdlZWsgPSB0aW1lRm9ybWF0KCclYiAlZCcpLFxuICBmb3JtYXRNb250aCA9IHRpbWVGb3JtYXQoJyViJyksXG4gIGZvcm1hdFllYXIgPSB0aW1lRm9ybWF0KCclWScpO1xuXG5leHBvcnQgZnVuY3Rpb24gdGlja011bHRpRm9ybWF0KGRhdGU6IERhdGUpIHtcbiAgcmV0dXJuIChcbiAgICB0aW1lU2Vjb25kKGRhdGUpIDwgZGF0ZVxuICAgICAgPyBmb3JtYXRNaWxsaXNlY29uZFxuICAgICAgOiB0aW1lTWludXRlKGRhdGUpIDwgZGF0ZVxuICAgICAgPyBmb3JtYXRTZWNvbmRcbiAgICAgIDogdGltZUhvdXIoZGF0ZSkgPCBkYXRlXG4gICAgICA/IGZvcm1hdE1pbnV0ZVxuICAgICAgOiB0aW1lRGF5KGRhdGUpIDwgZGF0ZVxuICAgICAgPyBmb3JtYXRIb3VyXG4gICAgICA6IHRpbWVNb250aChkYXRlKSA8IGRhdGVcbiAgICAgID8gdGltZVdlZWsoZGF0ZSkgPCBkYXRlXG4gICAgICAgID8gZm9ybWF0RGF5XG4gICAgICAgIDogZm9ybWF0V2Vla1xuICAgICAgOiB0aW1lWWVhcihkYXRlKSA8IGRhdGVcbiAgICAgID8gZm9ybWF0TW9udGhcbiAgICAgIDogZm9ybWF0WWVhclxuICApKGRhdGUpO1xufVxuXG5leHBvcnQgY29uc3QgVElNRV9HUkFOVUxBUklUSUVTOiBUaW1lR3JhbnVsYXJpdHlbXSA9IFtcbiAge1xuICAgIG9yZGVyOiAwLFxuICAgIGtleTogVGltZUdyYW51bGFyaXR5S2V5LlNFQ09ORCxcbiAgICBpbnRlcnZhbDogdGltZVNlY29uZCxcbiAgICBmb3JtYXQ6IGZvcm1hdFNlY29uZCxcbiAgICBmb3JtYXRGdWxsOiB0aW1lRm9ybWF0KCclWS0lbS0lZCAlSDolTTolUycpLFxuICB9LFxuICB7XG4gICAgb3JkZXI6IDEsXG4gICAga2V5OiBUaW1lR3JhbnVsYXJpdHlLZXkuTUlOVVRFLFxuICAgIGludGVydmFsOiB0aW1lTWludXRlLFxuICAgIGZvcm1hdDogZm9ybWF0TWludXRlLFxuICAgIGZvcm1hdEZ1bGw6IHRpbWVGb3JtYXQoJyVZLSVtLSVkICVIOiVNJyksXG4gIH0sXG4gIHtcbiAgICBvcmRlcjogMixcbiAgICBrZXk6IFRpbWVHcmFudWxhcml0eUtleS5IT1VSLFxuICAgIGludGVydmFsOiB0aW1lSG91cixcbiAgICAvLyBmb3JtYXQ6IChkOiBEYXRlKSA9PiBkLnRvTG9jYWxlU3RyaW5nKHByZWZlcnJlZExvY2FsZSwgeyBob3VyOiAnbnVtZXJpYycsIG1pbnV0ZTogJzItZGlnaXQnIH0pLFxuICAgIGZvcm1hdDogZm9ybWF0SG91cixcbiAgICBmb3JtYXRGdWxsOiB0aW1lRm9ybWF0KCclYSAlZCAlYiAlWSwgJUkgJXAnKSxcbiAgfSxcbiAge1xuICAgIG9yZGVyOiAzLFxuICAgIGtleTogVGltZUdyYW51bGFyaXR5S2V5LkRBWSxcbiAgICBpbnRlcnZhbDogdGltZURheSxcbiAgICBmb3JtYXQ6IGZvcm1hdERheSxcbiAgICBmb3JtYXRGdWxsOiB0aW1lRm9ybWF0KCclYSAlZCAlYiAlWScpLFxuICB9LFxuICB7XG4gICAgb3JkZXI6IDQsXG4gICAga2V5OiBUaW1lR3JhbnVsYXJpdHlLZXkuTU9OVEgsXG4gICAgaW50ZXJ2YWw6IHRpbWVNb250aCxcbiAgICBmb3JtYXQ6IGZvcm1hdE1vbnRoLFxuICAgIGZvcm1hdEZ1bGw6IHRpbWVGb3JtYXQoJyViICVZJyksXG4gIH0sXG4gIHtcbiAgICBvcmRlcjogNSxcbiAgICBrZXk6IFRpbWVHcmFudWxhcml0eUtleS5ZRUFSLFxuICAgIGludGVydmFsOiB0aW1lWWVhcixcbiAgICBmb3JtYXQ6IGZvcm1hdFllYXIsXG4gICAgZm9ybWF0RnVsbDogdGltZUZvcm1hdCgnJVknKSxcbiAgfSxcbl07XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRUaW1lR3JhbnVsYXJpdHlCeUtleShrZXk6IFRpbWVHcmFudWxhcml0eUtleSkge1xuICByZXR1cm4gVElNRV9HUkFOVUxBUklUSUVTLmZpbmQoKHMpID0+IHMua2V5ID09PSBrZXkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VGltZUdyYW51bGFyaXR5QnlPcmRlcihvcmRlcjogbnVtYmVyKSB7XG4gIHJldHVybiBUSU1FX0dSQU5VTEFSSVRJRVMuZmluZCgocykgPT4gcy5vcmRlciA9PT0gb3JkZXIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VGltZUdyYW51bGFyaXR5Rm9yRGF0ZShkYXRlOiBEYXRlKTogVGltZUdyYW51bGFyaXR5IHtcbiAgbGV0IHByZXYgPSB1bmRlZmluZWQ7XG4gIGZvciAoY29uc3QgY3VycmVudCBvZiBUSU1FX0dSQU5VTEFSSVRJRVMpIHtcbiAgICBjb25zdCB7aW50ZXJ2YWx9ID0gY3VycmVudDtcbiAgICBjb25zdCBmbG9vcmVkID0gaW50ZXJ2YWwoZGF0ZSk7XG4gICAgaWYgKGZsb29yZWQgPCBkYXRlKSB7XG4gICAgICBpZiAoIXByZXYpIHJldHVybiBjdXJyZW50O1xuICAgICAgcmV0dXJuIHByZXY7XG4gICAgfVxuICAgIHByZXYgPSBjdXJyZW50O1xuICB9XG4gIHJldHVybiBUSU1FX0dSQU5VTEFSSVRJRVNbVElNRV9HUkFOVUxBUklUSUVTLmxlbmd0aCAtIDFdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYXJlUmFuZ2VzRXF1YWwoXG4gIGE6IFtEYXRlLCBEYXRlXSB8IHVuZGVmaW5lZCxcbiAgYjogW0RhdGUsIERhdGVdIHwgdW5kZWZpbmVkLFxuKTogYm9vbGVhbiB7XG4gIGlmICghYSAmJiAhYikgcmV0dXJuIHRydWU7XG4gIGlmICghYSB8fCAhYikgcmV0dXJuIGZhbHNlO1xuICByZXR1cm4gYVswXSA9PT0gYlswXSAmJiBhWzFdID09PSBiWzFdO1xufVxuIl19
File without changes
File without changes
package/dist/types.js ADDED
@@ -0,0 +1,23 @@
1
+ export function isCluster(c) {
2
+ const { children } = c;
3
+ return children && children.length > 0;
4
+ }
5
+ export function isLocationClusterNode(l) {
6
+ const { zoom } = l;
7
+ return zoom !== undefined;
8
+ }
9
+ export function isAggregateFlow(flow) {
10
+ return (flow &&
11
+ // flow.origin !== undefined &&
12
+ // flow.dest !== undefined &&
13
+ // flow.count !== undefined &&
14
+ (flow.aggregate ? true : false));
15
+ }
16
+ export var LocationFilterMode;
17
+ (function (LocationFilterMode) {
18
+ LocationFilterMode["ALL"] = "ALL";
19
+ LocationFilterMode["INCOMING"] = "INCOMING";
20
+ LocationFilterMode["OUTGOING"] = "OUTGOING";
21
+ LocationFilterMode["BETWEEN"] = "BETWEEN";
22
+ })(LocationFilterMode || (LocationFilterMode = {}));
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBK0ZBLE1BQU0sVUFBVSxTQUFTLENBQUMsQ0FBYztJQUN0QyxNQUFNLEVBQUMsUUFBUSxFQUFDLEdBQUcsQ0FBWSxDQUFDO0lBQ2hDLE9BQU8sUUFBUSxJQUFJLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0FBQ3pDLENBQUM7QUFFRCxNQUFNLFVBQVUscUJBQXFCLENBQUksQ0FBa0I7SUFDekQsTUFBTSxFQUFDLElBQUksRUFBQyxHQUFHLENBQWdCLENBQUM7SUFDaEMsT0FBTyxJQUFJLEtBQUssU0FBUyxDQUFDO0FBQzVCLENBQUM7QUFTRCxNQUFNLFVBQVUsZUFBZSxDQUM3QixJQUF5QjtJQUV6QixPQUFPLENBQ0wsSUFBSTtRQUNKLCtCQUErQjtRQUMvQiw2QkFBNkI7UUFDN0IsOEJBQThCO1FBQzlCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FDaEMsQ0FBQztBQUNKLENBQUM7QUFPRCxNQUFNLENBQU4sSUFBWSxrQkFLWDtBQUxELFdBQVksa0JBQWtCO0lBQzVCLGlDQUFXLENBQUE7SUFDWCwyQ0FBcUIsQ0FBQTtJQUNyQiwyQ0FBcUIsQ0FBQTtJQUNyQix5Q0FBbUIsQ0FBQTtBQUNyQixDQUFDLEVBTFcsa0JBQWtCLEtBQWxCLGtCQUFrQixRQUs3QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIEZsb3dtYXBEYXRhPEwsIEY+ID0ge1xuICBsb2NhdGlvbnM6IEl0ZXJhYmxlPEw+IHwgdW5kZWZpbmVkO1xuICBmbG93czogSXRlcmFibGU8Rj4gfCB1bmRlZmluZWQ7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIFZpZXdTdGF0ZSB7XG4gIGxhdGl0dWRlOiBudW1iZXI7XG4gIGxvbmdpdHVkZTogbnVtYmVyO1xuICB6b29tOiBudW1iZXI7XG4gIGJlYXJpbmc/OiBudW1iZXI7XG4gIHBpdGNoPzogbnVtYmVyO1xuICBhbHRpdHVkZT86IG51bWJlcjtcbn1cblxuZXhwb3J0IHR5cGUgRmxvd0FjY2Vzc29yPEYsIFQ+ID0gKGZsb3c6IEYpID0+IFQ7IC8vIG9iamVjdEluZm8/OiBBY2Nlc3Nvck9iamVjdEluZm8sXG5leHBvcnQgdHlwZSBMb2NhdGlvbkFjY2Vzc29yPEwsIFQ+ID0gKGxvY2F0aW9uOiBMKSA9PiBUO1xuXG5leHBvcnQgaW50ZXJmYWNlIEZsb3dBY2Nlc3NvcnM8Rj4ge1xuICBnZXRGbG93T3JpZ2luSWQ6IEZsb3dBY2Nlc3NvcjxGLCBzdHJpbmc+O1xuICBnZXRGbG93RGVzdElkOiBGbG93QWNjZXNzb3I8Riwgc3RyaW5nPjtcbiAgZ2V0Rmxvd01hZ25pdHVkZTogRmxvd0FjY2Vzc29yPEYsIG51bWJlcj47XG4gIGdldEZsb3dUaW1lPzogRmxvd0FjY2Vzc29yPEYsIERhdGU+OyAvLyBUT0RPOiB1c2UgbnVtYmVyIGluc3RlYWQgb2YgRGF0ZVxuICAvLyBnZXRGbG93Q29sb3I/OiBGbG93QWNjZXNzb3I8c3RyaW5nIHwgdW5kZWZpbmVkPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMb2NhdGlvbkFjY2Vzc29yczxMPiB7XG4gIGdldExvY2F0aW9uSWQ6IExvY2F0aW9uQWNjZXNzb3I8TCwgc3RyaW5nPjtcbiAgZ2V0TG9jYXRpb25OYW1lPzogTG9jYXRpb25BY2Nlc3NvcjxMLCBzdHJpbmc+O1xuICBnZXRMb2NhdGlvbkxhdDogTG9jYXRpb25BY2Nlc3NvcjxMLCBudW1iZXI+O1xuICBnZXRMb2NhdGlvbkxvbjogTG9jYXRpb25BY2Nlc3NvcjxMLCBudW1iZXI+O1xuICBnZXRMb2NhdGlvbkNsdXN0ZXJOYW1lPzogKGxvY2F0aW9uSWRzOiBzdHJpbmdbXSkgPT4gc3RyaW5nO1xuICAvLyBnZXRMb2NhdGlvblRvdGFsSW4/OiBMb2NhdGlvbkFjY2Vzc29yPG51bWJlcj47XG4gIC8vIGdldExvY2F0aW9uVG90YWxPdXQ/OiBMb2NhdGlvbkFjY2Vzc29yPG51bWJlcj47XG4gIC8vIGdldExvY2F0aW9uVG90YWxJbnRlcm5hbD86IExvY2F0aW9uQWNjZXNzb3I8bnVtYmVyPjtcbn1cblxuZXhwb3J0IHR5cGUgRmxvd21hcERhdGFBY2Nlc3NvcnM8TCwgRj4gPSBMb2NhdGlvbkFjY2Vzc29yczxMPiAmXG4gIEZsb3dBY2Nlc3NvcnM8Rj47XG5cbmV4cG9ydCBpbnRlcmZhY2UgTG9jYXRpb25Ub3RhbHMge1xuICBpbmNvbWluZ0NvdW50OiBudW1iZXI7XG4gIG91dGdvaW5nQ291bnQ6IG51bWJlcjtcbiAgaW50ZXJuYWxDb3VudDogbnVtYmVyO1xufVxuXG4vLyBleHBvcnQgaW50ZXJmYWNlIExvY2F0aW9uc1RvdGFscyB7XG4vLyAgIGluY29taW5nOiB7W2lkOiBzdHJpbmddOiBudW1iZXJ9O1xuLy8gICBvdXRnb2luZzoge1tpZDogc3RyaW5nXTogbnVtYmVyfTtcbi8vICAgaW50ZXJuYWw6IHtbaWQ6IHN0cmluZ106IG51bWJlcn07XG4vLyB9XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ291bnRCeVRpbWUge1xuICB0aW1lOiBEYXRlO1xuICBjb3VudDogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFZpZXdwb3J0UHJvcHMge1xuICB3aWR0aDogbnVtYmVyO1xuICBoZWlnaHQ6IG51bWJlcjtcbiAgbGF0aXR1ZGU6IG51bWJlcjtcbiAgbG9uZ2l0dWRlOiBudW1iZXI7XG4gIHpvb206IG51bWJlcjtcbiAgYmVhcmluZzogbnVtYmVyO1xuICBwaXRjaDogbnVtYmVyO1xuICBhbHRpdHVkZT86IG51bWJlcjtcbiAgbWF4Wm9vbT86IG51bWJlcjtcbiAgbWluWm9vbT86IG51bWJlcjtcbiAgbWF4UGl0Y2g/OiBudW1iZXI7XG4gIG1pblBpdGNoPzogbnVtYmVyO1xuICB0cmFuc2l0aW9uRHVyYXRpb24/OiBudW1iZXIgfCAnYXV0byc7XG4gIHRyYW5zaXRpb25JbnRlcnBvbGF0b3I/OiBhbnk7XG4gIHRyYW5zaXRpb25JbnRlcnJ1cHRpb24/OiBhbnk7XG4gIHRyYW5zaXRpb25FYXNpbmc/OiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2x1c3Rlck5vZGUge1xuICBpZDogc3RyaW5nO1xuICB6b29tOiBudW1iZXI7XG4gIGxhdDogbnVtYmVyO1xuICBsb246IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDbHVzdGVyTGV2ZWwge1xuICB6b29tOiBudW1iZXI7XG4gIG5vZGVzOiBDbHVzdGVyTm9kZVtdO1xufVxuXG5leHBvcnQgdHlwZSBDbHVzdGVyTGV2ZWxzID0gQ2x1c3RlckxldmVsW107XG5cbi8vIG5vbi1sZWFmIGNsdXN0ZXIgbm9kZVxuZXhwb3J0IGludGVyZmFjZSBDbHVzdGVyIGV4dGVuZHMgQ2x1c3Rlck5vZGUge1xuICBuYW1lPzogc3RyaW5nO1xuICBjaGlsZHJlbjogc3RyaW5nW107XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0NsdXN0ZXIoYzogQ2x1c3Rlck5vZGUpOiBjIGlzIENsdXN0ZXIge1xuICBjb25zdCB7Y2hpbGRyZW59ID0gYyBhcyBDbHVzdGVyO1xuICByZXR1cm4gY2hpbGRyZW4gJiYgY2hpbGRyZW4ubGVuZ3RoID4gMDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzTG9jYXRpb25DbHVzdGVyTm9kZTxMPihsOiBMIHwgQ2x1c3Rlck5vZGUpOiBsIGlzIENsdXN0ZXJOb2RlIHtcbiAgY29uc3Qge3pvb219ID0gbCBhcyBDbHVzdGVyTm9kZTtcbiAgcmV0dXJuIHpvb20gIT09IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBZ2dyZWdhdGVGbG93IHtcbiAgb3JpZ2luOiBzdHJpbmc7XG4gIGRlc3Q6IHN0cmluZztcbiAgY291bnQ6IG51bWJlcjtcbiAgYWdncmVnYXRlOiB0cnVlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNBZ2dyZWdhdGVGbG93KFxuICBmbG93OiBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuKTogZmxvdyBpcyBBZ2dyZWdhdGVGbG93IHtcbiAgcmV0dXJuIChcbiAgICBmbG93ICYmXG4gICAgLy8gZmxvdy5vcmlnaW4gIT09IHVuZGVmaW5lZCAmJlxuICAgIC8vIGZsb3cuZGVzdCAhPT0gdW5kZWZpbmVkICYmXG4gICAgLy8gZmxvdy5jb3VudCAhPT0gdW5kZWZpbmVkICYmXG4gICAgKGZsb3cuYWdncmVnYXRlID8gdHJ1ZSA6IGZhbHNlKVxuICApO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZsb3dDb3VudHNNYXBSZWR1Y2U8RiwgVCA9IGFueT4ge1xuICBtYXA6IChmbG93OiBGKSA9PiBUO1xuICByZWR1Y2U6IChhY2N1bXVsYXRlZDogVCwgdmFsOiBUKSA9PiBUO1xufVxuXG5leHBvcnQgZW51bSBMb2NhdGlvbkZpbHRlck1vZGUge1xuICBBTEwgPSAnQUxMJyxcbiAgSU5DT01JTkcgPSAnSU5DT01JTkcnLFxuICBPVVRHT0lORyA9ICdPVVRHT0lORycsXG4gIEJFVFdFRU4gPSAnQkVUV0VFTicsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmxvd0NpcmNsZXNMYXllckF0dHJpYnV0ZXMge1xuICBsZW5ndGg6IG51bWJlcjtcbiAgYXR0cmlidXRlczoge1xuICAgIGdldFBvc2l0aW9uOiBMYXllcnNEYXRhQXR0clZhbHVlczxGbG9hdDMyQXJyYXk+O1xuICAgIGdldENvbG9yOiBMYXllcnNEYXRhQXR0clZhbHVlczxVaW50OEFycmF5PjtcbiAgICBnZXRJblJhZGl1czogTGF5ZXJzRGF0YUF0dHJWYWx1ZXM8RmxvYXQzMkFycmF5PjtcbiAgICBnZXRPdXRSYWRpdXM6IExheWVyc0RhdGFBdHRyVmFsdWVzPEZsb2F0MzJBcnJheT47XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmxvd0xpbmVzTGF5ZXJBdHRyaWJ1dGVzIHtcbiAgbGVuZ3RoOiBudW1iZXI7XG4gIGF0dHJpYnV0ZXM6IHtcbiAgICBnZXRTb3VyY2VQb3NpdGlvbjogTGF5ZXJzRGF0YUF0dHJWYWx1ZXM8RmxvYXQzMkFycmF5PjtcbiAgICBnZXRUYXJnZXRQb3NpdGlvbjogTGF5ZXJzRGF0YUF0dHJWYWx1ZXM8RmxvYXQzMkFycmF5PjtcbiAgICBnZXRUaGlja25lc3M6IExheWVyc0RhdGFBdHRyVmFsdWVzPEZsb2F0MzJBcnJheT47XG4gICAgZ2V0Q29sb3I6IExheWVyc0RhdGFBdHRyVmFsdWVzPFVpbnQ4QXJyYXk+O1xuICAgIGdldEVuZHBvaW50T2Zmc2V0czogTGF5ZXJzRGF0YUF0dHJWYWx1ZXM8RmxvYXQzMkFycmF5PjtcbiAgICBnZXRTdGFnZ2VyaW5nPzogTGF5ZXJzRGF0YUF0dHJWYWx1ZXM8RmxvYXQzMkFycmF5PjtcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMYXllcnNEYXRhIHtcbiAgY2lyY2xlQXR0cmlidXRlczogRmxvd0NpcmNsZXNMYXllckF0dHJpYnV0ZXM7XG4gIGxpbmVBdHRyaWJ1dGVzOiBGbG93TGluZXNMYXllckF0dHJpYnV0ZXM7XG59XG5cbmV4cG9ydCB0eXBlIExheWVyc0RhdGFBdHRyVmFsdWVzPFQ+ID0ge3ZhbHVlOiBUOyBzaXplOiBudW1iZXJ9O1xuIl19
File without changes
File without changes
package/dist/util.js ADDED
@@ -0,0 +1,11 @@
1
+ import { createSelectorCreator, defaultMemoize } from 'reselect';
2
+ export const createDebugSelector = createSelectorCreator(defaultMemoize, {
3
+ equalityCheck: (previousVal, currentVal) => {
4
+ const rv = currentVal === previousVal;
5
+ if (!rv) {
6
+ console.log('Selector param value changed', currentVal);
7
+ }
8
+ return rv;
9
+ },
10
+ });
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy91dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxxQkFBcUIsRUFBRSxjQUFjLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFFL0QsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcscUJBQXFCLENBQUMsY0FBYyxFQUFFO0lBQ3ZFLGFBQWEsRUFBRSxDQUFDLFdBQWdCLEVBQUUsVUFBZSxFQUFFLEVBQUU7UUFDbkQsTUFBTSxFQUFFLEdBQUcsVUFBVSxLQUFLLFdBQVcsQ0FBQztRQUN0QyxJQUFJLENBQUMsRUFBRSxFQUFFO1lBQ1AsT0FBTyxDQUFDLEdBQUcsQ0FBQyw4QkFBOEIsRUFBRSxVQUFVLENBQUMsQ0FBQztTQUN6RDtRQUNELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztDQUNGLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Y3JlYXRlU2VsZWN0b3JDcmVhdG9yLCBkZWZhdWx0TWVtb2l6ZX0gZnJvbSAncmVzZWxlY3QnO1xuXG5leHBvcnQgY29uc3QgY3JlYXRlRGVidWdTZWxlY3RvciA9IGNyZWF0ZVNlbGVjdG9yQ3JlYXRvcihkZWZhdWx0TWVtb2l6ZSwge1xuICBlcXVhbGl0eUNoZWNrOiAocHJldmlvdXNWYWw6IGFueSwgY3VycmVudFZhbDogYW55KSA9PiB7XG4gICAgY29uc3QgcnYgPSBjdXJyZW50VmFsID09PSBwcmV2aW91c1ZhbDtcbiAgICBpZiAoIXJ2KSB7XG4gICAgICBjb25zb2xlLmxvZygnU2VsZWN0b3IgcGFyYW0gdmFsdWUgY2hhbmdlZCcsIGN1cnJlbnRWYWwpO1xuICAgIH1cbiAgICByZXR1cm4gcnY7XG4gIH0sXG59KTtcbiJdfQ==
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@flowmap.gl/data",
3
- "version": "8.0.0-alpha.16",
4
- "main": "dist-es5/index.js",
3
+ "version": "8.0.0-alpha.17",
4
+ "main": "dist/index.js",
5
5
  "module": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "repository": "git@github.com:FlowmapBlue/flowmap.gl.git",
@@ -9,13 +9,11 @@
9
9
  "license": "Apache-2.0",
10
10
  "scripts": {
11
11
  "dev": "tsc --watch",
12
- "build:esm": "rm -rf dist && tsc",
13
- "build:es5": "rm -rf dist-es5 && tsc --project tsconfig.es5.json",
14
- "build": "yarn build:es5 && yarn build:esm",
12
+ "build": "rm -rf dist && tsc",
15
13
  "prepare": "yarn build"
16
14
  },
17
15
  "dependencies": {
18
- "@flowmap.gl/data": "^8.0.0-alpha.16",
16
+ "@flowmap.gl/data": "^8.0.0-alpha.17",
19
17
  "d3-array": "2 - 3",
20
18
  "d3-color": "2 - 3",
21
19
  "d3-geo": "2 - 3",
@@ -43,7 +41,7 @@
43
41
  "@types/mapbox__geo-viewport": "^0.4.1",
44
42
  "@types/seedrandom": "^3.0.1"
45
43
  },
46
- "gitHead": "624ec764e6bce87e2fb058ea1c81415c5256763e",
44
+ "gitHead": "769242d2fa0f072568dcf3711e467a90f9a62cca",
47
45
  "publishConfig": {
48
46
  "access": "public"
49
47
  }
@@ -1,57 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- var types_1 = require("./types");
4
- var FlowmapAggregateAccessors = /** @class */ (function () {
5
- function FlowmapAggregateAccessors(accessors) {
6
- var _this = this;
7
- this.getLocationId = function (location) {
8
- return (0, types_1.isLocationClusterNode)(location)
9
- ? location.id
10
- : _this.accessors.getLocationId(location);
11
- };
12
- this.getLocationName = function (location) {
13
- var _a;
14
- return (_a = ((0, types_1.isLocationClusterNode)(location) && (0, types_1.isCluster)(location)
15
- ? location.name
16
- : undefined)) !== null && _a !== void 0 ? _a : _this.getLocationId(location);
17
- };
18
- // ? location.name // TODO getLocationName for locations and clusters
19
- // : this.accessors.getLocationName
20
- // ? this.accessors.getLocationName(location)
21
- // : this.getLocationId(location);
22
- this.getLocationLat = function (location) {
23
- return (0, types_1.isLocationClusterNode)(location)
24
- ? location.lat
25
- : _this.accessors.getLocationLat(location);
26
- };
27
- this.getLocationLon = function (location) {
28
- return (0, types_1.isLocationClusterNode)(location)
29
- ? location.lon
30
- : _this.accessors.getLocationLon(location);
31
- };
32
- this.getFlowOriginId = function (f) {
33
- return (0, types_1.isAggregateFlow)(f) ? f.origin : _this.accessors.getFlowOriginId(f);
34
- };
35
- this.getFlowDestId = function (f) {
36
- return (0, types_1.isAggregateFlow)(f) ? f.dest : _this.accessors.getFlowDestId(f);
37
- };
38
- this.getFlowMagnitude = function (f) {
39
- return (0, types_1.isAggregateFlow)(f) ? f.count : _this.accessors.getFlowMagnitude(f);
40
- };
41
- // Note: Aggregate flows have no time
42
- this.getFlowTime = function (f) {
43
- var getFlowTime = _this.accessors.getFlowTime;
44
- return getFlowTime ? getFlowTime(f) : undefined;
45
- };
46
- this.accessors = accessors;
47
- }
48
- FlowmapAggregateAccessors.prototype.setAccessors = function (accessors) {
49
- this.accessors = accessors;
50
- };
51
- FlowmapAggregateAccessors.prototype.getFlowmapDataAccessors = function () {
52
- return this.accessors;
53
- };
54
- return FlowmapAggregateAccessors;
55
- }());
56
- exports.default = FlowmapAggregateAccessors;
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmxvd21hcEFnZ3JlZ2F0ZUFjY2Vzc29ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9GbG93bWFwQWdncmVnYXRlQWNjZXNzb3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsaUNBT2lCO0FBRWpCO0lBRUUsbUNBQVksU0FBcUM7UUFBakQsaUJBRUM7UUFVRCxrQkFBYSxHQUFHLFVBQUMsUUFBeUI7WUFDeEMsT0FBQSxJQUFBLDZCQUFxQixFQUFDLFFBQVEsQ0FBQztnQkFDN0IsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFO2dCQUNiLENBQUMsQ0FBQyxLQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUM7UUFGMUMsQ0FFMEMsQ0FBQztRQUU3QyxvQkFBZSxHQUFHLFVBQUMsUUFBeUI7O1lBQzFDLE9BQUEsTUFBQSxDQUFDLElBQUEsNkJBQXFCLEVBQUMsUUFBUSxDQUFDLElBQUksSUFBQSxpQkFBUyxFQUFDLFFBQVEsQ0FBQztnQkFDckQsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJO2dCQUNmLENBQUMsQ0FBQyxTQUFTLENBQUMsbUNBQUksS0FBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQTtTQUFBLENBQUM7UUFDakQscUVBQXFFO1FBQ3JFLG1DQUFtQztRQUNuQyw2Q0FBNkM7UUFDN0Msa0NBQWtDO1FBRWxDLG1CQUFjLEdBQUcsVUFBQyxRQUF5QjtZQUN6QyxPQUFBLElBQUEsNkJBQXFCLEVBQUMsUUFBUSxDQUFDO2dCQUM3QixDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUc7Z0JBQ2QsQ0FBQyxDQUFDLEtBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQztRQUYzQyxDQUUyQyxDQUFDO1FBRTlDLG1CQUFjLEdBQUcsVUFBQyxRQUF5QjtZQUN6QyxPQUFBLElBQUEsNkJBQXFCLEVBQUMsUUFBUSxDQUFDO2dCQUM3QixDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUc7Z0JBQ2QsQ0FBQyxDQUFDLEtBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQztRQUYzQyxDQUUyQyxDQUFDO1FBRTlDLG9CQUFlLEdBQUcsVUFBQyxDQUFvQjtZQUNyQyxPQUFPLElBQUEsdUJBQWUsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDM0UsQ0FBQyxDQUFDO1FBRUYsa0JBQWEsR0FBRyxVQUFDLENBQW9CO1lBQ25DLE9BQU8sSUFBQSx1QkFBZSxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN2RSxDQUFDLENBQUM7UUFFRixxQkFBZ0IsR0FBRyxVQUFDLENBQW9CO1lBQ3RDLE9BQU8sSUFBQSx1QkFBZSxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFJLENBQUMsU0FBUyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNFLENBQUMsQ0FBQztRQUVGLHFDQUFxQztRQUNyQyxnQkFBVyxHQUFHLFVBQUMsQ0FBSTtZQUNWLElBQUEsV0FBVyxHQUFJLEtBQUksQ0FBQyxTQUFTLFlBQWxCLENBQW1CO1lBQ3JDLE9BQU8sV0FBVyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUNsRCxDQUFDLENBQUM7UUFuREEsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7SUFDN0IsQ0FBQztJQUVELGdEQUFZLEdBQVosVUFBYSxTQUFxQztRQUNoRCxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztJQUM3QixDQUFDO0lBRUQsMkRBQXVCLEdBQXZCO1FBQ0UsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUEyQ0gsZ0NBQUM7QUFBRCxDQUFDLEFBdkRELElBdURDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWdncmVnYXRlRmxvdyxcbiAgQ2x1c3Rlck5vZGUsXG4gIEZsb3dtYXBEYXRhQWNjZXNzb3JzLFxuICBpc0FnZ3JlZ2F0ZUZsb3csXG4gIGlzQ2x1c3RlcixcbiAgaXNMb2NhdGlvbkNsdXN0ZXJOb2RlLFxufSBmcm9tICcuL3R5cGVzJztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRmxvd21hcEFnZ3JlZ2F0ZUFjY2Vzc29yczxMLCBGPiB7XG4gIHByaXZhdGUgYWNjZXNzb3JzOiBGbG93bWFwRGF0YUFjY2Vzc29yczxMLCBGPjtcbiAgY29uc3RydWN0b3IoYWNjZXNzb3JzOiBGbG93bWFwRGF0YUFjY2Vzc29yczxMLCBGPikge1xuICAgIHRoaXMuYWNjZXNzb3JzID0gYWNjZXNzb3JzO1xuICB9XG5cbiAgc2V0QWNjZXNzb3JzKGFjY2Vzc29yczogRmxvd21hcERhdGFBY2Nlc3NvcnM8TCwgRj4pIHtcbiAgICB0aGlzLmFjY2Vzc29ycyA9IGFjY2Vzc29ycztcbiAgfVxuXG4gIGdldEZsb3dtYXBEYXRhQWNjZXNzb3JzKCkge1xuICAgIHJldHVybiB0aGlzLmFjY2Vzc29ycztcbiAgfVxuXG4gIGdldExvY2F0aW9uSWQgPSAobG9jYXRpb246IEwgfCBDbHVzdGVyTm9kZSk6IHN0cmluZyA9PlxuICAgIGlzTG9jYXRpb25DbHVzdGVyTm9kZShsb2NhdGlvbilcbiAgICAgID8gbG9jYXRpb24uaWRcbiAgICAgIDogdGhpcy5hY2Nlc3NvcnMuZ2V0TG9jYXRpb25JZChsb2NhdGlvbik7XG5cbiAgZ2V0TG9jYXRpb25OYW1lID0gKGxvY2F0aW9uOiBMIHwgQ2x1c3Rlck5vZGUpOiBzdHJpbmcgPT5cbiAgICAoaXNMb2NhdGlvbkNsdXN0ZXJOb2RlKGxvY2F0aW9uKSAmJiBpc0NsdXN0ZXIobG9jYXRpb24pXG4gICAgICA/IGxvY2F0aW9uLm5hbWVcbiAgICAgIDogdW5kZWZpbmVkKSA/PyB0aGlzLmdldExvY2F0aW9uSWQobG9jYXRpb24pO1xuICAvLyA/IGxvY2F0aW9uLm5hbWUgLy8gVE9ETyBnZXRMb2NhdGlvbk5hbWUgZm9yIGxvY2F0aW9ucyBhbmQgY2x1c3RlcnNcbiAgLy8gOiB0aGlzLmFjY2Vzc29ycy5nZXRMb2NhdGlvbk5hbWVcbiAgLy8gPyB0aGlzLmFjY2Vzc29ycy5nZXRMb2NhdGlvbk5hbWUobG9jYXRpb24pXG4gIC8vIDogdGhpcy5nZXRMb2NhdGlvbklkKGxvY2F0aW9uKTtcblxuICBnZXRMb2NhdGlvbkxhdCA9IChsb2NhdGlvbjogTCB8IENsdXN0ZXJOb2RlKTogbnVtYmVyID0+XG4gICAgaXNMb2NhdGlvbkNsdXN0ZXJOb2RlKGxvY2F0aW9uKVxuICAgICAgPyBsb2NhdGlvbi5sYXRcbiAgICAgIDogdGhpcy5hY2Nlc3NvcnMuZ2V0TG9jYXRpb25MYXQobG9jYXRpb24pO1xuXG4gIGdldExvY2F0aW9uTG9uID0gKGxvY2F0aW9uOiBMIHwgQ2x1c3Rlck5vZGUpOiBudW1iZXIgPT5cbiAgICBpc0xvY2F0aW9uQ2x1c3Rlck5vZGUobG9jYXRpb24pXG4gICAgICA/IGxvY2F0aW9uLmxvblxuICAgICAgOiB0aGlzLmFjY2Vzc29ycy5nZXRMb2NhdGlvbkxvbihsb2NhdGlvbik7XG5cbiAgZ2V0Rmxvd09yaWdpbklkID0gKGY6IEYgfCBBZ2dyZWdhdGVGbG93KSA9PiB7XG4gICAgcmV0dXJuIGlzQWdncmVnYXRlRmxvdyhmKSA/IGYub3JpZ2luIDogdGhpcy5hY2Nlc3NvcnMuZ2V0Rmxvd09yaWdpbklkKGYpO1xuICB9O1xuXG4gIGdldEZsb3dEZXN0SWQgPSAoZjogRiB8IEFnZ3JlZ2F0ZUZsb3cpID0+IHtcbiAgICByZXR1cm4gaXNBZ2dyZWdhdGVGbG93KGYpID8gZi5kZXN0IDogdGhpcy5hY2Nlc3NvcnMuZ2V0Rmxvd0Rlc3RJZChmKTtcbiAgfTtcblxuICBnZXRGbG93TWFnbml0dWRlID0gKGY6IEYgfCBBZ2dyZWdhdGVGbG93KSA9PiB7XG4gICAgcmV0dXJuIGlzQWdncmVnYXRlRmxvdyhmKSA/IGYuY291bnQgOiB0aGlzLmFjY2Vzc29ycy5nZXRGbG93TWFnbml0dWRlKGYpO1xuICB9O1xuXG4gIC8vIE5vdGU6IEFnZ3JlZ2F0ZSBmbG93cyBoYXZlIG5vIHRpbWVcbiAgZ2V0Rmxvd1RpbWUgPSAoZjogRikgPT4ge1xuICAgIGNvbnN0IHtnZXRGbG93VGltZX0gPSB0aGlzLmFjY2Vzc29ycztcbiAgICByZXR1cm4gZ2V0Rmxvd1RpbWUgPyBnZXRGbG93VGltZShmKSA6IHVuZGVmaW5lZDtcbiAgfTtcbn1cbiJdfQ==