@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.
Files changed (81) hide show
  1. package/dist/aggregation.d.ts +13 -0
  2. package/dist/aggregation.js +84 -0
  3. package/dist/application-config.d.ts +25 -0
  4. package/dist/application-config.js +52 -0
  5. package/dist/arrow-data-container.d.ts +62 -0
  6. package/dist/arrow-data-container.js +331 -0
  7. package/dist/color-utils.d.ts +108 -0
  8. package/dist/color-utils.js +443 -0
  9. package/dist/data-container-interface.d.ts +138 -0
  10. package/dist/data-container-interface.js +6 -0
  11. package/dist/data-container-utils.d.ts +30 -0
  12. package/dist/data-container-utils.js +74 -0
  13. package/dist/data-row.d.ts +59 -0
  14. package/dist/data-row.js +110 -0
  15. package/dist/data-scale-utils.d.ts +119 -0
  16. package/dist/data-scale-utils.js +340 -0
  17. package/dist/data-utils.d.ts +98 -0
  18. package/dist/data-utils.js +436 -0
  19. package/dist/dataset-utils.d.ts +45 -0
  20. package/dist/dataset-utils.js +313 -0
  21. package/dist/dom-to-image.d.ts +73 -0
  22. package/dist/dom-to-image.js +421 -0
  23. package/dist/dom-utils.d.ts +23 -0
  24. package/dist/dom-utils.js +349 -0
  25. package/dist/effect-utils.d.ts +24 -0
  26. package/dist/effect-utils.js +166 -0
  27. package/dist/export-map-html.d.ts +9 -0
  28. package/dist/export-map-html.js +25 -0
  29. package/dist/export-utils.d.ts +40 -0
  30. package/dist/export-utils.js +201 -0
  31. package/dist/filter-utils.d.ts +331 -0
  32. package/dist/filter-utils.js +1214 -0
  33. package/dist/format.d.ts +3 -0
  34. package/dist/format.js +38 -0
  35. package/dist/gl-utils.d.ts +1 -0
  36. package/dist/gl-utils.js +27 -0
  37. package/dist/index.d.ts +42 -0
  38. package/dist/index.js +941 -0
  39. package/dist/indexed-data-container.d.ts +34 -0
  40. package/dist/indexed-data-container.js +214 -0
  41. package/dist/locale-utils.d.ts +2 -0
  42. package/dist/locale-utils.js +39 -0
  43. package/dist/map-info-utils.d.ts +1 -0
  44. package/dist/map-info-utils.js +14 -0
  45. package/dist/map-style-utils/mapbox-gl-style-editor.d.ts +57 -0
  46. package/dist/map-style-utils/mapbox-gl-style-editor.js +188 -0
  47. package/dist/map-style-utils/mapbox-utils.d.ts +14 -0
  48. package/dist/map-style-utils/mapbox-utils.js +51 -0
  49. package/dist/map-utils.d.ts +9 -0
  50. package/dist/map-utils.js +48 -0
  51. package/dist/mapbox-utils.d.ts +7 -0
  52. package/dist/mapbox-utils.js +19 -0
  53. package/dist/noop.d.ts +1 -0
  54. package/dist/noop.js +13 -0
  55. package/dist/notifications-utils.d.ts +42 -0
  56. package/dist/notifications-utils.js +69 -0
  57. package/dist/observe-dimensions.d.ts +15 -0
  58. package/dist/observe-dimensions.js +130 -0
  59. package/dist/plot.d.ts +131 -0
  60. package/dist/plot.js +615 -0
  61. package/dist/position-utils.d.ts +6 -0
  62. package/dist/position-utils.js +26 -0
  63. package/dist/projection-utils.d.ts +22 -0
  64. package/dist/projection-utils.js +83 -0
  65. package/dist/quick-insertion-sort.d.ts +12 -0
  66. package/dist/quick-insertion-sort.js +132 -0
  67. package/dist/row-data-container.d.ts +31 -0
  68. package/dist/row-data-container.js +206 -0
  69. package/dist/searcher-utils.d.ts +1 -0
  70. package/dist/searcher-utils.js +25 -0
  71. package/dist/split-map-utils.d.ts +32 -0
  72. package/dist/split-map-utils.js +99 -0
  73. package/dist/strings.d.ts +4 -0
  74. package/dist/strings.js +16 -0
  75. package/dist/time.d.ts +54 -0
  76. package/dist/time.js +325 -0
  77. package/dist/types.d.ts +18 -0
  78. package/dist/types.js +6 -0
  79. package/dist/utils.d.ts +104 -0
  80. package/dist/utils.js +241 -0
  81. package/package.json +14 -6
