@flowmap.gl/data 8.0.0-alpha.9 → 8.0.1
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.
- package/.turbo/turbo-build.log +3 -0
- package/.turbo/turbo-dev.log +6 -0
- package/LICENSE +2 -2
- package/dist/FlowmapAggregateAccessors.d.ts +4 -4
- package/dist/FlowmapAggregateAccessors.d.ts.map +1 -1
- package/dist/FlowmapAggregateAccessors.js +16 -9
- package/dist/FlowmapSelectors.d.ts +41 -87
- package/dist/FlowmapSelectors.d.ts.map +1 -1
- package/dist/FlowmapSelectors.js +174 -161
- package/dist/FlowmapState.d.ts +7 -5
- package/dist/FlowmapState.d.ts.map +1 -1
- package/dist/FlowmapState.js +6 -1
- package/dist/cluster/ClusterIndex.d.ts +4 -4
- package/dist/cluster/ClusterIndex.d.ts.map +1 -1
- package/dist/cluster/ClusterIndex.js +5 -17
- package/dist/cluster/cluster.d.ts +25 -5
- package/dist/cluster/cluster.d.ts.map +1 -1
- package/dist/cluster/cluster.js +115 -57
- package/dist/colors.d.ts +3 -3
- package/dist/colors.d.ts.map +1 -1
- package/dist/colors.js +19 -8
- package/dist/getViewStateForLocations.d.ts +3 -3
- package/dist/getViewStateForLocations.d.ts.map +1 -1
- package/dist/getViewStateForLocations.js +33 -12
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -4
- package/dist/provider/FlowmapDataProvider.d.ts +7 -2
- package/dist/provider/FlowmapDataProvider.d.ts.map +1 -1
- package/dist/provider/FlowmapDataProvider.js +11 -6
- package/dist/provider/LocalFlowmapDataProvider.d.ts +15 -4
- package/dist/provider/LocalFlowmapDataProvider.d.ts.map +1 -1
- package/dist/provider/LocalFlowmapDataProvider.js +98 -81
- package/dist/selector-functions.d.ts +10 -0
- package/dist/selector-functions.d.ts.map +1 -0
- package/dist/selector-functions.js +65 -0
- package/dist/time.d.ts.map +1 -1
- package/dist/time.js +6 -1
- package/dist/types.d.ts +20 -18
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +9 -4
- package/dist/util.d.ts.map +1 -1
- package/dist/util.js +6 -1
- package/package.json +22 -27
- package/src/FlowmapAggregateAccessors.ts +21 -10
- package/src/FlowmapSelectors.ts +304 -280
- package/src/FlowmapState.ts +13 -5
- package/src/cluster/ClusterIndex.ts +23 -28
- package/src/cluster/cluster.ts +165 -73
- package/src/colors.ts +13 -9
- package/src/getViewStateForLocations.ts +23 -7
- package/src/index.ts +9 -3
- package/src/provider/FlowmapDataProvider.ts +23 -7
- package/src/provider/LocalFlowmapDataProvider.ts +68 -5
- package/src/selector-functions.ts +93 -0
- package/src/time.ts +6 -0
- package/src/types.ts +23 -15
- package/src/util.ts +6 -0
- package/dist/provider/WorkerFlowmapDataProvider.d.ts +0 -42
- package/dist/provider/WorkerFlowmapDataProvider.d.ts.map +0 -1
- package/dist/provider/WorkerFlowmapDataProvider.js +0 -80
- package/dist/provider/WorkerFlowmapDataProviderWorker.d.ts +0 -2
- package/dist/provider/WorkerFlowmapDataProviderWorker.d.ts.map +0 -1
- package/dist/provider/WorkerFlowmapDataProviderWorker.js +0 -4
- package/dist/provider/createWorkerDataProvider.d.ts +0 -3
- package/dist/provider/createWorkerDataProvider.d.ts.map +0 -1
- package/dist/provider/createWorkerDataProvider.js +0 -21
- package/src/provider/WorkerFlowmapDataProvider.ts +0 -121
- package/src/provider/WorkerFlowmapDataProviderWorker.ts +0 -4
- package/src/provider/createWorkerDataProvider.ts +0 -18
package/LICENSE
CHANGED
|
@@ -183,8 +183,8 @@
|
|
|
183
183
|
|
|
184
184
|
|
|
185
185
|
|
|
186
|
-
Copyright
|
|
187
|
-
Copyright 2018-2020 Teralytics
|
|
186
|
+
Copyright (c) Flowmap.gl contributors
|
|
187
|
+
Copyright (c) 2018-2020 Teralytics
|
|
188
188
|
|
|
189
189
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
190
190
|
you may not use this file except in compliance with the License.
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { AggregateFlow, ClusterNode, FlowmapDataAccessors } from './types';
|
|
2
|
-
export default class FlowmapAggregateAccessors<L, F
|
|
2
|
+
export default class FlowmapAggregateAccessors<L extends Record<string, any>, F extends Record<string, any>> {
|
|
3
3
|
private accessors;
|
|
4
4
|
constructor(accessors: FlowmapDataAccessors<L, F>);
|
|
5
5
|
setAccessors(accessors: FlowmapDataAccessors<L, F>): void;
|
|
6
6
|
getFlowmapDataAccessors(): FlowmapDataAccessors<L, F>;
|
|
7
|
-
getLocationId: (location: L | ClusterNode) => string;
|
|
7
|
+
getLocationId: (location: L | ClusterNode) => string | number;
|
|
8
8
|
getLocationName: (location: L | ClusterNode) => string;
|
|
9
9
|
getLocationLat: (location: L | ClusterNode) => number;
|
|
10
10
|
getLocationLon: (location: L | ClusterNode) => number;
|
|
11
|
-
getFlowOriginId: (f: F | AggregateFlow) => string;
|
|
12
|
-
getFlowDestId: (f: F | AggregateFlow) => string;
|
|
11
|
+
getFlowOriginId: (f: F | AggregateFlow) => string | number;
|
|
12
|
+
getFlowDestId: (f: F | AggregateFlow) => string | number;
|
|
13
13
|
getFlowMagnitude: (f: F | AggregateFlow) => number;
|
|
14
14
|
getFlowTime: (f: F) => Date | undefined;
|
|
15
15
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FlowmapAggregateAccessors.d.ts","sourceRoot":"","sources":["../src/FlowmapAggregateAccessors.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"FlowmapAggregateAccessors.d.ts","sourceRoot":"","sources":["../src/FlowmapAggregateAccessors.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,aAAa,EACb,WAAW,EACX,oBAAoB,EAIrB,MAAM,SAAS,CAAC;AAEjB,MAAM,CAAC,OAAO,OAAO,yBAAyB,CAC5C,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC7B,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAE7B,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"}
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) Flowmap.gl contributors
|
|
3
|
+
* Copyright (c) 2018-2020 Teralytics
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
1
6
|
import { isAggregateFlow, isCluster, isLocationClusterNode, } from './types';
|
|
2
7
|
export default class FlowmapAggregateAccessors {
|
|
3
8
|
constructor(accessors) {
|
|
@@ -5,15 +10,17 @@ export default class FlowmapAggregateAccessors {
|
|
|
5
10
|
? location.id
|
|
6
11
|
: this.accessors.getLocationId(location);
|
|
7
12
|
this.getLocationName = (location) => {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
13
|
+
let name;
|
|
14
|
+
if (isLocationClusterNode(location) && isCluster(location)) {
|
|
15
|
+
name = location.name;
|
|
16
|
+
}
|
|
17
|
+
else if (this.accessors.getLocationName) {
|
|
18
|
+
name = this.accessors.getLocationName(location);
|
|
19
|
+
}
|
|
20
|
+
if (!name)
|
|
21
|
+
name = `${this.getLocationId(location)}`;
|
|
22
|
+
return name;
|
|
12
23
|
};
|
|
13
|
-
// ? location.name // TODO getLocationName for locations and clusters
|
|
14
|
-
// : this.accessors.getLocationName
|
|
15
|
-
// ? this.accessors.getLocationName(location)
|
|
16
|
-
// : this.getLocationId(location);
|
|
17
24
|
this.getLocationLat = (location) => isLocationClusterNode(location)
|
|
18
25
|
? location.lat
|
|
19
26
|
: this.accessors.getLocationLat(location);
|
|
@@ -43,4 +50,4 @@ export default class FlowmapAggregateAccessors {
|
|
|
43
50
|
return this.accessors;
|
|
44
51
|
}
|
|
45
52
|
}
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmxvd21hcEFnZ3JlZ2F0ZUFjY2Vzc29ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9GbG93bWFwQWdncmVnYXRlQWNjZXNzb3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFFSCxPQUFPLEVBSUwsZUFBZSxFQUNmLFNBQVMsRUFDVCxxQkFBcUIsR0FDdEIsTUFBTSxTQUFTLENBQUM7QUFFakIsTUFBTSxDQUFDLE9BQU8sT0FBTyx5QkFBeUI7SUFLNUMsWUFBWSxTQUFxQztRQVlqRCxrQkFBYSxHQUFHLENBQUMsUUFBeUIsRUFBbUIsRUFBRSxDQUM3RCxxQkFBcUIsQ0FBQyxRQUFRLENBQUM7WUFDN0IsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ2IsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRTdDLG9CQUFlLEdBQUcsQ0FBQyxRQUF5QixFQUFVLEVBQUU7WUFDdEQsSUFBSSxJQUFJLENBQUM7WUFDVCxJQUFJLHFCQUFxQixDQUFDLFFBQVEsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBRTtnQkFDMUQsSUFBSSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUM7YUFDdEI7aUJBQU0sSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLGVBQWUsRUFBRTtnQkFDekMsSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLFFBQWEsQ0FBQyxDQUFDO2FBQ3REO1lBQ0QsSUFBSSxDQUFDLElBQUk7Z0JBQUUsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQ3BELE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQyxDQUFDO1FBRUYsbUJBQWMsR0FBRyxDQUFDLFFBQXlCLEVBQVUsRUFBRSxDQUNyRCxxQkFBcUIsQ0FBQyxRQUFRLENBQUM7WUFDN0IsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHO1lBQ2QsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRTlDLG1CQUFjLEdBQUcsQ0FBQyxRQUF5QixFQUFVLEVBQUUsQ0FDckQscUJBQXFCLENBQUMsUUFBUSxDQUFDO1lBQzdCLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRztZQUNkLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUU5QyxvQkFBZSxHQUFHLENBQUMsQ0FBb0IsRUFBRSxFQUFFO1lBQ3pDLE9BQU8sZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMzRSxDQUFDLENBQUM7UUFFRixrQkFBYSxHQUFHLENBQUMsQ0FBb0IsRUFBRSxFQUFFO1lBQ3ZDLE9BQU8sZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN2RSxDQUFDLENBQUM7UUFFRixxQkFBZ0IsR0FBRyxDQUFDLENBQW9CLEVBQUUsRUFBRTtZQUMxQyxPQUFPLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMzRSxDQUFDLENBQUM7UUFFRixxQ0FBcUM7UUFDckMsZ0JBQVcsR0FBRyxDQUFDLENBQUksRUFBRSxFQUFFO1lBQ3JCLE1BQU0sRUFBQyxXQUFXLEVBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1lBQ3JDLE9BQU8sV0FBVyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUNsRCxDQUFDLENBQUM7UUFyREEsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7SUFDN0IsQ0FBQztJQUVELFlBQVksQ0FBQyxTQUFxQztRQUNoRCxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztJQUM3QixDQUFDO0lBRUQsdUJBQXVCO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0NBNkNGIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgRmxvd21hcC5nbCBjb250cmlidXRvcnNcbiAqIENvcHlyaWdodCAoYykgMjAxOC0yMDIwIFRlcmFseXRpY3NcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG4gKi9cblxuaW1wb3J0IHtcbiAgQWdncmVnYXRlRmxvdyxcbiAgQ2x1c3Rlck5vZGUsXG4gIEZsb3dtYXBEYXRhQWNjZXNzb3JzLFxuICBpc0FnZ3JlZ2F0ZUZsb3csXG4gIGlzQ2x1c3RlcixcbiAgaXNMb2NhdGlvbkNsdXN0ZXJOb2RlLFxufSBmcm9tICcuL3R5cGVzJztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRmxvd21hcEFnZ3JlZ2F0ZUFjY2Vzc29yczxcbiAgTCBleHRlbmRzIFJlY29yZDxzdHJpbmcsIGFueT4sXG4gIEYgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuPiB7XG4gIHByaXZhdGUgYWNjZXNzb3JzOiBGbG93bWFwRGF0YUFjY2Vzc29yczxMLCBGPjtcbiAgY29uc3RydWN0b3IoYWNjZXNzb3JzOiBGbG93bWFwRGF0YUFjY2Vzc29yczxMLCBGPikge1xuICAgIHRoaXMuYWNjZXNzb3JzID0gYWNjZXNzb3JzO1xuICB9XG5cbiAgc2V0QWNjZXNzb3JzKGFjY2Vzc29yczogRmxvd21hcERhdGFBY2Nlc3NvcnM8TCwgRj4pIHtcbiAgICB0aGlzLmFjY2Vzc29ycyA9IGFjY2Vzc29ycztcbiAgfVxuXG4gIGdldEZsb3dtYXBEYXRhQWNjZXNzb3JzKCkge1xuICAgIHJldHVybiB0aGlzLmFjY2Vzc29ycztcbiAgfVxuXG4gIGdldExvY2F0aW9uSWQgPSAobG9jYXRpb246IEwgfCBDbHVzdGVyTm9kZSk6IHN0cmluZyB8IG51bWJlciA9PlxuICAgIGlzTG9jYXRpb25DbHVzdGVyTm9kZShsb2NhdGlvbilcbiAgICAgID8gbG9jYXRpb24uaWRcbiAgICAgIDogdGhpcy5hY2Nlc3NvcnMuZ2V0TG9jYXRpb25JZChsb2NhdGlvbik7XG5cbiAgZ2V0TG9jYXRpb25OYW1lID0gKGxvY2F0aW9uOiBMIHwgQ2x1c3Rlck5vZGUpOiBzdHJpbmcgPT4ge1xuICAgIGxldCBuYW1lO1xuICAgIGlmIChpc0xvY2F0aW9uQ2x1c3Rlck5vZGUobG9jYXRpb24pICYmIGlzQ2x1c3Rlcihsb2NhdGlvbikpIHtcbiAgICAgIG5hbWUgPSBsb2NhdGlvbi5uYW1lO1xuICAgIH0gZWxzZSBpZiAodGhpcy5hY2Nlc3NvcnMuZ2V0TG9jYXRpb25OYW1lKSB7XG4gICAgICBuYW1lID0gdGhpcy5hY2Nlc3NvcnMuZ2V0TG9jYXRpb25OYW1lKGxvY2F0aW9uIGFzIEwpO1xuICAgIH1cbiAgICBpZiAoIW5hbWUpIG5hbWUgPSBgJHt0aGlzLmdldExvY2F0aW9uSWQobG9jYXRpb24pfWA7XG4gICAgcmV0dXJuIG5hbWU7XG4gIH07XG5cbiAgZ2V0TG9jYXRpb25MYXQgPSAobG9jYXRpb246IEwgfCBDbHVzdGVyTm9kZSk6IG51bWJlciA9PlxuICAgIGlzTG9jYXRpb25DbHVzdGVyTm9kZShsb2NhdGlvbilcbiAgICAgID8gbG9jYXRpb24ubGF0XG4gICAgICA6IHRoaXMuYWNjZXNzb3JzLmdldExvY2F0aW9uTGF0KGxvY2F0aW9uKTtcblxuICBnZXRMb2NhdGlvbkxvbiA9IChsb2NhdGlvbjogTCB8IENsdXN0ZXJOb2RlKTogbnVtYmVyID0+XG4gICAgaXNMb2NhdGlvbkNsdXN0ZXJOb2RlKGxvY2F0aW9uKVxuICAgICAgPyBsb2NhdGlvbi5sb25cbiAgICAgIDogdGhpcy5hY2Nlc3NvcnMuZ2V0TG9jYXRpb25Mb24obG9jYXRpb24pO1xuXG4gIGdldEZsb3dPcmlnaW5JZCA9IChmOiBGIHwgQWdncmVnYXRlRmxvdykgPT4ge1xuICAgIHJldHVybiBpc0FnZ3JlZ2F0ZUZsb3coZikgPyBmLm9yaWdpbiA6IHRoaXMuYWNjZXNzb3JzLmdldEZsb3dPcmlnaW5JZChmKTtcbiAgfTtcblxuICBnZXRGbG93RGVzdElkID0gKGY6IEYgfCBBZ2dyZWdhdGVGbG93KSA9PiB7XG4gICAgcmV0dXJuIGlzQWdncmVnYXRlRmxvdyhmKSA/IGYuZGVzdCA6IHRoaXMuYWNjZXNzb3JzLmdldEZsb3dEZXN0SWQoZik7XG4gIH07XG5cbiAgZ2V0Rmxvd01hZ25pdHVkZSA9IChmOiBGIHwgQWdncmVnYXRlRmxvdykgPT4ge1xuICAgIHJldHVybiBpc0FnZ3JlZ2F0ZUZsb3coZikgPyBmLmNvdW50IDogdGhpcy5hY2Nlc3NvcnMuZ2V0Rmxvd01hZ25pdHVkZShmKTtcbiAgfTtcblxuICAvLyBOb3RlOiBBZ2dyZWdhdGUgZmxvd3MgaGF2ZSBubyB0aW1lXG4gIGdldEZsb3dUaW1lID0gKGY6IEYpID0+IHtcbiAgICBjb25zdCB7Z2V0Rmxvd1RpbWV9ID0gdGhpcy5hY2Nlc3NvcnM7XG4gICAgcmV0dXJuIGdldEZsb3dUaW1lID8gZ2V0Rmxvd1RpbWUoZikgOiB1bmRlZmluZWQ7XG4gIH07XG59XG4iXX0=
|
|
@@ -1,25 +1,28 @@
|
|
|
1
1
|
import { ScaleLinear } from 'd3-scale';
|
|
2
2
|
import { ParametricSelector } from 'reselect';
|
|
3
|
-
import { ClusterIndex } from './cluster/ClusterIndex';
|
|
3
|
+
import { ClusterIndex, LocationWeightGetter } from './cluster/ClusterIndex';
|
|
4
4
|
import { ColorsRGBA, DiffColorsRGBA } from './colors';
|
|
5
5
|
import FlowmapAggregateAccessors from './FlowmapAggregateAccessors';
|
|
6
6
|
import { FlowmapState } from './FlowmapState';
|
|
7
7
|
import { TimeGranularityKey } from './time';
|
|
8
|
-
import { AggregateFlow, Cluster, ClusterNode, CountByTime, FlowCirclesLayerAttributes, FlowLinesLayerAttributes, FlowmapData, FlowmapDataAccessors, LayersData, LocationFilterMode, LocationTotals } from './types';
|
|
9
|
-
|
|
10
|
-
export
|
|
11
|
-
export default class FlowmapSelectors<L, F
|
|
8
|
+
import { AggregateFlow, Cluster, ClusterLevels, ClusterNode, CountByTime, FlowCirclesLayerAttributes, FlowLinesLayerAttributes, FlowmapData, FlowmapDataAccessors, LayersData, LocationFilterMode, LocationTotals } from './types';
|
|
9
|
+
type KDBushTree = any;
|
|
10
|
+
export type Selector<L, F, T> = ParametricSelector<FlowmapState, FlowmapData<L, F>, T>;
|
|
11
|
+
export default class FlowmapSelectors<L extends Record<string, any>, F extends Record<string, any>> {
|
|
12
12
|
accessors: FlowmapAggregateAccessors<L, F>;
|
|
13
13
|
constructor(accessors: FlowmapDataAccessors<L, F>);
|
|
14
14
|
setAccessors(accessors: FlowmapDataAccessors<L, F>): void;
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
getAggregateAccessors(): FlowmapAggregateAccessors<L, F>;
|
|
16
|
+
getFlowsFromProps: (state: FlowmapState, props: FlowmapData<L, F>) => Iterable<F> | undefined;
|
|
17
|
+
getLocationsFromProps: (state: FlowmapState, props: FlowmapData<L, F>) => Iterable<L> | undefined;
|
|
18
|
+
getClusterLevelsFromProps: (state: FlowmapState, props: FlowmapData<L, F>) => ClusterLevels | undefined;
|
|
17
19
|
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
|
+
getSelectedLocations: (state: FlowmapState, props: FlowmapData<L, F>) => (string | number)[] | undefined;
|
|
21
|
+
getLocationFilterMode: (state: FlowmapState, props: FlowmapData<L, F>) => LocationFilterMode | undefined;
|
|
20
22
|
getClusteringEnabled: (state: FlowmapState, props: FlowmapData<L, F>) => boolean;
|
|
21
23
|
getLocationTotalsEnabled: (state: FlowmapState, props: FlowmapData<L, F>) => boolean;
|
|
22
|
-
|
|
24
|
+
getLocationLabelsEnabled: (state: FlowmapState, props: FlowmapData<L, F>) => boolean;
|
|
25
|
+
getZoom: (state: FlowmapState, props: FlowmapData<L, F>) => number | undefined;
|
|
23
26
|
getViewport: (state: FlowmapState, props: FlowmapData<L, F>) => import("./types").ViewportProps;
|
|
24
27
|
getSelectedTimeRange: (state: FlowmapState, props: FlowmapData<L, F>) => [Date, Date] | undefined;
|
|
25
28
|
getColorScheme: Selector<L, F, string | string[] | undefined>;
|
|
@@ -28,26 +31,21 @@ export default class FlowmapSelectors<L, F> {
|
|
|
28
31
|
getFadeOpacityEnabled: Selector<L, F, boolean>;
|
|
29
32
|
getFadeAmount: Selector<L, F, number>;
|
|
30
33
|
getAnimate: Selector<L, F, boolean>;
|
|
31
|
-
getInvalidLocationIds: Selector<L, F, string[] | undefined>;
|
|
32
|
-
getLocations: Selector<L, F, L
|
|
33
|
-
getLocationIds: Selector<L, F, Set<string> | undefined>;
|
|
34
|
-
getSelectedLocationsSet: Selector<L, F, Set<string> | undefined>;
|
|
34
|
+
getInvalidLocationIds: Selector<L, F, (string | number)[] | undefined>;
|
|
35
|
+
getLocations: Selector<L, F, Iterable<L> | undefined>;
|
|
36
|
+
getLocationIds: Selector<L, F, Set<string | number> | undefined>;
|
|
37
|
+
getSelectedLocationsSet: Selector<L, F, Set<string | number> | undefined>;
|
|
35
38
|
getSortedFlowsForKnownLocations: Selector<L, F, F[] | undefined>;
|
|
36
39
|
getActualTimeExtent: Selector<L, F, [Date, Date] | undefined>;
|
|
37
40
|
getTimeGranularityKey: Selector<L, F, TimeGranularityKey | undefined>;
|
|
38
41
|
getTimeExtent: Selector<L, F, [Date, Date] | undefined>;
|
|
39
42
|
getSortedFlowsForKnownLocationsFilteredByTime: Selector<L, F, F[] | undefined>;
|
|
40
|
-
getLocationsHavingFlows: Selector<L, F, L
|
|
41
|
-
getLocationsById: Selector<L, F, Map<string, L> | undefined>;
|
|
43
|
+
getLocationsHavingFlows: Selector<L, F, Iterable<L> | undefined>;
|
|
44
|
+
getLocationsById: Selector<L, F, Map<string | number, L> | undefined>;
|
|
45
|
+
getLocationWeightGetter: Selector<L, F, LocationWeightGetter | undefined>;
|
|
46
|
+
getClusterLevels: Selector<L, F, ClusterLevels | undefined>;
|
|
42
47
|
getClusterIndex: Selector<L, F, ClusterIndex<F> | undefined>;
|
|
43
|
-
getAvailableClusterZoomLevels: ((state: {
|
|
44
|
-
filterState: import("./FlowmapState").FilterState;
|
|
45
|
-
settingsState: import("./FlowmapState").SettingsState;
|
|
46
|
-
viewport: import("./types").ViewportProps;
|
|
47
|
-
}, params_0: {
|
|
48
|
-
locations: L[] | undefined;
|
|
49
|
-
flows: F[] | undefined;
|
|
50
|
-
}, ...params_1: {}[]) => number[] | undefined) & import("reselect").OutputSelectorFields<(args_0: ClusterIndex<F> | undefined, args_1: string[] | undefined) => number[] & {
|
|
48
|
+
getAvailableClusterZoomLevels: ((state: FlowmapState, params_0: FlowmapData<L, F>, ...params_1: unknown[]) => number[] | undefined) & import("reselect").OutputSelectorFields<(args_0: ClusterIndex<F> | undefined, args_1: (string | number)[] | undefined) => number[] | undefined, {
|
|
51
49
|
clearCache: () => void;
|
|
52
50
|
}> & {
|
|
53
51
|
clearCache: () => void;
|
|
@@ -56,41 +54,27 @@ export default class FlowmapSelectors<L, F> {
|
|
|
56
54
|
getClusterZoom: (state: FlowmapState, props: FlowmapData<L, F>) => number | undefined;
|
|
57
55
|
getLocationsForSearchBox: Selector<L, F, (L | Cluster)[] | undefined>;
|
|
58
56
|
getDiffMode: Selector<L, F, boolean>;
|
|
59
|
-
_getFlowmapColors: ((state: {
|
|
60
|
-
filterState: import("./FlowmapState").FilterState;
|
|
61
|
-
settingsState: import("./FlowmapState").SettingsState;
|
|
62
|
-
viewport: import("./types").ViewportProps;
|
|
63
|
-
}, params_0: {
|
|
64
|
-
locations: L[] | undefined;
|
|
65
|
-
flows: F[] | undefined;
|
|
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) & {
|
|
57
|
+
_getFlowmapColors: ((state: FlowmapState, params_0: FlowmapData<L, F>, ...params_1: unknown[]) => 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, {
|
|
67
58
|
clearCache: () => void;
|
|
68
59
|
}> & {
|
|
69
60
|
clearCache: () => void;
|
|
70
61
|
};
|
|
71
|
-
getFlowmapColorsRGBA: ((state: {
|
|
72
|
-
filterState: import("./FlowmapState").FilterState;
|
|
73
|
-
settingsState: import("./FlowmapState").SettingsState;
|
|
74
|
-
viewport: import("./types").ViewportProps;
|
|
75
|
-
}, params_0: {
|
|
76
|
-
locations: L[] | undefined;
|
|
77
|
-
flows: F[] | undefined;
|
|
78
|
-
}, ...params_1: {}[]) => ColorsRGBA | DiffColorsRGBA) & import("reselect").OutputSelectorFields<(args_0: import("./colors").DiffColors | import("./colors").Colors) => (ColorsRGBA | DiffColorsRGBA) & {
|
|
62
|
+
getFlowmapColorsRGBA: ((state: FlowmapState, params_0: FlowmapData<L, F>, ...params_1: unknown[]) => ColorsRGBA | DiffColorsRGBA) & import("reselect").OutputSelectorFields<(args_0: import("./colors").DiffColors | import("./colors").Colors) => ColorsRGBA | DiffColorsRGBA, {
|
|
79
63
|
clearCache: () => void;
|
|
80
64
|
}> & {
|
|
81
65
|
clearCache: () => void;
|
|
82
66
|
};
|
|
83
|
-
getUnknownLocations: Selector<L, F, Set<string> | undefined>;
|
|
67
|
+
getUnknownLocations: Selector<L, F, Set<string | number> | undefined>;
|
|
84
68
|
getSortedAggregatedFilteredFlows: Selector<L, F, (F | AggregateFlow)[] | undefined>;
|
|
85
|
-
getExpandedSelectedLocationsSet: Selector<L, F, Set<string> | undefined>;
|
|
69
|
+
getExpandedSelectedLocationsSet: Selector<L, F, Set<string | number> | undefined>;
|
|
86
70
|
getTotalCountsByTime: Selector<L, F, CountByTime[] | undefined>;
|
|
87
71
|
getMaxLocationCircleSize: Selector<L, F, number>;
|
|
88
72
|
getViewportBoundingBox: Selector<L, F, [number, number, number, number]>;
|
|
89
|
-
getLocationsForZoom: Selector<L, F, L
|
|
90
|
-
getLocationTotals: Selector<L, F, Map<string, LocationTotals> | undefined>;
|
|
73
|
+
getLocationsForZoom: Selector<L, F, Iterable<L> | ClusterNode[] | undefined>;
|
|
74
|
+
getLocationTotals: Selector<L, F, Map<string | number, LocationTotals> | undefined>;
|
|
91
75
|
getLocationsTree: Selector<L, F, KDBushTree>;
|
|
92
76
|
_getLocationIdsInViewport: Selector<L, F, Set<string> | undefined>;
|
|
93
|
-
getLocationIdsInViewport: Selector<L, F, Set<string> | undefined>;
|
|
77
|
+
getLocationIdsInViewport: Selector<L, F, Set<string | number> | undefined>;
|
|
94
78
|
getTotalUnfilteredCount: Selector<L, F, number | undefined>;
|
|
95
79
|
getTotalFilteredCount: Selector<L, F, number | undefined>;
|
|
96
80
|
_getLocationTotalsExtent: Selector<L, F, [number, number] | undefined>;
|
|
@@ -106,62 +90,27 @@ export default class FlowmapSelectors<L, F> {
|
|
|
106
90
|
number
|
|
107
91
|
] | undefined>;
|
|
108
92
|
getFlowMagnitudeExtent: (state: FlowmapState, props: FlowmapData<L, F>) => [number, number] | undefined;
|
|
109
|
-
getLocationMaxAbsTotalGetter: ((state: {
|
|
110
|
-
filterState: import("./FlowmapState").FilterState;
|
|
111
|
-
settingsState: import("./FlowmapState").SettingsState;
|
|
112
|
-
viewport: import("./types").ViewportProps;
|
|
113
|
-
}, params_0: {
|
|
114
|
-
locations: L[] | undefined;
|
|
115
|
-
flows: F[] | undefined;
|
|
116
|
-
}, ...params_1: {}[]) => (locationId: string) => number | undefined) & import("reselect").OutputSelectorFields<(args_0: Map<string, LocationTotals> | undefined) => ((locationId: string) => number | undefined) & {
|
|
93
|
+
getLocationMaxAbsTotalGetter: ((state: FlowmapState, params_0: FlowmapData<L, F>, ...params_1: unknown[]) => (locationId: string) => number | undefined) & import("reselect").OutputSelectorFields<(args_0: Map<string | number, LocationTotals> | undefined) => (locationId: string) => number | undefined, {
|
|
117
94
|
clearCache: () => void;
|
|
118
95
|
}> & {
|
|
119
96
|
clearCache: () => void;
|
|
120
97
|
};
|
|
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> & {
|
|
98
|
+
getFlowThicknessScale: ((state: FlowmapState, props: FlowmapData<L, F>) => ScaleLinear<number, number, never> | undefined) & import("reselect").OutputSelectorFields<(args_0: [number, number] | undefined) => ScaleLinear<number, number, never> | undefined, {
|
|
129
99
|
clearCache: () => void;
|
|
130
100
|
}> & {
|
|
131
101
|
clearCache: () => void;
|
|
132
102
|
};
|
|
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) & {
|
|
103
|
+
getCircleSizeScale: ((state: FlowmapState, params_0: FlowmapData<L, F>, ...params_1: unknown[]) => 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
104
|
clearCache: () => void;
|
|
142
105
|
}> & {
|
|
143
106
|
clearCache: () => void;
|
|
144
107
|
};
|
|
145
|
-
getInCircleSizeGetter: ((state: {
|
|
146
|
-
filterState: import("./FlowmapState").FilterState;
|
|
147
|
-
settingsState: import("./FlowmapState").SettingsState;
|
|
148
|
-
viewport: import("./types").ViewportProps;
|
|
149
|
-
}, params_0: {
|
|
150
|
-
locations: L[] | undefined;
|
|
151
|
-
flows: F[] | undefined;
|
|
152
|
-
}, ...params_1: {}[]) => (locationId: string) => number) & import("reselect").OutputSelectorFields<(args_0: import("d3-scale").ScalePower<number, number, never> | (() => number) | undefined, args_1: Map<string, LocationTotals> | undefined) => ((locationId: string) => number) & {
|
|
108
|
+
getInCircleSizeGetter: ((state: FlowmapState, params_0: FlowmapData<L, F>, ...params_1: unknown[]) => (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, {
|
|
153
109
|
clearCache: () => void;
|
|
154
110
|
}> & {
|
|
155
111
|
clearCache: () => void;
|
|
156
112
|
};
|
|
157
|
-
getOutCircleSizeGetter: ((state: {
|
|
158
|
-
filterState: import("./FlowmapState").FilterState;
|
|
159
|
-
settingsState: import("./FlowmapState").SettingsState;
|
|
160
|
-
viewport: import("./types").ViewportProps;
|
|
161
|
-
}, params_0: {
|
|
162
|
-
locations: L[] | undefined;
|
|
163
|
-
flows: F[] | undefined;
|
|
164
|
-
}, ...params_1: {}[]) => (locationId: string) => number) & import("reselect").OutputSelectorFields<(args_0: import("d3-scale").ScalePower<number, number, never> | (() => number) | undefined, args_1: Map<string, LocationTotals> | undefined) => ((locationId: string) => number) & {
|
|
113
|
+
getOutCircleSizeGetter: ((state: FlowmapState, params_0: FlowmapData<L, F>, ...params_1: unknown[]) => (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, {
|
|
165
114
|
clearCache: () => void;
|
|
166
115
|
}> & {
|
|
167
116
|
clearCache: () => void;
|
|
@@ -169,12 +118,17 @@ export default class FlowmapSelectors<L, F> {
|
|
|
169
118
|
getSortedLocationsForZoom: Selector<L, F, L[] | ClusterNode[] | undefined>;
|
|
170
119
|
getLocationsForFlowmapLayer: Selector<L, F, Array<L | ClusterNode> | undefined>;
|
|
171
120
|
getLocationsForFlowmapLayerById: Selector<L, F, Map<string, L | ClusterNode> | undefined>;
|
|
121
|
+
getLocationOrClusterByIdGetter: ((state: FlowmapState, params_0: FlowmapData<L, F>, ...params_1: unknown[]) => (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, {
|
|
122
|
+
clearCache: () => void;
|
|
123
|
+
}> & {
|
|
124
|
+
clearCache: () => void;
|
|
125
|
+
};
|
|
172
126
|
getLayersData: Selector<L, F, LayersData>;
|
|
173
127
|
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;
|
|
128
|
+
_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;
|
|
175
129
|
getLocationsInBbox(tree: KDBushTree, bbox: [number, number, number, number]): Array<L> | undefined;
|
|
176
130
|
_getLocationsInBboxIndices(tree: KDBushTree, bbox: [number, number, number, number]): any;
|
|
177
|
-
isFlowInSelection(flow: F | AggregateFlow, selectedLocationsSet: Set<string> | undefined, locationFilterMode
|
|
131
|
+
isFlowInSelection(flow: F | AggregateFlow, selectedLocationsSet: Set<string | number> | undefined, locationFilterMode?: LocationFilterMode): boolean;
|
|
178
132
|
}
|
|
179
133
|
/**
|
|
180
134
|
* This is used to augment hover picking info so that we can displace location tooltip
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FlowmapSelectors.d.ts","sourceRoot":"","sources":["../src/FlowmapSelectors.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"FlowmapSelectors.d.ts","sourceRoot":"","sources":["../src/FlowmapSelectors.ts"],"names":[],"mappings":"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"}
|