@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,138 @@
1
+ import { ProtoDatasetField } from '@kepler.gl/types';
2
+ import { DataRow, SharedRowOptions } from './data-row';
3
+ /**
4
+ * Specifies a range of rows of a data container that should be processed.
5
+ */
6
+ export declare type RangeOptions = {
7
+ start?: number;
8
+ end?: number;
9
+ };
10
+ export interface DataContainerInterface {
11
+ /**
12
+ * Updates the data container with new data.
13
+ * @param updateData updated data, e.g. for arrow data container, it's an array of arrow columns; for row data container, it's an array of rows.
14
+ */
15
+ update?(updateData: any[]): void;
16
+ /**
17
+ * Returns the number of rows in the data container.
18
+ * @returns Number of rows in the data container.
19
+ */
20
+ numRows(): number;
21
+ /**
22
+ * Returns the number of columns in the data container.
23
+ * @returns Number of columns in the data container.
24
+ */
25
+ numColumns(): number;
26
+ /**
27
+ * Returns the value stored at the specified cell in the data container.
28
+ * @param rowIndex Row index.
29
+ * @param columnIndex Column index.
30
+ * @returns Value at the specified cell.
31
+ */
32
+ valueAt(rowIndex: number, columnIndex: number): any;
33
+ /**
34
+ * Returns the row at the specified index.
35
+ * @param rowIndex Row index.
36
+ * @param sharedRow Passed row is filled with contents from the specified index and returned without extra row allocations.
37
+ * @returns A row object.
38
+ */
39
+ row(rowIndex: number, sharedRow?: SharedRowOptions): DataRow;
40
+ /**
41
+ * Returns the specified row of the data container represented as an array.
42
+ * @param rowIndex Row index.
43
+ * @returns The specified row represented as an array.
44
+ */
45
+ rowAsArray(rowIndex: number): any[];
46
+ /**
47
+ * Returns an iterator to sequentially access all rows in the data container.
48
+ * @param sharedRow Indicates that a temporary row object should be used.
49
+ * If enabled, the returned row object is shared between calls
50
+ * and mustn't be stored without cloning.
51
+ * Passed row is filled with contents of the specified row and returned on each iteration.
52
+ * @returns An iterator to sequentially access all rows in the data container.
53
+ */
54
+ rows(sharedRow?: SharedRowOptions): Generator<DataRow, void, any>;
55
+ /**
56
+ * Returns an iterator to sequentially access all values in the specified column of the data container.
57
+ * @param columnIndex Column index.
58
+ * @returns An iterator to all values in the specified column of the data container.
59
+ */
60
+ column(columnIndex: number): Generator<any, void, any>;
61
+ /**
62
+ * Returns the column object at the specified index.
63
+ * @param columnIndex Column index.
64
+ * @returns The column object at the specified index.
65
+ */
66
+ getColumn?(columnIndex: number): unknown;
67
+ /**
68
+ * Returns the field object at the specified index.
69
+ * @param columnIndex Column index.
70
+ * @returns The field object at the specified index.
71
+ */
72
+ getField?(columnIndex: number): ProtoDatasetField;
73
+ /**
74
+ * Returns the underlying data object.
75
+ * @returns Returns the underlying data object.
76
+ */
77
+ getTable?(): unknown;
78
+ /**
79
+ * Returns contents of the data container as a two-dimensional array.
80
+ * @returns Data.
81
+ */
82
+ flattenData(): any[][];
83
+ /**
84
+ * Generates an array of indices where each index represents a row in the data container.
85
+ * @returns An array of indices.
86
+ */
87
+ getPlainIndex(): number[];
88
+ /**
89
+ * Creates a new array populated with the results of calling the provided callback
90
+ * on every row in the data container.
91
+ * @param func Callback that is called for every row of the data container.
92
+ * The callback is called with the following arguments:
93
+ * - row: The current row being processed in the data container.
94
+ * - index: The index of the current row being processed in the data container.
95
+ * @param sharedRow Truthy value indicates that a shared row object should be used.
96
+ * Make sure the func callback doesn't store the row object in such case,
97
+ * and clone the row in case you need to store it.
98
+ * @param options Specify start and end row indices that should be mapped.
99
+ * @returns A new array with each element being the result of the func callback.
100
+ */
101
+ map(func: (row: DataRow, index: number) => any, sharedRow?: SharedRowOptions, options?: RangeOptions): any[];
102
+ /**
103
+ * Creates a new array populated with the results of calling the provided callback.
104
+ * The callback is called for every row in the dataset, but only {index} object is passed.
105
+ * @param func Callback that is called for every row of the data container.
106
+ * @param options Specify start and end row indices that should be mapped.
107
+ * @returns A new array with each element being the result of the func callback.
108
+ */
109
+ mapIndex(func: ({ index: number }: {
110
+ index: any;
111
+ }, dataContainer: DataContainerInterface) => any, options?: RangeOptions): any[];
112
+ /**
113
+ * Returns the value of the first row in the provided data container that satisfies the provided testing function.
114
+ * @param func Function to execute on each value in the array.
115
+ * The function is called with the following arguments:
116
+ * - row: The current row being processed in the data container.
117
+ * - index: The index of the current row being processed in the data container.
118
+ * @param sharedRow Truthy value indicates that a shared row object should be used.
119
+ * Make sure the func callback doesn't store the row object in such case,
120
+ * and clone the row in case you need to store it.
121
+ * @returns First matching row or undefined if no rows satisfy the testing function.
122
+ */
123
+ find(func: (row: DataRow, index: number) => any, sharedRow?: SharedRowOptions): DataRow | undefined;
124
+ /**
125
+ * Executes a reducer function on each element of the data container, resulting in single output value.
126
+ * @param func A function to execute on each row in the data container.
127
+ * The function is called with the following arguments:
128
+ * - acc: The accumulator accumulates func's return values.
129
+ * - row: The current row being processed in the data container.
130
+ * - index: The index of the current row being processed in the data container.
131
+ * @param initialValue A value to use as the first argument to the first call of the func.
132
+ * @param sharedRow Truthy value indicates that a shared row object should be used.
133
+ * Make sure the func callback doesn't store the row object in such case,
134
+ * and clone the row in case you need to store it.
135
+ * @returns The single value that results from the reduction.
136
+ */
137
+ reduce(func: (acc: any, row: DataRow, index: number) => any, initialValue: any, sharedRow?: SharedRowOptions): any;
138
+ }
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL2RhdGEtY29udGFpbmVyLWludGVyZmFjZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQge1Byb3RvRGF0YXNldEZpZWxkfSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcbmltcG9ydCB7RGF0YVJvdywgU2hhcmVkUm93T3B0aW9uc30gZnJvbSAnLi9kYXRhLXJvdyc7XG5cbi8qKlxuICogU3BlY2lmaWVzIGEgcmFuZ2Ugb2Ygcm93cyBvZiBhIGRhdGEgY29udGFpbmVyIHRoYXQgc2hvdWxkIGJlIHByb2Nlc3NlZC5cbiAqL1xuZXhwb3J0IHR5cGUgUmFuZ2VPcHRpb25zID0ge1xuICBzdGFydD86IG51bWJlcjtcbiAgZW5kPzogbnVtYmVyO1xufTtcbmV4cG9ydCBpbnRlcmZhY2UgRGF0YUNvbnRhaW5lckludGVyZmFjZSB7XG4gIC8qKlxuICAgKiBVcGRhdGVzIHRoZSBkYXRhIGNvbnRhaW5lciB3aXRoIG5ldyBkYXRhLlxuICAgKiBAcGFyYW0gdXBkYXRlRGF0YSB1cGRhdGVkIGRhdGEsIGUuZy4gZm9yIGFycm93IGRhdGEgY29udGFpbmVyLCBpdCdzIGFuIGFycmF5IG9mIGFycm93IGNvbHVtbnM7IGZvciByb3cgZGF0YSBjb250YWluZXIsIGl0J3MgYW4gYXJyYXkgb2Ygcm93cy5cbiAgICovXG4gIHVwZGF0ZT8odXBkYXRlRGF0YTogYW55W10pOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBudW1iZXIgb2Ygcm93cyBpbiB0aGUgZGF0YSBjb250YWluZXIuXG4gICAqIEByZXR1cm5zIE51bWJlciBvZiByb3dzIGluIHRoZSBkYXRhIGNvbnRhaW5lci5cbiAgICovXG4gIG51bVJvd3MoKTogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgY29sdW1ucyBpbiB0aGUgZGF0YSBjb250YWluZXIuXG4gICAqIEByZXR1cm5zIE51bWJlciBvZiBjb2x1bW5zIGluIHRoZSBkYXRhIGNvbnRhaW5lci5cbiAgICovXG4gIG51bUNvbHVtbnMoKTogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSB2YWx1ZSBzdG9yZWQgYXQgdGhlIHNwZWNpZmllZCBjZWxsIGluIHRoZSBkYXRhIGNvbnRhaW5lci5cbiAgICogQHBhcmFtIHJvd0luZGV4IFJvdyBpbmRleC5cbiAgICogQHBhcmFtIGNvbHVtbkluZGV4IENvbHVtbiBpbmRleC5cbiAgICogQHJldHVybnMgVmFsdWUgYXQgdGhlIHNwZWNpZmllZCBjZWxsLlxuICAgKi9cbiAgdmFsdWVBdChyb3dJbmRleDogbnVtYmVyLCBjb2x1bW5JbmRleDogbnVtYmVyKTogYW55O1xuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSByb3cgYXQgdGhlIHNwZWNpZmllZCBpbmRleC5cbiAgICogQHBhcmFtIHJvd0luZGV4IFJvdyBpbmRleC5cbiAgICogQHBhcmFtIHNoYXJlZFJvdyBQYXNzZWQgcm93IGlzIGZpbGxlZCB3aXRoIGNvbnRlbnRzIGZyb20gdGhlIHNwZWNpZmllZCBpbmRleCBhbmQgcmV0dXJuZWQgd2l0aG91dCBleHRyYSByb3cgYWxsb2NhdGlvbnMuXG4gICAqIEByZXR1cm5zIEEgcm93IG9iamVjdC5cbiAgICovXG4gIHJvdyhyb3dJbmRleDogbnVtYmVyLCBzaGFyZWRSb3c/OiBTaGFyZWRSb3dPcHRpb25zKTogRGF0YVJvdztcblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgc3BlY2lmaWVkIHJvdyBvZiB0aGUgZGF0YSBjb250YWluZXIgcmVwcmVzZW50ZWQgYXMgYW4gYXJyYXkuXG4gICAqIEBwYXJhbSByb3dJbmRleCBSb3cgaW5kZXguXG4gICAqIEByZXR1cm5zIFRoZSBzcGVjaWZpZWQgcm93IHJlcHJlc2VudGVkIGFzIGFuIGFycmF5LlxuICAgKi9cbiAgcm93QXNBcnJheShyb3dJbmRleDogbnVtYmVyKTogYW55W107XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gaXRlcmF0b3IgdG8gc2VxdWVudGlhbGx5IGFjY2VzcyBhbGwgcm93cyBpbiB0aGUgZGF0YSBjb250YWluZXIuXG4gICAqIEBwYXJhbSBzaGFyZWRSb3cgSW5kaWNhdGVzIHRoYXQgYSB0ZW1wb3Jhcnkgcm93IG9iamVjdCBzaG91bGQgYmUgdXNlZC5cbiAgICogSWYgZW5hYmxlZCwgdGhlIHJldHVybmVkIHJvdyBvYmplY3QgaXMgc2hhcmVkIGJldHdlZW4gY2FsbHNcbiAgICogYW5kIG11c3RuJ3QgYmUgc3RvcmVkIHdpdGhvdXQgY2xvbmluZy5cbiAgICogUGFzc2VkIHJvdyBpcyBmaWxsZWQgd2l0aCBjb250ZW50cyBvZiB0aGUgc3BlY2lmaWVkIHJvdyBhbmQgcmV0dXJuZWQgb24gZWFjaCBpdGVyYXRpb24uXG4gICAqIEByZXR1cm5zIEFuIGl0ZXJhdG9yIHRvIHNlcXVlbnRpYWxseSBhY2Nlc3MgYWxsIHJvd3MgaW4gdGhlIGRhdGEgY29udGFpbmVyLlxuICAgKi9cbiAgcm93cyhzaGFyZWRSb3c/OiBTaGFyZWRSb3dPcHRpb25zKTogR2VuZXJhdG9yPERhdGFSb3csIHZvaWQsIGFueT47XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gaXRlcmF0b3IgdG8gc2VxdWVudGlhbGx5IGFjY2VzcyBhbGwgdmFsdWVzIGluIHRoZSBzcGVjaWZpZWQgY29sdW1uIG9mIHRoZSBkYXRhIGNvbnRhaW5lci5cbiAgICogQHBhcmFtIGNvbHVtbkluZGV4IENvbHVtbiBpbmRleC5cbiAgICogQHJldHVybnMgQW4gaXRlcmF0b3IgdG8gYWxsIHZhbHVlcyBpbiB0aGUgc3BlY2lmaWVkIGNvbHVtbiBvZiB0aGUgZGF0YSBjb250YWluZXIuXG4gICAqL1xuICBjb2x1bW4oY29sdW1uSW5kZXg6IG51bWJlcik6IEdlbmVyYXRvcjxhbnksIHZvaWQsIGFueT47XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGNvbHVtbiBvYmplY3QgYXQgdGhlIHNwZWNpZmllZCBpbmRleC5cbiAgICogQHBhcmFtIGNvbHVtbkluZGV4IENvbHVtbiBpbmRleC5cbiAgICogQHJldHVybnMgVGhlIGNvbHVtbiBvYmplY3QgYXQgdGhlIHNwZWNpZmllZCBpbmRleC5cbiAgICovXG4gIGdldENvbHVtbj8oY29sdW1uSW5kZXg6IG51bWJlcik6IHVua25vd247XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGZpZWxkIG9iamVjdCBhdCB0aGUgc3BlY2lmaWVkIGluZGV4LlxuICAgKiBAcGFyYW0gY29sdW1uSW5kZXggQ29sdW1uIGluZGV4LlxuICAgKiBAcmV0dXJucyBUaGUgZmllbGQgb2JqZWN0IGF0IHRoZSBzcGVjaWZpZWQgaW5kZXguXG4gICAqL1xuICBnZXRGaWVsZD8oY29sdW1uSW5kZXg6IG51bWJlcik6IFByb3RvRGF0YXNldEZpZWxkO1xuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSB1bmRlcmx5aW5nIGRhdGEgb2JqZWN0LlxuICAgKiBAcmV0dXJucyBSZXR1cm5zIHRoZSB1bmRlcmx5aW5nIGRhdGEgb2JqZWN0LlxuICAgKi9cbiAgZ2V0VGFibGU/KCk6IHVua25vd247XG5cbiAgLyoqXG4gICAqIFJldHVybnMgY29udGVudHMgb2YgdGhlIGRhdGEgY29udGFpbmVyIGFzIGEgdHdvLWRpbWVuc2lvbmFsIGFycmF5LlxuICAgKiBAcmV0dXJucyBEYXRhLlxuICAgKi9cbiAgZmxhdHRlbkRhdGEoKTogYW55W11bXTtcblxuICAvKipcbiAgICogR2VuZXJhdGVzIGFuIGFycmF5IG9mIGluZGljZXMgd2hlcmUgZWFjaCBpbmRleCByZXByZXNlbnRzIGEgcm93IGluIHRoZSBkYXRhIGNvbnRhaW5lci5cbiAgICogQHJldHVybnMgQW4gYXJyYXkgb2YgaW5kaWNlcy5cbiAgICovXG4gIGdldFBsYWluSW5kZXgoKTogbnVtYmVyW107XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgYXJyYXkgcG9wdWxhdGVkIHdpdGggdGhlIHJlc3VsdHMgb2YgY2FsbGluZyB0aGUgcHJvdmlkZWQgY2FsbGJhY2tcbiAgICogb24gZXZlcnkgcm93IGluIHRoZSBkYXRhIGNvbnRhaW5lci5cbiAgICogQHBhcmFtIGZ1bmMgQ2FsbGJhY2sgdGhhdCBpcyBjYWxsZWQgZm9yIGV2ZXJ5IHJvdyBvZiB0aGUgZGF0YSBjb250YWluZXIuXG4gICAqIFRoZSBjYWxsYmFjayBpcyBjYWxsZWQgd2l0aCB0aGUgZm9sbG93aW5nIGFyZ3VtZW50czpcbiAgICogLSByb3c6IFRoZSBjdXJyZW50IHJvdyBiZWluZyBwcm9jZXNzZWQgaW4gdGhlIGRhdGEgY29udGFpbmVyLlxuICAgKiAtIGluZGV4OiBUaGUgaW5kZXggb2YgdGhlIGN1cnJlbnQgcm93IGJlaW5nIHByb2Nlc3NlZCBpbiB0aGUgZGF0YSBjb250YWluZXIuXG4gICAqIEBwYXJhbSBzaGFyZWRSb3cgVHJ1dGh5IHZhbHVlIGluZGljYXRlcyB0aGF0IGEgc2hhcmVkIHJvdyBvYmplY3Qgc2hvdWxkIGJlIHVzZWQuXG4gICAqIE1ha2Ugc3VyZSB0aGUgZnVuYyBjYWxsYmFjayBkb2Vzbid0IHN0b3JlIHRoZSByb3cgb2JqZWN0IGluIHN1Y2ggY2FzZSxcbiAgICogYW5kIGNsb25lIHRoZSByb3cgaW4gY2FzZSB5b3UgbmVlZCB0byBzdG9yZSBpdC5cbiAgICogQHBhcmFtIG9wdGlvbnMgU3BlY2lmeSBzdGFydCBhbmQgZW5kIHJvdyBpbmRpY2VzIHRoYXQgc2hvdWxkIGJlIG1hcHBlZC5cbiAgICogQHJldHVybnMgQSBuZXcgYXJyYXkgd2l0aCBlYWNoIGVsZW1lbnQgYmVpbmcgdGhlIHJlc3VsdCBvZiB0aGUgZnVuYyBjYWxsYmFjay5cbiAgICovXG4gIG1hcChcbiAgICBmdW5jOiAocm93OiBEYXRhUm93LCBpbmRleDogbnVtYmVyKSA9PiBhbnksXG4gICAgc2hhcmVkUm93PzogU2hhcmVkUm93T3B0aW9ucyxcbiAgICBvcHRpb25zPzogUmFuZ2VPcHRpb25zXG4gICk6IGFueVtdO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IGFycmF5IHBvcHVsYXRlZCB3aXRoIHRoZSByZXN1bHRzIG9mIGNhbGxpbmcgdGhlIHByb3ZpZGVkIGNhbGxiYWNrLlxuICAgKiBUaGUgY2FsbGJhY2sgaXMgY2FsbGVkIGZvciBldmVyeSByb3cgaW4gdGhlIGRhdGFzZXQsIGJ1dCBvbmx5IHtpbmRleH0gb2JqZWN0IGlzIHBhc3NlZC5cbiAgICogQHBhcmFtIGZ1bmMgQ2FsbGJhY2sgdGhhdCBpcyBjYWxsZWQgZm9yIGV2ZXJ5IHJvdyBvZiB0aGUgZGF0YSBjb250YWluZXIuXG4gICAqIEBwYXJhbSBvcHRpb25zIFNwZWNpZnkgc3RhcnQgYW5kIGVuZCByb3cgaW5kaWNlcyB0aGF0IHNob3VsZCBiZSBtYXBwZWQuXG4gICAqIEByZXR1cm5zIEEgbmV3IGFycmF5IHdpdGggZWFjaCBlbGVtZW50IGJlaW5nIHRoZSByZXN1bHQgb2YgdGhlIGZ1bmMgY2FsbGJhY2suXG4gICAqL1xuICBtYXBJbmRleChcbiAgICBmdW5jOiAoe2luZGV4OiBudW1iZXJ9LCBkYXRhQ29udGFpbmVyOiBEYXRhQ29udGFpbmVySW50ZXJmYWNlKSA9PiBhbnksXG4gICAgb3B0aW9ucz86IFJhbmdlT3B0aW9uc1xuICApOiBhbnlbXTtcblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgdmFsdWUgb2YgdGhlIGZpcnN0IHJvdyBpbiB0aGUgcHJvdmlkZWQgZGF0YSBjb250YWluZXIgdGhhdCBzYXRpc2ZpZXMgdGhlIHByb3ZpZGVkIHRlc3RpbmcgZnVuY3Rpb24uXG4gICAqIEBwYXJhbSBmdW5jIEZ1bmN0aW9uIHRvIGV4ZWN1dGUgb24gZWFjaCB2YWx1ZSBpbiB0aGUgYXJyYXkuXG4gICAqIFRoZSBmdW5jdGlvbiBpcyBjYWxsZWQgd2l0aCB0aGUgZm9sbG93aW5nIGFyZ3VtZW50czpcbiAgICogLSByb3c6IFRoZSBjdXJyZW50IHJvdyBiZWluZyBwcm9jZXNzZWQgaW4gdGhlIGRhdGEgY29udGFpbmVyLlxuICAgKiAtIGluZGV4OiBUaGUgaW5kZXggb2YgdGhlIGN1cnJlbnQgcm93IGJlaW5nIHByb2Nlc3NlZCBpbiB0aGUgZGF0YSBjb250YWluZXIuXG4gICAqIEBwYXJhbSBzaGFyZWRSb3cgVHJ1dGh5IHZhbHVlIGluZGljYXRlcyB0aGF0IGEgc2hhcmVkIHJvdyBvYmplY3Qgc2hvdWxkIGJlIHVzZWQuXG4gICAqIE1ha2Ugc3VyZSB0aGUgZnVuYyBjYWxsYmFjayBkb2Vzbid0IHN0b3JlIHRoZSByb3cgb2JqZWN0IGluIHN1Y2ggY2FzZSxcbiAgICogYW5kIGNsb25lIHRoZSByb3cgaW4gY2FzZSB5b3UgbmVlZCB0byBzdG9yZSBpdC5cbiAgICogQHJldHVybnMgRmlyc3QgbWF0Y2hpbmcgcm93IG9yIHVuZGVmaW5lZCBpZiBubyByb3dzIHNhdGlzZnkgdGhlIHRlc3RpbmcgZnVuY3Rpb24uXG4gICAqL1xuICBmaW5kKFxuICAgIGZ1bmM6IChyb3c6IERhdGFSb3csIGluZGV4OiBudW1iZXIpID0+IGFueSxcbiAgICBzaGFyZWRSb3c/OiBTaGFyZWRSb3dPcHRpb25zXG4gICk6IERhdGFSb3cgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIEV4ZWN1dGVzIGEgcmVkdWNlciBmdW5jdGlvbiBvbiBlYWNoIGVsZW1lbnQgb2YgdGhlIGRhdGEgY29udGFpbmVyLCByZXN1bHRpbmcgaW4gc2luZ2xlIG91dHB1dCB2YWx1ZS5cbiAgICogQHBhcmFtIGZ1bmMgQSBmdW5jdGlvbiB0byBleGVjdXRlIG9uIGVhY2ggcm93IGluIHRoZSBkYXRhIGNvbnRhaW5lci5cbiAgICogVGhlIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aXRoIHRoZSBmb2xsb3dpbmcgYXJndW1lbnRzOlxuICAgKiAtIGFjYzogVGhlIGFjY3VtdWxhdG9yIGFjY3VtdWxhdGVzIGZ1bmMncyByZXR1cm4gdmFsdWVzLlxuICAgKiAtIHJvdzogVGhlIGN1cnJlbnQgcm93IGJlaW5nIHByb2Nlc3NlZCBpbiB0aGUgZGF0YSBjb250YWluZXIuXG4gICAqIC0gaW5kZXg6IFRoZSBpbmRleCBvZiB0aGUgY3VycmVudCByb3cgYmVpbmcgcHJvY2Vzc2VkIGluIHRoZSBkYXRhIGNvbnRhaW5lci5cbiAgICogQHBhcmFtIGluaXRpYWxWYWx1ZSBBIHZhbHVlIHRvIHVzZSBhcyB0aGUgZmlyc3QgYXJndW1lbnQgdG8gdGhlIGZpcnN0IGNhbGwgb2YgdGhlIGZ1bmMuXG4gICAqIEBwYXJhbSBzaGFyZWRSb3cgVHJ1dGh5IHZhbHVlIGluZGljYXRlcyB0aGF0IGEgc2hhcmVkIHJvdyBvYmplY3Qgc2hvdWxkIGJlIHVzZWQuXG4gICAqIE1ha2Ugc3VyZSB0aGUgZnVuYyBjYWxsYmFjayBkb2Vzbid0IHN0b3JlIHRoZSByb3cgb2JqZWN0IGluIHN1Y2ggY2FzZSxcbiAgICogYW5kIGNsb25lIHRoZSByb3cgaW4gY2FzZSB5b3UgbmVlZCB0byBzdG9yZSBpdC5cbiAgICogQHJldHVybnMgVGhlIHNpbmdsZSB2YWx1ZSB0aGF0IHJlc3VsdHMgZnJvbSB0aGUgcmVkdWN0aW9uLlxuICAgKi9cbiAgcmVkdWNlKFxuICAgIGZ1bmM6IChhY2M6IGFueSwgcm93OiBEYXRhUm93LCBpbmRleDogbnVtYmVyKSA9PiBhbnksXG4gICAgaW5pdGlhbFZhbHVlOiBhbnksXG4gICAgc2hhcmVkUm93PzogU2hhcmVkUm93T3B0aW9uc1xuICApOiBhbnk7XG59XG4iXSwibWFwcGluZ3MiOiIiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -0,0 +1,30 @@
1
+ import { DataContainerInterface } from './data-container-interface';
2
+ import { ProtoDatasetField } from '@kepler.gl/types';
3
+ export declare type DataContainerOptions = {
4
+ inputDataFormat?: string;
5
+ fields?: ProtoDatasetField[];
6
+ };
7
+ export declare const DataForm: {
8
+ ROWS_ARRAY: string;
9
+ COLS_ARRAY: string;
10
+ };
11
+ /**
12
+ * Creates a data container wrapper for the data.
13
+ * @param data Data.
14
+ * @param options Options.
15
+ * @returns A data container object which is based on data and options.
16
+ */
17
+ export declare function createDataContainer(data: any[], options?: DataContainerOptions): DataContainerInterface;
18
+ /**
19
+ * Creates a data container wrapper around another data container.
20
+ * @param dataContainer Parent data container.
21
+ * @param indices An array of row indices in the parent data container.
22
+ */
23
+ export declare function createIndexedDataContainer(dataContainer: DataContainerInterface, indices: number[]): DataContainerInterface;
24
+ /**
25
+ * Get a sample of rows from a data container.
26
+ * @param dataContainer Data container to get samples from.
27
+ * @param sampleSize Max number of samples.
28
+ * @returns A data container which contains samples from the original data container.
29
+ */
30
+ export declare function getSampleData(dataContainer: DataContainerInterface, sampleSize?: number): DataContainerInterface;
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.DataForm = void 0;
8
+ exports.createDataContainer = createDataContainer;
9
+ exports.createIndexedDataContainer = createIndexedDataContainer;
10
+ exports.getSampleData = getSampleData;
11
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
12
+ var _arrowDataContainer = require("./arrow-data-container");
13
+ var _rowDataContainer = require("./row-data-container");
14
+ var _indexedDataContainer = require("./indexed-data-container");
15
+ 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; }
16
+ 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
17
+ // Copyright contributors to the kepler.gl project
18
+ var DataForm = exports.DataForm = {
19
+ ROWS_ARRAY: 'ROWS_ARRAY',
20
+ COLS_ARRAY: 'COLS_ARRAY'
21
+ };
22
+ var defaultOptions = {
23
+ inputDataFormat: DataForm.ROWS_ARRAY
24
+ };
25
+
26
+ /**
27
+ * Creates a data container wrapper for the data.
28
+ * @param data Data.
29
+ * @param options Options.
30
+ * @returns A data container object which is based on data and options.
31
+ */
32
+ function createDataContainer(data) {
33
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultOptions;
34
+ options = _objectSpread(_objectSpread({}, defaultOptions), options);
35
+ if (options.inputDataFormat === DataForm.ROWS_ARRAY) {
36
+ return new _rowDataContainer.RowDataContainer({
37
+ rows: data,
38
+ fields: options.fields
39
+ });
40
+ } else if (options.inputDataFormat === DataForm.COLS_ARRAY) {
41
+ return new _arrowDataContainer.ArrowDataContainer({
42
+ cols: data,
43
+ fields: options.fields
44
+ });
45
+ }
46
+ throw Error('Failed to create a data container: not implemented format');
47
+ }
48
+
49
+ /**
50
+ * Creates a data container wrapper around another data container.
51
+ * @param dataContainer Parent data container.
52
+ * @param indices An array of row indices in the parent data container.
53
+ */
54
+ function createIndexedDataContainer(dataContainer, indices) {
55
+ return new _indexedDataContainer.IndexedDataContainer(dataContainer, indices);
56
+ }
57
+
58
+ /**
59
+ * Get a sample of rows from a data container.
60
+ * @param dataContainer Data container to get samples from.
61
+ * @param sampleSize Max number of samples.
62
+ * @returns A data container which contains samples from the original data container.
63
+ */
64
+ function getSampleData(dataContainer) {
65
+ var sampleSize = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 500;
66
+ var numberOfRows = dataContainer.numRows();
67
+ var sampleStep = Math.max(Math.floor(numberOfRows / sampleSize), 1);
68
+ var indices = [];
69
+ for (var i = 0; i < numberOfRows; i += sampleStep) {
70
+ indices.push(i);
71
+ }
72
+ return createIndexedDataContainer(dataContainer, indices);
73
+ }
74
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYXJyb3dEYXRhQ29udGFpbmVyIiwicmVxdWlyZSIsIl9yb3dEYXRhQ29udGFpbmVyIiwiX2luZGV4ZWREYXRhQ29udGFpbmVyIiwib3duS2V5cyIsImUiLCJyIiwidCIsIk9iamVjdCIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJEYXRhRm9ybSIsImV4cG9ydHMiLCJST1dTX0FSUkFZIiwiQ09MU19BUlJBWSIsImRlZmF1bHRPcHRpb25zIiwiaW5wdXREYXRhRm9ybWF0IiwiY3JlYXRlRGF0YUNvbnRhaW5lciIsImRhdGEiLCJvcHRpb25zIiwidW5kZWZpbmVkIiwiUm93RGF0YUNvbnRhaW5lciIsInJvd3MiLCJmaWVsZHMiLCJBcnJvd0RhdGFDb250YWluZXIiLCJjb2xzIiwiRXJyb3IiLCJjcmVhdGVJbmRleGVkRGF0YUNvbnRhaW5lciIsImRhdGFDb250YWluZXIiLCJpbmRpY2VzIiwiSW5kZXhlZERhdGFDb250YWluZXIiLCJnZXRTYW1wbGVEYXRhIiwic2FtcGxlU2l6ZSIsIm51bWJlck9mUm93cyIsIm51bVJvd3MiLCJzYW1wbGVTdGVwIiwiTWF0aCIsIm1heCIsImZsb29yIiwiaSJdLCJzb3VyY2VzIjpbIi4uL3NyYy9kYXRhLWNvbnRhaW5lci11dGlscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQge0Fycm93RGF0YUNvbnRhaW5lcn0gZnJvbSAnLi9hcnJvdy1kYXRhLWNvbnRhaW5lcic7XG5pbXBvcnQge1Jvd0RhdGFDb250YWluZXJ9IGZyb20gJy4vcm93LWRhdGEtY29udGFpbmVyJztcbmltcG9ydCB7SW5kZXhlZERhdGFDb250YWluZXJ9IGZyb20gJy4vaW5kZXhlZC1kYXRhLWNvbnRhaW5lcic7XG5cbmltcG9ydCB7RGF0YUNvbnRhaW5lckludGVyZmFjZX0gZnJvbSAnLi9kYXRhLWNvbnRhaW5lci1pbnRlcmZhY2UnO1xuaW1wb3J0IHtQcm90b0RhdGFzZXRGaWVsZH0gZnJvbSAnQGtlcGxlci5nbC90eXBlcyc7XG5cbmV4cG9ydCB0eXBlIERhdGFDb250YWluZXJPcHRpb25zID0ge1xuICBpbnB1dERhdGFGb3JtYXQ/OiBzdHJpbmc7IC8vIG9uZSBvZiBEYXRhRm9ybVxuICBmaWVsZHM/OiBQcm90b0RhdGFzZXRGaWVsZFtdO1xufTtcblxuZXhwb3J0IGNvbnN0IERhdGFGb3JtID0ge1xuICBST1dTX0FSUkFZOiAnUk9XU19BUlJBWScsXG4gIENPTFNfQVJSQVk6ICdDT0xTX0FSUkFZJ1xufTtcblxuY29uc3QgZGVmYXVsdE9wdGlvbnM6IERhdGFDb250YWluZXJPcHRpb25zID0ge1xuICBpbnB1dERhdGFGb3JtYXQ6IERhdGFGb3JtLlJPV1NfQVJSQVlcbn07XG5cbi8qKlxuICogQ3JlYXRlcyBhIGRhdGEgY29udGFpbmVyIHdyYXBwZXIgZm9yIHRoZSBkYXRhLlxuICogQHBhcmFtIGRhdGEgRGF0YS5cbiAqIEBwYXJhbSBvcHRpb25zIE9wdGlvbnMuXG4gKiBAcmV0dXJucyBBIGRhdGEgY29udGFpbmVyIG9iamVjdCB3aGljaCBpcyBiYXNlZCBvbiBkYXRhIGFuZCBvcHRpb25zLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRGF0YUNvbnRhaW5lcihcbiAgZGF0YTogYW55W10sXG4gIG9wdGlvbnM6IERhdGFDb250YWluZXJPcHRpb25zID0gZGVmYXVsdE9wdGlvbnNcbik6IERhdGFDb250YWluZXJJbnRlcmZhY2Uge1xuICBvcHRpb25zID0gey4uLmRlZmF1bHRPcHRpb25zLCAuLi5vcHRpb25zfTtcblxuICBpZiAob3B0aW9ucy5pbnB1dERhdGFGb3JtYXQgPT09IERhdGFGb3JtLlJPV1NfQVJSQVkpIHtcbiAgICByZXR1cm4gbmV3IFJvd0RhdGFDb250YWluZXIoe3Jvd3M6IGRhdGEsIGZpZWxkczogb3B0aW9ucy5maWVsZHN9KTtcbiAgfSBlbHNlIGlmIChvcHRpb25zLmlucHV0RGF0YUZvcm1hdCA9PT0gRGF0YUZvcm0uQ09MU19BUlJBWSkge1xuICAgIHJldHVybiBuZXcgQXJyb3dEYXRhQ29udGFpbmVyKHtjb2xzOiBkYXRhLCBmaWVsZHM6IG9wdGlvbnMuZmllbGRzfSk7XG4gIH1cblxuICB0aHJvdyBFcnJvcignRmFpbGVkIHRvIGNyZWF0ZSBhIGRhdGEgY29udGFpbmVyOiBub3QgaW1wbGVtZW50ZWQgZm9ybWF0Jyk7XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIGRhdGEgY29udGFpbmVyIHdyYXBwZXIgYXJvdW5kIGFub3RoZXIgZGF0YSBjb250YWluZXIuXG4gKiBAcGFyYW0gZGF0YUNvbnRhaW5lciBQYXJlbnQgZGF0YSBjb250YWluZXIuXG4gKiBAcGFyYW0gaW5kaWNlcyBBbiBhcnJheSBvZiByb3cgaW5kaWNlcyBpbiB0aGUgcGFyZW50IGRhdGEgY29udGFpbmVyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlSW5kZXhlZERhdGFDb250YWluZXIoXG4gIGRhdGFDb250YWluZXI6IERhdGFDb250YWluZXJJbnRlcmZhY2UsXG4gIGluZGljZXM6IG51bWJlcltdXG4pOiBEYXRhQ29udGFpbmVySW50ZXJmYWNlIHtcbiAgcmV0dXJuIG5ldyBJbmRleGVkRGF0YUNvbnRhaW5lcihkYXRhQ29udGFpbmVyLCBpbmRpY2VzKTtcbn1cblxuLyoqXG4gKiBHZXQgYSBzYW1wbGUgb2Ygcm93cyBmcm9tIGEgZGF0YSBjb250YWluZXIuXG4gKiBAcGFyYW0gZGF0YUNvbnRhaW5lciBEYXRhIGNvbnRhaW5lciB0byBnZXQgc2FtcGxlcyBmcm9tLlxuICogQHBhcmFtIHNhbXBsZVNpemUgTWF4IG51bWJlciBvZiBzYW1wbGVzLlxuICogQHJldHVybnMgQSBkYXRhIGNvbnRhaW5lciB3aGljaCBjb250YWlucyBzYW1wbGVzIGZyb20gdGhlIG9yaWdpbmFsIGRhdGEgY29udGFpbmVyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2FtcGxlRGF0YShcbiAgZGF0YUNvbnRhaW5lcjogRGF0YUNvbnRhaW5lckludGVyZmFjZSxcbiAgc2FtcGxlU2l6ZSA9IDUwMFxuKTogRGF0YUNvbnRhaW5lckludGVyZmFjZSB7XG4gIGNvbnN0IG51bWJlck9mUm93cyA9IGRhdGFDb250YWluZXIubnVtUm93cygpO1xuICBjb25zdCBzYW1wbGVTdGVwID0gTWF0aC5tYXgoTWF0aC5mbG9vcihudW1iZXJPZlJvd3MgLyBzYW1wbGVTaXplKSwgMSk7XG5cbiAgY29uc3QgaW5kaWNlczogbnVtYmVyW10gPSBbXTtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBudW1iZXJPZlJvd3M7IGkgKz0gc2FtcGxlU3RlcCkge1xuICAgIGluZGljZXMucHVzaChpKTtcbiAgfVxuXG4gIHJldHVybiBjcmVhdGVJbmRleGVkRGF0YUNvbnRhaW5lcihkYXRhQ29udGFpbmVyLCBpbmRpY2VzKTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFHQSxJQUFBQSxtQkFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsaUJBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLHFCQUFBLEdBQUFGLE9BQUE7QUFBOEQsU0FBQUcsUUFBQUMsQ0FBQSxFQUFBQyxDQUFBLFFBQUFDLENBQUEsR0FBQUMsTUFBQSxDQUFBQyxJQUFBLENBQUFKLENBQUEsT0FBQUcsTUFBQSxDQUFBRSxxQkFBQSxRQUFBQyxDQUFBLEdBQUFILE1BQUEsQ0FBQUUscUJBQUEsQ0FBQUwsQ0FBQSxHQUFBQyxDQUFBLEtBQUFLLENBQUEsR0FBQUEsQ0FBQSxDQUFBQyxNQUFBLFdBQUFOLENBQUEsV0FBQUUsTUFBQSxDQUFBSyx3QkFBQSxDQUFBUixDQUFBLEVBQUFDLENBQUEsRUFBQVEsVUFBQSxPQUFBUCxDQUFBLENBQUFRLElBQUEsQ0FBQUMsS0FBQSxDQUFBVCxDQUFBLEVBQUFJLENBQUEsWUFBQUosQ0FBQTtBQUFBLFNBQUFVLGNBQUFaLENBQUEsYUFBQUMsQ0FBQSxNQUFBQSxDQUFBLEdBQUFZLFNBQUEsQ0FBQUMsTUFBQSxFQUFBYixDQUFBLFVBQUFDLENBQUEsV0FBQVcsU0FBQSxDQUFBWixDQUFBLElBQUFZLFNBQUEsQ0FBQVosQ0FBQSxRQUFBQSxDQUFBLE9BQUFGLE9BQUEsQ0FBQUksTUFBQSxDQUFBRCxDQUFBLE9BQUFhLE9BQUEsV0FBQWQsQ0FBQSxRQUFBZSxnQkFBQSxhQUFBaEIsQ0FBQSxFQUFBQyxDQUFBLEVBQUFDLENBQUEsQ0FBQUQsQ0FBQSxTQUFBRSxNQUFBLENBQUFjLHlCQUFBLEdBQUFkLE1BQUEsQ0FBQWUsZ0JBQUEsQ0FBQWxCLENBQUEsRUFBQUcsTUFBQSxDQUFBYyx5QkFBQSxDQUFBZixDQUFBLEtBQUFILE9BQUEsQ0FBQUksTUFBQSxDQUFBRCxDQUFBLEdBQUFhLE9BQUEsV0FBQWQsQ0FBQSxJQUFBRSxNQUFBLENBQUFnQixjQUFBLENBQUFuQixDQUFBLEVBQUFDLENBQUEsRUFBQUUsTUFBQSxDQUFBSyx3QkFBQSxDQUFBTixDQUFBLEVBQUFELENBQUEsaUJBQUFELENBQUEsSUFMOUQ7QUFDQTtBQWNPLElBQU1vQixRQUFRLEdBQUFDLE9BQUEsQ0FBQUQsUUFBQSxHQUFHO0VBQ3RCRSxVQUFVLEVBQUUsWUFBWTtFQUN4QkMsVUFBVSxFQUFFO0FBQ2QsQ0FBQztBQUVELElBQU1DLGNBQW9DLEdBQUc7RUFDM0NDLGVBQWUsRUFBRUwsUUFBUSxDQUFDRTtBQUM1QixDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPLFNBQVNJLG1CQUFtQkEsQ0FDakNDLElBQVcsRUFFYTtFQUFBLElBRHhCQyxPQUE2QixHQUFBZixTQUFBLENBQUFDLE1BQUEsUUFBQUQsU0FBQSxRQUFBZ0IsU0FBQSxHQUFBaEIsU0FBQSxNQUFHVyxjQUFjO0VBRTlDSSxPQUFPLEdBQUFoQixhQUFBLENBQUFBLGFBQUEsS0FBT1ksY0FBYyxHQUFLSSxPQUFPLENBQUM7RUFFekMsSUFBSUEsT0FBTyxDQUFDSCxlQUFlLEtBQUtMLFFBQVEsQ0FBQ0UsVUFBVSxFQUFFO0lBQ25ELE9BQU8sSUFBSVEsa0NBQWdCLENBQUM7TUFBQ0MsSUFBSSxFQUFFSixJQUFJO01BQUVLLE1BQU0sRUFBRUosT0FBTyxDQUFDSTtJQUFNLENBQUMsQ0FBQztFQUNuRSxDQUFDLE1BQU0sSUFBSUosT0FBTyxDQUFDSCxlQUFlLEtBQUtMLFFBQVEsQ0FBQ0csVUFBVSxFQUFFO0lBQzFELE9BQU8sSUFBSVUsc0NBQWtCLENBQUM7TUFBQ0MsSUFBSSxFQUFFUCxJQUFJO01BQUVLLE1BQU0sRUFBRUosT0FBTyxDQUFDSTtJQUFNLENBQUMsQ0FBQztFQUNyRTtFQUVBLE1BQU1HLEtBQUssQ0FBQywyREFBMkQsQ0FBQztBQUMxRTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ08sU0FBU0MsMEJBQTBCQSxDQUN4Q0MsYUFBcUMsRUFDckNDLE9BQWlCLEVBQ087RUFDeEIsT0FBTyxJQUFJQywwQ0FBb0IsQ0FBQ0YsYUFBYSxFQUFFQyxPQUFPLENBQUM7QUFDekQ7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ08sU0FBU0UsYUFBYUEsQ0FDM0JILGFBQXFDLEVBRWI7RUFBQSxJQUR4QkksVUFBVSxHQUFBNUIsU0FBQSxDQUFBQyxNQUFBLFFBQUFELFNBQUEsUUFBQWdCLFNBQUEsR0FBQWhCLFNBQUEsTUFBRyxHQUFHO0VBRWhCLElBQU02QixZQUFZLEdBQUdMLGFBQWEsQ0FBQ00sT0FBTyxDQUFDLENBQUM7RUFDNUMsSUFBTUMsVUFBVSxHQUFHQyxJQUFJLENBQUNDLEdBQUcsQ0FBQ0QsSUFBSSxDQUFDRSxLQUFLLENBQUNMLFlBQVksR0FBR0QsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0VBRXJFLElBQU1ILE9BQWlCLEdBQUcsRUFBRTtFQUM1QixLQUFLLElBQUlVLENBQUMsR0FBRyxDQUFDLEVBQUVBLENBQUMsR0FBR04sWUFBWSxFQUFFTSxDQUFDLElBQUlKLFVBQVUsRUFBRTtJQUNqRE4sT0FBTyxDQUFDNUIsSUFBSSxDQUFDc0MsQ0FBQyxDQUFDO0VBQ2pCO0VBRUEsT0FBT1osMEJBQTBCLENBQUNDLGFBQWEsRUFBRUMsT0FBTyxDQUFDO0FBQzNEIiwiaWdub3JlTGlzdCI6W119
@@ -0,0 +1,59 @@
1
+ import { DataContainerInterface } from './data-container-interface';
2
+ /**
3
+ * Setting for shared row optimization.
4
+ * - False/undefined indicates that unique row objects should be used (default).
5
+ * - True indicates that a single temporary row object should be created and used without extra allocations.
6
+ * - A DataRow object indicates that the row should be used as a temporary shared row.
7
+ * When used, the content of the shared row isn't preserved between calls.
8
+ */
9
+ export declare type SharedRowOptions = DataRow | boolean | undefined;
10
+ /**
11
+ * Return type for createSharedRow:
12
+ * - DataRow object that should be used as shared row.
13
+ * - Falsy values indicate that shared row object shouldn't be used.
14
+ */
15
+ export declare type SharedRowOptionsResult = DataRow | false | undefined;
16
+ export declare class DataRow {
17
+ _dataContainer: DataContainerInterface | null;
18
+ _rowIndex: number;
19
+ /**
20
+ * Creates new DataRow.
21
+ * @param dataContainer Data container where data is stored. Can be initialized with null for shared rows.
22
+ * @param rowIndex Index of a row in the data container.
23
+ */
24
+ constructor(dataContainer: DataContainerInterface | null, rowIndex: number);
25
+ /**
26
+ * Conditionally creates a DataRow object.
27
+ * @param sharedRowDesc Accepts forllowing options:
28
+ * - true indicates that new DataRow should be created.
29
+ * - falsy value or a DataRow object is passed through without any change.
30
+ * @returns A new DataRow object or unchanged input argument.
31
+ */
32
+ static createSharedRow(sharedRowDesc: SharedRowOptions): SharedRowOptionsResult;
33
+ /**
34
+ * Returns the value stored at the specified index in the row.
35
+ * @param columnIndex Index of the requested field in the row.
36
+ * @returns Value at the index.
37
+ */
38
+ valueAt(columnIndex: number): any;
39
+ /**
40
+ * Returns the row represented as an array.
41
+ * @returns The row represented as an array.
42
+ */
43
+ values(): any[];
44
+ /**
45
+ * Setup a row object. The method is used by shared rows to prevent excessive allocations.
46
+ * @param dataContainer Data container.
47
+ * @param rowIndex Index of a row in the data container.
48
+ */
49
+ setSource(dataContainer: DataContainerInterface, rowIndex: number): void;
50
+ /**
51
+ * Creates a new array populated with the results of calling the provided function
52
+ * on every element of the row.
53
+ * @param handler The callback is called with the following arguments:
54
+ * - elem: The current element being processed in the row.
55
+ * - index: The index of the current element being processed in the row.
56
+ * @returns A new array with each element being the result of the func callback.
57
+ */
58
+ map(handler: (elem: any, index: number) => any): any[];
59
+ }
@@ -0,0 +1,110 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.DataRow = void 0;
8
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
9
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+ // SPDX-License-Identifier: MIT
12
+ // Copyright contributors to the kepler.gl project
13
+ /**
14
+ * Setting for shared row optimization.
15
+ * - False/undefined indicates that unique row objects should be used (default).
16
+ * - True indicates that a single temporary row object should be created and used without extra allocations.
17
+ * - A DataRow object indicates that the row should be used as a temporary shared row.
18
+ * When used, the content of the shared row isn't preserved between calls.
19
+ */
20
+ /**
21
+ * Return type for createSharedRow:
22
+ * - DataRow object that should be used as shared row.
23
+ * - Falsy values indicate that shared row object shouldn't be used.
24
+ */
25
+ var DataRow = exports.DataRow = /*#__PURE__*/function () {
26
+ /**
27
+ * Creates new DataRow.
28
+ * @param dataContainer Data container where data is stored. Can be initialized with null for shared rows.
29
+ * @param rowIndex Index of a row in the data container.
30
+ */
31
+ function DataRow(dataContainer, rowIndex) {
32
+ (0, _classCallCheck2["default"])(this, DataRow);
33
+ (0, _defineProperty2["default"])(this, "_dataContainer", void 0);
34
+ (0, _defineProperty2["default"])(this, "_rowIndex", void 0);
35
+ this._dataContainer = dataContainer;
36
+ this._rowIndex = rowIndex;
37
+ }
38
+
39
+ /**
40
+ * Conditionally creates a DataRow object.
41
+ * @param sharedRowDesc Accepts forllowing options:
42
+ * - true indicates that new DataRow should be created.
43
+ * - falsy value or a DataRow object is passed through without any change.
44
+ * @returns A new DataRow object or unchanged input argument.
45
+ */
46
+ return (0, _createClass2["default"])(DataRow, [{
47
+ key: "valueAt",
48
+ value:
49
+ /**
50
+ * Returns the value stored at the specified index in the row.
51
+ * @param columnIndex Index of the requested field in the row.
52
+ * @returns Value at the index.
53
+ */
54
+ function valueAt(columnIndex) {
55
+ var _this$_dataContainer;
56
+ return (_this$_dataContainer = this._dataContainer) === null || _this$_dataContainer === void 0 ? void 0 : _this$_dataContainer.valueAt(this._rowIndex, columnIndex);
57
+ }
58
+
59
+ /**
60
+ * Returns the row represented as an array.
61
+ * @returns The row represented as an array.
62
+ */
63
+ }, {
64
+ key: "values",
65
+ value: function values() {
66
+ return this._dataContainer ? this._dataContainer.rowAsArray(this._rowIndex) : [];
67
+ }
68
+
69
+ /**
70
+ * Setup a row object. The method is used by shared rows to prevent excessive allocations.
71
+ * @param dataContainer Data container.
72
+ * @param rowIndex Index of a row in the data container.
73
+ */
74
+ }, {
75
+ key: "setSource",
76
+ value: function setSource(dataContainer, rowIndex) {
77
+ this._dataContainer = dataContainer;
78
+ this._rowIndex = rowIndex;
79
+ }
80
+
81
+ /**
82
+ * Creates a new array populated with the results of calling the provided function
83
+ * on every element of the row.
84
+ * @param handler The callback is called with the following arguments:
85
+ * - elem: The current element being processed in the row.
86
+ * - index: The index of the current element being processed in the row.
87
+ * @returns A new array with each element being the result of the func callback.
88
+ */
89
+ }, {
90
+ key: "map",
91
+ value: function map(handler) {
92
+ var _this$_dataContainer2;
93
+ var numColumns = ((_this$_dataContainer2 = this._dataContainer) === null || _this$_dataContainer2 === void 0 ? void 0 : _this$_dataContainer2.numColumns()) || 0;
94
+ var out = [];
95
+ for (var column = 0; column < numColumns; ++column) {
96
+ out[column] = handler(this.valueAt(column), column);
97
+ }
98
+ return out;
99
+ }
100
+ }], [{
101
+ key: "createSharedRow",
102
+ value: function createSharedRow(sharedRowDesc) {
103
+ if (sharedRowDesc === true) {
104
+ return new DataRow(null, 0);
105
+ }
106
+ return sharedRowDesc;
107
+ }
108
+ }]);
109
+ }();
110
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJEYXRhUm93IiwiZXhwb3J0cyIsImRhdGFDb250YWluZXIiLCJyb3dJbmRleCIsIl9jbGFzc0NhbGxDaGVjazIiLCJfZGVmaW5lUHJvcGVydHkyIiwiX2RhdGFDb250YWluZXIiLCJfcm93SW5kZXgiLCJfY3JlYXRlQ2xhc3MyIiwia2V5IiwidmFsdWUiLCJ2YWx1ZUF0IiwiY29sdW1uSW5kZXgiLCJfdGhpcyRfZGF0YUNvbnRhaW5lciIsInZhbHVlcyIsInJvd0FzQXJyYXkiLCJzZXRTb3VyY2UiLCJtYXAiLCJoYW5kbGVyIiwiX3RoaXMkX2RhdGFDb250YWluZXIyIiwibnVtQ29sdW1ucyIsIm91dCIsImNvbHVtbiIsImNyZWF0ZVNoYXJlZFJvdyIsInNoYXJlZFJvd0Rlc2MiXSwic291cmNlcyI6WyIuLi9zcmMvZGF0YS1yb3cudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IHtEYXRhQ29udGFpbmVySW50ZXJmYWNlfSBmcm9tICcuL2RhdGEtY29udGFpbmVyLWludGVyZmFjZSc7XG5cbi8qKlxuICogU2V0dGluZyBmb3Igc2hhcmVkIHJvdyBvcHRpbWl6YXRpb24uXG4gKiAtIEZhbHNlL3VuZGVmaW5lZCBpbmRpY2F0ZXMgdGhhdCB1bmlxdWUgcm93IG9iamVjdHMgc2hvdWxkIGJlIHVzZWQgKGRlZmF1bHQpLlxuICogLSBUcnVlIGluZGljYXRlcyB0aGF0IGEgc2luZ2xlIHRlbXBvcmFyeSByb3cgb2JqZWN0IHNob3VsZCBiZSBjcmVhdGVkIGFuZCB1c2VkIHdpdGhvdXQgZXh0cmEgYWxsb2NhdGlvbnMuXG4gKiAtIEEgRGF0YVJvdyBvYmplY3QgaW5kaWNhdGVzIHRoYXQgdGhlIHJvdyBzaG91bGQgYmUgdXNlZCBhcyBhIHRlbXBvcmFyeSBzaGFyZWQgcm93LlxuICogV2hlbiB1c2VkLCB0aGUgY29udGVudCBvZiB0aGUgc2hhcmVkIHJvdyBpc24ndCBwcmVzZXJ2ZWQgYmV0d2VlbiBjYWxscy5cbiAqL1xuZXhwb3J0IHR5cGUgU2hhcmVkUm93T3B0aW9ucyA9IERhdGFSb3cgfCBib29sZWFuIHwgdW5kZWZpbmVkO1xuLyoqXG4gKiBSZXR1cm4gdHlwZSBmb3IgY3JlYXRlU2hhcmVkUm93OlxuICogLSBEYXRhUm93IG9iamVjdCB0aGF0IHNob3VsZCBiZSB1c2VkIGFzIHNoYXJlZCByb3cuXG4gKiAtIEZhbHN5IHZhbHVlcyBpbmRpY2F0ZSB0aGF0IHNoYXJlZCByb3cgb2JqZWN0IHNob3VsZG4ndCBiZSB1c2VkLlxuICovXG5leHBvcnQgdHlwZSBTaGFyZWRSb3dPcHRpb25zUmVzdWx0ID0gRGF0YVJvdyB8IGZhbHNlIHwgdW5kZWZpbmVkO1xuXG5leHBvcnQgY2xhc3MgRGF0YVJvdyB7XG4gIF9kYXRhQ29udGFpbmVyOiBEYXRhQ29udGFpbmVySW50ZXJmYWNlIHwgbnVsbDtcblxuICBfcm93SW5kZXg6IG51bWJlcjtcblxuICAvKipcbiAgICogQ3JlYXRlcyBuZXcgRGF0YVJvdy5cbiAgICogQHBhcmFtIGRhdGFDb250YWluZXIgRGF0YSBjb250YWluZXIgd2hlcmUgZGF0YSBpcyBzdG9yZWQuIENhbiBiZSBpbml0aWFsaXplZCB3aXRoIG51bGwgZm9yIHNoYXJlZCByb3dzLlxuICAgKiBAcGFyYW0gcm93SW5kZXggSW5kZXggb2YgYSByb3cgaW4gdGhlIGRhdGEgY29udGFpbmVyLlxuICAgKi9cbiAgY29uc3RydWN0b3IoZGF0YUNvbnRhaW5lcjogRGF0YUNvbnRhaW5lckludGVyZmFjZSB8IG51bGwsIHJvd0luZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLl9kYXRhQ29udGFpbmVyID0gZGF0YUNvbnRhaW5lcjtcbiAgICB0aGlzLl9yb3dJbmRleCA9IHJvd0luZGV4O1xuICB9XG5cbiAgLyoqXG4gICAqIENvbmRpdGlvbmFsbHkgY3JlYXRlcyBhIERhdGFSb3cgb2JqZWN0LlxuICAgKiBAcGFyYW0gc2hhcmVkUm93RGVzYyBBY2NlcHRzIGZvcmxsb3dpbmcgb3B0aW9uczpcbiAgICogLSB0cnVlIGluZGljYXRlcyB0aGF0IG5ldyBEYXRhUm93IHNob3VsZCBiZSBjcmVhdGVkLlxuICAgKiAtIGZhbHN5IHZhbHVlIG9yIGEgRGF0YVJvdyBvYmplY3QgaXMgcGFzc2VkIHRocm91Z2ggd2l0aG91dCBhbnkgY2hhbmdlLlxuICAgKiBAcmV0dXJucyBBIG5ldyBEYXRhUm93IG9iamVjdCBvciB1bmNoYW5nZWQgaW5wdXQgYXJndW1lbnQuXG4gICAqL1xuICBzdGF0aWMgY3JlYXRlU2hhcmVkUm93KHNoYXJlZFJvd0Rlc2M6IFNoYXJlZFJvd09wdGlvbnMpOiBTaGFyZWRSb3dPcHRpb25zUmVzdWx0IHtcbiAgICBpZiAoc2hhcmVkUm93RGVzYyA9PT0gdHJ1ZSkge1xuICAgICAgcmV0dXJuIG5ldyBEYXRhUm93KG51bGwsIDApO1xuICAgIH1cbiAgICByZXR1cm4gc2hhcmVkUm93RGVzYztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSB2YWx1ZSBzdG9yZWQgYXQgdGhlIHNwZWNpZmllZCBpbmRleCBpbiB0aGUgcm93LlxuICAgKiBAcGFyYW0gY29sdW1uSW5kZXggSW5kZXggb2YgdGhlIHJlcXVlc3RlZCBmaWVsZCBpbiB0aGUgcm93LlxuICAgKiBAcmV0dXJucyBWYWx1ZSBhdCB0aGUgaW5kZXguXG4gICAqL1xuICB2YWx1ZUF0KGNvbHVtbkluZGV4OiBudW1iZXIpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLl9kYXRhQ29udGFpbmVyPy52YWx1ZUF0KHRoaXMuX3Jvd0luZGV4LCBjb2x1bW5JbmRleCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgcm93IHJlcHJlc2VudGVkIGFzIGFuIGFycmF5LlxuICAgKiBAcmV0dXJucyBUaGUgcm93IHJlcHJlc2VudGVkIGFzIGFuIGFycmF5LlxuICAgKi9cbiAgdmFsdWVzKCk6IGFueVtdIHtcbiAgICByZXR1cm4gdGhpcy5fZGF0YUNvbnRhaW5lciA/IHRoaXMuX2RhdGFDb250YWluZXIucm93QXNBcnJheSh0aGlzLl9yb3dJbmRleCkgOiBbXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXR1cCBhIHJvdyBvYmplY3QuIFRoZSBtZXRob2QgaXMgdXNlZCBieSBzaGFyZWQgcm93cyB0byBwcmV2ZW50IGV4Y2Vzc2l2ZSBhbGxvY2F0aW9ucy5cbiAgICogQHBhcmFtIGRhdGFDb250YWluZXIgRGF0YSBjb250YWluZXIuXG4gICAqIEBwYXJhbSByb3dJbmRleCBJbmRleCBvZiBhIHJvdyBpbiB0aGUgZGF0YSBjb250YWluZXIuXG4gICAqL1xuICBzZXRTb3VyY2UoZGF0YUNvbnRhaW5lcjogRGF0YUNvbnRhaW5lckludGVyZmFjZSwgcm93SW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuX2RhdGFDb250YWluZXIgPSBkYXRhQ29udGFpbmVyO1xuICAgIHRoaXMuX3Jvd0luZGV4ID0gcm93SW5kZXg7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBhcnJheSBwb3B1bGF0ZWQgd2l0aCB0aGUgcmVzdWx0cyBvZiBjYWxsaW5nIHRoZSBwcm92aWRlZCBmdW5jdGlvblxuICAgKiBvbiBldmVyeSBlbGVtZW50IG9mIHRoZSByb3cuXG4gICAqIEBwYXJhbSBoYW5kbGVyIFRoZSBjYWxsYmFjayBpcyBjYWxsZWQgd2l0aCB0aGUgZm9sbG93aW5nIGFyZ3VtZW50czpcbiAgICogLSBlbGVtOiBUaGUgY3VycmVudCBlbGVtZW50IGJlaW5nIHByb2Nlc3NlZCBpbiB0aGUgcm93LlxuICAgKiAtIGluZGV4OiBUaGUgaW5kZXggb2YgdGhlIGN1cnJlbnQgZWxlbWVudCBiZWluZyBwcm9jZXNzZWQgaW4gdGhlIHJvdy5cbiAgICogQHJldHVybnMgQSBuZXcgYXJyYXkgd2l0aCBlYWNoIGVsZW1lbnQgYmVpbmcgdGhlIHJlc3VsdCBvZiB0aGUgZnVuYyBjYWxsYmFjay5cbiAgICovXG4gIG1hcChoYW5kbGVyOiAoZWxlbTogYW55LCBpbmRleDogbnVtYmVyKSA9PiBhbnkpOiBhbnlbXSB7XG4gICAgY29uc3QgbnVtQ29sdW1ucyA9IHRoaXMuX2RhdGFDb250YWluZXI/Lm51bUNvbHVtbnMoKSB8fCAwO1xuICAgIGNvbnN0IG91dDogYW55W10gPSBbXTtcbiAgICBmb3IgKGxldCBjb2x1bW4gPSAwOyBjb2x1bW4gPCBudW1Db2x1bW5zOyArK2NvbHVtbikge1xuICAgICAgb3V0W2NvbHVtbl0gPSBoYW5kbGVyKHRoaXMudmFsdWVBdChjb2x1bW4pLCBjb2x1bW4pO1xuICAgIH1cbiAgICByZXR1cm4gb3V0O1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSkEsSUFPYUEsT0FBTyxHQUFBQyxPQUFBLENBQUFELE9BQUE7RUFLbEI7QUFDRjtBQUNBO0FBQ0E7QUFDQTtFQUNFLFNBQUFBLFFBQVlFLGFBQTRDLEVBQUVDLFFBQWdCLEVBQUU7SUFBQSxJQUFBQyxnQkFBQSxtQkFBQUosT0FBQTtJQUFBLElBQUFLLGdCQUFBO0lBQUEsSUFBQUEsZ0JBQUE7SUFDMUUsSUFBSSxDQUFDQyxjQUFjLEdBQUdKLGFBQWE7SUFDbkMsSUFBSSxDQUFDSyxTQUFTLEdBQUdKLFFBQVE7RUFDM0I7O0VBRUE7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFORSxXQUFBSyxhQUFBLGFBQUFSLE9BQUE7SUFBQVMsR0FBQTtJQUFBQyxLQUFBO0lBY0E7QUFDRjtBQUNBO0FBQ0E7QUFDQTtJQUNFLFNBQUFDLE9BQU9BLENBQUNDLFdBQW1CLEVBQU87TUFBQSxJQUFBQyxvQkFBQTtNQUNoQyxRQUFBQSxvQkFBQSxHQUFPLElBQUksQ0FBQ1AsY0FBYyxjQUFBTyxvQkFBQSx1QkFBbkJBLG9CQUFBLENBQXFCRixPQUFPLENBQUMsSUFBSSxDQUFDSixTQUFTLEVBQUVLLFdBQVcsQ0FBQztJQUNsRTs7SUFFQTtBQUNGO0FBQ0E7QUFDQTtFQUhFO0lBQUFILEdBQUE7SUFBQUMsS0FBQSxFQUlBLFNBQUFJLE1BQU1BLENBQUEsRUFBVTtNQUNkLE9BQU8sSUFBSSxDQUFDUixjQUFjLEdBQUcsSUFBSSxDQUFDQSxjQUFjLENBQUNTLFVBQVUsQ0FBQyxJQUFJLENBQUNSLFNBQVMsQ0FBQyxHQUFHLEVBQUU7SUFDbEY7O0lBRUE7QUFDRjtBQUNBO0FBQ0E7QUFDQTtFQUpFO0lBQUFFLEdBQUE7SUFBQUMsS0FBQSxFQUtBLFNBQUFNLFNBQVNBLENBQUNkLGFBQXFDLEVBQUVDLFFBQWdCLEVBQVE7TUFDdkUsSUFBSSxDQUFDRyxjQUFjLEdBQUdKLGFBQWE7TUFDbkMsSUFBSSxDQUFDSyxTQUFTLEdBQUdKLFFBQVE7SUFDM0I7O0lBRUE7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQVBFO0lBQUFNLEdBQUE7SUFBQUMsS0FBQSxFQVFBLFNBQUFPLEdBQUdBLENBQUNDLE9BQTBDLEVBQVM7TUFBQSxJQUFBQyxxQkFBQTtNQUNyRCxJQUFNQyxVQUFVLEdBQUcsRUFBQUQscUJBQUEsT0FBSSxDQUFDYixjQUFjLGNBQUFhLHFCQUFBLHVCQUFuQkEscUJBQUEsQ0FBcUJDLFVBQVUsQ0FBQyxDQUFDLEtBQUksQ0FBQztNQUN6RCxJQUFNQyxHQUFVLEdBQUcsRUFBRTtNQUNyQixLQUFLLElBQUlDLE1BQU0sR0FBRyxDQUFDLEVBQUVBLE1BQU0sR0FBR0YsVUFBVSxFQUFFLEVBQUVFLE1BQU0sRUFBRTtRQUNsREQsR0FBRyxDQUFDQyxNQUFNLENBQUMsR0FBR0osT0FBTyxDQUFDLElBQUksQ0FBQ1AsT0FBTyxDQUFDVyxNQUFNLENBQUMsRUFBRUEsTUFBTSxDQUFDO01BQ3JEO01BQ0EsT0FBT0QsR0FBRztJQUNaO0VBQUM7SUFBQVosR0FBQTtJQUFBQyxLQUFBLEVBakRELFNBQU9hLGVBQWVBLENBQUNDLGFBQStCLEVBQTBCO01BQzlFLElBQUlBLGFBQWEsS0FBSyxJQUFJLEVBQUU7UUFDMUIsT0FBTyxJQUFJeEIsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7TUFDN0I7TUFDQSxPQUFPd0IsYUFBYTtJQUN0QjtFQUFDO0FBQUEiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -0,0 +1,119 @@
1
+ import { ColorMap, ColorRange, HexColor, MapState } from '@kepler.gl/types';
2
+ import { DataContainerInterface } from './data-container-interface';
3
+ export declare type ColorBreak = {
4
+ data: HexColor;
5
+ label: string;
6
+ range: number[];
7
+ inputs: number[];
8
+ };
9
+ export declare type ColorBreakOrdinal = {
10
+ data: HexColor;
11
+ label: string;
12
+ };
13
+ export declare type D3ScaleFunction = Record<string, any> & ((x: any) => any);
14
+ declare type Layer = any;
15
+ declare type VisualChannel = any;
16
+ declare type VisualChannelDomain = any;
17
+ export declare type LabelFormat = (n: number) => string;
18
+ declare type dataValueAccessor = <T>(param: T) => T;
19
+ declare type dataContainerValueAccessor = (d: {
20
+ index: number;
21
+ }, dc: DataContainerInterface) => any;
22
+ declare type sort = (a: any, b: any) => any;
23
+ /**
24
+ * return quantile domain for an array of data
25
+ */
26
+ export declare function getQuantileDomain(data: any[], valueAccessor?: dataValueAccessor, sortFunc?: sort): number[];
27
+ /**
28
+ * return ordinal domain for a data container
29
+ */
30
+ export declare function getOrdinalDomain(dataContainer: DataContainerInterface, valueAccessor: dataContainerValueAccessor): string[];
31
+ /**
32
+ * return linear domain for an array of data
33
+ */
34
+ export declare function getLinearDomain(data: number[], valueAccessor?: dataValueAccessor): [number, number];
35
+ /**
36
+ * return linear domain for an array of data. A log scale domain cannot contain 0
37
+ */
38
+ export declare function getLogDomain(data: any[], valueAccessor: dataValueAccessor): [number, number];
39
+ export declare type DomainStops = {
40
+ stops: number[];
41
+ z: number[];
42
+ };
43
+ /**
44
+ * whether field domain is stops
45
+ */
46
+ export declare function isDomainStops(domain: unknown): domain is DomainStops;
47
+ export declare type DomainQuantiles = {
48
+ quantiles: number[];
49
+ z: number[];
50
+ };
51
+ /**
52
+ * whether field domain is quantiles
53
+ */
54
+ export declare function isDomainQuantile(domain: any): domain is DomainQuantiles;
55
+ /**
56
+ * get the domain at zoom
57
+ */
58
+ export declare function getThresholdsFromQuantiles(quantiles: number[], buckets: number): (number | undefined)[];
59
+ /**
60
+ * get the domain at zoom
61
+ */
62
+ export declare function getDomainStepsbyZoom(domain: any[], steps: number[], z: number): any;
63
+ /**
64
+ * Get d3 scale function
65
+ */
66
+ export declare function getScaleFunction(scale: string, range: any[] | IterableIterator<any>, domain: (number | undefined)[] | string[] | IterableIterator<any>, fixed?: boolean): D3ScaleFunction;
67
+ /**
68
+ * Get linear / quant scale color breaks
69
+ */
70
+ export declare function getQuantLegends(scale: D3ScaleFunction, labelFormat: LabelFormat): ColorBreak[];
71
+ /**
72
+ * Get ordinal color scale legends
73
+ */
74
+ export declare function getOrdinalLegends(scale: D3ScaleFunction): ColorBreakOrdinal[];
75
+ export declare function getQuantLabelFormat(domain: any, fieldType: any): (d: any) => any;
76
+ /**
77
+ * Get legends for scale
78
+ */
79
+ export declare function getLegendOfScale({ scale, scaleType, labelFormat, fieldType }: {
80
+ scale?: D3ScaleFunction | null;
81
+ scaleType: string;
82
+ labelFormat?: LabelFormat;
83
+ fieldType: string | null | undefined;
84
+ }): ColorBreak[] | ColorBreakOrdinal[];
85
+ /**
86
+ * Get color scale function
87
+ */
88
+ export declare function getLayerColorScale({ range, domain, scaleType, layer }: {
89
+ range: ColorRange | null | undefined;
90
+ domain: VisualChannelDomain;
91
+ scaleType: string;
92
+ layer: Layer;
93
+ isFixed?: boolean;
94
+ }): D3ScaleFunction | null;
95
+ /**
96
+ * Convert colorRange.colorMap into color breaks UI input
97
+ */
98
+ export declare function initializeLayerColorMap(layer: Layer, visualChannel: VisualChannel): ColorMap;
99
+ /**
100
+ * Get visual chanel scale function if it's based on zoom
101
+ */
102
+ export declare function getVisualChannelScaleByZoom({ scale, layer, mapState }: {
103
+ scale: D3ScaleFunction | null;
104
+ layer: Layer;
105
+ mapState?: MapState;
106
+ }): D3ScaleFunction | null;
107
+ /**
108
+ * Convert color breaks UI input into colorRange.colorMap
109
+ */
110
+ export declare function colorBreaksToColorMap(colorBreaks: ColorBreak[] | ColorBreakOrdinal[]): ColorMap;
111
+ /**
112
+ * Convert colorRange.colorMap into color breaks UI input
113
+ */
114
+ export declare function colorMapToColorBreaks(colorMap?: ColorMap): ColorBreak[] | null;
115
+ /**
116
+ * Whether color breaks is for numeric field
117
+ */
118
+ export declare function isNumericColorBreaks(colorBreaks: unknown): colorBreaks is ColorBreak[];
119
+ export {};