@kepler.gl/utils 3.0.0-alpha.0 → 3.0.0-alpha.1

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 (55) hide show
  1. package/dist/aggregate-utils.js +2 -2
  2. package/dist/color-utils.d.ts +4 -0
  3. package/dist/color-utils.js +28 -3
  4. package/dist/data-container-interface.js +1 -1
  5. package/dist/data-container-utils.js +2 -2
  6. package/dist/data-row.js +2 -2
  7. package/dist/data-scale-utils.js +4 -4
  8. package/dist/data-utils.d.ts +10 -12
  9. package/dist/data-utils.js +120 -44
  10. package/dist/dataset-utils.d.ts +12 -1
  11. package/dist/dataset-utils.js +74 -9
  12. package/dist/dom-to-image.d.ts +14 -14
  13. package/dist/dom-to-image.js +23 -69
  14. package/dist/dom-utils.d.ts +3 -0
  15. package/dist/dom-utils.js +29 -3
  16. package/dist/effect-utils.d.ts +13 -0
  17. package/dist/effect-utils.js +129 -0
  18. package/dist/export-map-html.js +2 -2
  19. package/dist/export-utils.js +13 -4
  20. package/dist/filter-utils.d.ts +11 -9
  21. package/dist/filter-utils.js +66 -36
  22. package/dist/format.d.ts +1 -0
  23. package/dist/format.js +33 -0
  24. package/dist/gl-utils.js +2 -2
  25. package/dist/h3-utils.d.ts +2 -1
  26. package/dist/h3-utils.js +5 -4
  27. package/dist/index.d.ts +14 -9
  28. package/dist/index.js +230 -555
  29. package/dist/indexed-data-container.js +2 -2
  30. package/dist/locale-utils.js +2 -2
  31. package/dist/map-info-utils.js +2 -2
  32. package/dist/map-style-utils/mapbox-gl-style-editor.d.ts +2 -1
  33. package/dist/map-style-utils/mapbox-gl-style-editor.js +9 -3
  34. package/dist/map-style-utils/mapbox-utils.js +2 -2
  35. package/dist/map-utils.d.ts +8 -2
  36. package/dist/map-utils.js +24 -7
  37. package/dist/mapbox-utils.js +2 -2
  38. package/dist/noop.d.ts +1 -0
  39. package/dist/noop.js +29 -0
  40. package/dist/notifications-utils.d.ts +14 -26
  41. package/dist/notifications-utils.js +9 -11
  42. package/dist/observe-dimensions.js +10 -6
  43. package/dist/plot.d.ts +6 -0
  44. package/dist/plot.js +46 -0
  45. package/dist/projection-utils.d.ts +9 -0
  46. package/dist/projection-utils.js +36 -2
  47. package/dist/row-data-container.js +2 -2
  48. package/dist/searcher-utils.js +2 -2
  49. package/dist/split-map-utils.d.ts +4 -1
  50. package/dist/split-map-utils.js +10 -4
  51. package/dist/time.d.ts +16 -0
  52. package/dist/time.js +105 -0
  53. package/dist/utils.d.ts +36 -10
  54. package/dist/utils.js +38 -6
  55. package/package.json +11 -11
package/dist/utils.d.ts CHANGED
@@ -8,7 +8,7 @@ export declare function generateHashId(count?: number): string;
8
8
  * Detect chrome
9
9
  * @returns {boolean} - yes or no
10
10
  */
11
- export declare function isChrome(): any;
11
+ export declare function isChrome(): boolean;
12
12
  /**
13
13
  * Capitalize first letter of a string
14
14
  * @param {string} str
@@ -21,14 +21,14 @@ export declare function capitalizeFirstLetter(str: any): any;
21
21
  * @param {string} str
22
22
  * @returns {string}
23
23
  */
24
- export declare function camelToTitle(str: any): any;
24
+ export declare function camelToTitle(str: string): string;
25
25
  /**
26
26
  * Convert names to camel style
27
27
  * Stroke Color -> strokeColor
28
28
  * @param {string} str
29
29
  * @returns {string}
30
30
  */
31
- export declare const camelize: (str: any) => any;
31
+ export declare const camelize: (str: string) => string;
32
32
  /**
33
33
  * Converts non-arrays to arrays. Leaves arrays alone. Converts
34
34
  * undefined values to empty arrays ([] instead of [undefined]).
@@ -37,7 +37,7 @@ export declare const camelize: (str: any) => any;
37
37
  * @param {*} item
38
38
  * @returns {array} boom! much array. very indexed. so useful.
39
39
  */
40
- export declare function toArray(item: any): any[];
40
+ export declare function toArray<T>(item: T | T[]): T[];
41
41
  /**
42
42
  * immutably insert value to an Array or Object
43
43
  * @param {Array|Object} obj
@@ -45,12 +45,17 @@ export declare function toArray(item: any): any[];
45
45
  * @param {*} value
46
46
  * @returns {Array|Object}
47
47
  */
48
- export declare const insertValue: (obj: any, key: any, value: any) => any;
48
+ export declare const insertValue: <T extends object | any[]>(obj: T, key: number | string, value: any) => T;
49
49
  /**
50
50
  * check if value is a loose object including a plain object, array, function
51
51
  * @param {*} value
52
52
  */
53
53
  export declare function isObject(value: any): boolean;
54
+ /**
55
+ * whether is an object
56
+ * @returns {boolean} - yes or no
57
+ */
58
+ export declare function isPlainObject(obj: unknown): obj is Record<string, unknown>;
54
59
  /**
55
60
  * Immutable version of _.set
56
61
  * @param {Array<String|Number>} path
@@ -58,7 +63,12 @@ export declare function isObject(value: any): boolean;
58
63
  * @param {Object} obj
59
64
  * @returns {Object}
60
65
  */
61
- export declare const set: (path: any, value: any, obj: any) => any;
66
+ export declare const set: <T extends object | any[]>(path: (string | number)[], value: any, obj: T) => T;
67
+ declare type ErrorObject = {
68
+ error?: any;
69
+ err?: any;
70
+ message?: any;
71
+ };
62
72
  /**
63
73
  * Get error information of unknown type
64
74
  * Extracts as much human readable information as possible
@@ -68,10 +78,16 @@ export declare const set: (path: any, value: any, obj: any) => any;
68
78
  * @param {*} err - Unknown error
69
79
  * @return {string} - human readable error msg
70
80
  */
