@flowmap.gl/data 8.0.0-alpha.1 → 8.0.0-alpha.13

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 (97) hide show
  1. package/dist/FlowmapAggregateAccessors.d.ts +16 -0
  2. package/dist/FlowmapAggregateAccessors.d.ts.map +1 -0
  3. package/dist/FlowmapAggregateAccessors.js +46 -0
  4. package/dist/FlowmapSelectors.d.ts +188 -0
  5. package/dist/FlowmapSelectors.d.ts.map +1 -0
  6. package/dist/FlowmapSelectors.js +863 -0
  7. package/dist/FlowmapState.d.ts +27 -0
  8. package/dist/FlowmapState.d.ts.map +1 -0
  9. package/dist/FlowmapState.js +2 -0
  10. package/dist/cluster/cluster.d.ts.map +1 -1
  11. package/dist/cluster/cluster.js +8 -5
  12. package/dist/colors.d.ts +7 -7
  13. package/dist/colors.d.ts.map +1 -1
  14. package/dist/colors.js +55 -20
  15. package/dist/getViewStateForLocations.d.ts +18 -11
  16. package/dist/getViewStateForLocations.d.ts.map +1 -1
  17. package/dist/getViewStateForLocations.js +23 -20
  18. package/dist/index.d.ts +6 -6
  19. package/dist/index.js +6 -6
  20. package/dist/provider/FlowmapDataProvider.d.ts +16 -0
  21. package/dist/provider/FlowmapDataProvider.d.ts.map +1 -0
  22. package/dist/provider/FlowmapDataProvider.js +17 -0
  23. package/dist/provider/LocalFlowmapDataProvider.d.ts +20 -0
  24. package/dist/provider/LocalFlowmapDataProvider.d.ts.map +1 -0
  25. package/dist/provider/LocalFlowmapDataProvider.js +98 -0
  26. package/dist/types.d.ts +6 -4
  27. package/dist/types.d.ts.map +1 -1
  28. package/dist/types.js +1 -1
  29. package/dist/util.d.ts +0 -1
  30. package/dist/util.d.ts.map +1 -1
  31. package/dist/util.js +1 -4
  32. package/dist-es5/FlowmapAggregateAccessors.d.ts +16 -0
  33. package/dist-es5/FlowmapAggregateAccessors.d.ts.map +1 -0
  34. package/dist-es5/FlowmapAggregateAccessors.js +57 -0
  35. package/{dist/FlowMapSelectors.d.ts → dist-es5/FlowmapSelectors.d.ts} +55 -49
  36. package/dist-es5/FlowmapSelectors.d.ts.map +1 -0
  37. package/dist-es5/FlowmapSelectors.js +1507 -0
  38. package/{dist/FlowMapState.d.ts → dist-es5/FlowmapState.d.ts} +6 -3
  39. package/dist-es5/FlowmapState.d.ts.map +1 -0
  40. package/dist-es5/FlowmapState.js +3 -0
  41. package/dist-es5/cluster/ClusterIndex.d.ts +42 -0
  42. package/dist-es5/cluster/ClusterIndex.d.ts.map +1 -0
  43. package/dist-es5/cluster/ClusterIndex.js +297 -0
  44. package/dist-es5/cluster/cluster.d.ts +31 -0
  45. package/dist-es5/cluster/cluster.d.ts.map +1 -0
  46. package/dist-es5/cluster/cluster.js +266 -0
  47. package/dist-es5/colors.d.ts +103 -0
  48. package/dist-es5/colors.d.ts.map +1 -0
  49. package/dist-es5/colors.js +510 -0
  50. package/dist-es5/getViewStateForLocations.d.ts +23 -0
  51. package/dist-es5/getViewStateForLocations.d.ts.map +1 -0
  52. package/dist-es5/getViewStateForLocations.js +64 -0
  53. package/dist-es5/index.d.ts +11 -0
  54. package/dist-es5/index.d.ts.map +1 -0
  55. package/dist-es5/index.js +28 -0
  56. package/dist-es5/provider/FlowmapDataProvider.d.ts +16 -0
  57. package/dist-es5/provider/FlowmapDataProvider.d.ts.map +1 -0
  58. package/dist-es5/provider/FlowmapDataProvider.js +22 -0
  59. package/dist-es5/provider/LocalFlowmapDataProvider.d.ts +20 -0
  60. package/dist-es5/provider/LocalFlowmapDataProvider.d.ts.map +1 -0
  61. package/dist-es5/provider/LocalFlowmapDataProvider.js +154 -0
  62. package/dist-es5/time.d.ts +24 -0
  63. package/dist-es5/time.d.ts.map +1 -0
  64. package/dist-es5/time.js +168 -0
  65. package/dist-es5/types.d.ts +118 -0
  66. package/dist-es5/types.d.ts.map +1 -0
  67. package/dist-es5/types.js +29 -0
  68. package/dist-es5/util.d.ts +5 -0
  69. package/dist-es5/util.d.ts.map +1 -0
  70. package/dist-es5/util.js +14 -0
  71. package/package.json +7 -5
  72. package/src/{FlowMapAggregateAccessors.ts → FlowmapAggregateAccessors.ts} +14 -9
  73. package/src/{FlowMapSelectors.ts → FlowmapSelectors.ts} +213 -178
  74. package/src/{FlowMapState.ts → FlowmapState.ts} +5 -2
  75. package/src/cluster/cluster.ts +7 -4
  76. package/src/colors.ts +65 -21
  77. package/src/getViewStateForLocations.ts +41 -35
  78. package/src/index.ts +6 -6
  79. package/src/provider/{FlowMapDataProvider.ts → FlowmapDataProvider.ts} +14 -12
  80. package/src/provider/LocalFlowmapDataProvider.ts +122 -0
  81. package/src/types.ts +6 -4
  82. package/src/util.ts +0 -4
  83. package/tsconfig.es5.json +11 -0
  84. package/dist/FlowMapAggregateAccessors.d.ts +0 -15
  85. package/dist/FlowMapAggregateAccessors.d.ts.map +0 -1
  86. package/dist/FlowMapAggregateAccessors.js +0 -43
  87. package/dist/FlowMapSelectors.d.ts.map +0 -1
  88. package/dist/FlowMapSelectors.js +0 -834
  89. package/dist/FlowMapState.d.ts.map +0 -1
  90. package/dist/FlowMapState.js +0 -2
  91. package/dist/provider/FlowMapDataProvider.d.ts +0 -16
  92. package/dist/provider/FlowMapDataProvider.d.ts.map +0 -1
  93. package/dist/provider/FlowMapDataProvider.js +0 -17
  94. package/dist/provider/LocalFlowMapDataProvider.d.ts +0 -20
  95. package/dist/provider/LocalFlowMapDataProvider.d.ts.map +0 -1
  96. package/dist/provider/LocalFlowMapDataProvider.js +0 -87
  97. package/src/provider/LocalFlowMapDataProvider.ts +0 -105
