@kepler.gl/deckgl-layers 3.3.0-alpha.3 → 3.3.0-alpha.5
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/cluster-layer/cluster-layer.js +2 -3
- package/dist/column-layer/enhanced-column-layer.js +30 -5
- package/dist/globe/atmosphere-layer.d.ts +37 -0
- package/dist/globe/atmosphere-layer.js +220 -0
- package/dist/globe/enhanced-multi-icon-layer.d.ts +6 -0
- package/dist/globe/enhanced-multi-icon-layer.js +63 -0
- package/dist/globe/globe-depth-disk-layer.d.ts +19 -0
- package/dist/globe/globe-depth-disk-layer.js +145 -0
- package/dist/globe/globe-layers.d.ts +108 -0
- package/dist/globe/globe-layers.js +569 -0
- package/dist/globe/globe-stars-layer.d.ts +5 -0
- package/dist/globe/globe-stars-layer.js +69 -0
- package/dist/globe/globe-view.d.ts +23 -0
- package/dist/globe/globe-view.js +404 -0
- package/dist/globe/index.d.ts +8 -0
- package/dist/globe/index.js +122 -0
- package/dist/globe/mvt-label-layer.d.ts +7928 -0
- package/dist/globe/mvt-label-layer.js +190 -0
- package/dist/grid-layer/enhanced-cpu-grid-layer.d.ts +53 -49
- package/dist/grid-layer/enhanced-cpu-grid-layer.js +28 -2
- package/dist/hexagon-layer/enhanced-hexagon-layer.d.ts +53 -49
- package/dist/hexagon-layer/enhanced-hexagon-layer.js +28 -2
- package/dist/index.d.ts +1 -0
- package/dist/index.js +14 -3
- package/dist/layer-utils/globe-cell-utils.d.ts +30 -0
- package/dist/layer-utils/globe-cell-utils.js +173 -0
- package/dist/line-layer/line-layer.js +2 -2
- package/dist/raster/images.d.ts +10 -1
- package/dist/raster/images.js +18 -6
- package/dist/raster/raster-layer/raster-layer.d.ts +4 -0
- package/dist/raster/raster-layer/raster-layer.js +59 -9
- package/dist/raster/raster-mesh-layer/raster-mesh-layer.d.ts +4 -0
- package/dist/raster/raster-mesh-layer/raster-mesh-layer.js +59 -9
- package/dist/svg-icon-layer/scatterplot-icon-layer.d.ts +4 -1
- package/dist/svg-icon-layer/scatterplot-icon-layer.js +52 -15
- package/dist/wms/wms-layer.d.ts +19 -0
- package/dist/wms/wms-layer.js +193 -23
- package/package.json +8 -7
package/dist/index.js
CHANGED
|
@@ -147,6 +147,17 @@ Object.keys(_dBuildingUtils).forEach(function (key) {
|
|
|
147
147
|
}
|
|
148
148
|
});
|
|
149
149
|
});
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
150
|
+
var _globe = require("./globe");
|
|
151
|
+
Object.keys(_globe).forEach(function (key) {
|
|
152
|
+
if (key === "default" || key === "__esModule") return;
|
|
153
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
154
|
+
if (key in exports && exports[key] === _globe[key]) return;
|
|
155
|
+
Object.defineProperty(exports, key, {
|
|
156
|
+
enumerable: true,
|
|
157
|
+
get: function get() {
|
|
158
|
+
return _globe[key];
|
|
159
|
+
}
|
|
160
|
+
});
|
|
161
|
+
});
|
|
162
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
163
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZEJ1aWxkaW5nTGF5ZXIiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9jbHVzdGVyTGF5ZXIiLCJfZW5oYW5jZWRDb2x1bW5MYXllciIsIl9lbmhhbmNlZENwdUdyaWRMYXllciIsIl9lbmhhbmNlZEhleGFnb25MYXllciIsIl9saW5lTGF5ZXIiLCJfc3ZnSWNvbkxheWVyIiwiX2ZpbHRlckFycm93TGF5ZXIiLCJfcmFzdGVyTGF5ZXIiLCJfcmFzdGVyTWVzaExheWVyIiwiX1Jhc3RlcldlYkdMIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJleHBvcnRzIiwiUmFzdGVyV2ViR0wiLCJfd21zTGF5ZXIiLCJfc2hhZGVyVXRpbHMiLCJPYmplY3QiLCJrZXlzIiwiZm9yRWFjaCIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIl9leHBvcnROYW1lcyIsImRlZmluZVByb3BlcnR5IiwiZW51bWVyYWJsZSIsImdldCIsIl9hZ2dyZWdhdGlvblV0aWxzIiwiX3R5cGVzIiwiX2RCdWlsZGluZ1V0aWxzIiwiX2dsb2JlIiwiZSIsInQiLCJXZWFrTWFwIiwiciIsIm4iLCJfX2VzTW9kdWxlIiwibyIsImkiLCJmIiwiX19wcm90b19fIiwiX3R5cGVvZiIsImhhcyIsInNldCIsIl90IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIl0sInNvdXJjZXMiOlsiLi4vc3JjL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmV4cG9ydCB7ZGVmYXVsdCBhcyBUaHJlZURCdWlsZGluZ0xheWVyfSBmcm9tICcuLzNkLWJ1aWxkaW5nLWxheWVyLzNkLWJ1aWxkaW5nLWxheWVyJztcblxuZXhwb3J0IHtkZWZhdWx0IGFzIERlY2tHTENsdXN0ZXJMYXllcn0gZnJvbSAnLi9jbHVzdGVyLWxheWVyL2NsdXN0ZXItbGF5ZXInO1xuXG5leHBvcnQge2RlZmF1bHQgYXMgRW5oYW5jZWRDb2x1bW5MYXllcn0gZnJvbSAnLi9jb2x1bW4tbGF5ZXIvZW5oYW5jZWQtY29sdW1uLWxheWVyJztcblxuZXhwb3J0IHtkZWZhdWx0IGFzIEVuaGFuY2VkR3JpZExheWVyfSBmcm9tICcuL2dyaWQtbGF5ZXIvZW5oYW5jZWQtY3B1LWdyaWQtbGF5ZXInO1xuXG5leHBvcnQge2RlZmF1bHQgYXMgRW5oYW5jZWRIZXhhZ29uTGF5ZXJ9IGZyb20gJy4vaGV4YWdvbi1sYXllci9lbmhhbmNlZC1oZXhhZ29uLWxheWVyJztcbmV4cG9ydCB7ZGVmYXVsdCBhcyBFbmhhbmNlZExpbmVMYXllcn0gZnJvbSAnLi9saW5lLWxheWVyL2xpbmUtbGF5ZXInO1xuZXhwb3J0IHtkZWZhdWx0IGFzIFN2Z0ljb25MYXllcn0gZnJvbSAnLi9zdmctaWNvbi1sYXllci9zdmctaWNvbi1sYXllcic7XG5leHBvcnQge2RlZmF1bHQgYXMgRmlsdGVyQXJyb3dFeHRlbnNpb259IGZyb20gJy4vZGVja2dsLWV4dGVuc2lvbnMvZmlsdGVyLWFycm93LWxheWVyJztcblxuZXhwb3J0IHtkZWZhdWx0IGFzIFJhc3RlckxheWVyfSBmcm9tICcuL3Jhc3Rlci9yYXN0ZXItbGF5ZXIvcmFzdGVyLWxheWVyJztcbmV4cG9ydCB7ZGVmYXVsdCBhcyBSYXN0ZXJNZXNoTGF5ZXJ9IGZyb20gJy4vcmFzdGVyL3Jhc3Rlci1tZXNoLWxheWVyL3Jhc3Rlci1tZXNoLWxheWVyJztcbmV4cG9ydCAqIGFzIFJhc3RlcldlYkdMIGZyb20gJy4vcmFzdGVyL3dlYmdsJztcblxuZXhwb3J0IHtkZWZhdWx0IGFzIFdNU0xheWVyfSBmcm9tICcuL3dtcy93bXMtbGF5ZXInO1xuXG5leHBvcnQgKiBmcm9tICcuL2xheWVyLXV0aWxzL3NoYWRlci11dGlscyc7XG5leHBvcnQgKiBmcm9tICcuL2xheWVyLXV0aWxzL2FnZ3JlZ2F0aW9uLXV0aWxzJztcblxuZXhwb3J0ICogZnJvbSAnLi8zZC1idWlsZGluZy1sYXllci90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuLzNkLWJ1aWxkaW5nLWxheWVyLzNkLWJ1aWxkaW5nLXV0aWxzJztcblxuZXhwb3J0ICogZnJvbSAnLi9nbG9iZSc7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHQSxJQUFBQSxlQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBQyxhQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBRSxvQkFBQSxHQUFBSCxzQkFBQSxDQUFBQyxPQUFBO0FBRUEsSUFBQUcscUJBQUEsR0FBQUosc0JBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFJLHFCQUFBLEdBQUFMLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSyxVQUFBLEdBQUFOLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBTSxhQUFBLEdBQUFQLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBTyxpQkFBQSxHQUFBUixzQkFBQSxDQUFBQyxPQUFBO0FBRUEsSUFBQVEsWUFBQSxHQUFBVCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQVMsZ0JBQUEsR0FBQVYsc0JBQUEsQ0FBQUMsT0FBQTtBQUF3RixJQUFBVSxZQUFBLEdBQUFDLHVCQUFBLENBQUFYLE9BQUE7QUFBQVksT0FBQSxDQUFBQyxXQUFBLEdBQUFILFlBQUE7QUFHeEYsSUFBQUksU0FBQSxHQUFBZixzQkFBQSxDQUFBQyxPQUFBO0FBRUEsSUFBQWUsWUFBQSxHQUFBZixPQUFBO0FBQUFnQixNQUFBLENBQUFDLElBQUEsQ0FBQUYsWUFBQSxFQUFBRyxPQUFBLFdBQUFDLEdBQUE7RUFBQSxJQUFBQSxHQUFBLGtCQUFBQSxHQUFBO0VBQUEsSUFBQUgsTUFBQSxDQUFBSSxTQUFBLENBQUFDLGNBQUEsQ0FBQUMsSUFB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
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Rewrites a grid/hexagon cell vertex shader so that, in globe mode, the final
|
|
3
|
+
* clip-space position is derived from the sphere surface instead of the flat XY
|
|
4
|
+
* plane. In 2D/3D mode the original path is kept unchanged.
|
|
5
|
+
*/
|
|
6
|
+
export declare function addGlobeCellProjection(vs: string, type: string): string;
|
|
7
|
+
/**
|
|
8
|
+
* deck.gl 9's Grid/Hexagon aggregation compute bin positions and the cell layer's
|
|
9
|
+
* "common space" from `this.context.viewport`. Under `_GlobeView` that common space
|
|
10
|
+
* is the globe's 3D-projected space (projectFlat is identity on lng/lat, positions
|
|
11
|
+
* bin off the sphere-projected XY), which both mis-bins data and — combined with the
|
|
12
|
+
* flat cell shader — drops cells onto the plane through the globe center.
|
|
13
|
+
*
|
|
14
|
+
* We sidestep this by running `_updateBinOptions` with a WebMercatorViewport that
|
|
15
|
+
* matches the current globe camera. That makes binning, `cellOriginCommon` /
|
|
16
|
+
* `cellSizeCommon` (or `radiusCommon` / `hexOriginCommon`) and the cell shader's
|
|
17
|
+
* flat position all live in genuine Web Mercator common space, which the cell shader
|
|
18
|
+
* remap (`addGlobeCellProjection`) then curves back onto the sphere. In 2D/3D mode
|
|
19
|
+
* this is a no-op.
|
|
20
|
+
*
|
|
21
|
+
* `callSuper` runs deck.gl's original `_updateBinOptions` while the viewport is
|
|
22
|
+
* temporarily swapped. The swap is synchronous and restored in `finally`.
|
|
23
|
+
*/
|
|
24
|
+
export declare function runBinOptionsWithMercatorViewport(layer: any, callSuper: () => void): void;
|
|
25
|
+
type LayerConstructor = {
|
|
26
|
+
new (...args: any[]): any;
|
|
27
|
+
layerName?: string;
|
|
28
|
+
};
|
|
29
|
+
export declare function makeGlobeCellLayerClass<T extends LayerConstructor>(BaseCellLayer: T, type: string): T;
|
|
30
|
+
export {};
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.addGlobeCellProjection = addGlobeCellProjection;
|
|
8
|
+
exports.makeGlobeCellLayerClass = makeGlobeCellLayerClass;
|
|
9
|
+
exports.runBinOptionsWithMercatorViewport = runBinOptionsWithMercatorViewport;
|
|
10
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
11
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
12
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
13
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
14
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
15
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
16
|
+
var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
|
|
17
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
18
|
+
var _core = require("@deck.gl/core");
|
|
19
|
+
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; }
|
|
20
|
+
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; }
|
|
21
|
+
function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
|
|
22
|
+
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
23
|
+
function _superPropGet(t, o, e, r) { var p = (0, _get2["default"])((0, _getPrototypeOf2["default"])(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } // SPDX-License-Identifier: MIT
|
|
24
|
+
// Copyright contributors to the kepler.gl project
|
|
25
|
+
/**
|
|
26
|
+
* deck.gl's aggregation cell layers (GridCellLayer / HexagonCellLayer) position
|
|
27
|
+
* each cell in flat mercator "common space" (a 2D XY plane) and then draw it with
|
|
28
|
+
* `project_common_position_to_clipspace`, which only multiplies by the
|
|
29
|
+
* view-projection matrix. Under `_GlobeView` this leaves the cells on the flat XY
|
|
30
|
+
* plane that passes through the center of the globe instead of on its surface
|
|
31
|
+
* (the base ColumnLayer works on the globe because it feeds real lng/lat through
|
|
32
|
+
* `project_position` -> `project_globe_`; the aggregation cell shaders skip that).
|
|
33
|
+
*
|
|
34
|
+
* To fix this we remap the already-computed flat common-space vertex position back
|
|
35
|
+
* to lng/lat (inverse Web Mercator) and then onto the sphere with the same math
|
|
36
|
+
* `project_globe_` uses for geographic layers. Because we remap every vertex of the
|
|
37
|
+
* cell footprint (not just the centroid), the flat quad/hexagon naturally curves
|
|
38
|
+
* onto the surface. Elevation (extruded cells, stored in `geometry.position.z` in
|
|
39
|
+
* common units) is added along the radius so columns rise radially off the globe.
|
|
40
|
+
*
|
|
41
|
+
* The remap is gated by a `globeMode` uniform so 2D/3D mercator rendering is
|
|
42
|
+
* byte-for-byte unchanged.
|
|
43
|
+
*
|
|
44
|
+
* `WORLD_SCALE`, `PI`, `GLOBE_RADIUS` and `project.commonOrigin` are all provided
|
|
45
|
+
* by deck.gl's project shader module which these layers include.
|
|
46
|
+
*/
|
|
47
|
+
|
|
48
|
+
// deck.gl 9 / luma 9 sets custom uniforms via UBO-backed shader modules (there is
|
|
49
|
+
// no Model.setUniforms). This minimal module exposes the globe-mode flag.
|
|
50
|
+
var globeCellUniforms = {
|
|
51
|
+
name: 'globeCell',
|
|
52
|
+
vs: "layout(std140) uniform globeCellUniforms {\n float globeMode;\n} globeCellProps;\n",
|
|
53
|
+
uniformTypes: {
|
|
54
|
+
globeMode: 'f32'
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
var GLOBE_CELL_DECL = /* glsl */"\n// Inverse of deck.gl project_mercator_: flat common XY -> lng/lat (degrees).\nvec2 kepler_commonToLngLat(vec2 commonXY) {\n float lng = degrees(commonXY.x / WORLD_SCALE - PI);\n float lat = degrees(2.0 * atan(exp(commonXY.y / WORLD_SCALE - PI)) - PI * 0.5);\n return vec2(lng, lat);\n}\n\n// Same math as deck.gl project_globe_. elevationCommon is in common units already\n// (GLOBE_RADIUS space), matching how project_globe_ scales z off EARTH_RADIUS.\nvec3 kepler_lngLatToGlobe(vec2 lngLat, float elevationCommon) {\n float lambda = radians(lngLat.x);\n float phi = radians(lngLat.y);\n float cosPhi = cos(phi);\n float D = GLOBE_RADIUS + elevationCommon;\n return vec3(\n sin(lambda) * cosPhi,\n -cos(lambda) * cosPhi,\n sin(phi)\n ) * D;\n}\n";
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Rewrites a grid/hexagon cell vertex shader so that, in globe mode, the final
|
|
61
|
+
* clip-space position is derived from the sphere surface instead of the flat XY
|
|
62
|
+
* plane. In 2D/3D mode the original path is kept unchanged.
|
|
63
|
+
*/
|
|
64
|
+
function addGlobeCellProjection(vs, type) {
|
|
65
|
+
var decl = "".concat(GLOBE_CELL_DECL, "\nvoid main(void) {");
|
|
66
|
+
var withDecl = vs.includes('void main(void) {') ? vs.replace('void main(void) {', decl) : vs;
|
|
67
|
+
var target = 'gl_Position = project_common_position_to_clipspace(geometry.position);';
|
|
68
|
+
if (!withDecl.includes(target)) {
|
|
69
|
+
// Shader shape changed in a deck.gl update; leave the original so we don't crash.
|
|
70
|
+
// eslint-disable-next-line no-console
|
|
71
|
+
console.error("Cannot edit ".concat(type, " globe cell shader"));
|
|
72
|
+
return withDecl;
|
|
73
|
+
}
|
|
74
|
+
return withDecl.replace(target, "if (globeCellProps.globeMode > 0.5) {\n vec2 lngLat = kepler_commonToLngLat(geometry.position.xy + project.commonOrigin.xy);\n vec3 globePos = kepler_lngLatToGlobe(lngLat, geometry.position.z);\n geometry.position = vec4(globePos, 1.0);\n }\n gl_Position = project_common_position_to_clipspace(geometry.position);");
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* deck.gl 9's Grid/Hexagon aggregation compute bin positions and the cell layer's
|
|
79
|
+
* "common space" from `this.context.viewport`. Under `_GlobeView` that common space
|
|
80
|
+
* is the globe's 3D-projected space (projectFlat is identity on lng/lat, positions
|
|
81
|
+
* bin off the sphere-projected XY), which both mis-bins data and — combined with the
|
|
82
|
+
* flat cell shader — drops cells onto the plane through the globe center.
|
|
83
|
+
*
|
|
84
|
+
* We sidestep this by running `_updateBinOptions` with a WebMercatorViewport that
|
|
85
|
+
* matches the current globe camera. That makes binning, `cellOriginCommon` /
|
|
86
|
+
* `cellSizeCommon` (or `radiusCommon` / `hexOriginCommon`) and the cell shader's
|
|
87
|
+
* flat position all live in genuine Web Mercator common space, which the cell shader
|
|
88
|
+
* remap (`addGlobeCellProjection`) then curves back onto the sphere. In 2D/3D mode
|
|
89
|
+
* this is a no-op.
|
|
90
|
+
*
|
|
91
|
+
* `callSuper` runs deck.gl's original `_updateBinOptions` while the viewport is
|
|
92
|
+
* temporarily swapped. The swap is synchronous and restored in `finally`.
|
|
93
|
+
*/
|
|
94
|
+
function runBinOptionsWithMercatorViewport(layer, callSuper) {
|
|
95
|
+
var _layer$context;
|
|
96
|
+
var viewport = (_layer$context = layer.context) === null || _layer$context === void 0 ? void 0 : _layer$context.viewport;
|
|
97
|
+
var isGlobe = Boolean(viewport === null || viewport === void 0 ? void 0 : viewport.resolution);
|
|
98
|
+
if (!isGlobe) {
|
|
99
|
+
callSuper();
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
var mercatorViewport = new _core.WebMercatorViewport({
|
|
103
|
+
width: viewport.width,
|
|
104
|
+
height: viewport.height,
|
|
105
|
+
longitude: viewport.longitude,
|
|
106
|
+
latitude: viewport.latitude,
|
|
107
|
+
zoom: viewport.zoom
|
|
108
|
+
});
|
|
109
|
+
var originalViewport = layer.context.viewport;
|
|
110
|
+
layer.context.viewport = mercatorViewport;
|
|
111
|
+
try {
|
|
112
|
+
callSuper();
|
|
113
|
+
} finally {
|
|
114
|
+
layer.context.viewport = originalViewport;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
/**
|
|
119
|
+
* Wraps a deck.gl aggregation cell layer class (GridCellLayer / HexagonCellLayer)
|
|
120
|
+
* with a subclass that injects the globe surface remap into its vertex shader.
|
|
121
|
+
*
|
|
122
|
+
* We create the subclass dynamically from whatever default class deck.gl provides
|
|
123
|
+
* to `getSubLayerClass` so we don't have to import the (non-public) cell layer
|
|
124
|
+
* classes directly. Results are cached per base class so deck.gl sees a stable
|
|
125
|
+
* layer class across renders (layers are recreated every frame) and shader
|
|
126
|
+
* compilation / sublayer diffing stays stable.
|
|
127
|
+
*/
|
|
128
|
+
var globeCellClassCache = new WeakMap();
|
|
129
|
+
function makeGlobeCellLayerClass(BaseCellLayer, type) {
|
|
130
|
+
var cached = globeCellClassCache.get(BaseCellLayer);
|
|
131
|
+
if (cached) {
|
|
132
|
+
return cached;
|
|
133
|
+
}
|
|
134
|
+
var GlobeCellLayer = /*#__PURE__*/function (_ref) {
|
|
135
|
+
function GlobeCellLayer() {
|
|
136
|
+
(0, _classCallCheck2["default"])(this, GlobeCellLayer);
|
|
137
|
+
return _callSuper(this, GlobeCellLayer, arguments);
|
|
138
|
+
}
|
|
139
|
+
(0, _inherits2["default"])(GlobeCellLayer, _ref);
|
|
140
|
+
return (0, _createClass2["default"])(GlobeCellLayer, [{
|
|
141
|
+
key: "getShaders",
|
|
142
|
+
value: function getShaders() {
|
|
143
|
+
var shaders = _superPropGet(GlobeCellLayer, "getShaders", this, 1)();
|
|
144
|
+
return _objectSpread(_objectSpread({}, shaders), {}, {
|
|
145
|
+
vs: addGlobeCellProjection(shaders.vs, type),
|
|
146
|
+
modules: [].concat((0, _toConsumableArray2["default"])(shaders.modules || []), [globeCellUniforms])
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
}, {
|
|
150
|
+
key: "draw",
|
|
151
|
+
value: function draw(opts) {
|
|
152
|
+
var globeMode = this.context.viewport.resolution ? 1.0 : 0.0;
|
|
153
|
+
// GridCellLayer / HexagonCellLayer render through a single fillModel and set
|
|
154
|
+
// their own module props in draw(); set ours first so it merges (setProps is
|
|
155
|
+
// per-module). deck.gl 9 has no Model.setUniforms — uniforms go through
|
|
156
|
+
// shaderInputs UBO modules.
|
|
157
|
+
var model = this.state.fillModel;
|
|
158
|
+
if (model !== null && model !== void 0 && model.shaderInputs) {
|
|
159
|
+
model.shaderInputs.setProps({
|
|
160
|
+
globeCell: {
|
|
161
|
+
globeMode: globeMode
|
|
162
|
+
}
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
_superPropGet(GlobeCellLayer, "draw", this, 1)(opts);
|
|
166
|
+
}
|
|
167
|
+
}]);
|
|
168
|
+
}(BaseCellLayer);
|
|
169
|
+
GlobeCellLayer.layerName = "Globe".concat(type, "CellLayer");
|
|
170
|
+
globeCellClassCache.set(BaseCellLayer, GlobeCellLayer);
|
|
171
|
+
return GlobeCellLayer;
|
|
172
|
+
}
|
|
173
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29yZSIsInJlcXVpcmUiLCJvd25LZXlzIiwiZSIsInIiLCJ0IiwiT2JqZWN0Iiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsIl9jYWxsU3VwZXIiLCJfZ2V0UHJvdG90eXBlT2YyIiwiX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4yIiwiX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCIsIlJlZmxlY3QiLCJjb25zdHJ1Y3QiLCJjb25zdHJ1Y3RvciIsIkJvb2xlYW4iLCJwcm90b3R5cGUiLCJ2YWx1ZU9mIiwiY2FsbCIsIl9zdXBlclByb3BHZXQiLCJwIiwiX2dldDIiLCJnbG9iZUNlbGxVbmlmb3JtcyIsIm5hbWUiLCJ2cyIsInVuaWZvcm1UeXBlcyIsImdsb2JlTW9kZSIsIkdMT0JFX0NFTExfREVDTCIsImFkZEdsb2JlQ2VsbFByb2plY3Rpb24iLCJ0eXBlIiwiZGVjbCIsImNvbmNhdCIsIndpdGhEZWNsIiwiaW5jbHVkZXMiLCJyZXBsYWNlIiwidGFyZ2V0IiwiY29uc29sZSIsImVycm9yIiwicnVuQmluT3B0aW9uc1dpdGhNZXJjYXRvclZpZXdwb3J0IiwibGF5ZXIiLCJjYWxsU3VwZXIiLCJfbGF5ZXIkY29udGV4dCIsInZpZXdwb3J0IiwiY29udGV4dCIsImlzR2xvYmUiLCJyZXNvbHV0aW9uIiwibWVyY2F0b3JWaWV3cG9ydCIsIldlYk1lcmNhdG9yVmlld3BvcnQiLCJ3aWR0aCIsImhlaWdodCIsImxvbmdpdHVkZSIsImxhdGl0dWRlIiwiem9vbSIsIm9yaWdpbmFsVmlld3BvcnQiLCJnbG9iZUNlbGxDbGFzc0NhY2hlIiwiV2Vha01hcCIsIm1ha2VHbG9iZUNlbGxMYXllckNsYXNzIiwiQmFzZUNlbGxMYXllciIsImNhY2hlZCIsImdldCIsIkdsb2JlQ2VsbExheWVyIiwiX3JlZiIsIl9jbGFzc0NhbGxDaGVjazIiLCJfaW5oZXJpdHMyIiwiX2NyZWF0ZUNsYXNzMiIsImtleSIsInZhbHVlIiwiZ2V0U2hhZGVycyIsInNoYWRlcnMiLCJtb2R1bGVzIiwiX3RvQ29uc3VtYWJsZUFycmF5MiIsImRyYXciLCJvcHRzIiwibW9kZWwiLCJzdGF0ZSIsImZpbGxNb2RlbCIsInNoYWRlcklucHV0cyIsInNldFByb3BzIiwiZ2xvYmVDZWxsIiwibGF5ZXJOYW1lIiwic2V0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xheWVyLXV0aWxzL2dsb2JlLWNlbGwtdXRpbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IHtXZWJNZXJjYXRvclZpZXdwb3J0fSBmcm9tICdAZGVjay5nbC9jb3JlJztcblxuLyoqXG4gKiBkZWNrLmdsJ3MgYWdncmVnYXRpb24gY2VsbCBsYXllcnMgKEdyaWRDZWxsTGF5ZXIgLyBIZXhhZ29uQ2VsbExheWVyKSBwb3NpdGlvblxuICogZWFjaCBjZWxsIGluIGZsYXQgbWVyY2F0b3IgXCJjb21tb24gc3BhY2VcIiAoYSAyRCBYWSBwbGFuZSkgYW5kIHRoZW4gZHJhdyBpdCB3aXRoXG4gKiBgcHJvamVjdF9jb21tb25fcG9zaXRpb25fdG9fY2xpcHNwYWNlYCwgd2hpY2ggb25seSBtdWx0aXBsaWVzIGJ5IHRoZVxuICogdmlldy1wcm9qZWN0aW9uIG1hdHJpeC4gVW5kZXIgYF9HbG9iZVZpZXdgIHRoaXMgbGVhdmVzIHRoZSBjZWxscyBvbiB0aGUgZmxhdCBYWVxuICogcGxhbmUgdGhhdCBwYXNzZXMgdGhyb3VnaCB0aGUgY2VudGVyIG9mIHRoZSBnbG9iZSBpbnN0ZWFkIG9mIG9uIGl0cyBzdXJmYWNlXG4gKiAodGhlIGJhc2UgQ29sdW1uTGF5ZXIgd29ya3Mgb24gdGhlIGdsb2JlIGJlY2F1c2UgaXQgZmVlZHMgcmVhbCBsbmcvbGF0IHRocm91Z2hcbiAqIGBwcm9qZWN0X3Bvc2l0aW9uYCAtPiBgcHJvamVjdF9nbG9iZV9gOyB0aGUgYWdncmVnYXRpb24gY2VsbCBzaGFkZXJzIHNraXAgdGhhdCkuXG4gKlxuICogVG8gZml4IHRoaXMgd2UgcmVtYXAgdGhlIGFscmVhZHktY29tcHV0ZWQgZmxhdCBjb21tb24tc3BhY2UgdmVydGV4IHBvc2l0aW9uIGJhY2tcbiAqIHRvIGxuZy9sYXQgKGludmVyc2UgV2ViIE1lcmNhdG9yKSBhbmQgdGhlbiBvbnRvIHRoZSBzcGhlcmUgd2l0aCB0aGUgc2FtZSBtYXRoXG4gKiBgcHJvamVjdF9nbG9iZV9gIHVzZXMgZm9yIGdlb2dyYXBoaWMgbGF5ZXJzLiBCZWNhdXNlIHdlIHJlbWFwIGV2ZXJ5IHZlcnRleCBvZiB0aGVcbiAqIGNlbGwgZm9vdHByaW50IChub3QganVzdCB0aGUgY2VudHJvaWQpLCB0aGUgZmxhdCBxdWFkL2hleGFnb24gbmF0dXJhbGx5IGN1cnZlc1xuICogb250byB0aGUgc3VyZmFjZS4gRWxldmF0aW9uIChleHRydWRlZCBjZWxscywgc3RvcmVkIGluIGBnZW9tZXRyeS5wb3NpdGlvbi56YCBpblxuICogY29tbW9uIHVuaXRzKSBpcyBhZGRlZCBhbG9uZyB0aGUgcmFkaXVzIHNvIGNvbHVtbnMgcmlzZSByYWRpYWxseSBvZmYgdGhlIGdsb2JlLlxuICpcbiAqIFRoZSByZW1hcCBpcyBnYXRlZCBieSBhIGBnbG9iZU1vZGVgIHVuaWZvcm0gc28gMkQvM0QgbWVyY2F0b3IgcmVuZGVyaW5nIGlzXG4gKiBieXRlLWZvci1ieXRlIHVuY2hhbmdlZC5cbiAqXG4gKiBgV09STERfU0NBTEVgLCBgUElgLCBgR0xPQkVfUkFESVVTYCBhbmQgYHByb2plY3QuY29tbW9uT3JpZ2luYCBhcmUgYWxsIHByb3ZpZGVkXG4gKiBieSBkZWNrLmdsJ3MgcHJvamVjdCBzaGFkZXIgbW9kdWxlIHdoaWNoIHRoZXNlIGxheWVycyBpbmNsdWRlLlxuICovXG5cbi8vIGRlY2suZ2wgOSAvIGx1bWEgOSBzZXRzIGN1c3RvbSB1bmlmb3JtcyB2aWEgVUJPLWJhY2tlZCBzaGFkZXIgbW9kdWxlcyAodGhlcmUgaXNcbi8vIG5vIE1vZGVsLnNldFVuaWZvcm1zKS4gVGhpcyBtaW5pbWFsIG1vZHVsZSBleHBvc2VzIHRoZSBnbG9iZS1tb2RlIGZsYWcuXG5jb25zdCBnbG9iZUNlbGxVbmlmb3JtcyA9IHtcbiAgbmFtZTogJ2dsb2JlQ2VsbCcsXG4gIHZzOiBgbGF5b3V0KHN0ZDE0MCkgdW5pZm9ybSBnbG9iZUNlbGxVbmlmb3JtcyB7XG4gIGZsb2F0IGdsb2JlTW9kZTtcbn0gZ2xvYmVDZWxsUHJvcHM7XG5gLFxuICB1bmlmb3JtVHlwZXM6IHtcbiAgICBnbG9iZU1vZGU6ICdmMzInXG4gIH1cbn0gYXMgY29uc3Q7XG5cbmNvbnN0IEdMT0JFX0NFTExfREVDTCA9IC8qIGdsc2wgKi8gYFxuLy8gSW52ZXJzZSBvZiBkZWNrLmdsIHByb2plY3RfbWVyY2F0b3JfOiBmbGF0IGNvbW1vbiBYWSAtPiBsbmcvbGF0IChkZWdyZWVzKS5cbnZlYzIga2VwbGVyX2NvbW1vblRvTG5nTGF0KHZlYzIgY29tbW9uWFkpIHtcbiAgZmxvYXQgbG5nID0gZGVncmVlcyhjb21tb25YWS54IC8gV09STERfU0NBTEUgLSBQSSk7XG4gIGZsb2F0IGxhdCA9IGRlZ3JlZXMoMi4wICogYXRhbihleHAoY29tbW9uWFkueSAvIFdPUkxEX1NDQUxFIC0gUEkpKSAtIFBJICogMC41KTtcbiAgcmV0dXJuIHZlYzIobG5nLCBsYXQpO1xufVxuXG4vLyBTYW1lIG1hdGggYXMgZGVjay5nbCBwcm9qZWN0X2dsb2JlXy4gZWxldmF0aW9uQ29tbW9uIGlzIGluIGNvbW1vbiB1bml0cyBhbHJlYWR5XG4vLyAoR0xPQkVfUkFESVVTIHNwYWNlKSwgbWF0Y2hpbmcgaG93IHByb2plY3RfZ2xvYmVfIHNjYWxlcyB6IG9mZiBFQVJUSF9SQURJVVMuXG52ZWMzIGtlcGxlcl9sbmdMYXRUb0dsb2JlKHZlYzIgbG5nTGF0LCBmbG9hdCBlbGV2YXRpb25Db21tb24pIHtcbiAgZmxvYXQgbGFtYmRhID0gcmFkaWFucyhsbmdMYXQueCk7XG4gIGZsb2F0IHBoaSA9IHJhZGlhbnMobG5nTGF0LnkpO1xuICBmbG9hdCBjb3NQaGkgPSBjb3MocGhpKTtcbiAgZmxvYXQgRCA9IEdMT0JFX1JBRElVUyArIGVsZXZhdGlvbkNvbW1vbjtcbiAgcmV0dXJuIHZlYzMoXG4gICAgc2luKGxhbWJkYSkgKiBjb3NQaGksXG4gICAgLWNvcyhsYW1iZGEpICogY29zUGhpLFxuICAgIHNpbihwaGkpXG4gICkgKiBEO1xufVxuYDtcblxuLyoqXG4gKiBSZXdyaXRlcyBhIGdyaWQvaGV4YWdvbiBjZWxsIHZlcnRleCBzaGFkZXIgc28gdGhhdCwgaW4gZ2xvYmUgbW9kZSwgdGhlIGZpbmFsXG4gKiBjbGlwLXNwYWNlIHBvc2l0aW9uIGlzIGRlcml2ZWQgZnJvbSB0aGUgc3BoZXJlIHN1cmZhY2UgaW5zdGVhZCBvZiB0aGUgZmxhdCBYWVxuICogcGxhbmUuIEluIDJELzNEIG1vZGUgdGhlIG9yaWdpbmFsIHBhdGggaXMga2VwdCB1bmNoYW5nZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhZGRHbG9iZUNlbGxQcm9qZWN0aW9uKHZzOiBzdHJpbmcsIHR5cGU6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IGRlY2wgPSBgJHtHTE9CRV9DRUxMX0RFQ0x9XFxudm9pZCBtYWluKHZvaWQpIHtgO1xuICBjb25zdCB3aXRoRGVjbCA9IHZzLmluY2x1ZGVzKCd2b2lkIG1haW4odm9pZCkgeycpID8gdnMucmVwbGFjZSgndm9pZCBtYWluKHZvaWQpIHsnLCBkZWNsKSA6IHZzO1xuXG4gIGNvbnN0IHRhcmdldCA9ICdnbF9Qb3NpdGlvbiA9IHByb2plY3RfY29tbW9uX3Bvc2l0aW9uX3RvX2NsaXBzcGFjZShnZW9tZXRyeS5wb3NpdGlvbik7JztcbiAgaWYgKCF3aXRoRGVjbC5pbmNsdWRlcyh0YXJnZXQpKSB7XG4gICAgLy8gU2hhZGVyIHNoYXBlIGNoYW5nZWQgaW4gYSBkZWNrLmdsIHVwZGF0ZTsgbGVhdmUgdGhlIG9yaWdpbmFsIHNvIHdlIGRvbid0IGNyYXNoLlxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgY29uc29sZS5lcnJvcihgQ2Fubm90IGVkaXQgJHt0eXBlfSBnbG9iZSBjZWxsIHNoYWRlcmApO1xuICAgIHJldHVybiB3aXRoRGVjbDtcbiAgfVxuXG4gIHJldHVybiB3aXRoRGVjbC5yZXBsYWNlKFxuICAgIHRhcmdldCxcbiAgICBgaWYgKGdsb2JlQ2VsbFByb3BzLmdsb2JlTW9kZSA+IDAuNSkge1xuICAgICAgdmVjMiBsbmdMYXQgPSBrZXBsZXJfY29tbW9uVG9MbmdMYXQoZ2VvbWV0cnkucG9zaXRpb24ueHkgKyBwcm9qZWN0LmNvbW1vbk9yaWdpbi54eSk7XG4gICAgICB2ZWMzIGdsb2JlUG9zID0ga2VwbGVyX2xuZ0xhdFRvR2xvYmUobG5nTGF0LCBnZW9tZXRyeS5wb3NpdGlvbi56KTtcbiAgICAgIGdlb21ldHJ5LnBvc2l0aW9uID0gdmVjNChnbG9iZVBvcywgMS4wKTtcbiAgICB9XG4gICAgZ2xfUG9zaXRpb24gPSBwcm9qZWN0X2NvbW1vbl9wb3NpdGlvbl90b19jbGlwc3BhY2UoZ2VvbWV0cnkucG9zaXRpb24pO2BcbiAgKTtcbn1cblxuLyoqXG4gKiBkZWNrLmdsIDkncyBHcmlkL0hleGFnb24gYWdncmVnYXRpb24gY29tcHV0ZSBiaW4gcG9zaXRpb25zIGFuZCB0aGUgY2VsbCBsYXllcidzXG4gKiBcImNvbW1vbiBzcGFjZVwiIGZyb20gYHRoaXMuY29udGV4dC52aWV3cG9ydGAuIFVuZGVyIGBfR2xvYmVWaWV3YCB0aGF0IGNvbW1vbiBzcGFjZVxuICogaXMgdGhlIGdsb2JlJ3MgM0QtcHJvamVjdGVkIHNwYWNlIChwcm9qZWN0RmxhdCBpcyBpZGVudGl0eSBvbiBsbmcvbGF0LCBwb3NpdGlvbnNcbiAqIGJpbiBvZmYgdGhlIHNwaGVyZS1wcm9qZWN0ZWQgWFkpLCB3aGljaCBib3RoIG1pcy1iaW5zIGRhdGEgYW5kIOKAlCBjb21iaW5lZCB3aXRoIHRoZVxuICogZmxhdCBjZWxsIHNoYWRlciDigJQgZHJvcHMgY2VsbHMgb250byB0aGUgcGxhbmUgdGhyb3VnaCB0aGUgZ2xvYmUgY2VudGVyLlxuICpcbiAqIFdlIHNpZGVzdGVwIHRoaXMgYnkgcnVubmluZyBgX3VwZGF0ZUJpbk9wdGlvbnNgIHdpdGggYSBXZWJNZXJjYXRvclZpZXdwb3J0IHRoYXRcbiAqIG1hdGNoZXMgdGhlIGN1cnJlbnQgZ2xvYmUgY2FtZXJhLiBUaGF0IG1ha2VzIGJpbm5pbmcsIGBjZWxsT3JpZ2luQ29tbW9uYCAvXG4gKiBgY2VsbFNpemVDb21tb25gIChvciBgcmFkaXVzQ29tbW9uYCAvIGBoZXhPcmlnaW5Db21tb25gKSBhbmQgdGhlIGNlbGwgc2hhZGVyJ3NcbiAqIGZsYXQgcG9zaXRpb24gYWxsIGxpdmUgaW4gZ2VudWluZSBXZWIgTWVyY2F0b3IgY29tbW9uIHNwYWNlLCB3aGljaCB0aGUgY2VsbCBzaGFkZXJcbiAqIHJlbWFwIChgYWRkR2xvYmVDZWxsUHJvamVjdGlvbmApIHRoZW4gY3VydmVzIGJhY2sgb250byB0aGUgc3BoZXJlLiBJbiAyRC8zRCBtb2RlXG4gKiB0aGlzIGlzIGEgbm8tb3AuXG4gKlxuICogYGNhbGxTdXBlcmAgcnVucyBkZWNrLmdsJ3Mgb3JpZ2luYWwgYF91cGRhdGVCaW5PcHRpb25zYCB3aGlsZSB0aGUgdmlld3BvcnQgaXNcbiAqIHRlbXBvcmFyaWx5IHN3YXBwZWQuIFRoZSBzd2FwIGlzIHN5bmNocm9ub3VzIGFuZCByZXN0b3JlZCBpbiBgZmluYWxseWAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBydW5CaW5PcHRpb25zV2l0aE1lcmNhdG9yVmlld3BvcnQobGF5ZXI6IGFueSwgY2FsbFN1cGVyOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gIGNvbnN0IHZpZXdwb3J0ID0gbGF5ZXIuY29udGV4dD8udmlld3BvcnQ7XG4gIGNvbnN0IGlzR2xvYmUgPSBCb29sZWFuKHZpZXdwb3J0Py5yZXNvbHV0aW9uKTtcbiAgaWYgKCFpc0dsb2JlKSB7XG4gICAgY2FsbFN1cGVyKCk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgbWVyY2F0b3JWaWV3cG9ydCA9IG5ldyBXZWJNZXJjYXRvclZpZXdwb3J0KHtcbiAgICB3aWR0aDogdmlld3BvcnQud2lkdGgsXG4gICAgaGVpZ2h0OiB2aWV3cG9ydC5oZWlnaHQsXG4gICAgbG9uZ2l0dWRlOiB2aWV3cG9ydC5sb25naXR1ZGUsXG4gICAgbGF0aXR1ZGU6IHZpZXdwb3J0LmxhdGl0dWRlLFxuICAgIHpvb206IHZpZXdwb3J0Lnpvb21cbiAgfSk7XG5cbiAgY29uc3Qgb3JpZ2luYWxWaWV3cG9ydCA9IGxheWVyLmNvbnRleHQudmlld3BvcnQ7XG4gIGxheWVyLmNvbnRleHQudmlld3BvcnQgPSBtZXJjYXRvclZpZXdwb3J0O1xuICB0cnkge1xuICAgIGNhbGxTdXBlcigpO1xuICB9IGZpbmFsbHkge1xuICAgIGxheWVyLmNvbnRleHQudmlld3BvcnQgPSBvcmlnaW5hbFZpZXdwb3J0O1xuICB9XG59XG5cbi8qKlxuICogV3JhcHMgYSBkZWNrLmdsIGFnZ3JlZ2F0aW9uIGNlbGwgbGF5ZXIgY2xhc3MgKEdyaWRDZWxsTGF5ZXIgLyBIZXhhZ29uQ2VsbExheWVyKVxuICogd2l0aCBhIHN1YmNsYXNzIHRoYXQgaW5qZWN0cyB0aGUgZ2xvYmUgc3VyZmFjZSByZW1hcCBpbnRvIGl0cyB2ZXJ0ZXggc2hhZGVyLlxuICpcbiAqIFdlIGNyZWF0ZSB0aGUgc3ViY2xhc3MgZHluYW1pY2FsbHkgZnJvbSB3aGF0ZXZlciBkZWZhdWx0IGNsYXNzIGRlY2suZ2wgcHJvdmlkZXNcbiAqIHRvIGBnZXRTdWJMYXllckNsYXNzYCBzbyB3ZSBkb24ndCBoYXZlIHRvIGltcG9ydCB0aGUgKG5vbi1wdWJsaWMpIGNlbGwgbGF5ZXJcbiAqIGNsYXNzZXMgZGlyZWN0bHkuIFJlc3VsdHMgYXJlIGNhY2hlZCBwZXIgYmFzZSBjbGFzcyBzbyBkZWNrLmdsIHNlZXMgYSBzdGFibGVcbiAqIGxheWVyIGNsYXNzIGFjcm9zcyByZW5kZXJzIChsYXllcnMgYXJlIHJlY3JlYXRlZCBldmVyeSBmcmFtZSkgYW5kIHNoYWRlclxuICogY29tcGlsYXRpb24gLyBzdWJsYXllciBkaWZmaW5nIHN0YXlzIHN0YWJsZS5cbiAqL1xuY29uc3QgZ2xvYmVDZWxsQ2xhc3NDYWNoZSA9IG5ldyBXZWFrTWFwPG9iamVjdCwgb2JqZWN0PigpO1xuXG50eXBlIExheWVyQ29uc3RydWN0b3IgPSB7bmV3ICguLi5hcmdzOiBhbnlbXSk6IGFueTsgbGF5ZXJOYW1lPzogc3RyaW5nfTtcblxuZXhwb3J0IGZ1bmN0aW9uIG1ha2VHbG9iZUNlbGxMYXllckNsYXNzPFQgZXh0ZW5kcyBMYXllckNvbnN0cnVjdG9yPihcbiAgQmFzZUNlbGxMYXllcjogVCxcbiAgdHlwZTogc3RyaW5nXG4pOiBUIHtcbiAgY29uc3QgY2FjaGVkID0gZ2xvYmVDZWxsQ2xhc3NDYWNoZS5nZXQoQmFzZUNlbGxMYXllcik7XG4gIGlmIChjYWNoZWQpIHtcbiAgICByZXR1cm4gY2FjaGVkIGFzIFQ7XG4gIH1cblxuICBjbGFzcyBHbG9iZUNlbGxMYXllciBleHRlbmRzIChCYXNlQ2VsbExheWVyIGFzIHtuZXcgKC4uLmFyZ3M6IGFueVtdKTogYW55fSkge1xuICAgIGdldFNoYWRlcnMoKSB7XG4gICAgICBjb25zdCBzaGFkZXJzID0gKHN1cGVyLmdldFNoYWRlcnMgYXMgKCkgPT4gYW55KSgpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc2hhZGVycyxcbiAgICAgICAgdnM6IGFkZEdsb2JlQ2VsbFByb2plY3Rpb24oc2hhZGVycy52cywgdHlwZSksXG4gICAgICAgIG1vZHVsZXM6IFsuLi4oc2hhZGVycy5tb2R1bGVzIHx8IFtdKSwgZ2xvYmVDZWxsVW5pZm9ybXNdXG4gICAgICB9O1xuICAgIH1cblxuICAgIGRyYXcob3B0czogYW55KSB7XG4gICAgICBjb25zdCBnbG9iZU1vZGUgPSAodGhpcy5jb250ZXh0LnZpZXdwb3J0IGFzIGFueSkucmVzb2x1dGlvbiA/IDEuMCA6IDAuMDtcbiAgICAgIC8vIEdyaWRDZWxsTGF5ZXIgLyBIZXhhZ29uQ2VsbExheWVyIHJlbmRlciB0aHJvdWdoIGEgc2luZ2xlIGZpbGxNb2RlbCBhbmQgc2V0XG4gICAgICAvLyB0aGVpciBvd24gbW9kdWxlIHByb3BzIGluIGRyYXcoKTsgc2V0IG91cnMgZmlyc3Qgc28gaXQgbWVyZ2VzIChzZXRQcm9wcyBpc1xuICAgICAgLy8gcGVyLW1vZHVsZSkuIGRlY2suZ2wgOSBoYXMgbm8gTW9kZWwuc2V0VW5pZm9ybXMg4oCUIHVuaWZvcm1zIGdvIHRocm91Z2hcbiAgICAgIC8vIHNoYWRlcklucHV0cyBVQk8gbW9kdWxlcy5cbiAgICAgIGNvbnN0IG1vZGVsID0gKHRoaXMuc3RhdGUgYXMgYW55KS5maWxsTW9kZWw7XG4gICAgICBpZiAobW9kZWw/LnNoYWRlcklucHV0cykge1xuICAgICAgICBtb2RlbC5zaGFkZXJJbnB1dHMuc2V0UHJvcHMoe2dsb2JlQ2VsbDoge2dsb2JlTW9kZX19KTtcbiAgICAgIH1cbiAgICAgIChzdXBlci5kcmF3IGFzIChvOiBhbnkpID0+IHZvaWQpKG9wdHMpO1xuICAgIH1cbiAgfVxuICAoR2xvYmVDZWxsTGF5ZXIgYXMgdW5rbm93biBhcyB7bGF5ZXJOYW1lOiBzdHJpbmd9KS5sYXllck5hbWUgPSBgR2xvYmUke3R5cGV9Q2VsbExheWVyYDtcbiAgZ2xvYmVDZWxsQ2xhc3NDYWNoZS5zZXQoQmFzZUNlbGxMYXllciwgR2xvYmVDZWxsTGF5ZXIpO1xuICByZXR1cm4gR2xvYmVDZWxsTGF5ZXIgYXMgdW5rbm93biBhcyBUO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUdBLElBQUFBLEtBQUEsR0FBQUMs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
|
|
@@ -17,7 +17,7 @@ var _layers = require("@deck.gl/layers");
|
|
|
17
17
|
var _ = require("../");
|
|
18
18
|
function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
|
|
19
19
|
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
20
|
-
function _superPropGet(t, e, r
|
|
20
|
+
function _superPropGet(t, o, e, r) { var p = (0, _get2["default"])((0, _getPrototypeOf2["default"])(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; }
|
|
21
21
|
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; }
|
|
22
22
|
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
|
|
23
23
|
// Copyright contributors to the kepler.gl project
|
|
@@ -92,4 +92,4 @@ var EnhancedLineLayer = exports["default"] = /*#__PURE__*/function (_LineLayer)
|
|
|
92
92
|
}(_layers.LineLayer);
|
|
93
93
|
EnhancedLineLayer.layerName = 'EnhancedLineLayer';
|
|
94
94
|
EnhancedLineLayer.defaultProps = defaultProps;
|
|
95
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbGF5ZXJzIiwicmVxdWlyZSIsIl8iLCJfY2FsbFN1cGVyIiwidCIsIm8iLCJlIiwiX2dldFByb3RvdHlwZU9mMiIsIl9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuMiIsIl9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QiLCJSZWZsZWN0IiwiY29uc3RydWN0IiwiY29uc3RydWN0b3IiLCJhcHBseSIsIkJvb2xlYW4iLCJwcm90b3R5cGUiLCJ2YWx1ZU9mIiwiY2FsbCIsIl9zdXBlclByb3BHZXQiLCJyIiwicCIsIl9nZXQyIiwib3duS2V5cyIsIk9iamVjdCIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJlbGV2YXRpb25TY2FsZVVuaWZvcm1zIiwibmFtZSIsInZzIiwidW5pZm9ybVR5cGVzIiwiZWxldmF0aW9uU2NhbGUiLCJkZWZhdWx0UHJvcHMiLCJMaW5lTGF5ZXIiLCJnZXRUYXJnZXRDb2xvciIsIngiLCJjb2xvciIsImFkZEluc3RhbmNlQ29sb3JTaGFkZXIiLCJ0YXJnZXRDb2xvclZzIiwiZWRpdFNoYWRlciIsImFkZEVsZXZhdGlvblNjYWxlIiwiRW5oYW5jZWRMaW5lTGF5ZXIiLCJleHBvcnRzIiwiX0xpbmVMYXllciIsIl9jbGFzc0NhbGxDaGVjazIiLCJfaW5oZXJpdHMyIiwiX2NyZWF0ZUNsYXNzMiIsImtleSIsInZhbHVlIiwiZ2V0U2hhZGVycyIsInNoYWRlcnMiLCJtb2R1bGVzIiwiY29uY2F0IiwiX3RvQ29uc3VtYWJsZUFycmF5MiIsImRyYXciLCJvcHRzIiwibW9kZWwiLCJzdGF0ZSIsIl90aGlzJHByb3BzJGVsZXZhdGlvbiIsInNoYWRlcklucHV0cyIsInNldFByb3BzIiwicHJvcHMiLCJpbml0aWFsaXplU3RhdGUiLCJfdGhpcyRwcm9wcyRjb2xvckZvcm0iLCJfcmVmIiwiYXR0cmlidXRlTWFuYWdlciIsImFkZEluc3RhbmNlZCIsImluc3RhbmNlVGFyZ2V0Q29sb3JzIiwic2l6ZSIsImNvbG9yRm9ybWF0IiwidHlwZSIsInRyYW5zaXRpb24iLCJhY2Nlc3NvciIsImRlZmF1bHRWYWx1ZSIsImxheWVyTmFtZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saW5lLWxheWVyL2xpbmUtbGF5ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IHtMaW5lTGF5ZXIsIExpbmVMYXllclByb3BzfSBmcm9tICdAZGVjay5nbC9sYXllcnMnO1xuaW1wb3J0IHR5cGUge0NvbG9yLCBBdHRyaWJ1dGVNYW5hZ2VyfSBmcm9tICdAZGVjay5nbC9jb3JlJztcbmltcG9ydCB7ZWRpdFNoYWRlcn0gZnJvbSAnLi4vJztcblxudHlwZSBSR0JBQ29sb3IgPSBDb2xvcjtcblxuY29uc3QgZWxldmF0aW9uU2NhbGVVbmlmb3JtcyA9IHtcbiAgbmFtZTogJ2VsZXZhdGlvblNjYWxlJyxcbiAgdnM6IGB1bmlmb3JtIGVsZXZhdGlvblNjYWxlVW5pZm9ybXMge1xuICBmbG9hdCBlbGV2YXRpb25TY2FsZTtcbn0gZWxldmF0aW9uU2NhbGVQcm9wcztcbmAsXG4gIHVuaWZvcm1UeXBlczoge1xuICAgIGVsZXZhdGlvblNjYWxlOiAnZjMyJ1xuICB9XG59O1xuXG5jb25zdCBkZWZhdWx0UHJvcHMgPSB7XG4gIC4uLkxpbmVMYXllci5kZWZhdWx0UHJvcHMsXG4gIGdldFRhcmdldENvbG9yOiB4ID0+IHguY29sb3IgfHwgWzAsIDAsIDAsIDI1NV1cbn07XG5cbmZ1bmN0aW9uIGFkZEluc3RhbmNlQ29sb3JTaGFkZXIodnMpIHtcbiAgY29uc3QgdGFyZ2V0Q29sb3JWcyA9IGVkaXRTaGFkZXIoXG4gICAgdnMsXG4gICAgJ2xpbmUgdGFyZ2V0IGNvbG9yIHZzJyxcbiAgICAnaW4gdmVjNCBpbnN0YW5jZUNvbG9yczsnLFxuICAgICdpbiB2ZWM0IGluc3RhbmNlQ29sb3JzOyBpbiB2ZWM0IGluc3RhbmNlVGFyZ2V0Q29sb3JzOydcbiAgKTtcblxuICByZXR1cm4gZWRpdFNoYWRlcihcbiAgICB0YXJnZXRDb2xvclZzLFxuICAgICdsaW5lIGNvbG9yIHZzJyxcbiAgICAndkNvbG9yID0gdmVjNChpbnN0YW5jZUNvbG9ycy5yZ2IsIGluc3RhbmNlQ29sb3JzLmEgKiBsYXllci5vcGFjaXR5KTsnLFxuICAgIGB2ZWM0IGNvbG9yID0gbWl4KGluc3RhbmNlQ29sb3JzLCBpbnN0YW5jZVRhcmdldENvbG9ycywgcG9zaXRpb25zLngpO2AgK1xuICAgICAgYHZDb2xvciA9IHZlYzQoY29sb3IucmdiLCBjb2xvci5hICogbGF5ZXIub3BhY2l0eSk7YFxuICApO1xufVxuXG5mdW5jdGlvbiBhZGRFbGV2YXRpb25TY2FsZSh2cykge1xuICByZXR1cm4gZWRpdFNoYWRlcihcbiAgICB2cyxcbiAgICAnbGluZSBlbGV2YXRpb24gc2NhbGUgdnMgLSBtdWx0aXBseSBieSBlbGV2YXRpb24gc2NhbGUnLFxuICAgIGBnZW9tZXRyeS53b3JsZFBvc2l0aW9uID0gaW5zdGFuY2VTb3VyY2VQb3NpdGlvbnM7XG5nZW9tZXRyeS53b3JsZFBvc2l0aW9uQWx0ID0gaW5zdGFuY2VUYXJnZXRQb3NpdGlvbnM7XG52ZWMzIHNvdXJjZV93b3JsZCA9IGluc3RhbmNlU291cmNlUG9zaXRpb25zO1xudmVjMyB0YXJnZXRfd29ybGQgPSBpbnN0YW5jZVRhcmdldFBvc2l0aW9ucztgLFxuICAgIGB2ZWMzIHNvdXJjZV93b3JsZCA9IGluc3RhbmNlU291cmNlUG9zaXRpb25zO1xudmVjMyB0YXJnZXRfd29ybGQgPSBpbnN0YW5jZVRhcmdldFBvc2l0aW9ucztcbnNvdXJjZV93b3JsZC56ICo9IGVsZXZhdGlvblNjYWxlUHJvcHMuZWxldmF0aW9uU2NhbGU7XG50YXJnZXRfd29ybGQueiAqPSBlbGV2YXRpb25TY2FsZVByb3BzLmVsZXZhdGlvblNjYWxlO1xuZ2VvbWV0cnkud29ybGRQb3NpdGlvbiA9IHNvdXJjZV93b3JsZDtcbmdlb21ldHJ5LndvcmxkUG9zaXRpb25BbHQgPSB0YXJnZXRfd29ybGQ7YFxuICApO1xufVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBFbmhhbmNlZExpbmVMYXllciBleHRlbmRzIExpbmVMYXllcjxcbiAgYW55LFxuICBMaW5lTGF5ZXJQcm9wczxhbnk+ICYge2VsZXZhdGlvblNjYWxlOiBudW1iZXI7IGdldFRhcmdldENvbG9yOiBSR0JBQ29sb3J9XG4+IHtcbiAgZ2V0U2hhZGVycygpIHtcbiAgICBjb25zdCBzaGFkZXJzID0gc3VwZXIuZ2V0U2hhZGVycygpO1xuXG4gICAgbGV0IHZzID0gYWRkSW5zdGFuY2VDb2xvclNoYWRlcihzaGFkZXJzLnZzKTtcbiAgICB2cyA9IGFkZEVsZXZhdGlvblNjYWxlKHZzKTtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi5zaGFkZXJzLFxuICAgICAgdnMsXG4gICAgICBtb2R1bGVzOiBbLi4uKHNoYWRlcnMubW9kdWxlcyB8fCBbXSksIGVsZXZhdGlvblNjYWxlVW5pZm9ybXNdXG4gICAgfTtcbiAgfVxuXG4gIGRyYXcob3B0cykge1xuICAgIGNvbnN0IG1vZGVsID0gdGhpcy5zdGF0ZS5tb2RlbDtcbiAgICBpZiAobW9kZWwpIHtcbiAgICAgIG1vZGVsLnNoYWRlcklucHV0cy5zZXRQcm9wcyh7XG4gICAgICAgIGVsZXZhdGlvblNjYWxlOiB7XG4gICAgICAgICAgZWxldmF0aW9uU2NhbGU6IHRoaXMucHJvcHMuZWxldmF0aW9uU2NhbGUgPz8gMVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gICAgc3VwZXIuZHJhdyhvcHRzKTtcbiAgfVxuXG4gIGluaXRpYWxpemVTdGF0ZSgpIHtcbiAgICBzdXBlci5pbml0aWFsaXplU3RhdGUoKTtcbiAgICBjb25zdCB7YXR0cmlidXRlTWFuYWdlcn0gPSB0aGlzLnN0YXRlIGFzIHthdHRyaWJ1dGVNYW5hZ2VyOiBBdHRyaWJ1dGVNYW5hZ2VyfTtcbiAgICBhdHRyaWJ1dGVNYW5hZ2VyLmFkZEluc3RhbmNlZCh7XG4gICAgICBpbnN0YW5jZVRhcmdldENvbG9yczoge1xuICAgICAgICBzaXplOiB0aGlzLnByb3BzLmNvbG9yRm9ybWF0Py5sZW5ndGgsXG4gICAgICAgIHR5cGU6ICd1bm9ybTgnLFxuICAgICAgICB0cmFuc2l0aW9uOiB0cnVlLFxuICAgICAgICBhY2Nlc3NvcjogJ2dldFRhcmdldENvbG9yJyxcbiAgICAgICAgZGVmYXVsdFZhbHVlOiBbMCwgMCwgMCwgMjU1XVxuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG5cbkVuaGFuY2VkTGluZUxheWVyLmxheWVyTmFtZSA9ICdFbmhhbmNlZExpbmVMYXllcic7XG5FbmhhbmNlZExpbmVMYXllci5kZWZhdWx0UHJvcHMgPSBkZWZhdWx0UHJvcHM7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUdBLElBQUFBLE9BQUEsR0FBQUMsT0FBQTtBQUVBLElBQUFDLENBQUEsR0FBQUQsT0FBQTtBQUErQixTQUFBRSxXQUFBQyxDQUFBLEVBQUFDLENBQUEsRUFBQUMsQ0FBQSxXQUFBRCxDQUFBLE9BQUFFLGdCQUFBLGFBQUFGLENBQUEsT0FBQUcsMkJBQUEsYUFBQUosQ0FBQSxFQUFBSyx5QkFBQSxLQUFBQyxPQUFBLENBQUFDLFNBQUEsQ0FBQU4sQ0FBQSxFQUFBQyxDQUFBLFlBQUFDLGdCQUFBLGFBQUFILENBQUEsRUFBQVEsV0FBQSxJQUFBUCxDQUFBLENBQUFRLEtBQUEsQ0FBQVQsQ0FBQSxFQUFBRSxDQUFBO0FBQUEsU0FBQUcsMEJBQUEsY0FBQUwsQ0FBQSxJQUFBVSxPQUFBLENBQUFDLFNBQUEsQ0FBQUMsT0FB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
|
|
95
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbGF5ZXJzIiwicmVxdWlyZSIsIl8iLCJfY2FsbFN1cGVyIiwidCIsIm8iLCJlIiwiX2dldFByb3RvdHlwZU9mMiIsIl9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuMiIsIl9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QiLCJSZWZsZWN0IiwiY29uc3RydWN0IiwiY29uc3RydWN0b3IiLCJhcHBseSIsIkJvb2xlYW4iLCJwcm90b3R5cGUiLCJ2YWx1ZU9mIiwiY2FsbCIsIl9zdXBlclByb3BHZXQiLCJyIiwicCIsIl9nZXQyIiwib3duS2V5cyIsIk9iamVjdCIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJlbGV2YXRpb25TY2FsZVVuaWZvcm1zIiwibmFtZSIsInZzIiwidW5pZm9ybVR5cGVzIiwiZWxldmF0aW9uU2NhbGUiLCJkZWZhdWx0UHJvcHMiLCJMaW5lTGF5ZXIiLCJnZXRUYXJnZXRDb2xvciIsIngiLCJjb2xvciIsImFkZEluc3RhbmNlQ29sb3JTaGFkZXIiLCJ0YXJnZXRDb2xvclZzIiwiZWRpdFNoYWRlciIsImFkZEVsZXZhdGlvblNjYWxlIiwiRW5oYW5jZWRMaW5lTGF5ZXIiLCJleHBvcnRzIiwiX0xpbmVMYXllciIsIl9jbGFzc0NhbGxDaGVjazIiLCJfaW5oZXJpdHMyIiwiX2NyZWF0ZUNsYXNzMiIsImtleSIsInZhbHVlIiwiZ2V0U2hhZGVycyIsInNoYWRlcnMiLCJtb2R1bGVzIiwiY29uY2F0IiwiX3RvQ29uc3VtYWJsZUFycmF5MiIsImRyYXciLCJvcHRzIiwibW9kZWwiLCJzdGF0ZSIsIl90aGlzJHByb3BzJGVsZXZhdGlvbiIsInNoYWRlcklucHV0cyIsInNldFByb3BzIiwicHJvcHMiLCJpbml0aWFsaXplU3RhdGUiLCJfdGhpcyRwcm9wcyRjb2xvckZvcm0iLCJfcmVmIiwiYXR0cmlidXRlTWFuYWdlciIsImFkZEluc3RhbmNlZCIsImluc3RhbmNlVGFyZ2V0Q29sb3JzIiwic2l6ZSIsImNvbG9yRm9ybWF0IiwidHlwZSIsInRyYW5zaXRpb24iLCJhY2Nlc3NvciIsImRlZmF1bHRWYWx1ZSIsImxheWVyTmFtZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saW5lLWxheWVyL2xpbmUtbGF5ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IHtMaW5lTGF5ZXIsIExpbmVMYXllclByb3BzfSBmcm9tICdAZGVjay5nbC9sYXllcnMnO1xuaW1wb3J0IHR5cGUge0NvbG9yLCBBdHRyaWJ1dGVNYW5hZ2VyfSBmcm9tICdAZGVjay5nbC9jb3JlJztcbmltcG9ydCB7ZWRpdFNoYWRlcn0gZnJvbSAnLi4vJztcblxudHlwZSBSR0JBQ29sb3IgPSBDb2xvcjtcblxuY29uc3QgZWxldmF0aW9uU2NhbGVVbmlmb3JtcyA9IHtcbiAgbmFtZTogJ2VsZXZhdGlvblNjYWxlJyxcbiAgdnM6IGB1bmlmb3JtIGVsZXZhdGlvblNjYWxlVW5pZm9ybXMge1xuICBmbG9hdCBlbGV2YXRpb25TY2FsZTtcbn0gZWxldmF0aW9uU2NhbGVQcm9wcztcbmAsXG4gIHVuaWZvcm1UeXBlczoge1xuICAgIGVsZXZhdGlvblNjYWxlOiAnZjMyJ1xuICB9XG59O1xuXG5jb25zdCBkZWZhdWx0UHJvcHMgPSB7XG4gIC4uLkxpbmVMYXllci5kZWZhdWx0UHJvcHMsXG4gIGdldFRhcmdldENvbG9yOiB4ID0+IHguY29sb3IgfHwgWzAsIDAsIDAsIDI1NV1cbn07XG5cbmZ1bmN0aW9uIGFkZEluc3RhbmNlQ29sb3JTaGFkZXIodnMpIHtcbiAgY29uc3QgdGFyZ2V0Q29sb3JWcyA9IGVkaXRTaGFkZXIoXG4gICAgdnMsXG4gICAgJ2xpbmUgdGFyZ2V0IGNvbG9yIHZzJyxcbiAgICAnaW4gdmVjNCBpbnN0YW5jZUNvbG9yczsnLFxuICAgICdpbiB2ZWM0IGluc3RhbmNlQ29sb3JzOyBpbiB2ZWM0IGluc3RhbmNlVGFyZ2V0Q29sb3JzOydcbiAgKTtcblxuICByZXR1cm4gZWRpdFNoYWRlcihcbiAgICB0YXJnZXRDb2xvclZzLFxuICAgICdsaW5lIGNvbG9yIHZzJyxcbiAgICAndkNvbG9yID0gdmVjNChpbnN0YW5jZUNvbG9ycy5yZ2IsIGluc3RhbmNlQ29sb3JzLmEgKiBsYXllci5vcGFjaXR5KTsnLFxuICAgIGB2ZWM0IGNvbG9yID0gbWl4KGluc3RhbmNlQ29sb3JzLCBpbnN0YW5jZVRhcmdldENvbG9ycywgcG9zaXRpb25zLngpO2AgK1xuICAgICAgYHZDb2xvciA9IHZlYzQoY29sb3IucmdiLCBjb2xvci5hICogbGF5ZXIub3BhY2l0eSk7YFxuICApO1xufVxuXG5mdW5jdGlvbiBhZGRFbGV2YXRpb25TY2FsZSh2cykge1xuICByZXR1cm4gZWRpdFNoYWRlcihcbiAgICB2cyxcbiAgICAnbGluZSBlbGV2YXRpb24gc2NhbGUgdnMgLSBtdWx0aXBseSBieSBlbGV2YXRpb24gc2NhbGUnLFxuICAgIGBnZW9tZXRyeS53b3JsZFBvc2l0aW9uID0gaW5zdGFuY2VTb3VyY2VQb3NpdGlvbnM7XG5nZW9tZXRyeS53b3JsZFBvc2l0aW9uQWx0ID0gaW5zdGFuY2VUYXJnZXRQb3NpdGlvbnM7XG52ZWMzIHNvdXJjZV93b3JsZCA9IGluc3RhbmNlU291cmNlUG9zaXRpb25zO1xudmVjMyB0YXJnZXRfd29ybGQgPSBpbnN0YW5jZVRhcmdldFBvc2l0aW9ucztgLFxuICAgIGB2ZWMzIHNvdXJjZV93b3JsZCA9IGluc3RhbmNlU291cmNlUG9zaXRpb25zO1xudmVjMyB0YXJnZXRfd29ybGQgPSBpbnN0YW5jZVRhcmdldFBvc2l0aW9ucztcbnNvdXJjZV93b3JsZC56ICo9IGVsZXZhdGlvblNjYWxlUHJvcHMuZWxldmF0aW9uU2NhbGU7XG50YXJnZXRfd29ybGQueiAqPSBlbGV2YXRpb25TY2FsZVByb3BzLmVsZXZhdGlvblNjYWxlO1xuZ2VvbWV0cnkud29ybGRQb3NpdGlvbiA9IHNvdXJjZV93b3JsZDtcbmdlb21ldHJ5LndvcmxkUG9zaXRpb25BbHQgPSB0YXJnZXRfd29ybGQ7YFxuICApO1xufVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBFbmhhbmNlZExpbmVMYXllciBleHRlbmRzIExpbmVMYXllcjxcbiAgYW55LFxuICBMaW5lTGF5ZXJQcm9wczxhbnk+ICYge2VsZXZhdGlvblNjYWxlOiBudW1iZXI7IGdldFRhcmdldENvbG9yOiBSR0JBQ29sb3J9XG4+IHtcbiAgZ2V0U2hhZGVycygpIHtcbiAgICBjb25zdCBzaGFkZXJzID0gc3VwZXIuZ2V0U2hhZGVycygpO1xuXG4gICAgbGV0IHZzID0gYWRkSW5zdGFuY2VDb2xvclNoYWRlcihzaGFkZXJzLnZzKTtcbiAgICB2cyA9IGFkZEVsZXZhdGlvblNjYWxlKHZzKTtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi5zaGFkZXJzLFxuICAgICAgdnMsXG4gICAgICBtb2R1bGVzOiBbLi4uKHNoYWRlcnMubW9kdWxlcyB8fCBbXSksIGVsZXZhdGlvblNjYWxlVW5pZm9ybXNdXG4gICAgfTtcbiAgfVxuXG4gIGRyYXcob3B0cykge1xuICAgIGNvbnN0IG1vZGVsID0gdGhpcy5zdGF0ZS5tb2RlbDtcbiAgICBpZiAobW9kZWwpIHtcbiAgICAgIG1vZGVsLnNoYWRlcklucHV0cy5zZXRQcm9wcyh7XG4gICAgICAgIGVsZXZhdGlvblNjYWxlOiB7XG4gICAgICAgICAgZWxldmF0aW9uU2NhbGU6IHRoaXMucHJvcHMuZWxldmF0aW9uU2NhbGUgPz8gMVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gICAgc3VwZXIuZHJhdyhvcHRzKTtcbiAgfVxuXG4gIGluaXRpYWxpemVTdGF0ZSgpIHtcbiAgICBzdXBlci5pbml0aWFsaXplU3RhdGUoKTtcbiAgICBjb25zdCB7YXR0cmlidXRlTWFuYWdlcn0gPSB0aGlzLnN0YXRlIGFzIHthdHRyaWJ1dGVNYW5hZ2VyOiBBdHRyaWJ1dGVNYW5hZ2VyfTtcbiAgICBhdHRyaWJ1dGVNYW5hZ2VyLmFkZEluc3RhbmNlZCh7XG4gICAgICBpbnN0YW5jZVRhcmdldENvbG9yczoge1xuICAgICAgICBzaXplOiB0aGlzLnByb3BzLmNvbG9yRm9ybWF0Py5sZW5ndGgsXG4gICAgICAgIHR5cGU6ICd1bm9ybTgnLFxuICAgICAgICB0cmFuc2l0aW9uOiB0cnVlLFxuICAgICAgICBhY2Nlc3NvcjogJ2dldFRhcmdldENvbG9yJyxcbiAgICAgICAgZGVmYXVsdFZhbHVlOiBbMCwgMCwgMCwgMjU1XVxuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG5cbkVuaGFuY2VkTGluZUxheWVyLmxheWVyTmFtZSA9ICdFbmhhbmNlZExpbmVMYXllcic7XG5FbmhhbmNlZExpbmVMYXllci5kZWZhdWx0UHJvcHMgPSBkZWZhdWx0UHJvcHM7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUdBLElBQUFBLE9BQUEsR0FBQUMsT0FBQTtBQUVBLElBQUFDLENBQUEsR0FBQUQsT0FBQTtBQUErQixTQUFBRSxXQUFBQyxDQUFBLEVBQUFDLENBQUEsRUFBQUMsQ0FBQSxXQUFBRCxDQUFBLE9BQUFFLGdCQUFBLGFBQUFGLENBQUEsT0FBQUcsMkJBQUEsYUFBQUosQ0FBQSxFQUFBSyx5QkFBQSxLQUFBQyxPQUFBLENBQUFDLFNBQUEsQ0FBQU4sQ0FBQSxFQUFBQyxDQUFBLFlBQUFDLGdCQUFBLGFBQUFILENBQUEsRUFBQVEsV0FBQSxJQUFBUCxDQUFBLENBQUFRLEtBQUEsQ0FBQVQsQ0FBQSxFQUFBRSxDQUFBO0FBQUEsU0FBQUcsMEJBQUEsY0FBQUwsQ0FBQSxJQUFBVSxPQUFBLENBQUFDLFNBQUEsQ0FBQUMsT0FB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
|
package/dist/raster/images.d.ts
CHANGED
|
@@ -12,5 +12,14 @@ type LoadImagesOptions = {
|
|
|
12
12
|
imagesData: ImageInput;
|
|
13
13
|
oldImagesData: ImageInput;
|
|
14
14
|
};
|
|
15
|
-
|
|
15
|
+
/**
|
|
16
|
+
* Load image items to webgl context
|
|
17
|
+
*/
|
|
18
|
+
type LoadImagesResult = {
|
|
19
|
+
/** Updated images state, or null if nothing changed */
|
|
20
|
+
images: ImageState | null;
|
|
21
|
+
/** True when at least one texture upload failed and should be retried */
|
|
22
|
+
hasPendingUploads: boolean;
|
|
23
|
+
};
|
|
24
|
+
export declare function loadImages({ gl, device, images, imagesData, oldImagesData }: LoadImagesOptions): LoadImagesResult;
|
|
16
25
|
export {};
|
package/dist/raster/images.js
CHANGED
|
@@ -67,6 +67,10 @@ function loadImageItem(gl, device, imageItem) {
|
|
|
67
67
|
return result;
|
|
68
68
|
}
|
|
69
69
|
|
|
70
|
+
/**
|
|
71
|
+
* Load image items to webgl context
|
|
72
|
+
*/
|
|
73
|
+
|
|
70
74
|
// eslint-disable-next-line complexity
|
|
71
75
|
function loadImages(_ref) {
|
|
72
76
|
var gl = _ref.gl,
|
|
@@ -75,6 +79,7 @@ function loadImages(_ref) {
|
|
|
75
79
|
imagesData = _ref.imagesData,
|
|
76
80
|
oldImagesData = _ref.oldImagesData;
|
|
77
81
|
var imagesDirty = false;
|
|
82
|
+
var hasPendingUploads = false;
|
|
78
83
|
if (oldImagesData) {
|
|
79
84
|
for (var key in oldImagesData) {
|
|
80
85
|
if (imagesData && !(key in imagesData) && key in images) {
|
|
@@ -102,13 +107,20 @@ function loadImages(_ref) {
|
|
|
102
107
|
var loadedItem = loadImageItem(gl, device, imageData);
|
|
103
108
|
if (loadedItem) {
|
|
104
109
|
images[_key2] = loadedItem;
|
|
110
|
+
// Only mark dirty when the texture was actually uploaded.
|
|
111
|
+
imagesDirty = true;
|
|
112
|
+
} else {
|
|
113
|
+
// Upload failed (device not ready or createTexture threw). Signal that
|
|
114
|
+
// the caller should retry next frame — do NOT set imagesDirty so we
|
|
115
|
+
// don't propagate an images object with a missing key that causes
|
|
116
|
+
// draw() to bail permanently.
|
|
117
|
+
hasPendingUploads = true;
|
|
105
118
|
}
|
|
106
|
-
imagesDirty = true;
|
|
107
|
-
}
|
|
108
|
-
if (imagesDirty) {
|
|
109
|
-
return images;
|
|
110
119
|
}
|
|
111
|
-
return
|
|
120
|
+
return {
|
|
121
|
+
images: imagesDirty ? images : null,
|
|
122
|
+
hasPendingUploads: hasPendingUploads
|
|
123
|
+
};
|
|
112
124
|
}
|
|
113
125
|
|
|
114
126
|
/**
|
|
@@ -256,4 +268,4 @@ function loadTexture(gl, device, imageData) {
|
|
|
256
268
|
return null;
|
|
257
269
|
}
|
|
258
270
|
}
|
|
259
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29uc3RhbnRzIiwicmVxdWlyZSIsIl9pc0VxdWFsIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9jb25zdGFudHMyIiwib3duS2V5cyIsImUiLCJyIiwidCIsIk9iamVjdCIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiQXJyYXkiLCJpc0FycmF5IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwiX24iLCJGIiwicyIsIm4iLCJkb25lIiwidmFsdWUiLCJmIiwiVHlwZUVycm9yIiwiYSIsInUiLCJjYWxsIiwibmV4dCIsIl9hcnJheUxpa2VUb0FycmF5IiwidG9TdHJpbmciLCJzbGljZSIsImNvbnN0cnVjdG9yIiwibmFtZSIsImZyb20iLCJ0ZXN0IiwiREVGQVVMVF9TQU1QTEVSX1BBUkFNRVRFUlMiLCJtaW5GaWx0ZXIiLCJGSUxURVJfTU9ERSIsIk5FQVJFU1QiLCJtYWdGaWx0ZXIiLCJhZGRyZXNzTW9kZVUiLCJBRERSRVNTX01PREUiLCJDTEFNUF9UT19FREdFIiwiYWRkcmVzc01vZGVWIiwibG9hZEltYWdlSXRlbSIsImdsIiwiZGV2aWNlIiwiaW1hZ2VJdGVtIiwicmVzdWx0IiwiZGlydHlSZXN1bHQiLCJtYXAiLCJ4IiwibG9hZFRleHR1cmUiLCJfaXRlcmF0b3IiLCJfc3RlcCIsInRleHR1cmUiLCJlcnIiLCJsb2FkSW1hZ2VzIiwiX3JlZiIsImltYWdlcyIsImltYWdlc0RhdGEiLCJvbGRJbWFnZXNEYXRhIiwiaW1hZ2VzRGlydHkiLCJrZXkiLCJjaGFuZ2VkS2V5cyIsImlzRXF1YWwiLCJfaSIsIl9jaGFuZ2VkS2V5cyIsImltYWdlRGF0YSIsImxvYWRlZEl0ZW0iLCJtYXBTYW1wbGVyUGFyYW1ldGVycyIsIm9sZFBhcmFtcyIsIm1hZ0ZpbHRlck1hcCIsIkdMIiwiTElORUFSIiwibWluRmlsdGVyTWFwIiwiTkVBUkVTVF9NSVBNQVBfTkVBUkVTVCIsIm1pcG1hcEZpbHRlciIsIk5FQVJFU1RfTUlQTUFQX0xJTkVBUiIsIkxJTkVBUl9NSVBNQVBfTkVBUkVTVCIsIkxJTkVBUl9NSVBNQVBfTElORUFSIiwid3JhcE1hcCIsIlJFUEVBVCIsIk1JUlJPUkVEX1JFUEVBVCIsIk1JUlJPUl9SRVBFQVQiLCJURVhUVVJFX01JTl9GSUxURVIiLCJ1bmRlZmluZWQiLCJtYXBwZWQiLCJURVhUVVJFX01BR19GSUxURVIiLCJURVhUVVJFX1dSQVBfUyIsIlRFWFRVUkVfV1JBUF9UIiwibWFwVGV4dHVyZUZvcm1hdCIsImdsRm9ybWF0IiwiX2dsVHlwZSIsIlI4VUkiLCJURVhUVVJFX0ZPUk1BVCIsIlI4X1VJTlQiLCJSMTZVSSIsIlIxNl9VSU5UIiwiUjMyVUkiLCJSMzJfVUlOVCIsIlI4SSIsIlI4X1NJTlQiLCJSMTZJIiwiUjE2X1NJTlQiLCJSMzJJIiwiUjMyX1NJTlQiLCJSMzJGIiwiUjMyX0ZMT0FUIiwiUkdCQSIsIlJHQkE4X1VOT1JNIiwiUkdCIiwiZXhwYW5kUkdCdG9SR0JBIiwiZGF0YSIsIndpZHRoIiwiaGVpZ2h0IiwicGl4ZWxDb3VudCIsInJnYmEiLCJVaW50OEFycmF5IiwiaSIsIl9yYXN0ZXJUZXh0dXJlRGF0YSRpZCIsIl9yYXN0ZXJUZXh0dXJlRGF0YSRpZDIiLCJfZ2wkbHVtYSIsInJhc3RlclRleHR1cmVEYXRhIiwiaGFuZGxlIiwiaWQiLCJzdGFydHNXaXRoIiwicmF3RGF0YSIsImx1bWFEZXZpY2UiLCJsdW1hIiwiX19sdW1hX2RldmljZSIsImNyZWF0ZVRleHR1cmUiLCJjb25zb2xlIiwid2FybiIsIl9yYXdEYXRhJGRhdGEiLCJfcmF3RGF0YSRkYXRhMiIsInNhbXBsZXJQYXJhbXMiLCJwYXJhbWV0ZXJzIiwidGV4dHVyZUZvcm1hdCIsImZvcm1hdCIsInR5cGUiLCJ0ZXh0dXJlUHJvcHMiLCJzYW1wbGVyIiwibWlwbWFwcyIsIkhUTUxJbWFnZUVsZW1lbnQiLCJIVE1MQ2FudmFzRWxlbWVudCIsIkltYWdlQml0bWFwIiwiSW1hZ2VEYXRhIiwiQXJyYXlCdWZmZXIiLCJpc1ZpZXciLCJVaW50OENsYW1wZWRBcnJheSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yYXN0ZXIvaW1hZ2VzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbi8vIEB0cy1pZ25vcmUgR0wgcmVzb2x1dGlvbiBkZXBlbmRzIG9uIG1vZHVsZVJlc29sdXRpb24gc2V0dGluZ1xuaW1wb3J0IHtHTH0gZnJvbSAnQGx1bWEuZ2wvY29uc3RhbnRzJztcbmltcG9ydCBpc0VxdWFsIGZyb20gJ2xvZGFzaC9pc0VxdWFsJztcblxuaW1wb3J0IHtGSUxURVJfTU9ERSwgQUREUkVTU19NT0RFLCBURVhUVVJFX0ZPUk1BVH0gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuaW1wb3J0IHR5cGUge1RleHR1cmV9IGZyb20gJ0BsdW1hLmdsL2NvcmUnO1xuaW1wb3J0IHR5cGUge0ltYWdlSW5wdXQsIEltYWdlU3RhdGV9IGZyb20gJy4vdHlwZXMnO1xuXG4vKipcbiAqIExlZ2FjeSB0ZXh0dXJlIGNyZWF0aW9uIGRlc2NyaXB0b3IgdXNlZCBieSByYXN0ZXIgc2hhZGVyIG1vZHVsZXMuXG4gKiBDb250YWlucyBDUFUtc2lkZSBkYXRhICsgb2xkIEdMLWVudW0tYmFzZWQgcGFyYW1ldGVycyB0aGF0IGdldFxuICogdHJhbnNsYXRlZCB0byBsdW1hLmdsIDkncyBkZXZpY2UuY3JlYXRlVGV4dHVyZSgpIHByb3BzLlxuICovXG50eXBlIFRleHR1cmVEYXRhU291cmNlID1cbiAgfCBIVE1MSW1hZ2VFbGVtZW50XG4gIHwgSFRNTENhbnZhc0VsZW1lbnRcbiAgfCBJbWFnZUJpdG1hcFxuICB8IEltYWdlRGF0YVxuICB8IEFycmF5QnVmZmVyVmlldztcblxudHlwZSBSYXN0ZXJUZXh0dXJlRGF0YSA9IHtcbiAgaGFuZGxlPzogdW5rbm93bjtcbiAgaWQ/OiBzdHJpbmc7XG4gIGRldmljZT86IHVua25vd247XG4gIHdpZHRoPzogbnVtYmVyO1xuICBoZWlnaHQ/OiBudW1iZXI7XG4gIGZvcm1hdD86IG51bWJlcjtcbiAgdHlwZT86IG51bWJlcjtcbiAgcGFyYW1ldGVycz86IFJlY29yZDxudW1iZXIsIG51bWJlcj47XG4gIG1pcG1hcHM/OiBib29sZWFuO1xuICBkYXRhPzogVGV4dHVyZURhdGFTb3VyY2UgJiB7d2lkdGg/OiBudW1iZXI7IGhlaWdodD86IG51bWJlcn07XG59O1xuXG4vKipcbiAqIFRleHR1cmUgc2FtcGxlciBwYXJhbWV0ZXJzIGZvciBsdW1hLmdsIDkgdGV4dHVyZXNcbiAqL1xuY29uc3QgREVGQVVMVF9TQU1QTEVSX1BBUkFNRVRFUlMgPSB7XG4gIG1pbkZpbHRlcjogRklMVEVSX01PREUuTkVBUkVTVCxcbiAgbWFnRmlsdGVyOiBGSUxURVJfTU9ERS5ORUFSRVNULFxuICBhZGRyZXNzTW9kZVU6IEFERFJFU1NfTU9ERS5DTEFNUF9UT19FREdFLFxuICBhZGRyZXNzTW9kZVY6IEFERFJFU1NfTU9ERS5DTEFNUF9UT19FREdFXG59O1xuXG4vKiogbHVtYS5nbCBkZXZpY2UgaW50ZXJmYWNlIGZvciB0ZXh0dXJlIGNyZWF0aW9uICovXG5pbnRlcmZhY2UgTHVtYURldmljZSB7XG4gIGNyZWF0ZVRleHR1cmUocHJvcHM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KTogVGV4dHVyZTtcbiAgZ2w/OiBXZWJHTDJSZW5kZXJpbmdDb250ZXh0O1xufVxuXG50eXBlIExvYWRJbWFnZXNPcHRpb25zID0ge1xuICBnbDogV2ViR0wyUmVuZGVyaW5nQ29udGV4dDtcbiAgZGV2aWNlPzogTHVtYURldmljZTtcbiAgaW1hZ2VzOiBJbWFnZVN0YXRlO1xuICBpbWFnZXNEYXRhOiBJbWFnZUlucHV0O1xuICBvbGRJbWFnZXNEYXRhOiBJbWFnZUlucHV0O1xufTtcblxuLyoqXG4gKiBMb2FkIGltYWdlIGl0ZW1zIHRvIHdlYmdsIGNvbnRleHRcbiAqL1xuZnVuY3Rpb24gbG9hZEltYWdlSXRlbShcbiAgZ2w6IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQsXG4gIGRldmljZTogTHVtYURldmljZSB8IHVuZGVmaW5lZCxcbiAgaW1hZ2VJdGVtOiBSYXN0ZXJUZXh0dXJlRGF0YSB8IFRleHR1cmUgfCAoUmFzdGVyVGV4dHVyZURhdGEgfCBUZXh0dXJlKVtdXG4pOiBudWxsIHwgVGV4dHVyZSB8IFRleHR1cmVbXSB7XG4gIGxldCByZXN1bHQ6IG51bGwgfCBUZXh0dXJlIHwgVGV4dHVyZVtdO1xuICBpZiAoQXJyYXkuaXNBcnJheShpbWFnZUl0ZW0pKSB7XG4gICAgY29uc3QgZGlydHlSZXN1bHQgPSBpbWFnZUl0ZW0ubWFwKHggPT4gbG9hZFRleHR1cmUoZ2wsIGRldmljZSwgeCkpO1xuICAgIHJlc3VsdCA9IFtdO1xuICAgIGZvciAoY29uc3QgdGV4dHVyZSBvZiBkaXJ0eVJlc3VsdCkge1xuICAgICAgaWYgKHRleHR1cmUpIHtcbiAgICAgICAgcmVzdWx0LnB1c2godGV4dHVyZSk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICghcmVzdWx0Lmxlbmd0aCkge1xuICAgICAgcmVzdWx0ID0gbnVsbDtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgcmVzdWx0ID0gbG9hZFRleHR1cmUoZ2wsIGRldmljZSwgaW1hZ2VJdGVtKTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgY29tcGxleGl0eVxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRJbWFnZXMoe1xuICBnbCxcbiAgZGV2aWNlLFxuICBpbWFnZXMsXG4gIGltYWdlc0RhdGEsXG4gIG9sZEltYWdlc0RhdGFcbn06IExvYWRJbWFnZXNPcHRpb25zKTogSW1hZ2VTdGF0ZSB8IG51bGwge1xuICBsZXQgaW1hZ2VzRGlydHkgPSBmYWxzZTtcblxuICBpZiAob2xkSW1hZ2VzRGF0YSkge1xuICAgIGZvciAoY29uc3Qga2V5IGluIG9sZEltYWdlc0RhdGEpIHtcbiAgICAgIGlmIChpbWFnZXNEYXRhICYmICEoa2V5IGluIGltYWdlc0RhdGEpICYmIGtleSBpbiBpbWFnZXMpIHtcbiAgICAgICAgZGVsZXRlIGltYWdlc1trZXldO1xuICAgICAgICBpbWFnZXNEaXJ0eSA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29uc3QgY2hhbmdlZEtleXM6IHN0cmluZ1tdID0gW107XG4gIGZvciAoY29uc3Qga2V5IGluIGltYWdlc0RhdGEpIHtcbiAgICBpZiAoIW9sZEltYWdlc0RhdGEgfHwgKG9sZEltYWdlc0RhdGEgJiYgIShrZXkgaW4gb2xkSW1hZ2VzRGF0YSkpKSB7XG4gICAgICBjaGFuZ2VkS2V5cy5wdXNoKGtleSk7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBpZiAoIWlzRXF1YWwoaW1hZ2VzRGF0YVtrZXldLCBvbGRJbWFnZXNEYXRhW2tleV0pKSB7XG4gICAgICBjaGFuZ2VkS2V5cy5wdXNoKGtleSk7XG4gICAgfVxuICB9XG5cbiAgZm9yIChjb25zdCBrZXkgb2YgY2hhbmdlZEtleXMpIHtcbiAgICBjb25zdCBpbWFnZURhdGEgPSBpbWFnZXNEYXRhW2tleV07XG4gICAgaWYgKCFpbWFnZURhdGEpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGNvbnN0IGxvYWRlZEl0ZW0gPSBsb2FkSW1hZ2VJdGVtKGdsLCBkZXZpY2UsIGltYWdlRGF0YSk7XG4gICAgaWYgKGxvYWRlZEl0ZW0pIHtcbiAgICAgIGltYWdlc1trZXldID0gbG9hZGVkSXRlbTtcbiAgICB9XG4gICAgaW1hZ2VzRGlydHkgPSB0cnVlO1xuICB9XG5cbiAgaWYgKGltYWdlc0RpcnR5KSB7XG4gICAgcmV0dXJuIGltYWdlcztcbiAgfVxuXG4gIHJldHVybiBudWxsO1xufVxuXG4vKipcbiAqIE1hcCBvbGQgR0wgdGV4dHVyZSBwYXJhbWV0ZXIgY29uc3RhbnRzIHRvIGx1bWEuZ2wgOSBzYW1wbGVyIHBhcmFtZXRlcnNcbiAqL1xuZnVuY3Rpb24gbWFwU2FtcGxlclBhcmFtZXRlcnMob2xkUGFyYW1zOiBSZWNvcmQ8bnVtYmVyLCBudW1iZXI+KTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB7XG4gIGNvbnN0IHJlc3VsdDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHsuLi5ERUZBVUxUX1NBTVBMRVJfUEFSQU1FVEVSU307XG5cbiAgY29uc3QgbWFnRmlsdGVyTWFwID0ge1xuICAgIFtHTC5ORUFSRVNUXTogRklMVEVSX01PREUuTkVBUkVTVCxcbiAgICBbR0wuTElORUFSXTogRklMVEVSX01PREUuTElORUFSXG4gIH07XG5cbiAgY29uc3QgbWluRmlsdGVyTWFwOiBSZWNvcmQ8bnVtYmVyLCB7bWluRmlsdGVyOiBzdHJpbmc7IG1pcG1hcEZpbHRlcj86IHN0cmluZ30+ID0ge1xuICAgIFtHTC5ORUFSRVNUXToge21pbkZpbHRlcjogRklMVEVSX01PREUuTkVBUkVTVH0sXG4gICAgW0dMLkxJTkVBUl06IHttaW5GaWx0ZXI6IEZJTFRFUl9NT0RFLkxJTkVBUn0sXG4gICAgW0dMLk5FQVJFU1RfTUlQTUFQX05FQVJFU1RdOiB7XG4gICAgICBtaW5GaWx0ZXI6IEZJTFRFUl9NT0RFLk5FQVJFU1QsXG4gICAgICBtaXBtYXBGaWx0ZXI6IEZJTFRFUl9NT0RFLk5FQVJFU1RcbiAgICB9LFxuICAgIFtHTC5ORUFSRVNUX01JUE1BUF9MSU5FQVJdOiB7bWluRmlsdGVyOiBGSUxURVJfTU9ERS5ORUFSRVNULCBtaXBtYXBGaWx0ZXI6IEZJTFRFUl9NT0RFLkxJTkVBUn0sXG4gICAgW0dMLkxJTkVBUl9NSVBNQVBfTkVBUkVTVF06IHttaW5GaWx0ZXI6IEZJTFRFUl9NT0RFLkxJTkVBUiwgbWlwbWFwRmlsdGVyOiBGSUxURVJfTU9ERS5ORUFSRVNUfSxcbiAgICBbR0wuTElORUFSX01JUE1BUF9MSU5FQVJdOiB7bWluRmlsdGVyOiBGSUxURVJfTU9ERS5MSU5FQVIsIG1pcG1hcEZpbHRlcjogRklMVEVSX01PREUuTElORUFSfVxuICB9O1xuXG4gIGNvbnN0IHdyYXBNYXAgPSB7XG4gICAgW0dMLkNMQU1QX1RPX0VER0VdOiBBRERSRVNTX01PREUuQ0xBTVBfVE9fRURHRSxcbiAgICBbR0wuUkVQRUFUXTogQUREUkVTU19NT0RFLlJFUEVBVCxcbiAgICBbR0wuTUlSUk9SRURfUkVQRUFUXTogQUREUkVTU19NT0RFLk1JUlJPUl9SRVBFQVRcbiAgfTtcblxuICBpZiAob2xkUGFyYW1zKSB7XG4gICAgaWYgKG9sZFBhcmFtc1tHTC5URVhUVVJFX01JTl9GSUxURVJdICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbnN0IG1hcHBlZCA9IG1pbkZpbHRlck1hcFtvbGRQYXJhbXNbR0wuVEVYVFVSRV9NSU5fRklMVEVSXV07XG4gICAgICBpZiAobWFwcGVkKSB7XG4gICAgICAgIHJlc3VsdC5taW5GaWx0ZXIgPSBtYXBwZWQubWluRmlsdGVyO1xuICAgICAgICBpZiAobWFwcGVkLm1pcG1hcEZpbHRlcikge1xuICAgICAgICAgIHJlc3VsdC5taXBtYXBGaWx0ZXIgPSBtYXBwZWQubWlwbWFwRmlsdGVyO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChvbGRQYXJhbXNbR0wuVEVYVFVSRV9NQUdfRklMVEVSXSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXN1bHQubWFnRmlsdGVyID0gbWFnRmlsdGVyTWFwW29sZFBhcmFtc1tHTC5URVhUVVJFX01BR19GSUxURVJdXSB8fCBGSUxURVJfTU9ERS5ORUFSRVNUO1xuICAgIH1cbiAgICBpZiAob2xkUGFyYW1zW0dMLlRFWFRVUkVfV1JBUF9TXSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXN1bHQuYWRkcmVzc01vZGVVID0gd3JhcE1hcFtvbGRQYXJhbXNbR0wuVEVYVFVSRV9XUkFQX1NdXSB8fCBBRERSRVNTX01PREUuQ0xBTVBfVE9fRURHRTtcbiAgICB9XG4gICAgaWYgKG9sZFBhcmFtc1tHTC5URVhUVVJFX1dSQVBfVF0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmVzdWx0LmFkZHJlc3NNb2RlViA9IHdyYXBNYXBbb2xkUGFyYW1zW0dMLlRFWFRVUkVfV1JBUF9UXV0gfHwgQUREUkVTU19NT0RFLkNMQU1QX1RPX0VER0U7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuLyoqXG4gKiBNYXAgb2xkIEdMIGZvcm1hdC90eXBlIHRvIGx1bWEuZ2wgOSB0ZXh0dXJlIGZvcm1hdCBzdHJpbmdcbiAqL1xuZnVuY3Rpb24gbWFwVGV4dHVyZUZvcm1hdChnbEZvcm1hdDogbnVtYmVyLCBfZ2xUeXBlPzogbnVtYmVyKTogc3RyaW5nIHtcbiAgc3dpdGNoIChnbEZvcm1hdCkge1xuICAgIGNhc2UgR0wuUjhVSTpcbiAgICAgIHJldHVybiBURVhUVVJFX0ZPUk1BVC5SOF9VSU5UO1xuICAgIGNhc2UgR0wuUjE2VUk6XG4gICAgICByZXR1cm4gVEVYVFVSRV9GT1JNQVQuUjE2X1VJTlQ7XG4gICAgY2FzZSBHTC5SMzJVSTpcbiAgICAgIHJldHVybiBURVhUVVJFX0ZPUk1BVC5SMzJfVUlOVDtcbiAgICBjYXNlIEdMLlI4STpcbiAgICAgIHJldHVybiBURVhUVVJFX0ZPUk1BVC5SOF9TSU5UO1xuICAgIGNhc2UgR0wuUjE2STpcbiAgICAgIHJldHVybiBURVhUVVJFX0ZPUk1BVC5SMTZfU0lOVDtcbiAgICBjYXNlIEdMLlIzMkk6XG4gICAgICByZXR1cm4gVEVYVFVSRV9GT1JNQVQuUjMyX1NJTlQ7XG4gICAgY2FzZSBHTC5SMzJGOlxuICAgICAgcmV0dXJuIFRFWFRVUkVfRk9STUFULlIzMl9GTE9BVDtcbiAgICBjYXNlIEdMLlJHQkE6XG4gICAgICByZXR1cm4gVEVYVFVSRV9GT1JNQVQuUkdCQThfVU5PUk07XG4gICAgY2FzZSBHTC5SR0I6XG4gICAgICByZXR1cm4gVEVYVFVSRV9GT1JNQVQuUkdCQThfVU5PUk07XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBURVhUVVJFX0ZPUk1BVC5SR0JBOF9VTk9STTtcbiAgfVxufVxuXG4vKipcbiAqIEV4cGFuZCAzLWJ5dGUtcGVyLXBpeGVsIFJHQiBkYXRhIHRvIDQtYnl0ZS1wZXItcGl4ZWwgUkdCQS5cbiAqIE5lZWRlZCBiZWNhdXNlIFdlYkdQVS9sdW1hLmdsIDkgaGFzIG5vIDMtY2hhbm5lbCB0ZXh0dXJlIGZvcm1hdC5cbiAqL1xuZnVuY3Rpb24gZXhwYW5kUkdCdG9SR0JBKFxuICBkYXRhOiBVaW50OEFycmF5IHwgVWludDhDbGFtcGVkQXJyYXksXG4gIHdpZHRoOiBudW1iZXIsXG4gIGhlaWdodDogbnVtYmVyXG4pOiBVaW50OEFycmF5IHtcbiAgY29uc3QgcGl4ZWxDb3VudCA9IHdpZHRoICogaGVpZ2h0O1xuICBjb25zdCByZ2JhID0gbmV3IFVpbnQ4QXJyYXkocGl4ZWxDb3VudCAqIDQpO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IHBpeGVsQ291bnQ7IGkrKykge1xuICAgIHJnYmFbaSAqIDRdID0gZGF0YVtpICogM107XG4gICAgcmdiYVtpICogNCArIDFdID0gZGF0YVtpICogMyArIDFdO1xuICAgIHJnYmFbaSAqIDQgKyAyXSA9IGRhdGFbaSAqIDMgKyAyXTtcbiAgICByZ2JhW2kgKiA0ICsgM10gPSAyNTU7XG4gIH1cbiAgcmV0dXJuIHJnYmE7XG59XG5cbi8qKlxuICogQ3JlYXRlIHRleHR1cmUgb2JqZWN0IGZyb20gaW1hZ2UgZGF0YSB1c2luZyBsdW1hLmdsIDkgZGV2aWNlIEFQSS5cbiAqIFJldHVybnMgYSBwcm9wZXIgbHVtYS5nbCBUZXh0dXJlIG9iamVjdCB0aGF0IHdvcmtzIHdpdGggdGhlIGJpbmRpbmcgc3lzdGVtLlxuICovXG5mdW5jdGlvbiBsb2FkVGV4dHVyZShcbiAgZ2w6IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQsXG4gIGRldmljZTogTHVtYURldmljZSB8IHVuZGVmaW5lZCxcbiAgaW1hZ2VEYXRhOiBUZXh0dXJlIHwgUmFzdGVyVGV4dHVyZURhdGFcbik6IFRleHR1cmUgfCBudWxsIHtcbiAgaWYgKCFpbWFnZURhdGEpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8vIElmIGFscmVhZHkgYSBsdW1hLmdsIFRleHR1cmUgaW5zdGFuY2UsIHJldHVybiBhcy1pc1xuICBjb25zdCByYXN0ZXJUZXh0dXJlRGF0YSA9IGltYWdlRGF0YSBhcyBSYXN0ZXJUZXh0dXJlRGF0YTtcbiAgaWYgKFxuICAgIHJhc3RlclRleHR1cmVEYXRhLmhhbmRsZSB8fFxuICAgIHJhc3RlclRleHR1cmVEYXRhLmlkPy5zdGFydHNXaXRoPy4oJ2x1bWEnKSB8fFxuICAgIHJhc3RlclRleHR1cmVEYXRhLmRldmljZVxuICApIHtcbiAgICByZXR1cm4gaW1hZ2VEYXRhIGFzIFRleHR1cmU7XG4gIH1cblxuICBjb25zdCByYXdEYXRhID0gaW1hZ2VEYXRhIGFzIFJhc3RlclRleHR1cmVEYXRhO1xuXG4gIC8vIEB0cy1leHBlY3QtZXJyb3IgbHVtYSBpbnRlcm5hbCBwcm9wZXJ0aWVzIG5vdCBpbiBXZWJHTDJSZW5kZXJpbmdDb250ZXh0IHR5cGVcbiAgY29uc3QgbHVtYURldmljZSA9IGRldmljZSB8fCBnbC5sdW1hPy5kZXZpY2UgfHwgZ2wuX19sdW1hX2RldmljZTtcblxuICBpZiAoIWx1bWFEZXZpY2U/LmNyZWF0ZVRleHR1cmUpIHtcbiAgICBjb25zb2xlLndhcm4oJ1Jhc3RlckxheWVyOiBObyBsdW1hLmdsIGRldmljZSBhdmFpbGFibGUgZm9yIHRleHR1cmUgY3JlYXRpb24nKTtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHRyeSB7XG4gICAgY29uc3Qgc2FtcGxlclBhcmFtcyA9IG1hcFNhbXBsZXJQYXJhbWV0ZXJzKHJhd0RhdGEucGFyYW1ldGVycyB8fCB7fSk7XG4gICAgY29uc3QgdGV4dHVyZUZvcm1hdCA9IHJhd0RhdGEuZm9ybWF0XG4gICAgICA/IG1hcFRleHR1cmVGb3JtYXQocmF3RGF0YS5mb3JtYXQsIHJhd0RhdGEudHlwZSlcbiAgICAgIDogVEVYVFVSRV9GT1JNQVQuUkdCQThfVU5PUk07XG5cbiAgICBjb25zdCB3aWR0aCA9IHJhd0RhdGEud2lkdGggfHwgcmF3RGF0YS5kYXRhPy53aWR0aCB8fCAxO1xuICAgIGNvbnN0IGhlaWdodCA9IHJhd0RhdGEuaGVpZ2h0IHx8IHJhd0RhdGEuZGF0YT8uaGVpZ2h0IHx8IDE7XG5cbiAgICBjb25zdCB0ZXh0dXJlUHJvcHM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge1xuICAgICAgd2lkdGgsXG4gICAgICBoZWlnaHQsXG4gICAgICBmb3JtYXQ6IHRleHR1cmVGb3JtYXQsXG4gICAgICBzYW1wbGVyOiBzYW1wbGVyUGFyYW1zLFxuICAgICAgLi4uKHJhd0RhdGEubWlwbWFwcyA9PT0gZmFsc2UgPyB7bWlwbWFwczogZmFsc2V9IDoge30pXG4gICAgfTtcblxuICAgIGlmIChyYXdEYXRhLmRhdGEpIHtcbiAgICAgIGlmIChcbiAgICAgICAgcmF3RGF0YS5kYXRhIGluc3RhbmNlb2YgSFRNTEltYWdlRWxlbWVudCB8fFxuICAgICAgICByYXdEYXRhLmRhdGEgaW5zdGFuY2VvZiBIVE1MQ2FudmFzRWxlbWVudCB8fFxuICAgICAgICByYXdEYXRhLmRhdGEgaW5zdGFuY2VvZiBJbWFnZUJpdG1hcCB8fFxuICAgICAgICByYXdEYXRhLmRhdGEgaW5zdGFuY2VvZiBJbWFnZURhdGFcbiAgICAgICkge1xuICAgICAgICB0ZXh0dXJlUHJvcHMuZGF0YSA9IHJhd0RhdGEuZGF0YTtcbiAgICAgIH0gZWxzZSBpZiAoQXJyYXlCdWZmZXIuaXNWaWV3KHJhd0RhdGEuZGF0YSkpIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHJhd0RhdGEuZm9ybWF0ID09PSBHTC5SR0IgJiZcbiAgICAgICAgICAocmF3RGF0YS5kYXRhIGluc3RhbmNlb2YgVWludDhBcnJheSB8fCByYXdEYXRhLmRhdGEgaW5zdGFuY2VvZiBVaW50OENsYW1wZWRBcnJheSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgdGV4dHVyZVByb3BzLmRhdGEgPSBleHBhbmRSR0J0b1JHQkEocmF3RGF0YS5kYXRhLCB3aWR0aCwgaGVpZ2h0KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0ZXh0dXJlUHJvcHMuZGF0YSA9IHJhd0RhdGEuZGF0YTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBsdW1hRGV2aWNlLmNyZWF0ZVRleHR1cmUodGV4dHVyZVByb3BzKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGNvbnNvbGUud2FybignUmFzdGVyTGF5ZXI6IEZhaWxlZCB0byBjcmVhdGUgdGV4dHVyZSB2aWEgZGV2aWNlLmNyZWF0ZVRleHR1cmU6JywgZSk7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFJQSxJQUFBQSxVQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxRQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFFQSxJQUFBRyxXQUFBLEdBQUFILE9BQUE7QUFBK0UsU0FBQUksUUFBQUMsQ0FBQSxFQUFBQyxDQUFBLFFBQUFDLENBQUEsR0FBQUMsTUFBQSxDQUFBQyxJQUFBLENBQUFKLENBQUEsT0FBQUcsTUFBQSxDQUFBRSxxQkFBQSxRQUFBQyxDQUFBLEdBQUFILE1BQUEsQ0FBQUUscUJBQUEsQ0FBQUwsQ0FBQSxHQUFBQyxDQUFBLEtBQUFLLENBQUEsR0FBQUEsQ0FBQSxDQUFBQyxNQUFBLFdBQUFOLENBQUEsV0FBQUUsTUFBQSxDQUFBSyx3QkFBQSxDQUFBUixDQUFBLEVBQUFDLENBQUEsRUFBQVEsVUFBQSxPQUFBUCxDQUFBLENBQUFRLElBQUEsQ0FBQUMsS0FBQSxDQUFBVCxDQUFBLEVBQUFJLENBQUEsWUFBQUos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
|
|
271
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29uc3RhbnRzIiwicmVxdWlyZSIsIl9pc0VxdWFsIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9jb25zdGFudHMyIiwib3duS2V5cyIsImUiLCJyIiwidCIsIk9iamVjdCIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiQXJyYXkiLCJpc0FycmF5IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwiX24iLCJGIiwicyIsIm4iLCJkb25lIiwidmFsdWUiLCJmIiwiVHlwZUVycm9yIiwiYSIsInUiLCJjYWxsIiwibmV4dCIsIl9hcnJheUxpa2VUb0FycmF5IiwidG9TdHJpbmciLCJzbGljZSIsImNvbnN0cnVjdG9yIiwibmFtZSIsImZyb20iLCJ0ZXN0IiwiREVGQVVMVF9TQU1QTEVSX1BBUkFNRVRFUlMiLCJtaW5GaWx0ZXIiLCJGSUxURVJfTU9ERSIsIk5FQVJFU1QiLCJtYWdGaWx0ZXIiLCJhZGRyZXNzTW9kZVUiLCJBRERSRVNTX01PREUiLCJDTEFNUF9UT19FREdFIiwiYWRkcmVzc01vZGVWIiwibG9hZEltYWdlSXRlbSIsImdsIiwiZGV2aWNlIiwiaW1hZ2VJdGVtIiwicmVzdWx0IiwiZGlydHlSZXN1bHQiLCJtYXAiLCJ4IiwibG9hZFRleHR1cmUiLCJfaXRlcmF0b3IiLCJfc3RlcCIsInRleHR1cmUiLCJlcnIiLCJsb2FkSW1hZ2VzIiwiX3JlZiIsImltYWdlcyIsImltYWdlc0RhdGEiLCJvbGRJbWFnZXNEYXRhIiwiaW1hZ2VzRGlydHkiLCJoYXNQZW5kaW5nVXBsb2FkcyIsImtleSIsImNoYW5nZWRLZXlzIiwiaXNFcXVhbCIsIl9pIiwiX2NoYW5nZWRLZXlzIiwiaW1hZ2VEYXRhIiwibG9hZGVkSXRlbSIsIm1hcFNhbXBsZXJQYXJhbWV0ZXJzIiwib2xkUGFyYW1zIiwibWFnRmlsdGVyTWFwIiwiR0wiLCJMSU5FQVIiLCJtaW5GaWx0ZXJNYXAiLCJORUFSRVNUX01JUE1BUF9ORUFSRVNUIiwibWlwbWFwRmlsdGVyIiwiTkVBUkVTVF9NSVBNQVBfTElORUFSIiwiTElORUFSX01JUE1BUF9ORUFSRVNUIiwiTElORUFSX01JUE1BUF9MSU5FQVIiLCJ3cmFwTWFwIiwiUkVQRUFUIiwiTUlSUk9SRURfUkVQRUFUIiwiTUlSUk9SX1JFUEVBVCIsIlRFWFRVUkVfTUlOX0ZJTFRFUiIsInVuZGVmaW5lZCIsIm1hcHBlZCIsIlRFWFRVUkVfTUFHX0ZJTFRFUiIsIlRFWFRVUkVfV1JBUF9TIiwiVEVYVFVSRV9XUkFQX1QiLCJtYXBUZXh0dXJlRm9ybWF0IiwiZ2xGb3JtYXQiLCJfZ2xUeXBlIiwiUjhVSSIsIlRFWFRVUkVfRk9STUFUIiwiUjhfVUlOVCIsIlIxNlVJIiwiUjE2X1VJTlQiLCJSMzJVSSIsIlIzMl9VSU5UIiwiUjhJIiwiUjhfU0lOVCIsIlIxNkkiLCJSMTZfU0lOVCIsIlIzMkkiLCJSMzJfU0lOVCIsIlIzMkYiLCJSMzJfRkxPQVQiLCJSR0JBIiwiUkdCQThfVU5PUk0iLCJSR0IiLCJleHBhbmRSR0J0b1JHQkEiLCJkYXRhIiwid2lkdGgiLCJoZWlnaHQiLCJwaXhlbENvdW50IiwicmdiYSIsIlVpbnQ4QXJyYXkiLCJpIiwiX3Jhc3RlclRleHR1cmVEYXRhJGlkIiwiX3Jhc3RlclRleHR1cmVEYXRhJGlkMiIsIl9nbCRsdW1hIiwicmFzdGVyVGV4dHVyZURhdGEiLCJoYW5kbGUiLCJpZCIsInN0YXJ0c1dpdGgiLCJyYXdEYXRhIiwibHVtYURldmljZSIsImx1bWEiLCJfX2x1bWFfZGV2aWNlIiwiY3JlYXRlVGV4dHVyZSIsImNvbnNvbGUiLCJ3YXJuIiwiX3Jhd0RhdGEkZGF0YSIsIl9yYXdEYXRhJGRhdGEyIiwic2FtcGxlclBhcmFtcyIsInBhcmFtZXRlcnMiLCJ0ZXh0dXJlRm9ybWF0IiwiZm9ybWF0IiwidHlwZSIsInRleHR1cmVQcm9wcyIsInNhbXBsZXIiLCJtaXBtYXBzIiwiSFRNTEltYWdlRWxlbWVudCIsIkhUTUxDYW52YXNFbGVtZW50IiwiSW1hZ2VCaXRtYXAiLCJJbWFnZURhdGEiLCJBcnJheUJ1ZmZlciIsImlzVmlldyIsIlVpbnQ4Q2xhbXBlZEFycmF5Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Jhc3Rlci9pbWFnZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuLy8gQHRzLWlnbm9yZSBHTCByZXNvbHV0aW9uIGRlcGVuZHMgb24gbW9kdWxlUmVzb2x1dGlvbiBzZXR0aW5nXG5pbXBvcnQge0dMfSBmcm9tICdAbHVtYS5nbC9jb25zdGFudHMnO1xuaW1wb3J0IGlzRXF1YWwgZnJvbSAnbG9kYXNoL2lzRXF1YWwnO1xuXG5pbXBvcnQge0ZJTFRFUl9NT0RFLCBBRERSRVNTX01PREUsIFRFWFRVUkVfRk9STUFUfSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5pbXBvcnQgdHlwZSB7VGV4dHVyZX0gZnJvbSAnQGx1bWEuZ2wvY29yZSc7XG5pbXBvcnQgdHlwZSB7SW1hZ2VJbnB1dCwgSW1hZ2VTdGF0ZX0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogTGVnYWN5IHRleHR1cmUgY3JlYXRpb24gZGVzY3JpcHRvciB1c2VkIGJ5IHJhc3RlciBzaGFkZXIgbW9kdWxlcy5cbiAqIENvbnRhaW5zIENQVS1zaWRlIGRhdGEgKyBvbGQgR0wtZW51bS1iYXNlZCBwYXJhbWV0ZXJzIHRoYXQgZ2V0XG4gKiB0cmFuc2xhdGVkIHRvIGx1bWEuZ2wgOSdzIGRldmljZS5jcmVhdGVUZXh0dXJlKCkgcHJvcHMuXG4gKi9cbnR5cGUgVGV4dHVyZURhdGFTb3VyY2UgPVxuICB8IEhUTUxJbWFnZUVsZW1lbnRcbiAgfCBIVE1MQ2FudmFzRWxlbWVudFxuICB8IEltYWdlQml0bWFwXG4gIHwgSW1hZ2VEYXRhXG4gIHwgQXJyYXlCdWZmZXJWaWV3O1xuXG50eXBlIFJhc3RlclRleHR1cmVEYXRhID0ge1xuICBoYW5kbGU/OiB1bmtub3duO1xuICBpZD86IHN0cmluZztcbiAgZGV2aWNlPzogdW5rbm93bjtcbiAgd2lkdGg/OiBudW1iZXI7XG4gIGhlaWdodD86IG51bWJlcjtcbiAgZm9ybWF0PzogbnVtYmVyO1xuICB0eXBlPzogbnVtYmVyO1xuICBwYXJhbWV0ZXJzPzogUmVjb3JkPG51bWJlciwgbnVtYmVyPjtcbiAgbWlwbWFwcz86IGJvb2xlYW47XG4gIGRhdGE/OiBUZXh0dXJlRGF0YVNvdXJjZSAmIHt3aWR0aD86IG51bWJlcjsgaGVpZ2h0PzogbnVtYmVyfTtcbn07XG5cbi8qKlxuICogVGV4dHVyZSBzYW1wbGVyIHBhcmFtZXRlcnMgZm9yIGx1bWEuZ2wgOSB0ZXh0dXJlc1xuICovXG5jb25zdCBERUZBVUxUX1NBTVBMRVJfUEFSQU1FVEVSUyA9IHtcbiAgbWluRmlsdGVyOiBGSUxURVJfTU9ERS5ORUFSRVNULFxuICBtYWdGaWx0ZXI6IEZJTFRFUl9NT0RFLk5FQVJFU1QsXG4gIGFkZHJlc3NNb2RlVTogQUREUkVTU19NT0RFLkNMQU1QX1RPX0VER0UsXG4gIGFkZHJlc3NNb2RlVjogQUREUkVTU19NT0RFLkNMQU1QX1RPX0VER0Vcbn07XG5cbi8qKiBsdW1hLmdsIGRldmljZSBpbnRlcmZhY2UgZm9yIHRleHR1cmUgY3JlYXRpb24gKi9cbmludGVyZmFjZSBMdW1hRGV2aWNlIHtcbiAgY3JlYXRlVGV4dHVyZShwcm9wczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pOiBUZXh0dXJlO1xuICBnbD86IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ7XG59XG5cbnR5cGUgTG9hZEltYWdlc09wdGlvbnMgPSB7XG4gIGdsOiBXZWJHTDJSZW5kZXJpbmdDb250ZXh0O1xuICBkZXZpY2U/OiBMdW1hRGV2aWNlO1xuICBpbWFnZXM6IEltYWdlU3RhdGU7XG4gIGltYWdlc0RhdGE6IEltYWdlSW5wdXQ7XG4gIG9sZEltYWdlc0RhdGE6IEltYWdlSW5wdXQ7XG59O1xuXG4vKipcbiAqIExvYWQgaW1hZ2UgaXRlbXMgdG8gd2ViZ2wgY29udGV4dFxuICovXG5mdW5jdGlvbiBsb2FkSW1hZ2VJdGVtKFxuICBnbDogV2ViR0wyUmVuZGVyaW5nQ29udGV4dCxcbiAgZGV2aWNlOiBMdW1hRGV2aWNlIHwgdW5kZWZpbmVkLFxuICBpbWFnZUl0ZW06IFJhc3RlclRleHR1cmVEYXRhIHwgVGV4dHVyZSB8IChSYXN0ZXJUZXh0dXJlRGF0YSB8IFRleHR1cmUpW11cbik6IG51bGwgfCBUZXh0dXJlIHwgVGV4dHVyZVtdIHtcbiAgbGV0IHJlc3VsdDogbnVsbCB8IFRleHR1cmUgfCBUZXh0dXJlW107XG4gIGlmIChBcnJheS5pc0FycmF5KGltYWdlSXRlbSkpIHtcbiAgICBjb25zdCBkaXJ0eVJlc3VsdCA9IGltYWdlSXRlbS5tYXAoeCA9PiBsb2FkVGV4dHVyZShnbCwgZGV2aWNlLCB4KSk7XG4gICAgcmVzdWx0ID0gW107XG4gICAgZm9yIChjb25zdCB0ZXh0dXJlIG9mIGRpcnR5UmVzdWx0KSB7XG4gICAgICBpZiAodGV4dHVyZSkge1xuICAgICAgICByZXN1bHQucHVzaCh0ZXh0dXJlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKCFyZXN1bHQubGVuZ3RoKSB7XG4gICAgICByZXN1bHQgPSBudWxsO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICByZXN1bHQgPSBsb2FkVGV4dHVyZShnbCwgZGV2aWNlLCBpbWFnZUl0ZW0pO1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbi8qKlxuICogTG9hZCBpbWFnZSBpdGVtcyB0byB3ZWJnbCBjb250ZXh0XG4gKi9cbnR5cGUgTG9hZEltYWdlc1Jlc3VsdCA9IHtcbiAgLyoqIFVwZGF0ZWQgaW1hZ2VzIHN0YXRlLCBvciBudWxsIGlmIG5vdGhpbmcgY2hhbmdlZCAqL1xuICBpbWFnZXM6IEltYWdlU3RhdGUgfCBudWxsO1xuICAvKiogVHJ1ZSB3aGVuIGF0IGxlYXN0IG9uZSB0ZXh0dXJlIHVwbG9hZCBmYWlsZWQgYW5kIHNob3VsZCBiZSByZXRyaWVkICovXG4gIGhhc1BlbmRpbmdVcGxvYWRzOiBib29sZWFuO1xufTtcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNvbXBsZXhpdHlcbmV4cG9ydCBmdW5jdGlvbiBsb2FkSW1hZ2VzKHtcbiAgZ2wsXG4gIGRldmljZSxcbiAgaW1hZ2VzLFxuICBpbWFnZXNEYXRhLFxuICBvbGRJbWFnZXNEYXRhXG59OiBMb2FkSW1hZ2VzT3B0aW9ucyk6IExvYWRJbWFnZXNSZXN1bHQge1xuICBsZXQgaW1hZ2VzRGlydHkgPSBmYWxzZTtcbiAgbGV0IGhhc1BlbmRpbmdVcGxvYWRzID0gZmFsc2U7XG5cbiAgaWYgKG9sZEltYWdlc0RhdGEpIHtcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBvbGRJbWFnZXNEYXRhKSB7XG4gICAgICBpZiAoaW1hZ2VzRGF0YSAmJiAhKGtleSBpbiBpbWFnZXNEYXRhKSAmJiBrZXkgaW4gaW1hZ2VzKSB7XG4gICAgICAgIGRlbGV0ZSBpbWFnZXNba2V5XTtcbiAgICAgICAgaW1hZ2VzRGlydHkgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGNoYW5nZWRLZXlzOiBzdHJpbmdbXSA9IFtdO1xuICBmb3IgKGNvbnN0IGtleSBpbiBpbWFnZXNEYXRhKSB7XG4gICAgaWYgKCFvbGRJbWFnZXNEYXRhIHx8IChvbGRJbWFnZXNEYXRhICYmICEoa2V5IGluIG9sZEltYWdlc0RhdGEpKSkge1xuICAgICAgY2hhbmdlZEtleXMucHVzaChrZXkpO1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgaWYgKCFpc0VxdWFsKGltYWdlc0RhdGFba2V5XSwgb2xkSW1hZ2VzRGF0YVtrZXldKSkge1xuICAgICAgY2hhbmdlZEtleXMucHVzaChrZXkpO1xuICAgIH1cbiAgfVxuXG4gIGZvciAoY29uc3Qga2V5IG9mIGNoYW5nZWRLZXlzKSB7XG4gICAgY29uc3QgaW1hZ2VEYXRhID0gaW1hZ2VzRGF0YVtrZXldO1xuICAgIGlmICghaW1hZ2VEYXRhKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBjb25zdCBsb2FkZWRJdGVtID0gbG9hZEltYWdlSXRlbShnbCwgZGV2aWNlLCBpbWFnZURhdGEpO1xuICAgIGlmIChsb2FkZWRJdGVtKSB7XG4gICAgICBpbWFnZXNba2V5XSA9IGxvYWRlZEl0ZW07XG4gICAgICAvLyBPbmx5IG1hcmsgZGlydHkgd2hlbiB0aGUgdGV4dHVyZSB3YXMgYWN0dWFsbHkgdXBsb2FkZWQuXG4gICAgICBpbWFnZXNEaXJ0eSA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFVwbG9hZCBmYWlsZWQgKGRldmljZSBub3QgcmVhZHkgb3IgY3JlYXRlVGV4dHVyZSB0aHJldykuIFNpZ25hbCB0aGF0XG4gICAgICAvLyB0aGUgY2FsbGVyIHNob3VsZCByZXRyeSBuZXh0IGZyYW1lIOKAlCBkbyBOT1Qgc2V0IGltYWdlc0RpcnR5IHNvIHdlXG4gICAgICAvLyBkb24ndCBwcm9wYWdhdGUgYW4gaW1hZ2VzIG9iamVjdCB3aXRoIGEgbWlzc2luZyBrZXkgdGhhdCBjYXVzZXNcbiAgICAgIC8vIGRyYXcoKSB0byBiYWlsIHBlcm1hbmVudGx5LlxuICAgICAgaGFzUGVuZGluZ1VwbG9hZHMgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7aW1hZ2VzOiBpbWFnZXNEaXJ0eSA/IGltYWdlcyA6IG51bGwsIGhhc1BlbmRpbmdVcGxvYWRzfTtcbn1cblxuLyoqXG4gKiBNYXAgb2xkIEdMIHRleHR1cmUgcGFyYW1ldGVyIGNvbnN0YW50cyB0byBsdW1hLmdsIDkgc2FtcGxlciBwYXJhbWV0ZXJzXG4gKi9cbmZ1bmN0aW9uIG1hcFNhbXBsZXJQYXJhbWV0ZXJzKG9sZFBhcmFtczogUmVjb3JkPG51bWJlciwgbnVtYmVyPik6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4ge1xuICBjb25zdCByZXN1bHQ6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7Li4uREVGQVVMVF9TQU1QTEVSX1BBUkFNRVRFUlN9O1xuXG4gIGNvbnN0IG1hZ0ZpbHRlck1hcCA9IHtcbiAgICBbR0wuTkVBUkVTVF06IEZJTFRFUl9NT0RFLk5FQVJFU1QsXG4gICAgW0dMLkxJTkVBUl06IEZJTFRFUl9NT0RFLkxJTkVBUlxuICB9O1xuXG4gIGNvbnN0IG1pbkZpbHRlck1hcDogUmVjb3JkPG51bWJlciwge21pbkZpbHRlcjogc3RyaW5nOyBtaXBtYXBGaWx0ZXI/OiBzdHJpbmd9PiA9IHtcbiAgICBbR0wuTkVBUkVTVF06IHttaW5GaWx0ZXI6IEZJTFRFUl9NT0RFLk5FQVJFU1R9LFxuICAgIFtHTC5MSU5FQVJdOiB7bWluRmlsdGVyOiBGSUxURVJfTU9ERS5MSU5FQVJ9LFxuICAgIFtHTC5ORUFSRVNUX01JUE1BUF9ORUFSRVNUXToge1xuICAgICAgbWluRmlsdGVyOiBGSUxURVJfTU9ERS5ORUFSRVNULFxuICAgICAgbWlwbWFwRmlsdGVyOiBGSUxURVJfTU9ERS5ORUFSRVNUXG4gICAgfSxcbiAgICBbR0wuTkVBUkVTVF9NSVBNQVBfTElORUFSXToge21pbkZpbHRlcjogRklMVEVSX01PREUuTkVBUkVTVCwgbWlwbWFwRmlsdGVyOiBGSUxURVJfTU9ERS5MSU5FQVJ9LFxuICAgIFtHTC5MSU5FQVJfTUlQTUFQX05FQVJFU1RdOiB7bWluRmlsdGVyOiBGSUxURVJfTU9ERS5MSU5FQVIsIG1pcG1hcEZpbHRlcjogRklMVEVSX01PREUuTkVBUkVTVH0sXG4gICAgW0dMLkxJTkVBUl9NSVBNQVBfTElORUFSXToge21pbkZpbHRlcjogRklMVEVSX01PREUuTElORUFSLCBtaXBtYXBGaWx0ZXI6IEZJTFRFUl9NT0RFLkxJTkVBUn1cbiAgfTtcblxuICBjb25zdCB3cmFwTWFwID0ge1xuICAgIFtHTC5DTEFNUF9UT19FREdFXTogQUREUkVTU19NT0RFLkNMQU1QX1RPX0VER0UsXG4gICAgW0dMLlJFUEVBVF06IEFERFJFU1NfTU9ERS5SRVBFQVQsXG4gICAgW0dMLk1JUlJPUkVEX1JFUEVBVF06IEFERFJFU1NfTU9ERS5NSVJST1JfUkVQRUFUXG4gIH07XG5cbiAgaWYgKG9sZFBhcmFtcykge1xuICAgIGlmIChvbGRQYXJhbXNbR0wuVEVYVFVSRV9NSU5fRklMVEVSXSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zdCBtYXBwZWQgPSBtaW5GaWx0ZXJNYXBbb2xkUGFyYW1zW0dMLlRFWFRVUkVfTUlOX0ZJTFRFUl1dO1xuICAgICAgaWYgKG1hcHBlZCkge1xuICAgICAgICByZXN1bHQubWluRmlsdGVyID0gbWFwcGVkLm1pbkZpbHRlcjtcbiAgICAgICAgaWYgKG1hcHBlZC5taXBtYXBGaWx0ZXIpIHtcbiAgICAgICAgICByZXN1bHQubWlwbWFwRmlsdGVyID0gbWFwcGVkLm1pcG1hcEZpbHRlcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAob2xkUGFyYW1zW0dMLlRFWFRVUkVfTUFHX0ZJTFRFUl0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmVzdWx0Lm1hZ0ZpbHRlciA9IG1hZ0ZpbHRlck1hcFtvbGRQYXJhbXNbR0wuVEVYVFVSRV9NQUdfRklMVEVSXV0gfHwgRklMVEVSX01PREUuTkVBUkVTVDtcbiAgICB9XG4gICAgaWYgKG9sZFBhcmFtc1tHTC5URVhUVVJFX1dSQVBfU10gIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmVzdWx0LmFkZHJlc3NNb2RlVSA9IHdyYXBNYXBbb2xkUGFyYW1zW0dMLlRFWFRVUkVfV1JBUF9TXV0gfHwgQUREUkVTU19NT0RFLkNMQU1QX1RPX0VER0U7XG4gICAgfVxuICAgIGlmIChvbGRQYXJhbXNbR0wuVEVYVFVSRV9XUkFQX1RdICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJlc3VsdC5hZGRyZXNzTW9kZVYgPSB3cmFwTWFwW29sZFBhcmFtc1tHTC5URVhUVVJFX1dSQVBfVF1dIHx8IEFERFJFU1NfTU9ERS5DTEFNUF9UT19FREdFO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbi8qKlxuICogTWFwIG9sZCBHTCBmb3JtYXQvdHlwZSB0byBsdW1hLmdsIDkgdGV4dHVyZSBmb3JtYXQgc3RyaW5nXG4gKi9cbmZ1bmN0aW9uIG1hcFRleHR1cmVGb3JtYXQoZ2xGb3JtYXQ6IG51bWJlciwgX2dsVHlwZT86IG51bWJlcik6IHN0cmluZyB7XG4gIHN3aXRjaCAoZ2xGb3JtYXQpIHtcbiAgICBjYXNlIEdMLlI4VUk6XG4gICAgICByZXR1cm4gVEVYVFVSRV9GT1JNQVQuUjhfVUlOVDtcbiAgICBjYXNlIEdMLlIxNlVJOlxuICAgICAgcmV0dXJuIFRFWFRVUkVfRk9STUFULlIxNl9VSU5UO1xuICAgIGNhc2UgR0wuUjMyVUk6XG4gICAgICByZXR1cm4gVEVYVFVSRV9GT1JNQVQuUjMyX1VJTlQ7XG4gICAgY2FzZSBHTC5SOEk6XG4gICAgICByZXR1cm4gVEVYVFVSRV9GT1JNQVQuUjhfU0lOVDtcbiAgICBjYXNlIEdMLlIxNkk6XG4gICAgICByZXR1cm4gVEVYVFVSRV9GT1JNQVQuUjE2X1NJTlQ7XG4gICAgY2FzZSBHTC5SMzJJOlxuICAgICAgcmV0dXJuIFRFWFRVUkVfRk9STUFULlIzMl9TSU5UO1xuICAgIGNhc2UgR0wuUjMyRjpcbiAgICAgIHJldHVybiBURVhUVVJFX0ZPUk1BVC5SMzJfRkxPQVQ7XG4gICAgY2FzZSBHTC5SR0JBOlxuICAgICAgcmV0dXJuIFRFWFRVUkVfRk9STUFULlJHQkE4X1VOT1JNO1xuICAgIGNhc2UgR0wuUkdCOlxuICAgICAgcmV0dXJuIFRFWFRVUkVfRk9STUFULlJHQkE4X1VOT1JNO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gVEVYVFVSRV9GT1JNQVQuUkdCQThfVU5PUk07XG4gIH1cbn1cblxuLyoqXG4gKiBFeHBhbmQgMy1ieXRlLXBlci1waXhlbCBSR0IgZGF0YSB0byA0LWJ5dGUtcGVyLXBpeGVsIFJHQkEuXG4gKiBOZWVkZWQgYmVjYXVzZSBXZWJHUFUvbHVtYS5nbCA5IGhhcyBubyAzLWNoYW5uZWwgdGV4dHVyZSBmb3JtYXQuXG4gKi9cbmZ1bmN0aW9uIGV4cGFuZFJHQnRvUkdCQShcbiAgZGF0YTogVWludDhBcnJheSB8IFVpbnQ4Q2xhbXBlZEFycmF5LFxuICB3aWR0aDogbnVtYmVyLFxuICBoZWlnaHQ6IG51bWJlclxuKTogVWludDhBcnJheSB7XG4gIGNvbnN0IHBpeGVsQ291bnQgPSB3aWR0aCAqIGhlaWdodDtcbiAgY29uc3QgcmdiYSA9IG5ldyBVaW50OEFycmF5KHBpeGVsQ291bnQgKiA0KTtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBwaXhlbENvdW50OyBpKyspIHtcbiAgICByZ2JhW2kgKiA0XSA9IGRhdGFbaSAqIDNdO1xuICAgIHJnYmFbaSAqIDQgKyAxXSA9IGRhdGFbaSAqIDMgKyAxXTtcbiAgICByZ2JhW2kgKiA0ICsgMl0gPSBkYXRhW2kgKiAzICsgMl07XG4gICAgcmdiYVtpICogNCArIDNdID0gMjU1O1xuICB9XG4gIHJldHVybiByZ2JhO1xufVxuXG4vKipcbiAqIENyZWF0ZSB0ZXh0dXJlIG9iamVjdCBmcm9tIGltYWdlIGRhdGEgdXNpbmcgbHVtYS5nbCA5IGRldmljZSBBUEkuXG4gKiBSZXR1cm5zIGEgcHJvcGVyIGx1bWEuZ2wgVGV4dHVyZSBvYmplY3QgdGhhdCB3b3JrcyB3aXRoIHRoZSBiaW5kaW5nIHN5c3RlbS5cbiAqL1xuZnVuY3Rpb24gbG9hZFRleHR1cmUoXG4gIGdsOiBXZWJHTDJSZW5kZXJpbmdDb250ZXh0LFxuICBkZXZpY2U6IEx1bWFEZXZpY2UgfCB1bmRlZmluZWQsXG4gIGltYWdlRGF0YTogVGV4dHVyZSB8IFJhc3RlclRleHR1cmVEYXRhXG4pOiBUZXh0dXJlIHwgbnVsbCB7XG4gIGlmICghaW1hZ2VEYXRhKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAvLyBJZiBhbHJlYWR5IGEgbHVtYS5nbCBUZXh0dXJlIGluc3RhbmNlLCByZXR1cm4gYXMtaXNcbiAgY29uc3QgcmFzdGVyVGV4dHVyZURhdGEgPSBpbWFnZURhdGEgYXMgUmFzdGVyVGV4dHVyZURhdGE7XG4gIGlmIChcbiAgICByYXN0ZXJUZXh0dXJlRGF0YS5oYW5kbGUgfHxcbiAgICByYXN0ZXJUZXh0dXJlRGF0YS5pZD8uc3RhcnRzV2l0aD8uKCdsdW1hJykgfHxcbiAgICByYXN0ZXJUZXh0dXJlRGF0YS5kZXZpY2VcbiAgKSB7XG4gICAgcmV0dXJuIGltYWdlRGF0YSBhcyBUZXh0dXJlO1xuICB9XG5cbiAgY29uc3QgcmF3RGF0YSA9IGltYWdlRGF0YSBhcyBSYXN0ZXJUZXh0dXJlRGF0YTtcblxuICAvLyBAdHMtZXhwZWN0LWVycm9yIGx1bWEgaW50ZXJuYWwgcHJvcGVydGllcyBub3QgaW4gV2ViR0wyUmVuZGVyaW5nQ29udGV4dCB0eXBlXG4gIGNvbnN0IGx1bWFEZXZpY2UgPSBkZXZpY2UgfHwgZ2wubHVtYT8uZGV2aWNlIHx8IGdsLl9fbHVtYV9kZXZpY2U7XG5cbiAgaWYgKCFsdW1hRGV2aWNlPy5jcmVhdGVUZXh0dXJlKSB7XG4gICAgY29uc29sZS53YXJuKCdSYXN0ZXJMYXllcjogTm8gbHVtYS5nbCBkZXZpY2UgYXZhaWxhYmxlIGZvciB0ZXh0dXJlIGNyZWF0aW9uJyk7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICB0cnkge1xuICAgIGNvbnN0IHNhbXBsZXJQYXJhbXMgPSBtYXBTYW1wbGVyUGFyYW1ldGVycyhyYXdEYXRhLnBhcmFtZXRlcnMgfHwge30pO1xuICAgIGNvbnN0IHRleHR1cmVGb3JtYXQgPSByYXdEYXRhLmZvcm1hdFxuICAgICAgPyBtYXBUZXh0dXJlRm9ybWF0KHJhd0RhdGEuZm9ybWF0LCByYXdEYXRhLnR5cGUpXG4gICAgICA6IFRFWFRVUkVfRk9STUFULlJHQkE4X1VOT1JNO1xuXG4gICAgY29uc3Qgd2lkdGggPSByYXdEYXRhLndpZHRoIHx8IHJhd0RhdGEuZGF0YT8ud2lkdGggfHwgMTtcbiAgICBjb25zdCBoZWlnaHQgPSByYXdEYXRhLmhlaWdodCB8fCByYXdEYXRhLmRhdGE/LmhlaWdodCB8fCAxO1xuXG4gICAgY29uc3QgdGV4dHVyZVByb3BzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHtcbiAgICAgIHdpZHRoLFxuICAgICAgaGVpZ2h0LFxuICAgICAgZm9ybWF0OiB0ZXh0dXJlRm9ybWF0LFxuICAgICAgc2FtcGxlcjogc2FtcGxlclBhcmFtcyxcbiAgICAgIC4uLihyYXdEYXRhLm1pcG1hcHMgPT09IGZhbHNlID8ge21pcG1hcHM6IGZhbHNlfSA6IHt9KVxuICAgIH07XG5cbiAgICBpZiAocmF3RGF0YS5kYXRhKSB7XG4gICAgICBpZiAoXG4gICAgICAgIHJhd0RhdGEuZGF0YSBpbnN0YW5jZW9mIEhUTUxJbWFnZUVsZW1lbnQgfHxcbiAgICAgICAgcmF3RGF0YS5kYXRhIGluc3RhbmNlb2YgSFRNTENhbnZhc0VsZW1lbnQgfHxcbiAgICAgICAgcmF3RGF0YS5kYXRhIGluc3RhbmNlb2YgSW1hZ2VCaXRtYXAgfHxcbiAgICAgICAgcmF3RGF0YS5kYXRhIGluc3RhbmNlb2YgSW1hZ2VEYXRhXG4gICAgICApIHtcbiAgICAgICAgdGV4dHVyZVByb3BzLmRhdGEgPSByYXdEYXRhLmRhdGE7XG4gICAgICB9IGVsc2UgaWYgKEFycmF5QnVmZmVyLmlzVmlldyhyYXdEYXRhLmRhdGEpKSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICByYXdEYXRhLmZvcm1hdCA9PT0gR0wuUkdCICYmXG4gICAgICAgICAgKHJhd0RhdGEuZGF0YSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkgfHwgcmF3RGF0YS5kYXRhIGluc3RhbmNlb2YgVWludDhDbGFtcGVkQXJyYXkpXG4gICAgICAgICkge1xuICAgICAgICAgIHRleHR1cmVQcm9wcy5kYXRhID0gZXhwYW5kUkdCdG9SR0JBKHJhd0RhdGEuZGF0YSwgd2lkdGgsIGhlaWdodCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGV4dHVyZVByb3BzLmRhdGEgPSByYXdEYXRhLmRhdGE7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbHVtYURldmljZS5jcmVhdGVUZXh0dXJlKHRleHR1cmVQcm9wcyk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBjb25zb2xlLndhcm4oJ1Jhc3RlckxheWVyOiBGYWlsZWQgdG8gY3JlYXRlIHRleHR1cmUgdmlhIGRldmljZS5jcmVhdGVUZXh0dXJlOicsIGUpO1xuICAgIHJldHVybiBudWxsO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBSUEsSUFBQUEsVUFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsUUFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBRUEsSUFBQUcsV0FBQSxHQUFBSCxPQUFBO0FBQStFLFNBQUFJLFFBQUFDLENBQUEsRUFBQUMsQ0FBQSxRQUFBQyxDQUFBLEdBQUFDLE1BQUEsQ0FBQUMsSUFBQSxDQUFBSixDQUFBLE9BQUFHLE1BQUEsQ0FBQUUscUJBQUEsUUFBQUMsQ0FBQSxHQUFBSCxNQUFBLENBQUFFLHFCQUFBLENBQUFMLENBQUEsR0FBQUMsQ0FBQSxLQUFBSyxDQUFBLEdBQUFBLENBQUEsQ0FBQUMsTUFBQSxXQUFBTixDQUFBLFdBQUFFLE1BQUEsQ0FBQUssd0JBQUEsQ0FBQVIsQ0FBQSxFQUFBQyxDQUFBLEVBQUFRLFVBQUEsT0FBQVAsQ0FBQSxDQUFBUSxJQUFBLENBQUFDLEtBQUEsQ0FBQVQsQ0FBQSxFQUFBSSxDQUFBLFlBQUFKLENBQUE7QUFBQSxTQUFBVSxjQUFBWixDQUFBLGFBQUFDLENBQUEsTUFBQUEsQ0FBQSxHQUFBWSxTQUFBLENBQUFDLE1BQUEsRUFBQWIsQ0FBQSxVQUFBQyxDQUFBLFdBQUFXLFNBQUEsQ0FBQVosQ0FBQSxJQUFBWSxTQUFBLENBQUFaLENBQUEsUUFBQUEsQ0FBQSxPQUFBRixPQUFBLENBQUFJLE1BQUEsQ0FBQUQsQ0FBQSxP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
|
|
@@ -6,6 +6,10 @@ export default class RasterLayer extends BitmapLayer<RasterLayerAddedProps> {
|
|
|
6
6
|
images: ImageState;
|
|
7
7
|
};
|
|
8
8
|
_redrawScheduled: boolean;
|
|
9
|
+
_pendingImageRetry: RasterLayerAddedProps['images'] | null;
|
|
10
|
+
/** How many consecutive frames have retried a failed texture upload. */
|
|
11
|
+
_imageRetryCount: number;
|
|
12
|
+
static readonly MAX_IMAGE_RETRY_ATTEMPTS = 3;
|
|
9
13
|
initializeState(): void;
|
|
10
14
|
draw(_opts: {
|
|
11
15
|
shaderModuleProps: Record<string, unknown>;
|