@kepler.gl/utils 3.1.0-alpha.1 → 3.1.0-alpha.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/aggregation.d.ts +13 -0
- package/dist/aggregation.js +84 -0
- package/dist/application-config.d.ts +25 -0
- package/dist/application-config.js +52 -0
- package/dist/arrow-data-container.d.ts +62 -0
- package/dist/arrow-data-container.js +331 -0
- package/dist/color-utils.d.ts +108 -0
- package/dist/color-utils.js +443 -0
- package/dist/data-container-interface.d.ts +138 -0
- package/dist/data-container-interface.js +6 -0
- package/dist/data-container-utils.d.ts +30 -0
- package/dist/data-container-utils.js +74 -0
- package/dist/data-row.d.ts +59 -0
- package/dist/data-row.js +110 -0
- package/dist/data-scale-utils.d.ts +119 -0
- package/dist/data-scale-utils.js +340 -0
- package/dist/data-utils.d.ts +98 -0
- package/dist/data-utils.js +436 -0
- package/dist/dataset-utils.d.ts +45 -0
- package/dist/dataset-utils.js +313 -0
- package/dist/dom-to-image.d.ts +73 -0
- package/dist/dom-to-image.js +421 -0
- package/dist/dom-utils.d.ts +23 -0
- package/dist/dom-utils.js +349 -0
- package/dist/effect-utils.d.ts +24 -0
- package/dist/effect-utils.js +166 -0
- package/dist/export-map-html.d.ts +9 -0
- package/dist/export-map-html.js +25 -0
- package/dist/export-utils.d.ts +40 -0
- package/dist/export-utils.js +201 -0
- package/dist/filter-utils.d.ts +331 -0
- package/dist/filter-utils.js +1214 -0
- package/dist/format.d.ts +3 -0
- package/dist/format.js +38 -0
- package/dist/gl-utils.d.ts +1 -0
- package/dist/gl-utils.js +27 -0
- package/dist/index.d.ts +42 -0
- package/dist/index.js +941 -0
- package/dist/indexed-data-container.d.ts +34 -0
- package/dist/indexed-data-container.js +214 -0
- package/dist/locale-utils.d.ts +2 -0
- package/dist/locale-utils.js +39 -0
- package/dist/map-info-utils.d.ts +1 -0
- package/dist/map-info-utils.js +14 -0
- package/dist/map-style-utils/mapbox-gl-style-editor.d.ts +57 -0
- package/dist/map-style-utils/mapbox-gl-style-editor.js +188 -0
- package/dist/map-style-utils/mapbox-utils.d.ts +14 -0
- package/dist/map-style-utils/mapbox-utils.js +51 -0
- package/dist/map-utils.d.ts +9 -0
- package/dist/map-utils.js +48 -0
- package/dist/mapbox-utils.d.ts +7 -0
- package/dist/mapbox-utils.js +19 -0
- package/dist/noop.d.ts +1 -0
- package/dist/noop.js +13 -0
- package/dist/notifications-utils.d.ts +42 -0
- package/dist/notifications-utils.js +69 -0
- package/dist/observe-dimensions.d.ts +15 -0
- package/dist/observe-dimensions.js +130 -0
- package/dist/plot.d.ts +131 -0
- package/dist/plot.js +615 -0
- package/dist/position-utils.d.ts +6 -0
- package/dist/position-utils.js +26 -0
- package/dist/projection-utils.d.ts +22 -0
- package/dist/projection-utils.js +83 -0
- package/dist/quick-insertion-sort.d.ts +12 -0
- package/dist/quick-insertion-sort.js +132 -0
- package/dist/row-data-container.d.ts +31 -0
- package/dist/row-data-container.js +206 -0
- package/dist/searcher-utils.d.ts +1 -0
- package/dist/searcher-utils.js +25 -0
- package/dist/split-map-utils.d.ts +32 -0
- package/dist/split-map-utils.js +99 -0
- package/dist/strings.d.ts +4 -0
- package/dist/strings.js +16 -0
- package/dist/time.d.ts +54 -0
- package/dist/time.js +325 -0
- package/dist/types.d.ts +18 -0
- package/dist/types.js +6 -0
- package/dist/utils.d.ts +104 -0
- package/dist/utils.js +241 -0
- package/package.json +14 -6
package/dist/utils.d.ts
ADDED
@@ -0,0 +1,104 @@
|
|
1
|
+
/**
|
2
|
+
* Generate a hash string based on string
|
3
|
+
* @param str
|
4
|
+
* @returns
|
5
|
+
*/
|
6
|
+
export declare function generateHashIdFromString(str: string): string;
|
7
|
+
/**
|
8
|
+
* Detect chrome
|
9
|
+
* @returns {boolean} - yes or no
|
10
|
+
*/
|
11
|
+
export declare function isChrome(): boolean;
|
12
|
+
/**
|
13
|
+
* Convert camel style names to title
|
14
|
+
* strokeColor -> Stroke Color
|
15
|
+
* @param {string} str
|
16
|
+
* @returns {string}
|
17
|
+
*/
|
18
|
+
export declare function camelToTitle(str: string): string;
|
19
|
+
/**
|
20
|
+
* Convert names to camel style
|
21
|
+
* Stroke Color -> strokeColor
|
22
|
+
* @param {string} str
|
23
|
+
* @returns {string}
|
24
|
+
*/
|
25
|
+
export declare const camelize: (str: string) => string;
|
26
|
+
/**
|
27
|
+
* immutably insert value to an Array or Object
|
28
|
+
* @param {Array|Object} obj
|
29
|
+
* @param {Number|String} key
|
30
|
+
* @param {*} value
|
31
|
+
* @returns {Array|Object}
|
32
|
+
*/
|
33
|
+
export declare const insertValue: <T extends object | any[]>(obj: T, key: number | string, value: any) => T;
|
34
|
+
/**
|
35
|
+
* check if value is a loose object including a plain object, array, function
|
36
|
+
* @param {*} value
|
37
|
+
*/
|
38
|
+
export declare function isObject(value: any): boolean;
|
39
|
+
/**
|
40
|
+
* whether is an object
|
41
|
+
* @returns {boolean} - yes or no
|
42
|
+
*/
|
43
|
+
export declare function isPlainObject(obj: unknown): obj is Record<string, unknown>;
|
44
|
+
/**
|
45
|
+
* Immutable version of _.set
|
46
|
+
* @param {Array<String|Number>} path
|
47
|
+
* @param {*} value
|
48
|
+
* @param {Object} obj
|
49
|
+
* @returns {Object}
|
50
|
+
*/
|
51
|
+
export declare const set: <T extends object | any[]>(path: (string | number)[], value: any, obj: T) => T;
|
52
|
+
declare type ErrorObject = {
|
53
|
+
error?: any;
|
54
|
+
err?: any;
|
55
|
+
message?: any;
|
56
|
+
};
|
57
|
+
export declare const DEFAULT_ERROR_MESSAGE = "Something went wrong";
|
58
|
+
/**
|
59
|
+
* Get error information of unknown type
|
60
|
+
* Extracts as much human readable information as possible
|
61
|
+
* Ensure result is an Error object suitable for throw or promise rejection
|
62
|
+
*
|
63
|
+
* @private
|
64
|
+
* @param {*} err - Unknown error
|
65
|
+
* @return {string} - human readable error msg
|
66
|
+
*/
|
67
|
+
export declare function getError(err?: Error | ErrorObject | string, defaultMessage?: string): string;
|
68
|
+
export declare function arrayInsert<T>(arr: T[], index: number, val: T): T[];
|
69
|
+
/**
|
70
|
+
*
|
71
|
+
* @param {any[]} array
|
72
|
+
* @param {number} from
|
73
|
+
* @param {number} to
|
74
|
+
* @returns {any[]}
|
75
|
+
*/
|
76
|
+
export declare const arrayMove: <T>(array: T[], from: number, to: number) => T[];
|
77
|
+
export declare function hasMobileWidth(breakPointValues: {
|
78
|
+
palm: number;
|
79
|
+
desk: number;
|
80
|
+
}): boolean;
|
81
|
+
export declare function hasPortableWidth(breakPointValues: {
|
82
|
+
palm: number;
|
83
|
+
desk: number;
|
84
|
+
}): boolean;
|
85
|
+
export declare function isTest(): boolean;
|
86
|
+
/**
|
87
|
+
* Filters an object by an arbitrary predicate
|
88
|
+
* Returns a new object containing all elements that match the predicate
|
89
|
+
* @param {Object} obj Object to be filtered
|
90
|
+
* @param {Function} predicate Predicate by which the object will be filtered
|
91
|
+
* @returns {Object}
|
92
|
+
*/
|
93
|
+
export declare function filterObjectByPredicate(obj: any, predicate: any): {};
|
94
|
+
export declare function isFunction(func: unknown): boolean;
|
95
|
+
export declare function findById(id: string): <X extends {
|
96
|
+
id: string;
|
97
|
+
}>(arr: X[]) => X | undefined;
|
98
|
+
/**
|
99
|
+
* Returns array difference from
|
100
|
+
*/
|
101
|
+
export declare function arrayDifference<X extends {
|
102
|
+
id: string;
|
103
|
+
}>(source: X[]): (compare: X[]) => X[];
|
104
|
+
export {};
|
package/dist/utils.js
ADDED
@@ -0,0 +1,241 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
5
|
+
value: true
|
6
|
+
});
|
7
|
+
exports.DEFAULT_ERROR_MESSAGE = void 0;
|
8
|
+
exports.arrayDifference = arrayDifference;
|
9
|
+
exports.arrayInsert = arrayInsert;
|
10
|
+
exports.arrayMove = void 0;
|
11
|
+
exports.camelToTitle = camelToTitle;
|
12
|
+
exports.camelize = void 0;
|
13
|
+
exports.filterObjectByPredicate = filterObjectByPredicate;
|
14
|
+
exports.findById = findById;
|
15
|
+
exports.generateHashIdFromString = generateHashIdFromString;
|
16
|
+
exports.getError = getError;
|
17
|
+
exports.hasMobileWidth = hasMobileWidth;
|
18
|
+
exports.hasPortableWidth = hasPortableWidth;
|
19
|
+
exports.insertValue = void 0;
|
20
|
+
exports.isChrome = isChrome;
|
21
|
+
exports.isFunction = isFunction;
|
22
|
+
exports.isObject = isObject;
|
23
|
+
exports.isPlainObject = isPlainObject;
|
24
|
+
exports.isTest = isTest;
|
25
|
+
exports.set = void 0;
|
26
|
+
var _toArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toArray"));
|
27
|
+
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
28
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
29
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
30
|
+
var _window = _interopRequireDefault(require("global/window"));
|
31
|
+
var _strings = require("./strings");
|
32
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
33
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } // SPDX-License-Identifier: MIT
|
34
|
+
// Copyright contributors to the kepler.gl project
|
35
|
+
/**
|
36
|
+
* Generate a hash string based on string
|
37
|
+
* @param str
|
38
|
+
* @returns
|
39
|
+
*/
|
40
|
+
function generateHashIdFromString(str) {
|
41
|
+
// generate hash string based on string
|
42
|
+
var hash = 0;
|
43
|
+
var i;
|
44
|
+
var chr;
|
45
|
+
var len;
|
46
|
+
if (str.length === 0) return hash.toString();
|
47
|
+
for (i = 0, len = str.length; i < len; i++) {
|
48
|
+
chr = str.charCodeAt(i);
|
49
|
+
// eslint-disable-next-line no-bitwise
|
50
|
+
hash = (hash << 5) - hash + chr;
|
51
|
+
// eslint-disable-next-line no-bitwise
|
52
|
+
hash |= 0; // Convert to 32bit integer
|
53
|
+
}
|
54
|
+
return hash.toString(36);
|
55
|
+
}
|
56
|
+
|
57
|
+
/**
|
58
|
+
* Detect chrome
|
59
|
+
* @returns {boolean} - yes or no
|
60
|
+
*/
|
61
|
+
function isChrome() {
|
62
|
+
// Chrome 1+
|
63
|
+
return _window["default"].chrome && _window["default"].chrome.webstore;
|
64
|
+
}
|
65
|
+
|
66
|
+
/**
|
67
|
+
* Convert camel style names to title
|
68
|
+
* strokeColor -> Stroke Color
|
69
|
+
* @param {string} str
|
70
|
+
* @returns {string}
|
71
|
+
*/
|
72
|
+
function camelToTitle(str) {
|
73
|
+
var breakWord = str.replace(/([A-Z])/g, ' $1');
|
74
|
+
return (0, _strings.capitalizeFirstLetter)(breakWord);
|
75
|
+
}
|
76
|
+
|
77
|
+
/**
|
78
|
+
* Convert names to camel style
|
79
|
+
* Stroke Color -> strokeColor
|
80
|
+
* @param {string} str
|
81
|
+
* @returns {string}
|
82
|
+
*/
|
83
|
+
var camelize = exports.camelize = function camelize(str) {
|
84
|
+
return str.replace(/(?:^\w|[A-Z]|\b\w|\s+)/g, function (match, index) {
|
85
|
+
if (Number(match) === 0) return ''; // or if (/\s+/.test(match)) for white spaces
|
86
|
+
return index === 0 ? match.toLowerCase() : match.toUpperCase();
|
87
|
+
});
|
88
|
+
};
|
89
|
+
|
90
|
+
/**
|
91
|
+
* immutably insert value to an Array or Object
|
92
|
+
* @param {Array|Object} obj
|
93
|
+
* @param {Number|String} key
|
94
|
+
* @param {*} value
|
95
|
+
* @returns {Array|Object}
|
96
|
+
*/
|
97
|
+
var insertValue = exports.insertValue = function insertValue(obj, key, value) {
|
98
|
+
if (Array.isArray(obj) && typeof key === 'number') {
|
99
|
+
return [].concat((0, _toConsumableArray2["default"])(obj.slice(0, key)), [value], (0, _toConsumableArray2["default"])(obj.slice(key + 1, obj.length)));
|
100
|
+
}
|
101
|
+
return _objectSpread(_objectSpread({}, obj), {}, (0, _defineProperty2["default"])({}, key, value));
|
102
|
+
};
|
103
|
+
|
104
|
+
/**
|
105
|
+
* check if value is a loose object including a plain object, array, function
|
106
|
+
* @param {*} value
|
107
|
+
*/
|
108
|
+
function isObject(value) {
|
109
|
+
return value !== null && ((0, _typeof2["default"])(value) === 'object' || typeof value === 'function');
|
110
|
+
}
|
111
|
+
|
112
|
+
/**
|
113
|
+
* whether is an object
|
114
|
+
* @returns {boolean} - yes or no
|
115
|
+
*/
|
116
|
+
function isPlainObject(obj) {
|
117
|
+
return obj === Object(obj) && typeof obj !== 'function' && !Array.isArray(obj);
|
118
|
+
}
|
119
|
+
var _setPath = function setPath(_ref, value, obj) {
|
120
|
+
var _ref2 = (0, _toArray2["default"])(_ref),
|
121
|
+
key = _ref2[0],
|
122
|
+
next = _ref2.slice(1);
|
123
|
+
// is Object allows js object, array and function
|
124
|
+
if (!isObject(obj)) {
|
125
|
+
return obj;
|
126
|
+
}
|
127
|
+
if (next.length === 0) {
|
128
|
+
return insertValue(obj, key, value);
|
129
|
+
}
|
130
|
+
|
131
|
+
// @ts-ignore
|
132
|
+
return insertValue(obj, key, _setPath(next, value, Object.prototype.hasOwnProperty.call(obj, key) ? obj[key] : {}));
|
133
|
+
};
|
134
|
+
|
135
|
+
/**
|
136
|
+
* Immutable version of _.set
|
137
|
+
* @param {Array<String|Number>} path
|
138
|
+
* @param {*} value
|
139
|
+
* @param {Object} obj
|
140
|
+
* @returns {Object}
|
141
|
+
*/
|
142
|
+
// @ts-ignore
|
143
|
+
var set = exports.set = function set(path, value, obj) {
|
144
|
+
return obj === null ? obj : _setPath(path, value, obj);
|
145
|
+
};
|
146
|
+
var DEFAULT_ERROR_MESSAGE = exports.DEFAULT_ERROR_MESSAGE = 'Something went wrong';
|
147
|
+
|
148
|
+
/**
|
149
|
+
* Get error information of unknown type
|
150
|
+
* Extracts as much human readable information as possible
|
151
|
+
* Ensure result is an Error object suitable for throw or promise rejection
|
152
|
+
*
|
153
|
+
* @private
|
154
|
+
* @param {*} err - Unknown error
|
155
|
+
* @return {string} - human readable error msg
|
156
|
+
*/
|
157
|
+
function getError(err) {
|
158
|
+
var defaultMessage = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DEFAULT_ERROR_MESSAGE;
|
159
|
+
if (!err) {
|
160
|
+
return defaultMessage;
|
161
|
+
}
|
162
|
+
if (typeof err === 'string') {
|
163
|
+
return err;
|
164
|
+
} else if (err instanceof Error) {
|
165
|
+
return err.message;
|
166
|
+
} else if ((0, _typeof2["default"])(err) === 'object') {
|
167
|
+
return Object.prototype.hasOwnProperty.call(err, 'message') ? getError(err.message) : Object.prototype.hasOwnProperty.call(err, 'error') ? getError(err.error) : Object.prototype.hasOwnProperty.call(err, 'err') ? getError(err.err) : JSON.stringify(err);
|
168
|
+
}
|
169
|
+
return defaultMessage;
|
170
|
+
}
|
171
|
+
function arrayInsert(arr, index, val) {
|
172
|
+
if (!Array.isArray(arr)) {
|
173
|
+
return arr;
|
174
|
+
}
|
175
|
+
return [].concat((0, _toConsumableArray2["default"])(arr.slice(0, index)), [val], (0, _toConsumableArray2["default"])(arr.slice(index)));
|
176
|
+
}
|
177
|
+
var arrayMoveMutate = function arrayMoveMutate(array, from, to) {
|
178
|
+
array.splice(to < 0 ? array.length + to : to, 0, array.splice(from, 1)[0]);
|
179
|
+
};
|
180
|
+
|
181
|
+
/**
|
182
|
+
*
|
183
|
+
* @param {any[]} array
|
184
|
+
* @param {number} from
|
185
|
+
* @param {number} to
|
186
|
+
* @returns {any[]}
|
187
|
+
*/
|
188
|
+
var arrayMove = exports.arrayMove = function arrayMove(array, from, to) {
|
189
|
+
array = array.slice();
|
190
|
+
arrayMoveMutate(array, from, to);
|
191
|
+
return array;
|
192
|
+
};
|
193
|
+
function hasMobileWidth(breakPointValues) {
|
194
|
+
var mobileWidth = _window["default"].matchMedia("(max-width: ".concat(breakPointValues.palm, "px)"));
|
195
|
+
return mobileWidth.matches;
|
196
|
+
}
|
197
|
+
function hasPortableWidth(breakPointValues) {
|
198
|
+
var mobileWidth = _window["default"].matchMedia("(max-width: ".concat(breakPointValues.desk, "px)"));
|
199
|
+
return mobileWidth.matches;
|
200
|
+
}
|
201
|
+
function isTest() {
|
202
|
+
var _process;
|
203
|
+
return typeof process !== 'undefined' && ((_process = process) === null || _process === void 0 || (_process = _process.env) === null || _process === void 0 ? void 0 : _process.NODE_ENV) === 'test';
|
204
|
+
}
|
205
|
+
|
206
|
+
/**
|
207
|
+
* Filters an object by an arbitrary predicate
|
208
|
+
* Returns a new object containing all elements that match the predicate
|
209
|
+
* @param {Object} obj Object to be filtered
|
210
|
+
* @param {Function} predicate Predicate by which the object will be filtered
|
211
|
+
* @returns {Object}
|
212
|
+
*/
|
213
|
+
function filterObjectByPredicate(obj, predicate) {
|
214
|
+
return Object.entries(obj).reduce(function (acc, entry) {
|
215
|
+
return predicate(entry[0], entry[1]) ? _objectSpread(_objectSpread({}, acc), {}, (0, _defineProperty2["default"])({}, entry[0], entry[1])) : acc;
|
216
|
+
}, {});
|
217
|
+
}
|
218
|
+
function isFunction(func) {
|
219
|
+
return typeof func === 'function';
|
220
|
+
}
|
221
|
+
function findById(id) {
|
222
|
+
return function (arr) {
|
223
|
+
return arr.find(function (a) {
|
224
|
+
return a.id === id;
|
225
|
+
});
|
226
|
+
};
|
227
|
+
}
|
228
|
+
|
229
|
+
/**
|
230
|
+
* Returns array difference from
|
231
|
+
*/
|
232
|
+
function arrayDifference(source) {
|
233
|
+
var initial = [];
|
234
|
+
return function (compare) {
|
235
|
+
return source.reduce(function (acc, element) {
|
236
|
+
var foundElement = findById(element.id)(compare);
|
237
|
+
return foundElement ? [].concat((0, _toConsumableArray2["default"])(acc), [foundElement]) : acc;
|
238
|
+
}, initial);
|
239
|
+
};
|
240
|
+
}
|
241
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfd2luZG93IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfc3RyaW5ncyIsIm93bktleXMiLCJlIiwiciIsInQiLCJPYmplY3QiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsImRlZmluZVByb3BlcnR5IiwiZ2VuZXJhdGVIYXNoSWRGcm9tU3RyaW5nIiwic3RyIiwiaGFzaCIsImkiLCJjaHIiLCJsZW4iLCJ0b1N0cmluZyIsImNoYXJDb2RlQXQiLCJpc0Nocm9tZSIsIndpbmRvdyIsImNocm9tZSIsIndlYnN0b3JlIiwiY2FtZWxUb1RpdGxlIiwiYnJlYWtXb3JkIiwicmVwbGFjZSIsImNhcGl0YWxpemVGaXJzdExldHRlciIsImNhbWVsaXplIiwiZXhwb3J0cyIsIm1hdGNoIiwiaW5kZXgiLCJOdW1iZXIiLCJ0b0xvd2VyQ2FzZSIsInRvVXBwZXJDYXNlIiwiaW5zZXJ0VmFsdWUiLCJvYmoiLCJrZXkiLCJ2YWx1ZSIsIkFycmF5IiwiaXNBcnJheSIsImNvbmNhdCIsIl90b0NvbnN1bWFibGVBcnJheTIiLCJzbGljZSIsImlzT2JqZWN0IiwiX3R5cGVvZjIiLCJpc1BsYWluT2JqZWN0Iiwic2V0UGF0aCIsIl9yZWYiLCJfcmVmMiIsIl90b0FycmF5MiIsIm5leHQiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJzZXQiLCJwYXRoIiwiREVGQVVMVF9FUlJPUl9NRVNTQUdFIiwiZ2V0RXJyb3IiLCJlcnIiLCJkZWZhdWx0TWVzc2FnZSIsInVuZGVmaW5lZCIsIkVycm9yIiwibWVzc2FnZSIsImVycm9yIiwiSlNPTiIsInN0cmluZ2lmeSIsImFycmF5SW5zZXJ0IiwiYXJyIiwidmFsIiwiYXJyYXlNb3ZlTXV0YXRlIiwiYXJyYXkiLCJmcm9tIiwidG8iLCJzcGxpY2UiLCJhcnJheU1vdmUiLCJoYXNNb2JpbGVXaWR0aCIsImJyZWFrUG9pbnRWYWx1ZXMiLCJtb2JpbGVXaWR0aCIsIm1hdGNoTWVkaWEiLCJwYWxtIiwibWF0Y2hlcyIsImhhc1BvcnRhYmxlV2lkdGgiLCJkZXNrIiwiaXNUZXN0IiwiX3Byb2Nlc3MiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJmaWx0ZXJPYmplY3RCeVByZWRpY2F0ZSIsInByZWRpY2F0ZSIsImVudHJpZXMiLCJyZWR1Y2UiLCJhY2MiLCJlbnRyeSIsImlzRnVuY3Rpb24iLCJmdW5jIiwiZmluZEJ5SWQiLCJpZCIsImZpbmQiLCJhIiwiYXJyYXlEaWZmZXJlbmNlIiwic291cmNlIiwiaW5pdGlhbCIsImNvbXBhcmUiLCJlbGVtZW50IiwiZm91bmRFbGVtZW50Il0sInNvdXJjZXMiOlsiLi4vc3JjL3V0aWxzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCB3aW5kb3cgZnJvbSAnZ2xvYmFsL3dpbmRvdyc7XG5pbXBvcnQge2NhcGl0YWxpemVGaXJzdExldHRlcn0gZnJvbSAnLi9zdHJpbmdzJztcblxuLyoqXG4gKiBHZW5lcmF0ZSBhIGhhc2ggc3RyaW5nIGJhc2VkIG9uIHN0cmluZ1xuICogQHBhcmFtIHN0clxuICogQHJldHVybnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlSGFzaElkRnJvbVN0cmluZyhzdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gIC8vIGdlbmVyYXRlIGhhc2ggc3RyaW5nIGJhc2VkIG9uIHN0cmluZ1xuICBsZXQgaGFzaCA9IDA7XG4gIGxldCBpO1xuICBsZXQgY2hyO1xuICBsZXQgbGVuO1xuICBpZiAoc3RyLmxlbmd0aCA9PT0gMCkgcmV0dXJuIGhhc2gudG9TdHJpbmcoKTtcbiAgZm9yIChpID0gMCwgbGVuID0gc3RyLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgY2hyID0gc3RyLmNoYXJDb2RlQXQoaSk7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWJpdHdpc2VcbiAgICBoYXNoID0gKGhhc2ggPDwgNSkgLSBoYXNoICsgY2hyO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1iaXR3aXNlXG4gICAgaGFzaCB8PSAwOyAvLyBDb252ZXJ0IHRvIDMyYml0IGludGVnZXJcbiAgfVxuICByZXR1cm4gaGFzaC50b1N0cmluZygzNik7XG59XG5cbi8qKlxuICogRGV0ZWN0IGNocm9tZVxuICogQHJldHVybnMge2Jvb2xlYW59IC0geWVzIG9yIG5vXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0Nocm9tZSgpOiBib29sZWFuIHtcbiAgLy8gQ2hyb21lIDErXG4gIHJldHVybiB3aW5kb3cuY2hyb21lICYmIHdpbmRvdy5jaHJvbWUud2Vic3RvcmU7XG59XG5cbi8qKlxuICogQ29udmVydCBjYW1lbCBzdHlsZSBuYW1lcyB0byB0aXRsZVxuICogc3Ryb2tlQ29sb3IgLT4gU3Ryb2tlIENvbG9yXG4gKiBAcGFyYW0ge3N0cmluZ30gc3RyXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gY2FtZWxUb1RpdGxlKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgYnJlYWtXb3JkID0gc3RyLnJlcGxhY2UoLyhbQS1aXSkvZywgJyAkMScpO1xuICByZXR1cm4gY2FwaXRhbGl6ZUZpcnN0TGV0dGVyKGJyZWFrV29yZCk7XG59XG5cbi8qKlxuICogQ29udmVydCBuYW1lcyB0byBjYW1lbCBzdHlsZVxuICogU3Ryb2tlIENvbG9yIC0+IHN0cm9rZUNvbG9yXG4gKiBAcGFyYW0ge3N0cmluZ30gc3RyXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgY29uc3QgY2FtZWxpemUgPSAoc3RyOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICByZXR1cm4gc3RyLnJlcGxhY2UoLyg/Ol5cXHd8W0EtWl18XFxiXFx3fFxccyspL2csIChtYXRjaCwgaW5kZXgpID0+IHtcbiAgICBpZiAoTnVtYmVyKG1hdGNoKSA9PT0gMCkgcmV0dXJuICcnOyAvLyBvciBpZiAoL1xccysvLnRlc3QobWF0Y2gpKSBmb3Igd2hpdGUgc3BhY2VzXG4gICAgcmV0dXJuIGluZGV4ID09PSAwID8gbWF0Y2gudG9Mb3dlckNhc2UoKSA6IG1hdGNoLnRvVXBwZXJDYXNlKCk7XG4gIH0pO1xufTtcblxuLyoqXG4gKiBpbW11dGFibHkgaW5zZXJ0IHZhbHVlIHRvIGFuIEFycmF5IG9yIE9iamVjdFxuICogQHBhcmFtIHtBcnJheXxPYmplY3R9IG9ialxuICogQHBhcmFtIHtOdW1iZXJ8U3RyaW5nfSBrZXlcbiAqIEBwYXJhbSB7Kn0gdmFsdWVcbiAqIEByZXR1cm5zIHtBcnJheXxPYmplY3R9XG4gKi9cbmV4cG9ydCBjb25zdCBpbnNlcnRWYWx1ZSA9IDxUIGV4dGVuZHMgYW55W10gfCBvYmplY3Q+KFxuICBvYmo6IFQsXG4gIGtleTogbnVtYmVyIHwgc3RyaW5nLFxuICB2YWx1ZTogYW55XG4pOiBUID0+IHtcbiAgaWYgKEFycmF5LmlzQXJyYXkob2JqKSAmJiB0eXBlb2Yga2V5ID09PSAnbnVtYmVyJykge1xuICAgIHJldHVybiBbLi4ub2JqLnNsaWNlKDAsIGtleSksIHZhbHVlLCAuLi5vYmouc2xpY2Uoa2V5ICsgMSwgb2JqLmxlbmd0aCldIGFzIFQ7XG4gIH1cblxuICByZXR1cm4gey4uLm9iaiwgW2tleV06IHZhbHVlfTtcbn07XG5cbi8qKlxuICogY2hlY2sgaWYgdmFsdWUgaXMgYSBsb29zZSBvYmplY3QgaW5jbHVkaW5nIGEgcGxhaW4gb2JqZWN0LCBhcnJheSwgZnVuY3Rpb25cbiAqIEBwYXJhbSB7Kn0gdmFsdWVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzT2JqZWN0KHZhbHVlKTogYm9vbGVhbiB7XG4gIHJldHVybiB2YWx1ZSAhPT0gbnVsbCAmJiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyB8fCB0eXBlb2YgdmFsdWUgPT09ICdmdW5jdGlvbicpO1xufVxuXG4vKipcbiAqIHdoZXRoZXIgaXMgYW4gb2JqZWN0XG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSB5ZXMgb3Igbm9cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzUGxhaW5PYmplY3Qob2JqOiB1bmtub3duKTogb2JqIGlzIFJlY29yZDxzdHJpbmcsIHVua25vd24+IHtcbiAgcmV0dXJuIG9iaiA9PT0gT2JqZWN0KG9iaikgJiYgdHlwZW9mIG9iaiAhPT0gJ2Z1bmN0aW9uJyAmJiAhQXJyYXkuaXNBcnJheShvYmopO1xufVxuXG5jb25zdCBzZXRQYXRoID0gPFQgZXh0ZW5kcyBhbnlbXSB8IG9iamVjdD4oXG4gIFtrZXksIC4uLm5leHRdOiAoc3RyaW5nIHwgbnVtYmVyKVtdLFxuICB2YWx1ZTogYW55LFxuICBvYmo6IG9iamVjdCB8IGFueVtdXG4pOiBUID0+IHtcbiAgLy8gaXMgT2JqZWN0IGFsbG93cyBqcyBvYmplY3QsIGFycmF5IGFuZCBmdW5jdGlvblxuICBpZiAoIWlzT2JqZWN0KG9iaikpIHtcbiAgICByZXR1cm4gb2JqIGFzIFQ7XG4gIH1cblxuICBpZiAobmV4dC5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gaW5zZXJ0VmFsdWUob2JqLCBrZXksIHZhbHVlKSBhcyBUO1xuICB9XG5cbiAgLy8gQHRzLWlnbm9yZVxuICByZXR1cm4gaW5zZXJ0VmFsdWUoXG4gICAgb2JqLFxuICAgIGtleSxcbiAgICBzZXRQYXRoKG5leHQsIHZhbHVlLCBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBrZXkpID8gb2JqW2tleV0gOiB7fSlcbiAgKTtcbn07XG5cbi8qKlxuICogSW1tdXRhYmxlIHZlcnNpb24gb2YgXy5zZXRcbiAqIEBwYXJhbSB7QXJyYXk8U3RyaW5nfE51bWJlcj59IHBhdGhcbiAqIEBwYXJhbSB7Kn0gdmFsdWVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmpcbiAqIEByZXR1cm5zIHtPYmplY3R9XG4gKi9cbi8vIEB0cy1pZ25vcmVcbmV4cG9ydCBjb25zdCBzZXQgPSA8VCBleHRlbmRzIGFueVtdIHwgb2JqZWN0PihwYXRoOiAoc3RyaW5nIHwgbnVtYmVyKVtdLCB2YWx1ZTogYW55LCBvYmo6IFQpOiBUID0+XG4gIG9iaiA9PT0gbnVsbCA/IG9iaiA6IHNldFBhdGgocGF0aCwgdmFsdWUsIG9iaik7XG5cbnR5cGUgRXJyb3JPYmplY3QgPSB7XG4gIGVycm9yPzogYW55O1xuICBlcnI/OiBhbnk7XG4gIG1lc3NhZ2U/OiBhbnk7XG59O1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9FUlJPUl9NRVNTQUdFID0gJ1NvbWV0aGluZyB3ZW50IHdyb25nJztcblxuLyoqXG4gKiBHZXQgZXJyb3IgaW5mb3JtYXRpb24gb2YgdW5rbm93biB0eXBlXG4gKiBFeHRyYWN0cyBhcyBtdWNoIGh1bWFuIHJlYWRhYmxlIGluZm9ybWF0aW9uIGFzIHBvc3NpYmxlXG4gKiBFbnN1cmUgcmVzdWx0IGlzIGFuIEVycm9yIG9iamVjdCBzdWl0YWJsZSBmb3IgdGhyb3cgb3IgcHJvbWlzZSByZWplY3Rpb25cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSAgZXJyIC0gVW5rbm93biBlcnJvclxuICogQHJldHVybiB7c3RyaW5nfSAtIGh1bWFuIHJlYWRhYmxlIGVycm9yIG1zZ1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RXJyb3IoXG4gIGVycj86IEVycm9yIHwgRXJyb3JPYmplY3QgfCBzdHJpbmcsXG4gIGRlZmF1bHRNZXNzYWdlOiBzdHJpbmcgPSBERUZBVUxUX0VSUk9SX01FU1NBR0Vcbik6IHN0cmluZyB7XG4gIGlmICghZXJyKSB7XG4gICAgcmV0dXJuIGRlZmF1bHRNZXNzYWdlO1xuICB9XG5cbiAgaWYgKHR5cGVvZiBlcnIgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGVycjtcbiAgfSBlbHNlIGlmIChlcnIgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgIHJldHVybiBlcnIubWVzc2FnZTtcbiAgfSBlbHNlIGlmICh0eXBlb2YgZXJyID09PSAnb2JqZWN0Jykge1xuICAgIHJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZXJyLCAnbWVzc2FnZScpXG4gICAgICA/IGdldEVycm9yKGVyci5tZXNzYWdlKVxuICAgICAgOiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZXJyLCAnZXJyb3InKVxuICAgICAgPyBnZXRFcnJvcihlcnIuZXJyb3IpXG4gICAgICA6IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlcnIsICdlcnInKVxuICAgICAgPyBnZXRFcnJvcihlcnIuZXJyKVxuICAgICAgOiBKU09OLnN0cmluZ2lmeShlcnIpO1xuICB9XG5cbiAgcmV0dXJuIGRlZmF1bHRNZXNzYWdlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYXJyYXlJbnNlcnQ8VD4oYXJyOiBUW10sIGluZGV4OiBudW1iZXIsIHZhbDogVCk6IFRbXSB7XG4gIGlmICghQXJyYXkuaXNBcnJheShhcnIpKSB7XG4gICAgcmV0dXJuIGFycjtcbiAgfVxuXG4gIHJldHVybiBbLi4uYXJyLnNsaWNlKDAsIGluZGV4KSwgdmFsLCAuLi5hcnIuc2xpY2UoaW5kZXgpXTtcbn1cblxuY29uc3QgYXJyYXlNb3ZlTXV0YXRlID0gKGFycmF5LCBmcm9tLCB0bykgPT4ge1xuICBhcnJheS5zcGxpY2UodG8gPCAwID8gYXJyYXkubGVuZ3RoICsgdG8gOiB0bywgMCwgYXJyYXkuc3BsaWNlKGZyb20sIDEpWzBdKTtcbn07XG5cbi8qKlxuICpcbiAqIEBwYXJhbSB7YW55W119IGFycmF5XG4gKiBAcGFyYW0ge251bWJlcn0gZnJvbVxuICogQHBhcmFtIHtudW1iZXJ9IHRvXG4gKiBAcmV0dXJucyB7YW55W119XG4gKi9cbmV4cG9ydCBjb25zdCBhcnJheU1vdmUgPSA8VD4oYXJyYXk6IFRbXSwgZnJvbTogbnVtYmVyLCB0bzogbnVtYmVyKTogVFtdID0+IHtcbiAgYXJyYXkgPSBhcnJheS5zbGljZSgpO1xuICBhcnJheU1vdmVNdXRhdGUoYXJyYXksIGZyb20sIHRvKTtcbiAgcmV0dXJuIGFycmF5O1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGhhc01vYmlsZVdpZHRoKGJyZWFrUG9pbnRWYWx1ZXM6IHtwYWxtOiBudW1iZXI7IGRlc2s6IG51bWJlcn0pOiBib29sZWFuIHtcbiAgY29uc3QgbW9iaWxlV2lkdGggPSB3aW5kb3cubWF0Y2hNZWRpYShgKG1heC13aWR0aDogJHticmVha1BvaW50VmFsdWVzLnBhbG19cHgpYCk7XG4gIHJldHVybiBtb2JpbGVXaWR0aC5tYXRjaGVzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFzUG9ydGFibGVXaWR0aChicmVha1BvaW50VmFsdWVzOiB7cGFsbTogbnVtYmVyOyBkZXNrOiBudW1iZXJ9KTogYm9vbGVhbiB7XG4gIGNvbnN0IG1vYmlsZVdpZHRoID0gd2luZG93Lm1hdGNoTWVkaWEoYChtYXgtd2lkdGg6ICR7YnJlYWtQb2ludFZhbHVlcy5kZXNrfXB4KWApO1xuICByZXR1cm4gbW9iaWxlV2lkdGgubWF0Y2hlcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzVGVzdCgpOiBib29sZWFuIHtcbiAgcmV0dXJuIHR5cGVvZiBwcm9jZXNzICE9PSAndW5kZWZpbmVkJyAmJiBwcm9jZXNzPy5lbnY/Lk5PREVfRU5WID09PSAndGVzdCc7XG59XG5cbi8qKlxuICogRmlsdGVycyBhbiBvYmplY3QgYnkgYW4gYXJiaXRyYXJ5IHByZWRpY2F0ZVxuICogUmV0dXJucyBhIG5ldyBvYmplY3QgY29udGFpbmluZyBhbGwgZWxlbWVudHMgdGhhdCBtYXRjaCB0aGUgcHJlZGljYXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqIE9iamVjdCB0byBiZSBmaWx0ZXJlZFxuICogQHBhcmFtIHtGdW5jdGlvbn0gcHJlZGljYXRlIFByZWRpY2F0ZSBieSB3aGljaCB0aGUgb2JqZWN0IHdpbGwgYmUgZmlsdGVyZWRcbiAqIEByZXR1cm5zIHtPYmplY3R9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaWx0ZXJPYmplY3RCeVByZWRpY2F0ZShvYmosIHByZWRpY2F0ZSkge1xuICByZXR1cm4gT2JqZWN0LmVudHJpZXMob2JqKS5yZWR1Y2UoXG4gICAgKGFjYywgZW50cnkpID0+IChwcmVkaWNhdGUoZW50cnlbMF0sIGVudHJ5WzFdKSA/IHsuLi5hY2MsIFtlbnRyeVswXV06IGVudHJ5WzFdfSA6IGFjYyksXG4gICAge31cbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRnVuY3Rpb24oZnVuYzogdW5rbm93bik6IGJvb2xlYW4ge1xuICByZXR1cm4gdHlwZW9mIGZ1bmMgPT09ICdmdW5jdGlvbic7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmaW5kQnlJZChpZDogc3RyaW5nKTogPFggZXh0ZW5kcyB7aWQ6IHN0cmluZ30+KGFycjogWFtdKSA9PiBYIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIGFyciA9PiBhcnIuZmluZChhID0+IGEuaWQgPT09IGlkKTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIGFycmF5IGRpZmZlcmVuY2UgZnJvbVxuICovXG5leHBvcnQgZnVuY3Rpb24gYXJyYXlEaWZmZXJlbmNlPFggZXh0ZW5kcyB7aWQ6IHN0cmluZ30+KHNvdXJjZTogWFtdKTogKGNvbXBhcmU6IFhbXSkgPT4gWFtdIHtcbiAgY29uc3QgaW5pdGlhbDogWFtdID0gW107XG4gIHJldHVybiBjb21wYXJlID0+XG4gICAgc291cmNlLnJlZHVjZSgoYWNjLCBlbGVtZW50KSA9PiB7XG4gICAgICBjb25zdCBmb3VuZEVsZW1lbnQgPSBmaW5kQnlJZChlbGVtZW50LmlkKShjb21wYXJlKTtcbiAgICAgIHJldHVybiBmb3VuZEVsZW1lbnQgPyBbLi4uYWNjLCBmb3VuZEVsZW1lbnRd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
|
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.1.0-alpha.
|
4
|
+
"version": "3.1.0-alpha.3",
|
5
5
|
"description": "kepler.gl constants used by kepler.gl components, actions and reducers",
|
6
6
|
"license": "MIT",
|
7
7
|
"main": "dist/index.js",
|
@@ -22,7 +22,7 @@
|
|
22
22
|
"build": "rm -fr dist && babel src --out-dir dist --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/*.d.ts'",
|
23
23
|
"build:umd": "NODE_OPTIONS=--openssl-legacy-provider webpack --config ./webpack/umd.js --progress --env.prod",
|
24
24
|
"build:types": "tsc --project ./tsconfig.production.json",
|
25
|
-
"
|
25
|
+
"prepublishOnly": "babel-node ../../scripts/license-header/bin --license ../../FILE-HEADER && yarn build && yarn build:types",
|
26
26
|
"stab": "mkdir -p dist && touch dist/index.js"
|
27
27
|
},
|
28
28
|
"files": [
|
@@ -30,9 +30,11 @@
|
|
30
30
|
"umd"
|
31
31
|
],
|
32
32
|
"dependencies": {
|
33
|
-
"@
|
34
|
-
"@
|
35
|
-
"@kepler.gl/
|
33
|
+
"@deck.gl/core": "^8.9.27",
|
34
|
+
"@dnd-kit/sortable": "^7.0.2",
|
35
|
+
"@kepler.gl/common-utils": "3.1.0-alpha.3",
|
36
|
+
"@kepler.gl/constants": "3.1.0-alpha.3",
|
37
|
+
"@kepler.gl/types": "3.1.0-alpha.3",
|
36
38
|
"@luma.gl/constants": "^8.5.20",
|
37
39
|
"@luma.gl/core": "^8.5.20",
|
38
40
|
"@mapbox/geo-viewport": "^0.4.1",
|
@@ -47,6 +49,7 @@
|
|
47
49
|
"@types/lodash.throttle": "^4.1.7",
|
48
50
|
"apache-arrow": ">=15.0.0",
|
49
51
|
"d3-array": "^2.8.0",
|
52
|
+
"d3-color": "^2.0.0",
|
50
53
|
"d3-format": "^2.0.0",
|
51
54
|
"d3-interpolate": "^2.0.1",
|
52
55
|
"decimal.js": "^10.2.0",
|
@@ -58,12 +61,17 @@
|
|
58
61
|
"lodash.isequal": "^4.5.0",
|
59
62
|
"lodash.memoize": "^4.1.2",
|
60
63
|
"lodash.throttle": "^4.1.1",
|
64
|
+
"maplibre-gl": "^3.6.2",
|
65
|
+
"maplibregl-mapbox-request-transformer": "^0.0.2",
|
61
66
|
"mini-svg-data-uri": "^1.0.3",
|
67
|
+
"moment": "^2.10.6",
|
62
68
|
"moment-timezone": "^0.5.35",
|
63
69
|
"react": "^18.2.0",
|
64
70
|
"react-map-gl": "^7.1.6",
|
65
71
|
"resize-observer-polyfill": "^1.5.1",
|
66
|
-
"
|
72
|
+
"suncalc": "^1.9.0",
|
73
|
+
"type-analyzer": "0.4.0",
|
74
|
+
"viewport-mercator-project": "^6.0.0"
|
67
75
|
},
|
68
76
|
"nyc": {
|
69
77
|
"sourceMap": false,
|