@flowmap.gl/data 8.0.0-alpha.2 → 8.0.0-alpha.6

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 (63) hide show
  1. package/dist/{FlowMapAggregateAccessors.d.ts → FlowmapAggregateAccessors.d.ts} +6 -6
  2. package/dist/{FlowMapAggregateAccessors.d.ts.map → FlowmapAggregateAccessors.d.ts.map} +1 -1
  3. package/dist/{FlowMapAggregateAccessors.js → FlowmapAggregateAccessors.js} +3 -3
  4. package/dist/{FlowMapSelectors.d.ts → FlowmapSelectors.d.ts} +47 -45
  5. package/dist/FlowmapSelectors.d.ts.map +1 -0
  6. package/dist/FlowmapSelectors.js +869 -0
  7. package/dist/{FlowMapState.d.ts → FlowmapState.d.ts} +5 -2
  8. package/dist/FlowmapState.d.ts.map +1 -0
  9. package/dist/FlowmapState.js +2 -0
  10. package/dist/colors.d.ts +6 -6
  11. package/dist/colors.d.ts.map +1 -1
  12. package/dist/colors.js +42 -17
  13. package/dist/getViewStateForLocations.d.ts +12 -10
  14. package/dist/getViewStateForLocations.d.ts.map +1 -1
  15. package/dist/getViewStateForLocations.js +4 -1
  16. package/dist/index.d.ts +9 -6
  17. package/dist/index.d.ts.map +1 -1
  18. package/dist/index.js +9 -6
  19. package/dist/provider/FlowmapDataProvider.d.ts +16 -0
  20. package/dist/provider/FlowmapDataProvider.d.ts.map +1 -0
  21. package/dist/provider/FlowmapDataProvider.js +17 -0
  22. package/dist/provider/LocalFlowmapDataProvider.d.ts +20 -0
  23. package/dist/provider/LocalFlowmapDataProvider.d.ts.map +1 -0
  24. package/dist/provider/LocalFlowmapDataProvider.js +95 -0
  25. package/dist/provider/WorkerFlowmapDataProvider.d.ts +42 -0
  26. package/dist/provider/WorkerFlowmapDataProvider.d.ts.map +1 -0
  27. package/dist/provider/WorkerFlowmapDataProvider.js +82 -0
  28. package/dist/provider/WorkerFlowmapDataProviderWorker.d.ts +2 -0
  29. package/dist/provider/WorkerFlowmapDataProviderWorker.d.ts.map +1 -0
  30. package/dist/provider/WorkerFlowmapDataProviderWorker.js +4 -0
  31. package/dist/provider/createWorkerDataProvider.d.ts +3 -0
  32. package/dist/provider/createWorkerDataProvider.d.ts.map +1 -0
  33. package/dist/provider/createWorkerDataProvider.js +21 -0
  34. package/dist/types.d.ts +2 -2
  35. package/dist/types.js +1 -1
  36. package/dist/util.d.ts +0 -1
  37. package/dist/util.d.ts.map +1 -1
  38. package/dist/util.js +1 -4
  39. package/package.json +7 -2
  40. package/src/{FlowMapAggregateAccessors.ts → FlowmapAggregateAccessors.ts} +6 -6
  41. package/src/{FlowMapSelectors.ts → FlowmapSelectors.ts} +154 -113
  42. package/src/{FlowMapState.ts → FlowmapState.ts} +4 -1
  43. package/src/colors.ts +50 -16
  44. package/src/getViewStateForLocations.ts +20 -16
  45. package/src/index.ts +9 -6
  46. package/src/provider/{FlowMapDataProvider.ts → FlowmapDataProvider.ts} +14 -12
  47. package/src/provider/LocalFlowmapDataProvider.ts +119 -0
  48. package/src/provider/WorkerFlowmapDataProvider.ts +121 -0
  49. package/src/provider/WorkerFlowmapDataProviderWorker.ts +4 -0
  50. package/src/provider/createWorkerDataProvider.ts +18 -0
  51. package/src/types.ts +2 -2
  52. package/src/util.ts +0 -4
  53. package/dist/FlowMapSelectors.d.ts.map +0 -1
  54. package/dist/FlowMapSelectors.js +0 -834
  55. package/dist/FlowMapState.d.ts.map +0 -1
  56. package/dist/FlowMapState.js +0 -2
  57. package/dist/provider/FlowMapDataProvider.d.ts +0 -16
  58. package/dist/provider/FlowMapDataProvider.d.ts.map +0 -1
  59. package/dist/provider/FlowMapDataProvider.js +0 -17
  60. package/dist/provider/LocalFlowMapDataProvider.d.ts +0 -20
  61. package/dist/provider/LocalFlowMapDataProvider.d.ts.map +0 -1
  62. package/dist/provider/LocalFlowMapDataProvider.js +0 -87
  63. package/src/provider/LocalFlowMapDataProvider.ts +0 -105