@@ -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+XG4gICAgc291cmNlLnJlZHVjZSgoYWNjLCBlbGVtZW50KSA9PiB7XG4gICAgICBjb25zdCBmb3VuZEVsZW1lbnQgPSBmaW5kQnlJZChlbGVtZW50LmlkKShjb21wYXJlKTtcbiAgICAgIHJldHVybiBmb3VuZEVsZW1lbnQgPyBbLi4uYWNjLCBmb3VuZEVsZW1lbnRdIDogYWNjO1xuICAgIH0sIGluaXRpYWwpO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUdBLElBQUFBLE9BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLFFBQUEsR0FBQUQsT0FBQTtBQUFnRCxTQUFBRSxRQUFBQyxDQUFBLEVBQUFDLENBQUEsUUFBQUMsQ0FBQSxHQUFBQyxNQUFBLENBQUFDLElBQUEsQ0FBQUosQ0FBQSxPQUFBRyxNQUFBLENBQUFFLHFCQUFBLFFBQUFDLENBQUEsR0FBQUgsTUFBQSxDQUFBRSxxQkFBQSxDQUFBTCxDQUFBLEdBQUFDLENBQUEsS0FBQUssQ0FBQSxHQUFBQSxDQUFBLENBQUFDLE1BQUEsV0FBQU4sQ0FBQSxXQUFBRSxNQUFBLENBQUFLLHdCQUFBLENBQUFSLENBQUEsRUFBQUMsQ0FBQSxFQUFBUSxVQUFBLE9BQUFQLENBQUEsQ0FBQVEsSUFBQSxDQUFBQyxLQUFBLENBQUFULENBQUEsRUFBQUksQ0FBQSxZQUFBSixDQUFBO0FBQUEsU0FBQVUsY0FBQVosQ0FBQSxhQUFBQyxDQUFBLE1BQUFBLENBQUEsR0FBQVksU0FBQSxDQUFBQyxNQUFBLEVBQUFiLENBQUEsVUFBQUMsQ0FBQSxXQUFBVyxTQUFBLENBQUFaLENBQUEsSUFBQVksU0FBQSxDQUFBWixDQUFBLFFBQUFBLENBQUEsT0FBQUYsT0FBQSxDQUFBSSxNQUFBLENBQUFELENBQUEsT0FBQWEsT0FBQSxXQUFBZCxDQUFBLFFBQUFlLGdCQUFBLGFBQUFoQixDQUFBLEVBQUFDLENBQUEsRUFBQUMsQ0FBQSxDQUFBRCxDQUFBLFNBQUFFLE1BQUEsQ0FBQWMseUJBQUEsR0FBQWQsTUFBQSxDQUFBZSxnQkFBQSxDQUFBbEIsQ0FBQSxFQUFBRyxNQUFBLENBQUFjLHlCQUFBLENBQUFmLENBQUEsS0FBQUgsT0FBQSxDQUFBSSxNQUFBLENBQUFELENBQUEsR0FBQWEsT0FBQSxXQUFBZCxDQUFBLElBQUFFLE1BQUEsQ0FBQWdCLGNBQUEsQ0FBQW5CLENBQUEsRUFBQUMsQ0FBQSxFQUFBRSxNQUFBLENBQUFLLHdCQUFBLENBQUFOLENBQUEsRUFBQUQsQ0FBQSxpQkFBQUQsQ0FBQSxJQUpoRDtBQUNBO0FBS0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPLFNBQVNvQix3QkFBd0JBLENBQUNDLEdBQVcsRUFBVTtFQUM1RDtFQUNBLElBQUlDLElBQUksR0FBRyxDQUFDO0VBQ1osSUFBSUMsQ0FBQztFQUNMLElBQUlDLEdBQUc7RUFDUCxJQUFJQyxHQUFHO0VBQ1AsSUFBSUosR0FBRyxDQUFDUCxNQUFNLEtBQUssQ0FBQyxFQUFFLE9BQU9RLElBQUksQ0FBQ0ksUUFBUSxDQUFDLENBQUM7RUFDNUMsS0FBS0gsQ0FBQyxHQUFHLENBQUMsRUFBRUUsR0FBRyxHQUFHSixHQUFHLENBQUNQLE1BQU0sRUFBRVMsQ0FBQyxHQUFHRSxHQUFHLEVBQUVGLENBQUMsRUFBRSxFQUFFO0lBQzFDQyxHQUFHLEdBQUdILEdBQUcsQ0FBQ00sVUFBVSxDQUFDSixDQUFDLENBQUM7SUFDdkI7SUFDQUQsSUFBSSxHQUFHLENBQUNBLElBQUksSUFBSSxDQUFDLElBQUlBLElBQUksR0FBR0UsR0FBRztJQUMvQjtJQUNBRixJQUFJLElBQUksQ0FBQyxDQUFDLENBQUM7RUFDYjtFQUNBLE9BQU9BLElBQUksQ0FBQ0ksUUFBUSxDQUFDLEVBQUUsQ0FBQztBQUMxQjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNPLFNBQVNFLFFBQVFBLENBQUEsRUFBWTtFQUNsQztFQUNBLE9BQU9DLGtCQUFNLENBQUNDLE1BQU0sSUFBSUQsa0JBQU0sQ0FBQ0MsTUFBTSxDQUFDQyxRQUFRO0FBQ2hEOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPLFNBQVNDLFlBQVlBLENBQUNYLEdBQVcsRUFBVTtFQUNoRCxJQUFNWSxTQUFTLEdBQUdaLEdBQUcsQ0FBQ2EsT0FBTyxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUM7RUFDaEQsT0FBTyxJQUFBQyw4QkFBcUIsRUFBQ0YsU0FBUyxDQUFDO0FBQ3pDOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPLElBQU1HLFFBQVEsR0FBQUMsT0FBQSxDQUFBRCxRQUFBLEdBQUcsU0FBWEEsUUFBUUEsQ0FBSWYsR0FBVyxFQUFhO0VBQy9DLE9BQU9BLEdBQUcsQ0FBQ2EsT0FBTyxDQUFDLHlCQUF5QixFQUFFLFVBQUNJLEtBQUssRUFBRUMsS0FBSyxFQUFLO0lBQzlELElBQUlDLE1BQU0sQ0FBQ0YsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDcEMsT0FBT0MsS0FBSyxLQUFLLENBQUMsR0FBR0QsS0FBSyxDQUFDRyxXQUFXLENBQUMsQ0FBQyxHQUFHSCxLQUFLLENBQUNJLFdBQVcsQ0FBQyxDQUFDO0VBQ2hFLENBQUMsQ0FBQztBQUNKLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTyxJQUFNQyxXQUFXLEdBQUFOLE9BQUEsQ0FBQU0sV0FBQSxHQUFHLFNBQWRBLFdBQVdBLENBQ3RCQyxHQUFNLEVBQ05DLEdBQW9CLEVBQ3BCQyxLQUFVLEVBQ0o7RUFDTixJQUFJQyxLQUFLLENBQUNDLE9BQU8sQ0FBQ0osR0FBRyxDQUFDLElBQUksT0FBT0MsR0FBRyxLQUFLLFFBQVEsRUFBRTtJQUNqRCxVQUFBSSxNQUFBLEtBQUFDLG1CQUFBLGFBQVdOLEdBQUcsQ0FBQ08sS0FBSyxDQUFDLENBQUMsRUFBRU4sR0FBRyxDQUFDLElBQUVDLEtBQUssT0FBQUksbUJBQUEsYUFBS04sR0FBRyxDQUFDTyxLQUFLLENBQUNOLEdBQUcsR0FBRyxDQUFDLEVBQUVELEdBQUcsQ0FBQzlCLE1BQU0sQ0FBQztFQUN4RTtFQUVBLE9BQUFGLGFBQUEsQ0FBQUEsYUFBQSxLQUFXZ0MsR0FBRyxXQUFBNUIsZ0JBQUEsaUJBQUc2QixHQUFHLEVBQUdDLEtBQUs7QUFDOUIsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNPLFNBQVNNLFFBQVFBLENBQUNOLEtBQUssRUFBVztFQUN2QyxPQUFPQSxLQUFLLEtBQUssSUFBSSxLQUFLLElBQUFPLFFBQUEsYUFBT1AsS0FBSyxNQUFLLFFBQVEsSUFBSSxPQUFPQSxLQUFLLEtBQUssVUFBVSxDQUFDO0FBQ3JGOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ08sU0FBU1EsYUFBYUEsQ0FBQ1YsR0FBWSxFQUFrQztFQUMxRSxPQUFPQSxHQUFHLEtBQUt6QyxNQUFNLENBQUN5QyxHQUFHLENBQUMsSUFBSSxPQUFPQSxHQUFHLEtBQUssVUFBVSxJQUFJLENBQUNHLEtBQUssQ0FBQ0MsT0FBTyxDQUFDSixHQUFHLENBQUM7QUFDaEY7QUFFQSxJQUFNVyxRQUFPLEdBQUcsU0FBVkEsT0FBT0EsQ0FBQUMsSUFBQSxFQUVYVixLQUFVLEVBQ1ZGLEdBQW1CLEVBQ2I7RUFBQSxJQUFBYSxLQUFBLE9BQUFDLFNBQUEsYUFBQUYsSUFBQTtJQUhMWCxHQUFHLEdBQUFZLEtBQUE7SUFBS0UsSUFBSSxHQUFBRixLQUFBLENBQUFOLEtBQUE7RUFJYjtFQUNBLElBQUksQ0FBQ0MsUUFBUSxDQUFDUixHQUFHLENBQUMsRUFBRTtJQUNsQixPQUFPQSxHQUFHO0VBQ1o7RUFFQSxJQUFJZSxJQUFJLENBQUM3QyxNQUFNLEtBQUssQ0FBQyxFQUFFO0lBQ3JCLE9BQU82QixXQUFXLENBQUNDLEdBQUcsRUFBRUMsR0FBRyxFQUFFQyxLQUFLLENBQUM7RUFDckM7O0VBRUE7RUFDQSxPQUFPSCxXQUFXLENBQ2hCQyxHQUFHLEVBQ0hDLEdBQUcsRUFDSFUsUUFBTyxDQUFDSSxJQUFJLEVBQUViLEtBQUssRUFBRTNDLE1BQU0sQ0FBQ3lELFNBQVMsQ0FBQ0MsY0FBYyxDQUFDQyxJQUFJLENBQUNsQixHQUFHLEVBQUVDLEdBQUcsQ0FBQyxHQUFHRCxHQUFHLENBQUNDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUNyRixDQUFDO0FBQ0gsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ08sSUFBTWtCLEdBQUcsR0FBQTFCLE9BQUEsQ0FBQTBCLEdBQUEsR0FBRyxTQUFOQSxHQUFHQSxDQUE4QkMsSUFBeUIsRUFBRWxCLEtBQVUsRUFBRUYsR0FBTTtFQUFBLE9BQ3pGQSxHQUFHLEtBQUssSUFBSSxHQUFHQSxHQUFHLEdBQUdXLFFBQU8sQ0FBQ1MsSUFBSSxFQUFFbEIsS0FBSyxFQUFFRixHQUFHLENBQUM7QUFBQTtBQVF6QyxJQUFNcUIscUJBQXFCLEdBQUE1QixPQUFBLENBQUE0QixxQkFBQSxHQUFHLHNCQUFzQjs7QUFFM0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ08sU0FBU0MsUUFBUUEsQ0FDdEJDLEdBQWtDLEVBRTFCO0VBQUEsSUFEUkMsY0FBc0IsR0FBQXZELFNBQUEsQ0FBQUMsTUFBQSxRQUFBRCxTQUFBLFFBQUF3RCxTQUFBLEdBQUF4RCxTQUFBLE1BQUdvRCxxQkFBcUI7RUFFOUMsSUFBSSxDQUFDRSxHQUFHLEVBQUU7SUFDUixPQUFPQyxjQUFjO0VBQ3ZCO0VBRUEsSUFBSSxPQUFPRCxHQUFHLEtBQUssUUFBUSxFQUFFO0lBQzNCLE9BQU9BLEdBQUc7RUFDWixDQUFDLE1BQU0sSUFBSUEsR0FBRyxZQUFZRyxLQUFLLEVBQUU7SUFDL0IsT0FBT0gsR0FBRyxDQUFDSSxPQUFPO0VBQ3BCLENBQUMsTUFBTSxJQUFJLElBQUFsQixRQUFBLGFBQU9jLEdBQUcsTUFBSyxRQUFRLEVBQUU7SUFDbEMsT0FBT2hFLE1BQU0sQ0FBQ3lELFNBQVMsQ0FBQ0MsY0FBYyxDQUFDQyxJQUFJLENBQUNLLEdBQUcsRUFBRSxTQUFTLENBQUMsR0FDdkRELFFBQVEsQ0FBQ0MsR0FBRyxDQUFDSSxPQUFPLENBQUMsR0FDckJwRSxNQUFNLENBQUN5RCxTQUFTLENBQUNDLGNBQWMsQ0FBQ0MsSUFBSSxDQUFDSyxHQUFHLEVBQUUsT0FBTyxDQUFDLEdBQ2xERCxRQUFRLENBQUNDLEdBQUcsQ0FBQ0ssS0FBSyxDQUFDLEdBQ25CckUsTUFBTSxDQUFDeUQsU0FBUyxDQUFDQyxjQUFjLENBQUNDLElBQUksQ0FBQ0ssR0FBRyxFQUFFLEtBQUssQ0FBQyxHQUNoREQsUUFBUSxDQUFDQyxHQUFHLENBQUNBLEdBQUcsQ0FBQyxHQUNqQk0sSUFBSSxDQUFDQyxTQUFTLENBQUNQLEdBQUcsQ0FBQztFQUN6QjtFQUVBLE9BQU9DLGNBQWM7QUFDdkI7QUFFTyxTQUFTTyxXQUFXQSxDQUFJQyxHQUFRLEVBQUVyQyxLQUFhLEVBQUVzQyxHQUFNLEVBQU87RUFDbkUsSUFBSSxDQUFDOUIsS0FBSyxDQUFDQyxPQUFPLENBQUM0QixHQUFHLENBQUMsRUFBRTtJQUN2QixPQUFPQSxHQUFHO0VBQ1o7RUFFQSxVQUFBM0IsTUFBQSxLQUFBQyxtQkFBQSxhQUFXMEIsR0FBRyxDQUFDekIsS0FBSyxDQUFDLENBQUMsRUFBRVosS0FBSyxDQUFDLElBQUVzQyxHQUFHLE9BQUEzQixtQkFBQSxhQUFLMEIsR0FBRyxDQUFDekIsS0FBSyxDQUFDWixLQUFLLENBQUM7QUFDMUQ7QUFFQSxJQUFNdUMsZUFBZSxHQUFHLFNBQWxCQSxlQUFlQSxDQUFJQyxLQUFLLEVBQUVDLElBQUksRUFBRUMsRUFBRSxFQUFLO0VBQzNDRixLQUFLLENBQUNHLE1BQU0sQ0FBQ0QsRUFBRSxHQUFHLENBQUMsR0FBR0YsS0FBSyxDQUFDakUsTUFBTSxHQUFHbUUsRUFBRSxHQUFHQSxFQUFFLEVBQUUsQ0FBQyxFQUFFRixLQUFLLENBQUNHLE1BQU0sQ0FBQ0YsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzVFLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTyxJQUFNRyxTQUFTLEdBQUE5QyxPQUFBLENBQUE4QyxTQUFBLEdBQUcsU0FBWkEsU0FBU0EsQ0FBT0osS0FBVSxFQUFFQyxJQUFZLEVBQUVDLEVBQVUsRUFBVTtFQUN6RUYsS0FBSyxHQUFHQSxLQUFLLENBQUM1QixLQUFLLENBQUMsQ0FBQztFQUNyQjJCLGVBQWUsQ0FBQ0MsS0FBSyxFQUFFQyxJQUFJLEVBQUVDLEVBQUUsQ0FBQztFQUNoQyxPQUFPRixLQUFLO0FBQ2QsQ0FBQztBQUVNLFNBQVNLLGNBQWNBLENBQUNDLGdCQUE4QyxFQUFXO0VBQ3RGLElBQU1DLFdBQVcsR0FBR3pELGtCQUFNLENBQUMwRCxVQUFVLGdCQUFBdEMsTUFBQSxDQUFnQm9DLGdCQUFnQixDQUFDRyxJQUFJLFFBQUssQ0FBQztFQUNoRixPQUFPRixXQUFXLENBQUNHLE9BQU87QUFDNUI7QUFFTyxTQUFTQyxnQkFBZ0JBLENBQUNMLGdCQUE4QyxFQUFXO0VBQ3hGLElBQU1DLFdBQVcsR0FBR3pELGtCQUFNLENBQUMwRCxVQUFVLGdCQUFBdEMsTUFBQSxDQUFnQm9DLGdCQUFnQixDQUFDTSxJQUFJLFFBQUssQ0FBQztFQUNoRixPQUFPTCxXQUFXLENBQUNHLE9BQU87QUFDNUI7QUFFTyxTQUFTRyxNQUFNQSxDQUFBLEVBQVk7RUFBQSxJQUFBQyxRQUFBO0VBQ2hDLE9BQU8sT0FBT0MsT0FBTyxLQUFLLFdBQVcsSUFBSSxFQUFBRCxRQUFBLEdBQUFDLE9BQU8sY0FBQUQsUUFBQSxnQkFBQUEsUUFBQSxHQUFQQSxRQUFBLENBQVNFLEdBQUcsY0FBQUYsUUFBQSx1QkFBWkEsUUFBQSxDQUFjRyxRQUFRLE1BQUssTUFBTTtBQUM1RTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPLFNBQVNDLHVCQUF1QkEsQ0FBQ3JELEdBQUcsRUFBRXNELFNBQVMsRUFBRTtFQUN0RCxPQUFPL0YsTUFBTSxDQUFDZ0csT0FBTyxDQUFDdkQsR0FBRyxDQUFDLENBQUN3RCxNQUFNLENBQy9CLFVBQUNDLEdBQUcsRUFBRUMsS0FBSztJQUFBLE9BQU1KLFNBQVMsQ0FBQ0ksS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFQSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBQTFGLGFBQUEsQ0FBQUEsYUFBQSxLQUFPeUYsR0FBRyxXQUFBckYsZ0JBQUEsaUJBQUdzRixLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUdBLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSUQsR0FBRztFQUFBLENBQUMsRUFDdEYsQ0FBQyxDQUNILENBQUM7QUFDSDtBQUVPLFNBQVNFLFVBQVVBLENBQUNDLElBQWEsRUFBVztFQUNqRCxPQUFPLE9BQU9BLElBQUksS0FBSyxVQUFVO0FBQ25DO0FBRU8sU0FBU0MsUUFBUUEsQ0FBQ0MsRUFBVSxFQUF1RDtFQUN4RixPQUFPLFVBQUE5QixHQUFHO0lBQUEsT0FBSUEsR0FBRyxDQUFDK0IsSUFBSSxDQUFDLFVBQUFDLENBQUM7TUFBQSxPQUFJQSxDQUFDLENBQUNGLEVBQUUsS0FBS0EsRUFBRTtJQUFBLEVBQUM7RUFBQTtBQUMxQzs7QUFFQTtBQUNBO0FBQ0E7QUFDTyxTQUFTRyxlQUFlQSxDQUF5QkMsTUFBVyxFQUF5QjtFQUMxRixJQUFNQyxPQUFZLEdBQUcsRUFBRTtFQUN2QixPQUFPLFVBQUFDLE9BQU87SUFBQSxPQUNaRixNQUFNLENBQUNWLE1BQU0sQ0FBQyxVQUFDQyxHQUFHLEVBQUVZLE9BQU8sRUFBSztNQUM5QixJQUFNQyxZQUFZLEdBQUdULFFBQVEsQ0FBQ1EsT0FBTyxDQUFDUCxFQUFFLENBQUMsQ0FBQ00sT0FBTyxDQUFDO01BQ2xELE9BQU9FLFlBQVksTUFBQWpFLE1BQUEsS0FBQUMsbUJBQUEsYUFBT21ELEdBQUcsSUFBRWEsWUFBWSxLQUFJYixHQUFHO0lBQ3BELENBQUMsRUFBRVUsT0FBTyxDQUFDO0VBQUE7QUFDZiIsImlnbm9yZUxpc3QiOltdfQ==
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.1",
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
- "prepublish": "babel-node ../../scripts/license-header/bin --license ../../FILE-HEADER && yarn build && yarn build:types",
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
- "@kepler.gl/common-utils": "3.1.0-alpha.1",
34
- "@kepler.gl/constants": "3.1.0-alpha.1",
35
- "@kepler.gl/types": "3.1.0-alpha.1",
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
- "type-analyzer": "0.4.0"
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,