@flowmap.gl/data 8.0.0-alpha.0 → 8.0.0-alpha.12

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 (57) 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 → FlowmapSelectors.d.ts} +78 -46
  5. package/dist/FlowmapSelectors.d.ts.map +1 -0
  6. package/dist/FlowmapSelectors.js +863 -0
  7. package/dist/{FlowMapState.d.ts → FlowmapState.d.ts} +6 -3
  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 +4 -1
  30. package/dist/util.d.ts.map +1 -1
  31. package/dist/util.js +11 -4
  32. package/package.json +5 -4
  33. package/src/{FlowMapAggregateAccessors.ts → FlowmapAggregateAccessors.ts} +14 -9
  34. package/src/{FlowMapSelectors.ts → FlowmapSelectors.ts} +316 -218
  35. package/src/{FlowMapState.ts → FlowmapState.ts} +5 -2
  36. package/src/cluster/cluster.ts +7 -4
  37. package/src/colors.ts +65 -21
  38. package/src/getViewStateForLocations.ts +41 -35
  39. package/src/index.ts +6 -6
  40. package/src/provider/{FlowMapDataProvider.ts → FlowmapDataProvider.ts} +14 -12
  41. package/src/provider/LocalFlowmapDataProvider.ts +122 -0
  42. package/src/types.ts +6 -4
  43. package/src/util.ts +11 -3
  44. package/dist/FlowMapAggregateAccessors.d.ts +0 -15
  45. package/dist/FlowMapAggregateAccessors.d.ts.map +0 -1
  46. package/dist/FlowMapAggregateAccessors.js +0 -43
  47. package/dist/FlowMapSelectors.d.ts.map +0 -1
  48. package/dist/FlowMapSelectors.js +0 -831
  49. package/dist/FlowMapState.d.ts.map +0 -1
  50. package/dist/FlowMapState.js +0 -2
  51. package/dist/provider/FlowMapDataProvider.d.ts +0 -16
  52. package/dist/provider/FlowMapDataProvider.d.ts.map +0 -1
  53. package/dist/provider/FlowMapDataProvider.js +0 -17
  54. package/dist/provider/LocalFlowMapDataProvider.d.ts +0 -20
  55. package/dist/provider/LocalFlowMapDataProvider.d.ts.map +0 -1
  56. package/dist/provider/LocalFlowMapDataProvider.js +0 -87
  57. package/src/provider/LocalFlowMapDataProvider.ts +0 -108