71
- export declare function getError(err: any): any;
72
- export declare function arrayInsert(arr: any, index: any, val: any): any;
73
- export declare function hasMobileWidth(breakPointValues: any): any;
74
- export declare function hasPortableWidth(breakPointValues: any): any;
81
+ export declare function getError(err?: Error | ErrorObject | string): string;
82
+ export declare function arrayInsert<T>(arr: T[], index: number, val: T): T[];
83
+ export declare function hasMobileWidth(breakPointValues: {
84
+ palm: number;
85
+ desk: number;
86
+ }): boolean;
87
+ export declare function hasPortableWidth(breakPointValues: {
88
+ palm: number;
89
+ desk: number;
90
+ }): boolean;
75
91
  export declare function isTest(): boolean;
76
92
  /**
77
93
  * Filters an object by an arbitrary predicate
@@ -82,3 +98,13 @@ export declare function isTest(): boolean;
82
98
  */
83
99
  export declare function filterObjectByPredicate(obj: any, predicate: any): {};
84
100
  export declare function isFunction(func: any): boolean;
101
+ export declare function findById(id: string): <X extends {
102
+ id: string;
103
+ }>(arr: X[]) => X | undefined;
104
+ /**
105
+ * Returns array difference from
106
+ */
107
+ export declare function arrayDifference<X extends {
108
+ id: string;
109
+ }>(source: X[]): (compare: X[]) => X[];
110
+ export {};
package/dist/utils.js CHANGED
@@ -1,4 +1,4 @@
1
- // Copyright (c) 2022 Uber Technologies, Inc.
1
+ // Copyright (c) 2023 Uber Technologies, Inc.
2
2
  //
3
3
  // Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  // of this software and associated documentation files (the "Software"), to deal
@@ -31,6 +31,7 @@ exports.capitalizeFirstLetter = capitalizeFirstLetter;
31
31
  exports.camelToTitle = camelToTitle;
32
32
  exports.toArray = toArray;
33
33
  exports.isObject = isObject;
34
+ exports.isPlainObject = isPlainObject;
34
35
  exports.getError = getError;
35
36
  exports.arrayInsert = arrayInsert;
36
37
  exports.hasMobileWidth = hasMobileWidth;
@@ -38,6 +39,8 @@ exports.hasPortableWidth = hasPortableWidth;
38
39
  exports.isTest = isTest;
39
40
  exports.filterObjectByPredicate = filterObjectByPredicate;
40
41
  exports.isFunction = isFunction;
42
+ exports.findById = findById;
43
+ exports.arrayDifference = arrayDifference;
41
44
  exports.set = exports.insertValue = exports.camelize = void 0;
42
45
 
43
46
  var _toArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toArray"));
@@ -160,6 +163,15 @@ exports.insertValue = insertValue;
160
163
  function isObject(value) {
161
164
  return value !== null && ((0, _typeof2["default"])(value) === 'object' || typeof value === 'function');
162
165
  }
166
+ /**
167
+ * whether is an object
168
+ * @returns {boolean} - yes or no
169
+ */
170
+
171
+
172
+ function isPlainObject(obj) {
173
+ return obj === Object(obj) && typeof obj !== 'function' && !Array.isArray(obj);
174
+ }
163
175
 
