@kepler.gl/utils 3.0.0-alpha.1 → 3.0.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/aggregate-utils.js +1 -21
- package/dist/arrow-data-container.d.ts +54 -0
- package/dist/arrow-data-container.js +360 -0
- package/dist/color-utils.d.ts +4 -0
- package/dist/color-utils.js +12 -21
- package/dist/data-container-interface.d.ts +18 -0
- package/dist/data-container-interface.js +0 -20
- package/dist/data-container-utils.d.ts +1 -0
- package/dist/data-container-utils.js +10 -22
- package/dist/data-row.js +7 -22
- package/dist/data-scale-utils.js +7 -22
- package/dist/data-utils.js +3 -21
- package/dist/dataset-utils.d.ts +2 -2
- package/dist/dataset-utils.js +15 -28
- package/dist/dom-to-image.js +7 -22
- package/dist/dom-utils.js +6 -22
- package/dist/effect-utils.d.ts +12 -2
- package/dist/effect-utils.js +122 -55
- package/dist/export-map-html.js +7 -23
- package/dist/export-utils.js +1 -21
- package/dist/filter-utils.js +6 -21
- package/dist/format.js +6 -22
- package/dist/gl-utils.js +1 -21
- package/dist/h3-utils.js +6 -22
- package/dist/index.d.ts +4 -3
- package/dist/index.js +43 -26
- package/dist/indexed-data-container.js +1 -21
- package/dist/locale-utils.js +1 -21
- package/dist/map-info-utils.js +6 -22
- package/dist/map-style-utils/mapbox-gl-style-editor.js +1 -21
- package/dist/map-style-utils/mapbox-utils.js +7 -22
- package/dist/map-utils.js +1 -21
- package/dist/mapbox-utils.js +7 -22
- package/dist/noop.js +3 -21
- package/dist/notifications-utils.js +1 -21
- package/dist/observe-dimensions.d.ts +1 -1
- package/dist/observe-dimensions.js +5 -25
- package/dist/plot.js +7 -22
- package/dist/projection-utils.js +6 -22
- package/dist/row-data-container.js +1 -21
- package/dist/searcher-utils.js +7 -22
- package/dist/split-map-utils.js +1 -21
- package/dist/time.js +6 -22
- package/dist/utils.d.ts +6 -0
- package/dist/utils.js +28 -22
- package/package.json +10 -9
package/dist/aggregate-utils.js
CHANGED
@@ -1,23 +1,3 @@
|
|
1
|
-
// Copyright (c) 2023 Uber Technologies, Inc.
|
2
|
-
//
|
3
|
-
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
4
|
-
// of this software and associated documentation files (the "Software"), to deal
|
5
|
-
// in the Software without restriction, including without limitation the rights
|
6
|
-
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
7
|
-
// copies of the Software, and to permit persons to whom the Software is
|
8
|
-
// furnished to do so, subject to the following conditions:
|
9
|
-
//
|
10
|
-
// The above copyright notice and this permission notice shall be included in
|
11
|
-
// all copies or substantial portions of the Software.
|
12
|
-
//
|
13
|
-
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
14
|
-
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
15
|
-
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
16
|
-
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
17
|
-
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
18
|
-
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
19
|
-
// THE SOFTWARE.
|
20
|
-
|
21
1
|
"use strict";
|
22
2
|
|
23
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
@@ -92,4 +72,4 @@ function aggregate(data, technique) {
|
|
92
72
|
return data.length;
|
93
73
|
}
|
94
74
|
}
|
95
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
75
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9hZ2dyZWdhdGUtdXRpbHMudHMiXSwibmFtZXMiOlsiZ2V0RnJlcXVlbmN5IiwiZGF0YSIsInJlZHVjZSIsInVuaXF1ZXMiLCJ2YWwiLCJnZXRNb2RlIiwib2NjdXIiLCJPYmplY3QiLCJrZXlzIiwicHJldiIsImtleSIsImFnZ3JlZ2F0ZSIsInRlY2huaXF1ZSIsIkFHR1JFR0FUSU9OX1RZUEVTIiwiYXZlcmFnZSIsImNvdW50VW5pcXVlIiwibGVuZ3RoIiwibW9kZSIsIm1heGltdW0iLCJtaW5pbXVtIiwibWVkaWFuIiwic3RkZXYiLCJzdW0iLCJ2YXJpYW5jZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBR0E7O0FBQ0E7Ozs7OztBQUVPLElBQU1BLFlBQVksR0FBRyxTQUFmQSxZQUFlLENBQUFDLElBQUk7QUFBQSxTQUM5QkEsSUFBSSxDQUFDQyxNQUFMLENBQ0UsVUFBQ0MsT0FBRCxFQUFVQyxHQUFWO0FBQUEsMkNBQ0tELE9BREwsNENBRUdDLEdBRkgsRUFFUyxDQUFDRCxPQUFPLENBQUNDLEdBQUQsQ0FBUCxJQUFnQixDQUFqQixJQUFzQixDQUYvQjtBQUFBLEdBREYsRUFLRSxFQUxGLENBRDhCO0FBQUEsQ0FBekI7Ozs7QUFTQSxJQUFNQyxPQUFPLEdBQUcsU0FBVkEsT0FBVSxDQUFBSixJQUFJLEVBQUk7QUFDN0IsTUFBTUssS0FBSyxHQUFHTixZQUFZLENBQUNDLElBQUQsQ0FBMUI7QUFDQSxTQUFPTSxNQUFNLENBQUNDLElBQVAsQ0FBWUYsS0FBWixFQUFtQkosTUFBbkIsQ0FDTCxVQUFDTyxJQUFELEVBQU9DLEdBQVA7QUFBQSxXQUFnQkosS0FBSyxDQUFDRyxJQUFELENBQUwsSUFBZUgsS0FBSyxDQUFDSSxHQUFELENBQXBCLEdBQTRCRCxJQUE1QixHQUFtQ0MsR0FBbkQ7QUFBQSxHQURLLEVBRUxILE1BQU0sQ0FBQ0MsSUFBUCxDQUFZRixLQUFaLEVBQW1CLENBQW5CLENBRkssQ0FBUDtBQUlELENBTk07Ozs7QUFRQSxTQUFTSyxTQUFULENBQW1CVixJQUFuQixFQUF5QlcsU0FBekIsRUFBb0M7QUFDekMsVUFBUUEsU0FBUjtBQUNFLFNBQUtDLDZCQUFrQkMsT0FBdkI7QUFDRSxhQUFPLG1CQUFLYixJQUFMLENBQVA7O0FBQ0YsU0FBS1ksNkJBQWtCRSxXQUF2QjtBQUNFLGFBQU9SLE1BQU0sQ0FBQ0MsSUFBUCxDQUNMUCxJQUFJLENBQUNDLE1BQUwsQ0FBWSxVQUFDQyxPQUFELEVBQVVDLEdBQVYsRUFBa0I7QUFDNUJELFFBQUFBLE9BQU8sQ0FBQ0MsR0FBRCxDQUFQLEdBQWVELE9BQU8sQ0FBQ0MsR0FBRCxDQUFQLElBQWdCLENBQS9CO0FBQ0FELFFBQUFBLE9BQU8sQ0FBQ0MsR0FBRCxDQUFQLElBQWdCLENBQWhCO0FBQ0EsZUFBT0QsT0FBUDtBQUNELE9BSkQsRUFJRyxFQUpILENBREssRUFNTGEsTUFORjs7QUFPRixTQUFLSCw2QkFBa0JJLElBQXZCO0FBQ0UsYUFBT1osT0FBTyxDQUFDSixJQUFELENBQWQ7O0FBRUYsU0FBS1ksNkJBQWtCSyxPQUF2QjtBQUNFLGFBQU8sa0JBQUlqQixJQUFKLENBQVA7O0FBQ0YsU0FBS1ksNkJBQWtCTSxPQUF2QjtBQUNFLGFBQU8sa0JBQUlsQixJQUFKLENBQVA7O0FBQ0YsU0FBS1ksNkJBQWtCTyxNQUF2QjtBQUNFLGFBQU8scUJBQU9uQixJQUFQLENBQVA7O0FBQ0YsU0FBS1ksNkJBQWtCUSxLQUF2QjtBQUNFLGFBQU8sd0JBQVVwQixJQUFWLENBQVA7O0FBQ0YsU0FBS1ksNkJBQWtCUyxHQUF2QjtBQUNFLGFBQU8sa0JBQUlyQixJQUFKLENBQVA7O0FBQ0YsU0FBS1ksNkJBQWtCVSxRQUF2QjtBQUNFLGFBQU8sdUJBQVN0QixJQUFULENBQVA7O0FBQ0Y7QUFDRSxhQUFPQSxJQUFJLENBQUNlLE1BQVo7QUEzQko7QUE2QkQiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQge2RldmlhdGlvbiwgbWluLCBtYXgsIG1lYW4sIG1lZGlhbiwgc3VtLCB2YXJpYW5jZX0gZnJvbSAnZDMtYXJyYXknO1xuaW1wb3J0IHtBR0dSRUdBVElPTl9UWVBFU30gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuXG5leHBvcnQgY29uc3QgZ2V0RnJlcXVlbmN5ID0gZGF0YSA9PlxuICBkYXRhLnJlZHVjZShcbiAgICAodW5pcXVlcywgdmFsKSA9PiAoe1xuICAgICAgLi4udW5pcXVlcyxcbiAgICAgIFt2YWxdOiAodW5pcXVlc1t2YWxdIHx8IDApICsgMVxuICAgIH0pLFxuICAgIHt9XG4gICk7XG5cbmV4cG9ydCBjb25zdCBnZXRNb2RlID0gZGF0YSA9PiB7XG4gIGNvbnN0IG9jY3VyID0gZ2V0RnJlcXVlbmN5KGRhdGEpO1xuICByZXR1cm4gT2JqZWN0LmtleXMob2NjdXIpLnJlZHVjZShcbiAgICAocHJldiwga2V5KSA9PiAob2NjdXJbcHJldl0gPj0gb2NjdXJba2V5XSA/IHByZXYgOiBrZXkpLFxuICAgIE9iamVjdC5rZXlzKG9jY3VyKVswXVxuICApO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGFnZ3JlZ2F0ZShkYXRhLCB0ZWNobmlxdWUpIHtcbiAgc3dpdGNoICh0ZWNobmlxdWUpIHtcbiAgICBjYXNlIEFHR1JFR0FUSU9OX1RZUEVTLmF2ZXJhZ2U6XG4gICAgICByZXR1cm4gbWVhbihkYXRhKTtcbiAgICBjYXNlIEFHR1JFR0FUSU9OX1RZUEVTLmNvdW50VW5pcXVlOlxuICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKFxuICAgICAgICBkYXRhLnJlZHVjZSgodW5pcXVlcywgdmFsKSA9PiB7XG4gICAgICAgICAgdW5pcXVlc1t2YWxdID0gdW5pcXVlc1t2YWxdIHx8IDA7XG4gICAgICAgICAgdW5pcXVlc1t2YWxdICs9IDE7XG4gICAgICAgICAgcmV0dXJuIHVuaXF1ZXM7XG4gICAgICAgIH0sIHt9KVxuICAgICAgKS5sZW5ndGg7XG4gICAgY2FzZSBBR0dSRUdBVElPTl9UWVBFUy5tb2RlOlxuICAgICAgcmV0dXJuIGdldE1vZGUoZGF0YSk7XG5cbiAgICBjYXNlIEFHR1JFR0FUSU9OX1RZUEVTLm1heGltdW06XG4gICAgICByZXR1cm4gbWF4KGRhdGEpO1xuICAgIGNhc2UgQUdHUkVHQVRJT05fVFlQRVMubWluaW11bTpcbiAgICAgIHJldHVybiBtaW4oZGF0YSk7XG4gICAgY2FzZSBBR0dSRUdBVElPTl9UWVBFUy5tZWRpYW46XG4gICAgICByZXR1cm4gbWVkaWFuKGRhdGEpO1xuICAgIGNhc2UgQUdHUkVHQVRJT05fVFlQRVMuc3RkZXY6XG4gICAgICByZXR1cm4gZGV2aWF0aW9uKGRhdGEpO1xuICAgIGNhc2UgQUdHUkVHQVRJT05fVFlQRVMuc3VtOlxuICAgICAgcmV0dXJuIHN1bShkYXRhKTtcbiAgICBjYXNlIEFHR1JFR0FUSU9OX1RZUEVTLnZhcmlhbmNlOlxuICAgICAgcmV0dXJuIHZhcmlhbmNlKGRhdGEpO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gZGF0YS5sZW5ndGg7XG4gIH1cbn1cbiJdfQ==
|
@@ -0,0 +1,54 @@
|
|
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 {};
|
@@ -0,0 +1,360 @@
|
|
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
CHANGED
@@ -45,3 +45,7 @@ export declare function colorMaybeToRGB(color: unknown): RGBColor | null;
|
|
45
45
|
* @returns
|
46
46
|
*/
|
47
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[];
|
package/dist/color-utils.js
CHANGED
@@ -1,23 +1,3 @@
|
|
1
|
-
// Copyright (c) 2023 Uber Technologies, Inc.
|
2
|
-
//
|
3
|
-
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
4
|
-
// of this software and associated documentation files (the "Software"), to deal
|
5
|
-
// in the Software without restriction, including without limitation the rights
|
6
|
-
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
7
|
-
// copies of the Software, and to permit persons to whom the Software is
|
8
|
-
// furnished to do so, subject to the following conditions:
|
9
|
-
//
|
10
|
-
// The above copyright notice and this permission notice shall be included in
|
11
|
-
// all copies or substantial portions of the Software.
|
12
|
-
//
|
13
|
-
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
14
|
-
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
15
|
-
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
16
|
-
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
17
|
-
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
18
|
-
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
19
|
-
// THE SOFTWARE.
|
20
|
-
|
21
1
|
"use strict";
|
22
2
|
|
23
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
@@ -33,6 +13,7 @@ exports.reverseColorRange = reverseColorRange;
|
|
33
13
|
exports.createLinearGradient = createLinearGradient;
|
34
14
|
exports.colorMaybeToRGB = colorMaybeToRGB;
|
35
15
|
exports.isRgbColor = isRgbColor;
|
16
|
+
exports.normalizeColor = normalizeColor;
|
36
17
|
|
37
18
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
38
19
|
|
@@ -167,4 +148,14 @@ function isRgbColor(color) {
|
|
167
148
|
return Number.isFinite(n) && n <= 255 && n >= 0;
|
168
149
|
}));
|
169
150
|
}
|
170
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb2xvci11dGlscy50cyJdLCJuYW1lcyI6WyJoZXhUb1JnYiIsImhleCIsInJlc3VsdCIsImlzSGV4Q29sb3IiLCJyIiwicGFyc2VJbnQiLCJnIiwiYiIsImV4ZWMiLCJQYWROdW0iLCJjIiwidG9TdHJpbmciLCJsZW5ndGgiLCJyZ2JUb0hleCIsIm1hcCIsIm4iLCJqb2luIiwidG9VcHBlckNhc2UiLCJnZXRDb2xvckdyb3VwQnlOYW1lIiwiY29sb3JSYW5nZSIsIm5hbWUiLCJyZXBsYWNlIiwicmV2ZXJzZUNvbG9yUmFuZ2UiLCJyZXZlcnNlZCIsImNvbG9ycyIsInNsaWNlIiwicmV2ZXJzZSIsImNyZWF0ZUxpbmVhckdyYWRpZW50IiwiZGlyZWN0aW9uIiwic3RlcCIsInBhcnNlRmxvYXQiLCJ0b0ZpeGVkIiwiYmFuZHMiLCJyZ2IiLCJpbmRleCIsImNvbG9yTWF5YmVUb1JHQiIsImNvbG9yIiwiaXNSZ2JDb2xvciIsInJnYk9iaiIsIk51bWJlciIsImlzRmluaXRlIiwiQm9vbGVhbiIsIkFycmF5IiwiaXNBcnJheSIsImV2ZXJ5Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQW9CQTs7Ozs7O0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ08sU0FBU0EsUUFBVCxDQUFrQkMsR0FBbEIsRUFBeUM7QUFDOUMsTUFBTUMsTUFBTSxHQUFHQyxVQUFVLENBQUNGLEdBQUQsQ0FBekI7O0FBRUEsTUFBSSxDQUFDQyxNQUFMLEVBQWE7QUFDWCxXQUFPLENBQUMsQ0FBRCxFQUFJLENBQUosRUFBTyxDQUFQLENBQVA7QUFDRDs7QUFFRCxNQUFNRSxDQUFDLEdBQUdDLFFBQVEsQ0FBQ0gsTUFBTSxDQUFDLENBQUQsQ0FBUCxFQUFZLEVBQVosQ0FBbEI7QUFDQSxNQUFNSSxDQUFDLEdBQUdELFFBQVEsQ0FBQ0gsTUFBTSxDQUFDLENBQUQsQ0FBUCxFQUFZLEVBQVosQ0FBbEI7QUFDQSxNQUFNSyxDQUFDLEdBQUdGLFFBQVEs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QUFOLENBQWY7O0FBQ0EsUUFBSUcsTUFBTSxDQUFDQyxRQUFQLENBQWdCRixNQUFoQixhQUFnQkEsTUFBaEIsdUJBQWdCQSxNQUFNLENBQUVsQyxDQUF4QixLQUE4Qm1DLE1BQU0sQ0FBQ0MsUUFBUCxDQUFnQkYsTUFBaEIsYUFBZ0JBLE1BQWhCLHVCQUFnQkEsTUFBTSxDQUFFaEMsQ0FBeEIsQ0FBOUIsSUFBNERpQyxNQUFNLENBQUNDLFFBQVAsQ0FBZ0JGLE1BQWhCLGFBQWdCQSxNQUFoQix1QkFBZ0JBLE1BQU0sQ0FBRS9CLENBQXhCLENBQWhFLEVBQTRGO0FBQzFGLGFBQU8sQ0FBQytCLE1BQU0sQ0FBQ2xDLENBQVIsRUFBV2tDLE1BQU0sQ0FBQ2hDLENBQWxCLEVBQXFCZ0MsTUFBTSxDQUFDL0IsQ0FBNUIsQ0FBUDtBQUNEO0FBQ0Y7O0FBRUQsU0FBTyxJQUFQO0FBQ0Q7QUFFRDtBQUNBO0FBQ0E7QUFDQTs7O0FBQ08sU0FBUzhCLFVBQVQsQ0FBb0JELEtBQXBCLEVBQTZDO0FBQ2xELFNBQU9LLE9BQU8sQ0FDWkwsS0FBSyxJQUNITSxLQUFLLENBQUNDLE9BQU4sQ0FBY1AsS0FBZCxDQURGLElBRUVBLEtBQUssQ0FBQ3hCLE1BQU4sS0FBaUIsQ0FGbkIsSUFHRXdCLEtBQUssQ0FBQ1EsS0FBTixDQUFZLFVBQUE3QixDQUFDO0FBQUEsV0FBSXdCLE1BQU0sQ0FBQ0MsUUFBUCxDQUFnQnpCLENBQWhCLEtBQXNCQSxDQUFDLElBQUksR0FBM0IsSUFBa0NBLENBQUMsSUFBSSxDQUEzQztBQUFBLEdBQWIsQ0FKVSxDQUFkO0FBTUQiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIDIwMjMgVWJlciBUZWNobm9sb2dpZXMsIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuXG5pbXBvcnQge3JnYiBhcyBkM1JnYn0gZnJvbSAnZDMtY29sb3InO1xuaW1wb3J0IHtDb2xvclJhbmdlfSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5pbXBvcnQge0hleENvbG9yLCBSR0JDb2xvcn0gZnJvbSAnQGtlcGxlci5nbC90eXBlcyc7XG5cbi8qKlxuICogZ2V0IHIgZyBiIGZyb20gaGV4IGNvZGVcbiAqXG4gKiBAcGFyYW0gaGV4XG4gKiBAcmV0dXJucyBhcnJheSBvZiByIGcgYnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhleFRvUmdiKGhleDogc3RyaW5nKTogUkdCQ29sb3Ige1xuICBjb25zdCByZXN1bHQgPSBpc0hleENvbG9yKGhleCk7XG5cbiAgaWYgKCFyZXN1bHQpIHtcbiAgICByZXR1cm4gWzAsIDAsIDBdO1xuICB9XG5cbiAgY29uc3QgciA9IHBhcnNlSW50KHJlc3VsdFsxXSwgMTYpO1xuICBjb25zdCBnID0gcGFyc2VJbnQocmVzdWx0WzJdLCAxNik7XG4gIGNvbnN0IGIgPSBwYXJzZUludChyZXN1bHRbM10sIDE2KTtcblxuICByZXR1cm4gW3IsIGcsIGJdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNIZXhDb2xvcihoZXg6IHN0cmluZyk6IFJlZ0V4cEV4ZWNBcnJheSB8IG51bGwge1xuICBjb25zdCByZXN1bHQgPSAvXiM/KFthLWZcXGRdezJ9KShbYS1mXFxkXXsyfSkoW2EtZlxcZF17Mn0pJC9pLmV4ZWMoaGV4KTtcblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5mdW5jdGlvbiBQYWROdW0oYykge1xuICBjb25zdCBoZXggPSBjLnRvU3RyaW5nKDE2KTtcbiAgcmV0dXJuIGhleC5sZW5ndGggPT09IDEgPyBgMCR7aGV4fWAgOiBoZXg7XG59XG5cbi8qKlxuICogZ2V0IGhleCBmcm9tIHIgZyBiXG4gKlxuICogQHBhcmFtIHJnYlxuICogQHJldHVybnMgaGV4IHN0cmluZ1xuICovXG5leHBvcnQgZnVuY3Rpb24gcmdiVG9IZXgoW3IsIGcsIGJdOiBSR0JDb2xvcik6IEhleENvbG9yIHtcbiAgcmV0dXJuIGAjJHtbciwgZywgYl0ubWFwKG4gPT4gUGFkTnVtKG4pKS5qb2luKCcnKX1gLnRvVXBwZXJDYXNlKCk7XG59XG5cbi8qKlxuICogR2V0IGNvbG9yIGdyb3VwIG5hbWUgYnkgcGFyc2luZyBuYW1lLCBkaXNjYXJkIHN0ZXAgaW4gdGhlIG5hbWVcbiAqIGUuZy4gR2xvYmFsIFdhcm1pbmcgNiAtPiBHbG9iYWwgV2FybWluZ1xuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBjb2xvclJhbmdlXG4gKiBAcmV0dXJuIHtzdHJpbmcgfCBudWxsfVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q29sb3JHcm91cEJ5TmFtZShjb2xvclJhbmdlOiBDb2xvclJhbmdlKTogc3RyaW5nIHwgbnVsbCB7XG4gIGlmICghY29sb3JSYW5nZSB8fCB0eXBlb2YgY29sb3JSYW5nZS5uYW1lICE9PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcmV0dXJuIGNvbG9yUmFuZ2UubmFtZS5yZXBsYWNlKC9cXGJbXmEtekEtWl0rJC8sICcnKTtcbn1cblxuLyoqXG4gKiBHZXQgYSByZXZlcnNlZCBjb2xvclJhbmdlXG4gKiBAcGFyYW0gcmV2ZXJzZWRcbiAqIEBwYXJhbSBjb2xvclJhbmdlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXZlcnNlQ29sb3JSYW5nZShyZXZlcnNlZDogYm9vbGVhbiwgY29sb3JSYW5nZTogQ29sb3JSYW5nZSk6IENvbG9yUmFuZ2UgfCBudWxsIHtcbiAgaWYgKCFjb2xvclJhbmdlKSByZXR1cm4gbnVsbDtcbiAgLy8gaWYgKGNvbG9yUmFuZ2UucmV2ZXJzZWQpIHJldHVybiBjb2xvclJhbmdlO1xuICByZXR1cm4ge1xuICAgIC4uLmNvbG9yUmFuZ2UsXG4gICAgcmV2ZXJzZWQsXG4gICAgY29sb3JzOiBjb2xvclJhbmdlLmNvbG9ycy5zbGljZSgpLnJldmVyc2UoKVxuICB9O1xufVxuXG4vKipcbiAqIGdpdmVuIGEgbGlzdCBvZiByZ2IgYXJyYXlzIGl0IHdpbGwgZ2VuZXJhdGUgYSBsaW5lYXIgZ3JhZGllbnQgY3NzIHJ1bGVcbiAqIEBwYXJhbSBkaXJlY3Rpb25cbiAqIEBwYXJhbSBjb2xvcnNcbiAqIEByZXR1cm5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUxpbmVhckdyYWRpZW50KGRpcmVjdGlvbjogc3RyaW5nLCBjb2xvcnM6IFJHQkNvbG9yW10pIHtcbiAgY29uc3Qgc3RlcCA9IHBhcnNlRmxvYXQoKDEwMC4wIC8gY29sb3JzLmxlbmd0aCkudG9GaXhlZCgyKSk7XG4gIGNvbnN0IGJhbmRzID0gY29sb3JzLm1hcCgocmdiLCBpbmRleCkgPT4ge1xuICAgIHJldHVybiBgcmdiYSgke3JnYi5qb2luKCcsJyl9LCAxKSAke3N0ZXAgKiBpbmRleH0lLCByZ2JhKCR7cmdiLmpvaW4oJywnKX0sIDEpICR7c3RlcCAqXG4gICAgICAoaW5kZXggKyAxKX0lYDtcbiAgfSk7XG5cbiAgcmV0dXJuIGBsaW5lYXItZ3JhZGllbnQodG8gJHtkaXJlY3Rpb259LCAke2JhbmRzLmpvaW4oJywnKX0pYDtcbn1cblxuLyoqXG4gKiBDb252ZXJ0IGNvbG9yIHRvIFJHQlxuICovXG5leHBvcnQgZnVuY3Rpb24gY29sb3JNYXliZVRvUkdCKGNvbG9yOiB1bmtub3duKTogUkdCQ29sb3IgfCBudWxsIHtcbiAgaWYgKGlzUmdiQ29sb3IoY29sb3IpKSB7XG4gICAgcmV0dXJuIGNvbG9yIGFzIFJHQkNvbG9yO1xuICB9XG5cbiAgaWYgKHR5cGVvZiBjb2xvciA9PT0gJ3N0cmluZycpIHtcbiAgICBjb25zdCByZ2JPYmogPSBkM1JnYihjb2xvcik7XG4gICAgaWYgKE51bWJlci5pc0Zpbml0ZShyZ2JPYmo/LnIpICYmIE51bWJlci5pc0Zpbml0ZShyZ2JPYmo/LmcpICYmIE51bWJlci5pc0Zpbml0ZShyZ2JPYmo/LmIpKSB7XG4gICAgICByZXR1cm4gW3JnYk9iai5yLCByZ2JPYmouZywgcmdiT2JqLmJdO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBudWxsO1xufVxuXG4vKipcbiAqIFdoZXRoZXIgY29sb3IgaXMgcmdiXG4gKiBAcmV0dXJuc1xuICovXG5leHBvcnQgZnVuY3Rpb24gaXNSZ2JDb2xvcihjb2xvcjogdW5rbm93bik6IGJvb2xlYW4ge1xuICByZXR1cm4gQm9vbGVhbihcbiAgICBjb2xvciAmJlxuICAgICAgQXJyYXkuaXNBcnJheShjb2xvcikgJiZcbiAgICAgIGNvbG9yLmxlbmd0aCA9PT0gMyAmJlxuICAgICAgY29sb3IuZXZlcnkobiA9PiBOdW1iZXIuaXNGaW5pdGUobikgJiYgbiA8PSAyNTUgJiYgbiA+PSAwKVxuICApO1xufVxuIl19
|
151
|
+
/**
|
152
|
+
* Take color values in 0-255 range and map to [0, 1]
|
153
|
+
*/
|
154
|
+
|
155
|
+
|
156
|
+
function normalizeColor(color) {
|
157
|
+
return color.map(function (component) {
|
158
|
+
return component / 255.0;
|
159
|
+
});
|
160
|
+
}
|
161
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb2xvci11dGlscy50cyJdLCJuYW1lcyI6WyJoZXhUb1JnYiIsImhleCIsInJlc3VsdCIsImlzSGV4Q29sb3IiLCJyIiwicGFyc2VJbnQiLCJnIiwiYiIsImV4ZWMiLCJQYWROdW0iLCJjIiwidG9TdHJpbmciLCJsZW5ndGgiLCJyZ2JUb0hleCIsIm1hcCIsIm4iLCJqb2luIiwidG9VcHBlckNhc2UiLCJnZXRDb2xvckdyb3VwQnlOYW1lIiwiY29sb3JSYW5nZSIsIm5hbWUiLCJyZXBsYWNlIiwicmV2ZXJzZUNvbG9yUmFuZ2UiLCJyZXZlcnNlZCIsImNvbG9ycyIsInNsaWNlIiwicmV2ZXJzZSIsImNyZWF0ZUxpbmVhckdyYWRpZW50IiwiZGlyZWN0aW9uIiwic3RlcCIsInBhcnNlRmxvYXQiLCJ0b0ZpeGVkIiwiYmFuZHMiLCJyZ2IiLCJpbmRleCIsImNvbG9yTWF5YmVUb1JHQiIsImNvbG9yIiwiaXNSZ2JDb2xvciIsInJnYk9iaiIsIk51bWJlciIsImlzRmluaXRlIiwiQm9vbGVhbiIsIkFycmF5IiwiaXNBcnJheSIsImV2ZXJ5Iiwibm9ybWFsaXplQ29sb3IiLCJjb21wb25lbnQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUdBOzs7Ozs7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTyxTQUFTQSxRQUFULENBQWtCQyxHQUFsQixFQUF5QztBQUM5QyxNQUFNQyxNQUFNLEdBQUdDLFVBQVUsQ0FBQ0YsR0FBRCxDQUF6Qjs7QUFFQSxNQUFJLENBQUNDLE1BQUwsRUFBYTtBQUNYLFdBQU8sQ0FBQyxDQUFELEVBQUksQ0FBSixFQUFPLENBQVAsQ0FBUDtBQUNEOztBQUVELE1BQU1FLENBQUMsR0FBR0MsUUFBUSxDQUFDSCxNQUFNLENBQUMsQ0FBRCxDQUFQLEVBQVksRUFBWixDQUFsQjtBQUNBLE1BQU1JLENBQUMsR0FBR0QsUUFBUSxDQUFDSCxNQUFNLENBQUMsQ0FBRCxDQUFQLEVBQVksRUFBWixDQUFs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ZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCB7cmdiIGFzIGQzUmdifSBmcm9tICdkMy1jb2xvcic7XG5pbXBvcnQge0NvbG9yUmFuZ2V9IGZyb20gJ0BrZXBsZXIuZ2wvY29uc3RhbnRzJztcbmltcG9ydCB7SGV4Q29sb3IsIFJHQkNvbG9yfSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcblxuLyoqXG4gKiBnZXQgciBnIGIgZnJvbSBoZXggY29kZVxuICpcbiAqIEBwYXJhbSBoZXhcbiAqIEByZXR1cm5zIGFycmF5IG9mIHIgZyBic1xuICovXG5leHBvcnQgZnVuY3Rpb24gaGV4VG9SZ2IoaGV4OiBzdHJpbmcpOiBSR0JDb2xvciB7XG4gIGNvbnN0IHJlc3VsdCA9IGlzSGV4Q29sb3IoaGV4KTtcblxuICBpZiAoIXJlc3VsdCkge1xuICAgIHJldHVybiBbMCwgMCwgMF07XG4gIH1cblxuICBjb25zdCByID0gcGFyc2VJbnQocmVzdWx0WzFdLCAxNik7XG4gIGNvbnN0IGcgPSBwYXJzZUludChyZXN1bHRbMl0sIDE2KTtcbiAgY29uc3QgYiA9IHBhcnNlSW50KHJlc3VsdFszXSwgMTYpO1xuXG4gIHJldHVybiBbciwgZywgYl07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0hleENvbG9yKGhleDogc3RyaW5nKTogUmVnRXhwRXhlY0FycmF5IHwgbnVsbCB7XG4gIGNvbnN0IHJlc3VsdCA9IC9eIz8oW2EtZlxcZF17Mn0pKFthLWZcXGRdezJ9KShbYS1mXFxkXXsyfSkkL2kuZXhlYyhoZXgpO1xuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmZ1bmN0aW9uIFBhZE51bShjKSB7XG4gIGNvbnN0IGhleCA9IGMudG9TdHJpbmcoMTYpO1xuICByZXR1cm4gaGV4Lmxlbmd0aCA9PT0gMSA/IGAwJHtoZXh9YCA6IGhleDtcbn1cblxuLyoqXG4gKiBnZXQgaGV4IGZyb20gciBnIGJcbiAqXG4gKiBAcGFyYW0gcmdiXG4gKiBAcmV0dXJucyBoZXggc3RyaW5nXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZ2JUb0hleChbciwgZywgYl06IFJHQkNvbG9yKTogSGV4Q29sb3Ige1xuICByZXR1cm4gYCMke1tyLCBnLCBiXS5tYXAobiA9PiBQYWROdW0obikpLmpvaW4oJycpfWAudG9VcHBlckNhc2UoKTtcbn1cblxuLyoqXG4gKiBHZXQgY29sb3IgZ3JvdXAgbmFtZSBieSBwYXJzaW5nIG5hbWUsIGRpc2NhcmQgc3RlcCBpbiB0aGUgbmFtZVxuICogZS5nLiBHbG9iYWwgV2FybWluZyA2IC0+IEdsb2JhbCBXYXJtaW5nXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IGNvbG9yUmFuZ2VcbiAqIEByZXR1cm4ge3N0cmluZyB8IG51bGx9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRDb2xvckdyb3VwQnlOYW1lKGNvbG9yUmFuZ2U6IENvbG9yUmFuZ2UpOiBzdHJpbmcgfCBudWxsIHtcbiAgaWYgKCFjb2xvclJhbmdlIHx8IHR5cGVvZiBjb2xvclJhbmdlLm5hbWUgIT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICByZXR1cm4gY29sb3JSYW5nZS5uYW1lLnJlcGxhY2UoL1xcYlteYS16QS1aXSskLywgJycpO1xufVxuXG4vKipcbiAqIEdldCBhIHJldmVyc2VkIGNvbG9yUmFuZ2VcbiAqIEBwYXJhbSByZXZlcnNlZFxuICogQHBhcmFtIGNvbG9yUmFuZ2VcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJldmVyc2VDb2xvclJhbmdlKHJldmVyc2VkOiBib29sZWFuLCBjb2xvclJhbmdlOiBDb2xvclJhbmdlKTogQ29sb3JSYW5nZSB8IG51bGwge1xuICBpZiAoIWNvbG9yUmFuZ2UpIHJldHVybiBudWxsO1xuICAvLyBpZiAoY29sb3JSYW5nZS5yZXZlcnNlZCkgcmV0dXJuIGNvbG9yUmFuZ2U7XG4gIHJldHVybiB7XG4gICAgLi4uY29sb3JSYW5nZSxcbiAgICByZXZlcnNlZCxcbiAgICBjb2xvcnM6IGNvbG9yUmFuZ2UuY29sb3JzLnNsaWNlKCkucmV2ZXJzZSgpXG4gIH07XG59XG5cbi8qKlxuICogZ2l2ZW4gYSBsaXN0IG9mIHJnYiBhcnJheXMgaXQgd2lsbCBnZW5lcmF0ZSBhIGxpbmVhciBncmFkaWVudCBjc3MgcnVsZVxuICogQHBhcmFtIGRpcmVjdGlvblxuICogQHBhcmFtIGNvbG9yc1xuICogQHJldHVyblxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlTGluZWFyR3JhZGllbnQoZGlyZWN0aW9uOiBzdHJpbmcsIGNvbG9yczogUkdCQ29sb3JbXSkge1xuICBjb25zdCBzdGVwID0gcGFyc2VGbG9hdCgoMTAwLjAgLyBjb2xvcnMubGVuZ3RoKS50b0ZpeGVkKDIpKTtcbiAgY29uc3QgYmFuZHMgPSBjb2xvcnMubWFwKChyZ2IsIGluZGV4KSA9PiB7XG4gICAgcmV0dXJuIGByZ2JhKCR7cmdiLmpvaW4oJywnKX0sIDEpICR7c3RlcCAqIGluZGV4fSUsIHJnYmEoJHtyZ2Iuam9pbignLCcpfSwgMSkgJHtzdGVwICpcbiAgICAgIChpbmRleCArIDEpfSVgO1xuICB9KTtcblxuICByZXR1cm4gYGxpbmVhci1ncmFkaWVudCh0byAke2RpcmVjdGlvbn0sICR7YmFuZHMuam9pbignLCcpfSlgO1xufVxuXG4vKipcbiAqIENvbnZlcnQgY29sb3IgdG8gUkdCXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb2xvck1heWJlVG9SR0IoY29sb3I6IHVua25vd24pOiBSR0JDb2xvciB8IG51bGwge1xuICBpZiAoaXNSZ2JDb2xvcihjb2xvcikpIHtcbiAgICByZXR1cm4gY29sb3IgYXMgUkdCQ29sb3I7XG4gIH1cblxuICBpZiAodHlwZW9mIGNvbG9yID09PSAnc3RyaW5nJykge1xuICAgIGNvbnN0IHJnYk9iaiA9IGQzUmdiKGNvbG9yKTtcbiAgICBpZiAoTnVtYmVyLmlzRmluaXRlKHJnYk9iaj8ucikgJiYgTnVtYmVyLmlzRmluaXRlKHJnYk9iaj8uZykgJiYgTnVtYmVyLmlzRmluaXRlKHJnYk9iaj8uYikpIHtcbiAgICAgIHJldHVybiBbcmdiT2JqLnIsIHJnYk9iai5nLCByZ2JPYmouYl07XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59XG5cbi8qKlxuICogV2hldGhlciBjb2xvciBpcyByZ2JcbiAqIEByZXR1cm5zXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1JnYkNvbG9yKGNvbG9yOiB1bmtub3duKTogYm9vbGVhbiB7XG4gIHJldHVybiBCb29sZWFuKFxuICAgIGNvbG9yICYmXG4gICAgICBBcnJheS5pc0FycmF5KGNvbG9yKSAmJlxuICAgICAgY29sb3IubGVuZ3RoID09PSAzICYmXG4gICAgICBjb2xvci5ldmVyeShuID0+IE51bWJlci5pc0Zpbml0ZShuKSAmJiBuIDw9IDI1NSAmJiBuID49IDApXG4gICk7XG59XG5cbi8qKlxuICogVGFrZSBjb2xvciB2YWx1ZXMgaW4gMC0yNTUgcmFuZ2UgYW5kIG1hcCB0byBbMCwgMV1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZUNvbG9yKGNvbG9yOiBudW1iZXJbXSk6IG51bWJlcltdIHtcbiAgcmV0dXJuIGNvbG9yLm1hcChjb21wb25lbnQgPT4gY29tcG9uZW50IC8gMjU1LjApO1xufVxuIl19
|
@@ -1,3 +1,4 @@
|
|
1
|
+
import { Field } from '@kepler.gl/types';
|
1
2
|
import { DataRow, SharedRowOptions } from './data-row';
|
2
3
|
/**
|
3
4
|
* Specifies a range of rows of a data container that should be processed.
|
@@ -7,6 +8,11 @@ export declare type RangeOptions = {
|
|
7
8
|
end?: number;
|
8
9
|
};
|
9
10
|
export interface DataContainerInterface {
|
11
|
+
/**
|
12
|
+
* Updates the data container with new data.
|
13
|
+
* @param updateData updated data, e.g. for arrow data container, it's an array of arrow columns; for row data container, it's an array of rows.
|
14
|
+
*/
|
15
|
+
update?(updateData: any[]): void;
|
10
16
|
/**
|
11
17
|
* Returns the number of rows in the data container.
|
12
18
|
* @returns Number of rows in the data container.
|
@@ -52,6 +58,18 @@ export interface DataContainerInterface {
|
|
52
58
|
* @returns An iterator to all values in the specified column of the data container.
|
53
59
|
*/
|
54
60
|
column(columnIndex: number): Generator<any, void, any>;
|
61
|
+
/**
|
62
|
+
* Returns the column object at the specified index.
|
63
|
+
* @param columnIndex Column index.
|
64
|
+
* @returns The column object at the specified index.
|
65
|
+
*/
|
66
|
+
getColumn?(columnIndex: number): unknown;
|
67
|
+
/**
|
68
|
+
* Returns the field object at the specified index.
|
69
|
+
* @param columnIndex Column index.
|
70
|
+
* @returns The field object at the specified index.
|
71
|
+
*/
|
72
|
+
getField?(columnIndex: number): Field;
|
55
73
|
/**
|
56
74
|
* Returns contents of the data container as a two-dimensional array.
|
57
75
|
* @returns Data.
|
@@ -1,23 +1,3 @@
|
|
1
|
-
// Copyright (c) 2023 Uber Technologies, Inc.
|
2
|
-
//
|
3
|
-
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
4
|
-
// of this software and associated documentation files (the "Software"), to deal
|
5
|
-
// in the Software without restriction, including without limitation the rights
|
6
|
-
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
7
|
-
// copies of the Software, and to permit persons to whom the Software is
|
8
|
-
// furnished to do so, subject to the following conditions:
|
9
|
-
//
|
10
|
-
// The above copyright notice and this permission notice shall be included in
|
11
|
-
// all copies or substantial portions of the Software.
|
12
|
-
//
|
13
|
-
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
14
|
-
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
15
|
-
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
16
|
-
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
17
|
-
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
18
|
-
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
19
|
-
// THE SOFTWARE.
|
20
|
-
|
21
1
|
"use strict";
|
22
2
|
|
23
3
|
Object.defineProperty(exports, "__esModule", {
|