@kepler.gl/utils 3.0.0 → 3.1.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/package.json +14 -10
- package/dist/aggregate-utils.d.ts +0 -3
- package/dist/aggregate-utils.js +0 -75
- package/dist/arrow-data-container.d.ts +0 -54
- package/dist/arrow-data-container.js +0 -360
- package/dist/color-utils.d.ts +0 -51
- package/dist/color-utils.js +0 -161
- package/dist/data-container-interface.d.ts +0 -133
- package/dist/data-container-interface.js +0 -6
- package/dist/data-container-utils.d.ts +0 -30
- package/dist/data-container-utils.js +0 -88
- package/dist/data-row.d.ts +0 -59
- package/dist/data-row.js +0 -126
- package/dist/data-scale-utils.d.ts +0 -23
- package/dist/data-scale-utils.js +0 -62
- package/dist/data-utils.d.ts +0 -103
- package/dist/data-utils.js +0 -502
- package/dist/dataset-utils.d.ts +0 -116
- package/dist/dataset-utils.js +0 -614
- package/dist/dom-to-image.d.ts +0 -73
- package/dist/dom-to-image.js +0 -489
- package/dist/dom-utils.d.ts +0 -23
- package/dist/dom-utils.js +0 -434
- package/dist/effect-utils.d.ts +0 -23
- package/dist/effect-utils.js +0 -196
- package/dist/export-map-html.d.ts +0 -9
- package/dist/export-map-html.js +0 -28
- package/dist/export-utils.d.ts +0 -53
- package/dist/export-utils.js +0 -262
- package/dist/filter-utils.d.ts +0 -326
- package/dist/filter-utils.js +0 -1333
- package/dist/format.d.ts +0 -1
- package/dist/format.js +0 -17
- package/dist/gl-utils.d.ts +0 -1
- package/dist/gl-utils.js +0 -35
- package/dist/h3-utils.d.ts +0 -21
- package/dist/h3-utils.js +0 -81
- package/dist/index.d.ts +0 -36
- package/dist/index.js +0 -772
- package/dist/indexed-data-container.d.ts +0 -34
- package/dist/indexed-data-container.js +0 -254
- package/dist/locale-utils.d.ts +0 -2
- package/dist/locale-utils.js +0 -54
- package/dist/map-info-utils.d.ts +0 -1
- package/dist/map-info-utils.js +0 -15
- package/dist/map-style-utils/mapbox-gl-style-editor.d.ts +0 -65
- package/dist/map-style-utils/mapbox-gl-style-editor.js +0 -218
- package/dist/map-style-utils/mapbox-utils.d.ts +0 -9
- package/dist/map-style-utils/mapbox-utils.js +0 -48
- package/dist/map-utils.d.ts +0 -9
- package/dist/map-utils.js +0 -65
- package/dist/mapbox-utils.d.ts +0 -7
- package/dist/mapbox-utils.js +0 -22
- package/dist/noop.d.ts +0 -1
- package/dist/noop.js +0 -11
- package/dist/notifications-utils.d.ts +0 -42
- package/dist/notifications-utils.js +0 -85
- package/dist/observe-dimensions.d.ts +0 -15
- package/dist/observe-dimensions.js +0 -151
- package/dist/plot.d.ts +0 -6
- package/dist/plot.js +0 -31
- package/dist/projection-utils.d.ts +0 -21
- package/dist/projection-utils.js +0 -100
- package/dist/row-data-container.d.ts +0 -31
- package/dist/row-data-container.js +0 -252
- package/dist/searcher-utils.d.ts +0 -1
- package/dist/searcher-utils.js +0 -28
- package/dist/split-map-utils.d.ts +0 -32
- package/dist/split-map-utils.js +0 -114
- package/dist/time.d.ts +0 -16
- package/dist/time.js +0 -89
- package/dist/utils.d.ts +0 -116
- package/dist/utils.js +0 -305
package/package.json
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"name": "@kepler.gl/utils",
|
3
3
|
"author": "Shan He <shan@uber.com>",
|
4
|
-
"version": "3.0.0",
|
4
|
+
"version": "3.1.0-alpha.0",
|
5
5
|
"description": "kepler.gl constants used by kepler.gl components, actions and reducers",
|
6
6
|
"license": "MIT",
|
7
7
|
"main": "dist/index.js",
|
@@ -30,23 +30,25 @@
|
|
30
30
|
"umd"
|
31
31
|
],
|
32
32
|
"dependencies": {
|
33
|
-
"
|
34
|
-
"@kepler.gl/constants": "3.0.0",
|
35
|
-
"@kepler.gl/types": "3.0.0",
|
33
|
+
"@kepler.gl/common-utils": "3.1.0-alpha.0",
|
34
|
+
"@kepler.gl/constants": "3.1.0-alpha.0",
|
35
|
+
"@kepler.gl/types": "3.1.0-alpha.0",
|
36
36
|
"@luma.gl/constants": "^8.5.20",
|
37
37
|
"@luma.gl/core": "^8.5.20",
|
38
38
|
"@mapbox/geo-viewport": "^0.4.1",
|
39
39
|
"@turf/boolean-within": "^6.0.1",
|
40
40
|
"@turf/helpers": "^6.1.4",
|
41
|
-
"@types/d3-array": "^2.
|
41
|
+
"@types/d3-array": "^2.8.0",
|
42
42
|
"@types/keymirror": "^0.1.1",
|
43
43
|
"@types/lodash.clonedeep": "^4.5.7",
|
44
44
|
"@types/lodash.get": "^4.4.6",
|
45
45
|
"@types/lodash.isequal": "^4.5.5",
|
46
46
|
"@types/lodash.memoize": "^4.1.7",
|
47
47
|
"@types/lodash.throttle": "^4.1.7",
|
48
|
+
"apache-arrow": ">=15.0.0",
|
48
49
|
"d3-array": "^2.8.0",
|
49
50
|
"d3-format": "^2.0.0",
|
51
|
+
"d3-interpolate": "^2.0.1",
|
50
52
|
"decimal.js": "^10.2.0",
|
51
53
|
"global": "^4.3.0",
|
52
54
|
"h3-js": "^3.1.0",
|
@@ -59,6 +61,7 @@
|
|
59
61
|
"mini-svg-data-uri": "^1.0.3",
|
60
62
|
"moment-timezone": "^0.5.35",
|
61
63
|
"react": "^18.2.0",
|
64
|
+
"react-map-gl": "^7.1.6",
|
62
65
|
"resize-observer-polyfill": "^1.5.1",
|
63
66
|
"type-analyzer": "0.4.0"
|
64
67
|
},
|
@@ -66,15 +69,16 @@
|
|
66
69
|
"sourceMap": false,
|
67
70
|
"instrument": false
|
68
71
|
},
|
69
|
-
"engines": {
|
70
|
-
"node": ">=18.18.2"
|
71
|
-
},
|
72
72
|
"maintainers": [
|
73
73
|
"Shan He <heshan0131@gmail.com>",
|
74
74
|
"Giuseppe Macri <gmacri@uber.com>"
|
75
75
|
],
|
76
|
+
"engines": {
|
77
|
+
"node": ">=18"
|
78
|
+
},
|
76
79
|
"volta": {
|
77
80
|
"node": "18.18.2",
|
78
|
-
"yarn": "
|
79
|
-
}
|
81
|
+
"yarn": "4.4.0"
|
82
|
+
},
|
83
|
+
"packageManager": "yarn@4.4.0"
|
80
84
|
}
|
package/dist/aggregate-utils.js
DELETED
@@ -1,75 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4
|
-
|
5
|
-
Object.defineProperty(exports, "__esModule", {
|
6
|
-
value: true
|
7
|
-
});
|
8
|
-
exports.aggregate = aggregate;
|
9
|
-
exports.getMode = exports.getFrequency = void 0;
|
10
|
-
|
11
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
12
|
-
|
13
|
-
var _d3Array = require("d3-array");
|
14
|
-
|
15
|
-
var _constants = require("@kepler.gl/constants");
|
16
|
-
|
17
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
18
|
-
|
19
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
20
|
-
|
21
|
-
var getFrequency = function getFrequency(data) {
|
22
|
-
return data.reduce(function (uniques, val) {
|
23
|
-
return _objectSpread(_objectSpread({}, uniques), {}, (0, _defineProperty2["default"])({}, val, (uniques[val] || 0) + 1));
|
24
|
-
}, {});
|
25
|
-
};
|
26
|
-
|
27
|
-
exports.getFrequency = getFrequency;
|
28
|
-
|
29
|
-
var getMode = function getMode(data) {
|
30
|
-
var occur = getFrequency(data);
|
31
|
-
return Object.keys(occur).reduce(function (prev, key) {
|
32
|
-
return occur[prev] >= occur[key] ? prev : key;
|
33
|
-
}, Object.keys(occur)[0]);
|
34
|
-
};
|
35
|
-
|
36
|
-
exports.getMode = getMode;
|
37
|
-
|
38
|
-
function aggregate(data, technique) {
|
39
|
-
switch (technique) {
|
40
|
-
case _constants.AGGREGATION_TYPES.average:
|
41
|
-
return (0, _d3Array.mean)(data);
|
42
|
-
|
43
|
-
case _constants.AGGREGATION_TYPES.countUnique:
|
44
|
-
return Object.keys(data.reduce(function (uniques, val) {
|
45
|
-
uniques[val] = uniques[val] || 0;
|
46
|
-
uniques[val] += 1;
|
47
|
-
return uniques;
|
48
|
-
}, {})).length;
|
49
|
-
|
50
|
-
case _constants.AGGREGATION_TYPES.mode:
|
51
|
-
return getMode(data);
|
52
|
-
|
53
|
-
case _constants.AGGREGATION_TYPES.maximum:
|
54
|
-
return (0, _d3Array.max)(data);
|
55
|
-
|
56
|
-
case _constants.AGGREGATION_TYPES.minimum:
|
57
|
-
return (0, _d3Array.min)(data);
|
58
|
-
|
59
|
-
case _constants.AGGREGATION_TYPES.median:
|
60
|
-
return (0, _d3Array.median)(data);
|
61
|
-
|
62
|
-
case _constants.AGGREGATION_TYPES.stdev:
|
63
|
-
return (0, _d3Array.deviation)(data);
|
64
|
-
|
65
|
-
case _constants.AGGREGATION_TYPES.sum:
|
66
|
-
return (0, _d3Array.sum)(data);
|
67
|
-
|
68
|
-
case _constants.AGGREGATION_TYPES.variance:
|
69
|
-
return (0, _d3Array.variance)(data);
|
70
|
-
|
71
|
-
default:
|
72
|
-
return data.length;
|
73
|
-
}
|
74
|
-
}
|
75
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9hZ2dyZWdhdGUtdXRpbHMudHMiXSwibmFtZXMiOlsiZ2V0RnJlcXVlbmN5IiwiZGF0YSIsInJlZHVjZSIsInVuaXF1ZXMiLCJ2YWwiLCJnZXRNb2RlIiwib2NjdXIiLCJPYmplY3QiLCJrZXlzIiwicHJldiIsImtleSIsImFnZ3JlZ2F0ZSIsInRlY2huaXF1ZSIsIkFHR1JFR0FUSU9OX1RZUEVTIiwiYXZlcmFnZSIsImNvdW50VW5pcXVlIiwibGVuZ3RoIiwibW9kZSIsIm1heGltdW0iLCJtaW5pbXVtIiwibWVkaWFuIiwic3RkZXYiLCJzdW0iLCJ2YXJpYW5jZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBR0E7O0FBQ0E7Ozs7OztBQUVPLElBQU1BLFlBQVksR0FBRyxTQUFmQSxZQUFlLENBQUFDLElBQUk7QUFBQSxTQUM5QkEsSUFBSSxDQUFDQyxNQUFMLENBQ0UsVUFBQ0MsT0FBRCxFQUFVQyxHQUFWO0FBQUEsMkNBQ0tELE9BREwsNENBRUdDLEdBRkgsRUFFUyxDQUFDRCxPQUFPLENBQUNDLEdBQUQsQ0FBUCxJQUFnQixDQUFqQixJQUFzQixDQUYvQjtBQUFBLEdBREYsRUFLRSxFQUxGLENBRDhCO0FBQUEsQ0FBekI7Ozs7QUFTQSxJQUFNQyxPQUFPLEdBQUcsU0FBVkEsT0FBVSxDQUFBSixJQUFJLEVBQUk7QUFDN0IsTUFBTUssS0FBSyxHQUFHTixZQUFZLENBQUNDLElBQUQsQ0FBMUI7QUFDQSxTQUFPTSxNQUFNLENBQUNDLElBQVAsQ0FBWUYsS0FBWixFQUFtQkosTUFBbkIsQ0FDTCxVQUFDTyxJQUFELEVBQU9DLEdBQVA7QUFBQSxXQUFnQkosS0FBSyxDQUFDRyxJQUFELENBQUwsSUFBZUgsS0FBSyxDQUFDSSxHQUFELENBQXBCLEdBQTRCRCxJQUE1QixHQUFtQ0MsR0FBbkQ7QUFBQSxHQURLLEVBRUxILE1BQU0sQ0FBQ0MsSUFBUCxDQUFZRixLQUFaLEVBQW1CLENBQW5CLENBRkssQ0FBUDtBQUlELENBTk07Ozs7QUFRQSxTQUFTSyxTQUFULENBQW1CVixJQUFuQixFQUF5QlcsU0FBekIsRUFBb0M7QUFDekMsVUFBUUEsU0FBUjtBQUNFLFNBQUtDLDZCQUFrQkMsT0FBdkI7QUFDRSxhQUFPLG1CQUFLYixJQUFMLENBQVA7O0FBQ0YsU0FBS1ksNkJBQWtCRSxXQUF2QjtBQUNFLGFBQU9SLE1BQU0sQ0FBQ0MsSUFBUCxDQUNMUCxJQUFJLENBQUNDLE1BQUwsQ0FBWSxVQUFDQyxPQUFELEVBQVVDLEdBQVYsRUFBa0I7QUFDNUJELFFBQUFBLE9BQU8sQ0FBQ0MsR0FBRCxDQUFQLEdBQWVELE9BQU8sQ0FBQ0MsR0FBRCxDQUFQLElBQWdCLENBQS9CO0FBQ0FELFFBQUFBLE9BQU8sQ0FBQ0MsR0FBRCxDQUFQLElBQWdCLENBQWhCO0FBQ0EsZUFBT0QsT0FBUDtBQUNELE9BSkQsRUFJRyxFQUpILENBREssRUFNTGEsTUFORjs7QUFPRixTQUFLSCw2QkFBa0JJLElBQXZCO0FBQ0UsYUFBT1osT0FBTyxDQUFDSixJQUFELENBQWQ7O0FBRUYsU0FBS1ksNkJBQWtCSyxPQUF2QjtBQUNFLGFBQU8sa0JBQUlqQixJQUFKLENBQVA7O0FBQ0YsU0FBS1ksNkJBQWtCTSxPQUF2QjtBQUNFLGFBQU8sa0JBQUlsQixJQUFKLENBQVA7O0FBQ0YsU0FBS1ksNkJBQWtCTyxNQUF2QjtBQUNFLGFBQU8scUJBQU9uQixJQUFQLENBQVA7O0FBQ0YsU0FBS1ksNkJBQWtCUSxLQUF2QjtBQUNFLGFBQU8sd0JBQVVwQixJQUFWLENBQVA7O0FBQ0YsU0FBS1ksNkJBQWtCUyxHQUF2QjtBQUNFLGFBQU8sa0JBQUlyQixJQUFKLENBQVA7O0FBQ0YsU0FBS1ksNkJBQWtCVSxRQUF2QjtBQUNFLGFBQU8sdUJBQVN0QixJQUFULENBQVA7O0FBQ0Y7QUFDRSxhQUFPQSxJQUFJLENBQUNlLE1BQVo7QUEzQko7QUE2QkQiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQge2RldmlhdGlvbiwgbWluLCBtYXgsIG1lYW4sIG1lZGlhbiwgc3VtLCB2YXJpYW5jZX0gZnJvbSAnZDMtYXJyYXknO1xuaW1wb3J0IHtBR0dSRUdBVElPTl9UWVBFU30gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuXG5leHBvcnQgY29uc3QgZ2V0RnJlcXVlbmN5ID0gZGF0YSA9PlxuICBkYXRhLnJlZHVjZShcbiAgICAodW5pcXVlcywgdmFsKSA9PiAoe1xuICAgICAgLi4udW5pcXVlcyxcbiAgICAgIFt2YWxdOiAodW5pcXVlc1t2YWxdIHx8IDApICsgMVxuICAgIH0pLFxuICAgIHt9XG4gICk7XG5cbmV4cG9ydCBjb25zdCBnZXRNb2RlID0gZGF0YSA9PiB7XG4gIGNvbnN0IG9jY3VyID0gZ2V0RnJlcXVlbmN5KGRhdGEpO1xuICByZXR1cm4gT2JqZWN0LmtleXMob2NjdXIpLnJlZHVjZShcbiAgICAocHJldiwga2V5KSA9PiAob2NjdXJbcHJldl0gPj0gb2NjdXJba2V5XSA/IHByZXYgOiBrZXkpLFxuICAgIE9iamVjdC5rZXlzKG9jY3VyKVswXVxuICApO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGFnZ3JlZ2F0ZShkYXRhLCB0ZWNobmlxdWUpIHtcbiAgc3dpdGNoICh0ZWNobmlxdWUpIHtcbiAgICBjYXNlIEFHR1JFR0FUSU9OX1RZUEVTLmF2ZXJhZ2U6XG4gICAgICByZXR1cm4gbWVhbihkYXRhKTtcbiAgICBjYXNlIEFHR1JFR0FUSU9OX1RZUEVTLmNvdW50VW5pcXVlOlxuICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKFxuICAgICAgICBkYXRhLnJlZHVjZSgodW5pcXVlcywgdmFsKSA9PiB7XG4gICAgICAgICAgdW5pcXVlc1t2YWxdID0gdW5pcXVlc1t2YWxdIHx8IDA7XG4gICAgICAgICAgdW5pcXVlc1t2YWxdICs9IDE7XG4gICAgICAgICAgcmV0dXJuIHVuaXF1ZXM7XG4gICAgICAgIH0sIHt9KVxuICAgICAgKS5sZW5ndGg7XG4gICAgY2FzZSBBR0dSRUdBVElPTl9UWVBFUy5tb2RlOlxuICAgICAgcmV0dXJuIGdldE1vZGUoZGF0YSk7XG5cbiAgICBjYXNlIEFHR1JFR0FUSU9OX1RZUEVTLm1heGltdW06XG4gICAgICByZXR1cm4gbWF4KGRhdGEpO1xuICAgIGNhc2UgQUdHUkVHQVRJT05fVFlQRVMubWluaW11bTpcbiAgICAgIHJldHVybiBtaW4oZGF0YSk7XG4gICAgY2FzZSBBR0dSRUdBVElPTl9UWVBFUy5tZWRpYW46XG4gICAgICByZXR1cm4gbWVkaWFuKGRhdGEpO1xuICAgIGNhc2UgQUdHUkVHQVRJT05fVFlQRVMuc3RkZXY6XG4gICAgICByZXR1cm4gZGV2aWF0aW9uKGRhdGEpO1xuICAgIGNhc2UgQUdHUkVHQVRJT05fVFlQRVMuc3VtOlxuICAgICAgcmV0dXJuIHN1bShkYXRhKTtcbiAgICBjYXNlIEFHR1JFR0FUSU9OX1RZUEVTLnZhcmlhbmNlOlxuICAgICAgcmV0dXJuIHZhcmlhbmNlKGRhdGEpO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gZGF0YS5sZW5ndGg7XG4gIH1cbn1cbiJdfQ==
|
@@ -1,54 +0,0 @@
|
|
1
|
-
import * as arrow from 'apache-arrow';
|
2
|
-
import { DATA_TYPES as AnalyzerDATA_TYPES } from 'type-analyzer';
|
3
|
-
import { Field } from '@kepler.gl/types';
|
4
|
-
import { DataRow, SharedRowOptions } from './data-row';
|
5
|
-
import { DataContainerInterface, RangeOptions } from './data-container-interface';
|
6
|
-
declare type ArrowDataContainerInput = {
|
7
|
-
cols: arrow.Vector[];
|
8
|
-
fields?: Field[];
|
9
|
-
};
|
10
|
-
/**
|
11
|
-
* A data container where all data is stored in raw Arrow table
|
12
|
-
*/
|
13
|
-
export declare class ArrowDataContainer implements DataContainerInterface {
|
14
|
-
_cols: arrow.Vector[];
|
15
|
-
_numColumns: number;
|
16
|
-
_numRows: number;
|
17
|
-
_fields: Field[];
|
18
|
-
_numChunks: number;
|
19
|
-
constructor(data: ArrowDataContainerInput);
|
20
|
-
update(updateData: arrow.Vector<any>[]): void;
|
21
|
-
numChunks(): number;
|
22
|
-
numRows(): number;
|
23
|
-
numColumns(): number;
|
24
|
-
valueAt(rowIndex: number, columnIndex: number): any;
|
25
|
-
row(rowIndex: number, sharedRow?: SharedRowOptions): DataRow;
|
26
|
-
rowAsArray(rowIndex: number): any[];
|
27
|
-
rows(sharedRow: SharedRowOptions): any;
|
28
|
-
column(columnIndex: number): Generator<any, void, unknown>;
|
29
|
-
getColumn(columnIndex: number): arrow.Vector;
|
30
|
-
getField(columnIndex: number): Field;
|
31
|
-
flattenData(): any[][];
|
32
|
-
getPlainIndex(): number[];
|
33
|
-
map<T>(func: (row: DataRow, index: number) => T, sharedRow?: SharedRowOptions, options?: RangeOptions): T[];
|
34
|
-
mapIndex<T>(func: ({ index }: {
|
35
|
-
index: any;
|
36
|
-
}, dc: DataContainerInterface) => T, options?: RangeOptions): T[];
|
37
|
-
find(func: (row: DataRow, index: number) => boolean, sharedRow?: SharedRowOptions): DataRow | undefined;
|
38
|
-
reduce<T>(func: (acc: T, row: DataRow, index: number) => T, initialValue: T, sharedRow?: SharedRowOptions): T;
|
39
|
-
}
|
40
|
-
/**
|
41
|
-
* Convert arrow data type to kepler.gl field types
|
42
|
-
*
|
43
|
-
* @param arrowType the arrow data type
|
44
|
-
* @returns corresponding type in `ALL_FIELD_TYPES`
|
45
|
-
*/
|
46
|
-
export declare function arrowDataTypeToFieldType(arrowType: arrow.DataType): string;
|
47
|
-
/**
|
48
|
-
* Convert arrow data type to analyzer type
|
49
|
-
*
|
50
|
-
* @param arrowType the arrow data type
|
51
|
-
* @returns corresponding type in `AnalyzerDATA_TYPES`
|
52
|
-
*/
|
53
|
-
export declare function arrowDataTypeToAnalyzerDataType(arrowType: arrow.DataType): typeof AnalyzerDATA_TYPES;
|
54
|
-
export {};
|
@@ -1,360 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
|
3
|
-
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
|
4
|
-
|
5
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
6
|
-
|
7
|
-
Object.defineProperty(exports, "__esModule", {
|
8
|
-
value: true
|
9
|
-
});
|
10
|
-
exports.arrowDataTypeToFieldType = arrowDataTypeToFieldType;
|
11
|
-
exports.arrowDataTypeToAnalyzerDataType = arrowDataTypeToAnalyzerDataType;
|
12
|
-
exports.ArrowDataContainer = void 0;
|
13
|
-
|
14
|
-
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
15
|
-
|
16
|
-
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
17
|
-
|
18
|
-
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
19
|
-
|
20
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
21
|
-
|
22
|
-
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
23
|
-
|
24
|
-
var arrow = _interopRequireWildcard(require("apache-arrow"));
|
25
|
-
|
26
|
-
var _window = require("global/window");
|
27
|
-
|
28
|
-
var _typeAnalyzer = require("type-analyzer");
|
29
|
-
|
30
|
-
var _constants = require("@kepler.gl/constants");
|
31
|
-
|
32
|
-
var _dataRow = require("./data-row");
|
33
|
-
|
34
|
-
var _marked = /*#__PURE__*/_regenerator["default"].mark(rowsIterator),
|
35
|
-
_marked2 = /*#__PURE__*/_regenerator["default"].mark(columnIterator);
|
36
|
-
|
37
|
-
/**
|
38
|
-
* @param dataContainer
|
39
|
-
* @param sharedRow
|
40
|
-
*/
|
41
|
-
function rowsIterator(dataContainer, sharedRow) {
|
42
|
-
var numRows, rowIndex;
|
43
|
-
return _regenerator["default"].wrap(function rowsIterator$(_context) {
|
44
|
-
while (1) {
|
45
|
-
switch (_context.prev = _context.next) {
|
46
|
-
case 0:
|
47
|
-
numRows = dataContainer.numRows();
|
48
|
-
rowIndex = 0;
|
49
|
-
|
50
|
-
case 2:
|
51
|
-
if (!(rowIndex < numRows)) {
|
52
|
-
_context.next = 8;
|
53
|
-
break;
|
54
|
-
}
|
55
|
-
|
56
|
-
_context.next = 5;
|
57
|
-
return dataContainer.row(rowIndex, sharedRow);
|
58
|
-
|
59
|
-
case 5:
|
60
|
-
++rowIndex;
|
61
|
-
_context.next = 2;
|
62
|
-
break;
|
63
|
-
|
64
|
-
case 8:
|
65
|
-
case "end":
|
66
|
-
return _context.stop();
|
67
|
-
}
|
68
|
-
}
|
69
|
-
}, _marked);
|
70
|
-
}
|
71
|
-
/**
|
72
|
-
* @param dataContainer
|
73
|
-
* @param columnIndex
|
74
|
-
*/
|
75
|
-
|
76
|
-
|
77
|
-
function columnIterator(dataContainer, columnIndex) {
|
78
|
-
var numRows, rowIndex;
|
79
|
-
return _regenerator["default"].wrap(function columnIterator$(_context2) {
|
80
|
-
while (1) {
|
81
|
-
switch (_context2.prev = _context2.next) {
|
82
|
-
case 0:
|
83
|
-
numRows = dataContainer.numRows();
|
84
|
-
rowIndex = 0;
|
85
|
-
|
86
|
-
case 2:
|
87
|
-
if (!(rowIndex < numRows)) {
|
88
|
-
_context2.next = 8;
|
89
|
-
break;
|
90
|
-
}
|
91
|
-
|
92
|
-
_context2.next = 5;
|
93
|
-
return dataContainer.valueAt(rowIndex, columnIndex);
|
94
|
-
|
95
|
-
case 5:
|
96
|
-
++rowIndex;
|
97
|
-
_context2.next = 2;
|
98
|
-
break;
|
99
|
-
|
100
|
-
case 8:
|
101
|
-
case "end":
|
102
|
-
return _context2.stop();
|
103
|
-
}
|
104
|
-
}
|
105
|
-
}, _marked2);
|
106
|
-
}
|
107
|
-
/**
|
108
|
-
* A data container where all data is stored in raw Arrow table
|
109
|
-
*/
|
110
|
-
|
111
|
-
|
112
|
-
var ArrowDataContainer = /*#__PURE__*/function () {
|
113
|
-
// cache column data to make valueAt() faster
|
114
|
-
// _colData: any[][];
|
115
|
-
function ArrowDataContainer(data) {
|
116
|
-
(0, _classCallCheck2["default"])(this, ArrowDataContainer);
|
117
|
-
(0, _defineProperty2["default"])(this, "_cols", void 0);
|
118
|
-
(0, _defineProperty2["default"])(this, "_numColumns", void 0);
|
119
|
-
(0, _defineProperty2["default"])(this, "_numRows", void 0);
|
120
|
-
(0, _defineProperty2["default"])(this, "_fields", void 0);
|
121
|
-
(0, _defineProperty2["default"])(this, "_numChunks", void 0);
|
122
|
-
|
123
|
-
if (!data.cols) {
|
124
|
-
throw Error('ArrowDataContainer: no columns provided');
|
125
|
-
}
|
126
|
-
|
127
|
-
if (!Array.isArray(data.cols)) {
|
128
|
-
throw Error("ArrowDataContainer: columns object isn't an array");
|
129
|
-
}
|
130
|
-
|
131
|
-
this._cols = data.cols;
|
132
|
-
this._numColumns = data.cols.length;
|
133
|
-
this._numRows = data.cols[0].length;
|
134
|
-
this._fields = data.fields || [];
|
135
|
-
this._numChunks = data.cols[0].data.length; // this._colData = data.cols.map(c => c.toArray());
|
136
|
-
}
|
137
|
-
|
138
|
-
(0, _createClass2["default"])(ArrowDataContainer, [{
|
139
|
-
key: "update",
|
140
|
-
value: function update(updateData) {
|
141
|
-
this._cols = updateData;
|
142
|
-
this._numColumns = this._cols.length;
|
143
|
-
this._numRows = this._cols[0].length;
|
144
|
-
this._numChunks = this._cols[0].data.length; // cache column data to make valueAt() faster
|
145
|
-
// this._colData = this._cols.map(c => c.toArray());
|
146
|
-
}
|
147
|
-
}, {
|
148
|
-
key: "numChunks",
|
149
|
-
value: function numChunks() {
|
150
|
-
return this._numChunks;
|
151
|
-
}
|
152
|
-
}, {
|
153
|
-
key: "numRows",
|
154
|
-
value: function numRows() {
|
155
|
-
return this._numRows;
|
156
|
-
}
|
157
|
-
}, {
|
158
|
-
key: "numColumns",
|
159
|
-
value: function numColumns() {
|
160
|
-
return this._numColumns;
|
161
|
-
}
|
162
|
-
}, {
|
163
|
-
key: "valueAt",
|
164
|
-
value: function valueAt(rowIndex, columnIndex) {
|
165
|
-
// return this._colData[columnIndex][rowIndex];
|
166
|
-
return this._cols[columnIndex].get(rowIndex);
|
167
|
-
}
|
168
|
-
}, {
|
169
|
-
key: "row",
|
170
|
-
value: function row(rowIndex, sharedRow) {
|
171
|
-
var tSharedRow = _dataRow.DataRow.createSharedRow(sharedRow);
|
172
|
-
|
173
|
-
if (tSharedRow) {
|
174
|
-
tSharedRow.setSource(this, rowIndex);
|
175
|
-
return tSharedRow;
|
176
|
-
}
|
177
|
-
|
178
|
-
return new _dataRow.DataRow(this, rowIndex);
|
179
|
-
}
|
180
|
-
}, {
|
181
|
-
key: "rowAsArray",
|
182
|
-
value: function rowAsArray(rowIndex) {
|
183
|
-
// return this._colData.map(col => col[rowIndex]);
|
184
|
-
return this._cols.map(function (col) {
|
185
|
-
return col.get(rowIndex);
|
186
|
-
});
|
187
|
-
}
|
188
|
-
}, {
|
189
|
-
key: "rows",
|
190
|
-
value: function rows(sharedRow) {
|
191
|
-
var tSharedRow = _dataRow.DataRow.createSharedRow(sharedRow);
|
192
|
-
|
193
|
-
return rowsIterator(this, tSharedRow);
|
194
|
-
}
|
195
|
-
}, {
|
196
|
-
key: "column",
|
197
|
-
value: function column(columnIndex) {
|
198
|
-
return columnIterator(this, columnIndex);
|
199
|
-
}
|
200
|
-
}, {
|
201
|
-
key: "getColumn",
|
202
|
-
value: function getColumn(columnIndex) {
|
203
|
-
return this._cols[columnIndex];
|
204
|
-
}
|
205
|
-
}, {
|
206
|
-
key: "getField",
|
207
|
-
value: function getField(columnIndex) {
|
208
|
-
return this._fields[columnIndex];
|
209
|
-
}
|
210
|
-
}, {
|
211
|
-
key: "flattenData",
|
212
|
-
value: function flattenData() {
|
213
|
-
var data = [];
|
214
|
-
|
215
|
-
for (var i = 0; i < this._numRows; ++i) {
|
216
|
-
data.push(this.rowAsArray(i));
|
217
|
-
}
|
218
|
-
|
219
|
-
return data;
|
220
|
-
}
|
221
|
-
}, {
|
222
|
-
key: "getPlainIndex",
|
223
|
-
value: function getPlainIndex() {
|
224
|
-
return (0, _toConsumableArray2["default"])(Array(this._numRows).keys());
|
225
|
-
}
|
226
|
-
}, {
|
227
|
-
key: "map",
|
228
|
-
value: function map(func, sharedRow) {
|
229
|
-
var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
230
|
-
|
231
|
-
var tSharedRow = _dataRow.DataRow.createSharedRow(sharedRow);
|
232
|
-
|
233
|
-
var _options$start = options.start,
|
234
|
-
start = _options$start === void 0 ? 0 : _options$start,
|
235
|
-
_options$end = options.end,
|
236
|
-
end = _options$end === void 0 ? this.numRows() : _options$end;
|
237
|
-
var endRow = Math.min(this.numRows(), end);
|
238
|
-
var out = [];
|
239
|
-
|
240
|
-
for (var rowIndex = start; rowIndex < endRow; ++rowIndex) {
|
241
|
-
var _row = this.row(rowIndex, tSharedRow);
|
242
|
-
|
243
|
-
out.push(func(_row, rowIndex));
|
244
|
-
}
|
245
|
-
|
246
|
-
return out;
|
247
|
-
}
|
248
|
-
}, {
|
249
|
-
key: "mapIndex",
|
250
|
-
value: function mapIndex(func) {
|
251
|
-
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
252
|
-
var _options$start2 = options.start,
|
253
|
-
start = _options$start2 === void 0 ? 0 : _options$start2,
|
254
|
-
_options$end2 = options.end,
|
255
|
-
end = _options$end2 === void 0 ? this.numRows() : _options$end2;
|
256
|
-
var endRow = Math.min(this.numRows(), end);
|
257
|
-
var out = [];
|
258
|
-
|
259
|
-
for (var rowIndex = start; rowIndex < endRow; ++rowIndex) {
|
260
|
-
out.push(func({
|
261
|
-
index: rowIndex
|
262
|
-
}, this));
|
263
|
-
}
|
264
|
-
|
265
|
-
return out;
|
266
|
-
}
|
267
|
-
}, {
|
268
|
-
key: "find",
|
269
|
-
value: function find(func, sharedRow) {
|
270
|
-
var tSharedRow = _dataRow.DataRow.createSharedRow(sharedRow);
|
271
|
-
|
272
|
-
for (var rowIndex = 0; rowIndex < this._numRows; ++rowIndex) {
|
273
|
-
var _row2 = this.row(rowIndex, tSharedRow);
|
274
|
-
|
275
|
-
if (func(_row2, rowIndex)) {
|
276
|
-
return _row2;
|
277
|
-
}
|
278
|
-
}
|
279
|
-
|
280
|
-
return undefined;
|
281
|
-
}
|
282
|
-
}, {
|
283
|
-
key: "reduce",
|
284
|
-
value: function reduce(func, initialValue, sharedRow) {
|
285
|
-
var tSharedRow = _dataRow.DataRow.createSharedRow(sharedRow);
|
286
|
-
|
287
|
-
for (var rowIndex = 0; rowIndex < this._numRows; ++rowIndex) {
|
288
|
-
var _row3 = this.row(rowIndex, tSharedRow);
|
289
|
-
|
290
|
-
initialValue = func(initialValue, _row3, rowIndex);
|
291
|
-
}
|
292
|
-
|
293
|
-
return initialValue;
|
294
|
-
}
|
295
|
-
}]);
|
296
|
-
return ArrowDataContainer;
|
297
|
-
}();
|
298
|
-
/**
|
299
|
-
* Convert arrow data type to kepler.gl field types
|
300
|
-
*
|
301
|
-
* @param arrowType the arrow data type
|
302
|
-
* @returns corresponding type in `ALL_FIELD_TYPES`
|
303
|
-
*/
|
304
|
-
|
305
|
-
|
306
|
-
exports.ArrowDataContainer = ArrowDataContainer;
|
307
|
-
|
308
|
-
function arrowDataTypeToFieldType(arrowType) {
|
309
|
-
// Note: this function doesn't return ALL_FIELD_TYPES.geojson or ALL_FIELD_TYPES.array, which
|
310
|
-
// should be further detected by caller
|
311
|
-
if (arrow.DataType.isDate(arrowType)) {
|
312
|
-
return _constants.ALL_FIELD_TYPES.date;
|
313
|
-
} else if (arrow.DataType.isTimestamp(arrowType) || arrow.DataType.isTime(arrowType)) {
|
314
|
-
return _constants.ALL_FIELD_TYPES.timestamp;
|
315
|
-
} else if (arrow.DataType.isFloat(arrowType)) {
|
316
|
-
return _constants.ALL_FIELD_TYPES.real;
|
317
|
-
} else if (arrow.DataType.isInt(arrowType)) {
|
318
|
-
return _constants.ALL_FIELD_TYPES.integer;
|
319
|
-
} else if (arrow.DataType.isBool(arrowType)) {
|
320
|
-
return _constants.ALL_FIELD_TYPES["boolean"];
|
321
|
-
} else if (arrow.DataType.isUtf8(arrowType) || arrow.DataType.isNull(arrowType)) {
|
322
|
-
return _constants.ALL_FIELD_TYPES.string;
|
323
|
-
} else if (arrow.DataType.isBinary(arrowType) || arrow.DataType.isDictionary(arrowType) || arrow.DataType.isFixedSizeBinary(arrowType) || arrow.DataType.isFixedSizeList(arrowType) || arrow.DataType.isList(arrowType) || arrow.DataType.isMap(arrowType) || arrow.DataType.isStruct(arrowType)) {
|
324
|
-
return _constants.ALL_FIELD_TYPES.object;
|
325
|
-
} else {
|
326
|
-
_window.console.warn("Unsupported arrow type: ".concat(arrowType));
|
327
|
-
|
328
|
-
return _constants.ALL_FIELD_TYPES.string;
|
329
|
-
}
|
330
|
-
}
|
331
|
-
/**
|
332
|
-
* Convert arrow data type to analyzer type
|
333
|
-
*
|
334
|
-
* @param arrowType the arrow data type
|
335
|
-
* @returns corresponding type in `AnalyzerDATA_TYPES`
|
336
|
-
*/
|
337
|
-
|
338
|
-
|
339
|
-
function arrowDataTypeToAnalyzerDataType(arrowType) {
|
340
|
-
if (arrow.DataType.isDate(arrowType)) {
|
341
|
-
return _typeAnalyzer.DATA_TYPES.DATE;
|
342
|
-
} else if (arrow.DataType.isTimestamp(arrowType) || arrow.DataType.isTime(arrowType)) {
|
343
|
-
return _typeAnalyzer.DATA_TYPES.DATETIME;
|
344
|
-
} else if (arrow.DataType.isFloat(arrowType)) {
|
345
|
-
return _typeAnalyzer.DATA_TYPES.FLOAT;
|
346
|
-
} else if (arrow.DataType.isInt(arrowType)) {
|
347
|
-
return _typeAnalyzer.DATA_TYPES.INT;
|
348
|
-
} else if (arrow.DataType.isBool(arrowType)) {
|
349
|
-
return _typeAnalyzer.DATA_TYPES.BOOLEAN;
|
350
|
-
} else if (arrow.DataType.isUtf8(arrowType) || arrow.DataType.isNull(arrowType)) {
|
351
|
-
return _typeAnalyzer.DATA_TYPES.STRING;
|
352
|
-
} else if (arrow.DataType.isBinary(arrowType) || arrow.DataType.isDictionary(arrowType) || arrow.DataType.isFixedSizeBinary(arrowType) || arrow.DataType.isFixedSizeList(arrowType) || arrow.DataType.isList(arrowType) || arrow.DataType.isMap(arrowType) || arrow.DataType.isStruct(arrowType)) {
|
353
|
-
return _typeAnalyzer.DATA_TYPES.OBJECT;
|
354
|
-
} else {
|
355
|
-
_window.console.warn("Unsupported arrow type: ".concat(arrowType));
|
356
|
-
|
357
|
-
return _typeAnalyzer.DATA_TYPES.STRING;
|
358
|
-
}
|
359
|
-
}
|
360
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9hcnJvdy1kYXRhLWNvbnRhaW5lci50cyJdLCJuYW1lcyI6WyJyb3dzSXRlcmF0b3IiLCJjb2x1bW5JdGVyYXRvciIsImRhdGFDb250YWluZXIiLCJzaGFyZWRSb3ciLCJudW1Sb3dzIiwicm93SW5kZXgiLCJyb3ciLCJjb2x1bW5JbmRleCIsInZhbHVlQXQiLCJBcnJvd0RhdGFDb250YWluZXIiLCJkYXRhIiwiY29scyIsIkVycm9yIiwiQXJyYXkiLCJpc0FycmF5IiwiX2NvbHMiLCJfbnVtQ29sdW1ucyIsImxlbmd0aCIsIl9udW1Sb3dzIiwiX2ZpZWxkcyIsImZpZWxkcyIsIl9udW1DaHVua3MiLCJ1cGRhdGVEYXRhIiwiZ2V0IiwidFNoYXJlZFJvdyIsIkRhdGFSb3ciLCJjcmVhdGVTaGFyZWRSb3ciLCJzZXRTb3VyY2UiLCJtYXAiLCJjb2wiLCJpIiwicHVzaCIsInJvd0FzQXJyYXkiLCJrZXlzIiwiZnVuYyIsIm9wdGlvbnMiLCJzdGFydCIsImVuZCIsImVuZFJvdyIsIk1hdGgiLCJtaW4iLCJvdXQiLCJpbmRleCIsInVuZGVmaW5lZCIsImluaXRpYWxWYWx1ZSIsImFycm93RGF0YVR5cGVUb0ZpZWxkVHlwZSIsImFycm93VHlwZSIsImFycm93IiwiRGF0YVR5cGUiLCJpc0RhdGUiLCJBTExfRklFTERfVFlQRVMiLCJkYXRlIiwiaXNUaW1lc3RhbXAiLCJpc1RpbWUiLCJ0aW1lc3RhbXAiLCJpc0Zsb2F0IiwicmVhbCIsImlzSW50IiwiaW50ZWdlciIsImlzQm9vbCIsImlzVXRmOCIsImlzTnVsbCIsInN0cmluZyIsImlzQmluYXJ5IiwiaXNEaWN0aW9uYXJ5IiwiaXNGaXhlZFNpemVCaW5hcnkiLCJpc0ZpeGVkU2l6ZUxpc3QiLCJpc0xpc3QiLCJpc01hcCIsImlzU3RydWN0Iiwib2JqZWN0IiwiZ2xvYmFsQ29uc29sZSIsIndhcm4iLCJhcnJvd0RhdGFUeXBlVG9BbmFseXplckRhdGFUeXBlIiwiQW5hbHl6ZXJEQVRBX1RZUEVTIiwi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QkFBbUJNLE1BQTFCO0FBQ0Q7QUFDRiIsInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCAqIGFzIGFycm93IGZyb20gJ2FwYWNoZS1hcnJvdyc7XG5pbXBvcnQge2NvbnNvbGUgYXMgZ2xvYmFsQ29uc29sZX0gZnJvbSAnZ2xvYmFsL3dpbmRvdyc7XG5pbXBvcnQge0RBVEFfVFlQRVMgYXMgQW5hbHl6ZXJEQVRBX1RZUEVTfSBmcm9tICd0eXBlLWFuYWx5emVyJztcbmltcG9ydCB7RmllbGR9IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuaW1wb3J0IHtBTExfRklFTERfVFlQRVN9IGZyb20gJ0BrZXBsZXIuZ2wvY29uc3RhbnRzJztcblxuaW1wb3J0IHtEYXRhUm93LCBTaGFyZWRSb3dPcHRpb25zfSBmcm9tICcuL2RhdGEtcm93JztcbmltcG9ydCB7RGF0YUNvbnRhaW5lckludGVyZmFjZSwgUmFuZ2VPcHRpb25zfSBmcm9tICcuL2RhdGEtY29udGFpbmVyLWludGVyZmFjZSc7XG5cbnR5cGUgQXJyb3dEYXRhQ29udGFpbmVySW5wdXQgPSB7XG4gIGNvbHM6IGFycm93LlZlY3RvcltdO1xuICBmaWVsZHM/OiBGaWVsZFtdO1xufTtcblxuLyoqXG4gKiBAcGFyYW0gZGF0YUNvbnRhaW5lclxuICogQHBhcmFtIHNoYXJlZFJvd1xuICovXG5mdW5jdGlvbiogcm93c0l0ZXJhdG9yKGRhdGFDb250YWluZXI6IERhdGFDb250YWluZXJJbnRlcmZhY2UsIHNoYXJlZFJvdzogU2hhcmVkUm93T3B0aW9ucykge1xuICBjb25zdCBudW1Sb3dzID0gZGF0YUNvbnRhaW5lci5udW1Sb3dzKCk7XG4gIGZvciAobGV0IHJvd0luZGV4ID0gMDsgcm93SW5kZXggPCBudW1Sb3dzOyArK3Jvd0luZGV4KSB7XG4gICAgeWllbGQgZGF0YUNvbnRhaW5lci5yb3cocm93SW5kZXgsIHNoYXJlZFJvdyk7XG4gIH1cbn1cblxuLyoqXG4gKiBAcGFyYW0gZGF0YUNvbnRhaW5lclxuICogQHBhcmFtIGNvbHVtbkluZGV4XG4gKi9cbmZ1bmN0aW9uKiBjb2x1bW5JdGVyYXRvcihkYXRhQ29udGFpbmVyOiBEYXRhQ29udGFpbmVySW50ZXJmYWNlLCBjb2x1bW5JbmRleDogbnVtYmVyKSB7XG4gIGNvbnN0IG51bVJvd3MgPSBkYXRhQ29udGFpbmVyLm51bVJvd3MoKTtcbiAgZm9yIChsZXQgcm93SW5kZXggPSAwOyByb3dJbmRleCA8IG51bVJvd3M7ICsrcm93SW5kZXgpIHtcbiAgICB5aWVsZCBkYXRhQ29udGFpbmVyLnZhbHVlQXQocm93SW5kZXgsIGNvbHVtbkluZGV4KTtcbiAgfVxufVxuXG4vKipcbiAqIEEgZGF0YSBjb250YWluZXIgd2hlcmUgYWxsIGRhdGEgaXMgc3RvcmVkIGluIHJhdyBBcnJvdyB0YWJsZVxuICovXG5leHBvcnQgY2xhc3MgQXJyb3dEYXRhQ29udGFpbmVyIGltcGxlbWVudHMgRGF0YUNvbnRhaW5lckludGVyZmFjZSB7XG4gIF9jb2xzOiBhcnJvdy5WZWN0b3JbXTtcbiAgX251bUNvbHVtbnM6IG51bWJlcjtcbiAgX251bVJvd3M6IG51bWJlcjtcbiAgX2ZpZWxkczogRmllbGRbXTtcbiAgX251bUNodW5rczogbnVtYmVyO1xuICAvLyBjYWNoZSBjb2x1bW4gZGF0YSB0byBtYWtlIHZhbHVlQXQoKSBmYXN0ZXJcbiAgLy8gX2NvbERhdGE6IGFueVtdW107XG5cbiAgY29uc3RydWN0b3IoZGF0YTogQXJyb3dEYXRhQ29udGFpbmVySW5wdXQpIHtcbiAgICBpZiAoIWRhdGEuY29scykge1xuICAgICAgdGhyb3cgRXJyb3IoJ0Fycm93RGF0YUNvbnRhaW5lcjogbm8gY29sdW1ucyBwcm92aWRlZCcpO1xuICAgIH1cblxuICAgIGlmICghQXJyYXkuaXNBcnJheShkYXRhLmNvbHMpKSB7XG4gICAgICB0aHJvdyBFcnJvcihcIkFycm93RGF0YUNvbnRhaW5lcjogY29sdW1ucyBvYmplY3QgaXNuJ3QgYW4gYXJyYXlcIik7XG4gICAgfVxuXG4gICAgdGhpcy5fY29scyA9IGRhdGEuY29scztcbiAgICB0aGlzLl9udW1Db2x1bW5zID0gZGF0YS5jb2xzLmxlbmd0aDtcbiAgICB0aGlzLl9udW1Sb3dzID0gZGF0YS5jb2xzWzBdLmxlbmd0aDtcbiAgICB0aGlzLl9maWVsZHMgPSBkYXRhLmZpZWxkcyB8fCBbXTtcbiAgICB0aGlzLl9udW1DaHVua3MgPSBkYXRhLmNvbHNbMF0uZGF0YS5sZW5ndGg7XG4gICAgLy8gdGhpcy5fY29sRGF0YSA9IGRhdGEuY29scy5tYXAoYyA9PiBjLnRvQXJyYXkoKSk7XG4gIH1cblxuICB1cGRhdGUodXBkYXRlRGF0YTogYXJyb3cuVmVjdG9yPGFueT5bXSkge1xuICAgIHRoaXMuX2NvbHMgPSB1cGRhdGVEYXRhO1xuICAgIHRoaXMuX251bUNvbHVtbnMgPSB0aGlzLl9jb2xzLmxlbmd0aDtcbiAgICB0aGlzLl9udW1Sb3dzID0gdGhpcy5fY29sc1swXS5sZW5ndGg7XG4gICAgdGhpcy5fbnVtQ2h1bmtzID0gdGhpcy5fY29sc1swXS5kYXRhLmxlbmd0aDtcbiAgICAvLyBjYWNoZSBjb2x1bW4gZGF0YSB0byBtYWtlIHZhbHVlQXQoKSBmYXN0ZXJcbiAgICAvLyB0aGlzLl9jb2xEYXRhID0gdGhpcy5fY29scy5tYXAoYyA9PiBjLnRvQXJyYXkoKSk7XG4gIH1cblxuICBudW1DaHVua3MoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fbnVtQ2h1bmtzO1xuICB9XG5cbiAgbnVtUm93cygpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9udW1Sb3dzO1xuICB9XG5cbiAgbnVtQ29sdW1ucygpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9udW1Db2x1bW5zO1xuICB9XG5cbiAgdmFsdWVBdChyb3dJbmRleDogbnVtYmVyLCBjb2x1bW5JbmRleDogbnVtYmVyKTogYW55IHtcbiAgICAvLyByZXR1cm4gdGhpcy5fY29sRGF0YVtjb2x1bW5JbmRleF1bcm93SW5kZXhdO1xuICAgIHJldHVybiB0aGlzLl9jb2xzW2NvbHVtbkluZGV4XS5nZXQocm93SW5kZXgpO1xuICB9XG5cbiAgcm93KHJvd0luZGV4OiBudW1iZXIsIHNoYXJlZFJvdz86IFNoYXJlZFJvd09wdGlvbnMpOiBEYXRhUm93IHtcbiAgICBjb25zdCB0U2hhcmVkUm93ID0gRGF0YVJvdy5jcmVhdGVTaGFyZWRSb3coc2hhcmVkUm93KTtcbiAgICBpZiAodFNoYXJlZFJvdykge1xuICAgICAgdFNoYXJlZFJvdy5zZXRTb3VyY2UodGhpcywgcm93SW5kZXgpO1xuICAgICAgcmV0dXJuIHRTaGFyZWRSb3c7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBEYXRhUm93KHRoaXMsIHJvd0luZGV4KTtcbiAgfVxuXG4gIHJvd0FzQXJyYXkocm93SW5kZXg6IG51bWJlcik6IGFueVtdIHtcbiAgICAvLyByZXR1cm4gdGhpcy5fY29sRGF0YS5tYXAoY29sID0+IGNvbFtyb3dJbmRleF0pO1xuICAgIHJldHVybiB0aGlzLl9jb2xzLm1hcChjb2wgPT4gY29sLmdldChyb3dJbmRleCkpO1xuICB9XG5cbiAgcm93cyhzaGFyZWRSb3c6IFNoYXJlZFJvd09wdGlvbnMpIHtcbiAgICBjb25zdCB0U2hhcmVkUm93ID0gRGF0YVJvdy5jcmVhdGVTaGFyZWRSb3coc2hhcmVkUm93KTtcbiAgICByZXR1cm4gcm93c0l0ZXJhdG9yKHRoaXMsIHRTaGFyZWRSb3cpO1xuICB9XG5cbiAgY29sdW1uKGNvbHVtbkluZGV4OiBudW1iZXIpIHtcbiAgICByZXR1cm4gY29sdW1uSXRlcmF0b3IodGhpcywgY29sdW1uSW5kZXgpO1xuICB9XG5cbiAgZ2V0Q29sdW1uKGNvbHVtbkluZGV4OiBudW1iZXIpOiBhcnJvdy5WZWN0b3Ige1xuICAgIHJldHVybiB0aGlzLl9jb2xzW2NvbHVtbkluZGV4XTtcbiAgfVxuXG4gIGdldEZpZWxkKGNvbHVtbkluZGV4OiBudW1iZXIpOiBGaWVsZCB7XG4gICAgcmV0dXJuIHRoaXMuX2ZpZWxkc1tjb2x1bW5JbmRleF07XG4gIH1cblxuICBmbGF0dGVuRGF0YSgpOiBhbnlbXVtdIHtcbiAgICBjb25zdCBkYXRhOiBhbnlbXVtdID0gW107XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLl9udW1Sb3dzOyArK2kpIHtcbiAgICAgIGRhdGEucHVzaCh0aGlzLnJvd0FzQXJyYXkoaSkpO1xuICAgIH1cbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIGdldFBsYWluSW5kZXgoKTogbnVtYmVyW10ge1xuICAgIHJldHVybiBbLi4uQXJyYXkodGhpcy5fbnVtUm93cykua2V5cygpXTtcbiAgfVxuXG4gIG1hcDxUPihcbiAgICBmdW5jOiAocm93OiBEYXRhUm93LCBpbmRleDogbnVtYmVyKSA9PiBULFxuICAgIHNoYXJlZFJvdz86IFNoYXJlZFJvd09wdGlvbnMsXG4gICAgb3B0aW9uczogUmFuZ2VPcHRpb25zID0ge31cbiAgKTogVFtdIHtcbiAgICBjb25zdCB0U2hhcmVkUm93ID0gRGF0YVJvdy5jcmVhdGVTaGFyZWRSb3coc2hhcmVkUm93KTtcblxuICAgIGNvbnN0IHtzdGFydCA9IDAsIGVuZCA9IHRoaXMubnVtUm93cygpfSA9IG9wdGlvbnM7XG4gICAgY29uc3QgZW5kUm93ID0gTWF0aC5taW4odGhpcy5udW1Sb3dzKCksIGVuZCk7XG5cbiAgICBjb25zdCBvdXQ6IFRbXSA9IFtdO1xuICAgIGZvciAobGV0IHJvd0luZGV4ID0gc3RhcnQ7IHJvd0luZGV4IDwgZW5kUm93OyArK3Jvd0luZGV4KSB7XG4gICAgICBjb25zdCByb3cgPSB0aGlzLnJvdyhyb3dJbmRleCwgdFNoYXJlZFJvdyk7XG4gICAgICBvdXQucHVzaChmdW5jKHJvdywgcm93SW5kZXgpKTtcbiAgICB9XG4gICAgcmV0dXJuIG91dDtcbiAgfVxuXG4gIG1hcEluZGV4PFQ+KGZ1bmM6ICh7aW5kZXh9LCBkYzogRGF0YUNvbnRhaW5lckludGVyZmFjZSkgPT4gVCwgb3B0aW9uczogUmFuZ2VPcHRpb25zID0ge30pOiBUW10ge1xuICAgIGNvbnN0IHtzdGFydCA9IDAsIGVuZCA9IHRoaXMubnVtUm93cygpfSA9IG9wdGlvbnM7XG4gICAgY29uc3QgZW5kUm93ID0gTWF0aC5taW4odGhpcy5udW1Sb3dzKCksIGVuZCk7XG5cbiAgICBjb25zdCBvdXQ6IFRbXSA9IFtdO1xuICAgIGZvciAobGV0IHJvd0luZGV4ID0gc3RhcnQ7IHJvd0luZGV4IDwgZW5kUm93OyArK3Jvd0luZGV4KSB7XG4gICAgICBvdXQucHVzaChmdW5jKHtpbmRleDogcm93SW5kZXh9LCB0aGlzKSk7XG4gICAgfVxuICAgIHJldHVybiBvdXQ7XG4gIH1cblxuICBmaW5kKFxuICAgIGZ1bmM6IChyb3c6IERhdGFSb3csIGluZGV4OiBudW1iZXIpID0+IGJvb2xlYW4sXG4gICAgc2hhcmVkUm93PzogU2hhcmVkUm93T3B0aW9uc1xuICApOiBEYXRhUm93IHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCB0U2hhcmVkUm93ID0gRGF0YVJvdy5jcmVhdGVTaGFyZWRSb3coc2hhcmVkUm93KTtcblxuICAgIGZvciAobGV0IHJvd0luZGV4ID0gMDsgcm93SW5kZXggPCB0aGlzLl9udW1Sb3dzOyArK3Jvd0luZGV4KSB7XG4gICAgICBjb25zdCByb3cgPSB0aGlzLnJvdyhyb3dJbmRleCwgdFNoYXJlZFJvdyk7XG4gICAgICBpZiAoZnVuYyhyb3csIHJvd0luZGV4KSkge1xuICAgICAgICByZXR1cm4gcm93O1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgcmVkdWNlPFQ+KFxuICAgIGZ1bmM6IChhY2M6IFQsIHJvdzogRGF0YVJvdywgaW5kZXg6IG51bWJlcikgPT4gVCxcbiAgICBpbml0aWFsVmFsdWU6IFQsXG4gICAgc2hhcmVkUm93PzogU2hhcmVkUm93T3B0aW9uc1xuICApOiBUIHtcbiAgICBjb25zdCB0U2hhcmVkUm93ID0gRGF0YVJvdy5jcmVhdGVTaGFyZWRSb3coc2hhcmVkUm93KTtcblxuICAgIGZvciAobGV0IHJvd0luZGV4ID0gMDsgcm93SW5kZXggPCB0aGlzLl9udW1Sb3dzOyArK3Jvd0luZGV4KSB7XG4gICAgICBjb25zdCByb3cgPSB0aGlzLnJvdyhyb3dJbmRleCwgdFNoYXJlZFJvdyk7XG4gICAgICBpbml0aWFsVmFsdWUgPSBmdW5jKGluaXRpYWxWYWx1ZSwgcm93LCByb3dJbmRleCk7XG4gICAgfVxuICAgIHJldHVybiBpbml0aWFsVmFsdWU7XG4gIH1cbn1cblxuLyoqXG4gKiBDb252ZXJ0IGFycm93IGRhdGEgdHlwZSB0byBrZXBsZXIuZ2wgZmllbGQgdHlwZXNcbiAqXG4gKiBAcGFyYW0gYXJyb3dUeXBlIHRoZSBhcnJvdyBkYXRhIHR5cGVcbiAqIEByZXR1cm5zIGNvcnJlc3BvbmRpbmcgdHlwZSBpbiBgQUxMX0ZJRUxEX1RZUEVTYFxuICovXG5leHBvcnQgZnVuY3Rpb24gYXJyb3dEYXRhVHlwZVRvRmllbGRUeXBlKGFycm93VHlwZTogYXJyb3cuRGF0YVR5cGUpOiBzdHJpbmcge1xuICAvLyBOb3RlOiB0aGlzIGZ1bmN0aW9uIGRvZXNuJ3QgcmV0dXJuIEFMTF9GSUVMRF9UWVBFUy5nZW9qc29uIG9yIEFMTF9GSUVMRF9UWVBFUy5hcnJheSwgd2hpY2hcbiAgLy8gc2hvdWxkIGJlIGZ1cnRoZXIgZGV0ZWN0ZWQgYnkgY2FsbGVyXG4gIGlmIChhcnJvdy5EYXRhVHlwZS5pc0RhdGUoYXJyb3dUeXBlKSkge1xuICAgIHJldHVybiBBTExfRklFTERfVFlQRVMuZGF0ZTtcbiAgfSBlbHNlIGlmIChhcnJvdy5EYXRhVHlwZS5pc1RpbWVzdGFtcChhcnJvd1R5cGUpIHx8IGFycm93LkRhdGFUeXBlLmlzVGltZShhcnJvd1R5cGUpKSB7XG4gICAgcmV0dXJuIEFMTF9GSUVMRF9UWVBFUy50aW1lc3RhbXA7XG4gIH0gZWxzZSBpZiAoYXJyb3cuRGF0YVR5cGUuaXNGbG9hdChhcnJvd1R5cGUpKSB7XG4gICAgcmV0dXJuIEFMTF9GSUVMRF9UWVBFUy5yZWFsO1xuICB9IGVsc2UgaWYgKGFycm93LkRhdGFUeXBlLmlzSW50KGFycm93VHlwZSkpIHtcbiAgICByZXR1cm4gQUxMX0ZJRUxEX1RZUEVTLmludGVnZXI7XG4gIH0gZWxzZSBpZiAoYXJyb3cuRGF0YVR5cGUuaXNCb29sKGFycm93VHlwZSkpIHtcbiAgICByZXR1cm4gQUxMX0ZJRUxEX1RZUEVTLmJvb2xlYW47XG4gIH0gZWxzZSBpZiAoYXJyb3cuRGF0YVR5cGUuaXNVdGY4KGFycm93VHlwZSkgfHwgYXJyb3cuRGF0YVR5cGUuaXNOdWxsKGFycm93VHlwZSkpIHtcbiAgICByZXR1cm4gQUxMX0ZJRUxEX1RZUEVTLnN0cmluZztcbiAgfSBlbHNlIGlmIChcbiAgICBhcnJvdy5EYXRhVHlwZS5pc0JpbmFyeShhcnJvd1R5cGUpIHx8XG4gICAgYXJyb3cuRGF0YVR5cGUuaXNEaWN0aW9uYXJ5KGFycm93VHlwZSkgfHxcbiAgICBhcnJvdy5EYXRhVHlwZS5pc0ZpeGVkU2l6ZUJpbmFyeShhcnJvd1R5cGUpIHx8XG4gICAgYXJyb3cuRGF0YVR5cGUuaXNGaXhlZFNpemVMaXN0KGFycm93VHlwZSkgfHxcbiAgICBhcnJvdy5EYXRhVHlwZS5pc0xpc3QoYXJyb3dUeXBlKSB8fFxuICAgIGFycm93LkRhdGFUeXBlLmlzTWFwKGFycm93VHlwZSkgfHxcbiAgICBhcnJvdy5EYXRhVHlwZS5pc1N0cnVjdChhcnJvd1R5cGUpXG4gICkge1xuICAgIHJldHVybiBBTExfRklFTERfVFlQRVMub2JqZWN0O1xuICB9IGVsc2Uge1xuICAgIGdsb2JhbENvbnNvbGUud2FybihgVW5zdXBwb3J0ZWQgYXJyb3cgdHlwZTogJHthcnJvd1R5cGV9YCk7XG4gICAgcmV0dXJuIEFMTF9GSUVMRF9UWVBFUy5zdHJpbmc7XG4gIH1cbn1cblxuLyoqXG4gKiBDb252ZXJ0IGFycm93IGRhdGEgdHlwZSB0byBhbmFseXplciB0eXBlXG4gKlxuICogQHBhcmFtIGFycm93VHlwZSB0aGUgYXJyb3cgZGF0YSB0eXBlXG4gKiBAcmV0dXJucyBjb3JyZXNwb25kaW5nIHR5cGUgaW4gYEFuYWx5emVyREFUQV9UWVBFU2BcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFycm93RGF0YVR5cGVUb0FuYWx5emVyRGF0YVR5cGUoXG4gIGFycm93VHlwZTogYXJyb3cuRGF0YVR5cGVcbik6IHR5cGVvZiBBbmFseXplckRBVEFfVFlQRVMge1xuICBpZiAoYXJyb3cuRGF0YVR5cGUuaXNEYXRlKGFycm93VHlwZSkpIHtcbiAgICByZXR1cm4gQW5hbHl6ZXJEQVRBX1RZUEVTLkRBVEU7XG4gIH0gZWxzZSBpZiAoYXJyb3cuRGF0YVR5cGUuaXNUaW1lc3RhbXAoYXJyb3dUeXBlKSB8fCBhcnJvdy5EYXRhVHlwZS5pc1RpbWUoYXJyb3dUeXBlKSkge1xuICAgIHJldHVybiBBbmFseXplckRBVEFfVFlQRVMuREFURVRJTUU7XG4gIH0gZWxzZSBpZiAoYXJyb3cuRGF0YVR5cGUuaXNGbG9hdChhcnJvd1R5cGUpKSB7XG4gICAgcmV0dXJuIEFuYWx5emVyREFUQV9UWVBFUy5GTE9BVDtcbiAgfSBlbHNlIGlmIChhcnJvdy5EYXRhVHlwZS5pc0ludChhcnJvd1R5cGUpKSB7XG4gICAgcmV0dXJuIEFuYWx5emVyREFUQV9UWVBFUy5JTlQ7XG4gIH0gZWxzZSBpZiAoYXJyb3cuRGF0YVR5cGUuaXNCb29sKGFycm93VHlwZSkpIHtcbiAgICByZXR1cm4gQW5hbHl6ZXJEQVRBX1RZUEVTLkJPT0xFQU47XG4gIH0gZWxzZSBpZiAoYXJyb3cuRGF0YVR5cGUuaXNVdGY4KGFycm93VHlwZSkgfHwgYXJyb3cuRGF0YVR5cGUuaXNOdWxsKGFycm93VHlwZSkpIHtcbiAgICByZXR1cm4gQW5hbHl6ZXJEQVRBX1RZUEVTLlNUUklORztcbiAgfSBlbHNlIGlmIChcbiAgICBhcnJvdy5EYXRhVHlwZS5pc0JpbmFyeShhcnJvd1R5cGUpIHx8XG4gICAgYXJyb3cuRGF0YVR5cGUuaXNEaWN0aW9uYXJ5KGFycm93VHlwZSkgfHxcbiAgICBhcnJvdy5EYXRhVHlwZS5pc0ZpeGVkU2l6ZUJpbmFyeShhcnJvd1R5cGUpIHx8XG4gICAgYXJyb3cuRGF0YVR5cGUuaXNGaXhlZFNpemVMaXN0KGFycm93VHlwZSkgfHxcbiAgICBhcnJvdy5EYXRhVHlwZS5pc0xpc3QoYXJyb3dUeXBlKSB8fFxuICAgIGFycm93LkRhdGFUeXBlLmlzTWFwKGFycm93VHlwZSkgfHxcbiAgICBhcnJvdy5EYXRhVHlwZS5pc1N0cnVjdChhcnJvd1R5cGUpXG4gICkge1xuICAgIHJldHVybiBBbmFseXplckRBVEFfVFlQRVMuT0JKRUNUO1xuICB9IGVsc2Uge1xuICAgIGdsb2JhbENvbnNvbGUud2FybihgVW5zdXBwb3J0ZWQgYXJyb3cgdHlwZTogJHthcnJvd1R5cGV9YCk7XG4gICAgcmV0dXJuIEFuYWx5emVyREFUQV9UWVBFUy5TVFJJTkc7XG4gIH1cbn1cbiJdfQ==
|
package/dist/color-utils.d.ts
DELETED
@@ -1,51 +0,0 @@
|
|
1
|
-
import { ColorRange } from '@kepler.gl/constants';
|
2
|
-
import { HexColor, RGBColor } from '@kepler.gl/types';
|
3
|
-
/**
|
4
|
-
* get r g b from hex code
|
5
|
-
*
|
6
|
-
* @param hex
|
7
|
-
* @returns array of r g bs
|
8
|
-
*/
|
9
|
-
export declare function hexToRgb(hex: string): RGBColor;
|
10
|
-
export declare function isHexColor(hex: string): RegExpExecArray | null;
|
11
|
-
/**
|
12
|
-
* get hex from r g b
|
13
|
-
*
|
14
|
-
* @param rgb
|
15
|
-
* @returns hex string
|
16
|
-
*/
|
17
|
-
export declare function rgbToHex([r, g, b]: RGBColor): HexColor;
|
18
|
-
/**
|
19
|
-
* Get color group name by parsing name, discard step in the name
|
20
|
-
* e.g. Global Warming 6 -> Global Warming
|
21
|
-
*
|
22
|
-
* @param {Object} colorRange
|
23
|
-
* @return {string | null}
|
24
|
-
*/
|
25
|
-
export declare function getColorGroupByName(colorRange: ColorRange): string | null;
|
26
|
-
/**
|
27
|
-
* Get a reversed colorRange
|
28
|
-
* @param reversed
|
29
|
-
* @param colorRange
|
30
|
-
*/
|
31
|
-
export declare function reverseColorRange(reversed: boolean, colorRange: ColorRange): ColorRange | null;
|
32
|
-
/**
|
33
|
-
* given a list of rgb arrays it will generate a linear gradient css rule
|
34
|
-
* @param direction
|
35
|
-
* @param colors
|
36
|
-
* @return
|
37
|
-
*/
|
38
|
-
export declare function createLinearGradient(direction: string, colors: RGBColor[]): string;
|
39
|
-
/**
|
40
|
-
* Convert color to RGB
|
41
|
-
*/
|
42
|
-
export declare function colorMaybeToRGB(color: unknown): RGBColor | null;
|
43
|
-
/**
|
44
|
-
* Whether color is rgb
|
45
|
-
* @returns
|
46
|
-
*/
|
47
|
-
export declare function isRgbColor(color: unknown): boolean;
|
48
|
-
/**
|
49
|
-
* Take color values in 0-255 range and map to [0, 1]
|
50
|
-
*/
|
51
|
-
export declare function normalizeColor(color: number[]): number[];
|