164
176
  var setPath = function setPath(_ref, value, obj) {
165
177
  var _ref2 = (0, _toArray2["default"])(_ref),
@@ -191,6 +203,9 @@ var setPath = function setPath(_ref, value, obj) {
191
203
  var set = function set(path, value, obj) {
192
204
  return obj === null ? obj : setPath(path, value, obj);
193
205
  };
206
+
207
+ exports.set = set;
208
+
194
209
  /**
195
210
  * Get error information of unknown type
196
211
  * Extracts as much human readable information as possible
@@ -200,10 +215,6 @@ var set = function set(path, value, obj) {
200
215
  * @param {*} err - Unknown error
201
216
  * @return {string} - human readable error msg
202
217
  */
203
-
204
-
205
- exports.set = set;
206
-
207
218
  function getError(err) {
208
219
  if (!err) {
209
220
  return 'Something went wrong';
@@ -264,4 +275,25 @@ function filterObjectByPredicate(obj, predicate) {
264
275
  function isFunction(func) {
265
276
  return typeof func === 'function';
266
277
  }
267
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy91dGlscy50cyJdLCJuYW1lcyI6WyJnZW5lcmF0ZUhhc2hJZCIsImNvdW50IiwiTWF0aCIsInJhbmRvbSIsInRvU3RyaW5nIiwic3Vic3RyIiwiaXNDaHJvbWUiLCJ3aW5kb3ciLCJjaHJvbWUiLCJ3ZWJzdG9yZSIsImNhcGl0YWxpemVGaXJzdExldHRlciIsInN0ciIsImNoYXJBdCIsInRvVXBwZXJDYXNlIiwic2xpY2UiLCJjYW1lbFRvVGl0bGUiLCJicmVha1dvcmQiLCJyZXBsYWNlIiwiY2FtZWxpemUiLCJtYXRjaCIsImluZGV4IiwiTnVtYmVyIiwidG9Mb3dlckNhc2UiLCJ0b0FycmF5IiwiaXRlbSIsIkFycmF5IiwiaXNBcnJheSIsImluc2VydFZhbHVlIiwib2JqIiwia2V5IiwidmFsdWUiLCJsZW5ndGgiLCJpc09iamVjdCIsInNldFBhdGgiLCJuZXh0IiwiaGFzT3duUHJvcGVydHkiLCJzZXQiLCJwYXRoIiwiZ2V0RXJyb3IiLCJlcnIiLCJFcnJvciIsIm1lc3NhZ2UiLCJlcnJvciIsIkpTT04iLCJzdHJpbmdpZnkiLCJhcnJheUluc2VydCIsImFyciIsInZhbCIsImhhc01vYmlsZVdpZHRoIiwiYnJlYWtQb2ludFZhbHVlcyIsIm1vYmlsZVdpZHRoIiwibWF0Y2hNZWRpYSIsInBhbG0iLCJtYXRjaGVzIiwiaGFzUG9ydGFibGVXaWR0aCIsImRlc2siLCJpc1Rlc3QiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJmaWx0ZXJPYmplY3RCeVByZWRpY2F0ZSIsInByZWRpY2F0ZSIsIk9iamVjdCIsImVudHJpZXMiLCJyZWR1Y2UiLCJhY2MiLCJlbnRyeSIsImlzRnVuY3Rpb24iLCJmdW5jIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFvQkE7Ozs7OztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTyxTQUFTQSxjQUFULEdBQW1DO0FBQUEsTUFBWEMsS0FBVyx1RUFBSCxDQUFHO0FBQ3hD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O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNPLFNBQVNDLHVCQUFULENBQWlDaEMsR0FBakMsRUFBc0NpQyxTQUF0QyxFQUFpRDtBQUN0RCxTQUFPQyxNQUFNLENBQUNDLE9BQVAsQ0FBZW5DLEdBQWYsRUFBb0JvQyxNQUFwQixDQUNMLFVBQUNDLEdBQUQsRUFBTUMsS0FBTjtBQUFBLFdBQWlCTCxTQUFTLENBQUNLLEtBQUssQ0FBQyxDQUFELENBQU4sRUFBV0EsS0FBSyxDQUFDLENBQUQsQ0FBaEIsQ0FBVCxtQ0FBb0NELEdBQXBDLDRDQUEwQ0MsS0FBSyxDQUFDLENBQUQsQ0FBL0MsRUFBcURBLEtBQUssQ0FBQyxDQUFELENBQTFELEtBQWlFRCxHQUFsRjtBQUFBLEdBREssRUFFTCxFQUZLLENBQVA7QUFJRDs7QUFFTSxTQUFTRSxVQUFULENBQW9CQyxJQUFwQixFQUEwQjtBQUMvQixTQUFPLE9BQU9BLElBQVAsS0FBZ0IsVUFBdkI7QUFDRCIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgMjAyMiBVYmVyIFRlY2hub2xvZ2llcywgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbmltcG9ydCB3aW5kb3cgZnJvbSAnZ2xvYmFsL3dpbmRvdyc7XG5cbi8qKlxuICogR2VuZXJhdGUgYSBoYXNoIHN0cmluZyBiYXNlZCBvbiBudW1iZXIgb2YgY2hhcmFjdGVyXG4gKiBAcGFyYW0ge251bWJlcn0gY291bnRcbiAqIEByZXR1cm5zIHtzdHJpbmd9IGhhc2ggc3RyaW5nXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZUhhc2hJZChjb3VudCA9IDYpIHtcbiAgcmV0dXJuIE1hdGgucmFuZG9tKClcbiAgICAudG9TdHJpbmcoMzYpXG4gICAgLnN1YnN0cihjb3VudCk7XG59XG5cbi8qKlxuICogRGV0ZWN0IGNocm9tZVxuICogQHJldHVybnMge2Jvb2xlYW59IC0geWVzIG9yIG5vXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0Nocm9tZSgpIHtcbiAgLy8gQ2hyb21lIDErXG4gIHJldHVybiB3aW5kb3cuY2hyb21lICYmIHdpbmRvdy5jaHJvbWUud2Vic3RvcmU7XG59XG5cbi8qKlxuICogQ2FwaXRhbGl6ZSBmaXJzdCBsZXR0ZXIgb2YgYSBzdHJpbmdcbiAqIEBwYXJhbSB7c3RyaW5nfSBzdHJcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjYXBpdGFsaXplRmlyc3RMZXR0ZXIoc3RyKSB7XG4gIHJldHVybiB0eXBlb2Ygc3RyID09PSAnc3RyaW5nJyA/IHN0ci5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIHN0ci5zbGljZSgxKSA6IHN0cjtcbn1cblxuLyoqXG4gKiBDb252ZXJ0IGNhbWVsIHN0eWxlIG5hbWVzIHRvIHRpdGxlXG4gKiBzdHJva2VDb2xvciAtPiBTdHJva2UgQ29sb3JcbiAqIEBwYXJhbSB7c3RyaW5nfSBzdHJcbiAqIEByZXR1cm5zIHtzdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjYW1lbFRvVGl0bGUoc3RyKSB7XG4gIGNvbnN0IGJyZWFrV29yZCA9IHN0ci5yZXBsYWNlKC8oW0EtWl0pL2csICcgJDEnKTtcbiAgcmV0dXJuIGNhcGl0YWxpemVGaXJzdExldHRlcihicmVha1dvcmQpO1xufVxuXG4vKipcbiAqIENvbnZlcnQgbmFtZXMgdG8gY2FtZWwgc3R5bGVcbiAqIFN0cm9rZSBDb2xvciAtPiBzdHJva2VDb2xvclxuICogQHBhcmFtIHtzdHJpbmd9IHN0clxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZXhwb3J0IGNvbnN0IGNhbWVsaXplID0gc3RyID0+IHtcbiAgcmV0dXJuIHN0ci5yZXBsYWNlKC8oPzpeXFx3fFtBLVpdfFxcYlxcd3xcXHMrKS9nLCAobWF0Y2gsIGluZGV4KSA9PiB7XG4gICAgaWYgKE51bWJlcihtYXRjaCkgPT09IDApIHJldHVybiAnJzsgLy8gb3IgaWYgKC9cXHMrLy50ZXN0KG1hdGNoKSkgZm9yIHdoaXRlIHNwYWNlc1xuICAgIHJldHVybiBpbmRleCA9PT0gMCA/IG1hdGNoLnRvTG93ZXJDYXNlKCkgOiBtYXRjaC50b1VwcGVyQ2FzZSgpO1xuICB9KTtcbn07XG5cbi8qKlxuICogQ29udmVydHMgbm9uLWFycmF5cyB0byBhcnJheXMuICBMZWF2ZXMgYXJyYXlzIGFsb25lLiAgQ29udmVydHNcbiAqIHVuZGVmaW5lZCB2YWx1ZXMgdG8gZW1wdHkgYXJyYXlzIChbXSBpbnN0ZWFkIG9mIFt1bmRlZmluZWRdKS5cbiAqIE90aGVyd2lzZSwganVzdCByZXR1cm5zIFtpdGVtXSBmb3Igbm9uLWFycmF5IGl0ZW1zLlxuICpcbiAqIEBwYXJhbSB7Kn0gaXRlbVxuICogQHJldHVybnMge2FycmF5fSBib29tISBtdWNoIGFycmF5LiB2ZXJ5IGluZGV4ZWQuIHNvIHVzZWZ1bC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvQXJyYXkoaXRlbSkge1xuICBpZiAoQXJyYXkuaXNBcnJheShpdGVtKSkge1xuICAgIHJldHVybiBpdGVtO1xuICB9XG5cbiAgaWYgKHR5cGVvZiBpdGVtID09PSAndW5kZWZpbmVkJyB8fCBpdGVtID09PSBudWxsKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgcmV0dXJuIFtpdGVtXTtcbn1cblxuLyoqXG4gKiBpbW11dGFibHkgaW5zZXJ0IHZhbHVlIHRvIGFuIEFycmF5IG9yIE9iamVjdFxuICogQHBhcmFtIHtBcnJheXxPYmplY3R9IG9ialxuICogQHBhcmFtIHtOdW1iZXJ8U3RyaW5nfSBrZXlcbiAqIEBwYXJhbSB7Kn0gdmFsdWVcbiAqIEByZXR1cm5zIHtBcnJheXxPYmplY3R9XG4gKi9cbmV4cG9ydCBjb25zdCBpbnNlcnRWYWx1ZSA9IChvYmosIGtleSwgdmFsdWUpID0+IHtcbiAgaWYgKEFycmF5LmlzQXJyYXkob2JqKSAmJiB0eXBlb2Yga2V5ID09PSAnbnVtYmVyJykge1xuICAgIHJldHVybiBbLi4ub2JqLnNsaWNlKDAsIGtleSksIHZhbHVlLCAuLi5vYmouc2xpY2Uoa2V5ICsgMSwgb2JqLmxlbmd0aCldO1xuICB9XG5cbiAgcmV0dXJuIHsuLi5vYmosIFtrZXldOiB2YWx1ZX07XG59O1xuXG4vKipcbiAqIGNoZWNrIGlmIHZhbHVlIGlzIGEgbG9vc2Ugb2JqZWN0IGluY2x1ZGluZyBhIHBsYWluIG9iamVjdCwgYXJyYXksIGZ1bmN0aW9uXG4gKiBAcGFyYW0geyp9IHZhbHVlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc09iamVjdCh2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUgIT09IG51bGwgJiYgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgfHwgdHlwZW9mIHZhbHVlID09PSAnZnVuY3Rpb24nKTtcbn1cblxuY29uc3Qgc2V0UGF0aCA9IChba2V5LCAuLi5uZXh0XSwgdmFsdWUsIG9iaikgPT4ge1xuICAvLyBpcyBPYmplY3QgYWxsb3dzIGpzIG9iamVjdCwgYXJyYXkgYW5kIGZ1bmN0aW9uXG4gIGlmICghaXNPYmplY3Qob2JqKSkge1xuICAgIHJldHVybiBvYmo7XG4gIH1cblxuICBpZiAobmV4dC5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gaW5zZXJ0VmFsdWUob2JqLCBrZXksIHZhbHVlKTtcbiAgfVxuXG4gIC8vIEB0cy1pZ25vcmVcbiAgcmV0dXJuIGluc2VydFZhbHVlKG9iaiwga2V5LCBzZXRQYXRoKG5leHQsIHZhbHVlLCBvYmouaGFzT3duUHJvcGVydHkoa2V5KSA/IG9ialtrZXldIDoge30pKTtcbn07XG5cbi8qKlxuICogSW1tdXRhYmxlIHZlcnNpb24gb2YgXy5zZXRcbiAqIEBwYXJhbSB7QXJyYXk8U3RyaW5nfE51bWJlcj59IHBhdGhcbiAqIEBwYXJhbSB7Kn0gdmFsdWVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmpcbiAqIEByZXR1cm5zIHtPYmplY3R9XG4gKi9cbi8vIEB0cy1pZ25vcmVcbmV4cG9ydCBjb25zdCBzZXQgPSAocGF0aCwgdmFsdWUsIG9iaikgPT4gKG9iaiA9PT0gbnVsbCA/IG9iaiA6IHNldFBhdGgocGF0aCwgdmFsdWUsIG9iaikpO1xuXG4vKipcbiAqIEdldCBlcnJvciBpbmZvcm1hdGlvbiBvZiB1bmtub3duIHR5cGVcbiAqIEV4dHJhY3RzIGFzIG11Y2ggaHVtYW4gcmVhZGFibGUgaW5mb3JtYXRpb24gYXMgcG9zc2libGVcbiAqIEVuc3VyZSByZXN1bHQgaXMgYW4gRXJyb3Igb2JqZWN0IHN1aXRhYmxlIGZvciB0aHJvdyBvciBwcm9taXNlIHJlamVjdGlvblxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9ICBlcnIgLSBVbmtub3duIGVycm9yXG4gKiBAcmV0dXJuIHtzdHJpbmd9IC0gaHVtYW4gcmVhZGFibGUgZXJyb3IgbXNnXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRFcnJvcihlcnIpIHtcbiAgaWYgKCFlcnIpIHtcbiAgICByZXR1cm4gJ1NvbWV0aGluZyB3ZW50IHdyb25nJztcbiAgfVxuXG4gIGlmICh0eXBlb2YgZXJyID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBlcnI7XG4gIH0gZWxzZSBpZiAoZXJyIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICByZXR1cm4gZXJyLm1lc3NhZ2U7XG4gIH0gZWxzZSBpZiAodHlwZW9mIGVyciA9PT0gJ29iamVjdCcpIHtcbiAgICByZXR1cm4gZXJyLmVycm9yXG4gICAgICA/IGdldEVycm9yKGVyci5lcnJvcilcbiAgICAgIDogZXJyLmVyclxuICAgICAgPyBnZXRFcnJvcihlcnIuZXJyKVxuICAgICAgOiBlcnIubWVzc2FnZVxuICAgICAgPyBnZXRFcnJvcihlcnIubWVzc2FnZSlcbiAgICAgIDogSlNPTi5zdHJpbmdpZnkoZXJyKTtcbiAgfVxuXG4gIC8vIEB0cy1pZ25vcmVcbiAgcmV0dXJuIG51bGw7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhcnJheUluc2VydChhcnIsIGluZGV4LCB2YWwpIHtcbiAgaWYgKCFBcnJheS5pc0FycmF5KGFycikpIHtcbiAgICByZXR1cm4gYXJyO1xuICB9XG5cbiAgcmV0dXJuIFsuLi5hcnIuc2xpY2UoMCwgaW5kZXgpLCB2YWwsIC4uLmFyci5zbGljZShpbmRleCldO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFzTW9iaWxlV2lkdGgoYnJlYWtQb2ludFZhbHVlcykge1xuICBjb25zdCBtb2JpbGVXaWR0aCA9IHdpbmRvdy5tYXRjaE1lZGlhKGAobWF4LXdpZHRoOiAke2JyZWFrUG9pbnRWYWx1ZXMucGFsbX1weClgKTtcbiAgcmV0dXJuIG1vYmlsZVdpZHRoLm1hdGNoZXM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYXNQb3J0YWJsZVdpZHRoKGJyZWFrUG9pbnRWYWx1ZXMpIHtcbiAgY29uc3QgbW9iaWxlV2lkdGggPSB3aW5kb3cubWF0Y2hNZWRpYShgKG1heC13aWR0aDogJHticmVha1BvaW50VmFsdWVzLmRlc2t9cHgpYCk7XG4gIHJldHVybiBtb2JpbGVXaWR0aC5tYXRjaGVzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNUZXN0KCkge1xuICByZXR1cm4gcHJvY2Vzcz8uZW52Py5OT0RFX0VOViA9PT0gJ3Rlc3QnO1xufVxuXG4vKipcbiAqIEZpbHRlcnMgYW4gb2JqZWN0IGJ5IGFuIGFyYml0cmFyeSBwcmVkaWNhdGVcbiAqIFJldHVybnMgYSBuZXcgb2JqZWN0IGNvbnRhaW5pbmcgYWxsIGVsZW1lbnRzIHRoYXQgbWF0Y2ggdGhlIHByZWRpY2F0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iaiBPYmplY3QgdG8gYmUgZmlsdGVyZWRcbiAqIEBwYXJhbSB7RnVuY3Rpb259IHByZWRpY2F0ZSBQcmVkaWNhdGUgYnkgd2hpY2ggdGhlIG9iamVjdCB3aWxsIGJlIGZpbHRlcmVkXG4gKiBAcmV0dXJucyB7T2JqZWN0fVxuICovXG5leHBvcnQgZnVuY3Rpb24gZmlsdGVyT2JqZWN0QnlQcmVkaWNhdGUob2JqLCBwcmVkaWNhdGUpIHtcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKG9iaikucmVkdWNlKFxuICAgIChhY2MsIGVudHJ5KSA9PiAocHJlZGljYXRlKGVudHJ5WzBdLCBlbnRyeVsxXSkgPyB7Li4uYWNjLCBbZW50cnlbMF1dOiBlbnRyeVsxXX0gOiBhY2MpLFxuICAgIHt9XG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0Z1bmN0aW9uKGZ1bmMpIHtcbiAgcmV0dXJuIHR5cGVvZiBmdW5jID09PSAnZnVuY3Rpb24nO1xufVxuIl19
278
+
279
+ function findById(id) {
280
+ return function (arr) {
281
+ return arr.find(function (a) {
282
+ return a.id === id;
283
+ });
284
+ };
285
+ }
286
+ /**
287
+ * Returns array difference from
288
+ */
289
+
290
+
291
+ function arrayDifference(source) {
292
+ return function (compare) {
293
+ return source.reduce(function (acc, element) {
294
+ var foundElement = findById(element.id)(compare);
295
+ return foundElement ? [].concat((0, _toConsumableArray2["default"])(acc), [foundElement]) : acc;
296
+ }, []);
297
+ };
298
+ }
299
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy91dGlscy50cyJdLCJuYW1lcyI6WyJnZW5lcmF0ZUhhc2hJZCIsImNvdW50IiwiTWF0aCIsInJhbmRvbSIsInRvU3RyaW5nIiwic3Vic3RyIiwiaXNDaHJvbWUiLCJ3aW5kb3ciLCJjaHJvbWUiLCJ3ZWJzdG9yZSIsImNhcGl0YWxpemVGaXJzdExldHRlciIsInN0ciIsImNoYXJBdCIsInRvVXBwZXJDYXNlIiwic2xpY2UiLCJjYW1lbFRvVGl0bGUiLCJicmVha1dvcmQiLCJyZXBsYWNlIiwiY2FtZWxpemUiLCJtYXRjaCIsImluZGV4IiwiTnVtYmVyIiwidG9Mb3dlckNhc2UiLCJ0b0FycmF5IiwiaXRlbSIsIkFycmF5IiwiaXNBcnJheSIsImluc2VydFZhbHVlIiwib2JqIiwia2V5IiwidmFsdWUiLCJsZW5ndGgiLCJpc09iamVjdCIsImlzUGxhaW5PYmplY3QiLCJPYmplY3QiLCJzZXRQYXRoIiwibmV4dCIsImhhc093blByb3BlcnR5Iiwic2V0IiwicGF0aCIsImdldEVycm9yIiwiZXJyIiwiRXJyb3IiLCJtZXNzYWdlIiwiZXJyb3IiLCJKU09OIiwic3RyaW5naWZ5IiwiYXJyYXlJbnNlcnQiLCJhcnIiLCJ2YWwiLCJoYXNNb2JpbGVXaWR0aCIsImJyZWFrUG9pbnRWYWx1ZXMiLCJtb2JpbGVXaWR0aCIsIm1hdGNoTWVkaWEiLCJwYWxtIiwibWF0Y2hlcyIsImhhc1BvcnRhYmxlV2lkdGgiLCJkZXNrIiwiaXNUZXN0IiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwiZmlsdGVyT2JqZWN0QnlQcmVkaWNhdGUiLCJwcmVkaWNhdGUiLCJlbnRyaWVzIiwicmVkdWNlIiwiYWNjIiwiZW50cnkiLCJpc0Z1bmN0aW9uIiwiZnVuYyIsImZpbmRCeUlkIiwiaWQiLCJmaW5kIiwiYSIsImFycmF5RGlmZmVyZW5jZSIsInNvdXJjZSIsImNvbXBhcmUiLCJlbGVtZW50IiwiZm91bmRFbGVtZW50Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7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Q08sU0FBU0csZUFBVCxDQUFpREMsTUFBakQsRUFBcUY7QUFDMUYsU0FBTyxVQUFBQyxPQUFPO0FBQUEsV0FDWkQsTUFBTSxDQUFDVixNQUFQLENBQWMsVUFBQ0MsR0FBRCxFQUFNVyxPQUFOLEVBQWtCO0FBQzlCLFVBQU1DLFlBQVksR0FBR1IsUUFBUSxDQUFDTyxPQUFPLENBQUNOLEVBQVQsQ0FBUixDQUFxQkssT0FBckIsQ0FBckI7QUFDQSxhQUFPRSxZQUFZLGlEQUFPWixHQUFQLElBQVlZLFlBQVosS0FBNEJaLEdBQS9DO0FBQ0QsS0FIRCxFQUdHLEVBSEgsQ0FEWTtBQUFBLEdBQWQ7QUFLRCIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgMjAyMyBVYmVyIFRlY2hub2xvZ2llcywgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbmltcG9ydCB3aW5kb3cgZnJvbSAnZ2xvYmFsL3dpbmRvdyc7XG5cbi8qKlxuICogR2VuZXJhdGUgYSBoYXNoIHN0cmluZyBiYXNlZCBvbiBudW1iZXIgb2YgY2hhcmFjdGVyXG4gKiBAcGFyYW0ge251bWJlcn0gY291bnRcbiAqIEByZXR1cm5zIHtzdHJpbmd9IGhhc2ggc3RyaW5nXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZUhhc2hJZChjb3VudDogbnVtYmVyID0gNik6IHN0cmluZyB7XG4gIHJldHVybiBNYXRoLnJhbmRvbSgpXG4gICAgLnRvU3RyaW5nKDM2KVxuICAgIC5zdWJzdHIoY291bnQpO1xufVxuXG4vKipcbiAqIERldGVjdCBjaHJvbWVcbiAqIEByZXR1cm5zIHtib29sZWFufSAtIHllcyBvciBub1xuICovXG5leHBvcnQgZnVuY3Rpb24gaXNDaHJvbWUoKTogYm9vbGVhbiB7XG4gIC8vIENocm9tZSAxK1xuICByZXR1cm4gd2luZG93LmNocm9tZSAmJiB3aW5kb3cuY2hyb21lLndlYnN0b3JlO1xufVxuXG4vKipcbiAqIENhcGl0YWxpemUgZmlyc3QgbGV0dGVyIG9mIGEgc3RyaW5nXG4gKiBAcGFyYW0ge3N0cmluZ30gc3RyXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gY2FwaXRhbGl6ZUZpcnN0TGV0dGVyKHN0cikge1xuICByZXR1cm4gdHlwZW9mIHN0ciA9PT0gJ3N0cmluZycgPyBzdHIuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBzdHIuc2xpY2UoMSkgOiBzdHI7XG59XG5cbi8qKlxuICogQ29udmVydCBjYW1lbCBzdHlsZSBuYW1lcyB0byB0aXRsZVxuICogc3Ryb2tlQ29sb3IgLT4gU3Ryb2tlIENvbG9yXG4gKiBAcGFyYW0ge3N0cmluZ30gc3RyXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gY2FtZWxUb1RpdGxlKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgYnJlYWtXb3JkID0gc3RyLnJlcGxhY2UoLyhbQS1aXSkvZywgJyAkMScpO1xuICByZXR1cm4gY2FwaXRhbGl6ZUZpcnN0TGV0dGVyKGJyZWFrV29yZCk7XG59XG5cbi8qKlxuICogQ29udmVydCBuYW1lcyB0byBjYW1lbCBzdHlsZVxuICogU3Ryb2tlIENvbG9yIC0+IHN0cm9rZUNvbG9yXG4gKiBAcGFyYW0ge3N0cmluZ30gc3RyXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgY29uc3QgY2FtZWxpemUgPSAoc3RyOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICByZXR1cm4gc3RyLnJlcGxhY2UoLyg/Ol5cXHd8W0EtWl18XFxiXFx3fFxccyspL2csIChtYXRjaCwgaW5kZXgpID0+IHtcbiAgICBpZiAoTnVtYmVyKG1hdGNoKSA9PT0gMCkgcmV0dXJuICcnOyAvLyBvciBpZiAoL1xccysvLnRlc3QobWF0Y2gpKSBmb3Igd2hpdGUgc3BhY2VzXG4gICAgcmV0dXJuIGluZGV4ID09PSAwID8gbWF0Y2gudG9Mb3dlckNhc2UoKSA6IG1hdGNoLnRvVXBwZXJDYXNlKCk7XG4gIH0pO1xufTtcblxuLyoqXG4gKiBDb252ZXJ0cyBub24tYXJyYXlzIHRvIGFycmF5cy4gIExlYXZlcyBhcnJheXMgYWxvbmUuICBDb252ZXJ0c1xuICogdW5kZWZpbmVkIHZhbHVlcyB0byBlbXB0eSBhcnJheXMgKFtdIGluc3RlYWQgb2YgW3VuZGVmaW5lZF0pLlxuICogT3RoZXJ3aXNlLCBqdXN0IHJldHVybnMgW2l0ZW1dIGZvciBub24tYXJyYXkgaXRlbXMuXG4gKlxuICogQHBhcmFtIHsqfSBpdGVtXG4gKiBAcmV0dXJucyB7YXJyYXl9IGJvb20hIG11Y2ggYXJyYXkuIHZlcnkgaW5kZXhlZC4gc28gdXNlZnVsLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9BcnJheTxUPihpdGVtOiBUIHwgVFtdKTogVFtdIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkoaXRlbSkpIHtcbiAgICByZXR1cm4gaXRlbTtcbiAgfVxuXG4gIGlmICh0eXBlb2YgaXRlbSA9PT0gJ3VuZGVmaW5lZCcgfHwgaXRlbSA9PT0gbnVsbCkge1xuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIHJldHVybiBbaXRlbV07XG59XG5cbi8qKlxuICogaW1tdXRhYmx5IGluc2VydCB2YWx1ZSB0byBhbiBBcnJheSBvciBPYmplY3RcbiAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fSBvYmpcbiAqIEBwYXJhbSB7TnVtYmVyfFN0cmluZ30ga2V5XG4gKiBAcGFyYW0geyp9IHZhbHVlXG4gKiBAcmV0dXJucyB7QXJyYXl8T2JqZWN0fVxuICovXG5leHBvcnQgY29uc3QgaW5zZXJ0VmFsdWUgPSA8VCBleHRlbmRzIGFueVtdIHwgb2JqZWN0PihcbiAgb2JqOiBULFxuICBrZXk6IG51bWJlciB8IHN0cmluZyxcbiAgdmFsdWU6IGFueVxuKTogVCA9PiB7XG4gIGlmIChBcnJheS5pc0FycmF5KG9iaikgJiYgdHlwZW9mIGtleSA9PT0gJ251bWJlcicpIHtcbiAgICByZXR1cm4gWy4uLm9iai5zbGljZSgwLCBrZXkpLCB2YWx1ZSwgLi4ub2JqLnNsaWNlKGtleSArIDEsIG9iai5sZW5ndGgpXSBhcyBUO1xuICB9XG5cbiAgcmV0dXJuIHsuLi5vYmosIFtrZXldOiB2YWx1ZX07XG59O1xuXG4vKipcbiAqIGNoZWNrIGlmIHZhbHVlIGlzIGEgbG9vc2Ugb2JqZWN0IGluY2x1ZGluZyBhIHBsYWluIG9iamVjdCwgYXJyYXksIGZ1bmN0aW9uXG4gKiBAcGFyYW0geyp9IHZhbHVlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc09iamVjdCh2YWx1ZSk6IGJvb2xlYW4ge1xuICByZXR1cm4gdmFsdWUgIT09IG51bGwgJiYgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgfHwgdHlwZW9mIHZhbHVlID09PSAnZnVuY3Rpb24nKTtcbn1cblxuLyoqXG4gKiB3aGV0aGVyIGlzIGFuIG9iamVjdFxuICogQHJldHVybnMge2Jvb2xlYW59IC0geWVzIG9yIG5vXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1BsYWluT2JqZWN0KG9iajogdW5rbm93bik6IG9iaiBpcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB7XG4gIHJldHVybiBvYmogPT09IE9iamVjdChvYmopICYmIHR5cGVvZiBvYmogIT09ICdmdW5jdGlvbicgJiYgIUFycmF5LmlzQXJyYXkob2JqKTtcbn1cblxuY29uc3Qgc2V0UGF0aCA9IDxUIGV4dGVuZHMgYW55W10gfCBvYmplY3Q+KFxuICBba2V5LCAuLi5uZXh0XTogKHN0cmluZyB8IG51bWJlcilbXSxcbiAgdmFsdWU6IGFueSxcbiAgb2JqOiBvYmplY3QgfCBhbnlbXVxuKTogVCA9PiB7XG4gIC8vIGlzIE9iamVjdCBhbGxvd3MganMgb2JqZWN0LCBhcnJheSBhbmQgZnVuY3Rpb25cbiAgaWYgKCFpc09iamVjdChvYmopKSB7XG4gICAgcmV0dXJuIG9iaiBhcyBUO1xuICB9XG5cbiAgaWYgKG5leHQubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIGluc2VydFZhbHVlKG9iaiwga2V5LCB2YWx1ZSkgYXMgVDtcbiAgfVxuXG4gIC8vIEB0cy1pZ25vcmVcbiAgcmV0dXJuIGluc2VydFZhbHVlKG9iaiwga2V5LCBzZXRQYXRoKG5leHQsIHZhbHVlLCBvYmouaGFzT3duUHJvcGVydHkoa2V5KSA/IG9ialtrZXldIDoge30pKTtcbn07XG5cbi8qKlxuICogSW1tdXRhYmxlIHZlcnNpb24gb2YgXy5zZXRcbiAqIEBwYXJhbSB7QXJyYXk8U3RyaW5nfE51bWJlcj59IHBhdGhcbiAqIEBwYXJhbSB7Kn0gdmFsdWVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmpcbiAqIEByZXR1cm5zIHtPYmplY3R9XG4gKi9cbi8vIEB0cy1pZ25vcmVcbmV4cG9ydCBjb25zdCBzZXQgPSA8VCBleHRlbmRzIGFueVtdIHwgb2JqZWN0PihwYXRoOiAoc3RyaW5nIHwgbnVtYmVyKVtdLCB2YWx1ZTogYW55LCBvYmo6IFQpOiBUID0+XG4gIG9iaiA9PT0gbnVsbCA/IG9iaiA6IHNldFBhdGgocGF0aCwgdmFsdWUsIG9iaik7XG5cbnR5cGUgRXJyb3JPYmplY3QgPSB7XG4gIGVycm9yPzogYW55O1xuICBlcnI/OiBhbnk7XG4gIG1lc3NhZ2U/OiBhbnk7XG59O1xuXG4vKipcbiAqIEdldCBlcnJvciBpbmZvcm1hdGlvbiBvZiB1bmtub3duIHR5cGVcbiAqIEV4dHJhY3RzIGFzIG11Y2ggaHVtYW4gcmVhZGFibGUgaW5mb3JtYXRpb24gYXMgcG9zc2libGVcbiAqIEVuc3VyZSByZXN1bHQgaXMgYW4gRXJyb3Igb2JqZWN0IHN1aXRhYmxlIGZvciB0aHJvdyBvciBwcm9taXNlIHJlamVjdGlvblxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9ICBlcnIgLSBVbmtub3duIGVycm9yXG4gKiBAcmV0dXJuIHtzdHJpbmd9IC0gaHVtYW4gcmVhZGFibGUgZXJyb3IgbXNnXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRFcnJvcihlcnI/OiBFcnJvciB8IEVycm9yT2JqZWN0IHwgc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKCFlcnIpIHtcbiAgICByZXR1cm4gJ1NvbWV0aGluZyB3ZW50IHdyb25nJztcbiAgfVxuXG4gIGlmICh0eXBlb2YgZXJyID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBlcnI7XG4gIH0gZWxzZSBpZiAoZXJyIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICByZXR1cm4gZXJyLm1lc3NhZ2U7XG4gIH0gZWxzZSBpZiAodHlwZW9mIGVyciA9PT0gJ29iamVjdCcpIHtcbiAgICByZXR1cm4gZXJyLmVycm9yXG4gICAgICA/IGdldEVycm9yKGVyci5lcnJvcilcbiAgICAgIDogZXJyLmVyclxuICAgICAgPyBnZXRFcnJvcihlcnIuZXJyKVxuICAgICAgOiBlcnIubWVzc2FnZVxuICAgICAgPyBnZXRFcnJvcihlcnIubWVzc2FnZSlcbiAgICAgIDogSlNPTi5zdHJpbmdpZnkoZXJyKTtcbiAgfVxuXG4gIC8vIEB0cy1pZ25vcmVcbiAgcmV0dXJuIG51bGw7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhcnJheUluc2VydDxUPihhcnI6IFRbXSwgaW5kZXg6IG51bWJlciwgdmFsOiBUKTogVFtdIHtcbiAgaWYgKCFBcnJheS5pc0FycmF5KGFycikpIHtcbiAgICByZXR1cm4gYXJyO1xuICB9XG5cbiAgcmV0dXJuIFsuLi5hcnIuc2xpY2UoMCwgaW5kZXgpLCB2YWwsIC4uLmFyci5zbGljZShpbmRleCldO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFzTW9iaWxlV2lkdGgoYnJlYWtQb2ludFZhbHVlczoge3BhbG06IG51bWJlcjsgZGVzazogbnVtYmVyfSk6IGJvb2xlYW4ge1xuICBjb25zdCBtb2JpbGVXaWR0aCA9IHdpbmRvdy5tYXRjaE1lZGlhKGAobWF4LXdpZHRoOiAke2JyZWFrUG9pbnRWYWx1ZXMucGFsbX1weClgKTtcbiAgcmV0dXJuIG1vYmlsZVdpZHRoLm1hdGNoZXM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYXNQb3J0YWJsZVdpZHRoKGJyZWFrUG9pbnRWYWx1ZXM6IHtwYWxtOiBudW1iZXI7IGRlc2s6IG51bWJlcn0pOiBib29sZWFuIHtcbiAgY29uc3QgbW9iaWxlV2lkdGggPSB3aW5kb3cubWF0Y2hNZWRpYShgKG1heC13aWR0aDogJHticmVha1BvaW50VmFsdWVzLmRlc2t9cHgpYCk7XG4gIHJldHVybiBtb2JpbGVXaWR0aC5tYXRjaGVzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNUZXN0KCk6IGJvb2xlYW4ge1xuICByZXR1cm4gcHJvY2Vzcz8uZW52Py5OT0RFX0VOViA9PT0gJ3Rlc3QnO1xufVxuXG4vKipcbiAqIEZpbHRlcnMgYW4gb2JqZWN0IGJ5IGFuIGFyYml0cmFyeSBwcmVkaWNhdGVcbiAqIFJldHVybnMgYSBuZXcgb2JqZWN0IGNvbnRhaW5pbmcgYWxsIGVsZW1lbnRzIHRoYXQgbWF0Y2ggdGhlIHByZWRpY2F0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iaiBPYmplY3QgdG8gYmUgZmlsdGVyZWRcbiAqIEBwYXJhbSB7RnVuY3Rpb259IHByZWRpY2F0ZSBQcmVkaWNhdGUgYnkgd2hpY2ggdGhlIG9iamVjdCB3aWxsIGJlIGZpbHRlcmVkXG4gKiBAcmV0dXJucyB7T2JqZWN0fVxuICovXG5leHBvcnQgZnVuY3Rpb24gZmlsdGVyT2JqZWN0QnlQcmVkaWNhdGUob2JqLCBwcmVkaWNhdGUpIHtcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKG9iaikucmVkdWNlKFxuICAgIChhY2MsIGVudHJ5KSA9PiAocHJlZGljYXRlKGVudHJ5WzBdLCBlbnRyeVsxXSkgPyB7Li4uYWNjLCBbZW50cnlbMF1dOiBlbnRyeVsxXX0gOiBhY2MpLFxuICAgIHt9XG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0Z1bmN0aW9uKGZ1bmMpOiBib29sZWFuIHtcbiAgcmV0dXJuIHR5cGVvZiBmdW5jID09PSAnZnVuY3Rpb24nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmluZEJ5SWQoaWQ6IHN0cmluZyk6IDxYIGV4dGVuZHMge2lkOiBzdHJpbmd9PihhcnI6IFhbXSkgPT4gWCB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBhcnIgPT4gYXJyLmZpbmQoYSA9PiBhLmlkID09PSBpZCk7XG59XG5cbi8qKlxuICogUmV0dXJucyBhcnJheSBkaWZmZXJlbmNlIGZyb21cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFycmF5RGlmZmVyZW5jZTxYIGV4dGVuZHMge2lkOiBzdHJpbmd9Pihzb3VyY2U6IFhbXSk6IChjb21wYXJlOiBYW10pID0+IFhbXSB7XG4gIHJldHVybiBjb21wYXJlID0+XG4gICAgc291cmNlLnJlZHVjZSgoYWNjLCBlbGVtZW50KSA9PiB7XG4gICAgICBjb25zdCBmb3VuZEVsZW1lbnQgPSBmaW5kQnlJZChlbGVtZW50LmlkKShjb21wYXJlKTtcbiAgICAgIHJldHVybiBmb3VuZEVsZW1lbnQgPyBbLi4uYWNjLCBmb3VuZEVsZW1lbnRdIDogYWNjO1xuICAgIH0sIFtdIGFzIFhbXSk7XG59XG4iXX0=
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@kepler.gl/utils",
3
3
  "author": "Shan He <shan@uber.com>",
4
- "version": "3.0.0-alpha.0",
4
+ "version": "3.0.0-alpha.1",
5
5
  "description": "kepler.gl constants used by kepler.gl components, actions and reducers",
6
6
  "license": "MIT",
7
7
  "main": "dist/index.js",
@@ -30,10 +30,10 @@
30
30
  "umd"
31
31
  ],
32
32
  "dependencies": {
33
- "@kepler.gl/constants": "3.0.0-alpha.0",
34
- "@kepler.gl/types": "3.0.0-alpha.0",
35
- "@luma.gl/constants": "^8.5.10",
36
- "@luma.gl/core": "^8.5.10",
33
+ "@kepler.gl/constants": "3.0.0-alpha.1",
34
+ "@kepler.gl/types": "3.0.0-alpha.1",
35
+ "@luma.gl/constants": "^8.5.19",
36
+ "@luma.gl/core": "^8.5.19",
37
37
  "@mapbox/geo-viewport": "^0.4.1",
38
38
  "@turf/boolean-within": "^6.0.1",
39
39
  "@turf/helpers": "^6.1.4",
@@ -56,24 +56,24 @@
56
56
  "lodash.memoize": "^4.1.2",
57
57
  "lodash.throttle": "^4.1.1",
58
58
  "mini-svg-data-uri": "^1.0.3",
59
- "moment-timezone": "^0.5.32",
60
- "react": "^16.8.4",
59
+ "moment-timezone": "^0.5.35",
60
+ "react": "^18.2.0",
61
61
  "resize-observer-polyfill": "^1.5.1",
62
- "type-analyzer": "0.3.0"
63
- },
62
+ "type-analyzer": "0.4.0"
63
+ },
64
64
  "nyc": {
65
65
  "sourceMap": false,
66
66
  "instrument": false
67
67
  },
68
68
  "engines": {
69
- "node": ">=12.0.0"
69
+ "node": ">=14.21.1"
70
70
  },
71
71
  "maintainers": [
72
72
  "Shan He <heshan0131@gmail.com>",
73
73
  "Giuseppe Macri <gmacri@uber.com>"
74
74
  ],
75
75
  "volta": {
76
- "node": "12.22.0",
76
+ "node": "14.21.1",
77
77
  "yarn": "1.22.17"
78
78
  }
79
79
  }