@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
@@ -0,0 +1,118 @@
1
+ export declare type FlowmapData<L, F> = {
2
+ locations: L[] | undefined;
3
+ flows: F[] | undefined;
4
+ };
5
+ export interface ViewState {
6
+ latitude: number;
7
+ longitude: number;
8
+ zoom: number;
9
+ bearing?: number;
10
+ pitch?: number;
11
+ altitude?: number;
12
+ }
13
+ export declare type FlowAccessor<F, T> = (flow: F) => T;
14
+ export declare type LocationAccessor<L, T> = (location: L) => T;
15
+ export interface FlowAccessors<F> {
16
+ getFlowOriginId: FlowAccessor<F, string>;
17
+ getFlowDestId: FlowAccessor<F, string>;
18
+ getFlowMagnitude: FlowAccessor<F, number>;
19
+ getFlowTime?: FlowAccessor<F, Date>;
20
+ }
21
+ export interface LocationAccessors<L> {
22
+ getLocationId: LocationAccessor<L, string>;
23
+ getLocationName?: LocationAccessor<L, string>;
24
+ getLocationLat: LocationAccessor<L, number>;
25
+ getLocationLon: LocationAccessor<L, number>;
26
+ getLocationClusterName?: (locationIds: string[]) => string;
27
+ }
28
+ export declare type FlowmapDataAccessors<L, F> = LocationAccessors<L> & FlowAccessors<F>;
29
+ export interface LocationTotals {
30
+ incomingCount: number;
31
+ outgoingCount: number;
32
+ internalCount: number;
33
+ }
34
+ export interface CountByTime {
35
+ time: Date;
36
+ count: number;
37
+ }
38
+ export interface ViewportProps {
39
+ width: number;
40
+ height: number;
41
+ latitude: number;
42
+ longitude: number;
43
+ zoom: number;
44
+ bearing: number;
45
+ pitch: number;
46
+ altitude?: number;
47
+ maxZoom?: number;
48
+ minZoom?: number;
49
+ maxPitch?: number;
50
+ minPitch?: number;
51
+ transitionDuration?: number | 'auto';
52
+ transitionInterpolator?: any;
53
+ transitionInterruption?: any;
54
+ transitionEasing?: any;
55
+ }
56
+ export interface ClusterNode {
57
+ id: string;
58
+ zoom: number;
59
+ lat: number;
60
+ lon: number;
61
+ }
62
+ export interface ClusterLevel {
63
+ zoom: number;
64
+ nodes: ClusterNode[];
65
+ }
66
+ export declare type ClusterLevels = ClusterLevel[];
67
+ export interface Cluster extends ClusterNode {
68
+ name?: string;
69
+ children: string[];
70
+ }
71
+ export declare function isCluster(c: ClusterNode): c is Cluster;
72
+ export declare function isLocationClusterNode<L>(l: L | ClusterNode): l is ClusterNode;
73
+ export interface AggregateFlow {
74
+ origin: string;
75
+ dest: string;
76
+ count: number;
77
+ aggregate: true;
78
+ }
79
+ export declare function isAggregateFlow(flow: Record<string, any>): flow is AggregateFlow;
80
+ export interface FlowCountsMapReduce<F, T = any> {
81
+ map: (flow: F) => T;
82
+ reduce: (accumulated: T, val: T) => T;
83
+ }
84
+ export declare enum LocationFilterMode {
85
+ ALL = "ALL",
86
+ INCOMING = "INCOMING",
87
+ OUTGOING = "OUTGOING",
88
+ BETWEEN = "BETWEEN"
89
+ }
90
+ export interface FlowCirclesLayerAttributes {
91
+ length: number;
92
+ attributes: {
93
+ getPosition: LayersDataAttrValues<Float32Array>;
94
+ getColor: LayersDataAttrValues<Uint8Array>;
95
+ getInRadius: LayersDataAttrValues<Float32Array>;
96
+ getOutRadius: LayersDataAttrValues<Float32Array>;
97
+ };
98
+ }
99
+ export interface FlowLinesLayerAttributes {
100
+ length: number;
101
+ attributes: {
102
+ getSourcePosition: LayersDataAttrValues<Float32Array>;
103
+ getTargetPosition: LayersDataAttrValues<Float32Array>;
104
+ getThickness: LayersDataAttrValues<Float32Array>;
105
+ getColor: LayersDataAttrValues<Uint8Array>;
106
+ getEndpointOffsets: LayersDataAttrValues<Float32Array>;
107
+ getStaggering?: LayersDataAttrValues<Float32Array>;
108
+ };
109
+ }
110
+ export interface LayersData {
111
+ circleAttributes: FlowCirclesLayerAttributes;
112
+ lineAttributes: FlowLinesLayerAttributes;
113
+ }
114
+ export declare type LayersDataAttrValues<T> = {
115
+ value: T;
116
+ size: number;
117
+ };
118
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LocationFilterMode = exports.isAggregateFlow = exports.isLocationClusterNode = exports.isCluster = void 0;
4
+ function isCluster(c) {
5
+ var children = c.children;
6
+ return children && children.length > 0;
7
+ }
8
+ exports.isCluster = isCluster;
9
+ function isLocationClusterNode(l) {
10
+ var zoom = l.zoom;
11
+ return zoom !== undefined;
12
+ }
13
+ exports.isLocationClusterNode = isLocationClusterNode;
14
+ function isAggregateFlow(flow) {
15
+ return (flow &&
16
+ flow.origin !== undefined &&
17
+ flow.dest !== undefined &&
18
+ flow.count !== undefined &&
19
+ (flow.aggregate ? true : false));
20
+ }
21
+ exports.isAggregateFlow = isAggregateFlow;
22
+ var LocationFilterMode;
23
+ (function (LocationFilterMode) {
24
+ LocationFilterMode["ALL"] = "ALL";
25
+ LocationFilterMode["INCOMING"] = "INCOMING";
26
+ LocationFilterMode["OUTGOING"] = "OUTGOING";
27
+ LocationFilterMode["BETWEEN"] = "BETWEEN";
28
+ })(LocationFilterMode = exports.LocationFilterMode || (exports.LocationFilterMode = {}));
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBK0ZBLFNBQWdCLFNBQVMsQ0FBQyxDQUFjO0lBQy9CLElBQUEsUUFBUSxHQUFJLENBQVksU0FBaEIsQ0FBaUI7SUFDaEMsT0FBTyxRQUFRLElBQUksUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7QUFDekMsQ0FBQztBQUhELDhCQUdDO0FBRUQsU0FBZ0IscUJBQXFCLENBQUksQ0FBa0I7SUFDbEQsSUFBQSxJQUFJLEdBQUksQ0FBZ0IsS0FBcEIsQ0FBcUI7SUFDaEMsT0FBTyxJQUFJLEtBQUssU0FBUyxDQUFDO0FBQzVCLENBQUM7QUFIRCxzREFHQztBQVNELFNBQWdCLGVBQWUsQ0FDN0IsSUFBeUI7SUFFekIsT0FBTyxDQUNMLElBQUk7UUFDSixJQUFJLENBQUMsTUFBTSxLQUFLLFNBQVM7UUFDekIsSUFBSSxDQUFDLElBQUksS0FBSyxTQUFTO1FBQ3ZCLElBQUksQ0FBQyxLQUFLLEtBQUssU0FBUztRQUN4QixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQ2hDLENBQUM7QUFDSixDQUFDO0FBVkQsMENBVUM7QUFPRCxJQUFZLGtCQUtYO0FBTEQsV0FBWSxrQkFBa0I7SUFDNUIsaUNBQVcsQ0FBQTtJQUNYLDJDQUFxQixDQUFBO0lBQ3JCLDJDQUFxQixDQUFBO0lBQ3JCLHlDQUFtQixDQUFBO0FBQ3JCLENBQUMsRUFMVyxrQkFBa0IsR0FBbEIsMEJBQWtCLEtBQWxCLDBCQUFrQixRQUs3QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIEZsb3dtYXBEYXRhPEwsIEY+ID0ge1xuICBsb2NhdGlvbnM6IExbXSB8IHVuZGVmaW5lZDtcbiAgZmxvd3M6IEZbXSB8IHVuZGVmaW5lZDtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmlld1N0YXRlIHtcbiAgbGF0aXR1ZGU6IG51bWJlcjtcbiAgbG9uZ2l0dWRlOiBudW1iZXI7XG4gIHpvb206IG51bWJlcjtcbiAgYmVhcmluZz86IG51bWJlcjtcbiAgcGl0Y2g/OiBudW1iZXI7XG4gIGFsdGl0dWRlPzogbnVtYmVyO1xufVxuXG5leHBvcnQgdHlwZSBGbG93QWNjZXNzb3I8RiwgVD4gPSAoZmxvdzogRikgPT4gVDsgLy8gb2JqZWN0SW5mbz86IEFjY2Vzc29yT2JqZWN0SW5mbyxcbmV4cG9ydCB0eXBlIExvY2F0aW9uQWNjZXNzb3I8TCwgVD4gPSAobG9jYXRpb246IEwpID0+IFQ7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmxvd0FjY2Vzc29yczxGPiB7XG4gIGdldEZsb3dPcmlnaW5JZDogRmxvd0FjY2Vzc29yPEYsIHN0cmluZz47XG4gIGdldEZsb3dEZXN0SWQ6IEZsb3dBY2Nlc3NvcjxGLCBzdHJpbmc+O1xuICBnZXRGbG93TWFnbml0dWRlOiBGbG93QWNjZXNzb3I8RiwgbnVtYmVyPjtcbiAgZ2V0Rmxvd1RpbWU/OiBGbG93QWNjZXNzb3I8RiwgRGF0ZT47IC8vIFRPRE86IHVzZSBudW1iZXIgaW5zdGVhZCBvZiBEYXRlXG4gIC8vIGdldEZsb3dDb2xvcj86IEZsb3dBY2Nlc3NvcjxzdHJpbmcgfCB1bmRlZmluZWQ+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExvY2F0aW9uQWNjZXNzb3JzPEw+IHtcbiAgZ2V0TG9jYXRpb25JZDogTG9jYXRpb25BY2Nlc3NvcjxMLCBzdHJpbmc+O1xuICBnZXRMb2NhdGlvbk5hbWU/OiBMb2NhdGlvbkFjY2Vzc29yPEwsIHN0cmluZz47XG4gIGdldExvY2F0aW9uTGF0OiBMb2NhdGlvbkFjY2Vzc29yPEwsIG51bWJlcj47XG4gIGdldExvY2F0aW9uTG9uOiBMb2NhdGlvbkFjY2Vzc29yPEwsIG51bWJlcj47XG4gIGdldExvY2F0aW9uQ2x1c3Rlck5hbWU/OiAobG9jYXRpb25JZHM6IHN0cmluZ1tdKSA9PiBzdHJpbmc7XG4gIC8vIGdldExvY2F0aW9uVG90YWxJbj86IExvY2F0aW9uQWNjZXNzb3I8bnVtYmVyPjtcbiAgLy8gZ2V0TG9jYXRpb25Ub3RhbE91dD86IExvY2F0aW9uQWNjZXNzb3I8bnVtYmVyPjtcbiAgLy8gZ2V0TG9jYXRpb25Ub3RhbEludGVybmFsPzogTG9jYXRpb25BY2Nlc3NvcjxudW1iZXI+O1xufVxuXG5leHBvcnQgdHlwZSBGbG93bWFwRGF0YUFjY2Vzc29yczxMLCBGPiA9IExvY2F0aW9uQWNjZXNzb3JzPEw+ICZcbiAgRmxvd0FjY2Vzc29yczxGPjtcblxuZXhwb3J0IGludGVyZmFjZSBMb2NhdGlvblRvdGFscyB7XG4gIGluY29taW5nQ291bnQ6IG51bWJlcjtcbiAgb3V0Z29pbmdDb3VudDogbnVtYmVyO1xuICBpbnRlcm5hbENvdW50OiBudW1iZXI7XG59XG5cbi8vIGV4cG9ydCBpbnRlcmZhY2UgTG9jYXRpb25zVG90YWxzIHtcbi8vICAgaW5jb21pbmc6IHtbaWQ6IHN0cmluZ106IG51bWJlcn07XG4vLyAgIG91dGdvaW5nOiB7W2lkOiBzdHJpbmddOiBudW1iZXJ9O1xuLy8gICBpbnRlcm5hbDoge1tpZDogc3RyaW5nXTogbnVtYmVyfTtcbi8vIH1cblxuZXhwb3J0IGludGVyZmFjZSBDb3VudEJ5VGltZSB7XG4gIHRpbWU6IERhdGU7XG4gIGNvdW50OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmlld3BvcnRQcm9wcyB7XG4gIHdpZHRoOiBudW1iZXI7XG4gIGhlaWdodDogbnVtYmVyO1xuICBsYXRpdHVkZTogbnVtYmVyO1xuICBsb25naXR1ZGU6IG51bWJlcjtcbiAgem9vbTogbnVtYmVyO1xuICBiZWFyaW5nOiBudW1iZXI7XG4gIHBpdGNoOiBudW1iZXI7XG4gIGFsdGl0dWRlPzogbnVtYmVyO1xuICBtYXhab29tPzogbnVtYmVyO1xuICBtaW5ab29tPzogbnVtYmVyO1xuICBtYXhQaXRjaD86IG51bWJlcjtcbiAgbWluUGl0Y2g/OiBudW1iZXI7XG4gIHRyYW5zaXRpb25EdXJhdGlvbj86IG51bWJlciB8ICdhdXRvJztcbiAgdHJhbnNpdGlvbkludGVycG9sYXRvcj86IGFueTtcbiAgdHJhbnNpdGlvbkludGVycnVwdGlvbj86IGFueTtcbiAgdHJhbnNpdGlvbkVhc2luZz86IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDbHVzdGVyTm9kZSB7XG4gIGlkOiBzdHJpbmc7XG4gIHpvb206IG51bWJlcjtcbiAgbGF0OiBudW1iZXI7XG4gIGxvbjogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENsdXN0ZXJMZXZlbCB7XG4gIHpvb206IG51bWJlcjtcbiAgbm9kZXM6IENsdXN0ZXJOb2RlW107XG59XG5cbmV4cG9ydCB0eXBlIENsdXN0ZXJMZXZlbHMgPSBDbHVzdGVyTGV2ZWxbXTtcblxuLy8gbm9uLWxlYWYgY2x1c3RlciBub2RlXG5leHBvcnQgaW50ZXJmYWNlIENsdXN0ZXIgZXh0ZW5kcyBDbHVzdGVyTm9kZSB7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIGNoaWxkcmVuOiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQ2x1c3RlcihjOiBDbHVzdGVyTm9kZSk6IGMgaXMgQ2x1c3RlciB7XG4gIGNvbnN0IHtjaGlsZHJlbn0gPSBjIGFzIENsdXN0ZXI7XG4gIHJldHVybiBjaGlsZHJlbiAmJiBjaGlsZHJlbi5sZW5ndGggPiAwO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNMb2NhdGlvbkNsdXN0ZXJOb2RlPEw+KGw6IEwgfCBDbHVzdGVyTm9kZSk6IGwgaXMgQ2x1c3Rlck5vZGUge1xuICBjb25zdCB7em9vbX0gPSBsIGFzIENsdXN0ZXJOb2RlO1xuICByZXR1cm4gem9vbSAhPT0gdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFnZ3JlZ2F0ZUZsb3cge1xuICBvcmlnaW46IHN0cmluZztcbiAgZGVzdDogc3RyaW5nO1xuICBjb3VudDogbnVtYmVyO1xuICBhZ2dyZWdhdGU6IHRydWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0FnZ3JlZ2F0ZUZsb3coXG4gIGZsb3c6IFJlY29yZDxzdHJpbmcsIGFueT4sXG4pOiBmbG93IGlzIEFnZ3JlZ2F0ZUZsb3cge1xuICByZXR1cm4gKFxuICAgIGZsb3cgJiZcbiAgICBmbG93Lm9yaWdpbiAhPT0gdW5kZWZpbmVkICYmXG4gICAgZmxvdy5kZXN0ICE9PSB1bmRlZmluZWQgJiZcbiAgICBmbG93LmNvdW50ICE9PSB1bmRlZmluZWQgJiZcbiAgICAoZmxvdy5hZ2dyZWdhdGUgPyB0cnVlIDogZmFsc2UpXG4gICk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmxvd0NvdW50c01hcFJlZHVjZTxGLCBUID0gYW55PiB7XG4gIG1hcDogKGZsb3c6IEYpID0+IFQ7XG4gIHJlZHVjZTogKGFjY3VtdWxhdGVkOiBULCB2YWw6IFQpID0+IFQ7XG59XG5cbmV4cG9ydCBlbnVtIExvY2F0aW9uRmlsdGVyTW9kZSB7XG4gIEFMTCA9ICdBTEwnLFxuICBJTkNPTUlORyA9ICdJTkNPTUlORycsXG4gIE9VVEdPSU5HID0gJ09VVEdPSU5HJyxcbiAgQkVUV0VFTiA9ICdCRVRXRUVOJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGbG93Q2lyY2xlc0xheWVyQXR0cmlidXRlcyB7XG4gIGxlbmd0aDogbnVtYmVyO1xuICBhdHRyaWJ1dGVzOiB7XG4gICAgZ2V0UG9zaXRpb246IExheWVyc0RhdGFBdHRyVmFsdWVzPEZsb2F0MzJBcnJheT47XG4gICAgZ2V0Q29sb3I6IExheWVyc0RhdGFBdHRyVmFsdWVzPFVpbnQ4QXJyYXk+O1xuICAgIGdldEluUmFkaXVzOiBMYXllcnNEYXRhQXR0clZhbHVlczxGbG9hdDMyQXJyYXk+O1xuICAgIGdldE91dFJhZGl1czogTGF5ZXJzRGF0YUF0dHJWYWx1ZXM8RmxvYXQzMkFycmF5PjtcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGbG93TGluZXNMYXllckF0dHJpYnV0ZXMge1xuICBsZW5ndGg6IG51bWJlcjtcbiAgYXR0cmlidXRlczoge1xuICAgIGdldFNvdXJjZVBvc2l0aW9uOiBMYXllcnNEYXRhQXR0clZhbHVlczxGbG9hdDMyQXJyYXk+O1xuICAgIGdldFRhcmdldFBvc2l0aW9uOiBMYXllcnNEYXRhQXR0clZhbHVlczxGbG9hdDMyQXJyYXk+O1xuICAgIGdldFRoaWNrbmVzczogTGF5ZXJzRGF0YUF0dHJWYWx1ZXM8RmxvYXQzMkFycmF5PjtcbiAgICBnZXRDb2xvcjogTGF5ZXJzRGF0YUF0dHJWYWx1ZXM8VWludDhBcnJheT47XG4gICAgZ2V0RW5kcG9pbnRPZmZzZXRzOiBMYXllcnNEYXRhQXR0clZhbHVlczxGbG9hdDMyQXJyYXk+O1xuICAgIGdldFN0YWdnZXJpbmc/OiBMYXllcnNEYXRhQXR0clZhbHVlczxGbG9hdDMyQXJyYXk+O1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExheWVyc0RhdGEge1xuICBjaXJjbGVBdHRyaWJ1dGVzOiBGbG93Q2lyY2xlc0xheWVyQXR0cmlidXRlcztcbiAgbGluZUF0dHJpYnV0ZXM6IEZsb3dMaW5lc0xheWVyQXR0cmlidXRlcztcbn1cblxuZXhwb3J0IHR5cGUgTGF5ZXJzRGF0YUF0dHJWYWx1ZXM8VD4gPSB7dmFsdWU6IFQ7IHNpemU6IG51bWJlcn07XG4iXX0=
@@ -0,0 +1,5 @@
1
+ import { defaultMemoize } from 'reselect';
2
+ export declare const createDebugSelector: import("reselect").CreateSelectorFunction<(...args: unknown[]) => unknown, typeof defaultMemoize, [equalityCheckOrOptions?: import("reselect").EqualityFn | import("reselect").DefaultMemoizeOptions | undefined], {
3
+ clearCache: () => void;
4
+ }>;
5
+ //# sourceMappingURL=util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,cAAc,EAAC,MAAM,UAAU,CAAC;AAE/D,eAAO,MAAM,mBAAmB;;EAQ9B,CAAC"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createDebugSelector = void 0;
4
+ var reselect_1 = require("reselect");
5
+ exports.createDebugSelector = (0, reselect_1.createSelectorCreator)(reselect_1.defaultMemoize, {
6
+ equalityCheck: function (previousVal, currentVal) {
7
+ var rv = currentVal === previousVal;
8
+ if (!rv) {
9
+ console.log('Selector param value changed', currentVal);
10
+ }
11
+ return rv;
12
+ },
13
+ });
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy91dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFDQUErRDtBQUVsRCxRQUFBLG1CQUFtQixHQUFHLElBQUEsZ0NBQXFCLEVBQUMseUJBQWMsRUFBRTtJQUN2RSxhQUFhLEVBQUUsVUFBQyxXQUFnQixFQUFFLFVBQWU7UUFDL0MsSUFBTSxFQUFFLEdBQUcsVUFBVSxLQUFLLFdBQVcsQ0FBQztRQUN0QyxJQUFJLENBQUMsRUFBRSxFQUFFO1lBQ1AsT0FBTyxDQUFDLEdBQUcsQ0FBQyw4QkFBOEIsRUFBRSxVQUFVLENBQUMsQ0FBQztTQUN6RDtRQUNELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztDQUNGLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Y3JlYXRlU2VsZWN0b3JDcmVhdG9yLCBkZWZhdWx0TWVtb2l6ZX0gZnJvbSAncmVzZWxlY3QnO1xuXG5leHBvcnQgY29uc3QgY3JlYXRlRGVidWdTZWxlY3RvciA9IGNyZWF0ZVNlbGVjdG9yQ3JlYXRvcihkZWZhdWx0TWVtb2l6ZSwge1xuICBlcXVhbGl0eUNoZWNrOiAocHJldmlvdXNWYWw6IGFueSwgY3VycmVudFZhbDogYW55KSA9PiB7XG4gICAgY29uc3QgcnYgPSBjdXJyZW50VmFsID09PSBwcmV2aW91c1ZhbDtcbiAgICBpZiAoIXJ2KSB7XG4gICAgICBjb25zb2xlLmxvZygnU2VsZWN0b3IgcGFyYW0gdmFsdWUgY2hhbmdlZCcsIGN1cnJlbnRWYWwpO1xuICAgIH1cbiAgICByZXR1cm4gcnY7XG4gIH0sXG59KTtcbiJdfQ==
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@flowmap.gl/data",
3
- "version": "8.0.0-alpha.1",
4
- "main": "dist/index.js",
3
+ "version": "8.0.0-alpha.13",
4
+ "main": "dist-es5/index.js",
5
5
  "module": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "repository": "git@github.com:FlowmapBlue/flowmap.gl.git",