@@ -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;
8
+ getLocationName: (location: L | ClusterNode) => string;
9
+ getLocationLat: (location: L | ClusterNode) => number;
10
+ getLocationLon: (location: L | ClusterNode) => number;
11
+ getFlowOriginId: (f: F | AggregateFlow) => string;
12
+ getFlowDestId: (f: F | AggregateFlow) => string;
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,CAGN;IAE7C,eAAe,aAAc,CAAC,GAAG,WAAW,KAAG,MAAM,CAGJ;IAMjD,cAAc,aAAc,CAAC,GAAG,WAAW,KAAG,MAAM,CAGN;IAE9C,cAAc,aAAc,CAAC,GAAG,WAAW,KAAG,MAAM,CAGN;IAE9C,eAAe,MAAO,CAAC,GAAG,aAAa,YAErC;IAEF,aAAa,MAAO,CAAC,GAAG,aAAa,YAEnC;IAEF,gBAAgB,MAAO,CAAC,GAAG,aAAa,YAEtC;IAGF,WAAW,MAAO,CAAC,sBAGjB;CACH"}
@@ -0,0 +1,46 @@
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
+ var _a;
9
+ return (_a = (isLocationClusterNode(location) && isCluster(location)
10
+ ? location.name
11
+ : undefined)) !== null && _a !== void 0 ? _a : this.getLocationId(location);
12
+ };
13
+ // ? location.name // TODO getLocationName for locations and clusters
14
+ // : this.accessors.getLocationName
15
+ // ? this.accessors.getLocationName(location)
16
+ // : this.getLocationId(location);
17
+ this.getLocationLat = (location) => isLocationClusterNode(location)
18
+ ? location.lat
19
+ : this.accessors.getLocationLat(location);
20
+ this.getLocationLon = (location) => isLocationClusterNode(location)
21
+ ? location.lon
22
+ : this.accessors.getLocationLon(location);
23
+ this.getFlowOriginId = (f) => {
24
+ return isAggregateFlow(f) ? f.origin : this.accessors.getFlowOriginId(f);
25
+ };
26
+ this.getFlowDestId = (f) => {
27
+ return isAggregateFlow(f) ? f.dest : this.accessors.getFlowDestId(f);
28
+ };
29
+ this.getFlowMagnitude = (f) => {
30
+ return isAggregateFlow(f) ? f.count : this.accessors.getFlowMagnitude(f);
31
+ };
32
+ // Note: Aggregate flows have no time
33
+ this.getFlowTime = (f) => {
34
+ const { getFlowTime } = this.accessors;
35
+ return getFlowTime ? getFlowTime(f) : undefined;
36
+ };
37
+ this.accessors = accessors;
38
+ }
39
+ setAccessors(accessors) {
40
+ this.accessors = accessors;
41
+ }
42
+ getFlowmapDataAccessors() {
43
+ return this.accessors;
44
+ }
45
+ }
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmxvd21hcEFnZ3JlZ2F0ZUFjY2Vzc29ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9GbG93bWFwQWdncmVnYXRlQWNjZXNzb3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFJTCxlQUFlLEVBQ2YsU0FBUyxFQUNULHFCQUFxQixHQUN0QixNQUFNLFNBQVMsQ0FBQztBQUVqQixNQUFNLENBQUMsT0FBTyxPQUFPLHlCQUF5QjtJQUU1QyxZQUFZLFNBQXFDO1FBWWpELGtCQUFhLEdBQUcsQ0FBQyxRQUF5QixFQUFVLEVBQUUsQ0FDcEQscUJBQXFCLENBQUMsUUFBUSxDQUFDO1lBQzdCLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUNiLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUU3QyxvQkFBZSxHQUFHLENBQUMsUUFBeUIsRUFBVSxFQUFFOztZQUN0RCxPQUFBLE1BQUEsQ0FBQyxxQkFBcUIsQ0FBQyxRQUFRLENBQUMsSUFBSSxTQUFTLENBQUMsUUFBUSxDQUFDO2dCQUNyRCxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUk7Z0JBQ2YsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxtQ0FBSSxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFBO1NBQUEsQ0FBQztRQUNqRCxxRUFBcUU7UUFDckUsbUNBQW1DO1FBQ25DLDZDQUE2QztRQUM3QyxrQ0FBa0M7UUFFbEMsbUJBQWMsR0FBRyxDQUFDLFFBQXlCLEVBQVUsRUFBRSxDQUNyRCxxQkFBcUIsQ0FBQyxRQUFRLENBQUM7WUFDN0IsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHO1lBQ2QsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRTlDLG1CQUFjLEdBQUcsQ0FBQyxRQUF5QixFQUFVLEVBQUUsQ0FDckQscUJBQXFCLENBQUMsUUFBUSxDQUFDO1lBQzdCLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRztZQUNkLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUU5QyxvQkFBZSxHQUFHLENBQUMsQ0FBb0IsRUFBRSxFQUFFO1lBQ3pDLE9BQU8sZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMzRSxDQUFDLENBQUM7UUFFRixrQkFBYSxHQUFHLENBQUMsQ0FBb0IsRUFBRSxFQUFFO1lBQ3ZDLE9BQU8sZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN2RSxDQUFDLENBQUM7UUFFRixxQkFBZ0IsR0FBRyxDQUFDLENBQW9CLEVBQUUsRUFBRTtZQUMxQyxPQUFPLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMzRSxDQUFDLENBQUM7UUFFRixxQ0FBcUM7UUFDckMsZ0JBQVcsR0FBRyxDQUFDLENBQUksRUFBRSxFQUFFO1lBQ3JCLE1BQU0sRUFBQyxXQUFXLEVBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1lBQ3JDLE9BQU8sV0FBVyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUNsRCxDQUFDLENBQUM7UUFuREEsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7SUFDN0IsQ0FBQztJQUVELFlBQVksQ0FBQyxTQUFxQztRQUNoRCxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztJQUM3QixDQUFDO0lBRUQsdUJBQXVCO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0NBMkNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWdncmVnYXRlRmxvdyxcbiAgQ2x1c3Rlck5vZGUsXG4gIEZsb3dtYXBEYXRhQWNjZXNzb3JzLFxuICBpc0FnZ3JlZ2F0ZUZsb3csXG4gIGlzQ2x1c3RlcixcbiAgaXNMb2NhdGlvbkNsdXN0ZXJOb2RlLFxufSBmcm9tICcuL3R5cGVzJztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRmxvd21hcEFnZ3JlZ2F0ZUFjY2Vzc29yczxMLCBGPiB7XG4gIHByaXZhdGUgYWNjZXNzb3JzOiBGbG93bWFwRGF0YUFjY2Vzc29yczxMLCBGPjtcbiAgY29uc3RydWN0b3IoYWNjZXNzb3JzOiBGbG93bWFwRGF0YUFjY2Vzc29yczxMLCBGPikge1xuICAgIHRoaXMuYWNjZXNzb3JzID0gYWNjZXNzb3JzO1xuICB9XG5cbiAgc2V0QWNjZXNzb3JzKGFjY2Vzc29yczogRmxvd21hcERhdGFBY2Nlc3NvcnM8TCwgRj4pIHtcbiAgICB0aGlzLmFjY2Vzc29ycyA9IGFjY2Vzc29ycztcbiAgfVxuXG4gIGdldEZsb3dtYXBEYXRhQWNjZXNzb3JzKCkge1xuICAgIHJldHVybiB0aGlzLmFjY2Vzc29ycztcbiAgfVxuXG4gIGdldExvY2F0aW9uSWQgPSAobG9jYXRpb246IEwgfCBDbHVzdGVyTm9kZSk6IHN0cmluZyA9PlxuICAgIGlzTG9jYXRpb25DbHVzdGVyTm9kZShsb2NhdGlvbilcbiAgICAgID8gbG9jYXRpb24uaWRcbiAgICAgIDogdGhpcy5hY2Nlc3NvcnMuZ2V0TG9jYXRpb25JZChsb2NhdGlvbik7XG5cbiAgZ2V0TG9jYXRpb25OYW1lID0gKGxvY2F0aW9uOiBMIHwgQ2x1c3Rlck5vZGUpOiBzdHJpbmcgPT5cbiAgICAoaXNMb2NhdGlvbkNsdXN0ZXJOb2RlKGxvY2F0aW9uKSAmJiBpc0NsdXN0ZXIobG9jYXRpb24pXG4gICAgICA/IGxvY2F0aW9uLm5hbWVcbiAgICAgIDogdW5kZWZpbmVkKSA/PyB0aGlzLmdldExvY2F0aW9uSWQobG9jYXRpb24pO1xuICAvLyA/IGxvY2F0aW9uLm5hbWUgLy8gVE9ETyBnZXRMb2NhdGlvbk5hbWUgZm9yIGxvY2F0aW9ucyBhbmQgY2x1c3RlcnNcbiAgLy8gOiB0aGlzLmFjY2Vzc29ycy5nZXRMb2NhdGlvbk5hbWVcbiAgLy8gPyB0aGlzLmFjY2Vzc29ycy5nZXRMb2NhdGlvbk5hbWUobG9jYXRpb24pXG4gIC8vIDogdGhpcy5nZXRMb2NhdGlvbklkKGxvY2F0aW9uKTtcblxuICBnZXRMb2NhdGlvbkxhdCA9IChsb2NhdGlvbjogTCB8IENsdXN0ZXJOb2RlKTogbnVtYmVyID0+XG4gICAgaXNMb2NhdGlvbkNsdXN0ZXJOb2RlKGxvY2F0aW9uKVxuICAgICAgPyBsb2NhdGlvbi5sYXRcbiAgICAgIDogdGhpcy5hY2Nlc3NvcnMuZ2V0TG9jYXRpb25MYXQobG9jYXRpb24pO1xuXG4gIGdldExvY2F0aW9uTG9uID0gKGxvY2F0aW9uOiBMIHwgQ2x1c3Rlck5vZGUpOiBudW1iZXIgPT5cbiAgICBpc0xvY2F0aW9uQ2x1c3Rlck5vZGUobG9jYXRpb24pXG4gICAgICA/IGxvY2F0aW9uLmxvblxuICAgICAgOiB0aGlzLmFjY2Vzc29ycy5nZXRMb2NhdGlvbkxvbihsb2NhdGlvbik7XG5cbiAgZ2V0Rmxvd09yaWdpbklkID0gKGY6IEYgfCBBZ2dyZWdhdGVGbG93KSA9PiB7XG4gICAgcmV0dXJuIGlzQWdncmVnYXRlRmxvdyhmKSA/IGYub3JpZ2luIDogdGhpcy5hY2Nlc3NvcnMuZ2V0Rmxvd09yaWdpbklkKGYpO1xuICB9O1xuXG4gIGdldEZsb3dEZXN0SWQgPSAoZjogRiB8IEFnZ3JlZ2F0ZUZsb3cpID0+IHtcbiAgICByZXR1cm4gaXNBZ2dyZWdhdGVGbG93KGYpID8gZi5kZXN0IDogdGhpcy5hY2Nlc3NvcnMuZ2V0Rmxvd0Rlc3RJZChmKTtcbiAgfTtcblxuICBnZXRGbG93TWFnbml0dWRlID0gKGY6IEYgfCBBZ2dyZWdhdGVGbG93KSA9PiB7XG4gICAgcmV0dXJuIGlzQWdncmVnYXRlRmxvdyhmKSA/IGYuY291bnQgOiB0aGlzLmFjY2Vzc29ycy5nZXRGbG93TWFnbml0dWRlKGYpO1xuICB9O1xuXG4gIC8vIE5vdGU6IEFnZ3JlZ2F0ZSBmbG93cyBoYXZlIG5vIHRpbWVcbiAgZ2V0Rmxvd1RpbWUgPSAoZjogRikgPT4ge1xuICAgIGNvbnN0IHtnZXRGbG93VGltZX0gPSB0aGlzLmFjY2Vzc29ycztcbiAgICByZXR1cm4gZ2V0Rmxvd1RpbWUgPyBnZXRGbG93VGltZShmKSA6IHVuZGVmaW5lZDtcbiAgfTtcbn1cbiJdfQ==
@@ -1,27 +1,31 @@
1
+ import { ScaleLinear } from 'd3-scale';
1
2
  import { ParametricSelector } from 'reselect';
