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

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 (70) hide show
  1. package/dist/FlowmapAggregateAccessors.d.ts +16 -0
  2. package/dist/FlowmapAggregateAccessors.d.ts.map +1 -0
  3. package/dist/FlowmapAggregateAccessors.js +48 -0
  4. package/dist/FlowmapSelectors.d.ts +213 -0
  5. package/dist/FlowmapSelectors.d.ts.map +1 -0
  6. package/dist/FlowmapSelectors.js +861 -0
  7. package/dist/{FlowMapState.d.ts → FlowmapState.d.ts} +12 -8
  8. package/dist/FlowmapState.d.ts.map +1 -0
  9. package/dist/FlowmapState.js +2 -0
  10. package/dist/cluster/ClusterIndex.d.ts +3 -3
  11. package/dist/cluster/ClusterIndex.d.ts.map +1 -1
  12. package/dist/cluster/ClusterIndex.js +1 -1
  13. package/dist/cluster/cluster.d.ts +6 -5
  14. package/dist/cluster/cluster.d.ts.map +1 -1
  15. package/dist/cluster/cluster.js +76 -20
  16. package/dist/colors.d.ts +7 -7
  17. package/dist/colors.d.ts.map +1 -1
  18. package/dist/colors.js +55 -20
  19. package/dist/getViewStateForLocations.d.ts +18 -11
  20. package/dist/getViewStateForLocations.d.ts.map +1 -1
  21. package/dist/getViewStateForLocations.js +37 -23
  22. package/dist/index.d.ts +9 -6
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +9 -6
  25. package/dist/provider/FlowmapDataProvider.d.ts +21 -0
  26. package/dist/provider/FlowmapDataProvider.d.ts.map +1 -0
  27. package/dist/provider/FlowmapDataProvider.js +17 -0
  28. package/dist/provider/LocalFlowmapDataProvider.d.ts +25 -0
  29. package/dist/provider/LocalFlowmapDataProvider.d.ts.map +1 -0
  30. package/dist/provider/LocalFlowmapDataProvider.js +111 -0
  31. package/dist/selector-functions.d.ts +10 -0
  32. package/dist/selector-functions.d.ts.map +1 -0
  33. package/dist/selector-functions.js +56 -0
  34. package/dist/types.d.ts +20 -16
  35. package/dist/types.d.ts.map +1 -1
  36. package/dist/types.js +4 -4
  37. package/dist/util.d.ts +0 -1
  38. package/dist/util.d.ts.map +1 -1
  39. package/dist/util.js +1 -4
  40. package/package.json +10 -12
  41. package/src/FlowmapAggregateAccessors.ts +67 -0
  42. package/src/{FlowMapSelectors.ts → FlowmapSelectors.ts} +453 -398
  43. package/src/{FlowMapState.ts → FlowmapState.ts} +11 -7
  44. package/src/cluster/ClusterIndex.ts +19 -12
  45. package/src/cluster/cluster.ts +96 -35
  46. package/src/colors.ts +70 -28
  47. package/src/getViewStateForLocations.ts +56 -40
  48. package/src/index.ts +9 -6
  49. package/src/provider/FlowmapDataProvider.ts +75 -0
  50. package/src/provider/LocalFlowmapDataProvider.ts +143 -0
  51. package/src/selector-functions.ts +87 -0
  52. package/src/types.ts +23 -19
  53. package/src/util.ts +0 -4
  54. package/dist/FlowMapAggregateAccessors.d.ts +0 -15
  55. package/dist/FlowMapAggregateAccessors.d.ts.map +0 -1
  56. package/dist/FlowMapAggregateAccessors.js +0 -43
  57. package/dist/FlowMapSelectors.d.ts +0 -182
  58. package/dist/FlowMapSelectors.d.ts.map +0 -1
  59. package/dist/FlowMapSelectors.js +0 -834
  60. package/dist/FlowMapState.d.ts.map +0 -1
  61. package/dist/FlowMapState.js +0 -2
  62. package/dist/provider/FlowMapDataProvider.d.ts +0 -16
  63. package/dist/provider/FlowMapDataProvider.d.ts.map +0 -1
  64. package/dist/provider/FlowMapDataProvider.js +0 -17
  65. package/dist/provider/LocalFlowMapDataProvider.d.ts +0 -20
  66. package/dist/provider/LocalFlowMapDataProvider.d.ts.map +0 -1
  67. package/dist/provider/LocalFlowMapDataProvider.js +0 -87
  68. package/src/FlowMapAggregateAccessors.ts +0 -60
  69. package/src/provider/FlowMapDataProvider.ts +0 -63
  70. package/src/provider/LocalFlowMapDataProvider.ts +0 -105