@@ -9,11 +9,13 @@
9
9
  "license": "Apache-2.0",
10
10
  "scripts": {
11
11
  "dev": "tsc --watch",
12
- "build": "rm -rf dist && tsc",
12
+ "build:esm": "rm -rf dist && tsc",
13
+ "build:es5": "rm -rf dist-es5 && tsc --project tsconfig.es5.json",
14
+ "build": "yarn build:es5 && yarn build:esm",
13
15
  "prepare": "yarn build"
14
16
  },
15
17
  "dependencies": {
16
- "@mapbox/geo-viewport": "^0.5.0",
18
+ "@flowmap.gl/data": "^8.0.0-alpha.13",
17
19
  "d3-array": "^3.0.2",
18
20
  "d3-collection": "^1.0.7",
19
21
  "d3-color": "^3.0.1",
@@ -42,7 +44,7 @@
42
44
  "@types/mapbox__geo-viewport": "^0.4.1",
43
45
  "@types/seedrandom": "^3.0.1"
44
46
  },
45
- "gitHead": "d67c21d25ba72fe01aa2f4943e9a926d83090c65",
47
+ "gitHead": "4d38e29a88901c52c7c3e30114a090fd4d379ea3",
46
48
  "publishConfig": {
47
49
  "access": "public"
48
50
  }
