@kepler.gl/utils 3.1.0-alpha.0 → 3.1.0-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/aggregation.d.ts +13 -0
- package/dist/aggregation.js +84 -0
- package/dist/application-config.d.ts +25 -0
- package/dist/application-config.js +52 -0
- package/dist/arrow-data-container.d.ts +62 -0
- package/dist/arrow-data-container.js +331 -0
- package/dist/color-utils.d.ts +108 -0
- package/dist/color-utils.js +443 -0
- package/dist/data-container-interface.d.ts +138 -0
- package/dist/data-container-interface.js +6 -0
- package/dist/data-container-utils.d.ts +30 -0
- package/dist/data-container-utils.js +74 -0
- package/dist/data-row.d.ts +59 -0
- package/dist/data-row.js +110 -0
- package/dist/data-scale-utils.d.ts +120 -0
- package/dist/data-scale-utils.js +340 -0
- package/dist/data-utils.d.ts +98 -0
- package/dist/data-utils.js +436 -0
- package/dist/dataset-utils.d.ts +45 -0
- package/dist/dataset-utils.js +313 -0
- package/dist/dom-to-image.d.ts +73 -0
- package/dist/dom-to-image.js +421 -0
- package/dist/dom-utils.d.ts +23 -0
- package/dist/dom-utils.js +349 -0
- package/dist/effect-utils.d.ts +24 -0
- package/dist/effect-utils.js +166 -0
- package/dist/export-map-html.d.ts +9 -0
- package/dist/export-map-html.js +25 -0
- package/dist/export-utils.d.ts +40 -0
- package/dist/export-utils.js +201 -0
- package/dist/filter-utils.d.ts +331 -0
- package/dist/filter-utils.js +1214 -0
- package/dist/format.d.ts +3 -0
- package/dist/format.js +38 -0
- package/dist/gl-utils.d.ts +1 -0
- package/dist/gl-utils.js +27 -0
- package/dist/index.d.ts +41 -0
- package/dist/index.js +941 -0
- package/dist/indexed-data-container.d.ts +34 -0
- package/dist/indexed-data-container.js +214 -0
- package/dist/locale-utils.d.ts +2 -0
- package/dist/locale-utils.js +39 -0
- package/dist/map-info-utils.d.ts +1 -0
- package/dist/map-info-utils.js +14 -0
- package/dist/map-style-utils/mapbox-gl-style-editor.d.ts +57 -0
- package/dist/map-style-utils/mapbox-gl-style-editor.js +188 -0
- package/dist/map-style-utils/mapbox-utils.d.ts +14 -0
- package/dist/map-style-utils/mapbox-utils.js +51 -0
- package/dist/map-utils.d.ts +9 -0
- package/dist/map-utils.js +48 -0
- package/dist/mapbox-utils.d.ts +7 -0
- package/dist/mapbox-utils.js +19 -0
- package/dist/noop.d.ts +1 -0
- package/dist/noop.js +13 -0
- package/dist/notifications-utils.d.ts +42 -0
- package/dist/notifications-utils.js +69 -0
- package/dist/observe-dimensions.d.ts +15 -0
- package/dist/observe-dimensions.js +130 -0
- package/dist/plot.d.ts +131 -0
- package/dist/plot.js +615 -0
- package/dist/position-utils.d.ts +6 -0
- package/dist/position-utils.js +26 -0
- package/dist/projection-utils.d.ts +22 -0
- package/dist/projection-utils.js +83 -0
- package/dist/quick-insertion-sort.d.ts +12 -0
- package/dist/quick-insertion-sort.js +132 -0
- package/dist/row-data-container.d.ts +31 -0
- package/dist/row-data-container.js +206 -0
- package/dist/searcher-utils.d.ts +1 -0
- package/dist/searcher-utils.js +25 -0
- package/dist/split-map-utils.d.ts +32 -0
- package/dist/split-map-utils.js +99 -0
- package/dist/strings.d.ts +4 -0
- package/dist/strings.js +16 -0
- package/dist/time.d.ts +54 -0
- package/dist/time.js +325 -0
- package/dist/types.d.ts +18 -0
- package/dist/types.js +6 -0
- package/dist/utils.d.ts +104 -0
- package/dist/utils.js +241 -0
- package/package.json +6 -5
@@ -0,0 +1,34 @@
|
|
1
|
+
import { DataContainerInterface, RangeOptions } from './data-container-interface';
|
2
|
+
import { DataRow, SharedRowOptions } from './data-row';
|
3
|
+
/**
|
4
|
+
* A data container wrapper around another data container.
|
5
|
+
* You have to pass an array of indices to reference rows in the parent data container.
|
6
|
+
* For example indices [3, 4, 6, 8] means that IndexedDataContainer is going to have
|
7
|
+
* 4 rows and row(2) points to 6th row in the referenced data container.
|
8
|
+
*/
|
9
|
+
export declare class IndexedDataContainer implements DataContainerInterface {
|
10
|
+
_parentDataContainer: DataContainerInterface;
|
11
|
+
_indices: number[];
|
12
|
+
constructor(parentDataContainer: DataContainerInterface, indices: number[]);
|
13
|
+
numRows(): number;
|
14
|
+
numColumns(): number;
|
15
|
+
/**
|
16
|
+
* Remaps a local index to an index in the parent dataset
|
17
|
+
* @param rowIndex
|
18
|
+
* @returns number
|
19
|
+
*/
|
20
|
+
_mappedRowIndex(rowIndex: number): number;
|
21
|
+
valueAt(rowIndex: number, columnIndex: number): any;
|
22
|
+
row(rowIndex: number, sharedRow?: SharedRowOptions): DataRow;
|
23
|
+
rowAsArray(rowIndex: number): any[];
|
24
|
+
rows(sharedRow?: SharedRowOptions): Generator<DataRow, any, unknown>;
|
25
|
+
column(columnIndex: number): Generator<any, any, unknown>;
|
26
|
+
getPlainIndex(): number[];
|
27
|
+
flattenData(): any[][];
|
28
|
+
map<T>(func: (row: DataRow, index: number) => T, sharedRow?: SharedRowOptions, options?: RangeOptions): T[];
|
29
|
+
mapIndex<T>(func: ({ index: number }: {
|
30
|
+
index: any;
|
31
|
+
}, dc: DataContainerInterface) => T, options?: RangeOptions): T[];
|
32
|
+
find(func: (row: DataRow, index: number) => boolean, sharedRow?: SharedRowOptions): DataRow | undefined;
|
33
|
+
reduce<T>(func: (acc: T, row: DataRow, index: number) => T, initialValue: T, sharedRow?: SharedRowOptions): T;
|
34
|
+
}
|
@@ -0,0 +1,214 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
5
|
+
value: true
|
6
|
+
});
|
7
|
+
exports.IndexedDataContainer = 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
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
12
|
+
var _dataRow = require("./data-row");
|
13
|
+
var _marked = /*#__PURE__*/_regenerator["default"].mark(rowsIterator),
|
14
|
+
_marked2 = /*#__PURE__*/_regenerator["default"].mark(columnIterator); // SPDX-License-Identifier: MIT
|
15
|
+
// Copyright contributors to the kepler.gl project
|
16
|
+
/**
|
17
|
+
* @param dataContainer
|
18
|
+
* @param indices
|
19
|
+
* @param sharedRow
|
20
|
+
* @returns
|
21
|
+
*/
|
22
|
+
function rowsIterator(dataContainer, indices, sharedRow) {
|
23
|
+
var numRows, rowIndex, mappedRowIndex;
|
24
|
+
return _regenerator["default"].wrap(function rowsIterator$(_context) {
|
25
|
+
while (1) switch (_context.prev = _context.next) {
|
26
|
+
case 0:
|
27
|
+
numRows = indices.length;
|
28
|
+
rowIndex = 0;
|
29
|
+
case 2:
|
30
|
+
if (!(rowIndex < numRows)) {
|
31
|
+
_context.next = 9;
|
32
|
+
break;
|
33
|
+
}
|
34
|
+
mappedRowIndex = indices[rowIndex];
|
35
|
+
_context.next = 6;
|
36
|
+
return dataContainer.row(mappedRowIndex, sharedRow);
|
37
|
+
case 6:
|
38
|
+
++rowIndex;
|
39
|
+
_context.next = 2;
|
40
|
+
break;
|
41
|
+
case 9:
|
42
|
+
case "end":
|
43
|
+
return _context.stop();
|
44
|
+
}
|
45
|
+
}, _marked);
|
46
|
+
}
|
47
|
+
|
48
|
+
/**
|
49
|
+
* @param dataContainer
|
50
|
+
* @param indices
|
51
|
+
* @param columnIndex
|
52
|
+
* @returns
|
53
|
+
*/
|
54
|
+
function columnIterator(dataContainer, indices, columnIndex) {
|
55
|
+
var numRows, rowIndex, mappedRowIndex;
|
56
|
+
return _regenerator["default"].wrap(function columnIterator$(_context2) {
|
57
|
+
while (1) switch (_context2.prev = _context2.next) {
|
58
|
+
case 0:
|
59
|
+
numRows = indices.length;
|
60
|
+
rowIndex = 0;
|
61
|
+
case 2:
|
62
|
+
if (!(rowIndex < numRows)) {
|
63
|
+
_context2.next = 9;
|
64
|
+
break;
|
65
|
+
}
|
66
|
+
mappedRowIndex = indices[rowIndex];
|
67
|
+
_context2.next = 6;
|
68
|
+
return dataContainer.valueAt(mappedRowIndex, columnIndex);
|
69
|
+
case 6:
|
70
|
+
++rowIndex;
|
71
|
+
_context2.next = 2;
|
72
|
+
break;
|
73
|
+
case 9:
|
74
|
+
case "end":
|
75
|
+
return _context2.stop();
|
76
|
+
}
|
77
|
+
}, _marked2);
|
78
|
+
}
|
79
|
+
|
80
|
+
/**
|
81
|
+
* A data container wrapper around another data container.
|
82
|
+
* You have to pass an array of indices to reference rows in the parent data container.
|
83
|
+
* For example indices [3, 4, 6, 8] means that IndexedDataContainer is going to have
|
84
|
+
* 4 rows and row(2) points to 6th row in the referenced data container.
|
85
|
+
*/
|
86
|
+
var IndexedDataContainer = exports.IndexedDataContainer = /*#__PURE__*/function () {
|
87
|
+
function IndexedDataContainer(parentDataContainer, indices) {
|
88
|
+
(0, _classCallCheck2["default"])(this, IndexedDataContainer);
|
89
|
+
(0, _defineProperty2["default"])(this, "_parentDataContainer", void 0);
|
90
|
+
(0, _defineProperty2["default"])(this, "_indices", void 0);
|
91
|
+
this._parentDataContainer = parentDataContainer;
|
92
|
+
this._indices = indices;
|
93
|
+
}
|
94
|
+
return (0, _createClass2["default"])(IndexedDataContainer, [{
|
95
|
+
key: "numRows",
|
96
|
+
value: function numRows() {
|
97
|
+
return this._indices.length;
|
98
|
+
}
|
99
|
+
}, {
|
100
|
+
key: "numColumns",
|
101
|
+
value: function numColumns() {
|
102
|
+
return this._parentDataContainer.numColumns();
|
103
|
+
}
|
104
|
+
|
105
|
+
/**
|
106
|
+
* Remaps a local index to an index in the parent dataset
|
107
|
+
* @param rowIndex
|
108
|
+
* @returns number
|
109
|
+
*/
|
110
|
+
}, {
|
111
|
+
key: "_mappedRowIndex",
|
112
|
+
value: function _mappedRowIndex(rowIndex) {
|
113
|
+
return this._indices[rowIndex];
|
114
|
+
}
|
115
|
+
}, {
|
116
|
+
key: "valueAt",
|
117
|
+
value: function valueAt(rowIndex, columnIndex) {
|
118
|
+
return this._parentDataContainer.valueAt(this._mappedRowIndex(rowIndex), columnIndex);
|
119
|
+
}
|
120
|
+
}, {
|
121
|
+
key: "row",
|
122
|
+
value: function row(rowIndex, sharedRow) {
|
123
|
+
return this._parentDataContainer.row(this._mappedRowIndex(rowIndex), sharedRow);
|
124
|
+
}
|
125
|
+
}, {
|
126
|
+
key: "rowAsArray",
|
127
|
+
value: function rowAsArray(rowIndex) {
|
128
|
+
return this._parentDataContainer.rowAsArray(this._mappedRowIndex(rowIndex));
|
129
|
+
}
|
130
|
+
}, {
|
131
|
+
key: "rows",
|
132
|
+
value: function rows(sharedRow) {
|
133
|
+
return rowsIterator(this._parentDataContainer, this._indices, sharedRow);
|
134
|
+
}
|
135
|
+
}, {
|
136
|
+
key: "column",
|
137
|
+
value: function column(columnIndex) {
|
138
|
+
return columnIterator(this._parentDataContainer, this._indices, columnIndex);
|
139
|
+
}
|
140
|
+
}, {
|
141
|
+
key: "getPlainIndex",
|
142
|
+
value: function getPlainIndex() {
|
143
|
+
return this._indices.map(function (_, i) {
|
144
|
+
return i;
|
145
|
+
});
|
146
|
+
}
|
147
|
+
}, {
|
148
|
+
key: "flattenData",
|
149
|
+
value: function flattenData() {
|
150
|
+
var _this = this;
|
151
|
+
var tSharedRow = _dataRow.DataRow.createSharedRow(true);
|
152
|
+
return this._indices.map(function (_, i) {
|
153
|
+
return _this.row(i, tSharedRow).values();
|
154
|
+
}, this);
|
155
|
+
}
|
156
|
+
}, {
|
157
|
+
key: "map",
|
158
|
+
value: function map(func, sharedRow) {
|
159
|
+
var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
160
|
+
var _options$start = options.start,
|
161
|
+
start = _options$start === void 0 ? 0 : _options$start,
|
162
|
+
_options$end = options.end,
|
163
|
+
end = _options$end === void 0 ? this.numRows() : _options$end;
|
164
|
+
var endRow = Math.min(this.numRows(), end);
|
165
|
+
var tSharedRow = _dataRow.DataRow.createSharedRow(sharedRow);
|
166
|
+
var out = [];
|
167
|
+
for (var rowIndex = start; rowIndex < endRow; ++rowIndex) {
|
168
|
+
var row = this.row(rowIndex, tSharedRow);
|
169
|
+
out.push(func(row, rowIndex));
|
170
|
+
}
|
171
|
+
return out;
|
172
|
+
}
|
173
|
+
}, {
|
174
|
+
key: "mapIndex",
|
175
|
+
value: function mapIndex(func) {
|
176
|
+
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
177
|
+
var _options$start2 = options.start,
|
178
|
+
start = _options$start2 === void 0 ? 0 : _options$start2,
|
179
|
+
_options$end2 = options.end,
|
180
|
+
end = _options$end2 === void 0 ? this.numRows() : _options$end2;
|
181
|
+
var endRow = Math.min(this.numRows(), end);
|
182
|
+
var out = [];
|
183
|
+
for (var rowIndex = start; rowIndex < endRow; ++rowIndex) {
|
184
|
+
out.push(func({
|
185
|
+
index: this._mappedRowIndex(rowIndex)
|
186
|
+
}, this._parentDataContainer));
|
187
|
+
}
|
188
|
+
return out;
|
189
|
+
}
|
190
|
+
}, {
|
191
|
+
key: "find",
|
192
|
+
value: function find(func, sharedRow) {
|
193
|
+
var tSharedRow = _dataRow.DataRow.createSharedRow(sharedRow);
|
194
|
+
for (var rowIndex = 0; rowIndex < this.numRows(); ++rowIndex) {
|
195
|
+
var row = this.row(rowIndex, tSharedRow);
|
196
|
+
if (func(row, rowIndex)) {
|
197
|
+
return row;
|
198
|
+
}
|
199
|
+
}
|
200
|
+
return undefined;
|
201
|
+
}
|
202
|
+
}, {
|
203
|
+
key: "reduce",
|
204
|
+
value: function reduce(func, initialValue, sharedRow) {
|
205
|
+
var tSharedRow = _dataRow.DataRow.createSharedRow(sharedRow);
|
206
|
+
for (var rowIndex = 0; rowIndex < this._indices.length; ++rowIndex) {
|
207
|
+
var row = this.row(rowIndex, tSharedRow);
|
208
|
+
initialValue = func(initialValue, row, rowIndex);
|
209
|
+
}
|
210
|
+
return initialValue;
|
211
|
+
}
|
212
|
+
}]);
|
213
|
+
}();
|
214
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZGF0YVJvdyIsInJlcXVpcmUiLCJfbWFya2VkIiwiX3JlZ2VuZXJhdG9yIiwibWFyayIsInJvd3NJdGVyYXRvciIsIl9tYXJrZWQyIiwiY29sdW1uSXRlcmF0b3IiLCJkYXRhQ29udGFpbmVyIiwiaW5kaWNlcyIsInNoYXJlZFJvdyIsIm51bVJvd3MiLCJyb3dJbmRleCIsIm1hcHBlZFJvd0luZGV4Iiwid3JhcCIsInJvd3NJdGVyYXRvciQiLCJfY29udGV4dCIsInByZXYiLCJuZXh0IiwibGVuZ3RoIiwicm93Iiwic3RvcCIsImNvbHVtbkluZGV4IiwiY29sdW1uSXRlcmF0b3IkIiwiX2NvbnRleHQyIiwidmFsdWVBdCIsIkluZGV4ZWREYXRhQ29udGFpbmVyIiwiZXhwb3J0cyIsInBhcmVudERhdGFDb250YWluZXIiLCJfY2xhc3NDYWxsQ2hlY2syIiwiX2RlZmluZVByb3BlcnR5MiIsIl9wYXJlbnREYXRhQ29udGFpbmVyIiwiX2luZGljZXMiLCJfY3JlYXRlQ2xhc3MyIiwia2V5IiwidmFsdWUiLCJudW1Db2x1bW5zIiwiX21hcHBlZFJvd0luZGV4Iiwicm93QXNBcnJheSIsInJvd3MiLCJjb2x1bW4iLCJnZXRQbGFpbkluZGV4IiwibWFwIiwiXyIsImkiLCJmbGF0dGVuRGF0YSIsIl90aGlzIiwidFNoYXJlZFJvdyIsIkRhdGFSb3ciLCJjcmVhdGVTaGFyZWRSb3ciLCJ2YWx1ZXMiLCJmdW5jIiwib3B0aW9ucyIsImFyZ3VtZW50cyIsInVuZGVmaW5lZCIsIl9vcHRpb25zJHN0YXJ0Iiwic3RhcnQiLCJfb3B0aW9ucyRlbmQiLCJlbmQiLCJlbmRSb3ciLCJNYXRoIiwibWluIiwib3V0IiwicHVzaCIsIm1hcEluZGV4IiwiX29wdGlvbnMkc3RhcnQyIiwiX29wdGlvbnMkZW5kMiIsImluZGV4IiwiZmluZCIsInJlZHVjZSIsImluaXRpYWxWYWx1ZSJdLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleGVkLWRhdGEtY29udGFpbmVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCB7RGF0YUNvbnRhaW5lckludGVyZmFjZSwgUmFuZ2VPcHRpb25zfSBmcm9tICcuL2RhdGEtY29udGFpbmVyLWludGVyZmFjZSc7XG5pbXBvcnQge0RhdGFSb3csIFNoYXJlZFJvd09wdGlvbnN9IGZyb20gJy4vZGF0YS1yb3cnO1xuXG4vKipcbiAqIEBwYXJhbSBkYXRhQ29udGFpbmVyXG4gKiBAcGFyYW0gaW5kaWNlc1xuICogQHBhcmFtIHNoYXJlZFJvd1xuICogQHJldHVybnNcbiAqL1xuZnVuY3Rpb24qIHJvd3NJdGVyYXRvcihcbiAgZGF0YUNvbnRhaW5lcjogRGF0YUNvbnRhaW5lckludGVyZmFjZSxcbiAgaW5kaWNlczogbnVtYmVyW10sXG4gIHNoYXJlZFJvdzogU2hhcmVkUm93T3B0aW9uc1xuKTogR2VuZXJhdG9yPERhdGFSb3c+IHtcbiAgY29uc3QgbnVtUm93cyA9IGluZGljZXMubGVuZ3RoO1xuICBmb3IgKGxldCByb3dJbmRleCA9IDA7IHJvd0luZGV4IDwgbnVtUm93czsgKytyb3dJbmRleCkge1xuICAgIGNvbnN0IG1hcHBlZFJvd0luZGV4ID0gaW5kaWNlc1tyb3dJbmRleF07XG4gICAgeWllbGQgZGF0YUNvbnRhaW5lci5yb3cobWFwcGVkUm93SW5kZXgsIHNoYXJlZFJvdyk7XG4gIH1cbn1cblxuLyoqXG4gKiBAcGFyYW0gZGF0YUNvbnRhaW5lclxuICogQHBhcmFtIGluZGljZXNcbiAqIEBwYXJhbSBjb2x1bW5JbmRleFxuICogQHJldHVybnNcbiAqL1xuZnVuY3Rpb24qIGNvbHVtbkl0ZXJhdG9yKFxuICBkYXRhQ29udGFpbmVyOiBEYXRhQ29udGFpbmVySW50ZXJmYWNlLFxuICBpbmRpY2VzOiBudW1iZXJbXSxcbiAgY29sdW1uSW5kZXg6IG51bWJlclxuKTogR2VuZXJhdG9yPGFueT4ge1xuICBjb25zdCBudW1Sb3dzID0gaW5kaWNlcy5sZW5ndGg7XG4gIGZvciAobGV0IHJvd0luZGV4ID0gMDsgcm93SW5kZXggPCBudW1Sb3dzOyArK3Jvd0luZGV4KSB7XG4gICAgY29uc3QgbWFwcGVkUm93SW5kZXggPSBpbmRpY2VzW3Jvd0luZGV4XTtcbiAgICB5aWVsZCBkYXRhQ29udGFpbmVyLnZhbHVlQXQobWFwcGVkUm93SW5kZXgsIGNvbHVtbkluZGV4KTtcbiAgfVxufVxuXG4vKipcbiAqIEEgZGF0YSBjb250YWluZXIgd3JhcHBlciBhcm91bmQgYW5vdGhlciBkYXRhIGNvbnRhaW5lci5cbiAqIFlvdSBoYXZlIHRvIHBhc3MgYW4gYXJyYXkgb2YgaW5kaWNlcyB0byByZWZlcmVuY2Ugcm93cyBpbiB0aGUgcGFyZW50IGRhdGEgY29udGFpbmVyLlxuICogRm9yIGV4YW1wbGUgaW5kaWNlcyBbMywgNCwgNiwgOF0gbWVhbnMgdGhhdCBJbmRleGVkRGF0YUNvbnRhaW5lciBpcyBnb2luZyB0byBoYXZlXG4gKiA0IHJvd3MgYW5kIHJvdygyKSBwb2ludHMgdG8gNnRoIHJvdyBpbiB0aGUgcmVmZXJlbmNlZCBkYXRhIGNvbnRhaW5lci5cbiAqL1xuZXhwb3J0IGNsYXNzIEluZGV4ZWREYXRhQ29udGFpbmVyIGltcGxlbWVudHMgRGF0YUNvbnRhaW5lckludGVyZmFjZSB7XG4gIF9wYXJlbnREYXRhQ29udGFpbmVyOiBEYXRhQ29udGFpbmVySW50ZXJmYWNlO1xuICBfaW5kaWNlczogbnVtYmVyW107XG5cbiAgY29uc3RydWN0b3IocGFyZW50RGF0YUNvbnRhaW5lcjogRGF0YUNvbnRhaW5lckludGVyZmFjZSwgaW5kaWNlczogbnVtYmVyW10pIHtcbiAgICB0aGlzLl9wYXJlbnREYXRhQ29udGFpbmVyID0gcGFyZW50RGF0YUNvbnRhaW5lcjtcbiAgICB0aGlzLl9pbmRpY2VzID0gaW5kaWNlcztcbiAgfVxuXG4gIG51bVJvd3MoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5faW5kaWNlcy5sZW5ndGg7XG4gIH1cblxuICBudW1Db2x1bW5zKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX3BhcmVudERhdGFDb250YWluZXIubnVtQ29sdW1ucygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbWFwcyBhIGxvY2FsIGluZGV4IHRvIGFuIGluZGV4IGluIHRoZSBwYXJlbnQgZGF0YXNldFxuICAgKiBAcGFyYW0gcm93SW5kZXhcbiAgICogQHJldHVybnMgbnVtYmVyXG4gICAqL1xuICBfbWFwcGVkUm93SW5kZXgocm93SW5kZXg6IG51bWJlcik6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2luZGljZXNbcm93SW5kZXhdO1xuICB9XG5cbiAgdmFsdWVBdChyb3dJbmRleDogbnVtYmVyLCBjb2x1bW5JbmRleDogbnVtYmVyKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5fcGFyZW50RGF0YUNvbnRhaW5lci52YWx1ZUF0KHRoaXMuX21hcHBlZFJvd0luZGV4KHJvd0luZGV4KSwgY29sdW1uSW5kZXgpO1xuICB9XG5cbiAgcm93KHJvd0luZGV4OiBudW1iZXIsIHNoYXJlZFJvdz86IFNoYXJlZFJvd09wdGlvbnMpOiBEYXRhUm93IHtcbiAgICByZXR1cm4gdGhpcy5fcGFyZW50RGF0YUNvbnRhaW5lci5yb3codGhpcy5fbWFwcGVkUm93SW5kZXgocm93SW5kZXgpLCBzaGFyZWRSb3cpO1xuICB9XG5cbiAgcm93QXNBcnJheShyb3dJbmRleDogbnVtYmVyKTogYW55W10ge1xuICAgIHJldHVybiB0aGlzLl9wYXJlbnREYXRhQ29udGFpbmVyLnJvd0FzQXJyYXkodGhpcy5fbWFwcGVkUm93SW5kZXgocm93SW5kZXgpKTtcbiAgfVxuXG4gIHJvd3Moc2hhcmVkUm93PzogU2hhcmVkUm93T3B0aW9ucykge1xuICAgIHJldHVybiByb3dzSXRlcmF0b3IodGhpcy5fcGFyZW50RGF0YUNvbnRhaW5lciwgdGhpcy5faW5kaWNlcywgc2hhcmVkUm93KTtcbiAgfVxuXG4gIGNvbHVtbihjb2x1bW5JbmRleDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIGNvbHVtbkl0ZXJhdG9yKHRoaXMuX3BhcmVudERhdGFDb250YWluZXIsIHRoaXMuX2luZGljZXMsIGNvbHVtbkluZGV4KTtcbiAgfVxuXG4gIGdldFBsYWluSW5kZXgoKTogbnVtYmVyW10ge1xuICAgIHJldHVybiB0aGlzLl9pbmRpY2VzLm1hcCgoXywgaSkgPT4gaSk7XG4gIH1cblxuICBmbGF0dGVuRGF0YSgpOiBhbnlbXVtdIHtcbiAgICBjb25zdCB0U2hhcmVkUm93ID0gRGF0YVJvdy5jcmVhdGVTaGFyZWRSb3codHJ1ZSk7XG5cbiAgICByZXR1cm4gdGhpcy5faW5kaWNlcy5tYXAoKF8sIGkpID0+IHtcbiAgICAgIHJldHVybiB0aGlzLnJvdyhpLCB0U2hhcmVkUm93KS52YWx1ZXMoKTtcbiAgICB9LCB0aGlzKTtcbiAgfVxuXG4gIG1hcDxUPihcbiAgICBmdW5jOiAocm93OiBEYXRhUm93LCBpbmRleDogbnVtYmVyKSA9PiBULFxuICAgIHNoYXJlZFJvdz86IFNoYXJlZFJvd09wdGlvbnMsXG4gICAgb3B0aW9uczogUmFuZ2VPcHRpb25zID0ge31cbiAgKTogVFtdIHtcbiAgICBjb25zdCB7c3RhcnQgPSAwLCBlbmQgPSB0aGlzLm51bVJvd3MoKX0gPSBvcHRpb25zO1xuICAgIGNvbnN0IGVuZFJvdyA9IE1hdGgubWluKHRoaXMubnVtUm93cygpLCBlbmQpO1xuXG4gICAgY29uc3QgdFNoYXJlZFJvdyA9IERhdGFSb3cuY3JlYXRlU2hhcmVkUm93KHNoYXJlZFJvdyk7XG5cbiAgICBjb25zdCBvdXQ6IFRbXSA9IFtdO1xuICAgIGZvciAobGV0IHJvd0luZGV4ID0gc3RhcnQ7IHJvd0luZGV4IDwgZW5kUm93OyArK3Jvd0luZGV4KSB7XG4gICAgICBjb25zdCByb3cgPSB0aGlzLnJvdyhyb3dJbmRleCwgdFNoYXJlZFJvdyk7XG4gICAgICBvdXQucHVzaChmdW5jKHJvdywgcm93SW5kZXgpKTtcbiAgICB9XG4gICAgcmV0dXJuIG91dDtcbiAgfVxuXG4gIG1hcEluZGV4PFQ+KFxuICAgIGZ1bmM6ICh7aW5kZXg6IG51bWJlcn0sIGRjOiBEYXRhQ29udGFpbmVySW50ZXJmYWNlKSA9PiBULFxuICAgIG9wdGlvbnM6IFJhbmdlT3B0aW9ucyA9IHt9XG4gICk6IFRbXSB7XG4gICAgY29uc3Qge3N0YXJ0ID0gMCwgZW5kID0gdGhpcy5udW1Sb3dzKCl9ID0gb3B0aW9ucztcbiAgICBjb25zdCBlbmRSb3cgPSBNYXRoLm1pbih0aGlzLm51bVJvd3MoKSwgZW5kKTtcblxuICAgIGNvbnN0IG91dDogVFtdID0gW107XG4gICAgZm9yIChsZXQgcm93SW5kZXggPSBzdGFydDsgcm93SW5kZXggPCBlbmRSb3c7ICsrcm93SW5kZXgpIHtcbiAgICAgIG91dC5wdXNoKGZ1bmMoe2luZGV4OiB0aGlzLl9tYXBwZWRSb3dJbmRleChyb3dJbmRleCl9LCB0aGlzLl9wYXJlbnREYXRhQ29udGFpbmVyKSk7XG4gICAgfVxuICAgIHJldHVybiBvdXQ7XG4gIH1cblxuICBmaW5kKFxuICAgIGZ1bmM6IChyb3c6IERhdGFSb3csIGluZGV4OiBudW1iZXIpID0+IGJvb2xlYW4sXG4gICAgc2hhcmVkUm93PzogU2hhcmVkUm93T3B0aW9uc1xuICApOiBEYXRhUm93IHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCB0U2hhcmVkUm93ID0gRGF0YVJvdy5jcmVhdGVTaGFyZWRSb3coc2hhcmVkUm93KTtcblxuICAgIGZvciAobGV0IHJvd0luZGV4ID0gMDsgcm93SW5kZXggPCB0aGlzLm51bVJvd3MoKTsgKytyb3dJbmRleCkge1xuICAgICAgY29uc3Qgcm93ID0gdGhpcy5yb3cocm93SW5kZXgsIHRTaGFyZWRSb3cpO1xuICAgICAgaWYgKGZ1bmMocm93LCByb3dJbmRleCkpIHtcbiAgICAgICAgcmV0dXJuIHJvdztcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHJlZHVjZTxUPihcbiAgICBmdW5jOiAoYWNjOiBULCByb3c6IERhdGFSb3csIGluZGV4OiBudW1iZXIpID0+IFQsXG4gICAgaW5pdGlhbFZhbHVlOiBULFxuICAgIHNoYXJlZFJvdz86IFNoYXJlZFJvd09wdGlvbnNcbiAgKTogVCB7XG4gICAgY29uc3QgdFNoYXJlZFJvdyA9IERhdGFSb3cuY3JlYXRlU2hhcmVkUm93KHNoYXJlZFJvdyk7XG5cbiAgICBmb3IgKGxldCByb3dJbmRleCA9IDA7IHJvd0luZGV4IDwgdGhpcy5faW5kaWNlcy5sZW5ndGg7ICsrcm93SW5kZXgpIHtcbiAgICAgIGNvbnN0IHJvdyA9IHRoaXMucm93KHJvd0luZGV4LCB0U2hhcmVkUm93KTtcbiAgICAgIGluaXRpYWxWYWx1ZSA9IGZ1bmMoaW5pdGlhbFZhbHVlLCByb3csIHJvd0luZGV4KTtcbiAgICB9XG4gICAgcmV0dXJuIGluaXRpYWxWYWx1ZTtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUlBLElBQUFBLFFBQUEsR0FBQUMsT0FBQTtBQUFxRCxJQUFBQyxPQUFBLGdCQUFBQyxZQUFBLFlBQUFDLElBQUEsQ0FRM0NDLFlBQVk7RUFBQUMsUUFBQSxnQkFBQUgsWUFBQSxZQUFBQyxJQUFBLENBa0JaRyxjQUFjLEdBOUJ4QjtBQUNBO0FBS0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBVUYsWUFBWUEsQ0FDcEJHLGFBQXFDLEVBQ3JDQyxPQUFpQixFQUNqQkMsU0FBMkI7RUFBQSxJQUFBQyxPQUFBLEVBQUFDLFFBQUEsRUFBQUMsY0FBQTtFQUFBLE9BQUFWLFlBQUEsWUFBQVcsSUFBQSxVQUFBQyxjQUFBQyxRQUFBO0lBQUEsa0JBQUFBLFFBQUEsQ0FBQUMsSUFBQSxHQUFBRCxRQUFBLENBQUFFLElBQUE7TUFBQTtRQUVyQlAsT0FBTyxHQUFHRixPQUFPLENBQUNVLE1BQU07UUFDckJQLFFBQVEsR0FBRyxDQUFDO01BQUE7UUFBQSxNQUFFQSxRQUFRLEdBQUdELE9BQU87VUFBQUssUUFBQSxDQUFBRSxJQUFBO1VBQUE7UUFBQTtRQUNqQ0wsY0FBYyxHQUFH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
|
@@ -0,0 +1,39 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
5
|
+
value: true
|
6
|
+
});
|
7
|
+
exports.mergeMessages = exports.flattenMessages = void 0;
|
8
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
9
|
+
var _utils = require("./utils");
|
10
|
+
var _console = _interopRequireDefault(require("global/console"));
|
11
|
+
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; }
|
12
|
+
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
|
13
|
+
// Copyright contributors to the kepler.gl project
|
14
|
+
// Flat messages since react-intl does not seem to support nested structures
|
15
|
+
// Adapted from https://medium.com/siren-apparel-press/internationalization-and-localization-of-sirenapparel-eu-sirenapparel-us-and-sirenapparel-asia-ddee266066a2
|
16
|
+
var _flattenMessages = exports.flattenMessages = function flattenMessages(nestedMessages) {
|
17
|
+
var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
|
18
|
+
return Object.keys(nestedMessages).reduce(function (messages, key) {
|
19
|
+
var value = nestedMessages[key];
|
20
|
+
var prefixedKey = prefix ? "".concat(prefix, ".").concat(key) : key;
|
21
|
+
if (typeof value === 'string') {
|
22
|
+
messages[prefixedKey] = value;
|
23
|
+
} else {
|
24
|
+
Object.assign(messages, _flattenMessages(value, prefixedKey));
|
25
|
+
}
|
26
|
+
return messages;
|
27
|
+
}, {});
|
28
|
+
};
|
29
|
+
var mergeMessages = exports.mergeMessages = function mergeMessages(defaultMessages, userMessages) {
|
30
|
+
if (!(0, _utils.isObject)(userMessages) || !(0, _utils.isObject)(userMessages.en)) {
|
31
|
+
_console["default"].error('message should be an object and contain at least the `en` translation. Read more at https://docs.kepler.gl/docs/api-reference/localization');
|
32
|
+
return defaultMessages;
|
33
|
+
}
|
34
|
+
var userEnFlat = _flattenMessages(userMessages.en);
|
35
|
+
return Object.keys(defaultMessages).reduce(function (acc, key) {
|
36
|
+
return _objectSpread(_objectSpread({}, acc), {}, (0, _defineProperty2["default"])({}, key, key === 'en' ? _objectSpread(_objectSpread({}, defaultMessages.en), userEnFlat) : _objectSpread(_objectSpread(_objectSpread({}, defaultMessages[key]), userEnFlat), _flattenMessages(userMessages[key] || {}))));
|
37
|
+
}, {});
|
38
|
+
};
|
39
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdXRpbHMiLCJyZXF1aXJlIiwiX2NvbnNvbGUiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0Iiwib3duS2V5cyIsImUiLCJyIiwidCIsIk9iamVjdCIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJmbGF0dGVuTWVzc2FnZXMiLCJleHBvcnRzIiwibmVzdGVkTWVzc2FnZXMiLCJwcmVmaXgiLCJ1bmRlZmluZWQiLCJyZWR1Y2UiLCJtZXNzYWdlcyIsImtleSIsInZhbHVlIiwicHJlZml4ZWRLZXkiLCJjb25jYXQiLCJhc3NpZ24iLCJtZXJnZU1lc3NhZ2VzIiwiZGVmYXVsdE1lc3NhZ2VzIiwidXNlck1lc3NhZ2VzIiwiaXNPYmplY3QiLCJlbiIsIkNvbnNvbGUiLCJlcnJvciIsInVzZXJFbkZsYXQiLCJhY2MiXSwic291cmNlcyI6WyIuLi9zcmMvbG9jYWxlLXV0aWxzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCB7aXNPYmplY3R9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IENvbnNvbGUgZnJvbSAnZ2xvYmFsL2NvbnNvbGUnO1xuXG4vLyBGbGF0IG1lc3NhZ2VzIHNpbmNlIHJlYWN0LWludGwgZG9lcyBub3Qgc2VlbSB0byBzdXBwb3J0IG5lc3RlZCBzdHJ1Y3R1cmVzXG4vLyBBZGFwdGVkIGZyb20gaHR0cHM6Ly9tZWRpdW0uY29tL3NpcmVuLWFwcGFyZWwtcHJlc3MvaW50ZXJuYXRpb25hbGl6YXRpb24tYW5kLWxvY2FsaXphdGlvbi1vZi1zaXJlbmFwcGFyZWwtZXUtc2lyZW5hcHBhcmVsLXVzLWFuZC1zaXJlbmFwcGFyZWwtYXNpYS1kZGVlMjY2MDY2YTJcbmV4cG9ydCBjb25zdCBmbGF0dGVuTWVzc2FnZXMgPSAobmVzdGVkTWVzc2FnZXMsIHByZWZpeCA9ICcnKSA9PiB7XG4gIHJldHVybiBPYmplY3Qua2V5cyhuZXN0ZWRNZXNzYWdlcykucmVkdWNlKChtZXNzYWdlcywga2V5KSA9PiB7XG4gICAgY29uc3QgdmFsdWUgPSBuZXN0ZWRNZXNzYWdlc1trZXldO1xuICAgIGNvbnN0IHByZWZpeGVkS2V5ID0gcHJlZml4ID8gYCR7cHJlZml4fS4ke2tleX1gIDoga2V5O1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICBtZXNzYWdlc1twcmVmaXhlZEtleV0gPSB2YWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgT2JqZWN0LmFzc2lnbihtZXNzYWdlcywgZmxhdHRlbk1lc3NhZ2VzKHZhbHVlLCBwcmVmaXhlZEtleSkpO1xuICAgIH1cbiAgICByZXR1cm4gbWVzc2FnZXM7XG4gIH0sIHt9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBtZXJnZU1lc3NhZ2VzID0gKGRlZmF1bHRNZXNzYWdlcywgdXNlck1lc3NhZ2VzKSA9PiB7XG4gIGlmICghaXNPYmplY3QodXNlck1lc3NhZ2VzKSB8fCAhaXNPYmplY3QodXNlck1lc3NhZ2VzLmVuKSkge1xuICAgIENvbnNvbGUuZXJyb3IoXG4gICAgICAnbWVzc2FnZSBzaG91bGQgYmUgYW4gb2JqZWN0IGFuZCBjb250YWluIGF0IGxlYXN0IHRoZSBgZW5gIHRyYW5zbGF0aW9uLiBSZWFkIG1vcmUgYXQgaHR0cHM6Ly9kb2NzLmtlcGxlci5nbC9kb2NzL2FwaS1yZWZlcmVuY2UvbG9jYWxpemF0aW9uJ1xuICAgICk7XG5cbiAgICByZXR1cm4gZGVmYXVsdE1lc3NhZ2VzO1xuICB9XG5cbiAgY29uc3QgdXNlckVuRmxhdCA9IGZsYXR0ZW5NZXNzYWdlcyh1c2VyTWVzc2FnZXMuZW4pO1xuICByZXR1cm4gT2JqZWN0LmtleXMoZGVmYXVsdE1lc3NhZ2VzKS5yZWR1Y2UoXG4gICAgKGFjYywga2V5KSA9PiAoe1xuICAgICAgLi4uYWNjLFxuICAgICAgW2tleV06XG4gICAgICAgIGtleSA9PT0gJ2VuJ1xuICAgICAgICAgID8gey4uLmRlZmF1bHRNZXNzYWdlcy5lbiwgLi4udXNlckVuRmxhdH1cbiAgICAgICAgICA6IHsuLi5kZWZhdWx0TWVzc2FnZXNba2V5XSwgLi4udXNlckVuRmxhdCwgLi4uZmxhdHRlbk1lc3NhZ2VzKHVzZXJNZXNzYWdlc1trZXldIHx8IHt9KX1cbiAgICB9KSxcbiAgICB7fVxuICApO1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFHQSxJQUFBQSxNQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxRQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFBcUMsU0FBQUcsUUFBQUMsQ0FBQSxFQUFBQyxDQUFBLFFBQUFDLENBQUEsR0FBQUMsTUFBQSxDQUFBQyxJQUFBLENBQUFKLENBQUEsT0FBQUcsTUFBQSxDQUFBRSxxQkFBQSxRQUFBQyxDQUFBLEdBQUFILE1BQUEsQ0FBQUUscUJBQUEsQ0FBQUwsQ0FBQSxHQUFBQyxDQUFBLEtBQUFLLENBQUEsR0FBQUEsQ0FBQSxDQUFBQyxNQUFBLFdBQUFOLENBQUEsV0FBQUUsTUFBQSxDQUFBSyx3QkFBQSxDQUFBUixDQUFBLEVBQUFDLENBQUEsRUFBQVEsVUFBQSxPQUFBUCxDQUFBLENBQUFRLElBQUEsQ0FBQUMsS0FBQSxDQUFBVCxDQUFBLEVBQUFJLENBQUEsWUFBQUosQ0FBQTtBQUFBLFNBQUFVLGNBQUFaLENBQUEsYUFBQUMsQ0FBQSxNQUFBQSxDQUFBLEdBQUFZLFNBQUEsQ0FBQUMsTUFBQSxFQUFBYixDQUFBLFVBQUFDLENBQUEsV0FBQVcsU0FBQSxDQUFBWixDQUFBLElBQUFZLFNB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
|
@@ -0,0 +1 @@
|
|
1
|
+
export declare function isValidMapInfo(mapInfo: any): any;
|
@@ -0,0 +1,14 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.isValidMapInfo = isValidMapInfo;
|
7
|
+
var _constants = require("@kepler.gl/constants");
|
8
|
+
// SPDX-License-Identifier: MIT
|
9
|
+
// Copyright contributors to the kepler.gl project
|
10
|
+
|
11
|
+
function isValidMapInfo(mapInfo) {
|
12
|
+
return mapInfo.title.length && mapInfo.title.length <= _constants.MAP_INFO_CHARACTER.title && (!mapInfo.description.length || mapInfo.description.length <= _constants.MAP_INFO_CHARACTER.description);
|
13
|
+
}
|
14
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29uc3RhbnRzIiwicmVxdWlyZSIsImlzVmFsaWRNYXBJbmZvIiwibWFwSW5mbyIsInRpdGxlIiwibGVuZ3RoIiwiTUFQX0lORk9fQ0hBUkFDVEVSIiwiZGVzY3JpcHRpb24iXSwic291cmNlcyI6WyIuLi9zcmMvbWFwLWluZm8tdXRpbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IHtNQVBfSU5GT19DSEFSQUNURVJ9IGZyb20gJ0BrZXBsZXIuZ2wvY29uc3RhbnRzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRNYXBJbmZvKG1hcEluZm8pIHtcbiAgcmV0dXJuIChcbiAgICBtYXBJbmZvLnRpdGxlLmxlbmd0aCAmJlxuICAgIG1hcEluZm8udGl0bGUubGVuZ3RoIDw9IE1BUF9JTkZPX0NIQVJBQ1RFUi50aXRsZSAmJlxuICAgICghbWFwSW5mby5kZXNjcmlwdGlvbi5sZW5ndGggfHwgbWFwSW5mby5kZXNjcmlwdGlvbi5sZW5ndGggPD0gTUFQX0lORk9fQ0hBUkFDVEVSLmRlc2NyaXB0aW9uKVxuICApO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFHQSxJQUFBQSxVQUFBLEdBQUFDLE9BQUE7QUFIQTtBQUNBOztBQUlPLFNBQVNDLGNBQWNBLENBQUNDLE9BQU8sRUFBRTtFQUN0QyxPQUNFQSxPQUFPLENBQUNDLEtBQUssQ0FBQ0MsTUFBTSxJQUNwQkYsT0FBTyxDQUFDQyxLQUFLLENBQUNDLE1BQU0sSUFBSUMsNkJBQWtCLENBQUNGLEtBQUssS0FDL0MsQ0FBQ0QsT0FBTyxDQUFDSSxXQUFXLENBQUNGLE1BQU0sSUFBSUYsT0FBTyxDQUFDSSxXQUFXLENBQUNGLE1BQU0sSUFBSUMsNkJBQWtCLENBQUNDLFdBQVcsQ0FBQztBQUVqRyIsImlnbm9yZUxpc3QiOltdfQ==
|
@@ -0,0 +1,57 @@
|
|
1
|
+
/// <reference types="lodash" />
|
2
|
+
import { BaseMapStyle, LayerGroup, MapState } from '@kepler.gl/types';
|
3
|
+
export declare function getDefaultLayerGroupVisibility({ layerGroups }: {
|
4
|
+
layerGroups: LayerGroup[];
|
5
|
+
}): {};
|
6
|
+
/**
|
7
|
+
* Edit preset map style to keep only visible layers
|
8
|
+
*
|
9
|
+
* @param mapStyle - preset map style
|
10
|
+
* @param visibleLayerGroups - visible layers of top map
|
11
|
+
* @returns top map style
|
12
|
+
*/
|
13
|
+
export declare const editTopMapStyle: (({ mapStyle, visibleLayerGroups }: {
|
14
|
+
id?: string | undefined;
|
15
|
+
mapStyle: BaseMapStyle;
|
16
|
+
visibleLayerGroups: false | {
|
17
|
+
[id: string]: boolean | LayerGroup;
|
18
|
+
};
|
19
|
+
}) => {
|
20
|
+
layers: any;
|
21
|
+
}) & import("lodash").MemoizedFunction;
|
22
|
+
/**
|
23
|
+
* Edit preset map style to filter out invisible layers
|
24
|
+
*
|
25
|
+
* @param {Object} mapStyle - preset map style
|
26
|
+
* @param {Object} visibleLayerGroups - visible layers of bottom map
|
27
|
+
* @returns {Object} bottom map style
|
28
|
+
*/
|
29
|
+
export declare const editBottomMapStyle: (({ id, mapStyle, visibleLayerGroups }: any) => any) & import("lodash").MemoizedFunction;
|
30
|
+
export declare function getStyleDownloadUrl(styleUrl: any, accessToken: any, mapboxApiUrl: any): any;
|
31
|
+
/**
|
32
|
+
* Generate static map image from style Url to be used as icon
|
33
|
+
* @param param
|
34
|
+
* @param param.styleUrl
|
35
|
+
* @param param.mapboxApiAccessToken
|
36
|
+
* @param param.mapboxApiUrl
|
37
|
+
* @param param.mapState
|
38
|
+
* @param param.mapW
|
39
|
+
* @param param.mapH
|
40
|
+
*/
|
41
|
+
export declare function getStyleImageIcon({ styleUrl, mapboxApiAccessToken, mapboxApiUrl, mapState, mapW, mapH }: {
|
42
|
+
styleUrl: string;
|
43
|
+
mapboxApiAccessToken: string;
|
44
|
+
mapboxApiUrl?: string;
|
45
|
+
mapState?: Partial<MapState>;
|
46
|
+
mapW?: number;
|
47
|
+
mapH?: number;
|
48
|
+
}): string;
|
49
|
+
export declare function scaleMapStyleByResolution(mapboxStyle: any, scale: any): any;
|
50
|
+
/**
|
51
|
+
* When switch to a new style, try to keep current layer group visibility
|
52
|
+
* by merging default and current
|
53
|
+
* @param {Object} defaultLayerGroup
|
54
|
+
* @param {Object} currentLayerGroup
|
55
|
+
* @return {Object} mergedLayerGroups
|
56
|
+
*/
|
57
|
+
export declare function mergeLayerGroupVisibility(defaultLayerGroup: any, currentLayerGroup: any): any;
|
@@ -0,0 +1,188 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
5
|
+
value: true
|
6
|
+
});
|
7
|
+
exports.editTopMapStyle = exports.editBottomMapStyle = void 0;
|
8
|
+
exports.getDefaultLayerGroupVisibility = getDefaultLayerGroupVisibility;
|
9
|
+
exports.getStyleDownloadUrl = getStyleDownloadUrl;
|
10
|
+
exports.getStyleImageIcon = getStyleImageIcon;
|
11
|
+
exports.mergeLayerGroupVisibility = mergeLayerGroupVisibility;
|
12
|
+
exports.scaleMapStyleByResolution = scaleMapStyleByResolution;
|
13
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
14
|
+
var _lodash = _interopRequireDefault(require("lodash.memoize"));
|
15
|
+
var _lodash2 = _interopRequireDefault(require("lodash.clonedeep"));
|
16
|
+
var _constants = require("@kepler.gl/constants");
|
17
|
+
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; }
|
18
|
+
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
|
19
|
+
// Copyright contributors to the kepler.gl project
|
20
|
+
function getDefaultLayerGroupVisibility(_ref) {
|
21
|
+
var _ref$layerGroups = _ref.layerGroups,
|
22
|
+
layerGroups = _ref$layerGroups === void 0 ? [] : _ref$layerGroups;
|
23
|
+
return layerGroups.reduce(function (accu, layer) {
|
24
|
+
return _objectSpread(_objectSpread({}, accu), {}, (0, _defineProperty2["default"])({}, layer.slug, layer.defaultVisibility));
|
25
|
+
}, {});
|
26
|
+
}
|
27
|
+
var resolver = function resolver(_ref2) {
|
28
|
+
var id = _ref2.id,
|
29
|
+
_ref2$visibleLayerGro = _ref2.visibleLayerGroups,
|
30
|
+
visibleLayerGroups = _ref2$visibleLayerGro === void 0 ? {} : _ref2$visibleLayerGro;
|
31
|
+
return "".concat(id, ":").concat(Object.keys(visibleLayerGroups).filter(function (d) {
|
32
|
+
return visibleLayerGroups[d];
|
33
|
+
}).sort().join('-'));
|
34
|
+
};
|
35
|
+
|
36
|
+
/**
|
37
|
+
* Edit preset map style to keep only visible layers
|
38
|
+
*
|
39
|
+
* @param mapStyle - preset map style
|
40
|
+
* @param visibleLayerGroups - visible layers of top map
|
41
|
+
* @returns top map style
|
42
|
+
*/
|
43
|
+
var editTopMapStyle = exports.editTopMapStyle = (0, _lodash["default"])(function (_ref3) {
|
44
|
+
var mapStyle = _ref3.mapStyle,
|
45
|
+
visibleLayerGroups = _ref3.visibleLayerGroups;
|
46
|
+
var visibleFilters = (mapStyle.layerGroups || []).filter(function (lg) {
|
47
|
+
return visibleLayerGroups[lg.slug];
|
48
|
+
}).map(function (lg) {
|
49
|
+
return lg.filter;
|
50
|
+
});
|
51
|
+
|
52
|
+
// if top map
|
53
|
+
// keep only visible layers
|
54
|
+
// @ts-expect-error
|
55
|
+
var filteredLayers = mapStyle.style.layers.filter(function (layer) {
|
56
|
+
return visibleFilters.some(function (match) {
|
57
|
+
return match(layer);
|
58
|
+
});
|
59
|
+
});
|
60
|
+
return _objectSpread(_objectSpread({}, mapStyle.style), {}, {
|
61
|
+
layers: filteredLayers
|
62
|
+
});
|
63
|
+
}, resolver);
|
64
|
+
|
65
|
+
/**
|
66
|
+
* Edit preset map style to filter out invisible layers
|
67
|
+
*
|
68
|
+
* @param {Object} mapStyle - preset map style
|
69
|
+
* @param {Object} visibleLayerGroups - visible layers of bottom map
|
70
|
+
* @returns {Object} bottom map style
|
71
|
+
*/
|
72
|
+
var editBottomMapStyle = exports.editBottomMapStyle = (0, _lodash["default"])(function (_ref4) {
|
73
|
+
var id = _ref4.id,
|
74
|
+
mapStyle = _ref4.mapStyle,
|
75
|
+
visibleLayerGroups = _ref4.visibleLayerGroups;
|
76
|
+
if (id === _constants.NO_MAP_ID) {
|
77
|
+
return _constants.EMPTY_MAPBOX_STYLE;
|
78
|
+
}
|
79
|
+
var invisibleFilters = (mapStyle.layerGroups || []).filter(function (lg) {
|
80
|
+
return !visibleLayerGroups[lg.slug];
|
81
|
+
}).map(function (lg) {
|
82
|
+
return lg.filter;
|
83
|
+
});
|
84
|
+
|
85
|
+
// if bottom map
|
86
|
+
// filter out invisible layers
|
87
|
+
var filteredLayers = mapStyle.style.layers.filter(function (layer) {
|
88
|
+
return invisibleFilters.every(function (match) {
|
89
|
+
return !match(layer);
|
90
|
+
});
|
91
|
+
});
|
92
|
+
return _objectSpread(_objectSpread({}, mapStyle.style), {}, {
|
93
|
+
layers: filteredLayers
|
94
|
+
});
|
95
|
+
}, resolver);
|
96
|
+
function getStyleDownloadUrl(styleUrl, accessToken, mapboxApiUrl) {
|
97
|
+
if (styleUrl.startsWith('http')) {
|
98
|
+
return styleUrl;
|
99
|
+
}
|
100
|
+
|
101
|
+
// mapbox://styles/jckr/cjhcl0lxv13di2rpfoytdbdyj
|
102
|
+
if (styleUrl.startsWith('mapbox://styles')) {
|
103
|
+
var styleId = styleUrl.replace('mapbox://styles/', '');
|
104
|
+
|
105
|
+
// https://api.mapbox.com/styles/v1/heshan0131/cjg1bfumo1cwm2rlrjxkinfgw?pluginName=Keplergl&access_token=<token>
|
106
|
+
return "".concat(mapboxApiUrl || _constants.DEFAULT_MAPBOX_API_URL, "/styles/v1/").concat(styleId, "?pluginName=Keplergl&access_token=").concat(accessToken);
|
107
|
+
}
|
108
|
+
|
109
|
+
// style url not recognized
|
110
|
+
return null;
|
111
|
+
}
|
112
|
+
|
113
|
+
/**
|
114
|
+
* Generate static map image from style Url to be used as icon
|
115
|
+
* @param param
|
116
|
+
* @param param.styleUrl
|
117
|
+
* @param param.mapboxApiAccessToken
|
118
|
+
* @param param.mapboxApiUrl
|
119
|
+
* @param param.mapState
|
120
|
+
* @param param.mapW
|
121
|
+
* @param param.mapH
|
122
|
+
*/
|
123
|
+
function getStyleImageIcon(_ref5) {
|
124
|
+
var styleUrl = _ref5.styleUrl,
|
125
|
+
mapboxApiAccessToken = _ref5.mapboxApiAccessToken,
|
126
|
+
_ref5$mapboxApiUrl = _ref5.mapboxApiUrl,
|
127
|
+
mapboxApiUrl = _ref5$mapboxApiUrl === void 0 ? _constants.DEFAULT_MAPBOX_API_URL : _ref5$mapboxApiUrl,
|
128
|
+
_ref5$mapState = _ref5.mapState,
|
129
|
+
mapState = _ref5$mapState === void 0 ? {
|
130
|
+
longitude: -122.3391,
|
131
|
+
latitude: 37.7922,
|
132
|
+
zoom: 9
|
133
|
+
} : _ref5$mapState,
|
134
|
+
_ref5$mapW = _ref5.mapW,
|
135
|
+
mapW = _ref5$mapW === void 0 ? 400 : _ref5$mapW,
|
136
|
+
_ref5$mapH = _ref5.mapH,
|
137
|
+
mapH = _ref5$mapH === void 0 ? 300 : _ref5$mapH;
|
138
|
+
var styleId = styleUrl.replace('mapbox://styles/', '');
|
139
|
+
return "".concat(mapboxApiUrl, "/styles/v1/").concat(styleId, "/static/") + "".concat(mapState.longitude, ",").concat(mapState.latitude, ",").concat(mapState.zoom, ",0,0/") + "".concat(mapW, "x").concat(mapH) + "?access_token=".concat(mapboxApiAccessToken, "&logo=false&attribution=false");
|
140
|
+
}
|
141
|
+
function scaleMapStyleByResolution(mapboxStyle, scale) {
|
142
|
+
if (scale !== 1 && mapboxStyle) {
|
143
|
+
var labelLayerGroup = _constants.DEFAULT_LAYER_GROUPS.find(function (lg) {
|
144
|
+
return lg.slug === 'label';
|
145
|
+
});
|
146
|
+
// @ts-ignore
|
147
|
+
var labelLayerFilter = labelLayerGroup.filter;
|
148
|
+
var zoomOffset = Math.log2(scale);
|
149
|
+
var copyStyle = (0, _lodash2["default"])(mapboxStyle);
|
150
|
+
(copyStyle.layers || []).forEach(function (d) {
|
151
|
+
// edit minzoom and maxzoom
|
152
|
+
if (d.maxzoom) {
|
153
|
+
d.maxzoom = Math.max(d.maxzoom + zoomOffset, 1);
|
154
|
+
}
|
155
|
+
if (d.minzoom) {
|
156
|
+
d.minzoom = Math.max(d.minzoom + zoomOffset, 1);
|
157
|
+
}
|
158
|
+
|
159
|
+
// edit text size
|
160
|
+
if (labelLayerFilter(d)) {
|
161
|
+
if (d.layout && d.layout['text-size'] && Array.isArray(d.layout['text-size'].stops)) {
|
162
|
+
d.layout['text-size'].stops.forEach(function (stop) {
|
163
|
+
// zoom
|
164
|
+
stop[0] = Math.max(stop[0] + zoomOffset, 1);
|
165
|
+
// size
|
166
|
+
stop[1] *= scale;
|
167
|
+
});
|
168
|
+
}
|
169
|
+
}
|
170
|
+
});
|
171
|
+
return copyStyle;
|
172
|
+
}
|
173
|
+
return mapboxStyle;
|
174
|
+
}
|
175
|
+
|
176
|
+
/**
|
177
|
+
* When switch to a new style, try to keep current layer group visibility
|
178
|
+
* by merging default and current
|
179
|
+
* @param {Object} defaultLayerGroup
|
180
|
+
* @param {Object} currentLayerGroup
|
181
|
+
* @return {Object} mergedLayerGroups
|
182
|
+
*/
|
183
|
+
function mergeLayerGroupVisibility(defaultLayerGroup, currentLayerGroup) {
|
184
|
+
return Object.keys(defaultLayerGroup).reduce(function (accu, key) {
|
185
|
+
return _objectSpread(_objectSpread({}, accu), Object.prototype.hasOwnProperty.call(currentLayerGroup, key) ? (0, _defineProperty2["default"])({}, key, currentLayerGroup[key]) : {});
|
186
|
+
}, defaultLayerGroup);
|
187
|
+
}
|
188
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9kYXNoIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfbG9kYXNoMiIsIl9jb25zdGFudHMiLCJvd25LZXlzIiwiZSIsInIiLCJ0IiwiT2JqZWN0Iiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsImdldERlZmF1bHRMYXllckdyb3VwVmlzaWJpbGl0eSIsIl9yZWYiLCJfcmVmJGxheWVyR3JvdXBzIiwibGF5ZXJHcm91cHMiLCJyZWR1Y2UiLCJhY2N1IiwibGF5ZXIiLCJzbHVnIiwiZGVmYXVsdFZpc2liaWxpdHkiLCJyZXNvbHZlciIsIl9yZWYyIiwiaWQiLCJfcmVmMiR2aXNpYmxlTGF5ZXJHcm8iLCJ2aXNpYmxlTGF5ZXJHcm91cHMiLCJjb25jYXQiLCJkIiwic29ydCIsImpvaW4iLCJlZGl0VG9wTWFwU3R5bGUiLCJleHBvcnRzIiwibWVtb2l6ZSIsIl9yZWYzIiwibWFwU3R5bGUiLCJ2aXNpYmxlRmlsdGVycyIsImxnIiwibWFwIiwiZmlsdGVyZWRMYXllcnMiLCJzdHlsZSIsImxheWVycyIsInNvbWUiLCJtYXRjaCIsImVkaXRCb3R0b21NYXBTdHlsZSIsIl9yZWY0IiwiTk9fTUFQX0lEIiwiRU1QVFlfTUFQQk9YX1NUWUxFIiwiaW52aXNpYmxlRmlsdGVycyIsImV2ZXJ5IiwiZ2V0U3R5bGVEb3dubG9hZFVybCIsInN0eWxlVXJsIiwiYWNjZXNzVG9rZW4iLCJtYXBib3hBcGlVcmwiLCJzdGFydHNXaXRoIiwic3R5bGVJZCIsInJlcGxhY2UiLCJERUZBVUxUX01BUEJPWF9BUElfVVJMIiwiZ2V0U3R5bGVJbWFnZUljb24iLCJfcmVmNSIsIm1hcGJveEFwaUFjY2Vzc1Rva2VuIiwiX3JlZjUkbWFwYm94QXBpVXJsIiwiX3JlZjUkbWFwU3RhdGUiLCJtYXBTdGF0ZSIsImxvbmdpdHVkZSIsImxhdGl0dWRlIiwiem9vbSIsIl9yZWY1JG1hcFciLCJtYXBXIiwiX3JlZjUkbWFwSCIsIm1hcEgiLCJzY2FsZU1hcFN0eWxlQnlSZXNvbHV0aW9uIiwibWFwYm94U3R5bGUiLCJzY2FsZSIsImxhYmVsTGF5ZXJHcm91cCIsIkRFRkFVTFRfTEFZRVJfR1JPVVBTIiwiZmluZCIsImxhYmVsTGF5ZXJGaWx0ZXIiLCJ6b29tT2Zmc2V0IiwiTWF0aCIsImxvZzIiLCJjb3B5U3R5bGUiLCJjbG9uZERlZXAiLCJtYXh6b29tIiwibWF4IiwibWluem9vbSIsImxheW91dCIsIkFycmF5IiwiaXNBcnJheSIsInN0b3BzIiwic3RvcCIsIm1lcmdlTGF5ZXJHcm91cFZpc2liaWxpdHkiLCJkZWZhdWx0TGF5ZXJHcm91cCIsImN1cnJlbnRMYXllckdyb3VwIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL21hcC1zdHlsZS11dGlscy9tYXBib3gtZ2wtc3R5bGUtZWRpdG9yLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBtZW1vaXplIGZyb20gJ2xvZGFzaC5tZW1vaXplJztcbmltcG9ydCBjbG9uZERlZXAgZnJvbSAnbG9kYXNoLmNsb25lZGVlcCc7XG5pbXBvcnQge1xuICBERUZBVUxUX0xBWUVSX0dST1VQUyxcbiAgREVGQVVMVF9NQVBCT1hfQVBJX1VSTCxcbiAgTk9fTUFQX0lELFxuICBFTVBUWV9NQVBCT1hfU1RZTEVcbn0gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuaW1wb3J0IHtCYXNlTWFwU3R5bGUsIExheWVyR3JvdXAsIE1hcFN0YXRlfSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGdldERlZmF1bHRMYXllckdyb3VwVmlzaWJpbGl0eSh7bGF5ZXJHcm91cHMgPSBbXX06IHtsYXllckdyb3VwczogTGF5ZXJHcm91cFtdfSkge1xuICByZXR1cm4gbGF5ZXJHcm91cHMucmVkdWNlKFxuICAgIChhY2N1LCBsYXllcikgPT4gKHtcbiAgICAgIC4uLmFjY3UsXG4gICAgICBbbGF5ZXIuc2x1Z106IGxheWVyLmRlZmF1bHRWaXNpYmlsaXR5XG4gICAgfSksXG4gICAge31cbiAgKTtcbn1cblxuY29uc3QgcmVzb2x2ZXIgPSAoe1xuICBpZCxcbiAgdmlzaWJsZUxheWVyR3JvdXBzID0ge31cbn06IHtcbiAgaWQ/OiBzdHJpbmc7XG4gIG1hcFN0eWxlOiBCYXNlTWFwU3R5bGU7XG4gIHZpc2libGVMYXllckdyb3Vwczoge1tpZDogc3RyaW5nXTogTGF5ZXJHcm91cCB8IGJvb2xlYW59IHwgZmFsc2U7XG59KSA9PlxuICBgJHtpZH06JHtPYmplY3Qua2V5cyh2aXNpYmxlTGF5ZXJHcm91cHMpXG4gICAgLmZpbHRlcihkID0+IHZpc2libGVMYXllckdyb3Vwc1tkXSlcbiAgICAuc29ydCgpXG4gICAgLmpvaW4oJy0nKX1gO1xuXG4vKipcbiAqIEVkaXQgcHJlc2V0IG1hcCBzdHlsZSB0byBrZWVwIG9ubHkgdmlzaWJsZSBsYXllcnNcbiAqXG4gKiBAcGFyYW0gbWFwU3R5bGUgLSBwcmVzZXQgbWFwIHN0eWxlXG4gKiBAcGFyYW0gdmlzaWJsZUxheWVyR3JvdXBzIC0gdmlzaWJsZSBsYXllcnMgb2YgdG9wIG1hcFxuICogQHJldHVybnMgdG9wIG1hcCBzdHlsZVxuICovXG5leHBvcnQgY29uc3QgZWRpdFRvcE1hcFN0eWxlID0gbWVtb2l6ZShcbiAgKHtcbiAgICBtYXBTdHlsZSxcbiAgICB2aXNpYmxlTGF5ZXJHcm91cHNcbiAgfToge1xuICAgIGlkPzogc3RyaW5nO1xuICAgIG1hcFN0eWxlOiBCYXNlTWFwU3R5bGU7XG4gICAgdmlzaWJsZUxheWVyR3JvdXBzOiB7W2lkOiBzdHJpbmddOiBMYXllckdyb3VwIHwgYm9vbGVhbn0gfCBmYWxzZTtcbiAgfSkgPT4ge1xuICAgIGNvbnN0IHZpc2libGVGaWx0ZXJzID0gKG1hcFN0eWxlLmxheWVyR3JvdXBzIHx8IFtdKVxuICAgICAgLmZpbHRlcihsZyA9PiB2aXNpYmxlTGF5ZXJHcm91cHNbbGcuc2x1Z10pXG4gICAgICAubWFwKGxnID0+IGxnLmZpbHRlcik7XG5cbiAgICAvLyBpZiB0b3AgbWFwXG4gICAgLy8ga2VlcCBvbmx5IHZpc2libGUgbGF5ZXJzXG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICAgIGNvbnN0IGZpbHRlcmVkTGF5ZXJzID0gbWFwU3R5bGUuc3R5bGUubGF5ZXJzLmZpbHRlcihsYXllciA9PlxuICAgICAgdmlzaWJsZUZpbHRlcnMuc29tZShtYXRjaCA9PiBtYXRjaChsYXllcikpXG4gICAgKTtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi5tYXBTdHlsZS5zdHlsZSxcbiAgICAgIGxheWVyczogZmlsdGVyZWRMYXllcnNcbiAgICB9O1xuICB9LFxuICByZXNvbHZlclxuKTtcblxuLyoqXG4gKiBFZGl0IHByZXNldCBtYXAgc3R5bGUgdG8gZmlsdGVyIG91dCBpbnZpc2libGUgbGF5ZXJzXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IG1hcFN0eWxlIC0gcHJlc2V0IG1hcCBzdHlsZVxuICogQHBhcmFtIHtPYmplY3R9IHZpc2libGVMYXllckdyb3VwcyAtIHZpc2libGUgbGF5ZXJzIG9mIGJvdHRvbSBtYXBcbiAqIEByZXR1cm5zIHtPYmplY3R9IGJvdHRvbSBtYXAgc3R5bGVcbiAqL1xuZXhwb3J0IGNvbnN0IGVkaXRCb3R0b21NYXBTdHlsZSA9IG1lbW9pemUoKHtpZCwgbWFwU3R5bGUsIHZpc2libGVMYXllckdyb3Vwc30pID0+IHtcbiAgaWYgKGlkID09PSBOT19NQVBfSUQpIHtcbiAgICByZXR1cm4gRU1QVFlfTUFQQk9YX1NUWUxFO1xuICB9XG5cbiAgY29uc3QgaW52aXNpYmxlRmlsdGVycyA9IChtYXBTdHlsZS5sYXllckdyb3VwcyB8fCBbXSlcbiAgICAuZmlsdGVyKGxnID0+ICF2aXNpYmxlTGF5ZXJHcm91cHNbbGcuc2x1Z10pXG4gICAgLm1hcChsZyA9PiBsZy5maWx0ZXIpO1xuXG4gIC8vIGlmIGJvdHRvbSBtYXBcbiAgLy8gZmlsdGVyIG91dCBpbnZpc2libGUgbGF5ZXJzXG4gIGNvbnN0IGZpbHRlcmVkTGF5ZXJzID0gbWFwU3R5bGUuc3R5bGUubGF5ZXJzLmZpbHRlcihsYXllciA9PlxuICAgIGludmlzaWJsZUZpbHRlcnMuZXZlcnkobWF0Y2ggPT4gIW1hdGNoKGxheWVyKSlcbiAgKTtcblxuICByZXR1cm4ge1xuICAgIC4uLm1hcFN0eWxlLnN0eWxlLFxuICAgIGxheWVyczogZmlsdGVyZWRMYXllcnNcbiAgfTtcbn0sIHJlc29sdmVyKTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFN0eWxlRG93bmxvYWRVcmwoc3R5bGVVcmwsIGFjY2Vzc1Rva2VuLCBtYXBib3hBcGlVcmwpIHtcbiAgaWYgKHN0eWxlVXJsLnN0YXJ0c1dpdGgoJ2h0dHAnKSkge1xuICAgIHJldHVybiBzdHlsZVVybDtcbiAgfVxuXG4gIC8vIG1hcGJveDovL3N0eWxlcy9qY2tyL2NqaGNsMGx4djEzZGkycnBmb3l0ZGJkeWpcbiAgaWYgKHN0eWxlVXJsLnN0YXJ0c1dpdGgoJ21hcGJveDovL3N0eWxlcycpKSB7XG4gICAgY29uc3Qgc3R5bGVJZCA9IHN0eWxlVXJsLnJlcGxhY2UoJ21hcGJveDovL3N0eWxlcy8nLCAnJyk7XG5cbiAgICAvLyBodHRwczovL2FwaS5tYXBib3guY29tL3N0eWxlcy92MS9oZXNoYW4wMTMxL2NqZzFiZnVtbzFjd20ycmxyanhraW5mZ3c/cGx1Z2luTmFtZT1LZXBsZXJnbCZhY2Nlc3NfdG9rZW49PHRva2VuPlxuICAgIHJldHVybiBgJHtcbiAgICAgIG1hcGJveEFwaVVybCB8fCBERUZBVUxUX01BUEJPWF9BUElfVVJMXG4gICAgfS9zdHlsZXMvdjEvJHtzdHlsZUlkfT9wbHVnaW5OYW1lPUtlcGxlcmdsJmFjY2Vzc190b2tlbj0ke2FjY2Vzc1Rva2VufWA7XG4gIH1cblxuICAvLyBzdHlsZSB1cmwgbm90IHJlY29nbml6ZWRcbiAgcmV0dXJuIG51bGw7XG59XG5cbi8qKlxuICogR2VuZXJhdGUgc3RhdGljIG1hcCBpbWFnZSBmcm9tIHN0eWxlIFVybCB0byBiZSB1c2VkIGFzIGljb25cbiAqIEBwYXJhbSBwYXJhbVxuICogQHBhcmFtIHBhcmFtLnN0eWxlVXJsXG4gKiBAcGFyYW0gcGFyYW0ubWFwYm94QXBpQWNjZXNzVG9rZW5cbiAqIEBwYXJhbSBwYXJhbS5tYXBib3hBcGlVcmxcbiAqIEBwYXJhbSBwYXJhbS5tYXBTdGF0ZVxuICogQHBhcmFtIHBhcmFtLm1hcFdcbiAqIEBwYXJhbSBwYXJhbS5tYXBIXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRTdHlsZUltYWdlSWNvbih7XG4gIHN0eWxlVXJsLFxuICBtYXBib3hBcGlBY2Nlc3NUb2tlbixcbiAgbWFwYm94QXBpVXJsID0gREVGQVVMVF9NQVBCT1hfQVBJX1VSTCxcbiAgbWFwU3RhdGUgPSB7XG4gICAgbG9uZ2l0dWRlOiAtMTIyLjMzOTEsXG4gICAgbGF0aXR1ZGU6IDM3Ljc5MjIsXG4gICAgem9vbTogOVxuICB9LFxuICBtYXBXID0gNDAwLFxuICBtYXBIID0gMzAwXG59OiB7XG4gIHN0eWxlVXJsOiBzdHJpbmc7XG4gIG1hcGJveEFwaUFjY2Vzc1Rva2VuOiBzdHJpbmc7XG4gIG1hcGJveEFwaVVybD86IHN0cmluZztcbiAgbWFwU3RhdGU/OiBQYXJ0aWFsPE1hcFN0YXRlPjtcbiAgbWFwVz86IG51bWJlcjtcbiAgbWFwSD86IG51bWJlcjtcbn0pIHtcbiAgY29uc3Qgc3R5bGVJZCA9IHN0eWxlVXJsLnJlcGxhY2UoJ21hcGJveDovL3N0eWxlcy8nLCAnJyk7XG5cbiAgcmV0dXJuIChcbiAgICBgJHttYXBib3hBcGlVcmx9L3N0eWxlcy92MS8ke3N0eWxlSWR9L3N0YXRpYy9gICtcbiAgICBgJHttYXBTdGF0ZS5sb25naXR1ZGV9LCR7bWFwU3RhdGUubGF0aXR1ZGV9LCR7bWFwU3RhdGUuem9vbX0sMCwwL2AgK1xuICAgIGAke21hcFd9eCR7bWFwSH1gICtcbiAgICBgP2FjY2Vzc190b2tlbj0ke21hcGJveEFwaUFjY2Vzc1Rva2VufSZsb2dvPWZhbHNlJmF0dHJpYnV0aW9uPWZhbHNlYFxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2NhbGVNYXBTdHlsZUJ5UmVzb2x1dGlvbihtYXBib3hTdHlsZSwgc2NhbGUpIHtcbiAgaWYgKHNjYWxlICE9PSAxICYmIG1hcGJveFN0eWxlKSB7XG4gICAgY29uc3QgbGFiZWxMYXllckdyb3VwID0gREVGQVVMVF9MQVlFUl9HUk9VUFMuZmluZChsZyA9PiBsZy5zbHVnID09PSAnbGFiZWwnKTtcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgY29uc3Qge2ZpbHRlcjogbGFiZWxMYXllckZpbHRlcn0gPSBsYWJlbExheWVyR3JvdXA7XG4gICAgY29uc3Qgem9vbU9mZnNldCA9IE1hdGgubG9nMihzY2FsZSk7XG5cbiAgICBjb25zdCBjb3B5U3R5bGUgPSBjbG9uZERlZXAobWFwYm94U3R5bGUpO1xuICAgIChjb3B5U3R5bGUubGF5ZXJzIHx8IFtdKS5mb3JFYWNoKGQgPT4ge1xuICAgICAgLy8gZWRpdCBtaW56b29tIGFuZCBtYXh6b29tXG4gICAgICBpZiAoZC5tYXh6b29tKSB7XG4gICAgICAgIGQubWF4em9vbSA9IE1hdGgubWF4KGQubWF4em9vbSArIHpvb21PZmZzZXQsIDEpO1xuICAgICAgfVxuXG4gICAgICBpZiAoZC5taW56b29tKSB7XG4gICAgICAgIGQubWluem9vbSA9IE1hdGgubWF4KGQubWluem9vbSArIHpvb21PZmZzZXQsIDEpO1xuICAgICAgfVxuXG4gICAgICAvLyBlZGl0IHRleHQgc2l6ZVxuICAgICAgaWYgKGxhYmVsTGF5ZXJGaWx0ZXIoZCkpIHtcbiAgICAgICAgaWYgKGQubGF5b3V0ICYmIGQubGF5b3V0Wyd0ZXh0LXNpemUnXSAmJiBBcnJheS5pc0FycmF5KGQubGF5b3V0Wyd0ZXh0LXNpemUnXS5zdG9wcykpIHtcbiAgICAgICAgICBkLmxheW91dFsndGV4dC1zaXplJ10uc3RvcHMuZm9yRWFjaChzdG9wID0+IHtcbiAgICAgICAgICAgIC8vIHpvb21cbiAgICAgICAgICAgIHN0b3BbMF0gPSBNYXRoLm1heChzdG9wWzBdICsgem9vbU9mZnNldCwgMSk7XG4gICAgICAgICAgICAvLyBzaXplXG4gICAgICAgICAgICBzdG9wWzFdICo9IHNjYWxlO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gY29weVN0eWxlO1xuICB9XG5cbiAgcmV0dXJuIG1hcGJveFN0eWxlO1xufVxuXG4vKipcbiAqIFdoZW4gc3dpdGNoIHRvIGEgbmV3IHN0eWxlLCB0cnkgdG8ga2VlcCBjdXJyZW50IGxheWVyIGdyb3VwIHZpc2liaWxpdHlcbiAqIGJ5IG1lcmdpbmcgZGVmYXVsdCBhbmQgY3VycmVudFxuICogQHBhcmFtIHtPYmplY3R9IGRlZmF1bHRMYXllckdyb3VwXG4gKiBAcGFyYW0ge09iamVjdH0gY3VycmVudExheWVyR3JvdXBcbiAqIEByZXR1cm4ge09iamVjdH0gbWVyZ2VkTGF5ZXJHcm91cHNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1lcmdlTGF5ZXJHcm91cFZpc2liaWxpdHkoZGVmYXVsdExheWVyR3JvdXAsIGN1cnJlbnRMYXllckdyb3VwKSB7XG4gIHJldHVybiBPYmplY3Qua2V5cyhkZWZhdWx0TGF5ZXJHcm91cCkucmVkdWNlKFxuICAgIChhY2N1LCBrZXkpID0+ICh7XG4gICAgICAuLi5hY2N1LFxuICAgICAgLi4uKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChjdXJyZW50TGF5ZXJHcm91cCwga2V5KVxuICAgICAgICA/IHtba2V5XTogY3VycmVudExheWVyR3JvdXBba2V5XX1cbiAgICAgICAgOiB7fSlcbiAgICB9KSxcbiAgICBkZWZhdWx0TGF5ZXJHcm91cFxuICApO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBR0EsSUFBQUEsT0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsUUFBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUUsVUFBQSxHQUFBRixPQUFBO0FBSzhCLFNBQUFHLFFBQUFDLENBQUEsRUFBQUMsQ0FBQSxRQUFBQyxDQUFBLEdBQUFDLE1BQUEsQ0FBQUMsSUFBQSxDQUFBSixDQUFBLE9BQUFHLE1BQUEsQ0FBQUUscUJBQUEsUUFBQUMsQ0FBQSxHQUFBSCxNQUFBLENBQUFFLHFCQUFBLENBQUFMLENBQUEsR0FBQUMsQ0FBQSxLQUFBSyxDQUFBLEdBQUFBLENBQUEsQ0FBQUMsTUFBQSxXQUFBTixDQUFBLFdBQUFFLE1BQUEsQ0FBQUssd0JBQUEsQ0FBQVIsQ0FBQSxFQUFBQyxDQUFBLEVBQUFRLFVBQUEsT0FBQVAsQ0FBQSxDQUFBUSxJQUFBLENBQUFDLEtBQUEsQ0FBQVQsQ0FBQSxFQUFBSSxDQUFBLFlBQUFKLENBQUE7QUFBQSxTQUFBVSxjQUFBWixDQUFBLGFBQUFDLENBQUEsTUFBQUEsQ0FBQSxHQUFBWSxTQUFBLENBQUFDLE1BQUEsRUFBQWIsQ0FBQSxVQUFBQyxDQUFBLFdBQUFXLFNBQUEsQ0FBQVosQ0FBQSxJQUFBWSxTQUFBLENBQUFaLENBQUEsUUFBQUEsQ0FBQSxPQUFBRixPQUFBLENBQUFJLE1BQUEsQ0FBQUQsQ0FBQSxPQUFBYSxPQUFBLFdBQUFkLENBQUEsUUFBQWUsZ0JBQUEsYUFBQWhCLENBQUEsRUFBQUMsQ0FBQSxFQUFBQyxDQUFBLENBQUFELENBQUEsU0FBQUUsTUFBQSxDQUFBYyx5QkFBQSxHQUFBZCxNQUFBLENBQUFlLGdCQUFBLENBQUFsQixDQUFBLEVBQUFHLE1BQUEsQ0FBQWMseUJBQUEsQ0FBQWYsQ0FB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
|
@@ -0,0 +1,14 @@
|
|
1
|
+
/**
|
2
|
+
* Determines whether a Map Style is using Mapbox Tiles
|
3
|
+
* @param {any} mapStyle the mapStyle to check
|
4
|
+
* @returns true if the style is using Mapbox tiles
|
5
|
+
*/
|
6
|
+
export declare function isStyleUsingMapboxTiles(mapStyle: any): boolean;
|
7
|
+
/**
|
8
|
+
* Transform mapbox protocol so can be used with maplibre
|
9
|
+
* @param mapboxKey mapbox api key
|
10
|
+
* @returns transformed url
|
11
|
+
*/
|
12
|
+
export declare const transformRequest: (mapboxKey: string) => (url: string, resourceType: string) => {
|
13
|
+
url: string;
|
14
|
+
};
|