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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/package.json +14 -10
  2. package/dist/aggregate-utils.d.ts +0 -3
  3. package/dist/aggregate-utils.js +0 -75
  4. package/dist/arrow-data-container.d.ts +0 -54
  5. package/dist/arrow-data-container.js +0 -360
  6. package/dist/color-utils.d.ts +0 -51
  7. package/dist/color-utils.js +0 -161
  8. package/dist/data-container-interface.d.ts +0 -133
  9. package/dist/data-container-interface.js +0 -6
  10. package/dist/data-container-utils.d.ts +0 -30
  11. package/dist/data-container-utils.js +0 -88
  12. package/dist/data-row.d.ts +0 -59
  13. package/dist/data-row.js +0 -126
  14. package/dist/data-scale-utils.d.ts +0 -23
  15. package/dist/data-scale-utils.js +0 -62
  16. package/dist/data-utils.d.ts +0 -103
  17. package/dist/data-utils.js +0 -502
  18. package/dist/dataset-utils.d.ts +0 -116
  19. package/dist/dataset-utils.js +0 -614
  20. package/dist/dom-to-image.d.ts +0 -73
  21. package/dist/dom-to-image.js +0 -489
  22. package/dist/dom-utils.d.ts +0 -23
  23. package/dist/dom-utils.js +0 -434
  24. package/dist/effect-utils.d.ts +0 -23
  25. package/dist/effect-utils.js +0 -196
  26. package/dist/export-map-html.d.ts +0 -9
  27. package/dist/export-map-html.js +0 -28
  28. package/dist/export-utils.d.ts +0 -53
  29. package/dist/export-utils.js +0 -262
  30. package/dist/filter-utils.d.ts +0 -326
  31. package/dist/filter-utils.js +0 -1333
  32. package/dist/format.d.ts +0 -1
  33. package/dist/format.js +0 -17
  34. package/dist/gl-utils.d.ts +0 -1
  35. package/dist/gl-utils.js +0 -35
  36. package/dist/h3-utils.d.ts +0 -21
  37. package/dist/h3-utils.js +0 -81
  38. package/dist/index.d.ts +0 -36
  39. package/dist/index.js +0 -772
  40. package/dist/indexed-data-container.d.ts +0 -34
  41. package/dist/indexed-data-container.js +0 -254
  42. package/dist/locale-utils.d.ts +0 -2
  43. package/dist/locale-utils.js +0 -54
  44. package/dist/map-info-utils.d.ts +0 -1
  45. package/dist/map-info-utils.js +0 -15
  46. package/dist/map-style-utils/mapbox-gl-style-editor.d.ts +0 -65
  47. package/dist/map-style-utils/mapbox-gl-style-editor.js +0 -218
  48. package/dist/map-style-utils/mapbox-utils.d.ts +0 -9
  49. package/dist/map-style-utils/mapbox-utils.js +0 -48
  50. package/dist/map-utils.d.ts +0 -9
  51. package/dist/map-utils.js +0 -65
  52. package/dist/mapbox-utils.d.ts +0 -7
  53. package/dist/mapbox-utils.js +0 -22
  54. package/dist/noop.d.ts +0 -1
  55. package/dist/noop.js +0 -11
  56. package/dist/notifications-utils.d.ts +0 -42
  57. package/dist/notifications-utils.js +0 -85
  58. package/dist/observe-dimensions.d.ts +0 -15
  59. package/dist/observe-dimensions.js +0 -151
  60. package/dist/plot.d.ts +0 -6
  61. package/dist/plot.js +0 -31
  62. package/dist/projection-utils.d.ts +0 -21
  63. package/dist/projection-utils.js +0 -100
  64. package/dist/row-data-container.d.ts +0 -31
  65. package/dist/row-data-container.js +0 -252
  66. package/dist/searcher-utils.d.ts +0 -1
  67. package/dist/searcher-utils.js +0 -28
  68. package/dist/split-map-utils.d.ts +0 -32
  69. package/dist/split-map-utils.js +0 -114
  70. package/dist/time.d.ts +0 -16
  71. package/dist/time.js +0 -89
  72. package/dist/utils.d.ts +0 -116
  73. package/dist/utils.js +0 -305