@@ -1,23 +1,23 @@
1
1
  import {
2
2
  AggregateFlow,
3
3
  ClusterNode,
4
- FlowMapDataAccessors,
4
+ FlowmapDataAccessors,
5
5
  isAggregateFlow,
6
6
  isCluster,
7
7
  isLocationClusterNode,
8
8
  } from './types';
9
9
 
10
- export default class FlowMapAggregateAccessors<L, F> {
11
- private accessors: FlowMapDataAccessors<L, F>;
12
- constructor(accessors: FlowMapDataAccessors<L, F>) {
10
+ export default class FlowmapAggregateAccessors<L, F> {
11
+ private accessors: FlowmapDataAccessors<L, F>;
12
+ constructor(accessors: FlowmapDataAccessors<L, F>) {
13
13
  this.accessors = accessors;
14
14
  }
15
15
 
16
- setAccessors(accessors: FlowMapDataAccessors<L, F>) {
16
+ setAccessors(accessors: FlowmapDataAccessors<L, F>) {
17
17
  this.accessors = accessors;
18
18
  }
19
19
 
20
- getFlowMapDataAccessors() {
20
+ getFlowmapDataAccessors() {
21
21
  return this.accessors;
22
22
  }
23
23
 
@@ -35,10 +35,15 @@ export default class FlowMapAggregateAccessors<L, F> {
35
35
  // ? this.accessors.getLocationName(location)
36
36
  // : this.getLocationId(location);
37
37
 
38
- getLocationCentroid = (location: L | ClusterNode): [number, number] =>
38
+ getLocationLat = (location: L | ClusterNode): number =>
39
39
  isLocationClusterNode(location)
40
- ? location.centroid
41
- : this.accessors.getLocationCentroid(location);
40
+ ? location.lat
41
+ : this.accessors.getLocationLat(location);
42
+
43
+ getLocationLon = (location: L | ClusterNode): number =>
44
+ isLocationClusterNode(location)
45
+ ? location.lon
46
+ : this.accessors.getLocationLon(location);
42
47
 
43
48
  getFlowOriginId = (f: F | AggregateFlow) => {
44
49
  return isAggregateFlow(f) ? f.origin : this.accessors.getFlowOriginId(f);