@@ -0,0 +1,16 @@
1
+ import { AggregateFlow, ClusterNode, FlowmapDataAccessors } from './types';
2
+ export default class FlowmapAggregateAccessors<L, F> {
3
+ private accessors;
4
+ constructor(accessors: FlowmapDataAccessors<L, F>);
5
+ setAccessors(accessors: FlowmapDataAccessors<L, F>): void;
6
+ getFlowmapDataAccessors(): FlowmapDataAccessors<L, F>;
7
+ getLocationId: (location: L | ClusterNode) => string | number;
8
+ getLocationName: (location: L | ClusterNode) => string;
9
+ getLocationLat: (location: L | ClusterNode) => number;
10
+ getLocationLon: (location: L | ClusterNode) => number;
11
+ getFlowOriginId: (f: F | AggregateFlow) => string | number;
12
+ getFlowDestId: (f: F | AggregateFlow) => string | number;
13
+ getFlowMagnitude: (f: F | AggregateFlow) => number;
14
+ getFlowTime: (f: F) => Date | undefined;
15
+ }
16
+ //# sourceMappingURL=FlowmapAggregateAccessors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FlowmapAggregateAccessors.d.ts","sourceRoot":"","sources":["../src/FlowmapAggregateAccessors.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,WAAW,EACX,oBAAoB,EAIrB,MAAM,SAAS,CAAC;AAEjB,MAAM,CAAC,OAAO,OAAO,yBAAyB,CAAC,CAAC,EAAE,CAAC;IACjD,OAAO,CAAC,SAAS,CAA6B;gBAClC,SAAS,EAAE,oBAAoB,CAAC,CAAC,EAAE,CAAC,CAAC;IAIjD,YAAY,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC,EAAE,CAAC,CAAC;IAIlD,uBAAuB;IAIvB,aAAa,aAAc,CAAC,GAAG,WAAW,KAAG,MAAM,GAAG,MAAM,CAGf;IAE7C,eAAe,aAAc,CAAC,GAAG,WAAW,KAAG,MAAM,CASnD;IAEF,cAAc,aAAc,CAAC,GAAG,WAAW,KAAG,MAAM,CAGN;IAE9C,cAAc,aAAc,CAAC,GAAG,WAAW,KAAG,MAAM,CAGN;IAE9C,eAAe,MAAO,CAAC,GAAG,aAAa,qBAErC;IAEF,aAAa,MAAO,CAAC,GAAG,aAAa,qBAEnC;IAEF,gBAAgB,MAAO,CAAC,GAAG,aAAa,YAEtC;IAGF,WAAW,MAAO,CAAC,sBAGjB;CACH"}
@@ -0,0 +1,48 @@
1
+ import { isAggregateFlow, isCluster, isLocationClusterNode, } from './types';
2
+ export default class FlowmapAggregateAccessors {
3
+ constructor(accessors) {
4
+ this.getLocationId = (location) => isLocationClusterNode(location)
5
+ ? location.id
6
+ : this.accessors.getLocationId(location);
7
+ this.getLocationName = (location) => {
8
+ let name;
9
+ if (isLocationClusterNode(location) && isCluster(location)) {
10
+ name = location.name;
11
+ }
12
+ else if (this.accessors.getLocationName) {
13
+ name = this.accessors.getLocationName(location);
14
+ }
15
+ if (!name)
16
+ name = `${this.getLocationId(location)}`;
17
+ return name;
18
+ };
19
+ this.getLocationLat = (location) => isLocationClusterNode(location)
20
+ ? location.lat
21
+ : this.accessors.getLocationLat(location);
22
+ this.getLocationLon = (location) => isLocationClusterNode(location)
23
+ ? location.lon
24
+ : this.accessors.getLocationLon(location);
25
+ this.getFlowOriginId = (f) => {
26
+ return isAggregateFlow(f) ? f.origin : this.accessors.getFlowOriginId(f);
27
+ };
28
+ this.getFlowDestId = (f) => {
29
+ return isAggregateFlow(f) ? f.dest : this.accessors.getFlowDestId(f);
30
+ };
31
+ this.getFlowMagnitude = (f) => {
32
+ return isAggregateFlow(f) ? f.count : this.accessors.getFlowMagnitude(f);
33
+ };
34
+ // Note: Aggregate flows have no time
35
+ this.getFlowTime = (f) => {
36
+ const { getFlowTime } = this.accessors;
37
+ return getFlowTime ? getFlowTime(f) : undefined;
38
+ };
39
+ this.accessors = accessors;
40
+ }
41
+ setAccessors(accessors) {
42
+ this.accessors = accessors;
43
+ }
44
+ getFlowmapDataAccessors() {
45
+ return this.accessors;
46
+ }
47
+ }
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmxvd21hcEFnZ3JlZ2F0ZUFjY2Vzc29ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9GbG93bWFwQWdncmVnYXRlQWNjZXNzb3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFJTCxlQUFlLEVBQ2YsU0FBUyxFQUNULHFCQUFxQixHQUN0QixNQUFNLFNBQVMsQ0FBQztBQUVqQixNQUFNLENBQUMsT0FBTyxPQUFPLHlCQUF5QjtJQUU1QyxZQUFZLFNBQXFDO1FBWWpELGtCQUFhLEdBQUcsQ0FBQyxRQUF5QixFQUFtQixFQUFFLENBQzdELHFCQUFxQixDQUFDLFFBQVEsQ0FBQztZQUM3QixDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDYixDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFN0Msb0JBQWUsR0FBRyxDQUFDLFFBQXlCLEVBQVUsRUFBRTtZQUN0RCxJQUFJLElBQUksQ0FBQztZQUNULElBQUkscUJBQXFCLENBQUMsUUFBUSxDQUFDLElBQUksU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFO2dCQUMxRCxJQUFJLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQzthQUN0QjtpQkFBTSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxFQUFFO2dCQUN6QyxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsUUFBYSxDQUFDLENBQUM7YUFDdEQ7WUFDRCxJQUFJLENBQUMsSUFBSTtnQkFBRSxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDcEQsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDLENBQUM7UUFFRixtQkFBYyxHQUFHLENBQUMsUUFBeUIsRUFBVSxFQUFFLENBQ3JELHFCQUFxQixDQUFDLFFBQVEsQ0FBQztZQUM3QixDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUc7WUFDZCxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFOUMsbUJBQWMsR0FBRyxDQUFDLFFBQXlCLEVBQVUsRUFBRSxDQUNyRCxxQkFBcUIsQ0FBQyxRQUFRLENBQUM7WUFDN0IsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHO1lBQ2QsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRTlDLG9CQUFlLEdBQUcsQ0FBQyxDQUFvQixFQUFFLEVBQUU7WUFDekMsT0FBTyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNFLENBQUMsQ0FBQztRQUVGLGtCQUFhLEdBQUcsQ0FBQyxDQUFvQixFQUFFLEVBQUU7WUFDdkMsT0FBTyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3ZFLENBQUMsQ0FBQztRQUVGLHFCQUFnQixHQUFHLENBQUMsQ0FBb0IsRUFBRSxFQUFFO1lBQzFDLE9BQU8sZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNFLENBQUMsQ0FBQztRQUVGLHFDQUFxQztRQUNyQyxnQkFBVyxHQUFHLENBQUMsQ0FBSSxFQUFFLEVBQUU7WUFDckIsTUFBTSxFQUFDLFdBQVcsRUFBQyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDckMsT0FBTyxXQUFXLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQ2xELENBQUMsQ0FBQztRQXJEQSxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztJQUM3QixDQUFDO0lBRUQsWUFBWSxDQUFDLFNBQXFDO1FBQ2hELElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO0lBQzdCLENBQUM7SUFFRCx1QkFBdUI7UUFDckIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7Q0E2Q0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZ2dyZWdhdGVGbG93LFxuICBDbHVzdGVyTm9kZSxcbiAgRmxvd21hcERhdGFBY2Nlc3NvcnMsXG4gIGlzQWdncmVnYXRlRmxvdyxcbiAgaXNDbHVzdGVyLFxuICBpc0xvY2F0aW9uQ2x1c3Rlck5vZGUsXG59IGZyb20gJy4vdHlwZXMnO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBGbG93bWFwQWdncmVnYXRlQWNjZXNzb3JzPEwsIEY+IHtcbiAgcHJpdmF0ZSBhY2Nlc3NvcnM6IEZsb3dtYXBEYXRhQWNjZXNzb3JzPEwsIEY+O1xuICBjb25zdHJ1Y3RvcihhY2Nlc3NvcnM6IEZsb3dtYXBEYXRhQWNjZXNzb3JzPEwsIEY+KSB7XG4gICAgdGhpcy5hY2Nlc3NvcnMgPSBhY2Nlc3NvcnM7XG4gIH1cblxuICBzZXRBY2Nlc3NvcnMoYWNjZXNzb3JzOiBGbG93bWFwRGF0YUFjY2Vzc29yczxMLCBGPikge1xuICAgIHRoaXMuYWNjZXNzb3JzID0gYWNjZXNzb3JzO1xuICB9XG5cbiAgZ2V0Rmxvd21hcERhdGFBY2Nlc3NvcnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuYWNjZXNzb3JzO1xuICB9XG5cbiAgZ2V0TG9jYXRpb25JZCA9IChsb2NhdGlvbjogTCB8IENsdXN0ZXJOb2RlKTogc3RyaW5nIHwgbnVtYmVyID0+XG4gICAgaXNMb2NhdGlvbkNsdXN0ZXJOb2RlKGxvY2F0aW9uKVxuICAgICAgPyBsb2NhdGlvbi5pZFxuICAgICAgOiB0aGlzLmFjY2Vzc29ycy5nZXRMb2NhdGlvbklkKGxvY2F0aW9uKTtcblxuICBnZXRMb2NhdGlvbk5hbWUgPSAobG9jYXRpb246IEwgfCBDbHVzdGVyTm9kZSk6IHN0cmluZyA9PiB7XG4gICAgbGV0IG5hbWU7XG4gICAgaWYgKGlzTG9jYXRpb25DbHVzdGVyTm9kZShsb2NhdGlvbikgJiYgaXNDbHVzdGVyKGxvY2F0aW9uKSkge1xuICAgICAgbmFtZSA9IGxvY2F0aW9uLm5hbWU7XG4gICAgfSBlbHNlIGlmICh0aGlzLmFjY2Vzc29ycy5nZXRMb2NhdGlvbk5hbWUpIHtcbiAgICAgIG5hbWUgPSB0aGlzLmFjY2Vzc29ycy5nZXRMb2NhdGlvbk5hbWUobG9jYXRpb24gYXMgTCk7XG4gICAgfVxuICAgIGlmICghbmFtZSkgbmFtZSA9IGAke3RoaXMuZ2V0TG9jYXRpb25JZChsb2NhdGlvbil9YDtcbiAgICByZXR1cm4gbmFtZTtcbiAgfTtcblxuICBnZXRMb2NhdGlvbkxhdCA9IChsb2NhdGlvbjogTCB8IENsdXN0ZXJOb2RlKTogbnVtYmVyID0+XG4gICAgaXNMb2NhdGlvbkNsdXN0ZXJOb2RlKGxvY2F0aW9uKVxuICAgICAgPyBsb2NhdGlvbi5sYXRcbiAgICAgIDogdGhpcy5hY2Nlc3NvcnMuZ2V0TG9jYXRpb25MYXQobG9jYXRpb24pO1xuXG4gIGdldExvY2F0aW9uTG9uID0gKGxvY2F0aW9uOiBMIHwgQ2x1c3Rlck5vZGUpOiBudW1iZXIgPT5cbiAgICBpc0xvY2F0aW9uQ2x1c3Rlck5vZGUobG9jYXRpb24pXG4gICAgICA/IGxvY2F0aW9uLmxvblxuICAgICAgOiB0aGlzLmFjY2Vzc29ycy5nZXRMb2NhdGlvbkxvbihsb2NhdGlvbik7XG5cbiAgZ2V0Rmxvd09yaWdpbklkID0gKGY6IEYgfCBBZ2dyZWdhdGVGbG93KSA9PiB7XG4gICAgcmV0dXJuIGlzQWdncmVnYXRlRmxvdyhmKSA/IGYub3JpZ2luIDogdGhpcy5hY2Nlc3NvcnMuZ2V0Rmxvd09yaWdpbklkKGYpO1xuICB9O1xuXG4gIGdldEZsb3dEZXN0SWQgPSAoZjogRiB8IEFnZ3JlZ2F0ZUZsb3cpID0+IHtcbiAgICByZXR1cm4gaXNBZ2dyZWdhdGVGbG93KGYpID8gZi5kZXN0IDogdGhpcy5hY2Nlc3NvcnMuZ2V0Rmxvd0Rlc3RJZChmKTtcbiAgfTtcblxuICBnZXRGbG93TWFnbml0dWRlID0gKGY6IEYgfCBBZ2dyZWdhdGVGbG93KSA9PiB7XG4gICAgcmV0dXJuIGlzQWdncmVnYXRlRmxvdyhmKSA/IGYuY291bnQgOiB0aGlzLmFjY2Vzc29ycy5nZXRGbG93TWFnbml0dWRlKGYpO1xuICB9O1xuXG4gIC8vIE5vdGU6IEFnZ3JlZ2F0ZSBmbG93cyBoYXZlIG5vIHRpbWVcbiAgZ2V0Rmxvd1RpbWUgPSAoZjogRikgPT4ge1xuICAgIGNvbnN0IHtnZXRGbG93VGltZX0gPSB0aGlzLmFjY2Vzc29ycztcbiAgICByZXR1cm4gZ2V0Rmxvd1RpbWUgPyBnZXRGbG93VGltZShmKSA6IHVuZGVmaW5lZDtcbiAgfTtcbn1cbiJdfQ==
@@ -0,0 +1,213 @@
1
+ import { ScaleLinear } from 'd3-scale';
2
+ import { ParametricSelector } from 'reselect';
3
+ import { ClusterIndex, LocationWeightGetter } from './cluster/ClusterIndex';
4
+ import { ColorsRGBA, DiffColorsRGBA } from './colors';
5
+ import FlowmapAggregateAccessors from './FlowmapAggregateAccessors';
6
+ import { FlowmapState } from './FlowmapState';
7
+ import { TimeGranularityKey } from './time';
8
+ import { AggregateFlow, Cluster, ClusterLevels, ClusterNode, CountByTime, FlowCirclesLayerAttributes, FlowLinesLayerAttributes, FlowmapData, FlowmapDataAccessors, LayersData, LocationFilterMode, LocationTotals } from './types';
9
+ declare type KDBushTree = any;
10
+ export declare type Selector<L, F, T> = ParametricSelector<FlowmapState, FlowmapData<L, F>, T>;
11
+ export default class FlowmapSelectors<L, F> {
12
+ accessors: FlowmapAggregateAccessors<L, F>;
13
+ constructor(accessors: FlowmapDataAccessors<L, F>);
14
+ setAccessors(accessors: FlowmapDataAccessors<L, F>): void;
15
+ getFlowsFromProps: (state: FlowmapState, props: FlowmapData<L, F>) => Iterable<F> | undefined;
16
+ getLocationsFromProps: (state: FlowmapState, props: FlowmapData<L, F>) => Iterable<L> | undefined;
17
+ getClusterLevelsFromProps: (state: FlowmapState, props: FlowmapData<L, F>) => ClusterLevels | undefined;
18
+ getMaxTopFlowsDisplayNum: (state: FlowmapState, props: FlowmapData<L, F>) => number;
19
+ getSelectedLocations: (state: FlowmapState, props: FlowmapData<L, F>) => string[] | undefined;
20
+ getLocationFilterMode: (state: FlowmapState, props: FlowmapData<L, F>) => LocationFilterMode | undefined;
21
+ getClusteringEnabled: (state: FlowmapState, props: FlowmapData<L, F>) => boolean;
22
+ getLocationTotalsEnabled: (state: FlowmapState, props: FlowmapData<L, F>) => boolean;
23
+ getLocationLabelsEnabled: (state: FlowmapState, props: FlowmapData<L, F>) => boolean;
24
+ getZoom: (state: FlowmapState, props: FlowmapData<L, F>) => number | undefined;
25
+ getViewport: (state: FlowmapState, props: FlowmapData<L, F>) => import("./types").ViewportProps;
26
+ getSelectedTimeRange: (state: FlowmapState, props: FlowmapData<L, F>) => [Date, Date] | undefined;
27
+ getColorScheme: Selector<L, F, string | string[] | undefined>;
28
+ getDarkMode: Selector<L, F, boolean>;
29
+ getFadeEnabled: Selector<L, F, boolean>;
30
+ getFadeOpacityEnabled: Selector<L, F, boolean>;
31
+ getFadeAmount: Selector<L, F, number>;
32
+ getAnimate: Selector<L, F, boolean>;
33
+ getInvalidLocationIds: Selector<L, F, (string | number)[] | undefined>;
34
+ getLocations: Selector<L, F, Iterable<L> | undefined>;
35
+ getLocationIds: Selector<L, F, Set<string | number> | undefined>;
36
+ getSelectedLocationsSet: Selector<L, F, Set<string> | undefined>;
37
+ getSortedFlowsForKnownLocations: Selector<L, F, F[] | undefined>;
38
+ getActualTimeExtent: Selector<L, F, [Date, Date] | undefined>;
39
+ getTimeGranularityKey: Selector<L, F, TimeGranularityKey | undefined>;
40
+ getTimeExtent: Selector<L, F, [Date, Date] | undefined>;
41
+ getSortedFlowsForKnownLocationsFilteredByTime: Selector<L, F, F[] | undefined>;
42
+ getLocationsHavingFlows: Selector<L, F, Iterable<L> | undefined>;
43
+ getLocationsById: Selector<L, F, Map<string | number, L> | undefined>;
44
+ getLocationWeightGetter: Selector<L, F, LocationWeightGetter | undefined>;
45
+ getClusterLevels: Selector<L, F, ClusterLevels | undefined>;
46
+ getClusterIndex: Selector<L, F, ClusterIndex<F> | undefined>;
47
+ getAvailableClusterZoomLevels: ((state: {
48
+ filter?: import("./FlowmapState").FilterState | undefined;
49
+ settings: import("./FlowmapState").SettingsState;
50
+ viewport: import("./types").ViewportProps;
51
+ }, params_0: {
52
+ locations: Iterable<L> | undefined;
53
+ flows: Iterable<F> | undefined;
54
+ clusterLevels?: ClusterLevels | undefined;
55
+ }, ...params_1: {}[]) => number[] | undefined) & import("reselect").OutputSelectorFields<(args_0: ClusterIndex<F> | undefined, args_1: string[] | undefined) => number[] & {
56
+ clearCache: () => void;
57
+ }> & {
58
+ clearCache: () => void;
59
+ };
60
+ _getClusterZoom: Selector<L, F, number | undefined>;
61
+ getClusterZoom: (state: FlowmapState, props: FlowmapData<L, F>) => number | undefined;
62
+ getLocationsForSearchBox: Selector<L, F, (L | Cluster)[] | undefined>;
63
+ getDiffMode: Selector<L, F, boolean>;
64
+ _getFlowmapColors: ((state: {
65
+ filter?: import("./FlowmapState").FilterState | undefined;
66
+ settings: import("./FlowmapState").SettingsState;
67
+ viewport: import("./types").ViewportProps;
68
+ }, params_0: {
69
+ locations: Iterable<L> | undefined;
70
+ flows: Iterable<F> | undefined;
71
+ clusterLevels?: ClusterLevels | undefined;
72
+ }, ...params_1: {}[]) => import("./colors").DiffColors | import("./colors").Colors) & import("reselect").OutputSelectorFields<(args_0: boolean, args_1: string | string[] | undefined, args_2: boolean, args_3: boolean, args_4: boolean, args_5: number, args_6: boolean) => (import("./colors").DiffColors | import("./colors").Colors) & {
73
+ clearCache: () => void;
74
+ }> & {
75
+ clearCache: () => void;
76
+ };
77
+ getFlowmapColorsRGBA: ((state: {
78
+ filter?: import("./FlowmapState").FilterState | undefined;
79
+ settings: import("./FlowmapState").SettingsState;
80
+ viewport: import("./types").ViewportProps;
81
+ }, params_0: {
82
+ locations: Iterable<L> | undefined;
83
+ flows: Iterable<F> | undefined;
84
+ clusterLevels?: ClusterLevels | undefined;
85
+ }, ...params_1: {}[]) => ColorsRGBA | DiffColorsRGBA) & import("reselect").OutputSelectorFields<(args_0: import("./colors").DiffColors | import("./colors").Colors) => (ColorsRGBA | DiffColorsRGBA) & {
86
+ clearCache: () => void;
87
+ }> & {
88
+ clearCache: () => void;
89
+ };
90
+ getUnknownLocations: Selector<L, F, Set<string | number> | undefined>;
91
+ getSortedAggregatedFilteredFlows: Selector<L, F, (F | AggregateFlow)[] | undefined>;
92
+ getExpandedSelectedLocationsSet: Selector<L, F, Set<string> | undefined>;
93
+ getTotalCountsByTime: Selector<L, F, CountByTime[] | undefined>;
94
+ getMaxLocationCircleSize: Selector<L, F, number>;
95
+ getViewportBoundingBox: Selector<L, F, [number, number, number, number]>;
96
+ getLocationsForZoom: Selector<L, F, Iterable<L> | ClusterNode[] | undefined>;
97
+ getLocationTotals: Selector<L, F, Map<string | number, LocationTotals> | undefined>;
98
+ getLocationsTree: Selector<L, F, KDBushTree>;
99
+ _getLocationIdsInViewport: Selector<L, F, Set<string> | undefined>;
100
+ getLocationIdsInViewport: Selector<L, F, Set<string | number> | undefined>;
101
+ getTotalUnfilteredCount: Selector<L, F, number | undefined>;
102
+ getTotalFilteredCount: Selector<L, F, number | undefined>;
103
+ _getLocationTotalsExtent: Selector<L, F, [number, number] | undefined>;
104
+ _getLocationTotalsForViewportExtent: Selector<L, F, [
105
+ number,
106
+ number
107
+ ] | undefined>;
108
+ getLocationTotalsExtent: (state: FlowmapState, props: FlowmapData<L, F>) => [number, number] | undefined;
109
+ getFlowsForFlowmapLayer: Selector<L, F, (F | AggregateFlow)[] | undefined>;
110
+ _getFlowMagnitudeExtent: Selector<L, F, [number, number] | undefined>;
111
+ _getAdaptiveFlowMagnitudeExtent: Selector<L, F, [
112
+ number,
113
+ number
114
+ ] | undefined>;
115
+ getFlowMagnitudeExtent: (state: FlowmapState, props: FlowmapData<L, F>) => [number, number] | undefined;
116
+ getLocationMaxAbsTotalGetter: ((state: {
117
+ filter?: import("./FlowmapState").FilterState | undefined;
118
+ settings: import("./FlowmapState").SettingsState;
119
+ viewport: import("./types").ViewportProps;
120
+ }, params_0: {
121
+ locations: Iterable<L> | undefined;
122
+ flows: Iterable<F> | undefined;
123
+ clusterLevels?: ClusterLevels | undefined;
124
+ }, ...params_1: {}[]) => (locationId: string) => number | undefined) & import("reselect").OutputSelectorFields<(args_0: Map<string | number, LocationTotals> | undefined) => ((locationId: string) => number | undefined) & {
125
+ clearCache: () => void;
126
+ }> & {
127
+ clearCache: () => void;
128
+ };
129
+ getFlowThicknessScale: ((state: {
130
+ filter?: import("./FlowmapState").FilterState | undefined;
131
+ settings: import("./FlowmapState").SettingsState;
132
+ viewport: import("./types").ViewportProps;
133
+ }, params_0: {
134
+ locations: Iterable<L> | undefined;
135
+ flows: Iterable<F> | undefined;
136
+ clusterLevels?: ClusterLevels | undefined;
137
+ }) => ScaleLinear<number, number, never> | undefined) & import("reselect").OutputSelectorFields<(args_0: [number, number] | undefined) => ScaleLinear<number, number, never> & {
138
+ clearCache: () => void;
139
+ }> & {
140
+ clearCache: () => void;
141
+ };
142
+ getCircleSizeScale: ((state: {
143
+ filter?: import("./FlowmapState").FilterState | undefined;
144
+ settings: import("./FlowmapState").SettingsState;
145
+ viewport: import("./types").ViewportProps;
146
+ }, params_0: {
147
+ locations: Iterable<L> | undefined;
148
+ flows: Iterable<F> | undefined;
149
+ clusterLevels?: ClusterLevels | undefined;
150
+ }, ...params_1: {}[]) => import("d3-scale").ScalePower<number, number, never> | (() => number) | undefined) & import("reselect").OutputSelectorFields<(args_0: number, args_1: boolean, args_2: [number, number] | undefined) => (import("d3-scale").ScalePower<number, number, never> | (() => number) | undefined) & {
151
+ clearCache: () => void;
152
+ }> & {
153
+ clearCache: () => void;
154
+ };
155
+ getInCircleSizeGetter: ((state: {
156
+ filter?: import("./FlowmapState").FilterState | undefined;
157
+ settings: import("./FlowmapState").SettingsState;
158
+ viewport: import("./types").ViewportProps;
159
+ }, params_0: {
160
+ locations: Iterable<L> | undefined;
161
+ flows: Iterable<F> | undefined;
162
+ clusterLevels?: ClusterLevels | undefined;
163
+ }, ...params_1: {}[]) => (locationId: string | number) => number) & import("reselect").OutputSelectorFields<(args_0: import("d3-scale").ScalePower<number, number, never> | (() => number) | undefined, args_1: Map<string | number, LocationTotals> | undefined) => ((locationId: string | number) => number) & {
164
+ clearCache: () => void;
165
+ }> & {
166
+ clearCache: () => void;
167
+ };
168
+ getOutCircleSizeGetter: ((state: {
169
+ filter?: import("./FlowmapState").FilterState | undefined;
170
+ settings: import("./FlowmapState").SettingsState;
171
+ viewport: import("./types").ViewportProps;
172
+ }, params_0: {
173
+ locations: Iterable<L> | undefined;
174
+ flows: Iterable<F> | undefined;
175
+ clusterLevels?: ClusterLevels | undefined;
176
+ }, ...params_1: {}[]) => (locationId: string | number) => number) & import("reselect").OutputSelectorFields<(args_0: import("d3-scale").ScalePower<number, number, never> | (() => number) | undefined, args_1: Map<string | number, LocationTotals> | undefined) => ((locationId: string | number) => number) & {
177
+ clearCache: () => void;
178
+ }> & {
179
+ clearCache: () => void;
180
+ };
181
+ getSortedLocationsForZoom: Selector<L, F, L[] | ClusterNode[] | undefined>;
182
+ getLocationsForFlowmapLayer: Selector<L, F, Array<L | ClusterNode> | undefined>;
183
+ getLocationsForFlowmapLayerById: Selector<L, F, Map<string, L | ClusterNode> | undefined>;
184
+ getLocationOrClusterByIdGetter: ((state: {
185
+ filter?: import("./FlowmapState").FilterState | undefined;
186
+ settings: import("./FlowmapState").SettingsState;
187
+ viewport: import("./types").ViewportProps;
188
+ }, params_0: {
189
+ locations: Iterable<L> | undefined;
190
+ flows: Iterable<F> | undefined;
191
+ clusterLevels?: ClusterLevels | undefined;
192
+ }, ...params_1: {}[]) => (id: string | number) => Cluster | L | undefined) & import("reselect").OutputSelectorFields<(args_0: ClusterIndex<F> | undefined, args_1: Map<string | number, L> | undefined) => ((id: string | number) => Cluster | L | undefined) & {
193
+ clearCache: () => void;
194
+ }> & {
195
+ clearCache: () => void;
196
+ };
197
+ getLayersData: Selector<L, F, LayersData>;
198
+ prepareLayersData(state: FlowmapState, props: FlowmapData<L, F>): LayersData;
199
+ _prepareLayersData(locations: (L | ClusterNode)[] | undefined, flows: (F | AggregateFlow)[] | undefined, flowmapColors: DiffColorsRGBA | ColorsRGBA, locationsById: Map<string | number, L | ClusterNode> | undefined, locationIdsInViewport: Set<string | number> | undefined, getInCircleSize: (locationId: string | number) => number, getOutCircleSize: (locationId: string | number) => number, flowThicknessScale: ScaleLinear<number, number, never> | undefined, animationEnabled: boolean, locationLabelsEnabled: boolean): LayersData;
200
+ getLocationsInBbox(tree: KDBushTree, bbox: [number, number, number, number]): Array<L> | undefined;
201
+ _getLocationsInBboxIndices(tree: KDBushTree, bbox: [number, number, number, number]): any;
202
+ isFlowInSelection(flow: F | AggregateFlow, selectedLocationsSet: Set<string | number> | undefined, locationFilterMode?: LocationFilterMode): boolean;
203
+ }
204
+ /**
205
+ * This is used to augment hover picking info so that we can displace location tooltip
206
+ * @param circleAttributes
207
+ * @param index
208
+ */
209
+ export declare function getOuterCircleRadiusByIndex(circleAttributes: FlowCirclesLayerAttributes, index: number): number;
210
+ export declare function getLocationCoordsByIndex(circleAttributes: FlowCirclesLayerAttributes, index: number): [number, number];
211
+ export declare function getFlowLineAttributesByIndex(lineAttributes: FlowLinesLayerAttributes, index: number): FlowLinesLayerAttributes;
212
+ export {};
213
+ //# sourceMappingURL=FlowmapSelectors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FlowmapSelectors.d.ts","sourceRoot":"","sources":["../src/FlowmapSelectors.ts"],"names":[],"mappings":"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"}