@@ -1,218 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.getDefaultLayerGroupVisibility = getDefaultLayerGroupVisibility;
9
- exports.isValidStyleUrl = isValidStyleUrl;
10
- exports.getStyleDownloadUrl = getStyleDownloadUrl;
11
- exports.getStyleImageIcon = getStyleImageIcon;
12
- exports.scaleMapStyleByResolution = scaleMapStyleByResolution;
13
- exports.mergeLayerGroupVisibility = mergeLayerGroupVisibility;
14
- exports.editBottomMapStyle = exports.editTopMapStyle = void 0;
15
-
16
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
17
-
18
- var _lodash = _interopRequireDefault(require("lodash.memoize"));
19
-
20
- var _lodash2 = _interopRequireDefault(require("lodash.clonedeep"));
21
-
22
- var _constants = require("@kepler.gl/constants");
23
-
24
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
25
-
26
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
27
-
28
- var mapUrlRg = /^mapbox:\/\/styles\/[-a-z0-9]{2,256}\/[-a-z0-9]{2,256}/;
29
- var httpRg = /^(?=(http:|https:))/;
30
-
31
- function getDefaultLayerGroupVisibility(_ref) {
32
- var _ref$layerGroups = _ref.layerGroups,
33
- layerGroups = _ref$layerGroups === void 0 ? [] : _ref$layerGroups;
34
- return layerGroups.reduce(function (accu, layer) {
35
- return _objectSpread(_objectSpread({}, accu), {}, (0, _defineProperty2["default"])({}, layer.slug, layer.defaultVisibility));
36
- }, {});
37
- }
38
-
39
- var resolver = function resolver(_ref2) {
40
- var id = _ref2.id,
41
- mapStyle = _ref2.mapStyle,
42
- _ref2$visibleLayerGro = _ref2.visibleLayerGroups,
43
- visibleLayerGroups = _ref2$visibleLayerGro === void 0 ? {} : _ref2$visibleLayerGro;
44
- return "".concat(id, ":").concat(Object.keys(visibleLayerGroups).filter(function (d) {
45
- return visibleLayerGroups[d];
46
- }).sort().join('-'));
47
- };
48
- /**
49
- * Edit preset map style to keep only visible layers
50
- *
51
- * @param mapStyle - preset map style
52
- * @param visibleLayerGroups - visible layers of top map
53
- * @returns top map style
54
- */
55
-
56
-
57
- var editTopMapStyle = (0, _lodash["default"])(function (_ref3) {
58
- var id = _ref3.id,
59
- mapStyle = _ref3.mapStyle,
60
- visibleLayerGroups = _ref3.visibleLayerGroups;
61
- var visibleFilters = (mapStyle.layerGroups || []).filter(function (lg) {
62
- return visibleLayerGroups[lg.slug];
63
- }).map(function (lg) {
64
- return lg.filter;
65
- }); // if top map
66
- // keep only visible layers
67
- // @ts-expect-error
68
-
69
- var filteredLayers = mapStyle.style.layers.filter(function (layer) {
70
- return visibleFilters.some(function (match) {
71
- return match(layer);
72
- });
73
- });
74
- return _objectSpread(_objectSpread({}, mapStyle.style), {}, {
75
- layers: filteredLayers
76
- });
77
- }, resolver);
78
- /**
79
- * Edit preset map style to filter out invisible layers
80
- *
81
- * @param {Object} mapStyle - preset map style
82
- * @param {Object} visibleLayerGroups - visible layers of bottom map
83
- * @returns {Object} bottom map style
84
- */
85
-
86
- exports.editTopMapStyle = editTopMapStyle;
87
- var editBottomMapStyle = (0, _lodash["default"])(function (_ref4) {
88
- var id = _ref4.id,
89
- mapStyle = _ref4.mapStyle,
90
- visibleLayerGroups = _ref4.visibleLayerGroups;
91
-
92
- if (id === _constants.NO_MAP_ID) {
93
- return _constants.EMPTY_MAPBOX_STYLE;
94
- }
95
-
96
- var invisibleFilters = (mapStyle.layerGroups || []).filter(function (lg) {
97
- return !visibleLayerGroups[lg.slug];
98
- }).map(function (lg) {
99
- return lg.filter;
100
- }); // if bottom map
101
- // filter out invisible layers
102
-
103
- var filteredLayers = mapStyle.style.layers.filter(function (layer) {
104
- return invisibleFilters.every(function (match) {
105
- return !match(layer);
106
- });
107
- });
108
- return _objectSpread(_objectSpread({}, mapStyle.style), {}, {
109
- layers: filteredLayers
110
- });
111
- }, resolver); // valid style url
112
- // mapbox://styles/uberdata/cjfyl03kp1tul2smf5v2tbdd4
113
- // lowercase letters, numbers and dashes only.
114
-
115
- exports.editBottomMapStyle = editBottomMapStyle;
116
-
117
- function isValidStyleUrl(url) {
118
- return typeof url === 'string' && Boolean(url.match(mapUrlRg) || url.match(httpRg));
119
- }
120
-
121
- function getStyleDownloadUrl(styleUrl, accessToken, mapboxApiUrl) {
122
- if (styleUrl.startsWith('http')) {
123
- return styleUrl;
124
- } // mapbox://styles/jckr/cjhcl0lxv13di2rpfoytdbdyj
125
-
126
-
127
- if (styleUrl.startsWith('mapbox://styles')) {
128
- var styleId = styleUrl.replace('mapbox://styles/', ''); // https://api.mapbox.com/styles/v1/heshan0131/cjg1bfumo1cwm2rlrjxkinfgw?pluginName=Keplergl&access_token=<token>
129
-
130
- return "".concat(mapboxApiUrl || _constants.DEFAULT_MAPBOX_API_URL, "/styles/v1/").concat(styleId, "?pluginName=Keplergl&access_token=").concat(accessToken);
131
- } // style url not recognized
132
-
133
-
134
- return null;
135
- }
136
- /**
137
- * Generate static map image from style Url to be used as icon
138
- * @param param
139
- * @param param.styleUrl
140
- * @param param.mapboxApiAccessToken
141
- * @param param.mapboxApiUrl
142
- * @param param.mapState
143
- * @param param.mapW
144
- * @param param.mapH
145
- */
146
-
147
-
148
- function getStyleImageIcon(_ref5) {
149
- var styleUrl = _ref5.styleUrl,
150
- mapboxApiAccessToken = _ref5.mapboxApiAccessToken,
151
- _ref5$mapboxApiUrl = _ref5.mapboxApiUrl,
152
- mapboxApiUrl = _ref5$mapboxApiUrl === void 0 ? _constants.DEFAULT_MAPBOX_API_URL : _ref5$mapboxApiUrl,
153
- _ref5$mapState = _ref5.mapState,
154
- mapState = _ref5$mapState === void 0 ? {
155
- longitude: -122.3391,
156
- latitude: 37.7922,
157
- zoom: 9
158
- } : _ref5$mapState,
159
- _ref5$mapW = _ref5.mapW,
160
- mapW = _ref5$mapW === void 0 ? 400 : _ref5$mapW,
161
- _ref5$mapH = _ref5.mapH,
162
- mapH = _ref5$mapH === void 0 ? 300 : _ref5$mapH;
163
- var styleId = styleUrl.replace('mapbox://styles/', '');
164
- 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");
165
- }
166
-
167
- function scaleMapStyleByResolution(mapboxStyle, scale) {
168
- if (scale !== 1 && mapboxStyle) {
169
- var labelLayerGroup = _constants.DEFAULT_LAYER_GROUPS.find(function (lg) {
170
- return lg.slug === 'label';
171
- }); // @ts-ignore
172
-
173
-
174
- var labelLayerFilter = labelLayerGroup.filter;
175
- var zoomOffset = Math.log2(scale);
176
- var copyStyle = (0, _lodash2["default"])(mapboxStyle);
177
- (copyStyle.layers || []).forEach(function (d) {
178
- // edit minzoom and maxzoom
179
- if (d.maxzoom) {
180
- d.maxzoom = Math.max(d.maxzoom + zoomOffset, 1);
181
- }
182
-
183
- if (d.minzoom) {
184
- d.minzoom = Math.max(d.minzoom + zoomOffset, 1);
185
- } // edit text size
186
-
187
-
188
- if (labelLayerFilter(d)) {
189
- if (d.layout && d.layout['text-size'] && Array.isArray(d.layout['text-size'].stops)) {
190
- d.layout['text-size'].stops.forEach(function (stop) {
191
- // zoom
192
- stop[0] = Math.max(stop[0] + zoomOffset, 1); // size
193
-
194
- stop[1] *= scale;
195
- });
196
- }
197
- }
198
- });
199
- return copyStyle;
200
- }
201
-
202
- return mapboxStyle;
203
- }
204
- /**
205
- * When switch to a new style, try to keep current layer group visibility
206
- * by merging default and current
207
- * @param {Object} defaultLayerGroup
208
- * @param {Object} currentLayerGroup
209
- * @return {Object} mergedLayerGroups
210
- */
211
-
212
-
213
- function mergeLayerGroupVisibility(defaultLayerGroup, currentLayerGroup) {
214
- return Object.keys(defaultLayerGroup).reduce(function (accu, key) {
215
- return _objectSpread(_objectSpread({}, accu), currentLayerGroup.hasOwnProperty(key) ? (0, _defineProperty2["default"])({}, key, currentLayerGroup[key]) : {});
216
- }, defaultLayerGroup);
217
- }
218
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYXAtc3R5bGUtdXRpbHMvbWFwYm94LWdsLXN0eWxlLWVkaXRvci50cyJdLCJuYW1lcyI6WyJtYXBVcmxSZyIsImh0dHBSZyIsImdldERlZmF1bHRMYXllckdyb3VwVmlzaWJpbGl0eSIsImxheWVyR3JvdXBzIiwicmVkdWNlIiwiYWNjdSIsImxheWVyIiwic2x1ZyIsImRlZmF1bHRWaXNpYmlsaXR5IiwicmVzb2x2ZXIiLCJpZCIsIm1hcFN0eWxlIiwidmlzaWJsZUxheWVyR3JvdXBzIiwiT2JqZWN0Iiwia2V5cyIsImZpbHRlciIsImQiLCJzb3J0Iiwiam9pbiIsImVkaXRUb3BNYXBTdHlsZSIsInZpc2libGVGaWx0ZXJzIiwibGciLCJtYXAiLCJmaWx0ZXJlZExheWVycyIsInN0eWxlIiwibGF5ZXJzIiwic29tZSIsIm1hdGNoIiwiZWRpdEJvdHRvbU1hcFN0eWxlIiwiTk9fTUFQX0lEIiwiRU1QVFlfTUFQQk9YX1NUWUxFIiwiaW52aXNpYmxlRmlsdGVycyIsImV2ZXJ5IiwiaXNWYWxpZFN0eWxlVXJsIiwidXJsIiwiQm9vbGVhbiIsImdldFN0eWxlRG93bmxvYWRVcmwiLCJzdHlsZVVybCIsImFjY2Vzc1Rva2VuIiwibWFwYm94QXBpVXJsIiwic3RhcnRzV2l0aCIsInN0eWxlSWQiLCJyZXBsYWNlIiwiREVGQVVMVF9NQVBCT1hfQVBJX1VSTCIsImdldFN0eWxlSW1hZ2VJY29uIiwibWFwYm94QXBpQWNjZXNzVG9rZW4iLCJtYXBTdGF0ZSIsImxvbmdpdHVkZSIsImxhdGl0dWRlIiwiem9vbSIsIm1hcFciLCJtYXBIIiwic2NhbGVNYXBTdHlsZUJ5UmVzb2x1dGlvbiIsIm1hcGJveFN0eWxlIiwic2NhbGUiLCJsYWJlbExheWVyR3JvdXAiLCJERUZBVUxUX0xBWUVSX0dST1VQUyIsImZpbmQiLCJsYWJlbExheWVyRmlsdGVyIiwiem9vbU9mZnNldCIsIk1hdGgiLCJsb2cyIiwiY29weVN0eWxlIiwiZm9yRWFjaCIsIm1heHpvb20iLCJtYXgiLCJtaW56b29tIiwibGF5b3V0IiwiQXJyYXkiLCJpc0FycmF5Iiwic3RvcHMiLCJzdG9wIiwibWVyZ2VMYXllckdyb3VwVmlzaWJpbGl0eSIsImRlZmF1bHRMYXllckdyb3VwIiwiY3VycmVudExheWVyR3JvdXAiLCJrZXkiLCJoYXNPd25Qcm9wZXJ0eSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHQTs7QUFDQTs7QUFDQTs7Ozs7O0FBUUEsSUFBTUEsUUFBUSxHQUFHLHdEQUFqQjtBQUNBLElBQU1DLE1BQU0sR0FBRyxxQkFBZjs7QUFFTyxTQUFTQyw4QkFBVCxPQUF5RjtBQUFBLDhCQUFoREMsV0FBZ0Q7QUFBQSxNQUFoREEsV0FBZ0QsaUNBQWxDLEVBQWtDO0FBQzlGLFNBQU9BLFdBQVcsQ0FBQ0MsTUFBWixDQUNMLFVBQUNDLElBQUQsRUFBT0MsS0FBUDtBQUFBLDJDQUNLRCxJQURMLDRDQUVHQyxLQUFLLENBQUNDLElBRlQsRUFFZ0JELEtBQUssQ0FBQ0UsaUJBRnRCO0FBQUEsR0FESyxFQUtMLEVBTEssQ0FBUDtBQU9EOztBQUVELElBQU1DLFFBQVEsR0FBRyxTQUFYQSxRQUFXO0FBQUEsTUFDZkMsRUFEZSxTQUNmQSxFQURlO0FBQUEsTUFFZkMsUUFGZSxTQUVmQSxRQUZlO0FBQUEsb0NBR2ZDLGtCQUhlO0FBQUEsTUFHZkEsa0JBSGUsc0NBR00sRUFITjtBQUFBLG1CQVNaRixFQVRZLGNBU05HLE1BQU0sQ0FBQ0MsSUFBUCxDQUFZRixrQkFBWixFQUNORyxNQURNLENBQ0MsVUFBQUMsQ0FBQztBQUFBLFdBQUlKLGtCQUFrQixDQUFDSSxDQUFELENBQXRCO0FBQUEsR0FERixFQUVOQyxJQUZNLEdBR05DLElBSE0sQ0FHRCxHQUhDLENBVE07QUFBQSxDQUFqQjtBQWNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDTyxJQUFNQyxlQUFlLEdBQUcsd0JBQzdCLGlCQVFNO0FBQUEsTUFQSlQsRUFPSSxTQVBKQSxFQU9JO0FBQUEsTUFOSkMsUUFNSSxT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TSxJQUFJLENBQUMsQ0FBRCxDQUFKLEdBQVVaLFVBQW5CLEVBQStCLENBQS9CLENBQVYsQ0FGMEMsQ0FHMUM7O0FBQ0FZLFlBQUFBLElBQUksQ0FBQyxDQUFELENBQUosSUFBV2pCLEtBQVg7QUFDRCxXQUxEO0FBTUQ7QUFDRjtBQUNGLEtBckJEO0FBdUJBLFdBQU9RLFNBQVA7QUFDRDs7QUFFRCxTQUFPVCxXQUFQO0FBQ0Q7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ08sU0FBU21CLHlCQUFULENBQW1DQyxpQkFBbkMsRUFBc0RDLGlCQUF0RCxFQUF5RTtBQUM5RSxTQUFPN0QsTUFBTSxDQUFDQyxJQUFQLENBQVkyRCxpQkFBWixFQUErQnJFLE1BQS9CLENBQ0wsVUFBQ0MsSUFBRCxFQUFPc0UsR0FBUDtBQUFBLDJDQUNLdEUsSUFETCxHQUVNcUUsaUJBQWlCLENBQUNFLGNBQWxCLENBQWlDRCxHQUFqQyx5Q0FBMENBLEdBQTFDLEVBQWdERCxpQkFBaUIsQ0FBQ0MsR0FBRCxDQUFqRSxJQUEwRSxFQUZoRjtBQUFBLEdBREssRUFLTEYsaUJBTEssQ0FBUDtBQU9EIiwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IG1lbW9pemUgZnJvbSAnbG9kYXNoLm1lbW9pemUnO1xuaW1wb3J0IGNsb25kRGVlcCBmcm9tICdsb2Rhc2guY2xvbmVkZWVwJztcbmltcG9ydCB7XG4gIERFRkFVTFRfTEFZRVJfR1JPVVBTLFxuICBERUZBVUxUX01BUEJPWF9BUElfVVJMLFxuICBOT19NQVBfSUQsXG4gIEVNUFRZX01BUEJPWF9TVFlMRVxufSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5pbXBvcnQge0Jhc2VNYXBTdHlsZSwgTGF5ZXJHcm91cCwgTWFwU3RhdGV9IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuXG5jb25zdCBtYXBVcmxSZyA9IC9ebWFwYm94OlxcL1xcL3N0eWxlc1xcL1stYS16MC05XXsyLDI1Nn1cXC9bLWEtejAtOV17MiwyNTZ9LztcbmNvbnN0IGh0dHBSZyA9IC9eKD89KGh0dHA6fGh0dHBzOikpLztcblxuZXhwb3J0IGZ1bmN0aW9uIGdldERlZmF1bHRMYXllckdyb3VwVmlzaWJpbGl0eSh7bGF5ZXJHcm91cHMgPSBbXX06IHtsYXllckdyb3VwczogTGF5ZXJHcm91cFtdfSkge1xuICByZXR1cm4gbGF5ZXJHcm91cHMucmVkdWNlKFxuICAgIChhY2N1LCBsYXllcikgPT4gKHtcbiAgICAgIC4uLmFjY3UsXG4gICAgICBbbGF5ZXIuc2x1Z106IGxheWVyLmRlZmF1bHRWaXNpYmlsaXR5XG4gICAgfSksXG4gICAge31cbiAgKTtcbn1cblxuY29uc3QgcmVzb2x2ZXIgPSAoe1xuICBpZCxcbiAgbWFwU3R5bGUsXG4gIHZpc2libGVMYXllckdyb3VwcyA9IHt9XG59OiB7XG4gIGlkPzogc3RyaW5nO1xuICBtYXBTdHlsZTogQmFzZU1hcFN0eWxlO1xuICB2aXNpYmxlTGF5ZXJHcm91cHM6IHtbaWQ6IHN0cmluZ106IExheWVyR3JvdXAgfCBib29sZWFufSB8IGZhbHNlO1xufSkgPT5cbiAgYCR7aWR9OiR7T2JqZWN0LmtleXModmlzaWJsZUxheWVyR3JvdXBzKVxuICAgIC5maWx0ZXIoZCA9PiB2aXNpYmxlTGF5ZXJHcm91cHNbZF0pXG4gICAgLnNvcnQoKVxuICAgIC5qb2luKCctJyl9YDtcblxuLyoqXG4gKiBFZGl0IHByZXNldCBtYXAgc3R5bGUgdG8ga2VlcCBvbmx5IHZpc2libGUgbGF5ZXJzXG4gKlxuICogQHBhcmFtIG1hcFN0eWxlIC0gcHJlc2V0IG1hcCBzdHlsZVxuICogQHBhcmFtIHZpc2libGVMYXllckdyb3VwcyAtIHZpc2libGUgbGF5ZXJzIG9mIHRvcCBtYXBcbiAqIEByZXR1cm5zIHRvcCBtYXAgc3R5bGVcbiAqL1xuZXhwb3J0IGNvbnN0IGVkaXRUb3BNYXBTdHlsZSA9IG1lbW9pemUoXG4gICh7XG4gICAgaWQsXG4gICAgbWFwU3R5bGUsXG4gICAgdmlzaWJsZUxheWVyR3JvdXBzXG4gIH06IHtcbiAgICBpZD86IHN0cmluZztcbiAgICBtYXBTdHlsZTogQmFzZU1hcFN0eWxlO1xuICAgIHZpc2libGVMYXllckdyb3Vwczoge1tpZDogc3RyaW5nXTogTGF5ZXJHcm91cCB8IGJvb2xlYW59IHwgZmFsc2U7XG4gIH0pID0+IHtcbiAgICBjb25zdCB2aXNpYmxlRmlsdGVycyA9IChtYXBTdHlsZS5sYXllckdyb3VwcyB8fCBbXSlcbiAgICAgIC5maWx0ZXIobGcgPT4gdmlzaWJsZUxheWVyR3JvdXBzW2xnLnNsdWddKVxuICAgICAgLm1hcChsZyA9PiBsZy5maWx0ZXIpO1xuXG4gICAgLy8gaWYgdG9wIG1hcFxuICAgIC8vIGtlZXAgb25seSB2aXNpYmxlIGxheWVyc1xuICAgIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgICBjb25zdCBmaWx0ZXJlZExheWVycyA9IG1hcFN0eWxlLnN0eWxlLmxheWVycy5maWx0ZXIobGF5ZXIgPT5cbiAgICAgIHZpc2libGVGaWx0ZXJzLnNvbWUobWF0Y2ggPT4gbWF0Y2gobGF5ZXIpKVxuICAgICk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4ubWFwU3R5bGUuc3R5bGUsXG4gICAgICBsYXllcnM6IGZpbHRlcmVkTGF5ZXJzXG4gICAgfTtcbiAgfSxcbiAgcmVzb2x2ZXJcbik7XG5cbi8qKlxuICogRWRpdCBwcmVzZXQgbWFwIHN0eWxlIHRvIGZpbHRlciBvdXQgaW52aXNpYmxlIGxheWVyc1xuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBtYXBTdHlsZSAtIHByZXNldCBtYXAgc3R5bGVcbiAqIEBwYXJhbSB7T2JqZWN0fSB2aXNpYmxlTGF5ZXJHcm91cHMgLSB2aXNpYmxlIGxheWVycyBvZiBib3R0b20gbWFwXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBib3R0b20gbWFwIHN0eWxlXG4gKi9cbmV4cG9ydCBjb25zdCBlZGl0Qm90dG9tTWFwU3R5bGUgPSBtZW1vaXplKCh7aWQsIG1hcFN0eWxlLCB2aXNpYmxlTGF5ZXJHcm91cHN9KSA9PiB7XG4gIGlmIChpZCA9PT0gTk9fTUFQX0lEKSB7XG4gICAgcmV0dXJuIEVNUFRZX01BUEJPWF9TVFlMRTtcbiAgfVxuXG4gIGNvbnN0IGludmlzaWJsZUZpbHRlcnMgPSAobWFwU3R5bGUubGF5ZXJHcm91cHMgfHwgW10pXG4gICAgLmZpbHRlcihsZyA9PiAhdmlzaWJsZUxheWVyR3JvdXBzW2xnLnNsdWddKVxuICAgIC5tYXAobGcgPT4gbGcuZmlsdGVyKTtcblxuICAvLyBpZiBib3R0b20gbWFwXG4gIC8vIGZpbHRlciBvdXQgaW52aXNpYmxlIGxheWVyc1xuICBjb25zdCBmaWx0ZXJlZExheWVycyA9IG1hcFN0eWxlLnN0eWxlLmxheWVycy5maWx0ZXIobGF5ZXIgPT5cbiAgICBpbnZpc2libGVGaWx0ZXJzLmV2ZXJ5KG1hdGNoID0+ICFtYXRjaChsYXllcikpXG4gICk7XG5cbiAgcmV0dXJuIHtcbiAgICAuLi5tYXBTdHlsZS5zdHlsZSxcbiAgICBsYXllcnM6IGZpbHRlcmVkTGF5ZXJzXG4gIH07XG59LCByZXNvbHZlcik7XG5cbi8vIHZhbGlkIHN0eWxlIHVybFxuLy8gbWFwYm94Oi8vc3R5bGVzL3ViZXJkYXRhL2NqZnlsMDNrcDF0dWwyc21mNXYydGJkZDRcbi8vIGxvd2VyY2FzZSBsZXR0ZXJzLCBudW1iZXJzIGFuZCBkYXNoZXMgb25seS5cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkU3R5bGVVcmwodXJsKSB7XG4gIHJldHVybiB0eXBlb2YgdXJsID09PSAnc3RyaW5nJyAmJiBCb29sZWFuKHVybC5tYXRjaChtYXBVcmxSZykgfHwgdXJsLm1hdGNoKGh0dHBSZykpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U3R5bGVEb3dubG9hZFVybChzdHlsZVVybCwgYWNjZXNzVG9rZW4sIG1hcGJveEFwaVVybCkge1xuICBpZiAoc3R5bGVVcmwuc3RhcnRzV2l0aCgnaHR0cCcpKSB7XG4gICAgcmV0dXJuIHN0eWxlVXJsO1xuICB9XG5cbiAgLy8gbWFwYm94Oi8vc3R5bGVzL2pja3IvY2poY2wwbHh2MTNkaTJycGZveXRkYmR5alxuICBpZiAoc3R5bGVVcmwuc3RhcnRzV2l0aCgnbWFwYm94Oi8vc3R5bGVzJykpIHtcbiAgICBjb25zdCBzdHlsZUlkID0gc3R5bGVVcmwucmVwbGFjZSgnbWFwYm94Oi8vc3R5bGVzLycsICcnKTtcblxuICAgIC8vIGh0dHBzOi8vYXBpLm1hcGJveC5jb20vc3R5bGVzL3YxL2hlc2hhbjAxMzEvY2pnMWJmdW1vMWN3bTJybHJqeGtpbmZndz9wbHVnaW5OYW1lPUtlcGxlcmdsJmFjY2Vzc190b2tlbj08dG9rZW4+XG4gICAgcmV0dXJuIGAke21hcGJveEFwaVVybCB8fFxuICAgICAgREVGQVVMVF9NQVBCT1hfQVBJX1VSTH0vc3R5bGVzL3YxLyR7c3R5bGVJZH0/cGx1Z2luTmFtZT1LZXBsZXJnbCZhY2Nlc3NfdG9rZW49JHthY2Nlc3NUb2tlbn1gO1xuICB9XG5cbiAgLy8gc3R5bGUgdXJsIG5vdCByZWNvZ25pemVkXG4gIHJldHVybiBudWxsO1xufVxuXG4vKipcbiAqIEdlbmVyYXRlIHN0YXRpYyBtYXAgaW1hZ2UgZnJvbSBzdHlsZSBVcmwgdG8gYmUgdXNlZCBhcyBpY29uXG4gKiBAcGFyYW0gcGFyYW1cbiAqIEBwYXJhbSBwYXJhbS5zdHlsZVVybFxuICogQHBhcmFtIHBhcmFtLm1hcGJveEFwaUFjY2Vzc1Rva2VuXG4gKiBAcGFyYW0gcGFyYW0ubWFwYm94QXBpVXJsXG4gKiBAcGFyYW0gcGFyYW0ubWFwU3RhdGVcbiAqIEBwYXJhbSBwYXJhbS5tYXBXXG4gKiBAcGFyYW0gcGFyYW0ubWFwSFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0U3R5bGVJbWFnZUljb24oe1xuICBzdHlsZVVybCxcbiAgbWFwYm94QXBpQWNjZXNzVG9rZW4sXG4gIG1hcGJveEFwaVVybCA9IERFRkFVTFRfTUFQQk9YX0FQSV9VUkwsXG4gIG1hcFN0YXRlID0ge1xuICAgIGxvbmdpdHVkZTogLTEyMi4zMzkxLFxuICAgIGxhdGl0dWRlOiAzNy43OTIyLFxuICAgIHpvb206IDlcbiAgfSxcbiAgbWFwVyA9IDQwMCxcbiAgbWFwSCA9IDMwMFxufToge1xuICBzdHlsZVVybDogc3RyaW5nO1xuICBtYXBib3hBcGlBY2Nlc3NUb2tlbjogc3RyaW5nO1xuICBtYXBib3hBcGlVcmw/OiBzdHJpbmc7XG4gIG1hcFN0YXRlPzogUGFydGlhbDxNYXBTdGF0ZT47XG4gIG1hcFc/OiBudW1iZXI7XG4gIG1hcEg/OiBudW1iZXI7XG59KSB7XG4gIGNvbnN0IHN0eWxlSWQgPSBzdHlsZVVybC5yZXBsYWNlKCdtYXBib3g6Ly9zdHlsZXMvJywgJycpO1xuXG4gIHJldHVybiAoXG4gICAgYCR7bWFwYm94QXBpVXJsfS9zdHlsZXMvdjEvJHtzdHlsZUlkfS9zdGF0aWMvYCArXG4gICAgYCR7bWFwU3RhdGUubG9uZ2l0dWRlfSwke21hcFN0YXRlLmxhdGl0dWRlfSwke21hcFN0YXRlLnpvb219LDAsMC9gICtcbiAgICBgJHttYXBXfXgke21hcEh9YCArXG4gICAgYD9hY2Nlc3NfdG9rZW49JHttYXBib3hBcGlBY2Nlc3NUb2tlbn0mbG9nbz1mYWxzZSZhdHRyaWJ1dGlvbj1mYWxzZWBcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNjYWxlTWFwU3R5bGVCeVJlc29sdXRpb24obWFwYm94U3R5bGUsIHNjYWxlKSB7XG4gIGlmIChzY2FsZSAhPT0gMSAmJiBtYXBib3hTdHlsZSkge1xuICAgIGNvbnN0IGxhYmVsTGF5ZXJHcm91cCA9IERFRkFVTFRfTEFZRVJfR1JPVVBTLmZpbmQobGcgPT4gbGcuc2x1ZyA9PT0gJ2xhYmVsJyk7XG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGNvbnN0IHtmaWx0ZXI6IGxhYmVsTGF5ZXJGaWx0ZXJ9ID0gbGFiZWxMYXllckdyb3VwO1xuICAgIGNvbnN0IHpvb21PZmZzZXQgPSBNYXRoLmxvZzIoc2NhbGUpO1xuXG4gICAgY29uc3QgY29weVN0eWxlID0gY2xvbmREZWVwKG1hcGJveFN0eWxlKTtcbiAgICAoY29weVN0eWxlLmxheWVycyB8fCBbXSkuZm9yRWFjaChkID0+IHtcbiAgICAgIC8vIGVkaXQgbWluem9vbSBhbmQgbWF4em9vbVxuICAgICAgaWYgKGQubWF4em9vbSkge1xuICAgICAgICBkLm1heHpvb20gPSBNYXRoLm1heChkLm1heHpvb20gKyB6b29tT2Zmc2V0LCAxKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGQubWluem9vbSkge1xuICAgICAgICBkLm1pbnpvb20gPSBNYXRoLm1heChkLm1pbnpvb20gKyB6b29tT2Zmc2V0LCAxKTtcbiAgICAgIH1cblxuICAgICAgLy8gZWRpdCB0ZXh0IHNpemVcbiAgICAgIGlmIChsYWJlbExheWVyRmlsdGVyKGQpKSB7XG4gICAgICAgIGlmIChkLmxheW91dCAmJiBkLmxheW91dFsndGV4dC1zaXplJ10gJiYgQXJyYXkuaXNBcnJheShkLmxheW91dFsndGV4dC1zaXplJ10uc3RvcHMpKSB7XG4gICAgICAgICAgZC5sYXlvdXRbJ3RleHQtc2l6ZSddLnN0b3BzLmZvckVhY2goc3RvcCA9PiB7XG4gICAgICAgICAgICAvLyB6b29tXG4gICAgICAgICAgICBzdG9wWzBdID0gTWF0aC5tYXgoc3RvcFswXSArIHpvb21PZmZzZXQsIDEpO1xuICAgICAgICAgICAgLy8gc2l6ZVxuICAgICAgICAgICAgc3RvcFsxXSAqPSBzY2FsZTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGNvcHlTdHlsZTtcbiAgfVxuXG4gIHJldHVybiBtYXBib3hTdHlsZTtcbn1cblxuLyoqXG4gKiBXaGVuIHN3aXRjaCB0byBhIG5ldyBzdHlsZSwgdHJ5IHRvIGtlZXAgY3VycmVudCBsYXllciBncm91cCB2aXNpYmlsaXR5XG4gKiBieSBtZXJnaW5nIGRlZmF1bHQgYW5kIGN1cnJlbnRcbiAqIEBwYXJhbSB7T2JqZWN0fSBkZWZhdWx0TGF5ZXJHcm91cFxuICogQHBhcmFtIHtPYmplY3R9IGN1cnJlbnRMYXllckdyb3VwXG4gKiBAcmV0dXJuIHtPYmplY3R9IG1lcmdlZExheWVyR3JvdXBzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtZXJnZUxheWVyR3JvdXBWaXNpYmlsaXR5KGRlZmF1bHRMYXllckdyb3VwLCBjdXJyZW50TGF5ZXJHcm91cCkge1xuICByZXR1cm4gT2JqZWN0LmtleXMoZGVmYXVsdExheWVyR3JvdXApLnJlZHVjZShcbiAgICAoYWNjdSwga2V5KSA9PiAoe1xuICAgICAgLi4uYWNjdSxcbiAgICAgIC4uLihjdXJyZW50TGF5ZXJHcm91cC5oYXNPd25Qcm9wZXJ0eShrZXkpID8ge1trZXldOiBjdXJyZW50TGF5ZXJHcm91cFtrZXldfSA6IHt9KVxuICAgIH0pLFxuICAgIGRlZmF1bHRMYXllckdyb3VwXG4gICk7XG59XG4iXX0=
@@ -1,9 +0,0 @@
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
- export declare const transformRequest: (url: string) => {
8
- url: string;
9
- };
@@ -1,48 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.isStyleUsingMapboxTiles = isStyleUsingMapboxTiles;
7
- exports.transformRequest = void 0;
8
-
9
- // SPDX-License-Identifier: MIT
10
- // Copyright contributors to the kepler.gl project
11
-
12
- /**
13
- * Determines whether a Map Style is using Mapbox Tiles
14
- * @param {any} mapStyle the mapStyle to check
15
- * @returns true if the style is using Mapbox tiles
16
- */
17
- function isStyleUsingMapboxTiles(mapStyle) {
18
- var _mapStyle$stylesheet;
19
-
20
- var sources = ((_mapStyle$stylesheet = mapStyle.stylesheet) === null || _mapStyle$stylesheet === void 0 ? void 0 : _mapStyle$stylesheet.sources) || {};
21
- return Object.keys(sources).some(function (sourceId) {
22
- var _ref = sources[sourceId] || {},
23
- url = _ref.url,
24
- tiles = _ref.tiles;
25
-
26
- if (url) {
27
- return url.toLowerCase().startsWith('mapbox://');
28
- }
29
-
30
- if (tiles) {
31
- return tiles.some(function (tileUrl) {
32
- return tileUrl.toLowerCase().startsWith('mapbox://');
33
- });
34
- }
35
-
36
- return false;
37
- });
38
- }
39
-
40
- var transformRequest = function transformRequest(url) {
41
- var isMapboxRequest = url.slice(8, 22) === 'api.mapbox.com' || url.slice(10, 26) === 'tiles.mapbox.com';
42
- return {
43
- url: isMapboxRequest ? url.replace('?', '?pluginName=Keplergl&') : url
44
- };
45
- };
46
-
47
- exports.transformRequest = transformRequest;
48
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYXAtc3R5bGUtdXRpbHMvbWFwYm94LXV0aWxzLnRzIl0sIm5hbWVzIjpbImlzU3R5bGVVc2luZ01hcGJveFRpbGVzIiwibWFwU3R5bGUiLCJzb3VyY2VzIiwic3R5bGVzaGVldCIsIk9iamVjdCIsImtleXMiLCJzb21lIiwic291cmNlSWQiLCJ1cmwiLCJ0aWxlcyIsInRvTG93ZXJDYXNlIiwic3RhcnRzV2l0aCIsInRpbGVVcmwiLCJ0cmFuc2Zvcm1SZXF1ZXN0IiwiaXNNYXBib3hSZXF1ZXN0Iiwic2xpY2UiLCJyZXBsYWNlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPLFNBQVNBLHVCQUFULENBQWlDQyxRQUFqQyxFQUEyQztBQUFBOztBQUNoRCxNQUFNQyxPQUFPLEdBQUcseUJBQUFELFFBQVEsQ0FBQ0UsVUFBVCw4RUFBcUJELE9BQXJCLEtBQWdDLEVBQWhEO0FBRUEsU0FBT0UsTUFBTSxDQUFDQyxJQUFQLENBQVlILE9BQVosRUFBcUJJLElBQXJCLENBQTBCLFVBQUFDLFFBQVEsRUFBSTtBQUFBLGVBQ3RCTCxPQUFPLENBQUNLLFFBQUQsQ0FBUCxJQUFxQixFQURDO0FBQUEsUUFDcENDLEdBRG9DLFFBQ3BDQSxHQURvQztBQUFBLFFBQy9CQyxLQUQrQixRQUMvQkEsS0FEK0I7O0FBRzNDLFFBQUlELEdBQUosRUFBUztBQUNQLGFBQU9BLEdBQUcsQ0FBQ0UsV0FBSixHQUFrQkMsVUFBbEIsQ0FBNkIsV0FBN0IsQ0FBUDtBQUNEOztBQUVELFFBQUlGLEtBQUosRUFBVztBQUNULGFBQU9BLEtBQUssQ0FBQ0gsSUFBTixDQUFXLFVBQUFNLE9BQU87QUFBQSxlQUFJQSxPQUFPLENBQUNGLFdBQVIsR0FBc0JDLFVBQXRCLENBQWlDLFdBQWpDLENBQUo7QUFBQSxPQUFsQixDQUFQO0FBQ0Q7O0FBRUQsV0FBTyxLQUFQO0FBQ0QsR0FaTSxDQUFQO0FBYUQ7O0FBRU0sSUFBTUUsZ0JBQWdCLEdBQUcsU0FBbkJBLGdCQUFtQixDQUFDTCxHQUFELEVBQWdDO0FBQzlELE1BQU1NLGVBQWUsR0FDbkJOLEdBQUcsQ0FBQ08sS0FBSixDQUFVLENBQVYsRUFBYSxFQUFiLE1BQXFCLGdCQUFyQixJQUF5Q1AsR0FBRyxDQUFDTyxLQUFKLENBQVUsRUFBVixFQUFjLEVBQWQsTUFBc0Isa0JBRGpFO0FBR0EsU0FBTztBQUNMUCxJQUFBQSxHQUFHLEVBQUVNLGVBQWUsR0FBR04sR0FBRyxDQUFDUSxPQUFKLENBQVksR0FBWixFQUFpQix1QkFBakIsQ0FBSCxHQUErQ1I7QUFEOUQsR0FBUDtBQUdELENBUE0iLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG4vKipcbiAqIERldGVybWluZXMgd2hldGhlciBhIE1hcCBTdHlsZSBpcyB1c2luZyBNYXBib3ggVGlsZXNcbiAqIEBwYXJhbSB7YW55fSBtYXBTdHlsZSB0aGUgbWFwU3R5bGUgdG8gY2hlY2tcbiAqIEByZXR1cm5zIHRydWUgaWYgdGhlIHN0eWxlIGlzIHVzaW5nIE1hcGJveCB0aWxlc1xuICovXG5leHBvcnQgZnVuY3Rpb24gaXNTdHlsZVVzaW5nTWFwYm94VGlsZXMobWFwU3R5bGUpIHtcbiAgY29uc3Qgc291cmNlcyA9IG1hcFN0eWxlLnN0eWxlc2hlZXQ/LnNvdXJjZXMgfHwge307XG5cbiAgcmV0dXJuIE9iamVjdC5rZXlzKHNvdXJjZXMpLnNvbWUoc291cmNlSWQgPT4ge1xuICAgIGNvbnN0IHt1cmwsIHRpbGVzfSA9IHNvdXJjZXNbc291cmNlSWRdIHx8IHt9O1xuXG4gICAgaWYgKHVybCkge1xuICAgICAgcmV0dXJuIHVybC50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgoJ21hcGJveDovLycpO1xuICAgIH1cblxuICAgIGlmICh0aWxlcykge1xuICAgICAgcmV0dXJuIHRpbGVzLnNvbWUodGlsZVVybCA9PiB0aWxlVXJsLnRvTG93ZXJDYXNlKCkuc3RhcnRzV2l0aCgnbWFwYm94Oi8vJykpO1xuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfSk7XG59XG5cbmV4cG9ydCBjb25zdCB0cmFuc2Zvcm1SZXF1ZXN0ID0gKHVybDogc3RyaW5nKToge3VybDogc3RyaW5nfSA9PiB7XG4gIGNvbnN0IGlzTWFwYm94UmVxdWVzdCA9XG4gICAgdXJsLnNsaWNlKDgsIDIyKSA9PT0gJ2FwaS5tYXBib3guY29tJyB8fCB1cmwuc2xpY2UoMTAsIDI2KSA9PT0gJ3RpbGVzLm1hcGJveC5jb20nO1xuXG4gIHJldHVybiB7XG4gICAgdXJsOiBpc01hcGJveFJlcXVlc3QgPyB1cmwucmVwbGFjZSgnPycsICc/cGx1Z2luTmFtZT1LZXBsZXJnbCYnKSA6IHVybFxuICB9O1xufTtcbiJdfQ==
@@ -1,9 +0,0 @@
1
- import { SplitMapLayers, SplitMap, Viewport, MapState } from '@kepler.gl/types';
2
- export declare const onViewPortChange: (viewState: Viewport, onUpdateMap: (next: any, mapIndex: number) => any, onViewStateChange?: ((next: any) => void | null) | undefined, primary?: boolean, mapIndex?: number) => void;
3
- export declare const getMapLayersFromSplitMaps: (splitMaps: SplitMap[], mapIndex?: number | undefined) => SplitMapLayers | undefined | null;
4
- /**
5
- * Generates a viewport from a map state.
6
- * @param {*} mapState
7
- * @returns A viewport.
8
- */
9
- export declare const getViewportFromMapState: (mapState: MapState) => Viewport;
package/dist/map-utils.js DELETED
@@ -1,65 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.getViewportFromMapState = exports.getMapLayersFromSplitMaps = exports.onViewPortChange = void 0;
9
-
10
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
-
12
- var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
13
-
14
- var _viewportMercatorProject = _interopRequireDefault(require("viewport-mercator-project"));
15
-
16
- var _constants = require("@kepler.gl/constants");
17
-
18
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
19
-
20
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
21
-
22
- var onViewPortChange = function onViewPortChange(viewState, onUpdateMap, onViewStateChange) {
23
- var primary = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
24
- var mapIndex = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;
25
- var _viewState$width = viewState.width,
26
- width = _viewState$width === void 0 ? 0 : _viewState$width,
27
- _viewState$height = viewState.height,
28
- height = _viewState$height === void 0 ? 0 : _viewState$height,
29
- restViewState = (0, _objectWithoutProperties2["default"])(viewState, ["width", "height"]); // react-map-gl sends 0,0 dimensions during initialization
30
- // after we have received proper dimensions from observeDimensions
31
-
32
- var next = _objectSpread(_objectSpread({}, width > 0 && height > 0 ? viewState : restViewState), {}, {
33
- // enabling transition in two maps may lead to endless update loops
34
- transitionDuration: primary ? _constants.TRANSITION_DURATION : 0
35
- });
36
-
37
- if (onViewStateChange && typeof onViewStateChange === 'function') {
38
- onViewStateChange(next);
39
- }
40
-
41
- onUpdateMap(next, mapIndex);
42
- };
43
-
44
- exports.onViewPortChange = onViewPortChange;
45
-
46
- var getMapLayersFromSplitMaps = function getMapLayersFromSplitMaps(splitMaps, mapIndex) {
47
- var _splitMaps;
48
-
49
- return (_splitMaps = splitMaps[mapIndex || 0]) === null || _splitMaps === void 0 ? void 0 : _splitMaps.layers;
50
- };
51
- /**
52
- * Generates a viewport from a map state.
53
- * @param {*} mapState
54
- * @returns A viewport.
55
- */
56
-
57
-
58
- exports.getMapLayersFromSplitMaps = getMapLayersFromSplitMaps;
59
-
60
- var getViewportFromMapState = function getViewportFromMapState(mapState) {
61
- return new _viewportMercatorProject["default"](mapState);
62
- };
63
-
64
- exports.getViewportFromMapState = getViewportFromMapState;
65
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tYXAtdXRpbHMudHMiXSwibmFtZXMiOlsib25WaWV3UG9ydENoYW5nZSIsInZpZXdTdGF0ZSIsIm9uVXBkYXRlTWFwIiwib25WaWV3U3RhdGVDaGFuZ2UiLCJwcmltYXJ5IiwibWFwSW5kZXgiLCJ3aWR0aCIsImhlaWdodCIsInJlc3RWaWV3U3RhdGUiLCJuZXh0IiwidHJhbnNpdGlvbkR1cmF0aW9uIiwiVFJBTlNJVElPTl9EVVJBVElPTiIsImdldE1hcExheWVyc0Zyb21TcGxpdE1hcHMiLCJzcGxpdE1hcHMiLCJsYXllcnMiLCJnZXRWaWV3cG9ydEZyb21NYXBTdGF0ZSIsIm1hcFN0YXRlIiwiV2ViTWVyY2F0b3JWaWV3cG9ydCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUdBOztBQUVBOzs7Ozs7QUFHTyxJQUFNQSxnQkFBZ0IsR0FBRyxTQUFuQkEsZ0JBQW1CLENBQzlCQyxTQUQ4QixFQUU5QkMsV0FGOEIsRUFHOUJDLGlCQUg4QixFQU1yQjtBQUFBLE1BRlRDLE9BRVMsdUVBRlUsS0FFVjtBQUFBLE1BRFRDLFFBQ1MsdUVBRFUsQ0FDVjtBQUFBLHlCQUN5Q0osU0FEekMsQ0FDRkssS0FERTtBQUFBLE1BQ0ZBLEtBREUsaUNBQ00sQ0FETjtBQUFBLDBCQUN5Q0wsU0FEekMsQ0FDU00sTUFEVDtBQUFBLE1BQ1NBLE1BRFQsa0NBQ2tCLENBRGxCO0FBQUEsTUFDd0JDLGFBRHhCLDZDQUN5Q1AsU0FEekMsd0JBRVQ7QUFDQTs7QUFDQSxNQUFNUSxJQUFJLG1DQUNKSCxLQUFLLEdBQUcsQ0FBUixJQUFhQyxNQUFNLEdBQUcsQ0FBdEIsR0FBMEJOLFNBQTFCLEdBQXNDTyxhQURsQztBQUVSO0FBQ0FFLElBQUFBLGtCQUFrQixFQUFFTixPQUFPLEdBQUdPLDhCQUFILEdBQXlCO0FBSDVDLElBQVY7O0FBS0EsTUFBSVIsaUJBQWlCLElBQUksT0FBT0EsaUJBQVAsS0FBNkIsVUFBdEQsRUFBa0U7QUFDaEVBLElBQUFBLGlCQUFpQixDQUFDTSxJQUFELENBQWpCO0FBQ0Q7O0FBRURQLEVBQUFBLFdBQVcsQ0FBQ08sSUFBRCxFQUFPSixRQUFQLENBQVg7QUFDRCxDQXBCTTs7OztBQXNCQSxJQUFNTyx5QkFBeUIsR0FBRyxTQUE1QkEseUJBQTRCLENBQ3ZDQyxTQUR1QyxFQUV2Q1IsUUFGdUMsRUFHRDtBQUFBOztBQUN0Qyx1QkFBT1EsU0FBUyxDQUFDUixRQUFRLElBQUksQ0FBYixDQUFoQiwrQ0FBTyxXQUEwQlMsTUFBakM7QUFDRCxDQUxNO0FBT1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7QUFDTyxJQUFNQyx1QkFBdUIsR0FBRyxTQUExQkEsdUJBQTBCLENBQUNDLFFBQUQsRUFBa0M7QUFDdkUsU0FBTyxJQUFJQyxtQ0FBSixDQUF3QkQsUUFBeEIsQ0FBUDtBQUNELENBRk0iLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQgV2ViTWVyY2F0b3JWaWV3cG9ydCBmcm9tICd2aWV3cG9ydC1tZXJjYXRvci1wcm9qZWN0JztcblxuaW1wb3J0IHtUUkFOU0lUSU9OX0RVUkFUSU9OfSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5pbXBvcnQge1NwbGl0TWFwTGF5ZXJzLCBTcGxpdE1hcCwgVmlld3BvcnQsIE1hcFN0YXRlfSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IG9uVmlld1BvcnRDaGFuZ2UgPSAoXG4gIHZpZXdTdGF0ZTogVmlld3BvcnQsXG4gIG9uVXBkYXRlTWFwOiAobmV4dDogYW55LCBtYXBJbmRleDogbnVtYmVyKSA9PiBhbnksXG4gIG9uVmlld1N0YXRlQ2hhbmdlPzogKG5leHQ6IGFueSkgPT4gdm9pZCB8IG51bGwsXG4gIHByaW1hcnk6IGJvb2xlYW4gPSBmYWxzZSxcbiAgbWFwSW5kZXg6IG51bWJlciA9IDBcbik6IHZvaWQgPT4ge1xuICBjb25zdCB7d2lkdGggPSAwLCBoZWlnaHQgPSAwLCAuLi5yZXN0Vmlld1N0YXRlfSA9IHZpZXdTdGF0ZTtcbiAgLy8gcmVhY3QtbWFwLWdsIHNlbmRzIDAsMCBkaW1lbnNpb25zIGR1cmluZyBpbml0aWFsaXphdGlvblxuICAvLyBhZnRlciB3ZSBoYXZlIHJlY2VpdmVkIHByb3BlciBkaW1lbnNpb25zIGZyb20gb2JzZXJ2ZURpbWVuc2lvbnNcbiAgY29uc3QgbmV4dCA9IHtcbiAgICAuLi4od2lkdGggPiAwICYmIGhlaWdodCA+IDAgPyB2aWV3U3RhdGUgOiByZXN0Vmlld1N0YXRlKSxcbiAgICAvLyBlbmFibGluZyB0cmFuc2l0aW9uIGluIHR3byBtYXBzIG1heSBsZWFkIHRvIGVuZGxlc3MgdXBkYXRlIGxvb3BzXG4gICAgdHJhbnNpdGlvbkR1cmF0aW9uOiBwcmltYXJ5ID8gVFJBTlNJVElPTl9EVVJBVElPTiA6IDBcbiAgfTtcbiAgaWYgKG9uVmlld1N0YXRlQ2hhbmdlICYmIHR5cGVvZiBvblZpZXdTdGF0ZUNoYW5nZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIG9uVmlld1N0YXRlQ2hhbmdlKG5leHQpO1xuICB9XG5cbiAgb25VcGRhdGVNYXAobmV4dCwgbWFwSW5kZXgpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldE1hcExheWVyc0Zyb21TcGxpdE1hcHMgPSAoXG4gIHNwbGl0TWFwczogU3BsaXRNYXBbXSxcbiAgbWFwSW5kZXg/OiBudW1iZXJcbik6IFNwbGl0TWFwTGF5ZXJzIHwgdW5kZWZpbmVkIHwgbnVsbCA9PiB7XG4gIHJldHVybiBzcGxpdE1hcHNbbWFwSW5kZXggfHwgMF0/LmxheWVycztcbn07XG5cbi8qKlxuICogR2VuZXJhdGVzIGEgdmlld3BvcnQgZnJvbSBhIG1hcCBzdGF0ZS5cbiAqIEBwYXJhbSB7Kn0gbWFwU3RhdGVcbiAqIEByZXR1cm5zIEEgdmlld3BvcnQuXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRWaWV3cG9ydEZyb21NYXBTdGF0ZSA9IChtYXBTdGF0ZTogTWFwU3RhdGUpOiBWaWV3cG9ydCA9PiB7XG4gIHJldHVybiBuZXcgV2ViTWVyY2F0b3JWaWV3cG9ydChtYXBTdGF0ZSk7XG59O1xuIl19
@@ -1,7 +0,0 @@
1
- /**
2
- * This method validates mapbox token.
3
- * This token provides a simple synchronous validation
4
- * @param {string} token the Mapbox token to validate
5
- * @return {boolean} true if token is valid, false otherwise
6
- */
7
- export declare const validateToken: (token: string) => boolean;
@@ -1,22 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.validateToken = void 0;
7
-
8
- // SPDX-License-Identifier: MIT
9
- // Copyright contributors to the kepler.gl project
10
-
11
- /**
12
- * This method validates mapbox token.
13
- * This token provides a simple synchronous validation
14
- * @param {string} token the Mapbox token to validate
15
- * @return {boolean} true if token is valid, false otherwise
16
- */
17
- var validateToken = function validateToken(token) {
18
- return (token || '') !== '';
19
- };
20
-
21
- exports.validateToken = validateToken;
22
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tYXBib3gtdXRpbHMudHMiXSwibmFtZXMiOlsidmFsaWRhdGVUb2tlbiIsInRva2VuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTyxJQUFNQSxhQUFhLEdBQUcsU0FBaEJBLGFBQWdCLENBQUNDLEtBQUQ7QUFBQSxTQUE0QixDQUFDQSxLQUFLLElBQUksRUFBVixNQUFrQixFQUE5QztBQUFBLENBQXRCIiwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuLyoqXG4gKiBUaGlzIG1ldGhvZCB2YWxpZGF0ZXMgbWFwYm94IHRva2VuLlxuICogVGhpcyB0b2tlbiBwcm92aWRlcyBhIHNpbXBsZSBzeW5jaHJvbm91cyB2YWxpZGF0aW9uXG4gKiBAcGFyYW0ge3N0cmluZ30gdG9rZW4gdGhlIE1hcGJveCB0b2tlbiB0byB2YWxpZGF0ZVxuICogQHJldHVybiB7Ym9vbGVhbn0gdHJ1ZSBpZiB0b2tlbiBpcyB2YWxpZCwgZmFsc2Ugb3RoZXJ3aXNlXG4gKi9cbmV4cG9ydCBjb25zdCB2YWxpZGF0ZVRva2VuID0gKHRva2VuOiBzdHJpbmcpOiBib29sZWFuID0+ICh0b2tlbiB8fCAnJykgIT09ICcnO1xuIl19
package/dist/noop.d.ts DELETED
@@ -1 +0,0 @@
1
- export default function noop(): void;
package/dist/noop.js DELETED
@@ -1,11 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports["default"] = noop;
7
-
8
- // SPDX-License-Identifier: MIT
9
- // Copyright contributors to the kepler.gl project
10
- function noop() {}
11
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9ub29wLnRzIl0sIm5hbWVzIjpbIm5vb3AiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTtBQUNBO0FBRWUsU0FBU0EsSUFBVCxHQUFnQixDQUFFIiwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gbm9vcCgpIHt9XG4iXX0=
@@ -1,42 +0,0 @@
1
- export declare type Notification = Record<string, any> & {
2
- id: string;
3
- message: string;
4
- type: 'info' | 'error' | 'warning' | 'success';
5
- topic: 'global' | 'file';
6
- count: number;
7
- };
8
- /**
9
- * Creates a notification
10
- */
11
- export declare function createNotification({ message, type, topic, id, count, ...options }: Partial<Notification>): Notification;
12
- /**
13
- * Creates an error notification
14
- * @param options
15
- * @returns {{topic, id, message, type: (null|number)}}
16
- */
17
- export declare const errorNotification: (options: any) => {
18
- type: "error";
19
- id: string;
20
- message: string;
21
- topic: 'global' | 'file';
22
- count: number;
23
- };
24
- /**
25
- * Creates a success notification
26
- * @param options
27
- * @returns {{topic, id, message, type: null}}
28
- */
29
- export declare const successNotification: (options: any) => {
30
- type: "success";
31
- id: string;
32
- message: string;
33
- topic: 'global' | 'file';
34
- count: number;
35
- };
36
- export declare const exportImageError: (options: any) => {
37
- type: "error";
38
- id: string;
39
- message: string;
40
- topic: 'global' | 'file';
41
- count: number;
42
- };
@@ -1,85 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.createNotification = createNotification;
9
- exports.exportImageError = exports.successNotification = exports.errorNotification = void 0;
10
-
11
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
12
-
13
- var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
14
-
15
- var _utils = require("./utils");
16
-
17
- var _constants = require("@kepler.gl/constants");
18
-
19
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
20
-
21
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
22
-
23
- /**
24
- * Creates a notification
25
- */
26
- function createNotification(_ref) {
27
- var _ref$message = _ref.message,
28
- message = _ref$message === void 0 ? _constants.DEFAULT_NOTIFICATION_MESSAGE : _ref$message,
29
- _ref$type = _ref.type,
30
- type = _ref$type === void 0 ? _constants.DEFAULT_NOTIFICATION_TYPES.info : _ref$type,
31
- _ref$topic = _ref.topic,
32
- topic = _ref$topic === void 0 ? _constants.DEFAULT_NOTIFICATION_TOPICS.global : _ref$topic,
33
- _ref$id = _ref.id,
34
- id = _ref$id === void 0 ? (0, _utils.generateHashId)(_constants.DEFAULT_UUID_COUNT) : _ref$id,
35
- _ref$count = _ref.count,
36
- count = _ref$count === void 0 ? 1 : _ref$count,
37
- options = (0, _objectWithoutProperties2["default"])(_ref, ["message", "type", "topic", "id", "count"]);
38
- return _objectSpread(_objectSpread({}, options), {}, {
39
- id: id,
40
- message: message,
41
- type: type,
42
- topic: topic,
43
- count: count > 99 ? 99 : count // no more than 2 digits
44
-
45
- });
46
- }
47
- /**
48
- * Creates an error notification
49
- * @param options
50
- * @returns {{topic, id, message, type: (null|number)}}
51
- */
52
-
53
-
54
- var errorNotification = function errorNotification(options) {
55
- return _objectSpread(_objectSpread({}, createNotification(options)), {}, {
56
- type: _constants.DEFAULT_NOTIFICATION_TYPES.error
57
- });
58
- };
59
- /**
60
- * Creates a success notification
61
- * @param options
62
- * @returns {{topic, id, message, type: null}}
63
- */
64
-
65
-
66
- exports.errorNotification = errorNotification;
67
-
68
- var successNotification = function successNotification(options) {
69
- return _objectSpread(_objectSpread({}, createNotification(options)), {}, {
70
- type: _constants.DEFAULT_NOTIFICATION_TYPES.success
71
- });
72
- };
73
-
74
- exports.successNotification = successNotification;
75
-
76
- var exportImageError = function exportImageError(options) {
77
- return errorNotification(_objectSpread(_objectSpread({}, options), {}, {
78
- id: 'EXPORT_IMAGE_ERROR_ID',
79
- topic: _constants.DEFAULT_NOTIFICATION_TOPICS.global,
80
- message: "Failed to export image, please take a screenshot of the javascript console, report the with [this link](".concat(_constants.BUG_REPORT_LINK, ") ")
81
- }));
82
- };
83
-
84
- exports.exportImageError = exportImageError;
85
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9ub3RpZmljYXRpb25zLXV0aWxzLnRzIl0sIm5hbWVzIjpbImNyZWF0ZU5vdGlmaWNhdGlvbiIsIm1lc3NhZ2UiLCJERUZBVUxUX05PVElGSUNBVElPTl9NRVNTQUdFIiwidHlwZSIsIkRFRkFVTFRfTk9USUZJQ0FUSU9OX1RZUEVTIiwiaW5mbyIsInRvcGljIiwiREVGQVVMVF9OT1RJRklDQVRJT05fVE9QSUNTIiwiZ2xvYmFsIiwiaWQiLCJERUZBVUxUX1VVSURfQ09VTlQiLCJjb3VudCIsIm9wdGlvbnMiLCJlcnJvck5vdGlmaWNhdGlvbiIsImVycm9yIiwic3VjY2Vzc05vdGlmaWNhdGlvbiIsInN1Y2Nlc3MiLCJleHBvcnRJbWFnZUVycm9yIiwiQlVHX1JFUE9SVF9MSU5LIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQUdBOztBQUVBOzs7Ozs7QUFnQkE7QUFDQTtBQUNBO0FBQ08sU0FBU0Esa0JBQVQsT0FPaUM7QUFBQSwwQkFOdENDLE9BTXNDO0FBQUEsTUFOdENBLE9BTXNDLDZCQU41QkMsdUNBTTRCO0FBQUEsdUJBTHRDQyxJQUtzQztBQUFBLE1BTHRDQSxJQUtzQywwQkFML0JDLHNDQUEyQkMsSUFLSTtBQUFBLHdCQUp0Q0MsS0FJc0M7QUFBQSxNQUp0Q0EsS0FJc0MsMkJBSjlCQyx1Q0FBNEJDLE1BSUU7QUFBQSxxQkFIdENDLEVBR3NDO0FBQUEsTUFIdENBLEVBR3NDLHdCQUhqQywyQkFBZUMsNkJBQWYsQ0FHaUM7QUFBQSx3QkFGdENDLEtBRXNDO0FBQUEsTUFGdENBLEtBRXNDLDJCQUY5QixDQUU4QjtBQUFBLE1BRG5DQyxPQUNtQztBQUN0Qyx5Q0FDS0EsT0FETDtBQUVFSCxJQUFBQSxFQUFFLEVBQUZBLEVBRkY7QUFHRVIsSUFBQUEsT0FBTyxFQUFQQSxPQUhGO0FBSUVFLElBQUFBLElBQUksRUFBSkEsSUFKRjtBQUtFRyxJQUFBQSxLQUFLLEVBQUxBLEtBTEY7QUFNRUssSUFBQUEsS0FBSyxFQUFFQSxLQUFLLEdBQUcsRUFBUixHQUFhLEVBQWIsR0FBa0JBLEtBTjNCLENBTWlDOztBQU5qQztBQVFEO0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ08sSUFBTUUsaUJBQWlCLEdBQUcsU0FBcEJBLGlCQUFvQixDQUFBRCxPQUFPO0FBQUEseUNBQ25DWixrQkFBa0IsQ0FBQ1ksT0FBRCxDQURpQjtBQUV0Q1QsSUFBQUEsSUFBSSxFQUFFQyxzQ0FBMkJVO0FBRks7QUFBQSxDQUFqQztBQUtQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7O0FBQ08sSUFBTUMsbUJBQW1CLEdBQUcsU0FBdEJBLG1CQUFzQixDQUFBSCxPQUFPO0FBQUEseUNBQ3JDWixrQkFBa0IsQ0FBQ1ksT0FBRCxDQURtQjtBQUV4Q1QsSUFBQUEsSUFBSSxFQUFFQyxzQ0FBMkJZO0FBRk87QUFBQSxDQUFuQzs7OztBQUtBLElBQU1DLGdCQUFnQixHQUFHLFNBQW5CQSxnQkFBbUIsQ0FBQUwsT0FBTztBQUFBLFNBQ3JDQyxpQkFBaUIsaUNBQ1pELE9BRFk7QUFFZkgsSUFBQUEsRUFBRSxFQUFFLHVCQUZXO0FBR2ZILElBQUFBLEtBQUssRUFBRUMsdUNBQTRCQyxNQUhwQjtBQUlmUCxJQUFBQSxPQUFPLG9IQUE2R2lCLDBCQUE3RztBQUpRLEtBRG9CO0FBQUEsQ0FBaEMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQge2dlbmVyYXRlSGFzaElkfSBmcm9tICcuL3V0aWxzJztcblxuaW1wb3J0IHtcbiAgREVGQVVMVF9OT1RJRklDQVRJT05fTUVTU0FHRSxcbiAgREVGQVVMVF9OT1RJRklDQVRJT05fVE9QSUNTLFxuICBERUZBVUxUX05PVElGSUNBVElPTl9UWVBFUyxcbiAgREVGQVVMVF9VVUlEX0NPVU5ULFxuICBCVUdfUkVQT1JUX0xJTktcbn0gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuXG5leHBvcnQgdHlwZSBOb3RpZmljYXRpb24gPSBSZWNvcmQ8c3RyaW5nLCBhbnk+ICYge1xuICBpZDogc3RyaW5nO1xuICBtZXNzYWdlOiBzdHJpbmc7XG4gIHR5cGU6ICdpbmZvJyB8ICdlcnJvcicgfCAnd2FybmluZycgfCAnc3VjY2Vzcyc7XG4gIHRvcGljOiAnZ2xvYmFsJyB8ICdmaWxlJztcbiAgY291bnQ6IG51bWJlcjtcbn07XG5cbi8qKlxuICogQ3JlYXRlcyBhIG5vdGlmaWNhdGlvblxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlTm90aWZpY2F0aW9uKHtcbiAgbWVzc2FnZSA9IERFRkFVTFRfTk9USUZJQ0FUSU9OX01FU1NBR0UsXG4gIHR5cGUgPSBERUZBVUxUX05PVElGSUNBVElPTl9UWVBFUy5pbmZvLFxuICB0b3BpYyA9IERFRkFVTFRfTk9USUZJQ0FUSU9OX1RPUElDUy5nbG9iYWwsXG4gIGlkID0gZ2VuZXJhdGVIYXNoSWQoREVGQVVMVF9VVUlEX0NPVU5UKSxcbiAgY291bnQgPSAxLFxuICAuLi5vcHRpb25zXG59OiBQYXJ0aWFsPE5vdGlmaWNhdGlvbj4pOiBOb3RpZmljYXRpb24ge1xuICByZXR1cm4ge1xuICAgIC4uLm9wdGlvbnMsXG4gICAgaWQsXG4gICAgbWVzc2FnZSxcbiAgICB0eXBlLFxuICAgIHRvcGljLFxuICAgIGNvdW50OiBjb3VudCA+IDk5ID8gOTkgOiBjb3VudCAvLyBubyBtb3JlIHRoYW4gMiBkaWdpdHNcbiAgfTtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGFuIGVycm9yIG5vdGlmaWNhdGlvblxuICogQHBhcmFtIG9wdGlvbnNcbiAqIEByZXR1cm5zIHt7dG9waWMsIGlkLCBtZXNzYWdlLCB0eXBlOiAobnVsbHxudW1iZXIpfX1cbiAqL1xuZXhwb3J0IGNvbnN0IGVycm9yTm90aWZpY2F0aW9uID0gb3B0aW9ucyA9PiAoe1xuICAuLi5jcmVhdGVOb3RpZmljYXRpb24ob3B0aW9ucyksXG4gIHR5cGU6IERFRkFVTFRfTk9USUZJQ0FUSU9OX1RZUEVTLmVycm9yXG59KTtcblxuLyoqXG4gKiBDcmVhdGVzIGEgc3VjY2VzcyBub3RpZmljYXRpb25cbiAqIEBwYXJhbSBvcHRpb25zXG4gKiBAcmV0dXJucyB7e3RvcGljLCBpZCwgbWVzc2FnZSwgdHlwZTogbnVsbH19XG4gKi9cbmV4cG9ydCBjb25zdCBzdWNjZXNzTm90aWZpY2F0aW9uID0gb3B0aW9ucyA9PiAoe1xuICAuLi5jcmVhdGVOb3RpZmljYXRpb24ob3B0aW9ucyksXG4gIHR5cGU6IERFRkFVTFRfTk9USUZJQ0FUSU9OX1RZUEVTLnN1Y2Nlc3Ncbn0pO1xuXG5leHBvcnQgY29uc3QgZXhwb3J0SW1hZ2VFcnJvciA9IG9wdGlvbnMgPT5cbiAgZXJyb3JOb3RpZmljYXRpb24oe1xuICAgIC4uLm9wdGlvbnMsXG4gICAgaWQ6ICdFWFBPUlRfSU1BR0VfRVJST1JfSUQnLFxuICAgIHRvcGljOiBERUZBVUxUX05PVElGSUNBVElPTl9UT1BJQ1MuZ2xvYmFsLFxuICAgIG1lc3NhZ2U6IGBGYWlsZWQgdG8gZXhwb3J0IGltYWdlLCBwbGVhc2UgdGFrZSBhIHNjcmVlbnNob3Qgb2YgdGhlIGphdmFzY3JpcHQgY29uc29sZSwgcmVwb3J0IHRoZSB3aXRoIFt0aGlzIGxpbmtdKCR7QlVHX1JFUE9SVF9MSU5LfSkgYFxuICB9KTtcbiJdfQ==
@@ -1,15 +0,0 @@
1
- import { RefObject } from 'react';
2
- export interface Dimensions {
3
- readonly height: number;
4
- readonly width: number;
5
- }
6
- export declare function observeDimensions(target: Element, handleResize: (size: Dimensions | null) => void, throttleDelay?: number): void;
7
- export declare function unobserveDimensions(target: Element): void;
8
- /**
9
- * Usage example:
10
- * const [ref, dimensions] = useDimensions<HTMLDivElement>();
11
- *
12
- * @param throttleDelay
13
- * @returns
14
- */
15
- export default function useDimensions<T extends Element>(nodeRef?: RefObject<T>, throttleDelay?: number): [RefObject<T>, Dimensions | null];