@@ -0,0 +1,20 @@
1
+ import type FlowmapDataProvider from './FlowmapDataProvider';
2
+ import type { Cluster, ClusterNode, FlowmapData, FlowmapDataAccessors, LayersData, LocationTotals, ViewportProps, AggregateFlow } from '../types';
3
+ import { FlowmapState } from '../FlowmapState';
4
+ import { GetViewStateOptions } from '../getViewStateForLocations';
5
+ export default class LocalFlowmapDataProvider<L, F> implements FlowmapDataProvider<L, F> {
6
+ private selectors;
7
+ private flowmapData;
8
+ private flowmapState;
9
+ constructor(accessors: FlowmapDataAccessors<L, F>);
10
+ setAccessors(accessors: FlowmapDataAccessors<L, F>): void;
11
+ setFlowmapData(flowmapData: FlowmapData<L, F>): Promise<void>;
12
+ setFlowmapState(flowmapState: FlowmapState): Promise<void>;
13
+ getFlowByIndex(idx: number): Promise<F | AggregateFlow | undefined>;
14
+ getLocationByIndex(idx: number): Promise<L | ClusterNode | undefined>;
15
+ getLayersData(): Promise<LayersData | undefined>;
16
+ getLocationById(id: string): Promise<L | Cluster | undefined>;
17
+ getTotalsForLocation(id: string): Promise<LocationTotals | undefined>;
18
+ getViewportForLocations(dims: [number, number], opts?: GetViewStateOptions): Promise<ViewportProps | undefined>;
19
+ }
20
+ //# sourceMappingURL=LocalFlowmapDataProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LocalFlowmapDataProvider.d.ts","sourceRoot":"","sources":["../../src/provider/LocalFlowmapDataProvider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,mBAAmB,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EACV,OAAO,EACP,WAAW,EACX,WAAW,EACX,oBAAoB,EACpB,UAAU,EACV,cAAc,EACd,aAAa,EACb,aAAa,EACd,MAAM,UAAU,CAAC;AAClB,OAAO,EAAC,YAAY,EAAC,MAAM,iBAAiB,CAAC;AAE7C,OAAO,EACL,mBAAmB,EAEpB,MAAM,6BAA6B,CAAC;AAErC,MAAM,CAAC,OAAO,OAAO,wBAAwB,CAAC,CAAC,EAAE,CAAC,CAChD,YAAW,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC;IAEpC,OAAO,CAAC,SAAS,CAAyB;IAC1C,OAAO,CAAC,WAAW,CAAgC;IACnD,OAAO,CAAC,YAAY,CAA2B;gBAEnC,SAAS,EAAE,oBAAoB,CAAC,CAAC,EAAE,CAAC,CAAC;IAOjD,YAAY,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC,EAAE,CAAC,CAAC;IAI5C,cAAc,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7D,eAAe,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAI1D,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,aAAa,GAAG,SAAS,CAAC;IAWnE,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,WAAW,GAAG,SAAS,CAAC;IAWrE,aAAa,IAAI,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;IAOhD,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,OAAO,GAAG,SAAS,CAAC;IAqB7D,oBAAoB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC;IASrE,uBAAuB,CAC3B,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EACtB,IAAI,CAAC,EAAE,mBAAmB,GACzB,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;CAYtC"}
@@ -0,0 +1,95 @@
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
+ getLocationByIndex(idx) {
42
+ return __awaiter(this, void 0, void 0, function* () {
43
+ if (!this.flowmapState || !this.flowmapData) {
44
+ return undefined;
45
+ }
46
+ const locations = this.selectors.getLocationsForFlowmapLayer(this.flowmapState, this.flowmapData);
47
+ return locations === null || locations === void 0 ? void 0 : locations[idx];
48
+ });
49
+ }
50
+ getLayersData() {
51
+ return __awaiter(this, void 0, void 0, function* () {
52
+ if (!this.flowmapState || !this.flowmapData) {
53
+ return undefined;
54
+ }
55
+ return this.selectors.getLayersData(this.flowmapState, this.flowmapData);
56
+ });
57
+ }
58
+ getLocationById(id) {
59
+ return __awaiter(this, void 0, void 0, function* () {
60
+ if (!this.flowmapState || !this.flowmapData) {
61
+ return undefined;
62
+ }
63
+ const clusterIndex = this.selectors.getClusterIndex(this.flowmapState, this.flowmapData);
64
+ if (clusterIndex) {
65
+ const cluster = clusterIndex.getClusterById(id);
66
+ if (cluster) {
67
+ return cluster;
68
+ }
69
+ }
70
+ const locationsById = this.selectors.getLocationsById(this.flowmapState, this.flowmapData);
71
+ return locationsById === null || locationsById === void 0 ? void 0 : locationsById.get(id);
72
+ });
73
+ }
74
+ getTotalsForLocation(id) {
75
+ var _a;
76
+ return __awaiter(this, void 0, void 0, function* () {
77
+ if (!this.flowmapState || !this.flowmapData) {
78
+ return undefined;
79
+ }
80
+ return (_a = this.selectors
81
+ .getLocationTotals(this.flowmapState, this.flowmapData)) === null || _a === void 0 ? void 0 : _a.get(id);
82
+ });
83
+ }
84
+ getViewportForLocations(dims, opts) {
85
+ var _a;
86
+ return __awaiter(this, void 0, void 0, function* () {
87
+ if (!((_a = this.flowmapData) === null || _a === void 0 ? void 0 : _a.locations)) {
88
+ return undefined;
89
+ }
90
+ // @ts-ignore
91
+ return getViewStateForLocations(this.flowmapData.locations, this.selectors.accessors.getLocationCentroid, dims, opts);
92
+ });
93
+ }
94
+ }
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTG9jYWxGbG93bWFwRGF0YVByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Byb3ZpZGVyL0xvY2FsRmxvd21hcERhdGFQcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFZQSxPQUFPLGdCQUFnQixNQUFNLHFCQUFxQixDQUFDO0FBQ25ELE9BQU8sRUFFTCx3QkFBd0IsR0FDekIsTUFBTSw2QkFBNkIsQ0FBQztBQUVyQyxNQUFNLENBQUMsT0FBTyxPQUFPLHdCQUF3QjtJQU8zQyxZQUFZLFNBQXFDO1FBQy9DLGtFQUFrRTtRQUNsRSxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksZ0JBQWdCLENBQU8sU0FBUyxDQUFDLENBQUM7UUFDdkQsSUFBSSxDQUFDLFdBQVcsR0FBRyxTQUFTLENBQUM7UUFDN0IsSUFBSSxDQUFDLFlBQVksR0FBRyxTQUFTLENBQUM7SUFDaEMsQ0FBQztJQUVELFlBQVksQ0FBQyxTQUFxQztRQUNoRCxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUssY0FBYyxDQUFDLFdBQThCOztZQUNqRCxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztRQUNqQyxDQUFDO0tBQUE7SUFFSyxlQUFlLENBQUMsWUFBMEI7O1lBQzlDLElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO1FBQ25DLENBQUM7S0FBQTtJQUVLLGNBQWMsQ0FBQyxHQUFXOztZQUM5QixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7Z0JBQzNDLE9BQU8sU0FBUyxDQUFDO2FBQ2xCO1lBQ0QsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyx1QkFBdUIsQ0FDbEQsSUFBSSxDQUFDLFlBQVksRUFDakIsSUFBSSxDQUFDLFdBQVcsQ0FDakIsQ0FBQztZQUNGLE9BQU8sS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFHLEdBQUcsQ0FBQyxDQUFDO1FBQ3RCLENBQUM7S0FBQTtJQUVLLGtCQUFrQixDQUFDLEdBQVc7O1lBQ2xDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTtnQkFDM0MsT0FBTyxTQUFTLENBQUM7YUFDbEI7WUFDRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLDJCQUEyQixDQUMxRCxJQUFJLENBQUMsWUFBWSxFQUNqQixJQUFJLENBQUMsV0FBVyxDQUNqQixDQUFDO1lBQ0YsT0FBTyxTQUFTLGFBQVQsU0FBUyx1QkFBVCxTQUFTLENBQUcsR0FBRyxDQUFDLENBQUM7UUFDMUIsQ0FBQztLQUFBO0lBRUssYUFBYTs7WUFDakIsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO2dCQUMzQyxPQUFPLFNBQVMsQ0FBQzthQUNsQjtZQUNELE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDM0UsQ0FBQztLQUFBO0lBRUssZUFBZSxDQUFDLEVBQVU7O1lBQzlCLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTtnQkFDM0MsT0FBTyxTQUFTLENBQUM7YUFDbEI7WUFDRCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FDakQsSUFBSSxDQUFDLFlBQVksRUFDakIsSUFBSSxDQUFDLFdBQVcsQ0FDakIsQ0FBQztZQUNGLElBQUksWUFBWSxFQUFFO2dCQUNoQixNQUFNLE9BQU8sR0FBRyxZQUFZLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNoRCxJQUFJLE9BQU8sRUFBRTtvQkFDWCxPQUFPLE9BQU8sQ0FBQztpQkFDaEI7YUFDRjtZQUNELE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQ25ELElBQUksQ0FBQyxZQUFZLEVBQ2pCLElBQUksQ0FBQyxXQUFXLENBQ2pCLENBQUM7WUFDRixPQUFPLGFBQWEsYUFBYixhQUFhLHVCQUFiLGFBQWEsQ0FBRSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDaEMsQ0FBQztLQUFBO0lBRUssb0JBQW9CLENBQUMsRUFBVTs7O1lBQ25DLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTtnQkFDM0MsT0FBTyxTQUFTLENBQUM7YUFDbEI7WUFDRCxPQUFPLE1BQUEsSUFBSSxDQUFDLFNBQVM7aUJBQ2xCLGlCQUFpQixDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQywwQ0FDckQsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDOztLQUNiO0lBRUssdUJBQXVCLENBQzNCLElBQXNCLEVBQ3RCLElBQTBCOzs7WUFFMUIsSUFBSSxDQUFDLENBQUEsTUFBQSxJQUFJLENBQUMsV0FBVywwQ0FBRSxTQUFTLENBQUEsRUFBRTtnQkFDaEMsT0FBTyxTQUFTLENBQUM7YUFDbEI7WUFDRCxhQUFhO1lBQ2IsT0FBTyx3QkFBd0IsQ0FDN0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQzFCLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLG1CQUFtQixFQUM1QyxJQUFJLEVBQ0osSUFBSSxDQUNMLENBQUM7O0tBQ0g7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIEZsb3dtYXBEYXRhUHJvdmlkZXIgZnJvbSAnLi9GbG93bWFwRGF0YVByb3ZpZGVyJztcbmltcG9ydCB0eXBlIHtcbiAgQ2x1c3RlcixcbiAgQ2x1c3Rlck5vZGUsXG4gIEZsb3dtYXBEYXRhLFxuICBGbG93bWFwRGF0YUFjY2Vzc29ycyxcbiAgTGF5ZXJzRGF0YSxcbiAgTG9jYXRpb25Ub3RhbHMsXG4gIFZpZXdwb3J0UHJvcHMsXG4gIEFnZ3JlZ2F0ZUZsb3csXG59IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7Rmxvd21hcFN0YXRlfSBmcm9tICcuLi9GbG93bWFwU3RhdGUnO1xuaW1wb3J0IEZsb3dtYXBTZWxlY3RvcnMgZnJvbSAnLi4vRmxvd21hcFNlbGVjdG9ycyc7XG5pbXBvcnQge1xuICBHZXRWaWV3U3RhdGVPcHRpb25zLFxuICBnZXRWaWV3U3RhdGVGb3JMb2NhdGlvbnMsXG59IGZyb20gJy4uL2dldFZpZXdTdGF0ZUZvckxvY2F0aW9ucyc7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIExvY2FsRmxvd21hcERhdGFQcm92aWRlcjxMLCBGPlxuICBpbXBsZW1lbnRzIEZsb3dtYXBEYXRhUHJvdmlkZXI8TCwgRj5cbntcbiAgcHJpdmF0ZSBzZWxlY3RvcnM6IEZsb3dtYXBTZWxlY3RvcnM8TCwgRj47XG4gIHByaXZhdGUgZmxvd21hcERhdGE6IEZsb3dtYXBEYXRhPEwsIEY+IHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIGZsb3dtYXBTdGF0ZTogRmxvd21hcFN0YXRlIHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKGFjY2Vzc29yczogRmxvd21hcERhdGFBY2Nlc3NvcnM8TCwgRj4pIHtcbiAgICAvLyBzY29wZSBzZWxlY3RvcnMgdG8gdGhlIGNvbmNyZXRlIGluc3RhbmNlIG9mIEZsb3dtYXBEYXRhUHJvdmlkZXJcbiAgICB0aGlzLnNlbGVjdG9ycyA9IG5ldyBGbG93bWFwU2VsZWN0b3JzPEwsIEY+KGFjY2Vzc29ycyk7XG4gICAgdGhpcy5mbG93bWFwRGF0YSA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLmZsb3dtYXBTdGF0ZSA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHNldEFjY2Vzc29ycyhhY2Nlc3NvcnM6IEZsb3dtYXBEYXRhQWNjZXNzb3JzPEwsIEY+KSB7XG4gICAgdGhpcy5zZWxlY3RvcnMuc2V0QWNjZXNzb3JzKGFjY2Vzc29ycyk7XG4gIH1cblxuICBhc3luYyBzZXRGbG93bWFwRGF0YShmbG93bWFwRGF0YTogRmxvd21hcERhdGE8TCwgRj4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLmZsb3dtYXBEYXRhID0gZmxvd21hcERhdGE7XG4gIH1cblxuICBhc3luYyBzZXRGbG93bWFwU3RhdGUoZmxvd21hcFN0YXRlOiBGbG93bWFwU3RhdGUpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLmZsb3dtYXBTdGF0ZSA9IGZsb3dtYXBTdGF0ZTtcbiAgfVxuXG4gIGFzeW5jIGdldEZsb3dCeUluZGV4KGlkeDogbnVtYmVyKTogUHJvbWlzZTxGIHwgQWdncmVnYXRlRmxvdyB8IHVuZGVmaW5lZD4ge1xuICAgIGlmICghdGhpcy5mbG93bWFwU3RhdGUgfHwgIXRoaXMuZmxvd21hcERhdGEpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGNvbnN0IGZsb3dzID0gdGhpcy5zZWxlY3RvcnMuZ2V0Rmxvd3NGb3JGbG93bWFwTGF5ZXIoXG4gICAgICB0aGlzLmZsb3dtYXBTdGF0ZSxcbiAgICAgIHRoaXMuZmxvd21hcERhdGEsXG4gICAgKTtcbiAgICByZXR1cm4gZmxvd3M/LltpZHhdO1xuICB9XG5cbiAgYXN5bmMgZ2V0TG9jYXRpb25CeUluZGV4KGlkeDogbnVtYmVyKTogUHJvbWlzZTxMIHwgQ2x1c3Rlck5vZGUgfCB1bmRlZmluZWQ+IHtcbiAgICBpZiAoIXRoaXMuZmxvd21hcFN0YXRlIHx8ICF0aGlzLmZsb3dtYXBEYXRhKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBjb25zdCBsb2NhdGlvbnMgPSB0aGlzLnNlbGVjdG9ycy5nZXRMb2NhdGlvbnNGb3JGbG93bWFwTGF5ZXIoXG4gICAgICB0aGlzLmZsb3dtYXBTdGF0ZSxcbiAgICAgIHRoaXMuZmxvd21hcERhdGEsXG4gICAgKTtcbiAgICByZXR1cm4gbG9jYXRpb25zPy5baWR4XTtcbiAgfVxuXG4gIGFzeW5jIGdldExheWVyc0RhdGEoKTogUHJvbWlzZTxMYXllcnNEYXRhIHwgdW5kZWZpbmVkPiB7XG4gICAgaWYgKCF0aGlzLmZsb3dtYXBTdGF0ZSB8fCAhdGhpcy5mbG93bWFwRGF0YSkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0b3JzLmdldExheWVyc0RhdGEodGhpcy5mbG93bWFwU3RhdGUsIHRoaXMuZmxvd21hcERhdGEpO1xuICB9XG5cbiAgYXN5bmMgZ2V0TG9jYXRpb25CeUlkKGlkOiBzdHJpbmcpOiBQcm9taXNlPEwgfCBDbHVzdGVyIHwgdW5kZWZpbmVkPiB7XG4gICAgaWYgKCF0aGlzLmZsb3dtYXBTdGF0ZSB8fCAhdGhpcy5mbG93bWFwRGF0YSkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgY29uc3QgY2x1c3RlckluZGV4ID0gdGhpcy5zZWxlY3RvcnMuZ2V0Q2x1c3RlckluZGV4KFxuICAgICAgdGhpcy5mbG93bWFwU3RhdGUsXG4gICAgICB0aGlzLmZsb3dtYXBEYXRhLFxuICAgICk7XG4gICAgaWYgKGNsdXN0ZXJJbmRleCkge1xuICAgICAgY29uc3QgY2x1c3RlciA9IGNsdXN0ZXJJbmRleC5nZXRDbHVzdGVyQnlJZChpZCk7XG4gICAgICBpZiAoY2x1c3Rlcikge1xuICAgICAgICByZXR1cm4gY2x1c3RlcjtcbiAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgbG9jYXRpb25zQnlJZCA9IHRoaXMuc2VsZWN0b3JzLmdldExvY2F0aW9uc0J5SWQoXG4gICAgICB0aGlzLmZsb3dtYXBTdGF0ZSxcbiAgICAgIHRoaXMuZmxvd21hcERhdGEsXG4gICAgKTtcbiAgICByZXR1cm4gbG9jYXRpb25zQnlJZD8uZ2V0KGlkKTtcbiAgfVxuXG4gIGFzeW5jIGdldFRvdGFsc0ZvckxvY2F0aW9uKGlkOiBzdHJpbmcpOiBQcm9taXNlPExvY2F0aW9uVG90YWxzIHwgdW5kZWZpbmVkPiB7XG4gICAgaWYgKCF0aGlzLmZsb3dtYXBTdGF0ZSB8fCAhdGhpcy5mbG93bWFwRGF0YSkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0b3JzXG4gICAgICAuZ2V0TG9jYXRpb25Ub3RhbHModGhpcy5mbG93bWFwU3RhdGUsIHRoaXMuZmxvd21hcERhdGEpXG4gICAgICA/LmdldChpZCk7XG4gIH1cblxuICBhc3luYyBnZXRWaWV3cG9ydEZvckxvY2F0aW9ucyhcbiAgICBkaW1zOiBbbnVtYmVyLCBudW1iZXJdLFxuICAgIG9wdHM/OiBHZXRWaWV3U3RhdGVPcHRpb25zLFxuICApOiBQcm9taXNlPFZpZXdwb3J0UHJvcHMgfCB1bmRlZmluZWQ+IHtcbiAgICBpZiAoIXRoaXMuZmxvd21hcERhdGE/LmxvY2F0aW9ucykge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIHJldHVybiBnZXRWaWV3U3RhdGVGb3JMb2NhdGlvbnMoXG4gICAgICB0aGlzLmZsb3dtYXBEYXRhLmxvY2F0aW9ucyxcbiAgICAgIHRoaXMuc2VsZWN0b3JzLmFjY2Vzc29ycy5nZXRMb2NhdGlvbkNlbnRyb2lkLFxuICAgICAgZGltcyxcbiAgICAgIG9wdHMsXG4gICAgKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,42 @@
1
+ import FlowmapDataProvider from './FlowmapDataProvider';
2
+ import { Cluster, ClusterNode, FlowmapData, FlowmapDataAccessors, LayersData, LocationTotals, ViewportProps } from '../types';
3
+ import { FlowmapState } from '../FlowmapState';
4
+ import { AggregateFlow } from '..';
5
+ export declare type WorkerDataProviderProps = {
6
+ flows: {
7
+ url: string;
8
+ columns: {
9
+ originId: string;
10
+ destId: string;
11
+ count: string;
12
+ };
13
+ };
14
+ locations: {
15
+ url: string;
16
+ columns: {
17
+ id: string;
18
+ name: string;
19
+ lat: string;
20
+ lon: string;
21
+ };
22
+ };
23
+ };
24
+ export declare type LocationDatum = Record<string, unknown>;
25
+ export declare type FlowDatum = Record<string, unknown>;
26
+ export default class WorkerFlowmapDataProvider implements FlowmapDataProvider<LocationDatum, FlowDatum> {
27
+ private props;
28
+ private localProvider;
29
+ private flowmapState;
30
+ constructor(props: WorkerDataProviderProps);
31
+ loadData(): Promise<void>;
32
+ setAccessors(accessors: FlowmapDataAccessors<LocationDatum, FlowDatum>): void;
33
+ setFlowmapData(flowmapData: FlowmapData<LocationDatum, FlowDatum>): Promise<void>;
34
+ setFlowmapState(flowmapState: FlowmapState): Promise<void>;
35
+ getFlowByIndex(idx: number): Promise<FlowDatum | AggregateFlow | undefined>;
36
+ getLocationByIndex(idx: number): Promise<LocationDatum | ClusterNode | undefined>;
37
+ getLayersData(): Promise<LayersData | undefined>;
38
+ getLocationById(id: string): Promise<LocationDatum | Cluster | undefined>;
39
+ getTotalsForLocation(id: string): Promise<LocationTotals | undefined>;
40
+ getViewportForLocations(dims: [number, number]): Promise<ViewportProps | undefined>;
41
+ }
42
+ //# sourceMappingURL=WorkerFlowmapDataProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkerFlowmapDataProvider.d.ts","sourceRoot":"","sources":["../../src/provider/WorkerFlowmapDataProvider.ts"],"names":[],"mappings":"AAAA,OAAO,mBAAmB,MAAM,uBAAuB,CAAC;AACxD,OAAO,EACL,OAAO,EACP,WAAW,EACX,WAAW,EACX,oBAAoB,EACpB,UAAU,EACV,cAAc,EACd,aAAa,EACd,MAAM,UAAU,CAAC;AAClB,OAAO,EAAC,YAAY,EAAC,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAC,aAAa,EAAC,MAAM,IAAI,CAAC;AAOjC,oBAAY,uBAAuB,GAAG;IACpC,KAAK,EAAE;QACL,GAAG,EAAE,MAAM,CAAC;QACZ,OAAO,EAAE;YACP,QAAQ,EAAE,MAAM,CAAC;YACjB,MAAM,EAAE,MAAM,CAAC;YACf,KAAK,EAAE,MAAM,CAAC;SACf,CAAC;KACH,CAAC;IACF,SAAS,EAAE;QACT,GAAG,EAAE,MAAM,CAAC;QACZ,OAAO,EAAE;YACP,EAAE,EAAE,MAAM,CAAC;YACX,IAAI,EAAE,MAAM,CAAC;YACb,GAAG,EAAE,MAAM,CAAC;YACZ,GAAG,EAAE,MAAM,CAAC;SACb,CAAC;KACH,CAAC;CACH,CAAC;AAEF,oBAAY,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACpD,oBAAY,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEhD,MAAM,CAAC,OAAO,OAAO,yBACnB,YAAW,mBAAmB,CAAC,aAAa,EAAE,SAAS,CAAC;IAExD,OAAO,CAAC,KAAK,CAA0B;IACvC,OAAO,CAAC,aAAa,CAAqD;IAC1E,OAAO,CAAC,YAAY,CAA2B;gBAEnC,KAAK,EAAE,uBAAuB;IAmBpC,QAAQ;IAQd,YAAY,CAAC,SAAS,EAAE,oBAAoB,CAAC,aAAa,EAAE,SAAS,CAAC;IAIhE,cAAc,CAClB,WAAW,EAAE,WAAW,CAAC,aAAa,EAAE,SAAS,CAAC,GACjD,OAAO,CAAC,IAAI,CAAC;IAIV,eAAe,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAI1D,cAAc,CAClB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,SAAS,GAAG,aAAa,GAAG,SAAS,CAAC;IAI3C,kBAAkB,CACtB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,aAAa,GAAG,WAAW,GAAG,SAAS,CAAC;IAI7C,aAAa,IAAI,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;IAIhD,eAAe,CACnB,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,aAAa,GAAG,OAAO,GAAG,SAAS,CAAC;IAIzC,oBAAoB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC;IAI3E,uBAAuB,CACrB,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GACrB,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;CAGtC"}
@@ -0,0 +1,82 @@
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 LocalFlowmapDataProvider from './LocalFlowmapDataProvider';
11
+ import { load } from '@loaders.gl/core';
12
+ import { CSVLoader } from '@loaders.gl/csv';
13
+ const LOADERS = [CSVLoader];
14
+ export default class WorkerFlowmapDataProvider {
15
+ constructor(props) {
16
+ this.props = props;
17
+ this.localProvider = new LocalFlowmapDataProvider({
18
+ getFlowOriginId: (flow) => flow[props.flows.columns.originId],
19
+ getFlowDestId: (flow) => flow[props.flows.columns.destId],
20
+ getFlowMagnitude: (flow) => flow[props.flows.columns.count],
21
+ // getFlowTime: (flow) => flow.time,
22
+ getLocationCentroid: (location) => [
23
+ location[props.locations.columns.lon],
24
+ location[props.locations.columns.lat],
25
+ ],
26
+ getLocationName: (location) => location[props.locations.columns.name],
27
+ getLocationId: (location) => location[props.locations.columns.id],
28
+ });
29
+ this.flowmapState = undefined;
30
+ }
31
+ loadData() {
32
+ return __awaiter(this, void 0, void 0, function* () {
33
+ const [locations, flows] = yield Promise.all([
34
+ load(this.props.locations.url, LOADERS),
35
+ load(this.props.flows.url, LOADERS),
36
+ ]);
37
+ yield this.localProvider.setFlowmapData({ locations, flows });
38
+ });
39
+ }
40
+ setAccessors(accessors) {
41
+ throw new Error('Not supported');
42
+ }
43
+ setFlowmapData(flowmapData) {
44
+ return __awaiter(this, void 0, void 0, function* () {
45
+ throw new Error('Not supported');
46
+ });
47
+ }
48
+ setFlowmapState(flowmapState) {
49
+ return __awaiter(this, void 0, void 0, function* () {
50
+ yield this.localProvider.setFlowmapState(flowmapState);
51
+ });
52
+ }
53
+ getFlowByIndex(idx) {
54
+ return __awaiter(this, void 0, void 0, function* () {
55
+ return this.localProvider.getFlowByIndex(idx);
56
+ });
57
+ }
58
+ getLocationByIndex(idx) {
59
+ return __awaiter(this, void 0, void 0, function* () {
60
+ return this.localProvider.getLocationByIndex(idx);
61
+ });
62
+ }
63
+ getLayersData() {
64
+ return __awaiter(this, void 0, void 0, function* () {
65
+ return yield this.localProvider.getLayersData();
66
+ });
67
+ }
68
+ getLocationById(id) {
69
+ return __awaiter(this, void 0, void 0, function* () {
70
+ return this.localProvider.getLocationById(id);
71
+ });
72
+ }
73
+ getTotalsForLocation(id) {
74
+ return __awaiter(this, void 0, void 0, function* () {
75
+ return this.localProvider.getTotalsForLocation(id);
76
+ });
77
+ }
78
+ getViewportForLocations(dims) {
79
+ return this.localProvider.getViewportForLocations(dims);
80
+ }
81
+ }
82
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiV29ya2VyRmxvd21hcERhdGFQcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm92aWRlci9Xb3JrZXJGbG93bWFwRGF0YVByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQVlBLE9BQU8sd0JBQXdCLE1BQU0sNEJBQTRCLENBQUM7QUFDbEUsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQ3RDLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUUxQyxNQUFNLE9BQU8sR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBeUI1QixNQUFNLENBQUMsT0FBTyxPQUFPLHlCQUF5QjtJQU81QyxZQUFZLEtBQThCO1FBQ3hDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSx3QkFBd0IsQ0FBQztZQUNoRCxlQUFlLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQVc7WUFDdkUsYUFBYSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFXO1lBQ25FLGdCQUFnQixFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFXO1lBQ3JFLG9DQUFvQztZQUNwQyxtQkFBbUIsRUFBRSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUM7Z0JBQ2pDLFFBQVEsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQVc7Z0JBQy9DLFFBQVEsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQVc7YUFDaEQ7WUFDRCxlQUFlLEVBQUUsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUM1QixRQUFRLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFXO1lBQ2xELGFBQWEsRUFBRSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQzFCLFFBQVEsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQVc7U0FDakQsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFlBQVksR0FBRyxTQUFTLENBQUM7SUFDaEMsQ0FBQztJQUVLLFFBQVE7O1lBQ1osTUFBTSxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUM7Z0JBQzNDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDO2dCQUN2QyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQzthQUNwQyxDQUFDLENBQUM7WUFDSCxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBQyxDQUFDLENBQUM7UUFDOUQsQ0FBQztLQUFBO0lBRUQsWUFBWSxDQUFDLFNBQXlEO1FBQ3BFLE1BQU0sSUFBSSxLQUFLLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVLLGNBQWMsQ0FDbEIsV0FBa0Q7O1lBRWxELE1BQU0sSUFBSSxLQUFLLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDbkMsQ0FBQztLQUFBO0lBRUssZUFBZSxDQUFDLFlBQTBCOztZQUM5QyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3pELENBQUM7S0FBQTtJQUVLLGNBQWMsQ0FDbEIsR0FBVzs7WUFFWCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2hELENBQUM7S0FBQTtJQUVLLGtCQUFrQixDQUN0QixHQUFXOztZQUVYLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNwRCxDQUFDO0tBQUE7SUFFSyxhQUFhOztZQUNqQixPQUFPLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUNsRCxDQUFDO0tBQUE7SUFFSyxlQUFlLENBQ25CLEVBQVU7O1lBRVYsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNoRCxDQUFDO0tBQUE7SUFFSyxvQkFBb0IsQ0FBQyxFQUFVOztZQUNuQyxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsb0JBQW9CLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDckQsQ0FBQztLQUFBO0lBRUQsdUJBQXVCLENBQ3JCLElBQXNCO1FBRXRCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMxRCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgRmxvd21hcERhdGFQcm92aWRlciBmcm9tICcuL0Zsb3dtYXBEYXRhUHJvdmlkZXInO1xuaW1wb3J0IHtcbiAgQ2x1c3RlcixcbiAgQ2x1c3Rlck5vZGUsXG4gIEZsb3dtYXBEYXRhLFxuICBGbG93bWFwRGF0YUFjY2Vzc29ycyxcbiAgTGF5ZXJzRGF0YSxcbiAgTG9jYXRpb25Ub3RhbHMsXG4gIFZpZXdwb3J0UHJvcHMsXG59IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7Rmxvd21hcFN0YXRlfSBmcm9tICcuLi9GbG93bWFwU3RhdGUnO1xuaW1wb3J0IHtBZ2dyZWdhdGVGbG93fSBmcm9tICcuLic7XG5pbXBvcnQgTG9jYWxGbG93bWFwRGF0YVByb3ZpZGVyIGZyb20gJy4vTG9jYWxGbG93bWFwRGF0YVByb3ZpZGVyJztcbmltcG9ydCB7bG9hZH0gZnJvbSAnQGxvYWRlcnMuZ2wvY29yZSc7XG5pbXBvcnQge0NTVkxvYWRlcn0gZnJvbSAnQGxvYWRlcnMuZ2wvY3N2JztcblxuY29uc3QgTE9BREVSUyA9IFtDU1ZMb2FkZXJdO1xuXG5leHBvcnQgdHlwZSBXb3JrZXJEYXRhUHJvdmlkZXJQcm9wcyA9IHtcbiAgZmxvd3M6IHtcbiAgICB1cmw6IHN0cmluZztcbiAgICBjb2x1bW5zOiB7XG4gICAgICBvcmlnaW5JZDogc3RyaW5nO1xuICAgICAgZGVzdElkOiBzdHJpbmc7XG4gICAgICBjb3VudDogc3RyaW5nO1xuICAgIH07XG4gIH07XG4gIGxvY2F0aW9uczoge1xuICAgIHVybDogc3RyaW5nO1xuICAgIGNvbHVtbnM6IHtcbiAgICAgIGlkOiBzdHJpbmc7XG4gICAgICBuYW1lOiBzdHJpbmc7XG4gICAgICBsYXQ6IHN0cmluZztcbiAgICAgIGxvbjogc3RyaW5nO1xuICAgIH07XG4gIH07XG59O1xuXG5leHBvcnQgdHlwZSBMb2NhdGlvbkRhdHVtID0gUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG5leHBvcnQgdHlwZSBGbG93RGF0dW0gPSBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgV29ya2VyRmxvd21hcERhdGFQcm92aWRlclxuICBpbXBsZW1lbnRzIEZsb3dtYXBEYXRhUHJvdmlkZXI8TG9jYXRpb25EYXR1bSwgRmxvd0RhdHVtPlxue1xuICBwcml2YXRlIHByb3BzOiBXb3JrZXJEYXRhUHJvdmlkZXJQcm9wcztcbiAgcHJpdmF0ZSBsb2NhbFByb3ZpZGVyOiBMb2NhbEZsb3dtYXBEYXRhUHJvdmlkZXI8TG9jYXRpb25EYXR1bSwgRmxvd0RhdHVtPjtcbiAgcHJpdmF0ZSBmbG93bWFwU3RhdGU6IEZsb3dtYXBTdGF0ZSB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3Rvcihwcm9wczogV29ya2VyRGF0YVByb3ZpZGVyUHJvcHMpIHtcbiAgICB0aGlzLnByb3BzID0gcHJvcHM7XG4gICAgdGhpcy5sb2NhbFByb3ZpZGVyID0gbmV3IExvY2FsRmxvd21hcERhdGFQcm92aWRlcih7XG4gICAgICBnZXRGbG93T3JpZ2luSWQ6IChmbG93KSA9PiBmbG93W3Byb3BzLmZsb3dzLmNvbHVtbnMub3JpZ2luSWRdIGFzIHN0cmluZyxcbiAgICAgIGdldEZsb3dEZXN0SWQ6IChmbG93KSA9PiBmbG93W3Byb3BzLmZsb3dzLmNvbHVtbnMuZGVzdElkXSBhcyBzdHJpbmcsXG4gICAgICBnZXRGbG93TWFnbml0dWRlOiAoZmxvdykgPT4gZmxvd1twcm9wcy5mbG93cy5jb2x1bW5zLmNvdW50XSBhcyBudW1iZXIsXG4gICAgICAvLyBnZXRGbG93VGltZTogKGZsb3cpID0+IGZsb3cudGltZSxcbiAgICAgIGdldExvY2F0aW9uQ2VudHJvaWQ6IChsb2NhdGlvbikgPT4gW1xuICAgICAgICBsb2NhdGlvbltwcm9wcy5sb2NhdGlvbnMuY29sdW1ucy5sb25dIGFzIG51bWJlcixcbiAgICAgICAgbG9jYXRpb25bcHJvcHMubG9jYXRpb25zLmNvbHVtbnMubGF0XSBhcyBudW1iZXIsXG4gICAgICBdLFxuICAgICAgZ2V0TG9jYXRpb25OYW1lOiAobG9jYXRpb24pID0+XG4gICAgICAgIGxvY2F0aW9uW3Byb3BzLmxvY2F0aW9ucy5jb2x1bW5zLm5hbWVdIGFzIHN0cmluZyxcbiAgICAgIGdldExvY2F0aW9uSWQ6IChsb2NhdGlvbikgPT5cbiAgICAgICAgbG9jYXRpb25bcHJvcHMubG9jYXRpb25zLmNvbHVtbnMuaWRdIGFzIHN0cmluZyxcbiAgICB9KTtcbiAgICB0aGlzLmZsb3dtYXBTdGF0ZSA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIGFzeW5jIGxvYWREYXRhKCkge1xuICAgIGNvbnN0IFtsb2NhdGlvbnMsIGZsb3dzXSA9IGF3YWl0IFByb21pc2UuYWxsKFtcbiAgICAgIGxvYWQodGhpcy5wcm9wcy5sb2NhdGlvbnMudXJsLCBMT0FERVJTKSxcbiAgICAgIGxvYWQodGhpcy5wcm9wcy5mbG93cy51cmwsIExPQURFUlMpLFxuICAgIF0pO1xuICAgIGF3YWl0IHRoaXMubG9jYWxQcm92aWRlci5zZXRGbG93bWFwRGF0YSh7bG9jYXRpb25zLCBmbG93c30pO1xuICB9XG5cbiAgc2V0QWNjZXNzb3JzKGFjY2Vzc29yczogRmxvd21hcERhdGFBY2Nlc3NvcnM8TG9jYXRpb25EYXR1bSwgRmxvd0RhdHVtPikge1xuICAgIHRocm93IG5ldyBFcnJvcignTm90IHN1cHBvcnRlZCcpO1xuICB9XG5cbiAgYXN5bmMgc2V0Rmxvd21hcERhdGEoXG4gICAgZmxvd21hcERhdGE6IEZsb3dtYXBEYXRhPExvY2F0aW9uRGF0dW0sIEZsb3dEYXR1bT4sXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRocm93IG5ldyBFcnJvcignTm90IHN1cHBvcnRlZCcpO1xuICB9XG5cbiAgYXN5bmMgc2V0Rmxvd21hcFN0YXRlKGZsb3dtYXBTdGF0ZTogRmxvd21hcFN0YXRlKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5sb2NhbFByb3ZpZGVyLnNldEZsb3dtYXBTdGF0ZShmbG93bWFwU3RhdGUpO1xuICB9XG5cbiAgYXN5bmMgZ2V0Rmxvd0J5SW5kZXgoXG4gICAgaWR4OiBudW1iZXIsXG4gICk6IFByb21pc2U8Rmxvd0RhdHVtIHwgQWdncmVnYXRlRmxvdyB8IHVuZGVmaW5lZD4ge1xuICAgIHJldHVybiB0aGlzLmxvY2FsUHJvdmlkZXIuZ2V0Rmxvd0J5SW5kZXgoaWR4KTtcbiAgfVxuXG4gIGFzeW5jIGdldExvY2F0aW9uQnlJbmRleChcbiAgICBpZHg6IG51bWJlcixcbiAgKTogUHJvbWlzZTxMb2NhdGlvbkRhdHVtIHwgQ2x1c3Rlck5vZGUgfCB1bmRlZmluZWQ+IHtcbiAgICByZXR1cm4gdGhpcy5sb2NhbFByb3ZpZGVyLmdldExvY2F0aW9uQnlJbmRleChpZHgpO1xuICB9XG5cbiAgYXN5bmMgZ2V0TGF5ZXJzRGF0YSgpOiBQcm9taXNlPExheWVyc0RhdGEgfCB1bmRlZmluZWQ+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5sb2NhbFByb3ZpZGVyLmdldExheWVyc0RhdGEoKTtcbiAgfVxuXG4gIGFzeW5jIGdldExvY2F0aW9uQnlJZChcbiAgICBpZDogc3RyaW5nLFxuICApOiBQcm9taXNlPExvY2F0aW9uRGF0dW0gfCBDbHVzdGVyIHwgdW5kZWZpbmVkPiB7XG4gICAgcmV0dXJuIHRoaXMubG9jYWxQcm92aWRlci5nZXRMb2NhdGlvbkJ5SWQoaWQpO1xuICB9XG5cbiAgYXN5bmMgZ2V0VG90YWxzRm9yTG9jYXRpb24oaWQ6IHN0cmluZyk6IFByb21pc2U8TG9jYXRpb25Ub3RhbHMgfCB1bmRlZmluZWQ+IHtcbiAgICByZXR1cm4gdGhpcy5sb2NhbFByb3ZpZGVyLmdldFRvdGFsc0ZvckxvY2F0aW9uKGlkKTtcbiAgfVxuXG4gIGdldFZpZXdwb3J0Rm9yTG9jYXRpb25zKFxuICAgIGRpbXM6IFtudW1iZXIsIG51bWJlcl0sXG4gICk6IFByb21pc2U8Vmlld3BvcnRQcm9wcyB8IHVuZGVmaW5lZD4ge1xuICAgIHJldHVybiB0aGlzLmxvY2FsUHJvdmlkZXIuZ2V0Vmlld3BvcnRGb3JMb2NhdGlvbnMoZGltcyk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=WorkerFlowmapDataProviderWorker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkerFlowmapDataProviderWorker.d.ts","sourceRoot":"","sources":["../../src/provider/WorkerFlowmapDataProviderWorker.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ import { expose } from 'comlink';
2
+ import WorkerFlowmapDataProvider from './WorkerFlowmapDataProvider';
3
+ expose(WorkerFlowmapDataProvider);
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiV29ya2VyRmxvd21hcERhdGFQcm92aWRlcldvcmtlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm92aWRlci9Xb3JrZXJGbG93bWFwRGF0YVByb3ZpZGVyV29ya2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxTQUFTLENBQUM7QUFDL0IsT0FBTyx5QkFBeUIsTUFBTSw2QkFBNkIsQ0FBQztBQUVwRSxNQUFNLENBQUMseUJBQXlCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7ZXhwb3NlfSBmcm9tICdjb21saW5rJztcbmltcG9ydCBXb3JrZXJGbG93bWFwRGF0YVByb3ZpZGVyIGZyb20gJy4vV29ya2VyRmxvd21hcERhdGFQcm92aWRlcic7XG5cbmV4cG9zZShXb3JrZXJGbG93bWFwRGF0YVByb3ZpZGVyKTtcbiJdfQ==
@@ -0,0 +1,3 @@
1
+ import WorkerFlowmapDataProvider, { WorkerDataProviderProps } from './WorkerFlowmapDataProvider';
2
+ export default function createWorkerDataProvider(props: WorkerDataProviderProps): Promise<WorkerFlowmapDataProvider>;
3
+ //# sourceMappingURL=createWorkerDataProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createWorkerDataProvider.d.ts","sourceRoot":"","sources":["../../src/provider/createWorkerDataProvider.ts"],"names":[],"mappings":"AACA,OAAO,yBAAyB,EAAE,EAChC,uBAAuB,EACxB,MAAM,6BAA6B,CAAC;AAErC,wBAA8B,wBAAwB,CACpD,KAAK,EAAE,uBAAuB,GAC7B,OAAO,CAAC,yBAAyB,CAAC,CAUpC"}
@@ -0,0 +1,21 @@
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 * as Comlink from 'comlink';
11
+ export default function createWorkerDataProvider(props) {
12
+ return __awaiter(this, void 0, void 0, function* () {
13
+ const worker = new Worker(new URL('./' + 'WorkerFlowmapDataProviderWorker', import.meta.url));
14
+ const WorkerFlowmapDataProvider = Comlink.wrap(worker);
15
+ // @ts-ignore
16
+ const provider = yield new WorkerFlowmapDataProvider(props);
17
+ yield provider.loadData();
18
+ return provider;
19
+ });
20
+ }
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlV29ya2VyRGF0YVByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Byb3ZpZGVyL2NyZWF0ZVdvcmtlckRhdGFQcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLFNBQVMsQ0FBQztBQUtuQyxNQUFNLENBQUMsT0FBTyxVQUFnQix3QkFBd0IsQ0FDcEQsS0FBOEI7O1FBRTlCLE1BQU0sTUFBTSxHQUFHLElBQUksTUFBTSxDQUN2QixJQUFJLEdBQUcsQ0FBQyxJQUFJLEdBQUcsaUNBQWlDLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FDbkUsQ0FBQztRQUNGLE1BQU0seUJBQXlCLEdBQzdCLE9BQU8sQ0FBQyxJQUFJLENBQTRCLE1BQU0sQ0FBQyxDQUFDO1FBQ2xELGFBQWE7UUFDYixNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUkseUJBQXlCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUQsTUFBTSxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDMUIsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgQ29tbGluayBmcm9tICdjb21saW5rJztcbmltcG9ydCBXb3JrZXJGbG93bWFwRGF0YVByb3ZpZGVyLCB7XG4gIFdvcmtlckRhdGFQcm92aWRlclByb3BzLFxufSBmcm9tICcuL1dvcmtlckZsb3dtYXBEYXRhUHJvdmlkZXInO1xuXG5leHBvcnQgZGVmYXVsdCBhc3luYyBmdW5jdGlvbiBjcmVhdGVXb3JrZXJEYXRhUHJvdmlkZXIoXG4gIHByb3BzOiBXb3JrZXJEYXRhUHJvdmlkZXJQcm9wcyxcbik6IFByb21pc2U8V29ya2VyRmxvd21hcERhdGFQcm92aWRlcj4ge1xuICBjb25zdCB3b3JrZXIgPSBuZXcgV29ya2VyKFxuICAgIG5ldyBVUkwoJy4vJyArICdXb3JrZXJGbG93bWFwRGF0YVByb3ZpZGVyV29ya2VyJywgaW1wb3J0Lm1ldGEudXJsKSxcbiAgKTtcbiAgY29uc3QgV29ya2VyRmxvd21hcERhdGFQcm92aWRlciA9XG4gICAgQ29tbGluay53cmFwPFdvcmtlckZsb3dtYXBEYXRhUHJvdmlkZXI+KHdvcmtlcik7XG4gIC8vIEB0cy1pZ25vcmVcbiAgY29uc3QgcHJvdmlkZXIgPSBhd2FpdCBuZXcgV29ya2VyRmxvd21hcERhdGFQcm92aWRlcihwcm9wcyk7XG4gIGF3YWl0IHByb3ZpZGVyLmxvYWREYXRhKCk7XG4gIHJldHVybiBwcm92aWRlcjtcbn1cbiJdfQ==
package/dist/types.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export declare type FlowMapData<L, F> = {
1
+ export declare type FlowmapData<L, F> = {
2
2
  locations: L[] | undefined;
3
3
  flows: F[] | undefined;
4
4
  };
@@ -24,7 +24,7 @@ export interface LocationAccessors<L> {
24
24
  getLocationCentroid: LocationAccessor<L, [number, number]>;
25
25
  getLocationClusterName?: (locationIds: string[]) => string;
26
26
  }
27
- export declare type FlowMapDataAccessors<L, F> = LocationAccessors<L> & FlowAccessors<F>;
27
+ export declare type FlowmapDataAccessors<L, F> = LocationAccessors<L> & FlowAccessors<F>;
28
28
  export interface LocationTotals {
29
29
  incomingCount: number;
30
30
  outgoingCount: number;
package/dist/types.js CHANGED
@@ -20,4 +20,4 @@ export var LocationFilterMode;
20
20
  LocationFilterMode["OUTGOING"] = "OUTGOING";
21
21
  LocationFilterMode["BETWEEN"] = "BETWEEN";
22
22
  })(LocationFilterMode || (LocationFilterMode = {}));
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBNkZBLE1BQU0sVUFBVSxTQUFTLENBQUMsQ0FBYztJQUN0QyxNQUFNLEVBQUMsUUFBUSxFQUFDLEdBQUcsQ0FBWSxDQUFDO0lBQ2hDLE9BQU8sUUFBUSxJQUFJLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0FBQ3pDLENBQUM7QUFFRCxNQUFNLFVBQVUscUJBQXFCLENBQUksQ0FBa0I7SUFDekQsTUFBTSxFQUFDLElBQUksRUFBQyxHQUFHLENBQWdCLENBQUM7SUFDaEMsT0FBTyxJQUFJLEtBQUssU0FBUyxDQUFDO0FBQzVCLENBQUM7QUFTRCxNQUFNLFVBQVUsZUFBZSxDQUM3QixJQUF5QjtJQUV6QixPQUFPLENBQ0wsSUFBSTtRQUNKLElBQUksQ0FBQyxNQUFNLEtBQUssU0FBUztRQUN6QixJQUFJLENBQUMsSUFBSSxLQUFLLFNBQVM7UUFDdkIsSUFBSSxDQUFDLEtBQUssS0FBSyxTQUFTO1FBQ3hCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FDaEMsQ0FBQztBQUNKLENBQUM7QUFPRCxNQUFNLENBQU4sSUFBWSxrQkFLWDtBQUxELFdBQVksa0JBQWtCO0lBQzVCLGlDQUFXLENBQUE7SUFDWCwyQ0FBcUIsQ0FBQTtJQUNyQiwyQ0FBcUIsQ0FBQTtJQUNyQix5Q0FBbUIsQ0FBQTtBQUNyQixDQUFDLEVBTFcsa0JBQWtCLEtBQWxCLGtCQUFrQixRQUs3QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIEZsb3dNYXBEYXRhPEwsIEY+ID0ge1xuICBsb2NhdGlvbnM6IExbXSB8IHVuZGVmaW5lZDtcbiAgZmxvd3M6IEZbXSB8IHVuZGVmaW5lZDtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmlld1N0YXRlIHtcbiAgbGF0aXR1ZGU6IG51bWJlcjtcbiAgbG9uZ2l0dWRlOiBudW1iZXI7XG4gIHpvb206IG51bWJlcjtcbiAgYmVhcmluZz86IG51bWJlcjtcbiAgcGl0Y2g/OiBudW1iZXI7XG4gIGFsdGl0dWRlPzogbnVtYmVyO1xufVxuXG5leHBvcnQgdHlwZSBGbG93QWNjZXNzb3I8RiwgVD4gPSAoZmxvdzogRikgPT4gVDsgLy8gb2JqZWN0SW5mbz86IEFjY2Vzc29yT2JqZWN0SW5mbyxcbmV4cG9ydCB0eXBlIExvY2F0aW9uQWNjZXNzb3I8TCwgVD4gPSAobG9jYXRpb246IEwpID0+IFQ7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmxvd0FjY2Vzc29yczxGPiB7XG4gIGdldEZsb3dPcmlnaW5JZDogRmxvd0FjY2Vzc29yPEYsIHN0cmluZz47XG4gIGdldEZsb3dEZXN0SWQ6IEZsb3dBY2Nlc3NvcjxGLCBzdHJpbmc+O1xuICBnZXRGbG93TWFnbml0dWRlOiBGbG93QWNjZXNzb3I8RiwgbnVtYmVyPjtcbiAgZ2V0Rmxvd1RpbWU/OiBGbG93QWNjZXNzb3I8RiwgRGF0ZT47IC8vIFRPRE86IHVzZSBudW1iZXIgaW5zdGVhZCBvZiBEYXRlXG4gIC8vIGdldEZsb3dDb2xvcj86IEZsb3dBY2Nlc3NvcjxzdHJpbmcgfCB1bmRlZmluZWQ+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExvY2F0aW9uQWNjZXNzb3JzPEw+IHtcbiAgZ2V0TG9jYXRpb25JZDogTG9jYXRpb25BY2Nlc3NvcjxMLCBzdHJpbmc+O1xuICBnZXRMb2NhdGlvbk5hbWU/OiBMb2NhdGlvbkFjY2Vzc29yPEwsIHN0cmluZz47XG4gIGdldExvY2F0aW9uQ2VudHJvaWQ6IExvY2F0aW9uQWNjZXNzb3I8TCwgW251bWJlciwgbnVtYmVyXT47XG4gIGdldExvY2F0aW9uQ2x1c3Rlck5hbWU/OiAobG9jYXRpb25JZHM6IHN0cmluZ1tdKSA9PiBzdHJpbmc7XG4gIC8vIGdldExvY2F0aW9uVG90YWxJbj86IExvY2F0aW9uQWNjZXNzb3I8bnVtYmVyPjtcbiAgLy8gZ2V0TG9jYXRpb25Ub3RhbE91dD86IExvY2F0aW9uQWNjZXNzb3I8bnVtYmVyPjtcbiAgLy8gZ2V0TG9jYXRpb25Ub3RhbEludGVybmFsPzogTG9jYXRpb25BY2Nlc3NvcjxudW1iZXI+O1xufVxuXG5leHBvcnQgdHlwZSBGbG93TWFwRGF0YUFjY2Vzc29yczxMLCBGPiA9IExvY2F0aW9uQWNjZXNzb3JzPEw+ICZcbiAgRmxvd0FjY2Vzc29yczxGPjtcblxuZXhwb3J0IGludGVyZmFjZSBMb2NhdGlvblRvdGFscyB7XG4gIGluY29taW5nQ291bnQ6IG51bWJlcjtcbiAgb3V0Z29pbmdDb3VudDogbnVtYmVyO1xuICBpbnRlcm5hbENvdW50OiBudW1iZXI7XG59XG5cbi8vIGV4cG9ydCBpbnRlcmZhY2UgTG9jYXRpb25zVG90YWxzIHtcbi8vICAgaW5jb21pbmc6IHtbaWQ6IHN0cmluZ106IG51bWJlcn07XG4vLyAgIG91dGdvaW5nOiB7W2lkOiBzdHJpbmddOiBudW1iZXJ9O1xuLy8gICBpbnRlcm5hbDoge1tpZDogc3RyaW5nXTogbnVtYmVyfTtcbi8vIH1cblxuZXhwb3J0IGludGVyZmFjZSBDb3VudEJ5VGltZSB7XG4gIHRpbWU6IERhdGU7XG4gIGNvdW50OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmlld3BvcnRQcm9wcyB7XG4gIHdpZHRoOiBudW1iZXI7XG4gIGhlaWdodDogbnVtYmVyO1xuICBsYXRpdHVkZTogbnVtYmVyO1xuICBsb25naXR1ZGU6IG51bWJlcjtcbiAgem9vbTogbnVtYmVyO1xuICBiZWFyaW5nOiBudW1iZXI7XG4gIHBpdGNoOiBudW1iZXI7XG4gIGFsdGl0dWRlPzogbnVtYmVyO1xuICBtYXhab29tPzogbnVtYmVyO1xuICBtaW5ab29tPzogbnVtYmVyO1xuICBtYXhQaXRjaD86IG51bWJlcjtcbiAgbWluUGl0Y2g/OiBudW1iZXI7XG4gIHRyYW5zaXRpb25EdXJhdGlvbj86IG51bWJlciB8ICdhdXRvJztcbiAgdHJhbnNpdGlvbkludGVycG9sYXRvcj86IGFueTtcbiAgdHJhbnNpdGlvbkludGVycnVwdGlvbj86IGFueTtcbiAgdHJhbnNpdGlvbkVhc2luZz86IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDbHVzdGVyTm9kZSB7XG4gIGlkOiBzdHJpbmc7XG4gIHpvb206IG51bWJlcjtcbiAgY2VudHJvaWQ6IFtudW1iZXIsIG51bWJlcl07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2x1c3RlckxldmVsIHtcbiAgem9vbTogbnVtYmVyO1xuICBub2RlczogQ2x1c3Rlck5vZGVbXTtcbn1cblxuZXhwb3J0IHR5cGUgQ2x1c3RlckxldmVscyA9IENsdXN0ZXJMZXZlbFtdO1xuXG4vLyBub24tbGVhZiBjbHVzdGVyIG5vZGVcbmV4cG9ydCBpbnRlcmZhY2UgQ2x1c3RlciBleHRlbmRzIENsdXN0ZXJOb2RlIHtcbiAgbmFtZT86IHN0cmluZztcbiAgY2hpbGRyZW46IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNDbHVzdGVyKGM6IENsdXN0ZXJOb2RlKTogYyBpcyBDbHVzdGVyIHtcbiAgY29uc3Qge2NoaWxkcmVufSA9IGMgYXMgQ2x1c3RlcjtcbiAgcmV0dXJuIGNoaWxkcmVuICYmIGNoaWxkcmVuLmxlbmd0aCA+IDA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0xvY2F0aW9uQ2x1c3Rlck5vZGU8TD4obDogTCB8IENsdXN0ZXJOb2RlKTogbCBpcyBDbHVzdGVyTm9kZSB7XG4gIGNvbnN0IHt6b29tfSA9IGwgYXMgQ2x1c3Rlck5vZGU7XG4gIHJldHVybiB6b29tICE9PSB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWdncmVnYXRlRmxvdyB7XG4gIG9yaWdpbjogc3RyaW5nO1xuICBkZXN0OiBzdHJpbmc7XG4gIGNvdW50OiBudW1iZXI7XG4gIGFnZ3JlZ2F0ZTogdHJ1ZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQWdncmVnYXRlRmxvdyhcbiAgZmxvdzogUmVjb3JkPHN0cmluZywgYW55Pixcbik6IGZsb3cgaXMgQWdncmVnYXRlRmxvdyB7XG4gIHJldHVybiAoXG4gICAgZmxvdyAmJlxuICAgIGZsb3cub3JpZ2luICE9PSB1bmRlZmluZWQgJiZcbiAgICBmbG93LmRlc3QgIT09IHVuZGVmaW5lZCAmJlxuICAgIGZsb3cuY291bnQgIT09IHVuZGVmaW5lZCAmJlxuICAgIChmbG93LmFnZ3JlZ2F0ZSA/IHRydWUgOiBmYWxzZSlcbiAgKTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGbG93Q291bnRzTWFwUmVkdWNlPEYsIFQgPSBhbnk+IHtcbiAgbWFwOiAoZmxvdzogRikgPT4gVDtcbiAgcmVkdWNlOiAoYWNjdW11bGF0ZWQ6IFQsIHZhbDogVCkgPT4gVDtcbn1cblxuZXhwb3J0IGVudW0gTG9jYXRpb25GaWx0ZXJNb2RlIHtcbiAgQUxMID0gJ0FMTCcsXG4gIElOQ09NSU5HID0gJ0lOQ09NSU5HJyxcbiAgT1VUR09JTkcgPSAnT1VUR09JTkcnLFxuICBCRVRXRUVOID0gJ0JFVFdFRU4nLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZsb3dDaXJjbGVzTGF5ZXJBdHRyaWJ1dGVzIHtcbiAgbGVuZ3RoOiBudW1iZXI7XG4gIGF0dHJpYnV0ZXM6IHtcbiAgICBnZXRQb3NpdGlvbjogTGF5ZXJzRGF0YUF0dHJWYWx1ZXM8RmxvYXQzMkFycmF5PjtcbiAgICBnZXRDb2xvcjogTGF5ZXJzRGF0YUF0dHJWYWx1ZXM8VWludDhBcnJheT47XG4gICAgZ2V0SW5SYWRpdXM6IExheWVyc0RhdGFBdHRyVmFsdWVzPEZsb2F0MzJBcnJheT47XG4gICAgZ2V0T3V0UmFkaXVzOiBMYXllcnNEYXRhQXR0clZhbHVlczxGbG9hdDMyQXJyYXk+O1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZsb3dMaW5lc0xheWVyQXR0cmlidXRlcyB7XG4gIGxlbmd0aDogbnVtYmVyO1xuICBhdHRyaWJ1dGVzOiB7XG4gICAgZ2V0U291cmNlUG9zaXRpb246IExheWVyc0RhdGFBdHRyVmFsdWVzPEZsb2F0MzJBcnJheT47XG4gICAgZ2V0VGFyZ2V0UG9zaXRpb246IExheWVyc0RhdGFBdHRyVmFsdWVzPEZsb2F0MzJBcnJheT47XG4gICAgZ2V0VGhpY2tuZXNzOiBMYXllcnNEYXRhQXR0clZhbHVlczxGbG9hdDMyQXJyYXk+O1xuICAgIGdldENvbG9yOiBMYXllcnNEYXRhQXR0clZhbHVlczxVaW50OEFycmF5PjtcbiAgICBnZXRFbmRwb2ludE9mZnNldHM6IExheWVyc0RhdGFBdHRyVmFsdWVzPEZsb2F0MzJBcnJheT47XG4gICAgZ2V0U3RhZ2dlcmluZz86IExheWVyc0RhdGFBdHRyVmFsdWVzPEZsb2F0MzJBcnJheT47XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGF5ZXJzRGF0YSB7XG4gIGNpcmNsZUF0dHJpYnV0ZXM6IEZsb3dDaXJjbGVzTGF5ZXJBdHRyaWJ1dGVzO1xuICBsaW5lQXR0cmlidXRlczogRmxvd0xpbmVzTGF5ZXJBdHRyaWJ1dGVzO1xufVxuXG5leHBvcnQgdHlwZSBMYXllcnNEYXRhQXR0clZhbHVlczxUPiA9IHt2YWx1ZTogVDsgc2l6ZTogbnVtYmVyfTtcbiJdfQ==
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBNkZBLE1BQU0sVUFBVSxTQUFTLENBQUMsQ0FBYztJQUN0QyxNQUFNLEVBQUMsUUFBUSxFQUFDLEdBQUcsQ0FBWSxDQUFDO0lBQ2hDLE9BQU8sUUFBUSxJQUFJLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0FBQ3pDLENBQUM7QUFFRCxNQUFNLFVBQVUscUJBQXFCLENBQUksQ0FBa0I7SUFDekQsTUFBTSxFQUFDLElBQUksRUFBQyxHQUFHLENBQWdCLENBQUM7SUFDaEMsT0FBTyxJQUFJLEtBQUssU0FBUyxDQUFDO0FBQzVCLENBQUM7QUFTRCxNQUFNLFVBQVUsZUFBZSxDQUM3QixJQUF5QjtJQUV6QixPQUFPLENBQ0wsSUFBSTtRQUNKLElBQUksQ0FBQyxNQUFNLEtBQUssU0FBUztRQUN6QixJQUFJLENBQUMsSUFBSSxLQUFLLFNBQVM7UUFDdkIsSUFBSSxDQUFDLEtBQUssS0FBSyxTQUFTO1FBQ3hCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FDaEMsQ0FBQztBQUNKLENBQUM7QUFPRCxNQUFNLENBQU4sSUFBWSxrQkFLWDtBQUxELFdBQVksa0JBQWtCO0lBQzVCLGlDQUFXLENBQUE7SUFDWCwyQ0FBcUIsQ0FBQTtJQUNyQiwyQ0FBcUIsQ0FBQTtJQUNyQix5Q0FBbUIsQ0FBQTtBQUNyQixDQUFDLEVBTFcsa0JBQWtCLEtBQWxCLGtCQUFrQixRQUs3QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIEZsb3dtYXBEYXRhPEwsIEY+ID0ge1xuICBsb2NhdGlvbnM6IExbXSB8IHVuZGVmaW5lZDtcbiAgZmxvd3M6IEZbXSB8IHVuZGVmaW5lZDtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmlld1N0YXRlIHtcbiAgbGF0aXR1ZGU6IG51bWJlcjtcbiAgbG9uZ2l0dWRlOiBudW1iZXI7XG4gIHpvb206IG51bWJlcjtcbiAgYmVhcmluZz86IG51bWJlcjtcbiAgcGl0Y2g/OiBudW1iZXI7XG4gIGFsdGl0dWRlPzogbnVtYmVyO1xufVxuXG5leHBvcnQgdHlwZSBGbG93QWNjZXNzb3I8RiwgVD4gPSAoZmxvdzogRikgPT4gVDsgLy8gb2JqZWN0SW5mbz86IEFjY2Vzc29yT2JqZWN0SW5mbyxcbmV4cG9ydCB0eXBlIExvY2F0aW9uQWNjZXNzb3I8TCwgVD4gPSAobG9jYXRpb246IEwpID0+IFQ7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmxvd0FjY2Vzc29yczxGPiB7XG4gIGdldEZsb3dPcmlnaW5JZDogRmxvd0FjY2Vzc29yPEYsIHN0cmluZz47XG4gIGdldEZsb3dEZXN0SWQ6IEZsb3dBY2Nlc3NvcjxGLCBzdHJpbmc+O1xuICBnZXRGbG93TWFnbml0dWRlOiBGbG93QWNjZXNzb3I8RiwgbnVtYmVyPjtcbiAgZ2V0Rmxvd1RpbWU/OiBGbG93QWNjZXNzb3I8RiwgRGF0ZT47IC8vIFRPRE86IHVzZSBudW1iZXIgaW5zdGVhZCBvZiBEYXRlXG4gIC8vIGdldEZsb3dDb2xvcj86IEZsb3dBY2Nlc3NvcjxzdHJpbmcgfCB1bmRlZmluZWQ+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExvY2F0aW9uQWNjZXNzb3JzPEw+IHtcbiAgZ2V0TG9jYXRpb25JZDogTG9jYXRpb25BY2Nlc3NvcjxMLCBzdHJpbmc+O1xuICBnZXRMb2NhdGlvbk5hbWU/OiBMb2NhdGlvbkFjY2Vzc29yPEwsIHN0cmluZz47XG4gIGdldExvY2F0aW9uQ2VudHJvaWQ6IExvY2F0aW9uQWNjZXNzb3I8TCwgW251bWJlciwgbnVtYmVyXT47XG4gIGdldExvY2F0aW9uQ2x1c3Rlck5hbWU/OiAobG9jYXRpb25JZHM6IHN0cmluZ1tdKSA9PiBzdHJpbmc7XG4gIC8vIGdldExvY2F0aW9uVG90YWxJbj86IExvY2F0aW9uQWNjZXNzb3I8bnVtYmVyPjtcbiAgLy8gZ2V0TG9jYXRpb25Ub3RhbE91dD86IExvY2F0aW9uQWNjZXNzb3I8bnVtYmVyPjtcbiAgLy8gZ2V0TG9jYXRpb25Ub3RhbEludGVybmFsPzogTG9jYXRpb25BY2Nlc3NvcjxudW1iZXI+O1xufVxuXG5leHBvcnQgdHlwZSBGbG93bWFwRGF0YUFjY2Vzc29yczxMLCBGPiA9IExvY2F0aW9uQWNjZXNzb3JzPEw+ICZcbiAgRmxvd0FjY2Vzc29yczxGPjtcblxuZXhwb3J0IGludGVyZmFjZSBMb2NhdGlvblRvdGFscyB7XG4gIGluY29taW5nQ291bnQ6IG51bWJlcjtcbiAgb3V0Z29pbmdDb3VudDogbnVtYmVyO1xuICBpbnRlcm5hbENvdW50OiBudW1iZXI7XG59XG5cbi8vIGV4cG9ydCBpbnRlcmZhY2UgTG9jYXRpb25zVG90YWxzIHtcbi8vICAgaW5jb21pbmc6IHtbaWQ6IHN0cmluZ106IG51bWJlcn07XG4vLyAgIG91dGdvaW5nOiB7W2lkOiBzdHJpbmddOiBudW1iZXJ9O1xuLy8gICBpbnRlcm5hbDoge1tpZDogc3RyaW5nXTogbnVtYmVyfTtcbi8vIH1cblxuZXhwb3J0IGludGVyZmFjZSBDb3VudEJ5VGltZSB7XG4gIHRpbWU6IERhdGU7XG4gIGNvdW50OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmlld3BvcnRQcm9wcyB7XG4gIHdpZHRoOiBudW1iZXI7XG4gIGhlaWdodDogbnVtYmVyO1xuICBsYXRpdHVkZTogbnVtYmVyO1xuICBsb25naXR1ZGU6IG51bWJlcjtcbiAgem9vbTogbnVtYmVyO1xuICBiZWFyaW5nOiBudW1iZXI7XG4gIHBpdGNoOiBudW1iZXI7XG4gIGFsdGl0dWRlPzogbnVtYmVyO1xuICBtYXhab29tPzogbnVtYmVyO1xuICBtaW5ab29tPzogbnVtYmVyO1xuICBtYXhQaXRjaD86IG51bWJlcjtcbiAgbWluUGl0Y2g/OiBudW1iZXI7XG4gIHRyYW5zaXRpb25EdXJhdGlvbj86IG51bWJlciB8ICdhdXRvJztcbiAgdHJhbnNpdGlvbkludGVycG9sYXRvcj86IGFueTtcbiAgdHJhbnNpdGlvbkludGVycnVwdGlvbj86IGFueTtcbiAgdHJhbnNpdGlvbkVhc2luZz86IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDbHVzdGVyTm9kZSB7XG4gIGlkOiBzdHJpbmc7XG4gIHpvb206IG51bWJlcjtcbiAgY2VudHJvaWQ6IFtudW1iZXIsIG51bWJlcl07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2x1c3RlckxldmVsIHtcbiAgem9vbTogbnVtYmVyO1xuICBub2RlczogQ2x1c3Rlck5vZGVbXTtcbn1cblxuZXhwb3J0IHR5cGUgQ2x1c3RlckxldmVscyA9IENsdXN0ZXJMZXZlbFtdO1xuXG4vLyBub24tbGVhZiBjbHVzdGVyIG5vZGVcbmV4cG9ydCBpbnRlcmZhY2UgQ2x1c3RlciBleHRlbmRzIENsdXN0ZXJOb2RlIHtcbiAgbmFtZT86IHN0cmluZztcbiAgY2hpbGRyZW46IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNDbHVzdGVyKGM6IENsdXN0ZXJOb2RlKTogYyBpcyBDbHVzdGVyIHtcbiAgY29uc3Qge2NoaWxkcmVufSA9IGMgYXMgQ2x1c3RlcjtcbiAgcmV0dXJuIGNoaWxkcmVuICYmIGNoaWxkcmVuLmxlbmd0aCA+IDA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0xvY2F0aW9uQ2x1c3Rlck5vZGU8TD4obDogTCB8IENsdXN0ZXJOb2RlKTogbCBpcyBDbHVzdGVyTm9kZSB7XG4gIGNvbnN0IHt6b29tfSA9IGwgYXMgQ2x1c3Rlck5vZGU7XG4gIHJldHVybiB6b29tICE9PSB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWdncmVnYXRlRmxvdyB7XG4gIG9yaWdpbjogc3RyaW5nO1xuICBkZXN0OiBzdHJpbmc7XG4gIGNvdW50OiBudW1iZXI7XG4gIGFnZ3JlZ2F0ZTogdHJ1ZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQWdncmVnYXRlRmxvdyhcbiAgZmxvdzogUmVjb3JkPHN0cmluZywgYW55Pixcbik6IGZsb3cgaXMgQWdncmVnYXRlRmxvdyB7XG4gIHJldHVybiAoXG4gICAgZmxvdyAmJlxuICAgIGZsb3cub3JpZ2luICE9PSB1bmRlZmluZWQgJiZcbiAgICBmbG93LmRlc3QgIT09IHVuZGVmaW5lZCAmJlxuICAgIGZsb3cuY291bnQgIT09IHVuZGVmaW5lZCAmJlxuICAgIChmbG93LmFnZ3JlZ2F0ZSA/IHRydWUgOiBmYWxzZSlcbiAgKTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGbG93Q291bnRzTWFwUmVkdWNlPEYsIFQgPSBhbnk+IHtcbiAgbWFwOiAoZmxvdzogRikgPT4gVDtcbiAgcmVkdWNlOiAoYWNjdW11bGF0ZWQ6IFQsIHZhbDogVCkgPT4gVDtcbn1cblxuZXhwb3J0IGVudW0gTG9jYXRpb25GaWx0ZXJNb2RlIHtcbiAgQUxMID0gJ0FMTCcsXG4gIElOQ09NSU5HID0gJ0lOQ09NSU5HJyxcbiAgT1VUR09JTkcgPSAnT1VUR09JTkcnLFxuICBCRVRXRUVOID0gJ0JFVFdFRU4nLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZsb3dDaXJjbGVzTGF5ZXJBdHRyaWJ1dGVzIHtcbiAgbGVuZ3RoOiBudW1iZXI7XG4gIGF0dHJpYnV0ZXM6IHtcbiAgICBnZXRQb3NpdGlvbjogTGF5ZXJzRGF0YUF0dHJWYWx1ZXM8RmxvYXQzMkFycmF5PjtcbiAgICBnZXRDb2xvcjogTGF5ZXJzRGF0YUF0dHJWYWx1ZXM8VWludDhBcnJheT47XG4gICAgZ2V0SW5SYWRpdXM6IExheWVyc0RhdGFBdHRyVmFsdWVzPEZsb2F0MzJBcnJheT47XG4gICAgZ2V0T3V0UmFkaXVzOiBMYXllcnNEYXRhQXR0clZhbHVlczxGbG9hdDMyQXJyYXk+O1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZsb3dMaW5lc0xheWVyQXR0cmlidXRlcyB7XG4gIGxlbmd0aDogbnVtYmVyO1xuICBhdHRyaWJ1dGVzOiB7XG4gICAgZ2V0U291cmNlUG9zaXRpb246IExheWVyc0RhdGFBdHRyVmFsdWVzPEZsb2F0MzJBcnJheT47XG4gICAgZ2V0VGFyZ2V0UG9zaXRpb246IExheWVyc0RhdGFBdHRyVmFsdWVzPEZsb2F0MzJBcnJheT47XG4gICAgZ2V0VGhpY2tuZXNzOiBMYXllcnNEYXRhQXR0clZhbHVlczxGbG9hdDMyQXJyYXk+O1xuICAgIGdldENvbG9yOiBMYXllcnNEYXRhQXR0clZhbHVlczxVaW50OEFycmF5PjtcbiAgICBnZXRFbmRwb2ludE9mZnNldHM6IExheWVyc0RhdGFBdHRyVmFsdWVzPEZsb2F0MzJBcnJheT47XG4gICAgZ2V0U3RhZ2dlcmluZz86IExheWVyc0RhdGFBdHRyVmFsdWVzPEZsb2F0MzJBcnJheT47XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGF5ZXJzRGF0YSB7XG4gIGNpcmNsZUF0dHJpYnV0ZXM6IEZsb3dDaXJjbGVzTGF5ZXJBdHRyaWJ1dGVzO1xuICBsaW5lQXR0cmlidXRlczogRmxvd0xpbmVzTGF5ZXJBdHRyaWJ1dGVzO1xufVxuXG5leHBvcnQgdHlwZSBMYXllcnNEYXRhQXR0clZhbHVlczxUPiA9IHt2YWx1ZTogVDsgc2l6ZTogbnVtYmVyfTtcbiJdfQ==
package/dist/util.d.ts CHANGED
@@ -1,5 +1,4 @@
1
1
  import { defaultMemoize } from 'reselect';
