@kepler.gl/utils 3.1.0-alpha.1 → 3.1.0-alpha.3
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 +119 -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 +42 -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 +14 -6
@@ -0,0 +1,6 @@
|
|
1
|
+
import { LayerColumn } from '@kepler.gl/types';
|
2
|
+
import { DataContainerInterface } from './data-container-interface';
|
3
|
+
export declare function getPositionFromHexValue(token: any): number[] | null;
|
4
|
+
export declare function maybeHexToGeo(dc: DataContainerInterface, d: {
|
5
|
+
index: number;
|
6
|
+
}, lat: LayerColumn, lng: LayerColumn): number[] | null;
|
@@ -0,0 +1,26 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.getPositionFromHexValue = getPositionFromHexValue;
|
7
|
+
exports.maybeHexToGeo = maybeHexToGeo;
|
8
|
+
var _h3Js = require("h3-js");
|
9
|
+
// SPDX-License-Identifier: MIT
|
10
|
+
// Copyright contributors to the kepler.gl project
|
11
|
+
|
12
|
+
function getPositionFromHexValue(token) {
|
13
|
+
var pos = (0, _h3Js.h3ToGeo)(token);
|
14
|
+
if (Array.isArray(pos) && pos.every(Number.isFinite)) {
|
15
|
+
return [pos[1], pos[0]];
|
16
|
+
}
|
17
|
+
return null;
|
18
|
+
}
|
19
|
+
function maybeHexToGeo(dc, d, lat, lng) {
|
20
|
+
// lat or lng column could be hex column
|
21
|
+
// we assume string value is hex and try to convert it to geo lat lng
|
22
|
+
var latVal = dc.valueAt(d.index, lat.fieldIdx);
|
23
|
+
var lngVal = dc.valueAt(d.index, lng.fieldIdx);
|
24
|
+
return typeof latVal === 'string' ? getPositionFromHexValue(latVal) : typeof lngVal === 'string' ? getPositionFromHexValue(lngVal) : null;
|
25
|
+
}
|
26
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfaDNKcyIsInJlcXVpcmUiLCJnZXRQb3NpdGlvbkZyb21IZXhWYWx1ZSIsInRva2VuIiwicG9zIiwiaDNUb0dlbyIsIkFycmF5IiwiaXNBcnJheSIsImV2ZXJ5IiwiTnVtYmVyIiwiaXNGaW5pdGUiLCJtYXliZUhleFRvR2VvIiwiZGMiLCJkIiwibGF0IiwibG5nIiwibGF0VmFsIiwidmFsdWVBdCIsImluZGV4IiwiZmllbGRJZHgiLCJsbmdWYWwiXSwic291cmNlcyI6WyIuLi9zcmMvcG9zaXRpb24tdXRpbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IHtoM1RvR2VvfSBmcm9tICdoMy1qcyc7XG5cbmltcG9ydCB7TGF5ZXJDb2x1bW59IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuXG5pbXBvcnQge0RhdGFDb250YWluZXJJbnRlcmZhY2V9IGZyb20gJy4vZGF0YS1jb250YWluZXItaW50ZXJmYWNlJztcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFBvc2l0aW9uRnJvbUhleFZhbHVlKHRva2VuKSB7XG4gIGNvbnN0IHBvcyA9IGgzVG9HZW8odG9rZW4pO1xuXG4gIGlmIChBcnJheS5pc0FycmF5KHBvcykgJiYgcG9zLmV2ZXJ5KE51bWJlci5pc0Zpbml0ZSkpIHtcbiAgICByZXR1cm4gW3Bvc1sxXSwgcG9zWzBdXTtcbiAgfVxuICByZXR1cm4gbnVsbDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1heWJlSGV4VG9HZW8oXG4gIGRjOiBEYXRhQ29udGFpbmVySW50ZXJmYWNlLFxuICBkOiB7aW5kZXg6IG51bWJlcn0sXG4gIGxhdDogTGF5ZXJDb2x1bW4sXG4gIGxuZzogTGF5ZXJDb2x1bW5cbikge1xuICAvLyBsYXQgb3IgbG5nIGNvbHVtbiBjb3VsZCBiZSBoZXggY29sdW1uXG4gIC8vIHdlIGFzc3VtZSBzdHJpbmcgdmFsdWUgaXMgaGV4IGFuZCB0cnkgdG8gY29udmVydCBpdCB0byBnZW8gbGF0IGxuZ1xuICBjb25zdCBsYXRWYWwgPSBkYy52YWx1ZUF0KGQuaW5kZXgsIGxhdC5maWVsZElkeCk7XG4gIGNvbnN0IGxuZ1ZhbCA9IGRjLnZhbHVlQXQoZC5pbmRleCwgbG5nLmZpZWxkSWR4KTtcblxuICByZXR1cm4gdHlwZW9mIGxhdFZhbCA9PT0gJ3N0cmluZydcbiAgICA/IGdldFBvc2l0aW9uRnJvbUhleFZhbHVlKGxhdFZhbClcbiAgICA6IHR5cGVvZiBsbmdWYWwgPT09ICdzdHJpbmcnXG4gICAgPyBnZXRQb3NpdGlvbkZyb21IZXhWYWx1ZShsbmdWYWwpXG4gICAgOiBudWxsO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBR0EsSUFBQUEsS0FBQSxHQUFBQyxPQUFBO0FBSEE7QUFDQTs7QUFRTyxTQUFTQyx1QkFBdUJBLENBQUNDLEtBQUssRUFBRTtFQUM3QyxJQUFNQyxHQUFHLEdBQUcsSUFBQUMsYUFBTyxFQUFDRixLQUFLLENBQUM7RUFFMUIsSUFBSUcsS0FBSyxDQUFDQyxPQUFPLENBQUNILEdBQUcsQ0FBQyxJQUFJQSxHQUFHLENBQUNJLEtBQUssQ0FBQ0MsTUFBTSxDQUFDQyxRQUFRLENBQUMsRUFBRTtJQUNwRCxPQUFPLENBQUNOLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRUEsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0VBQ3pCO0VBQ0EsT0FBTyxJQUFJO0FBQ2I7QUFFTyxTQUFTTyxhQUFhQSxDQUMzQkMsRUFBMEIsRUFDMUJDLENBQWtCLEVBQ2xCQyxHQUFnQixFQUNoQkMsR0FBZ0IsRUFDaEI7RUFDQTtFQUNBO0VBQ0EsSUFBTUMsTUFBTSxHQUFHSixFQUFFLENBQUNLLE9BQU8sQ0FBQ0osQ0FBQyxDQUFDSyxLQUFLLEVBQUVKLEdBQUcsQ0FBQ0ssUUFBUSxDQUFDO0VBQ2hELElBQU1DLE1BQU0sR0FBR1IsRUFBRSxDQUFDSyxPQUFPLENBQUNKLENBQUMsQ0FBQ0ssS0FBSyxFQUFFSCxHQUFHLENBQUNJLFFBQVEsQ0FBQztFQUVoRCxPQUFPLE9BQU9ILE1BQU0sS0FBSyxRQUFRLEdBQzdCZCx1QkFBdUIsQ0FBQ2MsTUFBTSxDQUFDLEdBQy9CLE9BQU9JLE1BQU0sS0FBSyxRQUFRLEdBQzFCbEIsdUJBQXVCLENBQUNrQixNQUFNLENBQUMsR0FDL0IsSUFBSTtBQUNWIiwiaWdub3JlTGlzdCI6W119
|
@@ -0,0 +1,22 @@
|
|
1
|
+
import WebMercatorViewport from 'viewport-mercator-project';
|
2
|
+
export declare const MAPBOX_TILE_SIZE = 512;
|
3
|
+
/**
|
4
|
+
* bounds should be [minLng, minLat, maxLng, maxLat]
|
5
|
+
* @param {*} bounds
|
6
|
+
*/
|
7
|
+
export declare function validateBounds(bounds: any): any[] | null;
|
8
|
+
export declare function getCenterAndZoomFromBounds(bounds: any, { width, height }: {
|
9
|
+
width: any;
|
10
|
+
height: any;
|
11
|
+
}): {
|
12
|
+
zoom: number;
|
13
|
+
center: number[];
|
14
|
+
} | null;
|
15
|
+
/**
|
16
|
+
* Add extra info about screen space position and world position to the event.
|
17
|
+
* @param {*} event Event to normalize.
|
18
|
+
* @param {*} viewport Current viewport.
|
19
|
+
* @returns Normalized event with extra information compatible with React-map-gl MapLayerMouseEvent
|
20
|
+
* https://visgl.github.io/react-map-gl/docs/api-reference/types#maplayermouseevent
|
21
|
+
*/
|
22
|
+
export declare function normalizeEvent(event: any, viewport: WebMercatorViewport): any;
|
@@ -0,0 +1,83 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
5
|
+
value: true
|
6
|
+
});
|
7
|
+
exports.MAPBOX_TILE_SIZE = void 0;
|
8
|
+
exports.getCenterAndZoomFromBounds = getCenterAndZoomFromBounds;
|
9
|
+
exports.normalizeEvent = normalizeEvent;
|
10
|
+
exports.validateBounds = validateBounds;
|
11
|
+
var _geoViewport = _interopRequireDefault(require("@mapbox/geo-viewport"));
|
12
|
+
var _console = _interopRequireDefault(require("global/console"));
|
13
|
+
// SPDX-License-Identifier: MIT
|
14
|
+
// Copyright contributors to the kepler.gl project
|
15
|
+
|
16
|
+
var MAPBOX_TILE_SIZE = exports.MAPBOX_TILE_SIZE = 512;
|
17
|
+
function isLat(num) {
|
18
|
+
return Number.isFinite(num) && num <= 90 && num >= -90;
|
19
|
+
}
|
20
|
+
function isLng(num) {
|
21
|
+
return Number.isFinite(num) && num <= 180 && num >= -180;
|
22
|
+
}
|
23
|
+
|
24
|
+
/**
|
25
|
+
* bounds should be [minLng, minLat, maxLng, maxLat]
|
26
|
+
* @param {*} bounds
|
27
|
+
*/
|
28
|
+
function validateBounds(bounds) {
|
29
|
+
// array: [ -180, -85.05112877980659, 180, 85.0511287798066 ]
|
30
|
+
// validate bounds
|
31
|
+
if (Array.isArray(bounds) && bounds.length === 4 && [bounds[0], bounds[2]].every(isLng) && [bounds[1], bounds[3]].every(isLat)) {
|
32
|
+
return bounds;
|
33
|
+
}
|
34
|
+
return null;
|
35
|
+
}
|
36
|
+
function getCenterAndZoomFromBounds(bounds, _ref) {
|
37
|
+
var width = _ref.width,
|
38
|
+
height = _ref.height;
|
39
|
+
var validBounds = validateBounds(bounds);
|
40
|
+
if (!validBounds) {
|
41
|
+
_console["default"].warn('invalid map bounds provided');
|
42
|
+
return null;
|
43
|
+
}
|
44
|
+
|
45
|
+
// viewport(bounds, dimensions, minzoom, maxzoom, tileSize, allowFloat)
|
46
|
+
var _geoViewport$viewport = _geoViewport["default"].viewport(bounds, [width, height], undefined, undefined, MAPBOX_TILE_SIZE),
|
47
|
+
zoom = _geoViewport$viewport.zoom;
|
48
|
+
// center being calculated by geo-vieweport.viewport has a complex logic that
|
49
|
+
// projects and then unprojects the coordinates to determine the center
|
50
|
+
// Calculating a simple average instead as that is the expected behavior in most of cases
|
51
|
+
var center = [(bounds[0] + bounds[2]) / 2, (bounds[1] + bounds[3]) / 2];
|
52
|
+
return {
|
53
|
+
zoom: zoom,
|
54
|
+
center: center
|
55
|
+
};
|
56
|
+
}
|
57
|
+
|
58
|
+
/**
|
59
|
+
* Add extra info about screen space position and world position to the event.
|
60
|
+
* @param {*} event Event to normalize.
|
61
|
+
* @param {*} viewport Current viewport.
|
62
|
+
* @returns Normalized event with extra information compatible with React-map-gl MapLayerMouseEvent
|
63
|
+
* https://visgl.github.io/react-map-gl/docs/api-reference/types#maplayermouseevent
|
64
|
+
*/
|
65
|
+
function normalizeEvent(event, viewport) {
|
66
|
+
var _event$target;
|
67
|
+
var bounds = (_event$target = event.target) === null || _event$target === void 0 ? void 0 : _event$target.getBoundingClientRect();
|
68
|
+
if (!bounds) {
|
69
|
+
return event;
|
70
|
+
}
|
71
|
+
var x = event.clientX - bounds.left;
|
72
|
+
var y = event.clientY - bounds.top;
|
73
|
+
if (!Number.isFinite(x) || !Number.isFinite(y)) {
|
74
|
+
return event;
|
75
|
+
}
|
76
|
+
event.point = [x, y];
|
77
|
+
var location = viewport.unproject(event.point, {
|
78
|
+
targetZ: 0
|
79
|
+
});
|
80
|
+
event.lngLat = [location[0], location[1]];
|
81
|
+
return event;
|
82
|
+
}
|
83
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZ2VvVmlld3BvcnQiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9jb25zb2xlIiwiTUFQQk9YX1RJTEVfU0laRSIsImV4cG9ydHMiLCJpc0xhdCIsIm51bSIsIk51bWJlciIsImlzRmluaXRlIiwiaXNMbmciLCJ2YWxpZGF0ZUJvdW5kcyIsImJvdW5kcyIsIkFycmF5IiwiaXNBcnJheSIsImxlbmd0aCIsImV2ZXJ5IiwiZ2V0Q2VudGVyQW5kWm9vbUZyb21Cb3VuZHMiLCJfcmVmIiwid2lkdGgiLCJoZWlnaHQiLCJ2YWxpZEJvdW5kcyIsIkNvbnNvbGUiLCJ3YXJuIiwiX2dlb1ZpZXdwb3J0JHZpZXdwb3J0IiwiZ2VvVmlld3BvcnQiLCJ2aWV3cG9ydCIsInVuZGVmaW5lZCIsInpvb20iLCJjZW50ZXIiLCJub3JtYWxpemVFdmVudCIsImV2ZW50IiwiX2V2ZW50JHRhcmdldCIsInRhcmdldCIsImdldEJvdW5kaW5nQ2xpZW50UmVjdCIsIngiLCJjbGllbnRYIiwibGVmdCIsInkiLCJjbGllbnRZIiwidG9wIiwicG9pbnQiLCJsb2NhdGlvbiIsInVucHJvamVjdCIsInRhcmdldFoiLCJsbmdMYXQiXSwic291cmNlcyI6WyIuLi9zcmMvcHJvamVjdGlvbi11dGlscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQgZ2VvVmlld3BvcnQgZnJvbSAnQG1hcGJveC9nZW8tdmlld3BvcnQnO1xuXG5pbXBvcnQgV2ViTWVyY2F0b3JWaWV3cG9ydCBmcm9tICd2aWV3cG9ydC1tZXJjYXRvci1wcm9qZWN0JztcbmltcG9ydCBDb25zb2xlIGZyb20gJ2dsb2JhbC9jb25zb2xlJztcblxuZXhwb3J0IGNvbnN0IE1BUEJPWF9USUxFX1NJWkUgPSA1MTI7XG5cbmZ1bmN0aW9uIGlzTGF0KG51bSkge1xuICByZXR1cm4gTnVtYmVyLmlzRmluaXRlKG51bSkgJiYgbnVtIDw9IDkwICYmIG51bSA+PSAtOTA7XG59XG5mdW5jdGlvbiBpc0xuZyhudW0pIHtcbiAgcmV0dXJuIE51bWJlci5pc0Zpbml0ZShudW0pICYmIG51bSA8PSAxODAgJiYgbnVtID49IC0xODA7XG59XG5cbi8qKlxuICogYm91bmRzIHNob3VsZCBiZSBbbWluTG5nLCBtaW5MYXQsIG1heExuZywgbWF4TGF0XVxuICogQHBhcmFtIHsqfSBib3VuZHNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlQm91bmRzKGJvdW5kcykge1xuICAvLyBhcnJheTogWyAtMTgwLCAtODUuMDUxMTI4Nzc5ODA2NTksIDE4MCwgODUuMDUxMTI4Nzc5ODA2NiBdXG4gIC8vIHZhbGlkYXRlIGJvdW5kc1xuICBpZiAoXG4gICAgQXJyYXkuaXNBcnJheShib3VuZHMpICYmXG4gICAgYm91bmRzLmxlbmd0aCA9PT0gNCAmJlxuICAgIFtib3VuZHNbMF0sIGJvdW5kc1syXV0uZXZlcnkoaXNMbmcpICYmXG4gICAgW2JvdW5kc1sxXSwgYm91bmRzWzNdXS5ldmVyeShpc0xhdClcbiAgKSB7XG4gICAgcmV0dXJuIGJvdW5kcztcbiAgfVxuICByZXR1cm4gbnVsbDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldENlbnRlckFuZFpvb21Gcm9tQm91bmRzKGJvdW5kcywge3dpZHRoLCBoZWlnaHR9KSB7XG4gIGNvbnN0IHZhbGlkQm91bmRzID0gdmFsaWRhdGVCb3VuZHMoYm91bmRzKTtcbiAgaWYgKCF2YWxpZEJvdW5kcykge1xuICAgIENvbnNvbGUud2FybignaW52YWxpZCBtYXAgYm91bmRzIHByb3ZpZGVkJyk7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAvLyB2aWV3cG9ydChib3VuZHMsIGRpbWVuc2lvbnMsIG1pbnpvb20sIG1heHpvb20sIHRpbGVTaXplLCBhbGxvd0Zsb2F0KVxuICBjb25zdCB7em9vbX0gPSBnZW9WaWV3cG9ydC52aWV3cG9ydChcbiAgICBib3VuZHMsXG4gICAgW3dpZHRoLCBoZWlnaHRdLFxuICAgIHVuZGVmaW5lZCxcbiAgICB1bmRlZmluZWQsXG4gICAgTUFQQk9YX1RJTEVfU0laRVxuICApO1xuICAvLyBjZW50ZXIgYmVpbmcgY2FsY3VsYXRlZCBieSBnZW8tdmlld2Vwb3J0LnZpZXdwb3J0IGhhcyBhIGNvbXBsZXggbG9naWMgdGhhdFxuICAvLyBwcm9qZWN0cyBhbmQgdGhlbiB1bnByb2plY3RzIHRoZSBjb29yZGluYXRlcyB0byBkZXRlcm1pbmUgdGhlIGNlbnRlclxuICAvLyBDYWxjdWxhdGluZyBhIHNpbXBsZSBhdmVyYWdlIGluc3RlYWQgYXMgdGhhdCBpcyB0aGUgZXhwZWN0ZWQgYmVoYXZpb3IgaW4gbW9zdCBvZiBjYXNlc1xuICBjb25zdCBjZW50ZXIgPSBbKGJvdW5kc1swXSArIGJvdW5kc1syXSkgLyAyLCAoYm91bmRzWzFdICsgYm91bmRzWzNdKSAvIDJdO1xuXG4gIHJldHVybiB7em9vbSwgY2VudGVyfTtcbn1cblxuLyoqXG4gKiBBZGQgZXh0cmEgaW5mbyBhYm91dCBzY3JlZW4gc3BhY2UgcG9zaXRpb24gYW5kIHdvcmxkIHBvc2l0aW9uIHRvIHRoZSBldmVudC5cbiAqIEBwYXJhbSB7Kn0gZXZlbnQgRXZlbnQgdG8gbm9ybWFsaXplLlxuICogQHBhcmFtIHsqfSB2aWV3cG9ydCBDdXJyZW50IHZpZXdwb3J0LlxuICogQHJldHVybnMgTm9ybWFsaXplZCBldmVudCB3aXRoIGV4dHJhIGluZm9ybWF0aW9uIGNvbXBhdGlibGUgd2l0aCBSZWFjdC1tYXAtZ2wgTWFwTGF5ZXJNb3VzZUV2ZW50XG4gKiBodHRwczovL3Zpc2dsLmdpdGh1Yi5pby9yZWFjdC1tYXAtZ2wvZG9jcy9hcGktcmVmZXJlbmNlL3R5cGVzI21hcGxheWVybW91c2VldmVudFxuICovXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplRXZlbnQoZXZlbnQ6IGFueSwgdmlld3BvcnQ6IFdlYk1lcmNhdG9yVmlld3BvcnQpIHtcbiAgY29uc3QgYm91bmRzID0gZXZlbnQudGFyZ2V0Py5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgaWYgKCFib3VuZHMpIHtcbiAgICByZXR1cm4gZXZlbnQ7XG4gIH1cblxuICBjb25zdCB4ID0gZXZlbnQuY2xpZW50WCAtIGJvdW5kcy5sZWZ0O1xuICBjb25zdCB5ID0gZXZlbnQuY2xpZW50WSAtIGJvdW5kcy50b3A7XG4gIGlmICghTnVtYmVyLmlzRmluaXRlKHgpIHx8ICFOdW1iZXIuaXNGaW5pdGUoeSkpIHtcbiAgICByZXR1cm4gZXZlbnQ7XG4gIH1cblxuICBldmVudC5wb2ludCA9IFt4LCB5XTtcbiAgY29uc3QgbG9jYXRpb24gPSB2aWV3cG9ydC51bnByb2plY3QoZXZlbnQucG9pbnQsIHt0YXJnZXRaOiAwfSk7XG4gIGV2ZW50LmxuZ0xhdCA9IFtsb2NhdGlvblswXSwgbG9jYXRpb25bMV1dO1xuXG4gIHJldHVybiBldmVudDtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUdBLElBQUFBLFlBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUdBLElBQUFDLFFBQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQU5BO0FBQ0E7O0FBT08sSUFBTUUsZ0JBQWdCLEdBQUFDLE9BQUEsQ0FBQUQsZ0JBQUEsR0FBRyxHQUFHO0FBRW5DLFNBQVNFLEtBQUtBLENBQUNDLEdBQUcsRUFBRTtFQUNsQixPQUFPQyxNQUFNLENBQUNDLFFBQVEsQ0FBQ0YsR0FBRyxDQUFDLElBQUlBLEdBQUcsSUFBSSxFQUFFLElBQUlBLEdBQUcsSUFBSSxDQUFDLEVBQUU7QUFDeEQ7QUFDQSxTQUFTRyxLQUFLQSxDQUFDSCxHQUFHLEVBQUU7RUFDbEIsT0FBT0MsTUFBTSxDQUFDQyxRQUFRLENBQUNGLEdBQUcsQ0FBQyxJQUFJQSxHQUFHLElBQUksR0FBRyxJQUFJQSxHQUFHLElBQUksQ0FBQyxHQUFHO0FBQzFEOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ08sU0FBU0ksY0FBY0EsQ0FBQ0MsTUFBTSxFQUFF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
|
@@ -0,0 +1,12 @@
|
|
1
|
+
/**
|
2
|
+
* Inplace quick insertion sorting algorithm for numeric values
|
3
|
+
* 1. using a stack to eliminate recursion
|
4
|
+
* 2. sorting inplace to reduce memory usage
|
5
|
+
* 3. using insertion sort for small partition sizes
|
6
|
+
* The original source code is from:
|
7
|
+
* https://www.measurethat.net/Benchmarks/Show/3549/0/javascript-sorting-algorithms
|
8
|
+
* https://quick.work/?page=view-blog&id=24
|
9
|
+
*
|
10
|
+
* @param arr
|
11
|
+
*/
|
12
|
+
export default function quickInsertionSort(arr: number[]): void;
|
@@ -0,0 +1,132 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
5
|
+
value: true
|
6
|
+
});
|
7
|
+
exports["default"] = quickInsertionSort;
|
8
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
9
|
+
// SPDX-License-Identifier: MIT
|
10
|
+
// Copyright contributors to the kepler.gl project
|
11
|
+
|
12
|
+
/**
|
13
|
+
* Inplace quick insertion sorting algorithm for numeric values
|
14
|
+
* 1. using a stack to eliminate recursion
|
15
|
+
* 2. sorting inplace to reduce memory usage
|
16
|
+
* 3. using insertion sort for small partition sizes
|
17
|
+
* The original source code is from:
|
18
|
+
* https://www.measurethat.net/Benchmarks/Show/3549/0/javascript-sorting-algorithms
|
19
|
+
* https://quick.work/?page=view-blog&id=24
|
20
|
+
*
|
21
|
+
* @param arr
|
22
|
+
*/
|
23
|
+
function quickInsertionSort(arr) {
|
24
|
+
if (!arr || arr.length < 1) {
|
25
|
+
return;
|
26
|
+
}
|
27
|
+
var stack = [];
|
28
|
+
stack.push([0, arr.length, 2 * Math.floor(Math.log(arr.length) / Math.log(2))]);
|
29
|
+
while (stack.length > 0) {
|
30
|
+
var _stack = (0, _slicedToArray2["default"])(stack[stack.length - 1], 3),
|
31
|
+
start = _stack[0],
|
32
|
+
end = _stack[1],
|
33
|
+
depth = _stack[2];
|
34
|
+
stack.pop();
|
35
|
+
if (depth === 0) {
|
36
|
+
// for worst case of quick sort: too many partitions
|
37
|
+
shellSortBound(arr, start, end);
|
38
|
+
} else {
|
39
|
+
var pivot = Math.round((start + end) / 2);
|
40
|
+
var pivotNewIndex = inplaceQuicksortPartition(arr, start, end, pivot);
|
41
|
+
// more than 32 elements: faster to be sorted in QuickSort partition
|
42
|
+
// less than 32 elements: faster to be sorted in InsertionSort
|
43
|
+
if (end - pivotNewIndex > 16) {
|
44
|
+
stack.push([pivotNewIndex, end, depth - 1]);
|
45
|
+
}
|
46
|
+
if (pivotNewIndex - start > 16) {
|
47
|
+
stack.push([start, pivotNewIndex, depth - 1]);
|
48
|
+
}
|
49
|
+
}
|
50
|
+
}
|
51
|
+
insertionSort(arr);
|
52
|
+
}
|
53
|
+
|
54
|
+
/**
|
55
|
+
* shellsort is a generalization of insertion sort
|
56
|
+
* shellsort perform best on partially sorted array
|
57
|
+
* Don't use shellsort on array (>10k)
|
58
|
+
* @param arr
|
59
|
+
* @param start
|
60
|
+
* @param end
|
61
|
+
*
|
62
|
+
* Learn more about Shellsort at https://en.wikipedia.org/wiki/Shellsort
|
63
|
+
*/
|
64
|
+
function shellSortBound(arr, start, end) {
|
65
|
+
if (arr.length <= 1) return;
|
66
|
+
var inc = Math.round((start + end) / 2);
|
67
|
+
var i;
|
68
|
+
var j;
|
69
|
+
var t;
|
70
|
+
while (inc > start) {
|
71
|
+
for (i = inc; i < end; i++) {
|
72
|
+
t = arr[i];
|
73
|
+
j = i;
|
74
|
+
while (j >= inc && arr[j - inc] > t) {
|
75
|
+
arr[j] = arr[j - inc];
|
76
|
+
j -= inc;
|
77
|
+
}
|
78
|
+
arr[j] = t;
|
79
|
+
}
|
80
|
+
inc = Math.round((inc - start) / 2.2 + start);
|
81
|
+
}
|
82
|
+
}
|
83
|
+
|
84
|
+
/**
|
85
|
+
* Insertion sort
|
86
|
+
* @param arr
|
87
|
+
*/
|
88
|
+
function insertionSort(arr) {
|
89
|
+
for (var i = 1, l = arr.length; i < l; i++) {
|
90
|
+
var value = arr[i];
|
91
|
+
var j = void 0;
|
92
|
+
for (j = i - 1; j >= 0; j--) {
|
93
|
+
if (arr[j] <= value) break;
|
94
|
+
arr[j + 1] = arr[j];
|
95
|
+
}
|
96
|
+
arr[j + 1] = value;
|
97
|
+
}
|
98
|
+
}
|
99
|
+
|
100
|
+
/**
|
101
|
+
* In-place quick sort
|
102
|
+
* @param arr
|
103
|
+
* @param start
|
104
|
+
* @param end
|
105
|
+
* @param pivotIndex
|
106
|
+
* @returns number
|
107
|
+
*/
|
108
|
+
function inplaceQuicksortPartition(arr, start, end, pivotIndex) {
|
109
|
+
var i = start;
|
110
|
+
var j = end;
|
111
|
+
var pivot = arr[pivotIndex];
|
112
|
+
var partition = true;
|
113
|
+
while (partition) {
|
114
|
+
while (arr[i] < pivot) {
|
115
|
+
i++;
|
116
|
+
}
|
117
|
+
j--;
|
118
|
+
while (pivot < arr[j]) {
|
119
|
+
j--;
|
120
|
+
}
|
121
|
+
if (!(i < j)) {
|
122
|
+
return i;
|
123
|
+
}
|
124
|
+
// swap(arr, i, j);
|
125
|
+
var t = arr[i];
|
126
|
+
arr[i] = arr[j];
|
127
|
+
arr[j] = t;
|
128
|
+
i++;
|
129
|
+
}
|
130
|
+
return i;
|
131
|
+
}
|
132
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJxdWlja0luc2VydGlvblNvcnQiLCJhcnIiLCJsZW5ndGgiLCJzdGFjayIsInB1c2giLCJNYXRoIiwiZmxvb3IiLCJsb2ciLCJfc3RhY2siLCJfc2xpY2VkVG9BcnJheTIiLCJzdGFydCIsImVuZCIsImRlcHRoIiwicG9wIiwic2hlbGxTb3J0Qm91bmQiLCJwaXZvdCIsInJvdW5kIiwicGl2b3ROZXdJbmRleCIsImlucGxhY2VRdWlja3NvcnRQYXJ0aXRpb24iLCJpbnNlcnRpb25Tb3J0IiwiaW5jIiwiaSIsImoiLCJ0IiwibCIsInZhbHVlIiwicGl2b3RJbmRleCIsInBhcnRpdGlvbiJdLCJzb3VyY2VzIjpbIi4uL3NyYy9xdWljay1pbnNlcnRpb24tc29ydC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG4vKipcbiAqIElucGxhY2UgcXVpY2sgaW5zZXJ0aW9uIHNvcnRpbmcgYWxnb3JpdGhtIGZvciBudW1lcmljIHZhbHVlc1xuICogMS4gdXNpbmcgYSBzdGFjayB0byBlbGltaW5hdGUgcmVjdXJzaW9uXG4gKiAyLiBzb3J0aW5nIGlucGxhY2UgdG8gcmVkdWNlIG1lbW9yeSB1c2FnZVxuICogMy4gdXNpbmcgaW5zZXJ0aW9uIHNvcnQgZm9yIHNtYWxsIHBhcnRpdGlvbiBzaXplc1xuICogVGhlIG9yaWdpbmFsIHNvdXJjZSBjb2RlIGlzIGZyb206XG4gKiBodHRwczovL3d3dy5tZWFzdXJldGhhdC5uZXQvQmVuY2htYXJrcy9TaG93LzM1NDkvMC9qYXZhc2NyaXB0LXNvcnRpbmctYWxnb3JpdGhtc1xuICogaHR0cHM6Ly9xdWljay53b3JrLz9wYWdlPXZpZXctYmxvZyZpZD0yNFxuICpcbiAqIEBwYXJhbSBhcnJcbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gcXVpY2tJbnNlcnRpb25Tb3J0KGFycjogbnVtYmVyW10pOiB2b2lkIHtcbiAgaWYgKCFhcnIgfHwgYXJyLmxlbmd0aCA8IDEpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgY29uc3Qgc3RhY2s6IG51bWJlcltdW10gPSBbXTtcbiAgc3RhY2sucHVzaChbMCwgYXJyLmxlbmd0aCwgMiAqIE1hdGguZmxvb3IoTWF0aC5sb2coYXJyLmxlbmd0aCkgLyBNYXRoLmxvZygyKSldKTtcblxuICB3aGlsZSAoc3RhY2subGVuZ3RoID4gMCkge1xuICAgIGNvbnN0IFtzdGFydCwgZW5kLCBkZXB0aF0gPSBzdGFja1tzdGFjay5sZW5ndGggLSAxXTtcbiAgICBzdGFjay5wb3AoKTtcblxuICAgIGlmIChkZXB0aCA9PT0gMCkge1xuICAgICAgLy8gZm9yIHdvcnN0IGNhc2Ugb2YgcXVpY2sgc29ydDogdG9vIG1hbnkgcGFydGl0aW9uc1xuICAgICAgc2hlbGxTb3J0Qm91bmQoYXJyLCBzdGFydCwgZW5kKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgcGl2b3QgPSBNYXRoLnJvdW5kKChzdGFydCArIGVuZCkgLyAyKTtcbiAgICAgIGNvbnN0IHBpdm90TmV3SW5kZXggPSBpbnBsYWNlUXVpY2tzb3J0UGFydGl0aW9uKGFyciwgc3RhcnQsIGVuZCwgcGl2b3QpO1xuICAgICAgLy8gbW9yZSB0aGFuIDMyIGVsZW1lbnRzOiBmYXN0ZXIgdG8gYmUgc29ydGVkIGluIFF1aWNrU29ydCBwYXJ0aXRpb25cbiAgICAgIC8vIGxlc3MgdGhhbiAzMiBlbGVtZW50czogZmFzdGVyIHRvIGJlIHNvcnRlZCBpbiBJbnNlcnRpb25Tb3J0XG4gICAgICBpZiAoZW5kIC0gcGl2b3ROZXdJbmRleCA+IDE2KSB7XG4gICAgICAgIHN0YWNrLnB1c2goW3Bpdm90TmV3SW5kZXgsIGVuZCwgZGVwdGggLSAxXSk7XG4gICAgICB9XG4gICAgICBpZiAocGl2b3ROZXdJbmRleCAtIHN0YXJ0ID4gMTYpIHtcbiAgICAgICAgc3RhY2sucHVzaChbc3RhcnQsIHBpdm90TmV3SW5kZXgsIGRlcHRoIC0gMV0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBpbnNlcnRpb25Tb3J0KGFycik7XG59XG5cbi8qKlxuICogc2hlbGxzb3J0IGlzIGEgZ2VuZXJhbGl6YXRpb24gb2YgaW5zZXJ0aW9uIHNvcnRcbiAqIHNoZWxsc29ydCBwZXJmb3JtIGJlc3Qgb24gcGFydGlhbGx5IHNvcnRlZCBhcnJheVxuICogRG9uJ3QgdXNlIHNoZWxsc29ydCBvbiBhcnJheSAoPjEwaylcbiAqIEBwYXJhbSBhcnJcbiAqIEBwYXJhbSBzdGFydFxuICogQHBhcmFtIGVuZFxuICpcbiAqIExlYXJuIG1vcmUgYWJvdXQgU2hlbGxzb3J0IGF0IGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1NoZWxsc29ydFxuICovXG5mdW5jdGlvbiBzaGVsbFNvcnRCb3VuZChhcnI6IG51bWJlcltdLCBzdGFydDogbnVtYmVyLCBlbmQ6IG51bWJlcikge1xuICBpZiAoYXJyLmxlbmd0aCA8PSAxKSByZXR1cm47XG4gIGxldCBpbmMgPSBNYXRoLnJvdW5kKChzdGFydCArIGVuZCkgLyAyKTtcbiAgbGV0IGk7XG4gIGxldCBqO1xuICBsZXQgdDtcblxuICB3aGlsZSAoaW5jID4gc3RhcnQpIHtcbiAgICBmb3IgKGkgPSBpbmM7IGkgPCBlbmQ7IGkrKykge1xuICAgICAgdCA9IGFycltpXTtcbiAgICAgIGogPSBpO1xuICAgICAgd2hpbGUgKGogPj0gaW5jICYmIGFycltqIC0gaW5jXSA+IHQpIHtcbiAgICAgICAgYXJyW2pdID0gYXJyW2ogLSBpbmNdO1xuICAgICAgICBqIC09IGluYztcbiAgICAgIH1cbiAgICAgIGFycltqXSA9IHQ7XG4gICAgfVxuICAgIGluYyA9IE1hdGgucm91bmQoKGluYyAtIHN0YXJ0KSAvIDIuMiArIHN0YXJ0KTtcbiAgfVxufVxuXG4vKipcbiAqIEluc2VydGlvbiBzb3J0XG4gKiBAcGFyYW0gYXJyXG4gKi9cbmZ1bmN0aW9uIGluc2VydGlvblNvcnQoYXJyOiBudW1iZXJbXSkge1xuICBmb3IgKGxldCBpID0gMSwgbCA9IGFyci5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICBjb25zdCB2YWx1ZSA9IGFycltpXTtcbiAgICBsZXQgajtcbiAgICBmb3IgKGogPSBpIC0gMTsgaiA+PSAwOyBqLS0pIHtcbiAgICAgIGlmIChhcnJbal0gPD0gdmFsdWUpIGJyZWFrO1xuICAgICAgYXJyW2ogKyAxXSA9IGFycltqXTtcbiAgICB9XG4gICAgYXJyW2ogKyAxXSA9IHZhbHVlO1xuICB9XG59XG5cbi8qKlxuICogSW4tcGxhY2UgcXVpY2sgc29ydFxuICogQHBhcmFtIGFyclxuICogQHBhcmFtIHN0YXJ0XG4gKiBAcGFyYW0gZW5kXG4gKiBAcGFyYW0gcGl2b3RJbmRleFxuICogQHJldHVybnMgbnVtYmVyXG4gKi9cbmZ1bmN0aW9uIGlucGxhY2VRdWlja3NvcnRQYXJ0aXRpb24oXG4gIGFycjogbnVtYmVyW10sXG4gIHN0YXJ0OiBudW1iZXIsXG4gIGVuZDogbnVtYmVyLFxuICBwaXZvdEluZGV4OiBudW1iZXJcbik6IG51bWJlciB7XG4gIGxldCBpID0gc3RhcnQ7XG4gIGxldCBqID0gZW5kO1xuICBjb25zdCBwaXZvdCA9IGFycltwaXZvdEluZGV4XTtcbiAgY29uc3QgcGFydGl0aW9uID0gdHJ1ZTtcbiAgd2hpbGUgKHBhcnRpdGlvbikge1xuICAgIHdoaWxlIChhcnJbaV0gPCBwaXZvdCkge1xuICAgICAgaSsrO1xuICAgIH1cbiAgICBqLS07XG4gICAgd2hpbGUgKHBpdm90IDwgYXJyW2pdKSB7XG4gICAgICBqLS07XG4gICAgfVxuICAgIGlmICghKGkgPCBqKSkge1xuICAgICAgcmV0dXJuIGk7XG4gICAgfVxuICAgIC8vIHN3YXAoYXJyLCBpLCBqKTtcbiAgICBjb25zdCB0ID0gYXJyW2ldO1xuICAgIGFycltpXSA9IGFycltqXTtcbiAgICBhcnJbal0gPSB0O1xuICAgIGkrKztcbiAgfVxuICByZXR1cm4gaTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQTtBQUNBOztBQUVBO0FB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
|
@@ -0,0 +1,31 @@
|
|
1
|
+
import { DataRow, SharedRowOptions } from './data-row';
|
2
|
+
import { ProtoDatasetField } from '@kepler.gl/types';
|
3
|
+
import { DataContainerInterface, RangeOptions } from './data-container-interface';
|
4
|
+
declare type RowDataContainerInput = {
|
5
|
+
rows: any[][];
|
6
|
+
fields?: ProtoDatasetField[];
|
7
|
+
};
|
8
|
+
/**
|
9
|
+
* A data container where all data is stored internally as a 2D array.
|
10
|
+
*/
|
11
|
+
export declare class RowDataContainer implements DataContainerInterface {
|
12
|
+
_rows: any[][];
|
13
|
+
_numColumns: number;
|
14
|
+
constructor(data: RowDataContainerInput);
|
15
|
+
numRows(): number;
|
16
|
+
numColumns(): number;
|
17
|
+
valueAt(rowIndex: number, columnIndex: number): any;
|
18
|
+
row(rowIndex: number, sharedRow?: SharedRowOptions): DataRow;
|
19
|
+
rowAsArray(rowIndex: number): any[];
|
20
|
+
rows(sharedRow: SharedRowOptions): any;
|
21
|
+
column(columnIndex: number): Generator<any, void, unknown>;
|
22
|
+
flattenData(): any[][];
|
23
|
+
getPlainIndex(): number[];
|
24
|
+
map<T>(func: (row: DataRow, index: number) => T, sharedRow?: SharedRowOptions, options?: RangeOptions): T[];
|
25
|
+
mapIndex<T>(func: ({ index: number }: {
|
26
|
+
index: any;
|
27
|
+
}, dc: DataContainerInterface) => T, options?: RangeOptions): T[];
|
28
|
+
find(func: (row: DataRow, index: number) => boolean, sharedRow?: SharedRowOptions): DataRow | undefined;
|
29
|
+
reduce<T>(func: (acc: T, row: DataRow, index: number) => T, initialValue: T, sharedRow?: SharedRowOptions): T;
|
30
|
+
}
|
31
|
+
export {};
|
@@ -0,0 +1,206 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
5
|
+
value: true
|
6
|
+
});
|
7
|
+
exports.RowDataContainer = void 0;
|
8
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
9
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
10
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
11
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
12
|
+
var _dataRow = require("./data-row");
|
13
|
+
var _marked = /*#__PURE__*/_regenerator["default"].mark(rowsIterator),
|
14
|
+
_marked2 = /*#__PURE__*/_regenerator["default"].mark(columnIterator); // SPDX-License-Identifier: MIT
|
15
|
+
// Copyright contributors to the kepler.gl project
|
16
|
+
/**
|
17
|
+
* @param dataContainer
|
18
|
+
* @param sharedRow
|
19
|
+
*/
|
20
|
+
function rowsIterator(dataContainer, sharedRow) {
|
21
|
+
var numRows, rowIndex;
|
22
|
+
return _regenerator["default"].wrap(function rowsIterator$(_context) {
|
23
|
+
while (1) switch (_context.prev = _context.next) {
|
24
|
+
case 0:
|
25
|
+
numRows = dataContainer.numRows();
|
26
|
+
rowIndex = 0;
|
27
|
+
case 2:
|
28
|
+
if (!(rowIndex < numRows)) {
|
29
|
+
_context.next = 8;
|
30
|
+
break;
|
31
|
+
}
|
32
|
+
_context.next = 5;
|
33
|
+
return dataContainer.row(rowIndex, sharedRow);
|
34
|
+
case 5:
|
35
|
+
++rowIndex;
|
36
|
+
_context.next = 2;
|
37
|
+
break;
|
38
|
+
case 8:
|
39
|
+
case "end":
|
40
|
+
return _context.stop();
|
41
|
+
}
|
42
|
+
}, _marked);
|
43
|
+
}
|
44
|
+
|
45
|
+
/**
|
46
|
+
* @param dataContainer
|
47
|
+
* @param columnIndex
|
48
|
+
*/
|
49
|
+
function columnIterator(dataContainer, columnIndex) {
|
50
|
+
var numRows, rowIndex;
|
51
|
+
return _regenerator["default"].wrap(function columnIterator$(_context2) {
|
52
|
+
while (1) switch (_context2.prev = _context2.next) {
|
53
|
+
case 0:
|
54
|
+
numRows = dataContainer.numRows();
|
55
|
+
rowIndex = 0;
|
56
|
+
case 2:
|
57
|
+
if (!(rowIndex < numRows)) {
|
58
|
+
_context2.next = 8;
|
59
|
+
break;
|
60
|
+
}
|
61
|
+
_context2.next = 5;
|
62
|
+
return dataContainer.valueAt(rowIndex, columnIndex);
|
63
|
+
case 5:
|
64
|
+
++rowIndex;
|
65
|
+
_context2.next = 2;
|
66
|
+
break;
|
67
|
+
case 8:
|
68
|
+
case "end":
|
69
|
+
return _context2.stop();
|
70
|
+
}
|
71
|
+
}, _marked2);
|
72
|
+
}
|
73
|
+
|
74
|
+
/**
|
75
|
+
* A data container where all data is stored internally as a 2D array.
|
76
|
+
*/
|
77
|
+
var RowDataContainer = exports.RowDataContainer = /*#__PURE__*/function () {
|
78
|
+
function RowDataContainer(data) {
|
79
|
+
var _data$rows$;
|
80
|
+
(0, _classCallCheck2["default"])(this, RowDataContainer);
|
81
|
+
(0, _defineProperty2["default"])(this, "_rows", void 0);
|
82
|
+
(0, _defineProperty2["default"])(this, "_numColumns", void 0);
|
83
|
+
if (!data.rows) {
|
84
|
+
throw Error('RowDataContainer: no rows provided');
|
85
|
+
}
|
86
|
+
if (!Array.isArray(data.rows)) {
|
87
|
+
throw Error("RowDataContainer: rows object isn't an array");
|
88
|
+
}
|
89
|
+
this._rows = data.rows;
|
90
|
+
this._numColumns = ((_data$rows$ = data.rows[0]) === null || _data$rows$ === void 0 ? void 0 : _data$rows$.length) || 0;
|
91
|
+
}
|
92
|
+
return (0, _createClass2["default"])(RowDataContainer, [{
|
93
|
+
key: "numRows",
|
94
|
+
value: function numRows() {
|
95
|
+
return this._rows.length;
|
96
|
+
}
|
97
|
+
}, {
|
98
|
+
key: "numColumns",
|
99
|
+
value: function numColumns() {
|
100
|
+
return this._numColumns;
|
101
|
+
}
|
102
|
+
}, {
|
103
|
+
key: "valueAt",
|
104
|
+
value: function valueAt(rowIndex, columnIndex) {
|
105
|
+
if (this._rows[rowIndex] === null) {
|
106
|
+
return null;
|
107
|
+
}
|
108
|
+
return this._rows[rowIndex][columnIndex];
|
109
|
+
}
|
110
|
+
}, {
|
111
|
+
key: "row",
|
112
|
+
value: function row(rowIndex, sharedRow) {
|
113
|
+
var tSharedRow = _dataRow.DataRow.createSharedRow(sharedRow);
|
114
|
+
if (tSharedRow) {
|
115
|
+
tSharedRow.setSource(this, rowIndex);
|
116
|
+
return tSharedRow;
|
117
|
+
}
|
118
|
+
return new _dataRow.DataRow(this, rowIndex);
|
119
|
+
}
|
120
|
+
}, {
|
121
|
+
key: "rowAsArray",
|
122
|
+
value: function rowAsArray(rowIndex) {
|
123
|
+
return this._rows[rowIndex];
|
124
|
+
}
|
125
|
+
}, {
|
126
|
+
key: "rows",
|
127
|
+
value: function rows(sharedRow) {
|
128
|
+
var tSharedRow = _dataRow.DataRow.createSharedRow(sharedRow);
|
129
|
+
return rowsIterator(this, tSharedRow);
|
130
|
+
}
|
131
|
+
}, {
|
132
|
+
key: "column",
|
133
|
+
value: function column(columnIndex) {
|
134
|
+
return columnIterator(this, columnIndex);
|
135
|
+
}
|
136
|
+
}, {
|
137
|
+
key: "flattenData",
|
138
|
+
value: function flattenData() {
|
139
|
+
return this._rows;
|
140
|
+
}
|
141
|
+
}, {
|
142
|
+
key: "getPlainIndex",
|
143
|
+
value: function getPlainIndex() {
|
144
|
+
return this._rows.map(function (_, i) {
|
145
|
+
return i;
|
146
|
+
});
|
147
|
+
}
|
148
|
+
}, {
|
149
|
+
key: "map",
|
150
|
+
value: function map(func, sharedRow) {
|
151
|
+
var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
152
|
+
var tSharedRow = _dataRow.DataRow.createSharedRow(sharedRow);
|
153
|
+
var _options$start = options.start,
|
154
|
+
start = _options$start === void 0 ? 0 : _options$start,
|
155
|
+
_options$end = options.end,
|
156
|
+
end = _options$end === void 0 ? this.numRows() : _options$end;
|
157
|
+
var endRow = Math.min(this.numRows(), end);
|
158
|
+
var out = [];
|
159
|
+
for (var rowIndex = start; rowIndex < endRow; ++rowIndex) {
|
160
|
+
var row = this.row(rowIndex, tSharedRow);
|
161
|
+
out.push(func(row, rowIndex));
|
162
|
+
}
|
163
|
+
return out;
|
164
|
+
}
|
165
|
+
}, {
|
166
|
+
key: "mapIndex",
|
167
|
+
value: function mapIndex(func) {
|
168
|
+
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
169
|
+
var _options$start2 = options.start,
|
170
|
+
start = _options$start2 === void 0 ? 0 : _options$start2,
|
171
|
+
_options$end2 = options.end,
|
172
|
+
end = _options$end2 === void 0 ? this.numRows() : _options$end2;
|
173
|
+
var endRow = Math.min(this.numRows(), end);
|
174
|
+
var out = [];
|
175
|
+
for (var rowIndex = start; rowIndex < endRow; ++rowIndex) {
|
176
|
+
out.push(func({
|
177
|
+
index: rowIndex
|
178
|
+
}, this));
|
179
|
+
}
|
180
|
+
return out;
|
181
|
+
}
|
182
|
+
}, {
|
183
|
+
key: "find",
|
184
|
+
value: function find(func, sharedRow) {
|
185
|
+
var tSharedRow = _dataRow.DataRow.createSharedRow(sharedRow);
|
186
|
+
for (var rowIndex = 0; rowIndex < this._rows.length; ++rowIndex) {
|
187
|
+
var row = this.row(rowIndex, tSharedRow);
|
188
|
+
if (func(row, rowIndex)) {
|
189
|
+
return row;
|
190
|
+
}
|
191
|
+
}
|
192
|
+
return undefined;
|
193
|
+
}
|
194
|
+
}, {
|
195
|
+
key: "reduce",
|
196
|
+
value: function reduce(func, initialValue, sharedRow) {
|
197
|
+
var tSharedRow = _dataRow.DataRow.createSharedRow(sharedRow);
|
198
|
+
for (var rowIndex = 0; rowIndex < this._rows.length; ++rowIndex) {
|
199
|
+
var row = this.row(rowIndex, tSharedRow);
|
200
|
+
initialValue = func(initialValue, row, rowIndex);
|
201
|
+
}
|
202
|
+
return initialValue;
|
203
|
+
}
|
204
|
+
}]);
|
205
|
+
}();
|
206
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZGF0YVJvdyIsInJlcXVpcmUiLCJfbWFya2VkIiwiX3JlZ2VuZXJhdG9yIiwibWFyayIsInJvd3NJdGVyYXRvciIsIl9tYXJrZWQyIiwiY29sdW1uSXRlcmF0b3IiLCJkYXRhQ29udGFpbmVyIiwic2hhcmVkUm93IiwibnVtUm93cyIsInJvd0luZGV4Iiwid3JhcCIsInJvd3NJdGVyYXRvciQiLCJfY29udGV4dCIsInByZXYiLCJuZXh0Iiwicm93Iiwic3RvcCIsImNvbHVtbkluZGV4IiwiY29sdW1uSXRlcmF0b3IkIiwiX2NvbnRleHQyIiwidmFsdWVBdCIsIlJvd0RhdGFDb250YWluZXIiLCJleHBvcnRzIiwiZGF0YSIsIl9kYXRhJHJvd3MkIiwiX2NsYXNzQ2FsbENoZWNrMiIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJyb3dzIiwiRXJyb3IiLCJBcnJheSIsImlzQXJyYXkiLCJfcm93cyIsIl9udW1Db2x1bW5zIiwibGVuZ3RoIiwiX2NyZWF0ZUNsYXNzMiIsImtleSIsInZhbHVlIiwibnVtQ29sdW1ucyIsInRTaGFyZWRSb3ciLCJEYXRhUm93IiwiY3JlYXRlU2hhcmVkUm93Iiwic2V0U291cmNlIiwicm93QXNBcnJheSIsImNvbHVtbiIsImZsYXR0ZW5EYXRhIiwiZ2V0UGxhaW5JbmRleCIsIm1hcCIsIl8iLCJpIiwiZnVuYyIsIm9wdGlvbnMiLCJhcmd1bWVudHMiLCJ1bmRlZmluZWQiLCJfb3B0aW9ucyRzdGFydCIsInN0YXJ0IiwiX29wdGlvbnMkZW5kIiwiZW5kIiwiZW5kUm93IiwiTWF0aCIsIm1pbiIsIm91dCIsInB1c2giLCJtYXBJbmRleCIsIl9vcHRpb25zJHN0YXJ0MiIsIl9vcHRpb25zJGVuZDIiLCJpbmRleCIsImZpbmQiLCJyZWR1Y2UiLCJpbml0aWFsVmFsdWUiXSwic291cmNlcyI6WyIuLi9zcmMvcm93LWRhdGEtY29udGFpbmVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCB7RGF0YVJvdywgU2hhcmVkUm93T3B0aW9uc30gZnJvbSAnLi9kYXRhLXJvdyc7XG5pbXBvcnQge1Byb3RvRGF0YXNldEZpZWxkfSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcbmltcG9ydCB7RGF0YUNvbnRhaW5lckludGVyZmFjZSwgUmFuZ2VPcHRpb25zfSBmcm9tICcuL2RhdGEtY29udGFpbmVyLWludGVyZmFjZSc7XG5cbnR5cGUgUm93RGF0YUNvbnRhaW5lcklucHV0ID0ge1xuICByb3dzOiBhbnlbXVtdO1xuICBmaWVsZHM/OiBQcm90b0RhdGFzZXRGaWVsZFtdO1xufTtcblxuLyoqXG4gKiBAcGFyYW0gZGF0YUNvbnRhaW5lclxuICogQHBhcmFtIHNoYXJlZFJvd1xuICovXG5mdW5jdGlvbiogcm93c0l0ZXJhdG9yKGRhdGFDb250YWluZXI6IERhdGFDb250YWluZXJJbnRlcmZhY2UsIHNoYXJlZFJvdzogU2hhcmVkUm93T3B0aW9ucykge1xuICBjb25zdCBudW1Sb3dzID0gZGF0YUNvbnRhaW5lci5udW1Sb3dzKCk7XG4gIGZvciAobGV0IHJvd0luZGV4ID0gMDsgcm93SW5kZXggPCBudW1Sb3dzOyArK3Jvd0luZGV4KSB7XG4gICAgeWllbGQgZGF0YUNvbnRhaW5lci5yb3cocm93SW5kZXgsIHNoYXJlZFJvdyk7XG4gIH1cbn1cblxuLyoqXG4gKiBAcGFyYW0gZGF0YUNvbnRhaW5lclxuICogQHBhcmFtIGNvbHVtbkluZGV4XG4gKi9cbmZ1bmN0aW9uKiBjb2x1bW5JdGVyYXRvcihkYXRhQ29udGFpbmVyOiBEYXRhQ29udGFpbmVySW50ZXJmYWNlLCBjb2x1bW5JbmRleDogbnVtYmVyKSB7XG4gIGNvbnN0IG51bVJvd3MgPSBkYXRhQ29udGFpbmVyLm51bVJvd3MoKTtcbiAgZm9yIChsZXQgcm93SW5kZXggPSAwOyByb3dJbmRleCA8IG51bVJvd3M7ICsrcm93SW5kZXgpIHtcbiAgICB5aWVsZCBkYXRhQ29udGFpbmVyLnZhbHVlQXQocm93SW5kZXgsIGNvbHVtbkluZGV4KTtcbiAgfVxufVxuXG4vKipcbiAqIEEgZGF0YSBjb250YWluZXIgd2hlcmUgYWxsIGRhdGEgaXMgc3RvcmVkIGludGVybmFsbHkgYXMgYSAyRCBhcnJheS5cbiAqL1xuZXhwb3J0IGNsYXNzIFJvd0RhdGFDb250YWluZXIgaW1wbGVtZW50cyBEYXRhQ29udGFpbmVySW50ZXJmYWNlIHtcbiAgX3Jvd3M6IGFueVtdW107XG4gIF9udW1Db2x1bW5zOiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3IoZGF0YTogUm93RGF0YUNvbnRhaW5lcklucHV0KSB7XG4gICAgaWYgKCFkYXRhLnJvd3MpIHtcbiAgICAgIHRocm93IEVycm9yKCdSb3dEYXRhQ29udGFpbmVyOiBubyByb3dzIHByb3ZpZGVkJyk7XG4gICAgfVxuXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KGRhdGEucm93cykpIHtcbiAgICAgIHRocm93IEVycm9yKFwiUm93RGF0YUNvbnRhaW5lcjogcm93cyBvYmplY3QgaXNuJ3QgYW4gYXJyYXlcIik7XG4gICAgfVxuXG4gICAgdGhpcy5fcm93cyA9IGRhdGEucm93cztcbiAgICB0aGlzLl9udW1Db2x1bW5zID0gZGF0YS5yb3dzWzBdPy5sZW5ndGggfHwgMDtcbiAgfVxuXG4gIG51bVJvd3MoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fcm93cy5sZW5ndGg7XG4gIH1cblxuICBudW1Db2x1bW5zKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX251bUNvbHVtbnM7XG4gIH1cblxuICB2YWx1ZUF0KHJvd0luZGV4OiBudW1iZXIsIGNvbHVtbkluZGV4OiBudW1iZXIpOiBhbnkge1xuICAgIGlmICh0aGlzLl9yb3dzW3Jvd0luZGV4XSA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9yb3dzW3Jvd0luZGV4XVtjb2x1bW5JbmRleF07XG4gIH1cblxuICByb3cocm93SW5kZXg6IG51bWJlciwgc2hhcmVkUm93PzogU2hhcmVkUm93T3B0aW9ucyk6IERhdGFSb3cge1xuICAgIGNvbnN0IHRTaGFyZWRSb3cgPSBEYXRhUm93LmNyZWF0ZVNoYXJlZFJvdyhzaGFyZWRSb3cpO1xuICAgIGlmICh0U2hhcmVkUm93KSB7XG4gICAgICB0U2hhcmVkUm93LnNldFNvdXJjZSh0aGlzLCByb3dJbmRleCk7XG4gICAgICByZXR1cm4gdFNoYXJlZFJvdztcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IERhdGFSb3codGhpcywgcm93SW5kZXgpO1xuICB9XG5cbiAgcm93QXNBcnJheShyb3dJbmRleDogbnVtYmVyKTogYW55W10ge1xuICAgIHJldHVybiB0aGlzLl9yb3dzW3Jvd0luZGV4XTtcbiAgfVxuXG4gIHJvd3Moc2hhcmVkUm93OiBTaGFyZWRSb3dPcHRpb25zKSB7XG4gICAgY29uc3QgdFNoYXJlZFJvdyA9IERhdGFSb3cuY3JlYXRlU2hhcmVkUm93KHNoYXJlZFJvdyk7XG4gICAgcmV0dXJuIHJvd3NJdGVyYXRvcih0aGlzLCB0U2hhcmVkUm93KTtcbiAgfVxuXG4gIGNvbHVtbihjb2x1bW5JbmRleDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIGNvbHVtbkl0ZXJhdG9yKHRoaXMsIGNvbHVtbkluZGV4KTtcbiAgfVxuXG4gIGZsYXR0ZW5EYXRhKCk6IGFueVtdW10ge1xuICAgIHJldHVybiB0aGlzLl9yb3dzO1xuICB9XG5cbiAgZ2V0UGxhaW5JbmRleCgpOiBudW1iZXJbXSB7XG4gICAgcmV0dXJuIHRoaXMuX3Jvd3MubWFwKChfLCBpKSA9PiBpKTtcbiAgfVxuXG4gIG1hcDxUPihcbiAgICBmdW5jOiAocm93OiBEYXRhUm93LCBpbmRleDogbnVtYmVyKSA9PiBULFxuICAgIHNoYXJlZFJvdz86IFNoYXJlZFJvd09wdGlvbnMsXG4gICAgb3B0aW9uczogUmFuZ2VPcHRpb25zID0ge31cbiAgKTogVFtdIHtcbiAgICBjb25zdCB0U2hhcmVkUm93ID0gRGF0YVJvdy5jcmVhdGVTaGFyZWRSb3coc2hhcmVkUm93KTtcblxuICAgIGNvbnN0IHtzdGFydCA9IDAsIGVuZCA9IHRoaXMubnVtUm93cygpfSA9IG9wdGlvbnM7XG4gICAgY29uc3QgZW5kUm93ID0gTWF0aC5taW4odGhpcy5udW1Sb3dzKCksIGVuZCk7XG5cbiAgICBjb25zdCBvdXQ6IFRbXSA9IFtdO1xuICAgIGZvciAobGV0IHJvd0luZGV4ID0gc3RhcnQ7IHJvd0luZGV4IDwgZW5kUm93OyArK3Jvd0luZGV4KSB7XG4gICAgICBjb25zdCByb3cgPSB0aGlzLnJvdyhyb3dJbmRleCwgdFNoYXJlZFJvdyk7XG4gICAgICBvdXQucHVzaChmdW5jKHJvdywgcm93SW5kZXgpKTtcbiAgICB9XG4gICAgcmV0dXJuIG91dDtcbiAgfVxuXG4gIG1hcEluZGV4PFQ+KFxuICAgIGZ1bmM6ICh7aW5kZXg6IG51bWJlcn0sIGRjOiBEYXRhQ29udGFpbmVySW50ZXJmYWNlKSA9PiBULFxuICAgIG9wdGlvbnM6IFJhbmdlT3B0aW9ucyA9IHt9XG4gICk6IFRbXSB7XG4gICAgY29uc3Qge3N0YXJ0ID0gMCwgZW5kID0gdGhpcy5udW1Sb3dzKCl9ID0gb3B0aW9ucztcbiAgICBjb25zdCBlbmRSb3cgPSBNYXRoLm1pbih0aGlzLm51bVJvd3MoKSwgZW5kKTtcblxuICAgIGNvbnN0IG91dDogVFtdID0gW107XG4gICAgZm9yIChsZXQgcm93SW5kZXggPSBzdGFydDsgcm93SW5kZXggPCBlbmRSb3c7ICsrcm93SW5kZXgpIHtcbiAgICAgIG91dC5wdXNoKGZ1bmMoe2luZGV4OiByb3dJbmRleH0sIHRoaXMpKTtcbiAgICB9XG4gICAgcmV0dXJuIG91dDtcbiAgfVxuXG4gIGZpbmQoXG4gICAgZnVuYzogKHJvdzogRGF0YVJvdywgaW5kZXg6IG51bWJlcikgPT4gYm9vbGVhbixcbiAgICBzaGFyZWRSb3c/OiBTaGFyZWRSb3dPcHRpb25zXG4gICk6IERhdGFSb3cgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IHRTaGFyZWRSb3cgPSBEYXRhUm93LmNyZWF0ZVNoYXJlZFJvdyhzaGFyZWRSb3cpO1xuXG4gICAgZm9yIChsZXQgcm93SW5kZXggPSAwOyByb3dJbmRleCA8IHRoaXMuX3Jvd3MubGVuZ3RoOyArK3Jvd0luZGV4KSB7XG4gICAgICBjb25zdCByb3cgPSB0aGlzLnJvdyhyb3dJbmRleCwgdFNoYXJlZFJvdyk7XG4gICAgICBpZiAoZnVuYyhyb3csIHJvd0luZGV4KSkge1xuICAgICAgICByZXR1cm4gcm93O1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgcmVkdWNlPFQ+KFxuICAgIGZ1bmM6IChhY2M6IFQsIHJvdzogRGF0YVJvdywgaW5kZXg6IG51bWJlcikgPT4gVCxcbiAgICBpbml0aWFsVmFsdWU6IFQsXG4gICAgc2hhcmVkUm93PzogU2hhcmVkUm93T3B0aW9uc1xuICApOiBUIHtcbiAgICBjb25zdCB0U2hhcmVkUm93ID0gRGF0YVJvdy5jcmVhdGVTaGFyZWRSb3coc2hhcmVkUm93KTtcblxuICAgIGZvciAobGV0IHJvd0luZGV4ID0gMDsgcm93SW5kZXggPCB0aGlzLl9yb3dzLmxlbmd0aDsgKytyb3dJbmRleCkge1xuICAgICAgY29uc3Qgcm93ID0gdGhpcy5yb3cocm93SW5kZXgsIHRTaGFyZWRSb3cpO1xuICAgICAgaW5pdGlhbFZhbHVlID0gZnVuYyhpbml0aWFsVmFsdWUsIHJvdywgcm93SW5kZXgpO1xuICAgIH1cbiAgICByZXR1cm4gaW5pdGlhbFZhbHVlO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBR0EsSUFBQUEsUUFBQSxHQUFBQyxPQUFBO0FBQXFELElBQUFDLE9BQUEsZ0JBQUFDLFlBQUEsWUFBQUMsSUFBQSxDQWEzQ0MsWUFBWTtFQUFBQyxRQUFBLGdCQUFBSCxZQUFBLFlBQUFDLElBQUEsQ0FXWkcsY0FBYyxHQTNCeEI7QUFDQTtBQVdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBVUYsWUFBWUEsQ0FBQ0csYUFBcUMsRUFB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
|
@@ -0,0 +1 @@
|
|
1
|
+
export declare function simpleSearcher(autofillValues: any, page: any, query: any, cb: any): any;
|
@@ -0,0 +1,25 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.simpleSearcher = simpleSearcher;
|
7
|
+
// SPDX-License-Identifier: MIT
|
8
|
+
// Copyright contributors to the kepler.gl project
|
9
|
+
|
10
|
+
/* eslint-disable callback-return */
|
11
|
+
function simpleSearcher(autofillValues, page, query, cb) {
|
12
|
+
var regex = new RegExp(query, 'i');
|
13
|
+
var foundQuery = false;
|
14
|
+
var matches = (autofillValues || []).filter(function _filter(item) {
|
15
|
+
var tag = item.name;
|
16
|
+
foundQuery = foundQuery || tag === query;
|
17
|
+
return tag && regex.test(tag);
|
18
|
+
});
|
19
|
+
if (cb) {
|
20
|
+
cb(matches);
|
21
|
+
}
|
22
|
+
return matches;
|
23
|
+
}
|
24
|
+
/* eslint-enable callback-return */
|
25
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzaW1wbGVTZWFyY2hlciIsImF1dG9maWxsVmFsdWVzIiwicGFnZSIsInF1ZXJ5IiwiY2IiLCJyZWdleCIsIlJlZ0V4cCIsImZvdW5kUXVlcnkiLCJtYXRjaGVzIiwiZmlsdGVyIiwiX2ZpbHRlciIsIml0ZW0iLCJ0YWciLCJuYW1lIiwidGVzdCJdLCJzb3VyY2VzIjpbIi4uL3NyYy9zZWFyY2hlci11dGlscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG4vKiBlc2xpbnQtZGlzYWJsZSBjYWxsYmFjay1yZXR1cm4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzaW1wbGVTZWFyY2hlcihhdXRvZmlsbFZhbHVlcywgcGFnZSwgcXVlcnksIGNiKSB7XG4gIGNvbnN0IHJlZ2V4ID0gbmV3IFJlZ0V4cChxdWVyeSwgJ2knKTtcbiAgbGV0IGZvdW5kUXVlcnkgPSBmYWxzZTtcbiAgY29uc3QgbWF0Y2hlcyA9IChhdXRvZmlsbFZhbHVlcyB8fCBbXSkuZmlsdGVyKGZ1bmN0aW9uIF9maWx0ZXIoaXRlbSkge1xuICAgIGNvbnN0IHRhZyA9IGl0ZW0ubmFtZTtcbiAgICBmb3VuZFF1ZXJ5ID0gZm91bmRRdWVyeSB8fCB0YWcgPT09IHF1ZXJ5O1xuICAgIHJldHVybiB0YWcgJiYgcmVnZXgudGVzdCh0YWcpO1xuICB9KTtcblxuICBpZiAoY2IpIHtcbiAgICBjYihtYXRjaGVzKTtcbiAgfVxuXG4gIHJldHVybiBtYXRjaGVzO1xufVxuLyogZXNsaW50LWVuYWJsZSBjYWxsYmFjay1yZXR1cm4gKi9cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDQTs7QUFFQTtBQUNPLFNBQVNBLGNBQWNBLENBQUNDLGNBQWMsRUFBRUMsSUFBSSxFQUFFQyxLQUFLLEVBQUVDLEVBQUUsRUFBRTtFQUM5RCxJQUFNQyxLQUFLLEdBQUcsSUFBSUMsTUFBTSxDQUFDSCxLQUFLLEVBQUUsR0FBRyxDQUFDO0VBQ3BDLElBQUlJLFVBQVUsR0FBRyxLQUFLO0VBQ3RCLElBQU1DLE9BQU8sR0FBRyxDQUFDUCxjQUFjLElBQUksRUFBRSxFQUFFUSxNQUFNLENBQUMsU0FBU0MsT0FBT0EsQ0FBQ0MsSUFBSSxFQUFFO0lBQ25FLElBQU1DLEdBQUcsR0FBR0QsSUFBSSxDQUFDRSxJQUFJO0lBQ3JCTixVQUFVLEdBQUdBLFVBQVUsSUFBSUssR0FBRyxLQUFLVCxLQUFLO0lBQ3hDLE9BQU9TLEdBQUcsSUFBSVAsS0FBSyxDQUFDUyxJQUFJLENBQUNGLEdBQUcsQ0FBQztFQUMvQixDQUFDLENBQUM7RUFFRixJQUFJUixFQUFFLEVBQUU7SUFDTkEsRUFBRSxDQUFDSSxPQUFPLENBQUM7RUFDYjtFQUVBLE9BQU9BLE9BQU87QUFDaEI7QUFDQSIsImlnbm9yZUxpc3QiOltdfQ==
|
@@ -0,0 +1,32 @@
|
|
1
|
+
/**
|
2
|
+
* Add new layers to both existing maps
|
3
|
+
* @param {Object} splitMaps
|
4
|
+
* @param {Object|Array<Object>} layers
|
5
|
+
* @returns {Array<Object>} new splitMaps
|
6
|
+
*/
|
7
|
+
export declare function addNewLayersToSplitMap(splitMaps: any, layers: any): any;
|
8
|
+
/**
|
9
|
+
* Remove an existing layer from split map settings
|
10
|
+
* @param {Object} splitMaps
|
11
|
+
* @param {Object} layer
|
12
|
+
* @returns {Object} Maps of custom layer objects
|
13
|
+
*/
|
14
|
+
export declare function removeLayerFromSplitMaps(splitMaps: any, layer: any): any;
|
15
|
+
/**
|
16
|
+
* This method will compute the default maps layer settings
|
17
|
+
* based on the current layers visibility
|
18
|
+
* @param {Array<Object>} layers
|
19
|
+
* @returns {Array<Object>} layer visibility for each panel
|
20
|
+
*/
|
21
|
+
export declare function getInitialMapLayersForSplitMap(layers: any): any;
|
22
|
+
/**
|
23
|
+
* This method will get default splitMap settings based on existing layers
|
24
|
+
* @param {Array<Object>} layers
|
25
|
+
* @param {Object} options
|
26
|
+
* @returns {Array<Object>} split map settings
|
27
|
+
*/
|
28
|
+
export declare function computeSplitMapLayers(layers: any, options?: {
|
29
|
+
duplicate: boolean;
|
30
|
+
}): {
|
31
|
+
layers: any;
|
32
|
+
}[];
|