@kepler.gl/utils 3.1.0-alpha.1 → 3.1.0-alpha.2
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/dist/aggregation.d.ts +13 -0
- package/dist/aggregation.js +84 -0
- package/dist/application-config.d.ts +25 -0
- package/dist/application-config.js +52 -0
- package/dist/arrow-data-container.d.ts +62 -0
- package/dist/arrow-data-container.js +331 -0
- package/dist/color-utils.d.ts +108 -0
- package/dist/color-utils.js +443 -0
- package/dist/data-container-interface.d.ts +138 -0
- package/dist/data-container-interface.js +6 -0
- package/dist/data-container-utils.d.ts +30 -0
- package/dist/data-container-utils.js +74 -0
- package/dist/data-row.d.ts +59 -0
- package/dist/data-row.js +110 -0
- package/dist/data-scale-utils.d.ts +120 -0
- package/dist/data-scale-utils.js +340 -0
- package/dist/data-utils.d.ts +98 -0
- package/dist/data-utils.js +436 -0
- package/dist/dataset-utils.d.ts +45 -0
- package/dist/dataset-utils.js +313 -0
- package/dist/dom-to-image.d.ts +73 -0
- package/dist/dom-to-image.js +421 -0
- package/dist/dom-utils.d.ts +23 -0
- package/dist/dom-utils.js +349 -0
- package/dist/effect-utils.d.ts +24 -0
- package/dist/effect-utils.js +166 -0
- package/dist/export-map-html.d.ts +9 -0
- package/dist/export-map-html.js +25 -0
- package/dist/export-utils.d.ts +40 -0
- package/dist/export-utils.js +201 -0
- package/dist/filter-utils.d.ts +331 -0
- package/dist/filter-utils.js +1214 -0
- package/dist/format.d.ts +3 -0
- package/dist/format.js +38 -0
- package/dist/gl-utils.d.ts +1 -0
- package/dist/gl-utils.js +27 -0
- package/dist/index.d.ts +41 -0
- package/dist/index.js +941 -0
- package/dist/indexed-data-container.d.ts +34 -0
- package/dist/indexed-data-container.js +214 -0
- package/dist/locale-utils.d.ts +2 -0
- package/dist/locale-utils.js +39 -0
- package/dist/map-info-utils.d.ts +1 -0
- package/dist/map-info-utils.js +14 -0
- package/dist/map-style-utils/mapbox-gl-style-editor.d.ts +57 -0
- package/dist/map-style-utils/mapbox-gl-style-editor.js +188 -0
- package/dist/map-style-utils/mapbox-utils.d.ts +14 -0
- package/dist/map-style-utils/mapbox-utils.js +51 -0
- package/dist/map-utils.d.ts +9 -0
- package/dist/map-utils.js +48 -0
- package/dist/mapbox-utils.d.ts +7 -0
- package/dist/mapbox-utils.js +19 -0
- package/dist/noop.d.ts +1 -0
- package/dist/noop.js +13 -0
- package/dist/notifications-utils.d.ts +42 -0
- package/dist/notifications-utils.js +69 -0
- package/dist/observe-dimensions.d.ts +15 -0
- package/dist/observe-dimensions.js +130 -0
- package/dist/plot.d.ts +131 -0
- package/dist/plot.js +615 -0
- package/dist/position-utils.d.ts +6 -0
- package/dist/position-utils.js +26 -0
- package/dist/projection-utils.d.ts +22 -0
- package/dist/projection-utils.js +83 -0
- package/dist/quick-insertion-sort.d.ts +12 -0
- package/dist/quick-insertion-sort.js +132 -0
- package/dist/row-data-container.d.ts +31 -0
- package/dist/row-data-container.js +206 -0
- package/dist/searcher-utils.d.ts +1 -0
- package/dist/searcher-utils.js +25 -0
- package/dist/split-map-utils.d.ts +32 -0
- package/dist/split-map-utils.js +99 -0
- package/dist/strings.d.ts +4 -0
- package/dist/strings.js +16 -0
- package/dist/time.d.ts +54 -0
- package/dist/time.js +325 -0
- package/dist/types.d.ts +18 -0
- package/dist/types.js +6 -0
- package/dist/utils.d.ts +104 -0
- package/dist/utils.js +241 -0
- package/package.json +6 -5
@@ -0,0 +1,331 @@
|
|
1
|
+
import { Field, ParsedFilter, Filter, FilterBase, PolygonFilter, FieldDomain, TimeRangeFieldDomain, Feature, FeatureValue, LineChart, TimeRangeFilter, RangeFieldDomain, FilterDatasetOpt, FilterRecord, AnimationConfig } from '@kepler.gl/types';
|
2
|
+
import { DataContainerInterface } from './data-container-interface';
|
3
|
+
import { KeplerTableModel } from './types';
|
4
|
+
export declare const durationSecond = 1000;
|
5
|
+
export declare const durationMinute: number;
|
6
|
+
export declare const durationHour: number;
|
7
|
+
export declare const durationDay: number;
|
8
|
+
export declare const durationWeek: number;
|
9
|
+
export declare const durationYear: number;
|
10
|
+
declare type VisState = any;
|
11
|
+
export declare type FilterResult = {
|
12
|
+
filteredIndexForDomain?: number[];
|
13
|
+
filteredIndex?: number[];
|
14
|
+
};
|
15
|
+
export declare type FilterChanged = {
|
16
|
+
[key in keyof FilterRecord]: {
|
17
|
+
[key: string]: 'added' | 'deleted' | 'name_changed' | 'value_changed' | 'dataId_changed';
|
18
|
+
} | null;
|
19
|
+
};
|
20
|
+
export declare type dataValueAccessor = (data: {
|
21
|
+
index: number;
|
22
|
+
}) => number | null;
|
23
|
+
export declare const TimestampStepMap: {
|
24
|
+
max: number;
|
25
|
+
step: number;
|
26
|
+
}[];
|
27
|
+
export declare const FILTER_UPDATER_PROPS: {
|
28
|
+
dataId: "dataId";
|
29
|
+
name: "name";
|
30
|
+
layerId: "layerId";
|
31
|
+
};
|
32
|
+
export declare const FILTER_COMPONENTS: {
|
33
|
+
select: string;
|
34
|
+
multiSelect: string;
|
35
|
+
timeRange: string;
|
36
|
+
range: string;
|
37
|
+
polygon: string;
|
38
|
+
};
|
39
|
+
export declare const DEFAULT_FILTER_STRUCTURE: {
|
40
|
+
dataId: never[];
|
41
|
+
id: null;
|
42
|
+
enabled: boolean;
|
43
|
+
fixedDomain: boolean;
|
44
|
+
view: "side";
|
45
|
+
isAnimating: boolean;
|
46
|
+
animationWindow: "free";
|
47
|
+
speed: number;
|
48
|
+
name: never[];
|
49
|
+
type: null;
|
50
|
+
fieldIdx: never[];
|
51
|
+
domain: null;
|
52
|
+
value: null;
|
53
|
+
plotType: {
|
54
|
+
type: "histogram";
|
55
|
+
};
|
56
|
+
yAxis: null;
|
57
|
+
gpu: boolean;
|
58
|
+
};
|
59
|
+
export declare const FILTER_ID_LENGTH = 4;
|
60
|
+
export declare const LAYER_FILTERS: "polygon"[];
|
61
|
+
/**
|
62
|
+
* Generates a filter with a dataset id as dataId
|
63
|
+
*/
|
64
|
+
export declare function getDefaultFilter({ dataId, id }?: {
|
65
|
+
dataId?: string | null | string[];
|
66
|
+
id?: string;
|
67
|
+
}): FilterBase<LineChart>;
|
68
|
+
/**
|
69
|
+
* Check if a filter is valid based on the given dataId
|
70
|
+
* @param filter to validate
|
71
|
+
* @param datasetId id to validate filter against
|
72
|
+
* @return true if a filter is valid, false otherwise
|
73
|
+
*/
|
74
|
+
export declare function shouldApplyFilter(filter: Filter, datasetId: string): boolean;
|
75
|
+
/**
|
76
|
+
* Validates and modifies polygon filter structure
|
77
|
+
* @param dataset
|
78
|
+
* @param filter
|
79
|
+
* @param layers
|
80
|
+
* @return - {filter, dataset}
|
81
|
+
*/
|
82
|
+
export declare function validatePolygonFilter<K extends KeplerTableModel<K, L>, L extends {
|
83
|
+
id: string;
|
84
|
+
}>(dataset: K, filter: PolygonFilter, layers: L[]): {
|
85
|
+
filter: PolygonFilter | null;
|
86
|
+
dataset: K;
|
87
|
+
};
|
88
|
+
/**
|
89
|
+
* Default validate filter function
|
90
|
+
* @param dataset
|
91
|
+
* @param filter
|
92
|
+
* @return - {filter, dataset}
|
93
|
+
*/
|
94
|
+
export declare function validateFilter<K extends KeplerTableModel<K, L>, L>(dataset: K, filter: ParsedFilter): {
|
95
|
+
filter: Filter | null;
|
96
|
+
dataset: K;
|
97
|
+
};
|
98
|
+
/**
|
99
|
+
* Validate saved filter config with new data
|
100
|
+
*
|
101
|
+
* @param dataset
|
102
|
+
* @param filter - filter to be validate
|
103
|
+
* @param layers - layers
|
104
|
+
* @return validated filter
|
105
|
+
*/
|
106
|
+
export declare function validateFilterWithData<K extends KeplerTableModel<K, L>, L>(dataset: K, filter: ParsedFilter, layers: L[]): {
|
107
|
+
filter: Filter;
|
108
|
+
dataset: K;
|
109
|
+
};
|
110
|
+
/**
|
111
|
+
* Get default filter prop based on field type
|
112
|
+
*
|
113
|
+
* @param field
|
114
|
+
* @param fieldDomain
|
115
|
+
* @returns default filter
|
116
|
+
*/
|
117
|
+
export declare function getFilterProps(field: Field, fieldDomain: FieldDomain): Partial<Filter> & {
|
118
|
+
fieldType: string;
|
119
|
+
};
|
120
|
+
export declare const getPolygonFilterFunctor: (layer: any, filter: any, dataContainer: any) => (data: any) => any;
|
121
|
+
/**
|
122
|
+
* Check if a GeoJSON feature filter can be applied to a layer
|
123
|
+
*/
|
124
|
+
export declare function canApplyFeatureFilter(feature: Feature | null): boolean;
|
125
|
+
/**
|
126
|
+
* @param param An object that represents a row record.
|
127
|
+
* @param param.index Index of the row in data container.
|
128
|
+
* @returns Returns true to keep the element, or false otherwise.
|
129
|
+
*/
|
130
|
+
declare type filterFunction = (data: {
|
131
|
+
index: number;
|
132
|
+
}) => boolean;
|
133
|
+
/**
|
134
|
+
* @param field dataset Field
|
135
|
+
* @param dataId Dataset id
|
136
|
+
* @param filter Filter object
|
137
|
+
* @param layers list of layers to filter upon
|
138
|
+
* @param dataContainer Data container
|
139
|
+
* @return filterFunction
|
140
|
+
*/
|
141
|
+
export declare function getFilterFunction<L extends {
|
142
|
+
config: {
|
143
|
+
dataId: string | null;
|
144
|
+
};
|
145
|
+
id: string;
|
146
|
+
}>(field: Field | null, dataId: string, filter: Filter, layers: L[], dataContainer: DataContainerInterface): filterFunction;
|
147
|
+
export declare function updateFilterDataId(dataId: string | string[]): FilterBase<LineChart>;
|
148
|
+
export declare function filterDataByFilterTypes({ dynamicDomainFilters, cpuFilters, filterFuncs }: {
|
149
|
+
dynamicDomainFilters: Filter[] | null;
|
150
|
+
cpuFilters: Filter[] | null;
|
151
|
+
filterFuncs: {
|
152
|
+
[key: string]: filterFunction;
|
153
|
+
};
|
154
|
+
}, dataContainer: DataContainerInterface): FilterResult;
|
155
|
+
/**
|
156
|
+
* Get a record of filters based on domain type and gpu / cpu
|
157
|
+
*/
|
158
|
+
export declare function getFilterRecord(dataId: string, filters: Filter[], opt?: FilterDatasetOpt): FilterRecord;
|
159
|
+
/**
|
160
|
+
* Compare filter records to get what has changed
|
161
|
+
*/
|
162
|
+
export declare function diffFilters(filterRecord: FilterRecord, oldFilterRecord?: FilterRecord | Record<string, never>): FilterChanged;
|
163
|
+
/**
|
164
|
+
* Call by parsing filters from URL
|
165
|
+
* Check if value of filter within filter domain, if not adjust it to match
|
166
|
+
* filter domain
|
167
|
+
*
|
168
|
+
* @returns value - adjusted value to match filter or null to remove filter
|
169
|
+
*/
|
170
|
+
export declare function adjustValueToFilterDomain(value: Filter['value'], { domain, type }: {
|
171
|
+
domain: any;
|
172
|
+
type: any;
|
173
|
+
}): any;
|
174
|
+
/**
|
175
|
+
* Calculate numeric domain and suitable step
|
176
|
+
*/
|
177
|
+
export declare function getNumericFieldDomain(dataContainer: DataContainerInterface, valueAccessor: dataValueAccessor): RangeFieldDomain;
|
178
|
+
/**
|
179
|
+
* Calculate step size for range and timerange filter
|
180
|
+
*/
|
181
|
+
export declare function getNumericStepSize(diff: number): number;
|
182
|
+
/**
|
183
|
+
* Calculate timestamp domain and suitable step
|
184
|
+
*/
|
185
|
+
export declare function getTimestampFieldDomain(dataContainer: DataContainerInterface, valueAccessor: dataValueAccessor): TimeRangeFieldDomain;
|
186
|
+
/**
|
187
|
+
* round number based on step
|
188
|
+
*
|
189
|
+
* @param {Number} val
|
190
|
+
* @param {Number} step
|
191
|
+
* @param {string} bound
|
192
|
+
* @returns {Number} rounded number
|
193
|
+
*/
|
194
|
+
export declare function formatNumberByStep(val: number, step: number, bound: 'floor' | 'ceil'): number;
|
195
|
+
export declare function isInRange(val: any, domain: number[]): boolean;
|
196
|
+
/**
|
197
|
+
* Determines whether a point is within the provided polygon
|
198
|
+
*
|
199
|
+
* @param point as input search [lat, lng]
|
200
|
+
* @param polygon Points must be within these (Multi)Polygon(s)
|
201
|
+
* @return {boolean}
|
202
|
+
*/
|
203
|
+
export declare function isInPolygon(point: number[], polygon: any): boolean;
|
204
|
+
export declare function getTimeWidgetTitleFormatter(domain: [number, number]): string | null;
|
205
|
+
/**
|
206
|
+
* Sanity check on filters to prepare for save
|
207
|
+
* @type {typeof import('./filter-utils').isFilterValidToSave}
|
208
|
+
*/
|
209
|
+
export declare function isFilterValidToSave(filter: any): boolean;
|
210
|
+
/**
|
211
|
+
* Sanity check on filters to prepare for save
|
212
|
+
* @type {typeof import('./filter-utils').isValidFilterValue}
|
213
|
+
*/
|
214
|
+
export declare function isValidFilterValue(type: string | null, value: any): boolean;
|
215
|
+
export declare function getColumnFilterProps<K extends KeplerTableModel<K, L>, L>(filter: Filter, dataset: K): {
|
216
|
+
lineChart: LineChart;
|
217
|
+
yAxs: Field;
|
218
|
+
} | Record<string, any>;
|
219
|
+
export declare function updateFilterPlot<K extends KeplerTableModel<K, any>>(datasets: {
|
220
|
+
[id: string]: K;
|
221
|
+
}, filter: Filter, dataId?: string | undefined): Filter;
|
222
|
+
/**
|
223
|
+
*
|
224
|
+
* @param datasetIds list of dataset ids to be filtered
|
225
|
+
* @param datasets all datasets
|
226
|
+
* @param filters all filters to be applied to datasets
|
227
|
+
* @return datasets - new updated datasets
|
228
|
+
*/
|
229
|
+
export declare function applyFiltersToDatasets<K extends KeplerTableModel<K, L>, L extends {
|
230
|
+
config: {
|
231
|
+
dataId: string | null;
|
232
|
+
};
|
233
|
+
}>(datasetIds: string[], datasets: {
|
234
|
+
[id: string]: K;
|
235
|
+
}, filters: Filter[], layers?: L[]): {
|
236
|
+
[id: string]: K;
|
237
|
+
};
|
238
|
+
/**
|
239
|
+
* Applies a new field name value to filter and update both filter and dataset
|
240
|
+
* @param filter - to be applied the new field name on
|
241
|
+
* @param dataset - dataset the field belongs to
|
242
|
+
* @param fieldName - field.name
|
243
|
+
* @param filterDatasetIndex - field.name
|
244
|
+
* @param option
|
245
|
+
* @return - {filter, datasets}
|
246
|
+
*/
|
247
|
+
export declare function applyFilterFieldName<K extends KeplerTableModel<K, L>, L>(filter: Filter, dataset: K, fieldName: string, filterDatasetIndex?: number, option?: {
|
248
|
+
mergeDomain: boolean;
|
249
|
+
}): {
|
250
|
+
filter: Filter | null;
|
251
|
+
dataset: K;
|
252
|
+
};
|
253
|
+
/**
|
254
|
+
* Merge one filter with other filter prop domain
|
255
|
+
*/
|
256
|
+
export declare function mergeFilterDomainStep(filter: Filter, filterProps?: Partial<Filter>): (Filter & {
|
257
|
+
step?: number;
|
258
|
+
}) | null;
|
259
|
+
/**
|
260
|
+
* Generates polygon filter
|
261
|
+
*/
|
262
|
+
export declare const featureToFilterValue: (feature: Feature, filterId: string, properties?: Record<string, any>) => FeatureValue;
|
263
|
+
export declare const getFilterIdInFeature: (f: FeatureValue) => string;
|
264
|
+
/**
|
265
|
+
* Generates polygon filter
|
266
|
+
*/
|
267
|
+
export declare function generatePolygonFilter<L extends {
|
268
|
+
config: {
|
269
|
+
dataId: string | null;
|
270
|
+
label: string;
|
271
|
+
};
|
272
|
+
id: string;
|
273
|
+
}>(layers: L[], feature: Feature): PolygonFilter;
|
274
|
+
/**
|
275
|
+
* Run filter entirely on CPU
|
276
|
+
*/
|
277
|
+
interface StateType<K extends KeplerTableModel<K, L>, L> {
|
278
|
+
layers: L[];
|
279
|
+
filters: Filter[];
|
280
|
+
datasets: {
|
281
|
+
[id: string]: K;
|
282
|
+
};
|
283
|
+
}
|
284
|
+
export declare function filterDatasetCPU<T extends StateType<K, L>, K extends KeplerTableModel<K, L>, L>(state: T, dataId: string): T;
|
285
|
+
/**
|
286
|
+
* Validate parsed filters with datasets and add filterProps to field
|
287
|
+
*/
|
288
|
+
declare type MinVisStateForFilter = Pick<VisState, 'layers' | 'datasets' | 'isMergingDatasets'>;
|
289
|
+
export declare function validateFiltersUpdateDatasets<S extends MinVisStateForFilter, K extends KeplerTableModel<K, L>, L extends {
|
290
|
+
config: {
|
291
|
+
dataId: string | null;
|
292
|
+
label: string;
|
293
|
+
};
|
294
|
+
id: string;
|
295
|
+
}>(state: S, filtersToValidate?: ParsedFilter[]): {
|
296
|
+
validated: Filter[];
|
297
|
+
failed: Filter[];
|
298
|
+
updatedDatasets: S['datasets'];
|
299
|
+
};
|
300
|
+
export declare function removeFilterPlot(filter: Filter, dataId: string): Filter;
|
301
|
+
export declare function isValidTimeDomain(domain: any): boolean;
|
302
|
+
export declare function getTimeWidgetHintFormatter(domain: [number, number]): string | undefined;
|
303
|
+
export declare function isSideFilter(filter: Filter): boolean;
|
304
|
+
export declare function mergeTimeDomains(domains: ([number, number] | null)[]): [number, number];
|
305
|
+
/**
|
306
|
+
* @param {Layer} layer
|
307
|
+
*/
|
308
|
+
export declare function isLayerAnimatable(layer: any): boolean;
|
309
|
+
/**
|
310
|
+
* @param {Layer[]} layers
|
311
|
+
* @returns {Layer[]}
|
312
|
+
*/
|
313
|
+
export declare function getAnimatableVisibleLayers(layers: any[]): any[];
|
314
|
+
/**
|
315
|
+
* @param {Layer[]} layers
|
316
|
+
* @param {string} type
|
317
|
+
* @returns {Layer[]}
|
318
|
+
*/
|
319
|
+
export declare function getAnimatableVisibleLayersByType(layers: any[], type: string): any[];
|
320
|
+
/**
|
321
|
+
* @param {Layer[]} layers
|
322
|
+
* @returns {Layer[]}
|
323
|
+
*/
|
324
|
+
export declare function getIntervalBasedAnimationLayers(layers: any[]): any[];
|
325
|
+
export declare function mergeFilterWithTimeline(filter: TimeRangeFilter, animationConfig: AnimationConfig): {
|
326
|
+
filter: TimeRangeFilter;
|
327
|
+
animationConfig: AnimationConfig;
|
328
|
+
};
|
329
|
+
export declare function scaleSourceDomainToDestination(sourceDomain: [number, number], destinationDomain: [number, number]): [number, number];
|
330
|
+
export declare function getFilterScaledTimeline(filter: any, animationConfig: any): [number, number] | [];
|
331
|
+
export {};
|