2
- export declare function flatMap<S, T>(xs: S[], f: (item: S) => T | T[]): T[];
3
2
  export declare const createDebugSelector: import("reselect").CreateSelectorFunction<(...args: unknown[]) => unknown, typeof defaultMemoize, [equalityCheckOrOptions?: import("reselect").EqualityFn | import("reselect").DefaultMemoizeOptions | undefined], {
4
3
  clearCache: () => void;
5
4
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,cAAc,EAAC,MAAM,UAAU,CAAC;AAE/D,wBAAgB,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,CAEnE;AAED,eAAO,MAAM,mBAAmB;;EAQ9B,CAAC"}
1
+ {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,cAAc,EAAC,MAAM,UAAU,CAAC;AAE/D,eAAO,MAAM,mBAAmB;;EAQ9B,CAAC"}
package/dist/util.js CHANGED
@@ -1,7 +1,4 @@
1
1
  import { createSelectorCreator, defaultMemoize } from 'reselect';
2
- export function flatMap(xs, f) {
3
- return xs.reduce((acc, x) => acc.concat(f(x)), []);
4
- }
5
2
  export const createDebugSelector = createSelectorCreator(defaultMemoize, {
6
3
  equalityCheck: (previousVal, currentVal) => {
7
4
  const rv = currentVal === previousVal;
@@ -11,4 +8,4 @@ export const createDebugSelector = createSelectorCreator(defaultMemoize, {
11
8
  return rv;
12
9
  },
13
10
  });
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy91dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxxQkFBcUIsRUFBRSxjQUFjLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFFL0QsTUFBTSxVQUFVLE9BQU8sQ0FBTyxFQUFPLEVBQUUsQ0FBdUI7SUFDNUQsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBUSxFQUFFLENBQUksRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUM3RCxDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcscUJBQXFCLENBQUMsY0FBYyxFQUFFO0lBQ3ZFLGFBQWEsRUFBRSxDQUFDLFdBQWdCLEVBQUUsVUFBZSxFQUFFLEVBQUU7UUFDbkQsTUFBTSxFQUFFLEdBQUcsVUFBVSxLQUFLLFdBQVcsQ0FBQztRQUN0QyxJQUFJLENBQUMsRUFBRSxFQUFFO1lBQ1AsT0FBTyxDQUFDLEdBQUcsQ0FBQyw4QkFBOEIsRUFBRSxVQUFVLENBQUMsQ0FBQztTQUN6RDtRQUNELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztDQUNGLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Y3JlYXRlU2VsZWN0b3JDcmVhdG9yLCBkZWZhdWx0TWVtb2l6ZX0gZnJvbSAncmVzZWxlY3QnO1xuXG5leHBvcnQgZnVuY3Rpb24gZmxhdE1hcDxTLCBUPih4czogU1tdLCBmOiAoaXRlbTogUykgPT4gVCB8IFRbXSk6IFRbXSB7XG4gIHJldHVybiB4cy5yZWR1Y2UoKGFjYzogVFtdLCB4OiBTKSA9PiBhY2MuY29uY2F0KGYoeCkpLCBbXSk7XG59XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVEZWJ1Z1NlbGVjdG9yID0gY3JlYXRlU2VsZWN0b3JDcmVhdG9yKGRlZmF1bHRNZW1vaXplLCB7XG4gIGVxdWFsaXR5Q2hlY2s6IChwcmV2aW91c1ZhbDogYW55LCBjdXJyZW50VmFsOiBhbnkpID0+IHtcbiAgICBjb25zdCBydiA9IGN1cnJlbnRWYWwgPT09IHByZXZpb3VzVmFsO1xuICAgIGlmICghcnYpIHtcbiAgICAgIGNvbnNvbGUubG9nKCdTZWxlY3RvciBwYXJhbSB2YWx1ZSBjaGFuZ2VkJywgY3VycmVudFZhbCk7XG4gICAgfVxuICAgIHJldHVybiBydjtcbiAgfSxcbn0pO1xuIl19
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy91dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxxQkFBcUIsRUFBRSxjQUFjLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFFL0QsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcscUJBQXFCLENBQUMsY0FBYyxFQUFFO0lBQ3ZFLGFBQWEsRUFBRSxDQUFDLFdBQWdCLEVBQUUsVUFBZSxFQUFFLEVBQUU7UUFDbkQsTUFBTSxFQUFFLEdBQUcsVUFBVSxLQUFLLFdBQVcsQ0FBQztRQUN0QyxJQUFJLENBQUMsRUFBRSxFQUFFO1lBQ1AsT0FBTyxDQUFDLEdBQUcsQ0FBQyw4QkFBOEIsRUFBRSxVQUFVLENBQUMsQ0FBQztTQUN6RDtRQUNELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztDQUNGLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Y3JlYXRlU2VsZWN0b3JDcmVhdG9yLCBkZWZhdWx0TWVtb2l6ZX0gZnJvbSAncmVzZWxlY3QnO1xuXG5leHBvcnQgY29uc3QgY3JlYXRlRGVidWdTZWxlY3RvciA9IGNyZWF0ZVNlbGVjdG9yQ3JlYXRvcihkZWZhdWx0TWVtb2l6ZSwge1xuICBlcXVhbGl0eUNoZWNrOiAocHJldmlvdXNWYWw6IGFueSwgY3VycmVudFZhbDogYW55KSA9PiB7XG4gICAgY29uc3QgcnYgPSBjdXJyZW50VmFsID09PSBwcmV2aW91c1ZhbDtcbiAgICBpZiAoIXJ2KSB7XG4gICAgICBjb25zb2xlLmxvZygnU2VsZWN0b3IgcGFyYW0gdmFsdWUgY2hhbmdlZCcsIGN1cnJlbnRWYWwpO1xuICAgIH1cbiAgICByZXR1cm4gcnY7XG4gIH0sXG59KTtcbiJdfQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flowmap.gl/data",
3
- "version": "8.0.0-alpha.2",
3
+ "version": "8.0.0-alpha.6",
4
4
  "main": "dist/index.js",
5
5
  "module": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -14,6 +14,7 @@
14
14
  },
15
15
  "dependencies": {
16
16
  "@mapbox/geo-viewport": "^0.5.0",
17
+ "comlink": "^4.3.1",
17
18
  "d3-array": "^3.0.2",
18
19
  "d3-collection": "^1.0.7",
19
20
  "d3-color": "^3.0.1",
@@ -42,8 +43,12 @@
42
43
  "@types/mapbox__geo-viewport": "^0.4.1",
43
44
  "@types/seedrandom": "^3.0.1"
44
45
  },
45
- "gitHead": "ead78f11ce775008073869b70bb61dc671d1fd24",
46
+ "gitHead": "3d9b5831461c4df182f289892dc7af90718d9fbc",
46
47
  "publishConfig": {
47
48
  "access": "public"
49
+ },
50
+ "peerDependencies": {
51
+ "@loaders.gl/core": "^3.1.4",
52
+ "@loaders.gl/csv": "^3.1.4"
48
53
  }
49
54
  }
@@ -1,23 +1,23 @@
1
1
  import {
2
2
  AggregateFlow,
3
3
  ClusterNode,
4
- FlowMapDataAccessors,
4
+ FlowmapDataAccessors,
5
5
  isAggregateFlow,
6
6
  isCluster,
7
7
  isLocationClusterNode,
8
8
  } from './types';
9
9
 
10
- export default class FlowMapAggregateAccessors<L, F> {
11
- private accessors: FlowMapDataAccessors<L, F>;
12
- constructor(accessors: FlowMapDataAccessors<L, F>) {
10
+ export default class FlowmapAggregateAccessors<L, F> {
11
+ private accessors: FlowmapDataAccessors<L, F>;
12
+ constructor(accessors: FlowmapDataAccessors<L, F>) {
13
13
  this.accessors = accessors;
14
14
  }
15
15
 
16
- setAccessors(accessors: FlowMapDataAccessors<L, F>) {
16
+ setAccessors(accessors: FlowmapDataAccessors<L, F>) {
17
17
  this.accessors = accessors;
18
18
  }
19
19
 
20
- getFlowMapDataAccessors() {
20
+ getFlowmapDataAccessors() {
21
21
  return this.accessors;
22
22
  }
23
23