@@ -1 +0,0 @@
1
- {"version":3,"file":"FlowMapState.d.ts","sourceRoot":"","sources":["../src/FlowMapState.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,kBAAkB,EAAE,aAAa,EAAC,MAAM,SAAS,CAAC;AAE1D,MAAM,WAAW,WAAW;IAC1B,iBAAiB,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IACxC,iBAAiB,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC;IAC5C,kBAAkB,EAAE,kBAAkB,CAAC;CACxC;AAED,MAAM,WAAW,aAAa;IAC5B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,WAAW,EAAE,OAAO,CAAC;IACrB,qBAAqB,EAAE,OAAO,CAAC;IAC/B,qBAAqB,EAAE,OAAO,CAAC;IAC/B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,cAAc,EAAE,OAAO,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;CACjC;AAED,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,WAAW,CAAC;IACzB,aAAa,EAAE,aAAa,CAAC;IAC7B,QAAQ,EAAE,aAAa,CAAC;CACzB"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmxvd01hcFN0YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL0Zsb3dNYXBTdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtMb2NhdGlvbkZpbHRlck1vZGUsIFZpZXdwb3J0UHJvcHN9IGZyb20gJy4vdHlwZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEZpbHRlclN0YXRlIHtcbiAgc2VsZWN0ZWRMb2NhdGlvbnM6IHN0cmluZ1tdIHwgdW5kZWZpbmVkO1xuICBzZWxlY3RlZFRpbWVSYW5nZTogW0RhdGUsIERhdGVdIHwgdW5kZWZpbmVkO1xuICBsb2NhdGlvbkZpbHRlck1vZGU6IExvY2F0aW9uRmlsdGVyTW9kZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZXR0aW5nc1N0YXRlIHtcbiAgYW5pbWF0aW9uRW5hYmxlZDogYm9vbGVhbjtcbiAgZmFkZUVuYWJsZWQ6IGJvb2xlYW47XG4gIGxvY2F0aW9uVG90YWxzRW5hYmxlZDogYm9vbGVhbjtcbiAgYWRhcHRpdmVTY2FsZXNFbmFibGVkOiBib29sZWFuO1xuICBjbHVzdGVyaW5nRW5hYmxlZDogYm9vbGVhbjtcbiAgY2x1c3RlcmluZ0F1dG86IGJvb2xlYW47XG4gIGNsdXN0ZXJpbmdMZXZlbD86IG51bWJlcjtcbiAgZGFya01vZGU6IGJvb2xlYW47XG4gIGZhZGVBbW91bnQ6IG51bWJlcjtcbiAgY29sb3JTY2hlbWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGbG93TWFwU3RhdGUge1xuICBmaWx0ZXJTdGF0ZTogRmlsdGVyU3RhdGU7XG4gIHNldHRpbmdzU3RhdGU6IFNldHRpbmdzU3RhdGU7XG4gIHZpZXdwb3J0OiBWaWV3cG9ydFByb3BzO1xufVxuIl19
@@ -1,16 +0,0 @@
1
- import { AggregateFlow, Cluster, LocationTotals } from '..';
2
- import { FlowMapState } from '../FlowMapState';
3
- import { ClusterNode, FlowMapData, FlowMapDataAccessors, LayersData, ViewportProps } from '../types';
4
- export default interface FlowMapDataProvider<L, F> {
5
- setAccessors(accessors: FlowMapDataAccessors<L, F>): void;
6
- setFlowMapState(flowMapState: FlowMapState): Promise<void>;
7
- getViewportForLocations(dims: [number, number]): Promise<ViewportProps>;
8
- getFlowByIndex(index: number): Promise<F | AggregateFlow | undefined>;
9
- getLocationById(id: string): Promise<L | Cluster | undefined>;
10
- getLocationByIndex(idx: number): Promise<L | ClusterNode | undefined>;
11
- getTotalsForLocation(id: string): Promise<LocationTotals | undefined>;
12
- getLayersData(): Promise<LayersData | undefined>;
13
- }
14
- export declare function isFlowMapData<L, F>(data: Record<string, any>): data is FlowMapData<L, F>;
15
- export declare function isFlowMapDataProvider<L, F>(dataProvider: Record<string, any>): dataProvider is FlowMapDataProvider<L, F>;
16
- //# sourceMappingURL=FlowMapDataProvider.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FlowMapDataProvider.d.ts","sourceRoot":"","sources":["../../src/provider/FlowMapDataProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAE,OAAO,EAAqB,cAAc,EAAC,MAAM,IAAI,CAAC;AAC7E,OAAO,EAAC,YAAY,EAAC,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EACL,WAAW,EACX,WAAW,EACX,oBAAoB,EACpB,UAAU,EACV,aAAa,EACd,MAAM,UAAU,CAAC;AAElB,MAAM,CAAC,OAAO,WAAW,mBAAmB,CAAC,CAAC,EAAE,CAAC;IAC/C,YAAY,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;IAE1D,eAAe,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAI3D,uBAAuB,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAIxE,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,aAAa,GAAG,SAAS,CAAC,CAAC;IAEtE,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,OAAO,GAAG,SAAS,CAAC,CAAC;IAE9D,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,WAAW,GAAG,SAAS,CAAC,CAAC;IAEtE,oBAAoB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAAC;IAQtE,aAAa,IAAI,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CAAC;CAClD;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,CAAC,EAChC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GACxB,IAAI,IAAI,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAQ3B;AAED,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,CAAC,EACxC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAChC,YAAY,IAAI,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAU3C"}
@@ -1,17 +0,0 @@
1
- export function isFlowMapData(data) {
2
- return (data &&
3
- data.locations &&
4
- data.flows &&
5
- Array.isArray(data.locations) &&
6
- Array.isArray(data.flows));
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmxvd01hcERhdGFQcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm92aWRlci9GbG93TWFwRGF0YVByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXNDQSxNQUFNLFVBQVUsYUFBYSxDQUMzQixJQUF5QjtJQUV6QixPQUFPLENBQ0wsSUFBSTtRQUNKLElBQUksQ0FBQyxTQUFTO1FBQ2QsSUFBSSxDQUFDLEtBQUs7UUFDVixLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDN0IsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQzFCLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLHFCQUFxQixDQUNuQyxZQUFpQztJQUVqQyxPQUFPLENBQ0wsWUFBWTtRQUNaLE9BQU8sWUFBWSxDQUFDLGVBQWUsS0FBSyxVQUFVO1FBQ2xELE9BQU8sWUFBWSxDQUFDLHVCQUF1QixLQUFLLFVBQVU7UUFDMUQsT0FBTyxZQUFZLENBQUMsY0FBYyxLQUFLLFVBQVU7UUFDakQsT0FBTyxZQUFZLENBQUMsZUFBZSxLQUFLLFVBQVU7UUFDbEQsT0FBTyxZQUFZLENBQUMsa0JBQWtCLEtBQUssVUFBVTtRQUNyRCxPQUFPLFlBQVksQ0FBQyxhQUFhLEtBQUssVUFBVSxDQUNqRCxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QWdncmVnYXRlRmxvdywgQ2x1c3RlciwgTG9jYXRpb25BY2Nlc3NvcnMsIExvY2F0aW9uVG90YWxzfSBmcm9tICcuLic7XG5pbXBvcnQge0Zsb3dNYXBTdGF0ZX0gZnJvbSAnLi4vRmxvd01hcFN0YXRlJztcbmltcG9ydCB7XG4gIENsdXN0ZXJOb2RlLFxuICBGbG93TWFwRGF0YSxcbiAgRmxvd01hcERhdGFBY2Nlc3NvcnMsXG4gIExheWVyc0RhdGEsXG4gIFZpZXdwb3J0UHJvcHMsXG59IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGRlZmF1bHQgaW50ZXJmYWNlIEZsb3dNYXBEYXRhUHJvdmlkZXI8TCwgRj4ge1xuICBzZXRBY2Nlc3NvcnMoYWNjZXNzb3JzOiBGbG93TWFwRGF0YUFjY2Vzc29yczxMLCBGPik6IHZvaWQ7XG5cbiAgc2V0Rmxvd01hcFN0YXRlKGZsb3dNYXBTdGF0ZTogRmxvd01hcFN0YXRlKTogUHJvbWlzZTx2b2lkPjtcblxuICAvLyBjbGVhckRhdGEoKTogdm9pZDtcblxuICBnZXRWaWV3cG9ydEZvckxvY2F0aW9ucyhkaW1zOiBbbnVtYmVyLCBudW1iZXJdKTogUHJvbWlzZTxWaWV3cG9ydFByb3BzPjtcblxuICAvLyBnZXRGbG93VG90YWxzKCk6IFByb21pc2U8Rmxvd1RvdGFscz47XG5cbiAgZ2V0Rmxvd0J5SW5kZXgoaW5kZXg6IG51bWJlcik6IFByb21pc2U8RiB8IEFnZ3JlZ2F0ZUZsb3cgfCB1bmRlZmluZWQ+O1xuXG4gIGdldExvY2F0aW9uQnlJZChpZDogc3RyaW5nKTogUHJvbWlzZTxMIHwgQ2x1c3RlciB8IHVuZGVmaW5lZD47XG5cbiAgZ2V0TG9jYXRpb25CeUluZGV4KGlkeDogbnVtYmVyKTogUHJvbWlzZTxMIHwgQ2x1c3Rlck5vZGUgfCB1bmRlZmluZWQ+O1xuXG4gIGdldFRvdGFsc0ZvckxvY2F0aW9uKGlkOiBzdHJpbmcpOiBQcm9taXNlPExvY2F0aW9uVG90YWxzIHwgdW5kZWZpbmVkPjtcblxuICAvLyBnZXRMb2NhdGlvbnNJbkJib3goXG4gIC8vICAgYmJveDogW251bWJlciwgbnVtYmVyLCBudW1iZXIsIG51bWJlcl0sXG4gIC8vICk6IFByb21pc2U8QXJyYXk8Rmxvd0xvY2F0aW9uIHwgQ2x1c3Rlck5vZGU+IHwgdW5kZWZpbmVkPjtcblxuICAvLyBnZXRMb2NhdGlvbnNGb3JTZWFyY2hCb3goKTogUHJvbWlzZTwoRmxvd0xvY2F0aW9uIHwgQ2x1c3Rlck5vZGUpW10gfCB1bmRlZmluZWQ+O1xuXG4gIGdldExheWVyc0RhdGEoKTogUHJvbWlzZTxMYXllcnNEYXRhIHwgdW5kZWZpbmVkPjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRmxvd01hcERhdGE8TCwgRj4oXG4gIGRhdGE6IFJlY29yZDxzdHJpbmcsIGFueT4sXG4pOiBkYXRhIGlzIEZsb3dNYXBEYXRhPEwsIEY+IHtcbiAgcmV0dXJuIChcbiAgICBkYXRhICYmXG4gICAgZGF0YS5sb2NhdGlvbnMgJiZcbiAgICBkYXRhLmZsb3dzICYmXG4gICAgQXJyYXkuaXNBcnJheShkYXRhLmxvY2F0aW9ucykgJiZcbiAgICBBcnJheS5pc0FycmF5KGRhdGEuZmxvd3MpXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0Zsb3dNYXBEYXRhUHJvdmlkZXI8TCwgRj4oXG4gIGRhdGFQcm92aWRlcjogUmVjb3JkPHN0cmluZywgYW55Pixcbik6IGRhdGFQcm92aWRlciBpcyBGbG93TWFwRGF0YVByb3ZpZGVyPEwsIEY+IHtcbiAgcmV0dXJuIChcbiAgICBkYXRhUHJvdmlkZXIgJiZcbiAgICB0eXBlb2YgZGF0YVByb3ZpZGVyLnNldEZsb3dNYXBTdGF0ZSA9PT0gJ2Z1bmN0aW9uJyAmJlxuICAgIHR5cGVvZiBkYXRhUHJvdmlkZXIuZ2V0Vmlld3BvcnRGb3JMb2NhdGlvbnMgPT09ICdmdW5jdGlvbicgJiZcbiAgICB0eXBlb2YgZGF0YVByb3ZpZGVyLmdldEZsb3dCeUluZGV4ID09PSAnZnVuY3Rpb24nICYmXG4gICAgdHlwZW9mIGRhdGFQcm92aWRlci5nZXRMb2NhdGlvbkJ5SWQgPT09ICdmdW5jdGlvbicgJiZcbiAgICB0eXBlb2YgZGF0YVByb3ZpZGVyLmdldExvY2F0aW9uQnlJbmRleCA9PT0gJ2Z1bmN0aW9uJyAmJlxuICAgIHR5cGVvZiBkYXRhUHJvdmlkZXIuZ2V0TGF5ZXJzRGF0YSA9PT0gJ2Z1bmN0aW9uJ1xuICApO1xufVxuIl19
@@ -1,20 +0,0 @@
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 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]): Promise<ViewportProps>;
19
- }
20
- //# sourceMappingURL=LocalFlowMapDataProvider.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LocalFlowMapDataProvider.d.ts","sourceRoot":"","sources":["../../src/provider/LocalFlowMapDataProvider.ts"],"names":[],"mappings":"AAAA,OAAO,mBAAmB,MAAM,uBAAuB,CAAC;AACxD,OAAO,EACL,OAAO,EACP,WAAW,EAEX,WAAW,EACX,oBAAoB,EACpB,UAAU,EAEV,cAAc,EACd,aAAa,EACd,MAAM,UAAU,CAAC;AAClB,OAAO,EAAC,YAAY,EAAC,MAAM,iBAAiB,CAAC;AAE7C,OAAO,EAAC,aAAa,EAAC,MAAM,IAAI,CAAC;AAEjC,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;IAS3E,uBAAuB,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC;CAGxE"}
@@ -1,87 +0,0 @@
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
- export default class LocalFlowMapDataProvider {
12
- constructor(accessors) {
13
- // scope selectors to the concrete instance of FlowMapDataProvider
14
- this.selectors = new FlowMapSelectors(accessors);
15
- this.flowMapData = undefined;
16
- this.flowMapState = undefined;
17
- }
18
- setAccessors(accessors) {
19
- this.selectors.setAccessors(accessors);
20
- }
21
- setFlowMapData(flowMapData) {
22
- return __awaiter(this, void 0, void 0, function* () {
23
- this.flowMapData = flowMapData;
24
- });
25
- }
26
- setFlowMapState(flowMapState) {
27
- return __awaiter(this, void 0, void 0, function* () {
28
- this.flowMapState = flowMapState;
29
- });
30
- }
31
- getFlowByIndex(idx) {
32
- return __awaiter(this, void 0, void 0, function* () {
33
- if (!this.flowMapState || !this.flowMapData) {
34
- return undefined;
35
- }
36
- const flows = this.selectors.getFlowsForFlowMapLayer(this.flowMapState, this.flowMapData);
37
- return flows === null || flows === void 0 ? void 0 : flows[idx];
38
- });
39
- }
40
- getLocationByIndex(idx) {
41
- return __awaiter(this, void 0, void 0, function* () {
42
- if (!this.flowMapState || !this.flowMapData) {
43
- return undefined;
44
- }
45
- const locations = this.selectors.getLocationsForFlowMapLayer(this.flowMapState, this.flowMapData);
46
- return locations === null || locations === void 0 ? void 0 : locations[idx];
47
- });
48
- }
49
- getLayersData() {
50
- return __awaiter(this, void 0, void 0, function* () {
51
- if (!this.flowMapState || !this.flowMapData) {
52
- return undefined;
53
- }
54
- return this.selectors.getLayersData(this.flowMapState, this.flowMapData);
55
- });
56
- }
57
- getLocationById(id) {
58
- return __awaiter(this, void 0, void 0, function* () {
59
- if (!this.flowMapState || !this.flowMapData) {
60
- return undefined;
61
- }
62
- const clusterIndex = this.selectors.getClusterIndex(this.flowMapState, this.flowMapData);
63
- if (clusterIndex) {
64
- const cluster = clusterIndex.getClusterById(id);
65
- if (cluster) {
66
- return cluster;
67
- }
68
- }
69
- const locationsById = this.selectors.getLocationsById(this.flowMapState, this.flowMapData);
70
- return locationsById === null || locationsById === void 0 ? void 0 : locationsById.get(id);
71
- });
72
- }
73
- getTotalsForLocation(id) {
74
- var _a;
75
- return __awaiter(this, void 0, void 0, function* () {
76
- if (!this.flowMapState || !this.flowMapData) {
77
- return undefined;
78
- }
79
- return (_a = this.selectors
80
- .getLocationTotals(this.flowMapState, this.flowMapData)) === null || _a === void 0 ? void 0 : _a.get(id);
81
- });
82
- }
83
- getViewportForLocations(dims) {
84
- return Promise.resolve({});
85
- }
86
- }
87
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTG9jYWxGbG93TWFwRGF0YVByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Byb3ZpZGVyL0xvY2FsRmxvd01hcERhdGFQcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFhQSxPQUFPLGdCQUFnQixNQUFNLHFCQUFxQixDQUFDO0FBR25ELE1BQU0sQ0FBQyxPQUFPLE9BQU8sd0JBQXdCO0lBTzNDLFlBQVksU0FBcUM7UUFDL0Msa0VBQWtFO1FBQ2xFLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBTyxTQUFTLENBQUMsQ0FBQztRQUN2RCxJQUFJLENBQUMsV0FBVyxHQUFHLFNBQVMsQ0FBQztRQUM3QixJQUFJLENBQUMsWUFBWSxHQUFHLFNBQVMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsWUFBWSxDQUFDLFNBQXFDO1FBQ2hELElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFSyxjQUFjLENBQUMsV0FBOEI7O1lBQ2pELElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO1FBQ2pDLENBQUM7S0FBQTtJQUVLLGVBQWUsQ0FBQyxZQUEwQjs7WUFDOUMsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7UUFDbkMsQ0FBQztLQUFBO0lBRUssY0FBYyxDQUFDLEdBQVc7O1lBQzlCLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTtnQkFDM0MsT0FBTyxTQUFTLENBQUM7YUFDbEI7WUFDRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLHVCQUF1QixDQUNsRCxJQUFJLENBQUMsWUFBWSxFQUNqQixJQUFJLENBQUMsV0FBVyxDQUNqQixDQUFDO1lBQ0YsT0FBTyxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUcsR0FBRyxDQUFDLENBQUM7UUFDdEIsQ0FBQztLQUFBO0lBRUssa0JBQWtCLENBQUMsR0FBVzs7WUFDbEMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO2dCQUMzQyxPQUFPLFNBQVMsQ0FBQzthQUNsQjtZQUNELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsMkJBQTJCLENBQzFELElBQUksQ0FBQyxZQUFZLEVBQ2pCLElBQUksQ0FBQyxXQUFXLENBQ2pCLENBQUM7WUFDRixPQUFPLFNBQVMsYUFBVCxTQUFTLHVCQUFULFNBQVMsQ0FBRyxHQUFHLENBQUMsQ0FBQztRQUMxQixDQUFDO0tBQUE7SUFFSyxhQUFhOztZQUNqQixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7Z0JBQzNDLE9BQU8sU0FBUyxDQUFDO2FBQ2xCO1lBQ0QsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMzRSxDQUFDO0tBQUE7SUFFSyxlQUFlLENBQUMsRUFBVTs7WUFDOUIsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO2dCQUMzQyxPQUFPLFNBQVMsQ0FBQzthQUNsQjtZQUNELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUNqRCxJQUFJLENBQUMsWUFBWSxFQUNqQixJQUFJLENBQUMsV0FBVyxDQUNqQixDQUFDO1lBQ0YsSUFBSSxZQUFZLEVBQUU7Z0JBQ2hCLE1BQU0sT0FBTyxHQUFHLFlBQVksQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ2hELElBQUksT0FBTyxFQUFFO29CQUNYLE9BQU8sT0FBTyxDQUFDO2lCQUNoQjthQUNGO1lBQ0QsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FDbkQsSUFBSSxDQUFDLFlBQVksRUFDakIsSUFBSSxDQUFDLFdBQVcsQ0FDakIsQ0FBQztZQUNGLE9BQU8sYUFBYSxhQUFiLGFBQWEsdUJBQWIsYUFBYSxDQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNoQyxDQUFDO0tBQUE7SUFFSyxvQkFBb0IsQ0FBQyxFQUFVOzs7WUFDbkMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO2dCQUMzQyxPQUFPLFNBQVMsQ0FBQzthQUNsQjtZQUNELE9BQU8sTUFBQSxJQUFJLENBQUMsU0FBUztpQkFDbEIsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLDBDQUNyRCxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7O0tBQ2I7SUFFRCx1QkFBdUIsQ0FBQyxJQUFzQjtRQUM1QyxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBbUIsQ0FBQyxDQUFDO0lBQzlDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBGbG93TWFwRGF0YVByb3ZpZGVyIGZyb20gJy4vRmxvd01hcERhdGFQcm92aWRlcic7XG5pbXBvcnQge1xuICBDbHVzdGVyLFxuICBDbHVzdGVyTm9kZSxcbiAgRmxvd0FjY2Vzc29ycyxcbiAgRmxvd01hcERhdGEsXG4gIEZsb3dNYXBEYXRhQWNjZXNzb3JzLFxuICBMYXllcnNEYXRhLFxuICBMb2NhdGlvbkFjY2Vzc29ycyxcbiAgTG9jYXRpb25Ub3RhbHMsXG4gIFZpZXdwb3J0UHJvcHMsXG59IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7Rmxvd01hcFN0YXRlfSBmcm9tICcuLi9GbG93TWFwU3RhdGUnO1xuaW1wb3J0IEZsb3dNYXBTZWxlY3RvcnMgZnJvbSAnLi4vRmxvd01hcFNlbGVjdG9ycyc7XG5pbXBvcnQge0FnZ3JlZ2F0ZUZsb3d9IGZyb20gJy4uJztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTG9jYWxGbG93TWFwRGF0YVByb3ZpZGVyPEwsIEY+XG4gIGltcGxlbWVudHMgRmxvd01hcERhdGFQcm92aWRlcjxMLCBGPlxue1xuICBwcml2YXRlIHNlbGVjdG9yczogRmxvd01hcFNlbGVjdG9yczxMLCBGPjtcbiAgcHJpdmF0ZSBmbG93TWFwRGF0YTogRmxvd01hcERhdGE8TCwgRj4gfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgZmxvd01hcFN0YXRlOiBGbG93TWFwU3RhdGUgfCB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3IoYWNjZXNzb3JzOiBGbG93TWFwRGF0YUFjY2Vzc29yczxMLCBGPikge1xuICAgIC8vIHNjb3BlIHNlbGVjdG9ycyB0byB0aGUgY29uY3JldGUgaW5zdGFuY2Ugb2YgRmxvd01hcERhdGFQcm92aWRlclxuICAgIHRoaXMuc2VsZWN0b3JzID0gbmV3IEZsb3dNYXBTZWxlY3RvcnM8TCwgRj4oYWNjZXNzb3JzKTtcbiAgICB0aGlzLmZsb3dNYXBEYXRhID0gdW5kZWZpbmVkO1xuICAgIHRoaXMuZmxvd01hcFN0YXRlID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgc2V0QWNjZXNzb3JzKGFjY2Vzc29yczogRmxvd01hcERhdGFBY2Nlc3NvcnM8TCwgRj4pIHtcbiAgICB0aGlzLnNlbGVjdG9ycy5zZXRBY2Nlc3NvcnMoYWNjZXNzb3JzKTtcbiAgfVxuXG4gIGFzeW5jIHNldEZsb3dNYXBEYXRhKGZsb3dNYXBEYXRhOiBGbG93TWFwRGF0YTxMLCBGPik6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMuZmxvd01hcERhdGEgPSBmbG93TWFwRGF0YTtcbiAgfVxuXG4gIGFzeW5jIHNldEZsb3dNYXBTdGF0ZShmbG93TWFwU3RhdGU6IEZsb3dNYXBTdGF0ZSk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMuZmxvd01hcFN0YXRlID0gZmxvd01hcFN0YXRlO1xuICB9XG5cbiAgYXN5bmMgZ2V0Rmxvd0J5SW5kZXgoaWR4OiBudW1iZXIpOiBQcm9taXNlPEYgfCBBZ2dyZWdhdGVGbG93IHwgdW5kZWZpbmVkPiB7XG4gICAgaWYgKCF0aGlzLmZsb3dNYXBTdGF0ZSB8fCAhdGhpcy5mbG93TWFwRGF0YSkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgY29uc3QgZmxvd3MgPSB0aGlzLnNlbGVjdG9ycy5nZXRGbG93c0ZvckZsb3dNYXBMYXllcihcbiAgICAgIHRoaXMuZmxvd01hcFN0YXRlLFxuICAgICAgdGhpcy5mbG93TWFwRGF0YSxcbiAgICApO1xuICAgIHJldHVybiBmbG93cz8uW2lkeF07XG4gIH1cblxuICBhc3luYyBnZXRMb2NhdGlvbkJ5SW5kZXgoaWR4OiBudW1iZXIpOiBQcm9taXNlPEwgfCBDbHVzdGVyTm9kZSB8IHVuZGVmaW5lZD4ge1xuICAgIGlmICghdGhpcy5mbG93TWFwU3RhdGUgfHwgIXRoaXMuZmxvd01hcERhdGEpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGNvbnN0IGxvY2F0aW9ucyA9IHRoaXMuc2VsZWN0b3JzLmdldExvY2F0aW9uc0ZvckZsb3dNYXBMYXllcihcbiAgICAgIHRoaXMuZmxvd01hcFN0YXRlLFxuICAgICAgdGhpcy5mbG93TWFwRGF0YSxcbiAgICApO1xuICAgIHJldHVybiBsb2NhdGlvbnM/LltpZHhdO1xuICB9XG5cbiAgYXN5bmMgZ2V0TGF5ZXJzRGF0YSgpOiBQcm9taXNlPExheWVyc0RhdGEgfCB1bmRlZmluZWQ+IHtcbiAgICBpZiAoIXRoaXMuZmxvd01hcFN0YXRlIHx8ICF0aGlzLmZsb3dNYXBEYXRhKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5zZWxlY3RvcnMuZ2V0TGF5ZXJzRGF0YSh0aGlzLmZsb3dNYXBTdGF0ZSwgdGhpcy5mbG93TWFwRGF0YSk7XG4gIH1cblxuICBhc3luYyBnZXRMb2NhdGlvbkJ5SWQoaWQ6IHN0cmluZyk6IFByb21pc2U8TCB8IENsdXN0ZXIgfCB1bmRlZmluZWQ+IHtcbiAgICBpZiAoIXRoaXMuZmxvd01hcFN0YXRlIHx8ICF0aGlzLmZsb3dNYXBEYXRhKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBjb25zdCBjbHVzdGVySW5kZXggPSB0aGlzLnNlbGVjdG9ycy5nZXRDbHVzdGVySW5kZXgoXG4gICAgICB0aGlzLmZsb3dNYXBTdGF0ZSxcbiAgICAgIHRoaXMuZmxvd01hcERhdGEsXG4gICAgKTtcbiAgICBpZiAoY2x1c3RlckluZGV4KSB7XG4gICAgICBjb25zdCBjbHVzdGVyID0gY2x1c3RlckluZGV4LmdldENsdXN0ZXJCeUlkKGlkKTtcbiAgICAgIGlmIChjbHVzdGVyKSB7XG4gICAgICAgIHJldHVybiBjbHVzdGVyO1xuICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBsb2NhdGlvbnNCeUlkID0gdGhpcy5zZWxlY3RvcnMuZ2V0TG9jYXRpb25zQnlJZChcbiAgICAgIHRoaXMuZmxvd01hcFN0YXRlLFxuICAgICAgdGhpcy5mbG93TWFwRGF0YSxcbiAgICApO1xuICAgIHJldHVybiBsb2NhdGlvbnNCeUlkPy5nZXQoaWQpO1xuICB9XG5cbiAgYXN5bmMgZ2V0VG90YWxzRm9yTG9jYXRpb24oaWQ6IHN0cmluZyk6IFByb21pc2U8TG9jYXRpb25Ub3RhbHMgfCB1bmRlZmluZWQ+IHtcbiAgICBpZiAoIXRoaXMuZmxvd01hcFN0YXRlIHx8ICF0aGlzLmZsb3dNYXBEYXRhKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5zZWxlY3RvcnNcbiAgICAgIC5nZXRMb2NhdGlvblRvdGFscyh0aGlzLmZsb3dNYXBTdGF0ZSwgdGhpcy5mbG93TWFwRGF0YSlcbiAgICAgID8uZ2V0KGlkKTtcbiAgfVxuXG4gIGdldFZpZXdwb3J0Rm9yTG9jYXRpb25zKGRpbXM6IFtudW1iZXIsIG51bWJlcl0pOiBQcm9taXNlPFZpZXdwb3J0UHJvcHM+IHtcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHt9IGFzIFZpZXdwb3J0UHJvcHMpO1xuICB9XG59XG4iXX0=
@@ -1,105 +0,0 @@
1
- import FlowMapDataProvider from './FlowMapDataProvider';
2
- import {
3
- Cluster,
4
- ClusterNode,
5
- FlowAccessors,
6
- FlowMapData,
7
- FlowMapDataAccessors,
8
- LayersData,
9
- LocationAccessors,
10
- LocationTotals,
11
- ViewportProps,
12
- } from '../types';
13
- import {FlowMapState} from '../FlowMapState';
14
- import FlowMapSelectors from '../FlowMapSelectors';
15
- import {AggregateFlow} from '..';
16
-
17
- export default class LocalFlowMapDataProvider<L, F>
18
- implements FlowMapDataProvider<L, F>
19
- {
20
- private selectors: FlowMapSelectors<L, F>;
21
- private flowMapData: FlowMapData<L, F> | undefined;
22
- private flowMapState: FlowMapState | undefined;
23
-
24
- constructor(accessors: FlowMapDataAccessors<L, F>) {
25
- // scope selectors to the concrete instance of FlowMapDataProvider
26
- this.selectors = new FlowMapSelectors<L, F>(accessors);
27
- this.flowMapData = undefined;
28
- this.flowMapState = undefined;
29
- }
30
-
31
- setAccessors(accessors: FlowMapDataAccessors<L, F>) {
32
- this.selectors.setAccessors(accessors);
33
- }
34
-
35
- async setFlowMapData(flowMapData: FlowMapData<L, F>): Promise<void> {
36
- this.flowMapData = flowMapData;
37
- }
38
-
39
- async setFlowMapState(flowMapState: FlowMapState): Promise<void> {
40
- this.flowMapState = flowMapState;
41
- }
42
-
43
- async getFlowByIndex(idx: number): Promise<F | AggregateFlow | undefined> {
44
- if (!this.flowMapState || !this.flowMapData) {
45
- return undefined;
46
- }
47
- const flows = this.selectors.getFlowsForFlowMapLayer(
48
- this.flowMapState,
49
- this.flowMapData,
50
- );
51
- return flows?.[idx];
52
- }
53
-
54
- async getLocationByIndex(idx: number): Promise<L | ClusterNode | undefined> {
55
- if (!this.flowMapState || !this.flowMapData) {
56
- return undefined;
57
- }
58
- const locations = this.selectors.getLocationsForFlowMapLayer(
59
- this.flowMapState,
60
- this.flowMapData,
61
- );
62
- return locations?.[idx];
63
- }
64
-
65
- async getLayersData(): Promise<LayersData | undefined> {
66
- if (!this.flowMapState || !this.flowMapData) {
67
- return undefined;
68
- }
69
- return this.selectors.getLayersData(this.flowMapState, this.flowMapData);
70
- }
71
-
72
- async getLocationById(id: string): Promise<L | Cluster | undefined> {
73
- if (!this.flowMapState || !this.flowMapData) {
74
- return undefined;
75
- }
76
- const clusterIndex = this.selectors.getClusterIndex(
77
- this.flowMapState,
78
- this.flowMapData,
79
- );
80
- if (clusterIndex) {
81
- const cluster = clusterIndex.getClusterById(id);
82
- if (cluster) {
83
- return cluster;
84
- }
85
- }
86
- const locationsById = this.selectors.getLocationsById(
87
- this.flowMapState,
88
- this.flowMapData,
89
- );
90
- return locationsById?.get(id);
91
- }
92
-
93
- async getTotalsForLocation(id: string): Promise<LocationTotals | undefined> {
94
- if (!this.flowMapState || !this.flowMapData) {
95
- return undefined;
96
- }
97
- return this.selectors
98
- .getLocationTotals(this.flowMapState, this.flowMapData)
99
- ?.get(id);
100
- }
101
-
102
- getViewportForLocations(dims: [number, number]): Promise<ViewportProps> {
103
- return Promise.resolve({} as ViewportProps);
104
- }
105
- }