@flowmap.gl/data 8.0.0-alpha.0
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/LICENSE +199 -0
- package/dist/FlowMapAggregateAccessors.d.ts +15 -0
- package/dist/FlowMapAggregateAccessors.d.ts.map +1 -0
- package/dist/FlowMapAggregateAccessors.js +43 -0
- package/dist/FlowMapSelectors.d.ts +156 -0
- package/dist/FlowMapSelectors.d.ts.map +1 -0
- package/dist/FlowMapSelectors.js +831 -0
- package/dist/FlowMapState.d.ts +24 -0
- package/dist/FlowMapState.d.ts.map +1 -0
- package/dist/FlowMapState.js +2 -0
- package/dist/cluster/ClusterIndex.d.ts +42 -0
- package/dist/cluster/ClusterIndex.d.ts.map +1 -0
- package/dist/cluster/ClusterIndex.js +178 -0
- package/dist/cluster/cluster.d.ts +31 -0
- package/dist/cluster/cluster.d.ts.map +1 -0
- package/dist/cluster/cluster.js +206 -0
- package/dist/colors.d.ts +103 -0
- package/dist/colors.d.ts.map +1 -0
- package/dist/colors.js +441 -0
- package/dist/getViewStateForLocations.d.ts +16 -0
- package/dist/getViewStateForLocations.d.ts.map +1 -0
- package/dist/getViewStateForLocations.js +30 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +10 -0
- package/dist/provider/FlowMapDataProvider.d.ts +16 -0
- package/dist/provider/FlowMapDataProvider.d.ts.map +1 -0
- package/dist/provider/FlowMapDataProvider.js +17 -0
- package/dist/provider/LocalFlowMapDataProvider.d.ts +20 -0
- package/dist/provider/LocalFlowMapDataProvider.d.ts.map +1 -0
- package/dist/provider/LocalFlowMapDataProvider.js +87 -0
- package/dist/time.d.ts +24 -0
- package/dist/time.d.ts.map +1 -0
- package/dist/time.js +126 -0
- package/dist/types.d.ts +116 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +23 -0
- package/dist/util.d.ts +2 -0
- package/dist/util.d.ts.map +1 -0
- package/dist/util.js +4 -0
- package/package.json +48 -0
- package/src/FlowMapAggregateAccessors.ts +60 -0
- package/src/FlowMapSelectors.ts +1407 -0
- package/src/FlowMapState.ts +26 -0
- package/src/cluster/ClusterIndex.ts +266 -0
- package/src/cluster/cluster.ts +299 -0
- package/src/colors.ts +723 -0
- package/src/getViewStateForLocations.ts +64 -0
- package/src/index.ts +10 -0
- package/src/provider/FlowMapDataProvider.ts +63 -0
- package/src/provider/LocalFlowMapDataProvider.ts +108 -0
- package/src/time.ts +160 -0
- package/src/types.ts +162 -0
- package/src/util.ts +3 -0
- package/tsconfig.json +11 -0
- package/typings.d.ts +1 -0
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { viewport } from '@mapbox/geo-viewport';
|
|
2
|
+
import { geoBounds } from 'd3-geo';
|
|
3
|
+
export function getViewStateForFeatures(featureCollection, size, opts) {
|
|
4
|
+
const { pad = 0.05, tileSize = 512, minZoom = 0, maxZoom = 100 } = opts || {};
|
|
5
|
+
const [[x1, y1], [x2, y2]] = geoBounds(featureCollection);
|
|
6
|
+
const bounds = [
|
|
7
|
+
x1 - pad * (x2 - x1),
|
|
8
|
+
y1 - pad * (y2 - y1),
|
|
9
|
+
x2 + pad * (x2 - x1),
|
|
10
|
+
y2 + pad * (y2 - y1),
|
|
11
|
+
];
|
|
12
|
+
const { center: [longitude, latitude], zoom, } = viewport(bounds, size, undefined, undefined, tileSize, true);
|
|
13
|
+
return {
|
|
14
|
+
longitude,
|
|
15
|
+
latitude,
|
|
16
|
+
zoom: Math.max(Math.min(maxZoom, zoom), minZoom),
|
|
17
|
+
bearing: 0,
|
|
18
|
+
pitch: 0,
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
export function getViewStateForLocations(locations, getLocationCentroid, size, opts) {
|
|
22
|
+
return getViewStateForFeatures({
|
|
23
|
+
type: 'GeometryCollection',
|
|
24
|
+
geometries: locations.map((location) => ({
|
|
25
|
+
type: 'Point',
|
|
26
|
+
coordinates: getLocationCentroid(location),
|
|
27
|
+
})),
|
|
28
|
+
}, size, opts);
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0Vmlld1N0YXRlRm9yTG9jYXRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2dldFZpZXdTdGF0ZUZvckxvY2F0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsUUFBUSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDM0QsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLFFBQVEsQ0FBQztBQU1qQyxNQUFNLFVBQVUsdUJBQXVCLENBQ3JDLGlCQUVzQixFQUN0QixJQUFzQixFQUN0QixJQUtDO0lBRUQsTUFBTSxFQUFDLEdBQUcsR0FBRyxJQUFJLEVBQUUsUUFBUSxHQUFHLEdBQUcsRUFBRSxPQUFPLEdBQUcsQ0FBQyxFQUFFLE9BQU8sR0FBRyxHQUFHLEVBQUMsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO0lBQzVFLE1BQU0sQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxpQkFBd0IsQ0FBQyxDQUFDO0lBQ2pFLE1BQU0sTUFBTSxHQUFnQjtRQUMxQixFQUFFLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQztRQUNwQixFQUFFLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQztRQUNwQixFQUFFLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQztRQUNwQixFQUFFLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQztLQUNyQixDQUFDO0lBQ0YsTUFBTSxFQUNKLE1BQU0sRUFBRSxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsRUFDN0IsSUFBSSxHQUNMLEdBQUcsUUFBUSxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFFakUsT0FBTztRQUNMLFNBQVM7UUFDVCxRQUFRO1FBQ1IsSUFBSSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLEVBQUUsT0FBTyxDQUFDO1FBQ2hELE9BQU8sRUFBRSxDQUFDO1FBQ1YsS0FBSyxFQUFFLENBQUM7S0FDVCxDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSx3QkFBd0IsQ0FDdEMsU0FBZ0IsRUFDaEIsbUJBQXdELEVBQ3hELElBQXNCLEVBQ3RCLElBS0M7SUFFRCxPQUFPLHVCQUF1QixDQUM1QjtRQUNFLElBQUksRUFBRSxvQkFBb0I7UUFDMUIsVUFBVSxFQUFFLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDdkMsSUFBSSxFQUFFLE9BQU87WUFDYixXQUFXLEVBQUUsbUJBQW1CLENBQUMsUUFBUSxDQUFDO1NBQzNDLENBQUMsQ0FBQztLQUNHLEVBQ1IsSUFBSSxFQUNKLElBQUksQ0FDTCxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Qm91bmRpbmdCb3gsIHZpZXdwb3J0fSBmcm9tICdAbWFwYm94L2dlby12aWV3cG9ydCc7XG5pbXBvcnQge2dlb0JvdW5kc30gZnJvbSAnZDMtZ2VvJztcbmltcG9ydCB7RmVhdHVyZUNvbGxlY3Rpb24sIEdlb21ldHJ5Q29sbGVjdGlvbiwgR2VvbWV0cnlPYmplY3R9IGZyb20gJ2dlb2pzb24nO1xuaW1wb3J0IHtWaWV3U3RhdGV9IGZyb20gJy4vdHlwZXMnO1xuXG5leHBvcnQgdHlwZSBMb2NhdGlvblByb3BlcnRpZXMgPSBhbnk7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRWaWV3U3RhdGVGb3JGZWF0dXJlcyhcbiAgZmVhdHVyZUNvbGxlY3Rpb246XG4gICAgfCBGZWF0dXJlQ29sbGVjdGlvbjxHZW9tZXRyeU9iamVjdCwgTG9jYXRpb25Qcm9wZXJ0aWVzPlxuICAgIHwgR2VvbWV0cnlDb2xsZWN0aW9uLFxuICBzaXplOiBbbnVtYmVyLCBudW1iZXJdLFxuICBvcHRzPzoge1xuICAgIHBhZD86IG51bWJlcjtcbiAgICB0aWxlU2l6ZT86IG51bWJlcjtcbiAgICBtaW5ab29tPzogbnVtYmVyO1xuICAgIG1heFpvb20/OiBudW1iZXI7XG4gIH0sXG4pOiBWaWV3U3RhdGUge1xuICBjb25zdCB7cGFkID0gMC4wNSwgdGlsZVNpemUgPSA1MTIsIG1pblpvb20gPSAwLCBtYXhab29tID0gMTAwfSA9IG9wdHMgfHwge307XG4gIGNvbnN0IFtbeDEsIHkxXSwgW3gyLCB5Ml1dID0gZ2VvQm91bmRzKGZlYXR1cmVDb2xsZWN0aW9uIGFzIGFueSk7XG4gIGNvbnN0IGJvdW5kczogQm91bmRpbmdCb3ggPSBbXG4gICAgeDEgLSBwYWQgKiAoeDIgLSB4MSksXG4gICAgeTEgLSBwYWQgKiAoeTIgLSB5MSksXG4gICAgeDIgKyBwYWQgKiAoeDIgLSB4MSksXG4gICAgeTIgKyBwYWQgKiAoeTIgLSB5MSksXG4gIF07XG4gIGNvbnN0IHtcbiAgICBjZW50ZXI6IFtsb25naXR1ZGUsIGxhdGl0dWRlXSxcbiAgICB6b29tLFxuICB9ID0gdmlld3BvcnQoYm91bmRzLCBzaXplLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdGlsZVNpemUsIHRydWUpO1xuXG4gIHJldHVybiB7XG4gICAgbG9uZ2l0dWRlLFxuICAgIGxhdGl0dWRlLFxuICAgIHpvb206IE1hdGgubWF4KE1hdGgubWluKG1heFpvb20sIHpvb20pLCBtaW5ab29tKSxcbiAgICBiZWFyaW5nOiAwLFxuICAgIHBpdGNoOiAwLFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Vmlld1N0YXRlRm9yTG9jYXRpb25zKFxuICBsb2NhdGlvbnM6IGFueVtdLFxuICBnZXRMb2NhdGlvbkNlbnRyb2lkOiAobG9jYXRpb246IGFueSkgPT4gW251bWJlciwgbnVtYmVyXSxcbiAgc2l6ZTogW251bWJlciwgbnVtYmVyXSxcbiAgb3B0cz86IHtcbiAgICBwYWQ/OiBudW1iZXI7XG4gICAgdGlsZVNpemU/OiBudW1iZXI7XG4gICAgbWluWm9vbT86IG51bWJlcjtcbiAgICBtYXhab29tPzogbnVtYmVyO1xuICB9LFxuKTogVmlld1N0YXRlIHtcbiAgcmV0dXJuIGdldFZpZXdTdGF0ZUZvckZlYXR1cmVzKFxuICAgIHtcbiAgICAgIHR5cGU6ICdHZW9tZXRyeUNvbGxlY3Rpb24nLFxuICAgICAgZ2VvbWV0cmllczogbG9jYXRpb25zLm1hcCgobG9jYXRpb24pID0+ICh7XG4gICAgICAgIHR5cGU6ICdQb2ludCcsXG4gICAgICAgIGNvb3JkaW5hdGVzOiBnZXRMb2NhdGlvbkNlbnRyb2lkKGxvY2F0aW9uKSxcbiAgICAgIH0pKSxcbiAgICB9IGFzIGFueSxcbiAgICBzaXplLFxuICAgIG9wdHMsXG4gICk7XG59XG4iXX0=
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export * from './types';
|
|
2
|
+
export * from './colors';
|
|
3
|
+
export * from './FlowMapState';
|
|
4
|
+
export * from './FlowMapSelectors';
|
|
5
|
+
export * from './time';
|
|
6
|
+
export * from './getViewStateForLocations';
|
|
7
|
+
export * from './provider/FlowMapDataProvider';
|
|
8
|
+
export { default as FlowMapAggregateAccessors } from './FlowMapAggregateAccessors';
|
|
9
|
+
export type { default as FlowMapDataProvider } from './provider/FlowMapDataProvider';
|
|
10
|
+
export { default as LocalFlowMapDataProvider } from './provider/LocalFlowMapDataProvider';
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,QAAQ,CAAC;AACvB,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gCAAgC,CAAC;AAC/C,OAAO,EAAC,OAAO,IAAI,yBAAyB,EAAC,MAAM,6BAA6B,CAAC;AACjF,YAAY,EAAC,OAAO,IAAI,mBAAmB,EAAC,MAAM,gCAAgC,CAAC;AACnF,OAAO,EAAC,OAAO,IAAI,wBAAwB,EAAC,MAAM,qCAAqC,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export * from './types';
|
|
2
|
+
export * from './colors';
|
|
3
|
+
export * from './FlowMapState';
|
|
4
|
+
export * from './FlowMapSelectors';
|
|
5
|
+
export * from './time';
|
|
6
|
+
export * from './getViewStateForLocations';
|
|
7
|
+
export * from './provider/FlowMapDataProvider';
|
|
8
|
+
export { default as FlowMapAggregateAccessors } from './FlowMapAggregateAccessors';
|
|
9
|
+
export { default as LocalFlowMapDataProvider } from './provider/LocalFlowMapDataProvider';
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsUUFBUSxDQUFDO0FBQ3ZCLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxPQUFPLEVBQUMsT0FBTyxJQUFJLHlCQUF5QixFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFFakYsT0FBTyxFQUFDLE9BQU8sSUFBSSx3QkFBd0IsRUFBQyxNQUFNLHFDQUFxQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2NvbG9ycyc7XG5leHBvcnQgKiBmcm9tICcuL0Zsb3dNYXBTdGF0ZSc7XG5leHBvcnQgKiBmcm9tICcuL0Zsb3dNYXBTZWxlY3RvcnMnO1xuZXhwb3J0ICogZnJvbSAnLi90aW1lJztcbmV4cG9ydCAqIGZyb20gJy4vZ2V0Vmlld1N0YXRlRm9yTG9jYXRpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vcHJvdmlkZXIvRmxvd01hcERhdGFQcm92aWRlcic7XG5leHBvcnQge2RlZmF1bHQgYXMgRmxvd01hcEFnZ3JlZ2F0ZUFjY2Vzc29yc30gZnJvbSAnLi9GbG93TWFwQWdncmVnYXRlQWNjZXNzb3JzJztcbmV4cG9ydCB0eXBlIHtkZWZhdWx0IGFzIEZsb3dNYXBEYXRhUHJvdmlkZXJ9IGZyb20gJy4vcHJvdmlkZXIvRmxvd01hcERhdGFQcm92aWRlcic7XG5leHBvcnQge2RlZmF1bHQgYXMgTG9jYWxGbG93TWFwRGF0YVByb3ZpZGVyfSBmcm9tICcuL3Byb3ZpZGVyL0xvY2FsRmxvd01hcERhdGFQcm92aWRlcic7XG4iXX0=
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { AggregateFlow, Cluster, LocationTotals } from '..';
|
|
2
|
+
import { FlowMapState } from '../FlowMapState';
|
|
3
|
+
import { ClusterNode, FlowMapData, FlowMapDataAccessors, LayersData, ViewportProps } from '../types';
|
|
4
|
+
export default interface FlowMapDataProvider<L, F> {
|
|
5
|
+
setAccessors(accessors: FlowMapDataAccessors<L, F>): void;
|
|
6
|
+
setFlowMapState(flowMapState: FlowMapState): Promise<void>;
|
|
7
|
+
getViewportForLocations(dims: [number, number]): Promise<ViewportProps>;
|
|
8
|
+
getFlowByIndex(index: number): Promise<F | AggregateFlow | undefined>;
|
|
9
|
+
getLocationById(id: string): Promise<L | Cluster | undefined>;
|
|
10
|
+
getLocationByIndex(idx: number): Promise<L | ClusterNode | undefined>;
|
|
11
|
+
getTotalsForLocation(id: string): Promise<LocationTotals | undefined>;
|
|
12
|
+
getLayersData(): Promise<LayersData | undefined>;
|
|
13
|
+
}
|
|
14
|
+
export declare function isFlowMapData<L, F>(data: Record<string, any>): data is FlowMapData<L, F>;
|
|
15
|
+
export declare function isFlowMapDataProvider<L, F>(dataProvider: Record<string, any>): dataProvider is FlowMapDataProvider<L, F>;
|
|
16
|
+
//# sourceMappingURL=FlowMapDataProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FlowMapDataProvider.d.ts","sourceRoot":"","sources":["../../src/provider/FlowMapDataProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAE,OAAO,EAAqB,cAAc,EAAC,MAAM,IAAI,CAAC;AAC7E,OAAO,EAAC,YAAY,EAAC,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EACL,WAAW,EACX,WAAW,EACX,oBAAoB,EACpB,UAAU,EACV,aAAa,EACd,MAAM,UAAU,CAAC;AAElB,MAAM,CAAC,OAAO,WAAW,mBAAmB,CAAC,CAAC,EAAE,CAAC;IAC/C,YAAY,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;IAE1D,eAAe,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAI3D,uBAAuB,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAIxE,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,aAAa,GAAG,SAAS,CAAC,CAAC;IAEtE,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,OAAO,GAAG,SAAS,CAAC,CAAC;IAE9D,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,WAAW,GAAG,SAAS,CAAC,CAAC;IAEtE,oBAAoB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAAC;IAQtE,aAAa,IAAI,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CAAC;CAClD;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,CAAC,EAChC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GACxB,IAAI,IAAI,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAQ3B;AAED,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,CAAC,EACxC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAChC,YAAY,IAAI,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAU3C"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export function isFlowMapData(data) {
|
|
2
|
+
return (data &&
|
|
3
|
+
data.locations &&
|
|
4
|
+
data.flows &&
|
|
5
|
+
Array.isArray(data.locations) &&
|
|
6
|
+
Array.isArray(data.flows));
|
|
7
|
+
}
|
|
8
|
+
export function isFlowMapDataProvider(dataProvider) {
|
|
9
|
+
return (dataProvider &&
|
|
10
|
+
typeof dataProvider.setFlowMapState === 'function' &&
|
|
11
|
+
typeof dataProvider.getViewportForLocations === 'function' &&
|
|
12
|
+
typeof dataProvider.getFlowByIndex === 'function' &&
|
|
13
|
+
typeof dataProvider.getLocationById === 'function' &&
|
|
14
|
+
typeof dataProvider.getLocationByIndex === 'function' &&
|
|
15
|
+
typeof dataProvider.getLayersData === 'function');
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmxvd01hcERhdGFQcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm92aWRlci9GbG93TWFwRGF0YVByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXNDQSxNQUFNLFVBQVUsYUFBYSxDQUMzQixJQUF5QjtJQUV6QixPQUFPLENBQ0wsSUFBSTtRQUNKLElBQUksQ0FBQyxTQUFTO1FBQ2QsSUFBSSxDQUFDLEtBQUs7UUFDVixLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDN0IsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQzFCLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLHFCQUFxQixDQUNuQyxZQUFpQztJQUVqQyxPQUFPLENBQ0wsWUFBWTtRQUNaLE9BQU8sWUFBWSxDQUFDLGVBQWUsS0FBSyxVQUFVO1FBQ2xELE9BQU8sWUFBWSxDQUFDLHVCQUF1QixLQUFLLFVBQVU7UUFDMUQsT0FBTyxZQUFZLENBQUMsY0FBYyxLQUFLLFVBQVU7UUFDakQsT0FBTyxZQUFZLENBQUMsZUFBZSxLQUFLLFVBQVU7UUFDbEQsT0FBTyxZQUFZLENBQUMsa0JBQWtCLEtBQUssVUFBVTtRQUNyRCxPQUFPLFlBQVksQ0FBQyxhQUFhLEtBQUssVUFBVSxDQUNqRCxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QWdncmVnYXRlRmxvdywgQ2x1c3RlciwgTG9jYXRpb25BY2Nlc3NvcnMsIExvY2F0aW9uVG90YWxzfSBmcm9tICcuLic7XG5pbXBvcnQge0Zsb3dNYXBTdGF0ZX0gZnJvbSAnLi4vRmxvd01hcFN0YXRlJztcbmltcG9ydCB7XG4gIENsdXN0ZXJOb2RlLFxuICBGbG93TWFwRGF0YSxcbiAgRmxvd01hcERhdGFBY2Nlc3NvcnMsXG4gIExheWVyc0RhdGEsXG4gIFZpZXdwb3J0UHJvcHMsXG59IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGRlZmF1bHQgaW50ZXJmYWNlIEZsb3dNYXBEYXRhUHJvdmlkZXI8TCwgRj4ge1xuICBzZXRBY2Nlc3NvcnMoYWNjZXNzb3JzOiBGbG93TWFwRGF0YUFjY2Vzc29yczxMLCBGPik6IHZvaWQ7XG5cbiAgc2V0Rmxvd01hcFN0YXRlKGZsb3dNYXBTdGF0ZTogRmxvd01hcFN0YXRlKTogUHJvbWlzZTx2b2lkPjtcblxuICAvLyBjbGVhckRhdGEoKTogdm9pZDtcblxuICBnZXRWaWV3cG9ydEZvckxvY2F0aW9ucyhkaW1zOiBbbnVtYmVyLCBudW1iZXJdKTogUHJvbWlzZTxWaWV3cG9ydFByb3BzPjtcblxuICAvLyBnZXRGbG93VG90YWxzKCk6IFByb21pc2U8Rmxvd1RvdGFscz47XG5cbiAgZ2V0Rmxvd0J5SW5kZXgoaW5kZXg6IG51bWJlcik6IFByb21pc2U8RiB8IEFnZ3JlZ2F0ZUZsb3cgfCB1bmRlZmluZWQ+O1xuXG4gIGdldExvY2F0aW9uQnlJZChpZDogc3RyaW5nKTogUHJvbWlzZTxMIHwgQ2x1c3RlciB8IHVuZGVmaW5lZD47XG5cbiAgZ2V0TG9jYXRpb25CeUluZGV4KGlkeDogbnVtYmVyKTogUHJvbWlzZTxMIHwgQ2x1c3Rlck5vZGUgfCB1bmRlZmluZWQ+O1xuXG4gIGdldFRvdGFsc0ZvckxvY2F0aW9uKGlkOiBzdHJpbmcpOiBQcm9taXNlPExvY2F0aW9uVG90YWxzIHwgdW5kZWZpbmVkPjtcblxuICAvLyBnZXRMb2NhdGlvbnNJbkJib3goXG4gIC8vICAgYmJveDogW251bWJlciwgbnVtYmVyLCBudW1iZXIsIG51bWJlcl0sXG4gIC8vICk6IFByb21pc2U8QXJyYXk8Rmxvd0xvY2F0aW9uIHwgQ2x1c3Rlck5vZGU+IHwgdW5kZWZpbmVkPjtcblxuICAvLyBnZXRMb2NhdGlvbnNGb3JTZWFyY2hCb3goKTogUHJvbWlzZTwoRmxvd0xvY2F0aW9uIHwgQ2x1c3Rlck5vZGUpW10gfCB1bmRlZmluZWQ+O1xuXG4gIGdldExheWVyc0RhdGEoKTogUHJvbWlzZTxMYXllcnNEYXRhIHwgdW5kZWZpbmVkPjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRmxvd01hcERhdGE8TCwgRj4oXG4gIGRhdGE6IFJlY29yZDxzdHJpbmcsIGFueT4sXG4pOiBkYXRhIGlzIEZsb3dNYXBEYXRhPEwsIEY+IHtcbiAgcmV0dXJuIChcbiAgICBkYXRhICYmXG4gICAgZGF0YS5sb2NhdGlvbnMgJiZcbiAgICBkYXRhLmZsb3dzICYmXG4gICAgQXJyYXkuaXNBcnJheShkYXRhLmxvY2F0aW9ucykgJiZcbiAgICBBcnJheS5pc0FycmF5KGRhdGEuZmxvd3MpXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0Zsb3dNYXBEYXRhUHJvdmlkZXI8TCwgRj4oXG4gIGRhdGFQcm92aWRlcjogUmVjb3JkPHN0cmluZywgYW55Pixcbik6IGRhdGFQcm92aWRlciBpcyBGbG93TWFwRGF0YVByb3ZpZGVyPEwsIEY+IHtcbiAgcmV0dXJuIChcbiAgICBkYXRhUHJvdmlkZXIgJiZcbiAgICB0eXBlb2YgZGF0YVByb3ZpZGVyLnNldEZsb3dNYXBTdGF0ZSA9PT0gJ2Z1bmN0aW9uJyAmJlxuICAgIHR5cGVvZiBkYXRhUHJvdmlkZXIuZ2V0Vmlld3BvcnRGb3JMb2NhdGlvbnMgPT09ICdmdW5jdGlvbicgJiZcbiAgICB0eXBlb2YgZGF0YVByb3ZpZGVyLmdldEZsb3dCeUluZGV4ID09PSAnZnVuY3Rpb24nICYmXG4gICAgdHlwZW9mIGRhdGFQcm92aWRlci5nZXRMb2NhdGlvbkJ5SWQgPT09ICdmdW5jdGlvbicgJiZcbiAgICB0eXBlb2YgZGF0YVByb3ZpZGVyLmdldExvY2F0aW9uQnlJbmRleCA9PT0gJ2Z1bmN0aW9uJyAmJlxuICAgIHR5cGVvZiBkYXRhUHJvdmlkZXIuZ2V0TGF5ZXJzRGF0YSA9PT0gJ2Z1bmN0aW9uJ1xuICApO1xufVxuIl19
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import FlowMapDataProvider from './FlowMapDataProvider';
|
|
2
|
+
import { Cluster, ClusterNode, FlowMapData, FlowMapDataAccessors, LayersData, LocationTotals, ViewportProps } from '../types';
|
|
3
|
+
import { FlowMapState } from '../FlowMapState';
|
|
4
|
+
import { AggregateFlow } from '..';
|
|
5
|
+
export default class LocalFlowMapDataProvider<L, F> implements FlowMapDataProvider<L, F> {
|
|
6
|
+
private selectors;
|
|
7
|
+
private flowMapData;
|
|
8
|
+
private flowMapState;
|
|
9
|
+
constructor(accessors: FlowMapDataAccessors<L, F>);
|
|
10
|
+
setAccessors(accessors: FlowMapDataAccessors<L, F>): void;
|
|
11
|
+
setFlowMapData(flowMapData: FlowMapData<L, F>): Promise<void>;
|
|
12
|
+
setFlowMapState(flowMapState: FlowMapState): Promise<void>;
|
|
13
|
+
getFlowByIndex(idx: number): Promise<F | AggregateFlow | undefined>;
|
|
14
|
+
getLocationByIndex(idx: number): Promise<L | ClusterNode | undefined>;
|
|
15
|
+
getLayersData(): Promise<LayersData | undefined>;
|
|
16
|
+
getLocationById(id: string): Promise<L | Cluster | undefined>;
|
|
17
|
+
getTotalsForLocation(id: string): Promise<LocationTotals | undefined>;
|
|
18
|
+
getViewportForLocations(dims: [number, number]): Promise<ViewportProps>;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=LocalFlowMapDataProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LocalFlowMapDataProvider.d.ts","sourceRoot":"","sources":["../../src/provider/LocalFlowMapDataProvider.ts"],"names":[],"mappings":"AAAA,OAAO,mBAAmB,MAAM,uBAAuB,CAAC;AACxD,OAAO,EACL,OAAO,EACP,WAAW,EAEX,WAAW,EACX,oBAAoB,EACpB,UAAU,EAEV,cAAc,EACd,aAAa,EACd,MAAM,UAAU,CAAC;AAClB,OAAO,EAAC,YAAY,EAAC,MAAM,iBAAiB,CAAC;AAE7C,OAAO,EAAC,aAAa,EAAC,MAAM,IAAI,CAAC;AAEjC,MAAM,CAAC,OAAO,OAAO,wBAAwB,CAAC,CAAC,EAAE,CAAC,CAChD,YAAW,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC;IAEpC,OAAO,CAAC,SAAS,CAAyB;IAC1C,OAAO,CAAC,WAAW,CAAgC;IACnD,OAAO,CAAC,YAAY,CAA2B;gBAEnC,SAAS,EAAE,oBAAoB,CAAC,CAAC,EAAE,CAAC,CAAC;IAOjD,YAAY,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC,EAAE,CAAC,CAAC;IAI5C,cAAc,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7D,eAAe,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAI1D,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,aAAa,GAAG,SAAS,CAAC;IAWnE,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,WAAW,GAAG,SAAS,CAAC;IAWrE,aAAa,IAAI,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;IAUhD,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,OAAO,GAAG,SAAS,CAAC;IAqB7D,oBAAoB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC;IAS3E,uBAAuB,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC;CAGxE"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import FlowMapSelectors from '../FlowMapSelectors';
|
|
11
|
+
export default class LocalFlowMapDataProvider {
|
|
12
|
+
constructor(accessors) {
|
|
13
|
+
// scope selectors to the concrete instance of FlowMapDataProvider
|
|
14
|
+
this.selectors = new FlowMapSelectors(accessors);
|
|
15
|
+
this.flowMapData = undefined;
|
|
16
|
+
this.flowMapState = undefined;
|
|
17
|
+
}
|
|
18
|
+
setAccessors(accessors) {
|
|
19
|
+
this.selectors.setAccessors(accessors);
|
|
20
|
+
}
|
|
21
|
+
setFlowMapData(flowMapData) {
|
|
22
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
23
|
+
this.flowMapData = flowMapData;
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
setFlowMapState(flowMapState) {
|
|
27
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
28
|
+
this.flowMapState = flowMapState;
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
getFlowByIndex(idx) {
|
|
32
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
33
|
+
if (!this.flowMapState || !this.flowMapData) {
|
|
34
|
+
return undefined;
|
|
35
|
+
}
|
|
36
|
+
const flows = this.selectors.getFlowsForFlowMapLayer(this.flowMapState, this.flowMapData);
|
|
37
|
+
return flows === null || flows === void 0 ? void 0 : flows[idx];
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
getLocationByIndex(idx) {
|
|
41
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
42
|
+
if (!this.flowMapState || !this.flowMapData) {
|
|
43
|
+
return undefined;
|
|
44
|
+
}
|
|
45
|
+
const locations = this.selectors.getLocationsForFlowMapLayer(this.flowMapState, this.flowMapData);
|
|
46
|
+
return locations === null || locations === void 0 ? void 0 : locations[idx];
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
getLayersData() {
|
|
50
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
51
|
+
if (!this.flowMapState || !this.flowMapData) {
|
|
52
|
+
return undefined;
|
|
53
|
+
}
|
|
54
|
+
return this.selectors.prepareLayersData(this.flowMapState, this.flowMapData);
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
getLocationById(id) {
|
|
58
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
59
|
+
if (!this.flowMapState || !this.flowMapData) {
|
|
60
|
+
return undefined;
|
|
61
|
+
}
|
|
62
|
+
const clusterIndex = this.selectors.getClusterIndex(this.flowMapState, this.flowMapData);
|
|
63
|
+
if (clusterIndex) {
|
|
64
|
+
const cluster = clusterIndex.getClusterById(id);
|
|
65
|
+
if (cluster) {
|
|
66
|
+
return cluster;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
const locationsById = this.selectors.getLocationsById(this.flowMapState, this.flowMapData);
|
|
70
|
+
return locationsById === null || locationsById === void 0 ? void 0 : locationsById.get(id);
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
getTotalsForLocation(id) {
|
|
74
|
+
var _a;
|
|
75
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
76
|
+
if (!this.flowMapState || !this.flowMapData) {
|
|
77
|
+
return undefined;
|
|
78
|
+
}
|
|
79
|
+
return (_a = this.selectors
|
|
80
|
+
.getLocationTotals(this.flowMapState, this.flowMapData)) === null || _a === void 0 ? void 0 : _a.get(id);
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
getViewportForLocations(dims) {
|
|
84
|
+
return Promise.resolve({});
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTG9jYWxGbG93TWFwRGF0YVByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Byb3ZpZGVyL0xvY2FsRmxvd01hcERhdGFQcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFhQSxPQUFPLGdCQUFnQixNQUFNLHFCQUFxQixDQUFDO0FBR25ELE1BQU0sQ0FBQyxPQUFPLE9BQU8sd0JBQXdCO0lBTzNDLFlBQVksU0FBcUM7UUFDL0Msa0VBQWtFO1FBQ2xFLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBTyxTQUFTLENBQUMsQ0FBQztRQUN2RCxJQUFJLENBQUMsV0FBVyxHQUFHLFNBQVMsQ0FBQztRQUM3QixJQUFJLENBQUMsWUFBWSxHQUFHLFNBQVMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsWUFBWSxDQUFDLFNBQXFDO1FBQ2hELElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFSyxjQUFjLENBQUMsV0FBOEI7O1lBQ2pELElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO1FBQ2pDLENBQUM7S0FBQTtJQUVLLGVBQWUsQ0FBQyxZQUEwQjs7WUFDOUMsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7UUFDbkMsQ0FBQztLQUFBO0lBRUssY0FBYyxDQUFDLEdBQVc7O1lBQzlCLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTtnQkFDM0MsT0FBTyxTQUFTLENBQUM7YUFDbEI7WUFDRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLHVCQUF1QixDQUNsRCxJQUFJLENBQUMsWUFBWSxFQUNqQixJQUFJLENBQUMsV0FBVyxDQUNqQixDQUFDO1lBQ0YsT0FBTyxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUcsR0FBRyxDQUFDLENBQUM7UUFDdEIsQ0FBQztLQUFBO0lBRUssa0JBQWtCLENBQUMsR0FBVzs7WUFDbEMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO2dCQUMzQyxPQUFPLFNBQVMsQ0FBQzthQUNsQjtZQUNELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsMkJBQTJCLENBQzFELElBQUksQ0FBQyxZQUFZLEVBQ2pCLElBQUksQ0FBQyxXQUFXLENBQ2pCLENBQUM7WUFDRixPQUFPLFNBQVMsYUFBVCxTQUFTLHVCQUFULFNBQVMsQ0FBRyxHQUFHLENBQUMsQ0FBQztRQUMxQixDQUFDO0tBQUE7SUFFSyxhQUFhOztZQUNqQixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7Z0JBQzNDLE9BQU8sU0FBUyxDQUFDO2FBQ2xCO1lBQ0QsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLGlCQUFpQixDQUNyQyxJQUFJLENBQUMsWUFBWSxFQUNqQixJQUFJLENBQUMsV0FBVyxDQUNqQixDQUFDO1FBQ0osQ0FBQztLQUFBO0lBRUssZUFBZSxDQUFDLEVBQVU7O1lBQzlCLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTtnQkFDM0MsT0FBTyxTQUFTLENBQUM7YUFDbEI7WUFDRCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FDakQsSUFBSSxDQUFDLFlBQVksRUFDakIsSUFBSSxDQUFDLFdBQVcsQ0FDakIsQ0FBQztZQUNGLElBQUksWUFBWSxFQUFFO2dCQUNoQixNQUFNLE9BQU8sR0FBRyxZQUFZLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNoRCxJQUFJLE9BQU8sRUFBRTtvQkFDWCxPQUFPLE9BQU8sQ0FBQztpQkFDaEI7YUFDRjtZQUNELE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQ25ELElBQUksQ0FBQyxZQUFZLEVBQ2pCLElBQUksQ0FBQyxXQUFXLENBQ2pCLENBQUM7WUFDRixPQUFPLGFBQWEsYUFBYixhQUFhLHVCQUFiLGFBQWEsQ0FBRSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDaEMsQ0FBQztLQUFBO0lBRUssb0JBQW9CLENBQUMsRUFBVTs7O1lBQ25DLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTtnQkFDM0MsT0FBTyxTQUFTLENBQUM7YUFDbEI7WUFDRCxPQUFPLE1BQUEsSUFBSSxDQUFDLFNBQVM7aUJBQ2xCLGlCQUFpQixDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQywwQ0FDckQsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDOztLQUNiO0lBRUQsdUJBQXVCLENBQUMsSUFBc0I7UUFDNUMsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQW1CLENBQUMsQ0FBQztJQUM5QyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgRmxvd01hcERhdGFQcm92aWRlciBmcm9tICcuL0Zsb3dNYXBEYXRhUHJvdmlkZXInO1xuaW1wb3J0IHtcbiAgQ2x1c3RlcixcbiAgQ2x1c3Rlck5vZGUsXG4gIEZsb3dBY2Nlc3NvcnMsXG4gIEZsb3dNYXBEYXRhLFxuICBGbG93TWFwRGF0YUFjY2Vzc29ycyxcbiAgTGF5ZXJzRGF0YSxcbiAgTG9jYXRpb25BY2Nlc3NvcnMsXG4gIExvY2F0aW9uVG90YWxzLFxuICBWaWV3cG9ydFByb3BzLFxufSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQge0Zsb3dNYXBTdGF0ZX0gZnJvbSAnLi4vRmxvd01hcFN0YXRlJztcbmltcG9ydCBGbG93TWFwU2VsZWN0b3JzIGZyb20gJy4uL0Zsb3dNYXBTZWxlY3RvcnMnO1xuaW1wb3J0IHtBZ2dyZWdhdGVGbG93fSBmcm9tICcuLic7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIExvY2FsRmxvd01hcERhdGFQcm92aWRlcjxMLCBGPlxuICBpbXBsZW1lbnRzIEZsb3dNYXBEYXRhUHJvdmlkZXI8TCwgRj5cbntcbiAgcHJpdmF0ZSBzZWxlY3RvcnM6IEZsb3dNYXBTZWxlY3RvcnM8TCwgRj47XG4gIHByaXZhdGUgZmxvd01hcERhdGE6IEZsb3dNYXBEYXRhPEwsIEY+IHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIGZsb3dNYXBTdGF0ZTogRmxvd01hcFN0YXRlIHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKGFjY2Vzc29yczogRmxvd01hcERhdGFBY2Nlc3NvcnM8TCwgRj4pIHtcbiAgICAvLyBzY29wZSBzZWxlY3RvcnMgdG8gdGhlIGNvbmNyZXRlIGluc3RhbmNlIG9mIEZsb3dNYXBEYXRhUHJvdmlkZXJcbiAgICB0aGlzLnNlbGVjdG9ycyA9IG5ldyBGbG93TWFwU2VsZWN0b3JzPEwsIEY+KGFjY2Vzc29ycyk7XG4gICAgdGhpcy5mbG93TWFwRGF0YSA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLmZsb3dNYXBTdGF0ZSA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHNldEFjY2Vzc29ycyhhY2Nlc3NvcnM6IEZsb3dNYXBEYXRhQWNjZXNzb3JzPEwsIEY+KSB7XG4gICAgdGhpcy5zZWxlY3RvcnMuc2V0QWNjZXNzb3JzKGFjY2Vzc29ycyk7XG4gIH1cblxuICBhc3luYyBzZXRGbG93TWFwRGF0YShmbG93TWFwRGF0YTogRmxvd01hcERhdGE8TCwgRj4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLmZsb3dNYXBEYXRhID0gZmxvd01hcERhdGE7XG4gIH1cblxuICBhc3luYyBzZXRGbG93TWFwU3RhdGUoZmxvd01hcFN0YXRlOiBGbG93TWFwU3RhdGUpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLmZsb3dNYXBTdGF0ZSA9IGZsb3dNYXBTdGF0ZTtcbiAgfVxuXG4gIGFzeW5jIGdldEZsb3dCeUluZGV4KGlkeDogbnVtYmVyKTogUHJvbWlzZTxGIHwgQWdncmVnYXRlRmxvdyB8IHVuZGVmaW5lZD4ge1xuICAgIGlmICghdGhpcy5mbG93TWFwU3RhdGUgfHwgIXRoaXMuZmxvd01hcERhdGEpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGNvbnN0IGZsb3dzID0gdGhpcy5zZWxlY3RvcnMuZ2V0Rmxvd3NGb3JGbG93TWFwTGF5ZXIoXG4gICAgICB0aGlzLmZsb3dNYXBTdGF0ZSxcbiAgICAgIHRoaXMuZmxvd01hcERhdGEsXG4gICAgKTtcbiAgICByZXR1cm4gZmxvd3M/LltpZHhdO1xuICB9XG5cbiAgYXN5bmMgZ2V0TG9jYXRpb25CeUluZGV4KGlkeDogbnVtYmVyKTogUHJvbWlzZTxMIHwgQ2x1c3Rlck5vZGUgfCB1bmRlZmluZWQ+IHtcbiAgICBpZiAoIXRoaXMuZmxvd01hcFN0YXRlIHx8ICF0aGlzLmZsb3dNYXBEYXRhKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBjb25zdCBsb2NhdGlvbnMgPSB0aGlzLnNlbGVjdG9ycy5nZXRMb2NhdGlvbnNGb3JGbG93TWFwTGF5ZXIoXG4gICAgICB0aGlzLmZsb3dNYXBTdGF0ZSxcbiAgICAgIHRoaXMuZmxvd01hcERhdGEsXG4gICAgKTtcbiAgICByZXR1cm4gbG9jYXRpb25zPy5baWR4XTtcbiAgfVxuXG4gIGFzeW5jIGdldExheWVyc0RhdGEoKTogUHJvbWlzZTxMYXllcnNEYXRhIHwgdW5kZWZpbmVkPiB7XG4gICAgaWYgKCF0aGlzLmZsb3dNYXBTdGF0ZSB8fCAhdGhpcy5mbG93TWFwRGF0YSkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0b3JzLnByZXBhcmVMYXllcnNEYXRhKFxuICAgICAgdGhpcy5mbG93TWFwU3RhdGUsXG4gICAgICB0aGlzLmZsb3dNYXBEYXRhLFxuICAgICk7XG4gIH1cblxuICBhc3luYyBnZXRMb2NhdGlvbkJ5SWQoaWQ6IHN0cmluZyk6IFByb21pc2U8TCB8IENsdXN0ZXIgfCB1bmRlZmluZWQ+IHtcbiAgICBpZiAoIXRoaXMuZmxvd01hcFN0YXRlIHx8ICF0aGlzLmZsb3dNYXBEYXRhKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBjb25zdCBjbHVzdGVySW5kZXggPSB0aGlzLnNlbGVjdG9ycy5nZXRDbHVzdGVySW5kZXgoXG4gICAgICB0aGlzLmZsb3dNYXBTdGF0ZSxcbiAgICAgIHRoaXMuZmxvd01hcERhdGEsXG4gICAgKTtcbiAgICBpZiAoY2x1c3RlckluZGV4KSB7XG4gICAgICBjb25zdCBjbHVzdGVyID0gY2x1c3RlckluZGV4LmdldENsdXN0ZXJCeUlkKGlkKTtcbiAgICAgIGlmIChjbHVzdGVyKSB7XG4gICAgICAgIHJldHVybiBjbHVzdGVyO1xuICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBsb2NhdGlvbnNCeUlkID0gdGhpcy5zZWxlY3RvcnMuZ2V0TG9jYXRpb25zQnlJZChcbiAgICAgIHRoaXMuZmxvd01hcFN0YXRlLFxuICAgICAgdGhpcy5mbG93TWFwRGF0YSxcbiAgICApO1xuICAgIHJldHVybiBsb2NhdGlvbnNCeUlkPy5nZXQoaWQpO1xuICB9XG5cbiAgYXN5bmMgZ2V0VG90YWxzRm9yTG9jYXRpb24oaWQ6IHN0cmluZyk6IFByb21pc2U8TG9jYXRpb25Ub3RhbHMgfCB1bmRlZmluZWQ+IHtcbiAgICBpZiAoIXRoaXMuZmxvd01hcFN0YXRlIHx8ICF0aGlzLmZsb3dNYXBEYXRhKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5zZWxlY3RvcnNcbiAgICAgIC5nZXRMb2NhdGlvblRvdGFscyh0aGlzLmZsb3dNYXBTdGF0ZSwgdGhpcy5mbG93TWFwRGF0YSlcbiAgICAgID8uZ2V0KGlkKTtcbiAgfVxuXG4gIGdldFZpZXdwb3J0Rm9yTG9jYXRpb25zKGRpbXM6IFtudW1iZXIsIG51bWJlcl0pOiBQcm9taXNlPFZpZXdwb3J0UHJvcHM+IHtcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHt9IGFzIFZpZXdwb3J0UHJvcHMpO1xuICB9XG59XG4iXX0=
|
package/dist/time.d.ts
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { TimeInterval } from 'd3-time';
|
|
2
|
+
export declare function parseTime(input: string | Date | undefined): Date | undefined;
|
|
3
|
+
export declare enum TimeGranularityKey {
|
|
4
|
+
SECOND = "SECOND",
|
|
5
|
+
MINUTE = "MINUTE",
|
|
6
|
+
HOUR = "HOUR",
|
|
7
|
+
DAY = "DAY",
|
|
8
|
+
MONTH = "MONTH",
|
|
9
|
+
YEAR = "YEAR"
|
|
10
|
+
}
|
|
11
|
+
export interface TimeGranularity {
|
|
12
|
+
key: TimeGranularityKey;
|
|
13
|
+
order: number;
|
|
14
|
+
interval: TimeInterval;
|
|
15
|
+
format: (date: Date) => string;
|
|
16
|
+
formatFull: (date: Date) => string;
|
|
17
|
+
}
|
|
18
|
+
export declare function tickMultiFormat(date: Date): string;
|
|
19
|
+
export declare const TIME_GRANULARITIES: TimeGranularity[];
|
|
20
|
+
export declare function getTimeGranularityByKey(key: TimeGranularityKey): TimeGranularity | undefined;
|
|
21
|
+
export declare function getTimeGranularityByOrder(order: number): TimeGranularity | undefined;
|
|
22
|
+
export declare function getTimeGranularityForDate(date: Date): TimeGranularity;
|
|
23
|
+
export declare function areRangesEqual(a: [Date, Date] | undefined, b: [Date, Date] | undefined): boolean;
|
|
24
|
+
//# sourceMappingURL=time.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"time.d.ts","sourceRoot":"","sources":["../src/time.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,YAAY,EAMb,MAAM,SAAS,CAAC;AAUjB,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,GAAG,SAAS,CAa5E;AAED,oBAAY,kBAAkB;IAC5B,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,GAAG,QAAQ;IACX,KAAK,UAAU;IACf,IAAI,SAAS;CACd;AAED,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,kBAAkB,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,YAAY,CAAC;IACvB,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,MAAM,CAAC;IAC/B,UAAU,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,MAAM,CAAC;CACpC;AAcD,wBAAgB,eAAe,CAAC,IAAI,EAAE,IAAI,UAkBzC;AAED,eAAO,MAAM,kBAAkB,EAAE,eAAe,EA4C/C,CAAC;AAEF,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,kBAAkB,+BAE9D;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,+BAEtD;AAED,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,IAAI,GAAG,eAAe,CAYrE;AAED,wBAAgB,cAAc,CAC5B,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,SAAS,EAC3B,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,SAAS,GAC1B,OAAO,CAIT"}
|
package/dist/time.js
ADDED
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import { timeFormat, timeParse } from 'd3-time-format';
|
|
2
|
+
import { timeDay, timeHour, timeMinute, timeMonth, timeSecond, timeWeek, timeYear, } from 'd3-time';
|
|
3
|
+
const dateParsers = [
|
|
4
|
+
timeParse('%Y-%m-%d'),
|
|
5
|
+
timeParse('%Y-%m-%d %H:%M'),
|
|
6
|
+
timeParse('%Y-%m-%d %H:%M:%S'),
|
|
7
|
+
timeParse('%Y'),
|
|
8
|
+
timeParse('%Y-%m'),
|
|
9
|
+
];
|
|
10
|
+
export function parseTime(input) {
|
|
11
|
+
if (input != null) {
|
|
12
|
+
if (input instanceof Date) {
|
|
13
|
+
return input;
|
|
14
|
+
}
|
|
15
|
+
for (const parse of dateParsers) {
|
|
16
|
+
const date = parse(input);
|
|
17
|
+
if (date) {
|
|
18
|
+
return date;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
return undefined;
|
|
23
|
+
}
|
|
24
|
+
export var TimeGranularityKey;
|
|
25
|
+
(function (TimeGranularityKey) {
|
|
26
|
+
TimeGranularityKey["SECOND"] = "SECOND";
|
|
27
|
+
TimeGranularityKey["MINUTE"] = "MINUTE";
|
|
28
|
+
TimeGranularityKey["HOUR"] = "HOUR";
|
|
29
|
+
TimeGranularityKey["DAY"] = "DAY";
|
|
30
|
+
TimeGranularityKey["MONTH"] = "MONTH";
|
|
31
|
+
TimeGranularityKey["YEAR"] = "YEAR";
|
|
32
|
+
})(TimeGranularityKey || (TimeGranularityKey = {}));
|
|
33
|
+
// const preferredLocale = navigator.languages ? navigator.languages[0] : 'en';
|
|
34
|
+
const formatMillisecond = timeFormat('.%L'), formatSecond = timeFormat(':%S'), formatMinute = timeFormat('%I:%M'),
|
|
35
|
+
// formatHour = (d: Date) => d.toLocaleString(preferredLocale, { hour: 'numeric' }),
|
|
36
|
+
formatHour = timeFormat('%I %p'), formatDay = timeFormat('%a %d'), formatWeek = timeFormat('%b %d'), formatMonth = timeFormat('%b'), formatYear = timeFormat('%Y');
|
|
37
|
+
export function tickMultiFormat(date) {
|
|
38
|
+
return (timeSecond(date) < date
|
|
39
|
+
? formatMillisecond
|
|
40
|
+
: timeMinute(date) < date
|
|
41
|
+
? formatSecond
|
|
42
|
+
: timeHour(date) < date
|
|
43
|
+
? formatMinute
|
|
44
|
+
: timeDay(date) < date
|
|
45
|
+
? formatHour
|
|
46
|
+
: timeMonth(date) < date
|
|
47
|
+
? timeWeek(date) < date
|
|
48
|
+
? formatDay
|
|
49
|
+
: formatWeek
|
|
50
|
+
: timeYear(date) < date
|
|
51
|
+
? formatMonth
|
|
52
|
+
: formatYear)(date);
|
|
53
|
+
}
|
|
54
|
+
export const TIME_GRANULARITIES = [
|
|
55
|
+
{
|
|
56
|
+
order: 0,
|
|
57
|
+
key: TimeGranularityKey.SECOND,
|
|
58
|
+
interval: timeSecond,
|
|
59
|
+
format: formatSecond,
|
|
60
|
+
formatFull: timeFormat('%Y-%m-%d %H:%M:%S'),
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
order: 1,
|
|
64
|
+
key: TimeGranularityKey.MINUTE,
|
|
65
|
+
interval: timeMinute,
|
|
66
|
+
format: formatMinute,
|
|
67
|
+
formatFull: timeFormat('%Y-%m-%d %H:%M'),
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
order: 2,
|
|
71
|
+
key: TimeGranularityKey.HOUR,
|
|
72
|
+
interval: timeHour,
|
|
73
|
+
// format: (d: Date) => d.toLocaleString(preferredLocale, { hour: 'numeric', minute: '2-digit' }),
|
|
74
|
+
format: formatHour,
|
|
75
|
+
formatFull: timeFormat('%a %d %b %Y, %I %p'),
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
order: 3,
|
|
79
|
+
key: TimeGranularityKey.DAY,
|
|
80
|
+
interval: timeDay,
|
|
81
|
+
format: formatDay,
|
|
82
|
+
formatFull: timeFormat('%a %d %b %Y'),
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
order: 4,
|
|
86
|
+
key: TimeGranularityKey.MONTH,
|
|
87
|
+
interval: timeMonth,
|
|
88
|
+
format: formatMonth,
|
|
89
|
+
formatFull: timeFormat('%b %Y'),
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
order: 5,
|
|
93
|
+
key: TimeGranularityKey.YEAR,
|
|
94
|
+
interval: timeYear,
|
|
95
|
+
format: formatYear,
|
|
96
|
+
formatFull: timeFormat('%Y'),
|
|
97
|
+
},
|
|
98
|
+
];
|
|
99
|
+
export function getTimeGranularityByKey(key) {
|
|
100
|
+
return TIME_GRANULARITIES.find((s) => s.key === key);
|
|
101
|
+
}
|
|
102
|
+
export function getTimeGranularityByOrder(order) {
|
|
103
|
+
return TIME_GRANULARITIES.find((s) => s.order === order);
|
|
104
|
+
}
|
|
105
|
+
export function getTimeGranularityForDate(date) {
|
|
106
|
+
let prev = undefined;
|
|
107
|
+
for (const current of TIME_GRANULARITIES) {
|
|
108
|
+
const { interval } = current;
|
|
109
|
+
const floored = interval(date);
|
|
110
|
+
if (floored < date) {
|
|
111
|
+
if (!prev)
|
|
112
|
+
return current;
|
|
113
|
+
return prev;
|
|
114
|
+
}
|
|
115
|
+
prev = current;
|
|
116
|
+
}
|
|
117
|
+
return TIME_GRANULARITIES[TIME_GRANULARITIES.length - 1];
|
|
118
|
+
}
|
|
119
|
+
export function areRangesEqual(a, b) {
|
|
120
|
+
if (!a && !b)
|
|
121
|
+
return true;
|
|
122
|
+
if (!a || !b)
|
|
123
|
+
return false;
|
|
124
|
+
return a[0] === b[0] && a[1] === b[1];
|
|
125
|
+
}
|
|
126
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy90aW1lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUNMLE9BQU8sRUFDUCxRQUFRLEVBRVIsVUFBVSxFQUNWLFNBQVMsRUFDVCxVQUFVLEVBQ1YsUUFBUSxFQUNSLFFBQVEsR0FDVCxNQUFNLFNBQVMsQ0FBQztBQUVqQixNQUFNLFdBQVcsR0FBRztJQUNsQixTQUFTLENBQUMsVUFBVSxDQUFDO0lBQ3JCLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQztJQUMzQixTQUFTLENBQUMsbUJBQW1CLENBQUM7SUFDOUIsU0FBUyxDQUFDLElBQUksQ0FBQztJQUNmLFNBQVMsQ0FBQyxPQUFPLENBQUM7Q0FDbkIsQ0FBQztBQUVGLE1BQU0sVUFBVSxTQUFTLENBQUMsS0FBZ0M7SUFDeEQsSUFBSSxLQUFLLElBQUksSUFBSSxFQUFFO1FBQ2pCLElBQUksS0FBSyxZQUFZLElBQUksRUFBRTtZQUN6QixPQUFPLEtBQUssQ0FBQztTQUNkO1FBQ0QsS0FBSyxNQUFNLEtBQUssSUFBSSxXQUFXLEVBQUU7WUFDL0IsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzFCLElBQUksSUFBSSxFQUFFO2dCQUNSLE9BQU8sSUFBSSxDQUFDO2FBQ2I7U0FDRjtLQUNGO0lBQ0QsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQztBQUVELE1BQU0sQ0FBTixJQUFZLGtCQU9YO0FBUEQsV0FBWSxrQkFBa0I7SUFDNUIsdUNBQWlCLENBQUE7SUFDakIsdUNBQWlCLENBQUE7SUFDakIsbUNBQWEsQ0FBQTtJQUNiLGlDQUFXLENBQUE7SUFDWCxxQ0FBZSxDQUFBO0lBQ2YsbUNBQWEsQ0FBQTtBQUNmLENBQUMsRUFQVyxrQkFBa0IsS0FBbEIsa0JBQWtCLFFBTzdCO0FBVUQsK0VBQStF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QUMsQ0FBQyxDQUFDO0FBQ3hDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge3RpbWVGb3JtYXQsIHRpbWVQYXJzZX0gZnJvbSAnZDMtdGltZS1mb3JtYXQnO1xuaW1wb3J0IHtcbiAgdGltZURheSxcbiAgdGltZUhvdXIsXG4gIFRpbWVJbnRlcnZhbCxcbiAgdGltZU1pbnV0ZSxcbiAgdGltZU1vbnRoLFxuICB0aW1lU2Vjb25kLFxuICB0aW1lV2VlayxcbiAgdGltZVllYXIsXG59IGZyb20gJ2QzLXRpbWUnO1xuXG5jb25zdCBkYXRlUGFyc2VycyA9IFtcbiAgdGltZVBhcnNlKCclWS0lbS0lZCcpLFxuICB0aW1lUGFyc2UoJyVZLSVtLSVkICVIOiVNJyksXG4gIHRpbWVQYXJzZSgnJVktJW0tJWQgJUg6JU06JVMnKSxcbiAgdGltZVBhcnNlKCclWScpLFxuICB0aW1lUGFyc2UoJyVZLSVtJyksXG5dO1xuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VUaW1lKGlucHV0OiBzdHJpbmcgfCBEYXRlIHwgdW5kZWZpbmVkKTogRGF0ZSB8IHVuZGVmaW5lZCB7XG4gIGlmIChpbnB1dCAhPSBudWxsKSB7XG4gICAgaWYgKGlucHV0IGluc3RhbmNlb2YgRGF0ZSkge1xuICAgICAgcmV0dXJuIGlucHV0O1xuICAgIH1cbiAgICBmb3IgKGNvbnN0IHBhcnNlIG9mIGRhdGVQYXJzZXJzKSB7XG4gICAgICBjb25zdCBkYXRlID0gcGFyc2UoaW5wdXQpO1xuICAgICAgaWYgKGRhdGUpIHtcbiAgICAgICAgcmV0dXJuIGRhdGU7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBlbnVtIFRpbWVHcmFudWxhcml0eUtleSB7XG4gIFNFQ09ORCA9ICdTRUNPTkQnLFxuICBNSU5VVEUgPSAnTUlOVVRFJyxcbiAgSE9VUiA9ICdIT1VSJyxcbiAgREFZID0gJ0RBWScsXG4gIE1PTlRIID0gJ01PTlRIJyxcbiAgWUVBUiA9ICdZRUFSJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUaW1lR3JhbnVsYXJpdHkge1xuICBrZXk6IFRpbWVHcmFudWxhcml0eUtleTtcbiAgb3JkZXI6IG51bWJlcjtcbiAgaW50ZXJ2YWw6IFRpbWVJbnRlcnZhbDtcbiAgZm9ybWF0OiAoZGF0ZTogRGF0ZSkgPT4gc3RyaW5nO1xuICBmb3JtYXRGdWxsOiAoZGF0ZTogRGF0ZSkgPT4gc3RyaW5nO1xufVxuXG4vLyBjb25zdCBwcmVmZXJyZWRMb2NhbGUgPSBuYXZpZ2F0b3IubGFuZ3VhZ2VzID8gbmF2aWdhdG9yLmxhbmd1YWdlc1swXSA6ICdlbic7XG5cbmNvbnN0IGZvcm1hdE1pbGxpc2Vjb25kID0gdGltZUZvcm1hdCgnLiVMJyksXG4gIGZvcm1hdFNlY29uZCA9IHRpbWVGb3JtYXQoJzolUycpLFxuICBmb3JtYXRNaW51dGUgPSB0aW1lRm9ybWF0KCclSTolTScpLFxuICAvLyBmb3JtYXRIb3VyID0gKGQ6IERhdGUpID0+IGQudG9Mb2NhbGVTdHJpbmcocHJlZmVycmVkTG9jYWxlLCB7IGhvdXI6ICdudW1lcmljJyB9KSxcbiAgZm9ybWF0SG91ciA9IHRpbWVGb3JtYXQoJyVJICVwJyksXG4gIGZvcm1hdERheSA9IHRpbWVGb3JtYXQoJyVhICVkJyksXG4gIGZvcm1hdFdlZWsgPSB0aW1lRm9ybWF0KCclYiAlZCcpLFxuICBmb3JtYXRNb250aCA9IHRpbWVGb3JtYXQoJyViJyksXG4gIGZvcm1hdFllYXIgPSB0aW1lRm9ybWF0KCclWScpO1xuXG5leHBvcnQgZnVuY3Rpb24gdGlja011bHRpRm9ybWF0KGRhdGU6IERhdGUpIHtcbiAgcmV0dXJuIChcbiAgICB0aW1lU2Vjb25kKGRhdGUpIDwgZGF0ZVxuICAgICAgPyBmb3JtYXRNaWxsaXNlY29uZFxuICAgICAgOiB0aW1lTWludXRlKGRhdGUpIDwgZGF0ZVxuICAgICAgPyBmb3JtYXRTZWNvbmRcbiAgICAgIDogdGltZUhvdXIoZGF0ZSkgPCBkYXRlXG4gICAgICA/IGZvcm1hdE1pbnV0ZVxuICAgICAgOiB0aW1lRGF5KGRhdGUpIDwgZGF0ZVxuICAgICAgPyBmb3JtYXRIb3VyXG4gICAgICA6IHRpbWVNb250aChkYXRlKSA8IGRhdGVcbiAgICAgID8gdGltZVdlZWsoZGF0ZSkgPCBkYXRlXG4gICAgICAgID8gZm9ybWF0RGF5XG4gICAgICAgIDogZm9ybWF0V2Vla1xuICAgICAgOiB0aW1lWWVhcihkYXRlKSA8IGRhdGVcbiAgICAgID8gZm9ybWF0TW9udGhcbiAgICAgIDogZm9ybWF0WWVhclxuICApKGRhdGUpO1xufVxuXG5leHBvcnQgY29uc3QgVElNRV9HUkFOVUxBUklUSUVTOiBUaW1lR3JhbnVsYXJpdHlbXSA9IFtcbiAge1xuICAgIG9yZGVyOiAwLFxuICAgIGtleTogVGltZUdyYW51bGFyaXR5S2V5LlNFQ09ORCxcbiAgICBpbnRlcnZhbDogdGltZVNlY29uZCxcbiAgICBmb3JtYXQ6IGZvcm1hdFNlY29uZCxcbiAgICBmb3JtYXRGdWxsOiB0aW1lRm9ybWF0KCclWS0lbS0lZCAlSDolTTolUycpLFxuICB9LFxuICB7XG4gICAgb3JkZXI6IDEsXG4gICAga2V5OiBUaW1lR3JhbnVsYXJpdHlLZXkuTUlOVVRFLFxuICAgIGludGVydmFsOiB0aW1lTWludXRlLFxuICAgIGZvcm1hdDogZm9ybWF0TWludXRlLFxuICAgIGZvcm1hdEZ1bGw6IHRpbWVGb3JtYXQoJyVZLSVtLSVkICVIOiVNJyksXG4gIH0sXG4gIHtcbiAgICBvcmRlcjogMixcbiAgICBrZXk6IFRpbWVHcmFudWxhcml0eUtleS5IT1VSLFxuICAgIGludGVydmFsOiB0aW1lSG91cixcbiAgICAvLyBmb3JtYXQ6IChkOiBEYXRlKSA9PiBkLnRvTG9jYWxlU3RyaW5nKHByZWZlcnJlZExvY2FsZSwgeyBob3VyOiAnbnVtZXJpYycsIG1pbnV0ZTogJzItZGlnaXQnIH0pLFxuICAgIGZvcm1hdDogZm9ybWF0SG91cixcbiAgICBmb3JtYXRGdWxsOiB0aW1lRm9ybWF0KCclYSAlZCAlYiAlWSwgJUkgJXAnKSxcbiAgfSxcbiAge1xuICAgIG9yZGVyOiAzLFxuICAgIGtleTogVGltZUdyYW51bGFyaXR5S2V5LkRBWSxcbiAgICBpbnRlcnZhbDogdGltZURheSxcbiAgICBmb3JtYXQ6IGZvcm1hdERheSxcbiAgICBmb3JtYXRGdWxsOiB0aW1lRm9ybWF0KCclYSAlZCAlYiAlWScpLFxuICB9LFxuICB7XG4gICAgb3JkZXI6IDQsXG4gICAga2V5OiBUaW1lR3JhbnVsYXJpdHlLZXkuTU9OVEgsXG4gICAgaW50ZXJ2YWw6IHRpbWVNb250aCxcbiAgICBmb3JtYXQ6IGZvcm1hdE1vbnRoLFxuICAgIGZvcm1hdEZ1bGw6IHRpbWVGb3JtYXQoJyViICVZJyksXG4gIH0sXG4gIHtcbiAgICBvcmRlcjogNSxcbiAgICBrZXk6IFRpbWVHcmFudWxhcml0eUtleS5ZRUFSLFxuICAgIGludGVydmFsOiB0aW1lWWVhcixcbiAgICBmb3JtYXQ6IGZvcm1hdFllYXIsXG4gICAgZm9ybWF0RnVsbDogdGltZUZvcm1hdCgnJVknKSxcbiAgfSxcbl07XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRUaW1lR3JhbnVsYXJpdHlCeUtleShrZXk6IFRpbWVHcmFudWxhcml0eUtleSkge1xuICByZXR1cm4gVElNRV9HUkFOVUxBUklUSUVTLmZpbmQoKHMpID0+IHMua2V5ID09PSBrZXkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VGltZUdyYW51bGFyaXR5QnlPcmRlcihvcmRlcjogbnVtYmVyKSB7XG4gIHJldHVybiBUSU1FX0dSQU5VTEFSSVRJRVMuZmluZCgocykgPT4gcy5vcmRlciA9PT0gb3JkZXIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VGltZUdyYW51bGFyaXR5Rm9yRGF0ZShkYXRlOiBEYXRlKTogVGltZUdyYW51bGFyaXR5IHtcbiAgbGV0IHByZXYgPSB1bmRlZmluZWQ7XG4gIGZvciAoY29uc3QgY3VycmVudCBvZiBUSU1FX0dSQU5VTEFSSVRJRVMpIHtcbiAgICBjb25zdCB7aW50ZXJ2YWx9ID0gY3VycmVudDtcbiAgICBjb25zdCBmbG9vcmVkID0gaW50ZXJ2YWwoZGF0ZSk7XG4gICAgaWYgKGZsb29yZWQgPCBkYXRlKSB7XG4gICAgICBpZiAoIXByZXYpIHJldHVybiBjdXJyZW50O1xuICAgICAgcmV0dXJuIHByZXY7XG4gICAgfVxuICAgIHByZXYgPSBjdXJyZW50O1xuICB9XG4gIHJldHVybiBUSU1FX0dSQU5VTEFSSVRJRVNbVElNRV9HUkFOVUxBUklUSUVTLmxlbmd0aCAtIDFdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYXJlUmFuZ2VzRXF1YWwoXG4gIGE6IFtEYXRlLCBEYXRlXSB8IHVuZGVmaW5lZCxcbiAgYjogW0RhdGUsIERhdGVdIHwgdW5kZWZpbmVkLFxuKTogYm9vbGVhbiB7XG4gIGlmICghYSAmJiAhYikgcmV0dXJuIHRydWU7XG4gIGlmICghYSB8fCAhYikgcmV0dXJuIGZhbHNlO1xuICByZXR1cm4gYVswXSA9PT0gYlswXSAmJiBhWzFdID09PSBiWzFdO1xufVxuIl19
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,116 @@
|
|
|
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
|
+
getLocationCentroid: LocationAccessor<L, [number, number]>;
|
|
25
|
+
getLocationClusterName?: (locationIds: string[]) => string;
|
|
26
|
+
}
|
|
27
|
+
export declare type FlowMapDataAccessors<L, F> = LocationAccessors<L> & FlowAccessors<F>;
|
|
28
|
+
export interface LocationTotals {
|
|
29
|
+
incomingCount: number;
|
|
30
|
+
outgoingCount: number;
|
|
31
|
+
internalCount: number;
|
|
32
|
+
}
|
|
33
|
+
export interface CountByTime {
|
|
34
|
+
time: Date;
|
|
35
|
+
count: number;
|
|
36
|
+
}
|
|
37
|
+
export interface ViewportProps {
|
|
38
|
+
width: number;
|
|
39
|
+
height: number;
|
|
40
|
+
latitude: number;
|
|
41
|
+
longitude: number;
|
|
42
|
+
zoom: number;
|
|
43
|
+
bearing: number;
|
|
44
|
+
pitch: number;
|
|
45
|
+
altitude?: number;
|
|
46
|
+
maxZoom?: number;
|
|
47
|
+
minZoom?: number;
|
|
48
|
+
maxPitch?: number;
|
|
49
|
+
minPitch?: number;
|
|
50
|
+
transitionDuration?: number | 'auto';
|
|
51
|
+
transitionInterpolator?: any;
|
|
52
|
+
transitionInterruption?: any;
|
|
53
|
+
transitionEasing?: any;
|
|
54
|
+
}
|
|
55
|
+
export interface ClusterNode {
|
|
56
|
+
id: string;
|
|
57
|
+
zoom: number;
|
|
58
|
+
centroid: [number, number];
|
|
59
|
+
}
|
|
60
|
+
export interface ClusterLevel {
|
|
61
|
+
zoom: number;
|
|
62
|
+
nodes: ClusterNode[];
|
|
63
|
+
}
|
|
64
|
+
export declare type ClusterLevels = ClusterLevel[];
|
|
65
|
+
export interface Cluster extends ClusterNode {
|
|
66
|
+
name?: string;
|
|
67
|
+
children: string[];
|
|
68
|
+
}
|
|
69
|
+
export declare function isCluster(c: ClusterNode): c is Cluster;
|
|
70
|
+
export declare function isLocationClusterNode<L>(l: L | ClusterNode): l is ClusterNode;
|
|
71
|
+
export interface AggregateFlow {
|
|
72
|
+
origin: string;
|
|
73
|
+
dest: string;
|
|
74
|
+
count: number;
|
|
75
|
+
aggregate: true;
|
|
76
|
+
}
|
|
77
|
+
export declare function isAggregateFlow(flow: Record<string, any>): flow is AggregateFlow;
|
|
78
|
+
export interface FlowCountsMapReduce<F, T = any> {
|
|
79
|
+
map: (flow: F) => T;
|
|
80
|
+
reduce: (accumulated: T, val: T) => T;
|
|
81
|
+
}
|
|
82
|
+
export declare enum LocationFilterMode {
|
|
83
|
+
ALL = "ALL",
|
|
84
|
+
INCOMING = "INCOMING",
|
|
85
|
+
OUTGOING = "OUTGOING",
|
|
86
|
+
BETWEEN = "BETWEEN"
|
|
87
|
+
}
|
|
88
|
+
export interface FlowCirclesLayerAttributes {
|
|
89
|
+
length: number;
|
|
90
|
+
attributes: {
|
|
91
|
+
getPosition: LayersDataAttrValues<Float32Array>;
|
|
92
|
+
getColor: LayersDataAttrValues<Uint8Array>;
|
|
93
|
+
getInRadius: LayersDataAttrValues<Float32Array>;
|
|
94
|
+
getOutRadius: LayersDataAttrValues<Float32Array>;
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
export interface FlowLinesLayerAttributes {
|
|
98
|
+
length: number;
|
|
99
|
+
attributes: {
|
|
100
|
+
getSourcePosition: LayersDataAttrValues<Float32Array>;
|
|
101
|
+
getTargetPosition: LayersDataAttrValues<Float32Array>;
|
|
102
|
+
getThickness: LayersDataAttrValues<Float32Array>;
|
|
103
|
+
getColor: LayersDataAttrValues<Uint8Array>;
|
|
104
|
+
getEndpointOffsets: LayersDataAttrValues<Float32Array>;
|
|
105
|
+
getStaggering?: LayersDataAttrValues<Float32Array>;
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
export interface LayersData {
|
|
109
|
+
circleAttributes: FlowCirclesLayerAttributes;
|
|
110
|
+
lineAttributes: FlowLinesLayerAttributes;
|
|
111
|
+
}
|
|
112
|
+
export declare type LayersDataAttrValues<T> = {
|
|
113
|
+
value: T;
|
|
114
|
+
size: number;
|
|
115
|
+
};
|
|
116
|
+
//# 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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"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export function isCluster(c) {
|
|
2
|
+
const { children } = c;
|
|
3
|
+
return children && children.length > 0;
|
|
4
|
+
}
|
|
5
|
+
export function isLocationClusterNode(l) {
|
|
6
|
+
const { zoom } = l;
|
|
7
|
+
return zoom !== undefined;
|
|
8
|
+
}
|
|
9
|
+
export function isAggregateFlow(flow) {
|
|
10
|
+
return (flow &&
|
|
11
|
+
flow.origin !== undefined &&
|
|
12
|
+
flow.dest !== undefined &&
|
|
13
|
+
flow.count !== undefined &&
|
|
14
|
+
(flow.aggregate ? true : false));
|
|
15
|
+
}
|
|
16
|
+
export var LocationFilterMode;
|
|
17
|
+
(function (LocationFilterMode) {
|
|
18
|
+
LocationFilterMode["ALL"] = "ALL";
|
|
19
|
+
LocationFilterMode["INCOMING"] = "INCOMING";
|
|
20
|
+
LocationFilterMode["OUTGOING"] = "OUTGOING";
|
|
21
|
+
LocationFilterMode["BETWEEN"] = "BETWEEN";
|
|
22
|
+
})(LocationFilterMode || (LocationFilterMode = {}));
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBNkZBLE1BQU0sVUFBVSxTQUFTLENBQUMsQ0FBYztJQUN0QyxNQUFNLEVBQUMsUUFBUSxFQUFDLEdBQUcsQ0FBWSxDQUFDO0lBQ2hDLE9BQU8sUUFBUSxJQUFJLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0FBQ3pDLENBQUM7QUFFRCxNQUFNLFVBQVUscUJBQXFCLENBQUksQ0FBa0I7SUFDekQsTUFBTSxFQUFDLElBQUksRUFBQyxHQUFHLENBQWdCLENBQUM7SUFDaEMsT0FBTyxJQUFJLEtBQUssU0FBUyxDQUFDO0FBQzVCLENBQUM7QUFTRCxNQUFNLFVBQVUsZUFBZSxDQUM3QixJQUF5QjtJQUV6QixPQUFPLENBQ0wsSUFBSTtRQUNKLElBQUksQ0FBQyxNQUFNLEtBQUssU0FBUztRQUN6QixJQUFJLENBQUMsSUFBSSxLQUFLLFNBQVM7UUFDdkIsSUFBSSxDQUFDLEtBQUssS0FBSyxTQUFTO1FBQ3hCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FDaEMsQ0FBQztBQUNKLENBQUM7QUFPRCxNQUFNLENBQU4sSUFBWSxrQkFLWDtBQUxELFdBQVksa0JBQWtCO0lBQzVCLGlDQUFXLENBQUE7SUFDWCwyQ0FBcUIsQ0FBQTtJQUNyQiwyQ0FBcUIsQ0FBQTtJQUNyQix5Q0FBbUIsQ0FBQTtBQUNyQixDQUFDLEVBTFcsa0JBQWtCLEtBQWxCLGtCQUFrQixRQUs3QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIEZsb3dNYXBEYXRhPEwsIEY+ID0ge1xuICBsb2NhdGlvbnM6IExbXSB8IHVuZGVmaW5lZDtcbiAgZmxvd3M6IEZbXSB8IHVuZGVmaW5lZDtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmlld1N0YXRlIHtcbiAgbGF0aXR1ZGU6IG51bWJlcjtcbiAgbG9uZ2l0dWRlOiBudW1iZXI7XG4gIHpvb206IG51bWJlcjtcbiAgYmVhcmluZz86IG51bWJlcjtcbiAgcGl0Y2g/OiBudW1iZXI7XG4gIGFsdGl0dWRlPzogbnVtYmVyO1xufVxuXG5leHBvcnQgdHlwZSBGbG93QWNjZXNzb3I8RiwgVD4gPSAoZmxvdzogRikgPT4gVDsgLy8gb2JqZWN0SW5mbz86IEFjY2Vzc29yT2JqZWN0SW5mbyxcbmV4cG9ydCB0eXBlIExvY2F0aW9uQWNjZXNzb3I8TCwgVD4gPSAobG9jYXRpb246IEwpID0+IFQ7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmxvd0FjY2Vzc29yczxGPiB7XG4gIGdldEZsb3dPcmlnaW5JZDogRmxvd0FjY2Vzc29yPEYsIHN0cmluZz47XG4gIGdldEZsb3dEZXN0SWQ6IEZsb3dBY2Nlc3NvcjxGLCBzdHJpbmc+O1xuICBnZXRGbG93TWFnbml0dWRlOiBGbG93QWNjZXNzb3I8RiwgbnVtYmVyPjtcbiAgZ2V0Rmxvd1RpbWU/OiBGbG93QWNjZXNzb3I8RiwgRGF0ZT47IC8vIFRPRE86IHVzZSBudW1iZXIgaW5zdGVhZCBvZiBEYXRlXG4gIC8vIGdldEZsb3dDb2xvcj86IEZsb3dBY2Nlc3NvcjxzdHJpbmcgfCB1bmRlZmluZWQ+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExvY2F0aW9uQWNjZXNzb3JzPEw+IHtcbiAgZ2V0TG9jYXRpb25JZDogTG9jYXRpb25BY2Nlc3NvcjxMLCBzdHJpbmc+O1xuICBnZXRMb2NhdGlvbk5hbWU/OiBMb2NhdGlvbkFjY2Vzc29yPEwsIHN0cmluZz47XG4gIGdldExvY2F0aW9uQ2VudHJvaWQ6IExvY2F0aW9uQWNjZXNzb3I8TCwgW251bWJlciwgbnVtYmVyXT47XG4gIGdldExvY2F0aW9uQ2x1c3Rlck5hbWU/OiAobG9jYXRpb25JZHM6IHN0cmluZ1tdKSA9PiBzdHJpbmc7XG4gIC8vIGdldExvY2F0aW9uVG90YWxJbj86IExvY2F0aW9uQWNjZXNzb3I8bnVtYmVyPjtcbiAgLy8gZ2V0TG9jYXRpb25Ub3RhbE91dD86IExvY2F0aW9uQWNjZXNzb3I8bnVtYmVyPjtcbiAgLy8gZ2V0TG9jYXRpb25Ub3RhbEludGVybmFsPzogTG9jYXRpb25BY2Nlc3NvcjxudW1iZXI+O1xufVxuXG5leHBvcnQgdHlwZSBGbG93TWFwRGF0YUFjY2Vzc29yczxMLCBGPiA9IExvY2F0aW9uQWNjZXNzb3JzPEw+ICZcbiAgRmxvd0FjY2Vzc29yczxGPjtcblxuZXhwb3J0IGludGVyZmFjZSBMb2NhdGlvblRvdGFscyB7XG4gIGluY29taW5nQ291bnQ6IG51bWJlcjtcbiAgb3V0Z29pbmdDb3VudDogbnVtYmVyO1xuICBpbnRlcm5hbENvdW50OiBudW1iZXI7XG59XG5cbi8vIGV4cG9ydCBpbnRlcmZhY2UgTG9jYXRpb25zVG90YWxzIHtcbi8vICAgaW5jb21pbmc6IHtbaWQ6IHN0cmluZ106IG51bWJlcn07XG4vLyAgIG91dGdvaW5nOiB7W2lkOiBzdHJpbmddOiBudW1iZXJ9O1xuLy8gICBpbnRlcm5hbDoge1tpZDogc3RyaW5nXTogbnVtYmVyfTtcbi8vIH1cblxuZXhwb3J0IGludGVyZmFjZSBDb3VudEJ5VGltZSB7XG4gIHRpbWU6IERhdGU7XG4gIGNvdW50OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmlld3BvcnRQcm9wcyB7XG4gIHdpZHRoOiBudW1iZXI7XG4gIGhlaWdodDogbnVtYmVyO1xuICBsYXRpdHVkZTogbnVtYmVyO1xuICBsb25naXR1ZGU6IG51bWJlcjtcbiAgem9vbTogbnVtYmVyO1xuICBiZWFyaW5nOiBudW1iZXI7XG4gIHBpdGNoOiBudW1iZXI7XG4gIGFsdGl0dWRlPzogbnVtYmVyO1xuICBtYXhab29tPzogbnVtYmVyO1xuICBtaW5ab29tPzogbnVtYmVyO1xuICBtYXhQaXRjaD86IG51bWJlcjtcbiAgbWluUGl0Y2g/OiBudW1iZXI7XG4gIHRyYW5zaXRpb25EdXJhdGlvbj86IG51bWJlciB8ICdhdXRvJztcbiAgdHJhbnNpdGlvbkludGVycG9sYXRvcj86IGFueTtcbiAgdHJhbnNpdGlvbkludGVycnVwdGlvbj86IGFueTtcbiAgdHJhbnNpdGlvbkVhc2luZz86IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDbHVzdGVyTm9kZSB7XG4gIGlkOiBzdHJpbmc7XG4gIHpvb206IG51bWJlcjtcbiAgY2VudHJvaWQ6IFtudW1iZXIsIG51bWJlcl07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2x1c3RlckxldmVsIHtcbiAgem9vbTogbnVtYmVyO1xuICBub2RlczogQ2x1c3Rlck5vZGVbXTtcbn1cblxuZXhwb3J0IHR5cGUgQ2x1c3RlckxldmVscyA9IENsdXN0ZXJMZXZlbFtdO1xuXG4vLyBub24tbGVhZiBjbHVzdGVyIG5vZGVcbmV4cG9ydCBpbnRlcmZhY2UgQ2x1c3RlciBleHRlbmRzIENsdXN0ZXJOb2RlIHtcbiAgbmFtZT86IHN0cmluZztcbiAgY2hpbGRyZW46IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNDbHVzdGVyKGM6IENsdXN0ZXJOb2RlKTogYyBpcyBDbHVzdGVyIHtcbiAgY29uc3Qge2NoaWxkcmVufSA9IGMgYXMgQ2x1c3RlcjtcbiAgcmV0dXJuIGNoaWxkcmVuICYmIGNoaWxkcmVuLmxlbmd0aCA+IDA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0xvY2F0aW9uQ2x1c3Rlck5vZGU8TD4obDogTCB8IENsdXN0ZXJOb2RlKTogbCBpcyBDbHVzdGVyTm9kZSB7XG4gIGNvbnN0IHt6b29tfSA9IGwgYXMgQ2x1c3Rlck5vZGU7XG4gIHJldHVybiB6b29tICE9PSB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWdncmVnYXRlRmxvdyB7XG4gIG9yaWdpbjogc3RyaW5nO1xuICBkZXN0OiBzdHJpbmc7XG4gIGNvdW50OiBudW1iZXI7XG4gIGFnZ3JlZ2F0ZTogdHJ1ZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQWdncmVnYXRlRmxvdyhcbiAgZmxvdzogUmVjb3JkPHN0cmluZywgYW55Pixcbik6IGZsb3cgaXMgQWdncmVnYXRlRmxvdyB7XG4gIHJldHVybiAoXG4gICAgZmxvdyAmJlxuICAgIGZsb3cub3JpZ2luICE9PSB1bmRlZmluZWQgJiZcbiAgICBmbG93LmRlc3QgIT09IHVuZGVmaW5lZCAmJlxuICAgIGZsb3cuY291bnQgIT09IHVuZGVmaW5lZCAmJlxuICAgIChmbG93LmFnZ3JlZ2F0ZSA/IHRydWUgOiBmYWxzZSlcbiAgKTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGbG93Q291bnRzTWFwUmVkdWNlPEYsIFQgPSBhbnk+IHtcbiAgbWFwOiAoZmxvdzogRikgPT4gVDtcbiAgcmVkdWNlOiAoYWNjdW11bGF0ZWQ6IFQsIHZhbDogVCkgPT4gVDtcbn1cblxuZXhwb3J0IGVudW0gTG9jYXRpb25GaWx0ZXJNb2RlIHtcbiAgQUxMID0gJ0FMTCcsXG4gIElOQ09NSU5HID0gJ0lOQ09NSU5HJyxcbiAgT1VUR09JTkcgPSAnT1VUR09JTkcnLFxuICBCRVRXRUVOID0gJ0JFVFdFRU4nLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZsb3dDaXJjbGVzTGF5ZXJBdHRyaWJ1dGVzIHtcbiAgbGVuZ3RoOiBudW1iZXI7XG4gIGF0dHJpYnV0ZXM6IHtcbiAgICBnZXRQb3NpdGlvbjogTGF5ZXJzRGF0YUF0dHJWYWx1ZXM8RmxvYXQzMkFycmF5PjtcbiAgICBnZXRDb2xvcjogTGF5ZXJzRGF0YUF0dHJWYWx1ZXM8VWludDhBcnJheT47XG4gICAgZ2V0SW5SYWRpdXM6IExheWVyc0RhdGFBdHRyVmFsdWVzPEZsb2F0MzJBcnJheT47XG4gICAgZ2V0T3V0UmFkaXVzOiBMYXllcnNEYXRhQXR0clZhbHVlczxGbG9hdDMyQXJyYXk+O1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZsb3dMaW5lc0xheWVyQXR0cmlidXRlcyB7XG4gIGxlbmd0aDogbnVtYmVyO1xuICBhdHRyaWJ1dGVzOiB7XG4gICAgZ2V0U291cmNlUG9zaXRpb246IExheWVyc0RhdGFBdHRyVmFsdWVzPEZsb2F0MzJBcnJheT47XG4gICAgZ2V0VGFyZ2V0UG9zaXRpb246IExheWVyc0RhdGFBdHRyVmFsdWVzPEZsb2F0MzJBcnJheT47XG4gICAgZ2V0VGhpY2tuZXNzOiBMYXllcnNEYXRhQXR0clZhbHVlczxGbG9hdDMyQXJyYXk+O1xuICAgIGdldENvbG9yOiBMYXllcnNEYXRhQXR0clZhbHVlczxVaW50OEFycmF5PjtcbiAgICBnZXRFbmRwb2ludE9mZnNldHM6IExheWVyc0RhdGFBdHRyVmFsdWVzPEZsb2F0MzJBcnJheT47XG4gICAgZ2V0U3RhZ2dlcmluZz86IExheWVyc0RhdGFBdHRyVmFsdWVzPEZsb2F0MzJBcnJheT47XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGF5ZXJzRGF0YSB7XG4gIGNpcmNsZUF0dHJpYnV0ZXM6IEZsb3dDaXJjbGVzTGF5ZXJBdHRyaWJ1dGVzO1xuICBsaW5lQXR0cmlidXRlczogRmxvd0xpbmVzTGF5ZXJBdHRyaWJ1dGVzO1xufVxuXG5leHBvcnQgdHlwZSBMYXllcnNEYXRhQXR0clZhbHVlczxUPiA9IHt2YWx1ZTogVDsgc2l6ZTogbnVtYmVyfTtcbiJdfQ==
|
package/dist/util.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAAA,wBAAgB,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,CAEnE"}
|
package/dist/util.js
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export function flatMap(xs, f) {
|
|
2
|
+
return xs.reduce((acc, x) => acc.concat(f(x)), []);
|
|
3
|
+
}
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy91dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxPQUFPLENBQU8sRUFBTyxFQUFFLENBQXVCO0lBQzVELE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQVEsRUFBRSxDQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDN0QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBmbGF0TWFwPFMsIFQ+KHhzOiBTW10sIGY6IChpdGVtOiBTKSA9PiBUIHwgVFtdKTogVFtdIHtcbiAgcmV0dXJuIHhzLnJlZHVjZSgoYWNjOiBUW10sIHg6IFMpID0+IGFjYy5jb25jYXQoZih4KSksIFtdKTtcbn1cbiJdfQ==
|