2
3
  import { ClusterIndex } from './cluster/ClusterIndex';
3
- import FlowMapAggregateAccessors from './FlowMapAggregateAccessors';
4
- import { FlowMapState } from './FlowMapState';
4
+ import { ColorsRGBA, DiffColorsRGBA } from './colors';
5
+ import FlowmapAggregateAccessors from './FlowmapAggregateAccessors';
6
+ import { FlowmapState } from './FlowmapState';
5
7
  import { TimeGranularityKey } from './time';
6
- import { AggregateFlow, Cluster, ClusterNode, CountByTime, FlowCirclesLayerAttributes, FlowLinesLayerAttributes, FlowMapData, FlowMapDataAccessors, LayersData, LocationFilterMode, LocationTotals } from './types';
8
+ import { AggregateFlow, Cluster, ClusterNode, CountByTime, FlowCirclesLayerAttributes, FlowLinesLayerAttributes, FlowmapData, FlowmapDataAccessors, LayersData, LocationFilterMode, LocationTotals } from './types';
7
9
  declare type KDBushTree = any;
8
- export declare type Selector<L, F, T> = ParametricSelector<FlowMapState, FlowMapData<L, F>, T>;
9
- export default class FlowMapSelectors<L, F> {
10
- accessors: FlowMapAggregateAccessors<L, F>;
11
- constructor(accessors: FlowMapDataAccessors<L, F>);
12
- setAccessors(accessors: FlowMapDataAccessors<L, F>): void;
13
- getFetchedFlows: (state: FlowMapState, props: FlowMapData<L, F>) => F[] | undefined;
14
- getFetchedLocations: (state: FlowMapState, props: FlowMapData<L, F>) => L[] | undefined;
15
- getSelectedLocations: (state: FlowMapState, props: FlowMapData<L, F>) => string[] | undefined;
16
- getLocationFilterMode: (state: FlowMapState, props: FlowMapData<L, F>) => LocationFilterMode;
17
- getClusteringEnabled: (state: FlowMapState, props: FlowMapData<L, F>) => boolean;
18
- getLocationTotalsEnabled: (state: FlowMapState, props: FlowMapData<L, F>) => boolean;
19
- getZoom: (state: FlowMapState, props: FlowMapData<L, F>) => number;
20
- getViewport: (state: FlowMapState, props: FlowMapData<L, F>) => import("./types").ViewportProps;
21
- getSelectedTimeRange: (state: FlowMapState, props: FlowMapData<L, F>) => [Date, Date] | undefined;
22
- getColorSchemeKey: Selector<L, F, string | undefined>;
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
+ getFetchedFlows: (state: FlowmapState, props: FlowmapData<L, F>) => F[] | undefined;
16
+ getFetchedLocations: (state: FlowmapState, props: FlowmapData<L, F>) => L[] | undefined;
17
+ getMaxTopFlowsDisplayNum: (state: FlowmapState, props: FlowmapData<L, F>) => number;
18
+ getSelectedLocations: (state: FlowmapState, props: FlowmapData<L, F>) => string[] | undefined;
19
+ getLocationFilterMode: (state: FlowmapState, props: FlowmapData<L, F>) => LocationFilterMode;
20
+ getClusteringEnabled: (state: FlowmapState, props: FlowmapData<L, F>) => boolean;
21
+ getLocationTotalsEnabled: (state: FlowmapState, props: FlowmapData<L, F>) => boolean;
22
+ getZoom: (state: FlowmapState, props: FlowmapData<L, F>) => number;
23
+ getViewport: (state: FlowmapState, props: FlowmapData<L, F>) => import("./types").ViewportProps;
24
+ getSelectedTimeRange: (state: FlowmapState, props: FlowmapData<L, F>) => [Date, Date] | undefined;
25
+ getColorScheme: Selector<L, F, string | string[] | undefined>;
23
26
  getDarkMode: Selector<L, F, boolean>;
24
27
  getFadeEnabled: Selector<L, F, boolean>;
28
+ getFadeOpacityEnabled: Selector<L, F, boolean>;
25
29
  getFadeAmount: Selector<L, F, number>;
26
30
  getAnimate: Selector<L, F, boolean>;
27
31
  getInvalidLocationIds: Selector<L, F, string[] | undefined>;
@@ -37,8 +41,8 @@ export default class FlowMapSelectors<L, F> {
37
41
  getLocationsById: Selector<L, F, Map<string, L> | undefined>;
38
42
  getClusterIndex: Selector<L, F, ClusterIndex<F> | undefined>;
39
43
  getAvailableClusterZoomLevels: ((state: {
40
- filterState: import("./FlowMapState").FilterState;
41
- settingsState: import("./FlowMapState").SettingsState;
44
+ filterState: import("./FlowmapState").FilterState;
45
+ settingsState: import("./FlowmapState").SettingsState;
42
46
  viewport: import("./types").ViewportProps;
43
47
  }, params_0: {
44
48
  locations: L[] | undefined;
@@ -49,36 +53,35 @@ export default class FlowMapSelectors<L, F> {
49
53
  clearCache: () => void;
50
54
  };
51
55
  _getClusterZoom: Selector<L, F, number | undefined>;
52
- getClusterZoom: (state: FlowMapState, props: FlowMapData<L, F>) => number | undefined;
56
+ getClusterZoom: (state: FlowmapState, props: FlowmapData<L, F>) => number | undefined;
53
57
  getLocationsForSearchBox: Selector<L, F, (L | Cluster)[] | undefined>;
54
58
  getDiffMode: Selector<L, F, boolean>;
55
- _getFlowMapColors: ((state: {
56
- filterState: import("./FlowMapState").FilterState;
57
- settingsState: import("./FlowMapState").SettingsState;
59
+ _getFlowmapColors: ((state: {
60
+ filterState: import("./FlowmapState").FilterState;
61
+ settingsState: import("./FlowmapState").SettingsState;
58
62
  viewport: import("./types").ViewportProps;
59
63
  }, params_0: {
60
64
  locations: L[] | undefined;
61
65
  flows: F[] | undefined;
62
- }, ...params_1: {}[]) => import("./colors").DiffColors | import("./colors").Colors) & import("reselect").OutputSelectorFields<(args_0: boolean, args_1: string | undefined, args_2: boolean, args_3: boolean, args_4: number, args_5: boolean) => (import("./colors").DiffColors | import("./colors").Colors) & {
66
+ }, ...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) & {
63
67
  clearCache: () => void;
64
68
  }> & {
65
69
  clearCache: () => void;
66
70
  };
67
- getFlowMapColorsRGBA: ((state: {
68
- filterState: import("./FlowMapState").FilterState;
69
- settingsState: import("./FlowMapState").SettingsState;
71
+ getFlowmapColorsRGBA: ((state: {
72
+ filterState: import("./FlowmapState").FilterState;
73
+ settingsState: import("./FlowmapState").SettingsState;
70
74
  viewport: import("./types").ViewportProps;
71
75
  }, params_0: {
72
76
  locations: L[] | undefined;
73
77
  flows: F[] | undefined;
74
- }, ...params_1: {}[]) => import("./colors").ColorsRGBA | import("./colors").DiffColorsRGBA) & import("reselect").OutputSelectorFields<(args_0: import("./colors").DiffColors | import("./colors").Colors) => (import("./colors").ColorsRGBA | import("./colors").DiffColorsRGBA) & {
78
+ }, ...params_1: {}[]) => ColorsRGBA | DiffColorsRGBA) & import("reselect").OutputSelectorFields<(args_0: import("./colors").DiffColors | import("./colors").Colors) => (ColorsRGBA | DiffColorsRGBA) & {
75
79
  clearCache: () => void;
76
80
  }> & {
77
81
  clearCache: () => void;
78
82
  };
79
83
  getUnknownLocations: Selector<L, F, Set<string> | undefined>;
80
84
  getSortedAggregatedFilteredFlows: Selector<L, F, (F | AggregateFlow)[] | undefined>;
81
- _getFlowMagnitudeExtent: Selector<L, F, [number, number] | undefined>;
82
85
  getExpandedSelectedLocationsSet: Selector<L, F, Set<string> | undefined>;
83
86
  getTotalCountsByTime: Selector<L, F, CountByTime[] | undefined>;
84
87
  getMaxLocationCircleSize: Selector<L, F, number>;
@@ -95,12 +98,17 @@ export default class FlowMapSelectors<L, F> {
95
98
  number,
96
99
  number
97
100
  ] | undefined>;
98
- getLocationTotalsExtent: (state: FlowMapState, props: FlowMapData<L, F>) => [number, number] | undefined;
99
- getFlowsForFlowMapLayer: Selector<L, F, (F | AggregateFlow)[] | undefined>;
100
- getFlowMagnitudeExtent(state: FlowMapState, props: FlowMapData<L, F>): [number, number] | undefined;
101
+ getLocationTotalsExtent: (state: FlowmapState, props: FlowmapData<L, F>) => [number, number] | undefined;
102
+ getFlowsForFlowmapLayer: Selector<L, F, (F | AggregateFlow)[] | undefined>;
103
+ _getFlowMagnitudeExtent: Selector<L, F, [number, number] | undefined>;
104
+ _getAdaptiveFlowMagnitudeExtent: Selector<L, F, [
105
+ number,
106
+ number
107
+ ] | undefined>;
108
+ getFlowMagnitudeExtent: (state: FlowmapState, props: FlowmapData<L, F>) => [number, number] | undefined;
101
109
  getLocationMaxAbsTotalGetter: ((state: {
102
- filterState: import("./FlowMapState").FilterState;
103
- settingsState: import("./FlowMapState").SettingsState;
110
+ filterState: import("./FlowmapState").FilterState;
111
+ settingsState: import("./FlowmapState").SettingsState;
104
112
  viewport: import("./types").ViewportProps;
105
113
  }, params_0: {
106
114
  locations: L[] | undefined;
@@ -110,11 +118,33 @@ export default class FlowMapSelectors<L, F> {
110
118
  }> & {
111
119
  clearCache: () => void;
112
120
  };
113
- getFlowThicknessScale: (state: FlowMapState, props: FlowMapData<L, F>) => import("d3-scale").ScaleLinear<number, number, never> | undefined;
114
- getCircleSizeScale: (state: FlowMapState, props: FlowMapData<L, F>) => import("d3-scale").ScalePower<number, number, never> | (() => number) | undefined;
121
+ getFlowThicknessScale: ((state: {
122
+ filterState: import("./FlowmapState").FilterState;
123
+ settingsState: import("./FlowmapState").SettingsState;
124
+ viewport: import("./types").ViewportProps;
125
+ }, params_0: {
126
+ locations: L[] | undefined;
127
+ flows: F[] | undefined;
128
+ }) => ScaleLinear<number, number, never> | undefined) & import("reselect").OutputSelectorFields<(args_0: [number, number] | undefined) => ScaleLinear<number, number, never> & {
129
+ clearCache: () => void;
130
+ }> & {
131
+ clearCache: () => void;
132
+ };
133
+ getCircleSizeScale: ((state: {
134
+ filterState: import("./FlowmapState").FilterState;
135
+ settingsState: import("./FlowmapState").SettingsState;
136
+ viewport: import("./types").ViewportProps;
137
+ }, params_0: {
138
+ locations: L[] | undefined;
139
+ flows: F[] | undefined;
140
+ }, ...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) & {
141
+ clearCache: () => void;
142
+ }> & {
143
+ clearCache: () => void;
144
+ };
115
145
  getInCircleSizeGetter: ((state: {
116
- filterState: import("./FlowMapState").FilterState;
117
- settingsState: import("./FlowMapState").SettingsState;
146
+ filterState: import("./FlowmapState").FilterState;
147
+ settingsState: import("./FlowmapState").SettingsState;
118
148
  viewport: import("./types").ViewportProps;
119
149
  }, params_0: {
120
150
  locations: L[] | undefined;
@@ -125,8 +155,8 @@ export default class FlowMapSelectors<L, F> {
125
155
  clearCache: () => void;
126
156
  };
127
157
  getOutCircleSizeGetter: ((state: {
128
- filterState: import("./FlowMapState").FilterState;
129
- settingsState: import("./FlowMapState").SettingsState;
158
+ filterState: import("./FlowmapState").FilterState;
159
+ settingsState: import("./FlowmapState").SettingsState;
130
160
  viewport: import("./types").ViewportProps;
131
161
  }, params_0: {
132
162
  locations: L[] | undefined;
@@ -137,9 +167,11 @@ export default class FlowMapSelectors<L, F> {
137
167
  clearCache: () => void;
138
168
  };
139
169
  getSortedLocationsForZoom: Selector<L, F, L[] | ClusterNode[] | undefined>;
140
- getLocationsForFlowMapLayer: Selector<L, F, Array<L | ClusterNode> | undefined>;
141
- getLocationsForFlowMapLayerById: Selector<L, F, Map<string, L | ClusterNode> | undefined>;
142
- prepareLayersData(state: FlowMapState, props: FlowMapData<L, F>): LayersData;
170
+ getLocationsForFlowmapLayer: Selector<L, F, Array<L | ClusterNode> | undefined>;
171
+ getLocationsForFlowmapLayerById: Selector<L, F, Map<string, L | ClusterNode> | undefined>;
172
+ getLayersData: Selector<L, F, LayersData>;
173
+ prepareLayersData(state: FlowmapState, props: FlowmapData<L, F>): LayersData;
174
+ _prepareLayersData(locations: (L | ClusterNode)[] | undefined, flows: (F | AggregateFlow)[] | undefined, flowmapColors: DiffColorsRGBA | ColorsRGBA, locationsById: Map<string, L | ClusterNode> | undefined, locationIdsInViewport: Set<string> | undefined, getInCircleSize: (locationId: string) => number, getOutCircleSize: (locationId: string) => number, flowThicknessScale: ScaleLinear<number, number, never> | undefined, animationEnabled: boolean): LayersData;
143
175
  getLocationsInBbox(tree: KDBushTree, bbox: [number, number, number, number]): Array<L> | undefined;
144
176
  _getLocationsInBboxIndices(tree: KDBushTree, bbox: [number, number, number, number]): any;
145
177
  isFlowInSelection(flow: F | AggregateFlow, selectedLocationsSet: Set<string> | undefined, locationFilterMode: LocationFilterMode): boolean;
@@ -150,7 +182,7 @@ export default class FlowMapSelectors<L, F> {
150
182
  * @param index
151
183
  */
152
184
  export declare function getOuterCircleRadiusByIndex(circleAttributes: FlowCirclesLayerAttributes, index: number): number;
153
- export declare function getLocationCentroidByIndex(circleAttributes: FlowCirclesLayerAttributes, index: number): [number, number];
185
+ export declare function getLocationCoordsByIndex(circleAttributes: FlowCirclesLayerAttributes, index: number): [number, number];
154
186
  export declare function getFlowLineAttributesByIndex(lineAttributes: FlowLinesLayerAttributes, index: number): FlowLinesLayerAttributes;
155
187
  export {};
156
- //# sourceMappingURL=FlowMapSelectors.d.ts.map
188
+ //# 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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"}