@kepler.gl/deckgl-layers 3.3.0-alpha.8 → 3.3.0-alpha.9

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.
@@ -8,13 +8,13 @@ exports.addGlobeCellProjection = addGlobeCellProjection;
8
8
  exports.makeGlobeCellLayerClass = makeGlobeCellLayerClass;
9
9
  exports.runBinOptionsWithMercatorViewport = runBinOptionsWithMercatorViewport;
10
10
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
11
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
12
11
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
12
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
14
13
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
15
14
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
16
15
  var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
17
16
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
17
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
18
18
  var _core = require("@deck.gl/core");
19
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
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; }
@@ -126,6 +126,29 @@ function runBinOptionsWithMercatorViewport(layer, callSuper) {
126
126
  * compilation / sublayer diffing stays stable.
127
127
  */
128
128
  var globeCellClassCache = new WeakMap();
129
+ /**
130
+ * deck.gl's GridCellLayer / HexagonCellLayer bind the `colorRange` palette
131
+ * texture only when the `colorRange` *prop* changes. ColumnLayer (the parent)
132
+ * destroys and recreates `fillModel` whenever `extensionsChanged` fires —
133
+ * which happens when Light & Shadow registers the shadow shader module.
134
+ * The new model starts with empty bindings, the colorRange check is a no-op,
135
+ * and luma.gl skips the draw: "Binding colorRange not found in …-cells-fill-cached".
136
+ * Recreating the Kepler layer "fixes" it because initialize/update then sees a
137
+ * colorRange change against empty oldProps and binds the texture again.
138
+ *
139
+ * Re-bind the existing texture onto whatever fillModel is current. Harmless
140
+ * when the parent already bound it; required after a model rebuild.
141
+ */
142
+ function bindColorRangeTexture(layer, moduleName) {
143
+ var _layer$state, _layer$state2;
144
+ var model = (_layer$state = layer.state) === null || _layer$state === void 0 ? void 0 : _layer$state.fillModel;
145
+ var colorTexture = (_layer$state2 = layer.state) === null || _layer$state2 === void 0 ? void 0 : _layer$state2.colorTexture;
146
+ if (model !== null && model !== void 0 && model.shaderInputs && colorTexture) {
147
+ model.shaderInputs.setProps((0, _defineProperty2["default"])({}, moduleName, {
148
+ colorRange: colorTexture
149
+ }));
150
+ }
151
+ }
129
152
  function makeGlobeCellLayerClass(BaseCellLayer, type) {
130
153
  var cached = globeCellClassCache.get(BaseCellLayer);
131
154
  if (cached) {
@@ -146,6 +169,12 @@ function makeGlobeCellLayerClass(BaseCellLayer, type) {
146
169
  modules: [].concat((0, _toConsumableArray2["default"])(shaders.modules || []), [globeCellUniforms])
147
170
  });
148
171
  }
172
+ }, {
173
+ key: "updateState",
174
+ value: function updateState(params) {
175
+ _superPropGet(GlobeCellLayer, "updateState", this, 3)([params]);
176
+ bindColorRangeTexture(this, type);
177
+ }
149
178
  }, {
150
179
  key: "draw",
151
180
  value: function draw(opts) {
@@ -162,6 +191,7 @@ function makeGlobeCellLayerClass(BaseCellLayer, type) {
162
191
  }
163
192
  });
164
193
  }
194
+ bindColorRangeTexture(this, type);
165
195
  _superPropGet(GlobeCellLayer, "draw", this, 3)([opts]);
166
196
  }
167
197
  }]);
@@ -170,4 +200,4 @@ function makeGlobeCellLayerClass(BaseCellLayer, type) {
170
200
  globeCellClassCache.set(BaseCellLayer, GlobeCellLayer);
171
201
  return GlobeCellLayer;
172
202
  }
173
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29yZSIsInJlcXVpcmUiLCJvd25LZXlzIiwiZSIsInIiLCJ0IiwiT2JqZWN0Iiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsIl9jYWxsU3VwZXIiLCJfZ2V0UHJvdG90eXBlT2YyIiwiX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4yIiwiX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCIsIlJlZmxlY3QiLCJjb25zdHJ1Y3QiLCJjb25zdHJ1Y3RvciIsIkJvb2xlYW4iLCJwcm90b3R5cGUiLCJ2YWx1ZU9mIiwiY2FsbCIsIl9zdXBlclByb3BHZXQiLCJwIiwiX2dldDIiLCJnbG9iZUNlbGxVbmlmb3JtcyIsIm5hbWUiLCJ2cyIsInVuaWZvcm1UeXBlcyIsImdsb2JlTW9kZSIsIkdMT0JFX0NFTExfREVDTCIsImFkZEdsb2JlQ2VsbFByb2plY3Rpb24iLCJ0eXBlIiwiZGVjbCIsImNvbmNhdCIsIndpdGhEZWNsIiwiaW5jbHVkZXMiLCJyZXBsYWNlIiwidGFyZ2V0IiwiY29uc29sZSIsImVycm9yIiwicnVuQmluT3B0aW9uc1dpdGhNZXJjYXRvclZpZXdwb3J0IiwibGF5ZXIiLCJjYWxsU3VwZXIiLCJfbGF5ZXIkY29udGV4dCIsInZpZXdwb3J0IiwiY29udGV4dCIsImlzR2xvYmUiLCJyZXNvbHV0aW9uIiwibWVyY2F0b3JWaWV3cG9ydCIsIldlYk1lcmNhdG9yVmlld3BvcnQiLCJ3aWR0aCIsImhlaWdodCIsImxvbmdpdHVkZSIsImxhdGl0dWRlIiwiem9vbSIsIm9yaWdpbmFsVmlld3BvcnQiLCJnbG9iZUNlbGxDbGFzc0NhY2hlIiwiV2Vha01hcCIsIm1ha2VHbG9iZUNlbGxMYXllckNsYXNzIiwiQmFzZUNlbGxMYXllciIsImNhY2hlZCIsImdldCIsIkdsb2JlQ2VsbExheWVyIiwiX3JlZiIsIl9jbGFzc0NhbGxDaGVjazIiLCJfaW5oZXJpdHMyIiwiX2NyZWF0ZUNsYXNzMiIsImtleSIsInZhbHVlIiwiZ2V0U2hhZGVycyIsInNoYWRlcnMiLCJtb2R1bGVzIiwiX3RvQ29uc3VtYWJsZUFycmF5MiIsImRyYXciLCJvcHRzIiwibW9kZWwiLCJzdGF0ZSIsImZpbGxNb2RlbCIsInNoYWRlcklucHV0cyIsInNldFByb3BzIiwiZ2xvYmVDZWxsIiwibGF5ZXJOYW1lIiwic2V0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xheWVyLXV0aWxzL2dsb2JlLWNlbGwtdXRpbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IHtXZWJNZXJjYXRvclZpZXdwb3J0fSBmcm9tICdAZGVjay5nbC9jb3JlJztcblxuLyoqXG4gKiBkZWNrLmdsJ3MgYWdncmVnYXRpb24gY2VsbCBsYXllcnMgKEdyaWRDZWxsTGF5ZXIgLyBIZXhhZ29uQ2VsbExheWVyKSBwb3NpdGlvblxuICogZWFjaCBjZWxsIGluIGZsYXQgbWVyY2F0b3IgXCJjb21tb24gc3BhY2VcIiAoYSAyRCBYWSBwbGFuZSkgYW5kIHRoZW4gZHJhdyBpdCB3aXRoXG4gKiBgcHJvamVjdF9jb21tb25fcG9zaXRpb25fdG9fY2xpcHNwYWNlYCwgd2hpY2ggb25seSBtdWx0aXBsaWVzIGJ5IHRoZVxuICogdmlldy1wcm9qZWN0aW9uIG1hdHJpeC4gVW5kZXIgYF9HbG9iZVZpZXdgIHRoaXMgbGVhdmVzIHRoZSBjZWxscyBvbiB0aGUgZmxhdCBYWVxuICogcGxhbmUgdGhhdCBwYXNzZXMgdGhyb3VnaCB0aGUgY2VudGVyIG9mIHRoZSBnbG9iZSBpbnN0ZWFkIG9mIG9uIGl0cyBzdXJmYWNlXG4gKiAodGhlIGJhc2UgQ29sdW1uTGF5ZXIgd29ya3Mgb24gdGhlIGdsb2JlIGJlY2F1c2UgaXQgZmVlZHMgcmVhbCBsbmcvbGF0IHRocm91Z2hcbiAqIGBwcm9qZWN0X3Bvc2l0aW9uYCAtPiBgcHJvamVjdF9nbG9iZV9gOyB0aGUgYWdncmVnYXRpb24gY2VsbCBzaGFkZXJzIHNraXAgdGhhdCkuXG4gKlxuICogVG8gZml4IHRoaXMgd2UgcmVtYXAgdGhlIGFscmVhZHktY29tcHV0ZWQgZmxhdCBjb21tb24tc3BhY2UgdmVydGV4IHBvc2l0aW9uIGJhY2tcbiAqIHRvIGxuZy9sYXQgKGludmVyc2UgV2ViIE1lcmNhdG9yKSBhbmQgdGhlbiBvbnRvIHRoZSBzcGhlcmUgd2l0aCB0aGUgc2FtZSBtYXRoXG4gKiBgcHJvamVjdF9nbG9iZV9gIHVzZXMgZm9yIGdlb2dyYXBoaWMgbGF5ZXJzLiBCZWNhdXNlIHdlIHJlbWFwIGV2ZXJ5IHZlcnRleCBvZiB0aGVcbiAqIGNlbGwgZm9vdHByaW50IChub3QganVzdCB0aGUgY2VudHJvaWQpLCB0aGUgZmxhdCBxdWFkL2hleGFnb24gbmF0dXJhbGx5IGN1cnZlc1xuICogb250byB0aGUgc3VyZmFjZS4gRWxldmF0aW9uIChleHRydWRlZCBjZWxscywgc3RvcmVkIGluIGBnZW9tZXRyeS5wb3NpdGlvbi56YCBpblxuICogY29tbW9uIHVuaXRzKSBpcyBhZGRlZCBhbG9uZyB0aGUgcmFkaXVzIHNvIGNvbHVtbnMgcmlzZSByYWRpYWxseSBvZmYgdGhlIGdsb2JlLlxuICpcbiAqIFRoZSByZW1hcCBpcyBnYXRlZCBieSBhIGBnbG9iZU1vZGVgIHVuaWZvcm0gc28gMkQvM0QgbWVyY2F0b3IgcmVuZGVyaW5nIGlzXG4gKiBieXRlLWZvci1ieXRlIHVuY2hhbmdlZC5cbiAqXG4gKiBgV09STERfU0NBTEVgLCBgUElgLCBgR0xPQkVfUkFESVVTYCBhbmQgYHByb2plY3QuY29tbW9uT3JpZ2luYCBhcmUgYWxsIHByb3ZpZGVkXG4gKiBieSBkZWNrLmdsJ3MgcHJvamVjdCBzaGFkZXIgbW9kdWxlIHdoaWNoIHRoZXNlIGxheWVycyBpbmNsdWRlLlxuICovXG5cbi8vIGRlY2suZ2wgOSAvIGx1bWEgOSBzZXRzIGN1c3RvbSB1bmlmb3JtcyB2aWEgVUJPLWJhY2tlZCBzaGFkZXIgbW9kdWxlcyAodGhlcmUgaXNcbi8vIG5vIE1vZGVsLnNldFVuaWZvcm1zKS4gVGhpcyBtaW5pbWFsIG1vZHVsZSBleHBvc2VzIHRoZSBnbG9iZS1tb2RlIGZsYWcuXG5jb25zdCBnbG9iZUNlbGxVbmlmb3JtcyA9IHtcbiAgbmFtZTogJ2dsb2JlQ2VsbCcsXG4gIHZzOiBgbGF5b3V0KHN0ZDE0MCkgdW5pZm9ybSBnbG9iZUNlbGxVbmlmb3JtcyB7XG4gIGZsb2F0IGdsb2JlTW9kZTtcbn0gZ2xvYmVDZWxsUHJvcHM7XG5gLFxuICB1bmlmb3JtVHlwZXM6IHtcbiAgICBnbG9iZU1vZGU6ICdmMzInXG4gIH1cbn0gYXMgY29uc3Q7XG5cbmNvbnN0IEdMT0JFX0NFTExfREVDTCA9IC8qIGdsc2wgKi8gYFxuLy8gSW52ZXJzZSBvZiBkZWNrLmdsIHByb2plY3RfbWVyY2F0b3JfOiBmbGF0IGNvbW1vbiBYWSAtPiBsbmcvbGF0IChkZWdyZWVzKS5cbnZlYzIga2VwbGVyX2NvbW1vblRvTG5nTGF0KHZlYzIgY29tbW9uWFkpIHtcbiAgZmxvYXQgbG5nID0gZGVncmVlcyhjb21tb25YWS54IC8gV09STERfU0NBTEUgLSBQSSk7XG4gIGZsb2F0IGxhdCA9IGRlZ3JlZXMoMi4wICogYXRhbihleHAoY29tbW9uWFkueSAvIFdPUkxEX1NDQUxFIC0gUEkpKSAtIFBJICogMC41KTtcbiAgcmV0dXJuIHZlYzIobG5nLCBsYXQpO1xufVxuXG4vLyBTYW1lIG1hdGggYXMgZGVjay5nbCBwcm9qZWN0X2dsb2JlXy4gZWxldmF0aW9uQ29tbW9uIGlzIGluIGNvbW1vbiB1bml0cyBhbHJlYWR5XG4vLyAoR0xPQkVfUkFESVVTIHNwYWNlKSwgbWF0Y2hpbmcgaG93IHByb2plY3RfZ2xvYmVfIHNjYWxlcyB6IG9mZiBFQVJUSF9SQURJVVMuXG52ZWMzIGtlcGxlcl9sbmdMYXRUb0dsb2JlKHZlYzIgbG5nTGF0LCBmbG9hdCBlbGV2YXRpb25Db21tb24pIHtcbiAgZmxvYXQgbGFtYmRhID0gcmFkaWFucyhsbmdMYXQueCk7XG4gIGZsb2F0IHBoaSA9IHJhZGlhbnMobG5nTGF0LnkpO1xuICBmbG9hdCBjb3NQaGkgPSBjb3MocGhpKTtcbiAgZmxvYXQgRCA9IEdMT0JFX1JBRElVUyArIGVsZXZhdGlvbkNvbW1vbjtcbiAgcmV0dXJuIHZlYzMoXG4gICAgc2luKGxhbWJkYSkgKiBjb3NQaGksXG4gICAgLWNvcyhsYW1iZGEpICogY29zUGhpLFxuICAgIHNpbihwaGkpXG4gICkgKiBEO1xufVxuYDtcblxuLyoqXG4gKiBSZXdyaXRlcyBhIGdyaWQvaGV4YWdvbiBjZWxsIHZlcnRleCBzaGFkZXIgc28gdGhhdCwgaW4gZ2xvYmUgbW9kZSwgdGhlIGZpbmFsXG4gKiBjbGlwLXNwYWNlIHBvc2l0aW9uIGlzIGRlcml2ZWQgZnJvbSB0aGUgc3BoZXJlIHN1cmZhY2UgaW5zdGVhZCBvZiB0aGUgZmxhdCBYWVxuICogcGxhbmUuIEluIDJELzNEIG1vZGUgdGhlIG9yaWdpbmFsIHBhdGggaXMga2VwdCB1bmNoYW5nZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhZGRHbG9iZUNlbGxQcm9qZWN0aW9uKHZzOiBzdHJpbmcsIHR5cGU6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IGRlY2wgPSBgJHtHTE9CRV9DRUxMX0RFQ0x9XFxudm9pZCBtYWluKHZvaWQpIHtgO1xuICBjb25zdCB3aXRoRGVjbCA9IHZzLmluY2x1ZGVzKCd2b2lkIG1haW4odm9pZCkgeycpID8gdnMucmVwbGFjZSgndm9pZCBtYWluKHZvaWQpIHsnLCBkZWNsKSA6IHZzO1xuXG4gIGNvbnN0IHRhcmdldCA9ICdnbF9Qb3NpdGlvbiA9IHByb2plY3RfY29tbW9uX3Bvc2l0aW9uX3RvX2NsaXBzcGFjZShnZW9tZXRyeS5wb3NpdGlvbik7JztcbiAgaWYgKCF3aXRoRGVjbC5pbmNsdWRlcyh0YXJnZXQpKSB7XG4gICAgLy8gU2hhZGVyIHNoYXBlIGNoYW5nZWQgaW4gYSBkZWNrLmdsIHVwZGF0ZTsgbGVhdmUgdGhlIG9yaWdpbmFsIHNvIHdlIGRvbid0IGNyYXNoLlxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgY29uc29sZS5lcnJvcihgQ2Fubm90IGVkaXQgJHt0eXBlfSBnbG9iZSBjZWxsIHNoYWRlcmApO1xuICAgIHJldHVybiB3aXRoRGVjbDtcbiAgfVxuXG4gIHJldHVybiB3aXRoRGVjbC5yZXBsYWNlKFxuICAgIHRhcmdldCxcbiAgICBgaWYgKGdsb2JlQ2VsbFByb3BzLmdsb2JlTW9kZSA+IDAuNSkge1xuICAgICAgdmVjMiBsbmdMYXQgPSBrZXBsZXJfY29tbW9uVG9MbmdMYXQoZ2VvbWV0cnkucG9zaXRpb24ueHkgKyBwcm9qZWN0LmNvbW1vbk9yaWdpbi54eSk7XG4gICAgICB2ZWMzIGdsb2JlUG9zID0ga2VwbGVyX2xuZ0xhdFRvR2xvYmUobG5nTGF0LCBnZW9tZXRyeS5wb3NpdGlvbi56KTtcbiAgICAgIGdlb21ldHJ5LnBvc2l0aW9uID0gdmVjNChnbG9iZVBvcywgMS4wKTtcbiAgICB9XG4gICAgZ2xfUG9zaXRpb24gPSBwcm9qZWN0X2NvbW1vbl9wb3NpdGlvbl90b19jbGlwc3BhY2UoZ2VvbWV0cnkucG9zaXRpb24pO2BcbiAgKTtcbn1cblxuLyoqXG4gKiBkZWNrLmdsIDkncyBHcmlkL0hleGFnb24gYWdncmVnYXRpb24gY29tcHV0ZSBiaW4gcG9zaXRpb25zIGFuZCB0aGUgY2VsbCBsYXllcidzXG4gKiBcImNvbW1vbiBzcGFjZVwiIGZyb20gYHRoaXMuY29udGV4dC52aWV3cG9ydGAuIFVuZGVyIGBfR2xvYmVWaWV3YCB0aGF0IGNvbW1vbiBzcGFjZVxuICogaXMgdGhlIGdsb2JlJ3MgM0QtcHJvamVjdGVkIHNwYWNlIChwcm9qZWN0RmxhdCBpcyBpZGVudGl0eSBvbiBsbmcvbGF0LCBwb3NpdGlvbnNcbiAqIGJpbiBvZmYgdGhlIHNwaGVyZS1wcm9qZWN0ZWQgWFkpLCB3aGljaCBib3RoIG1pcy1iaW5zIGRhdGEgYW5kIOKAlCBjb21iaW5lZCB3aXRoIHRoZVxuICogZmxhdCBjZWxsIHNoYWRlciDigJQgZHJvcHMgY2VsbHMgb250byB0aGUgcGxhbmUgdGhyb3VnaCB0aGUgZ2xvYmUgY2VudGVyLlxuICpcbiAqIFdlIHNpZGVzdGVwIHRoaXMgYnkgcnVubmluZyBgX3VwZGF0ZUJpbk9wdGlvbnNgIHdpdGggYSBXZWJNZXJjYXRvclZpZXdwb3J0IHRoYXRcbiAqIG1hdGNoZXMgdGhlIGN1cnJlbnQgZ2xvYmUgY2FtZXJhLiBUaGF0IG1ha2VzIGJpbm5pbmcsIGBjZWxsT3JpZ2luQ29tbW9uYCAvXG4gKiBgY2VsbFNpemVDb21tb25gIChvciBgcmFkaXVzQ29tbW9uYCAvIGBoZXhPcmlnaW5Db21tb25gKSBhbmQgdGhlIGNlbGwgc2hhZGVyJ3NcbiAqIGZsYXQgcG9zaXRpb24gYWxsIGxpdmUgaW4gZ2VudWluZSBXZWIgTWVyY2F0b3IgY29tbW9uIHNwYWNlLCB3aGljaCB0aGUgY2VsbCBzaGFkZXJcbiAqIHJlbWFwIChgYWRkR2xvYmVDZWxsUHJvamVjdGlvbmApIHRoZW4gY3VydmVzIGJhY2sgb250byB0aGUgc3BoZXJlLiBJbiAyRC8zRCBtb2RlXG4gKiB0aGlzIGlzIGEgbm8tb3AuXG4gKlxuICogYGNhbGxTdXBlcmAgcnVucyBkZWNrLmdsJ3Mgb3JpZ2luYWwgYF91cGRhdGVCaW5PcHRpb25zYCB3aGlsZSB0aGUgdmlld3BvcnQgaXNcbiAqIHRlbXBvcmFyaWx5IHN3YXBwZWQuIFRoZSBzd2FwIGlzIHN5bmNocm9ub3VzIGFuZCByZXN0b3JlZCBpbiBgZmluYWxseWAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBydW5CaW5PcHRpb25zV2l0aE1lcmNhdG9yVmlld3BvcnQobGF5ZXI6IGFueSwgY2FsbFN1cGVyOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gIGNvbnN0IHZpZXdwb3J0ID0gbGF5ZXIuY29udGV4dD8udmlld3BvcnQ7XG4gIGNvbnN0IGlzR2xvYmUgPSBCb29sZWFuKHZpZXdwb3J0Py5yZXNvbHV0aW9uKTtcbiAgaWYgKCFpc0dsb2JlKSB7XG4gICAgY2FsbFN1cGVyKCk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgbWVyY2F0b3JWaWV3cG9ydCA9IG5ldyBXZWJNZXJjYXRvclZpZXdwb3J0KHtcbiAgICB3aWR0aDogdmlld3BvcnQud2lkdGgsXG4gICAgaGVpZ2h0OiB2aWV3cG9ydC5oZWlnaHQsXG4gICAgbG9uZ2l0dWRlOiB2aWV3cG9ydC5sb25naXR1ZGUsXG4gICAgbGF0aXR1ZGU6IHZpZXdwb3J0LmxhdGl0dWRlLFxuICAgIHpvb206IHZpZXdwb3J0Lnpvb21cbiAgfSk7XG5cbiAgY29uc3Qgb3JpZ2luYWxWaWV3cG9ydCA9IGxheWVyLmNvbnRleHQudmlld3BvcnQ7XG4gIGxheWVyLmNvbnRleHQudmlld3BvcnQgPSBtZXJjYXRvclZpZXdwb3J0O1xuICB0cnkge1xuICAgIGNhbGxTdXBlcigpO1xuICB9IGZpbmFsbHkge1xuICAgIGxheWVyLmNvbnRleHQudmlld3BvcnQgPSBvcmlnaW5hbFZpZXdwb3J0O1xuICB9XG59XG5cbi8qKlxuICogV3JhcHMgYSBkZWNrLmdsIGFnZ3JlZ2F0aW9uIGNlbGwgbGF5ZXIgY2xhc3MgKEdyaWRDZWxsTGF5ZXIgLyBIZXhhZ29uQ2VsbExheWVyKVxuICogd2l0aCBhIHN1YmNsYXNzIHRoYXQgaW5qZWN0cyB0aGUgZ2xvYmUgc3VyZmFjZSByZW1hcCBpbnRvIGl0cyB2ZXJ0ZXggc2hhZGVyLlxuICpcbiAqIFdlIGNyZWF0ZSB0aGUgc3ViY2xhc3MgZHluYW1pY2FsbHkgZnJvbSB3aGF0ZXZlciBkZWZhdWx0IGNsYXNzIGRlY2suZ2wgcHJvdmlkZXNcbiAqIHRvIGBnZXRTdWJMYXllckNsYXNzYCBzbyB3ZSBkb24ndCBoYXZlIHRvIGltcG9ydCB0aGUgKG5vbi1wdWJsaWMpIGNlbGwgbGF5ZXJcbiAqIGNsYXNzZXMgZGlyZWN0bHkuIFJlc3VsdHMgYXJlIGNhY2hlZCBwZXIgYmFzZSBjbGFzcyBzbyBkZWNrLmdsIHNlZXMgYSBzdGFibGVcbiAqIGxheWVyIGNsYXNzIGFjcm9zcyByZW5kZXJzIChsYXllcnMgYXJlIHJlY3JlYXRlZCBldmVyeSBmcmFtZSkgYW5kIHNoYWRlclxuICogY29tcGlsYXRpb24gLyBzdWJsYXllciBkaWZmaW5nIHN0YXlzIHN0YWJsZS5cbiAqL1xuY29uc3QgZ2xvYmVDZWxsQ2xhc3NDYWNoZSA9IG5ldyBXZWFrTWFwPG9iamVjdCwgb2JqZWN0PigpO1xuXG50eXBlIExheWVyQ29uc3RydWN0b3IgPSB7bmV3ICguLi5hcmdzOiBhbnlbXSk6IGFueTsgbGF5ZXJOYW1lPzogc3RyaW5nfTtcblxuZXhwb3J0IGZ1bmN0aW9uIG1ha2VHbG9iZUNlbGxMYXllckNsYXNzPFQgZXh0ZW5kcyBMYXllckNvbnN0cnVjdG9yPihcbiAgQmFzZUNlbGxMYXllcjogVCxcbiAgdHlwZTogc3RyaW5nXG4pOiBUIHtcbiAgY29uc3QgY2FjaGVkID0gZ2xvYmVDZWxsQ2xhc3NDYWNoZS5nZXQoQmFzZUNlbGxMYXllcik7XG4gIGlmIChjYWNoZWQpIHtcbiAgICByZXR1cm4gY2FjaGVkIGFzIFQ7XG4gIH1cblxuICBjbGFzcyBHbG9iZUNlbGxMYXllciBleHRlbmRzIChCYXNlQ2VsbExheWVyIGFzIHtuZXcgKC4uLmFyZ3M6IGFueVtdKTogYW55fSkge1xuICAgIGdldFNoYWRlcnMoKSB7XG4gICAgICBjb25zdCBzaGFkZXJzID0gc3VwZXIuZ2V0U2hhZGVycygpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc2hhZGVycyxcbiAgICAgICAgdnM6IGFkZEdsb2JlQ2VsbFByb2plY3Rpb24oc2hhZGVycy52cywgdHlwZSksXG4gICAgICAgIG1vZHVsZXM6IFsuLi4oc2hhZGVycy5tb2R1bGVzIHx8IFtdKSwgZ2xvYmVDZWxsVW5pZm9ybXNdXG4gICAgICB9O1xuICAgIH1cblxuICAgIGRyYXcob3B0czogYW55KSB7XG4gICAgICBjb25zdCBnbG9iZU1vZGUgPSAodGhpcy5jb250ZXh0LnZpZXdwb3J0IGFzIGFueSkucmVzb2x1dGlvbiA/IDEuMCA6IDAuMDtcbiAgICAgIC8vIEdyaWRDZWxsTGF5ZXIgLyBIZXhhZ29uQ2VsbExheWVyIHJlbmRlciB0aHJvdWdoIGEgc2luZ2xlIGZpbGxNb2RlbCBhbmQgc2V0XG4gICAgICAvLyB0aGVpciBvd24gbW9kdWxlIHByb3BzIGluIGRyYXcoKTsgc2V0IG91cnMgZmlyc3Qgc28gaXQgbWVyZ2VzIChzZXRQcm9wcyBpc1xuICAgICAgLy8gcGVyLW1vZHVsZSkuIGRlY2suZ2wgOSBoYXMgbm8gTW9kZWwuc2V0VW5pZm9ybXMg4oCUIHVuaWZvcm1zIGdvIHRocm91Z2hcbiAgICAgIC8vIHNoYWRlcklucHV0cyBVQk8gbW9kdWxlcy5cbiAgICAgIGNvbnN0IG1vZGVsID0gKHRoaXMuc3RhdGUgYXMgYW55KS5maWxsTW9kZWw7XG4gICAgICBpZiAobW9kZWw/LnNoYWRlcklucHV0cykge1xuICAgICAgICBtb2RlbC5zaGFkZXJJbnB1dHMuc2V0UHJvcHMoe2dsb2JlQ2VsbDoge2dsb2JlTW9kZX19KTtcbiAgICAgIH1cbiAgICAgIHN1cGVyLmRyYXcob3B0cyk7XG4gICAgfVxuICB9XG4gIChHbG9iZUNlbGxMYXllciBhcyB1bmtub3duIGFzIHtsYXllck5hbWU6IHN0cmluZ30pLmxheWVyTmFtZSA9IGBHbG9iZSR7dHlwZX1DZWxsTGF5ZXJgO1xuICBnbG9iZUNlbGxDbGFzc0NhY2hlLnNldChCYXNlQ2VsbExheWVyLCBHbG9iZUNlbGxMYXllcik7XG4gIHJldHVybiBHbG9iZUNlbGxMYXllciBhcyB1bmtub3duIGFzIFQ7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBR0EsSUFBQUEsS0FBQSxHQUFBQyxPQUFBO0FBQWtELFNBQUFDLFFBQUFDLENBQUEsRUFBQUMs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
203
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29yZSIsInJlcXVpcmUiLCJvd25LZXlzIiwiZSIsInIiLCJ0IiwiT2JqZWN0Iiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsIl9jYWxsU3VwZXIiLCJfZ2V0UHJvdG90eXBlT2YyIiwiX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4yIiwiX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCIsIlJlZmxlY3QiLCJjb25zdHJ1Y3QiLCJjb25zdHJ1Y3RvciIsIkJvb2xlYW4iLCJwcm90b3R5cGUiLCJ2YWx1ZU9mIiwiY2FsbCIsIl9zdXBlclByb3BHZXQiLCJwIiwiX2dldDIiLCJnbG9iZUNlbGxVbmlmb3JtcyIsIm5hbWUiLCJ2cyIsInVuaWZvcm1UeXBlcyIsImdsb2JlTW9kZSIsIkdMT0JFX0NFTExfREVDTCIsImFkZEdsb2JlQ2VsbFByb2plY3Rpb24iLCJ0eXBlIiwiZGVjbCIsImNvbmNhdCIsIndpdGhEZWNsIiwiaW5jbHVkZXMiLCJyZXBsYWNlIiwidGFyZ2V0IiwiY29uc29sZSIsImVycm9yIiwicnVuQmluT3B0aW9uc1dpdGhNZXJjYXRvclZpZXdwb3J0IiwibGF5ZXIiLCJjYWxsU3VwZXIiLCJfbGF5ZXIkY29udGV4dCIsInZpZXdwb3J0IiwiY29udGV4dCIsImlzR2xvYmUiLCJyZXNvbHV0aW9uIiwibWVyY2F0b3JWaWV3cG9ydCIsIldlYk1lcmNhdG9yVmlld3BvcnQiLCJ3aWR0aCIsImhlaWdodCIsImxvbmdpdHVkZSIsImxhdGl0dWRlIiwiem9vbSIsIm9yaWdpbmFsVmlld3BvcnQiLCJnbG9iZUNlbGxDbGFzc0NhY2hlIiwiV2Vha01hcCIsImJpbmRDb2xvclJhbmdlVGV4dHVyZSIsIm1vZHVsZU5hbWUiLCJfbGF5ZXIkc3RhdGUiLCJfbGF5ZXIkc3RhdGUyIiwibW9kZWwiLCJzdGF0ZSIsImZpbGxNb2RlbCIsImNvbG9yVGV4dHVyZSIsInNoYWRlcklucHV0cyIsInNldFByb3BzIiwiY29sb3JSYW5nZSIsIm1ha2VHbG9iZUNlbGxMYXllckNsYXNzIiwiQmFzZUNlbGxMYXllciIsImNhY2hlZCIsImdldCIsIkdsb2JlQ2VsbExheWVyIiwiX3JlZiIsIl9jbGFzc0NhbGxDaGVjazIiLCJfaW5oZXJpdHMyIiwiX2NyZWF0ZUNsYXNzMiIsImtleSIsInZhbHVlIiwiZ2V0U2hhZGVycyIsInNoYWRlcnMiLCJtb2R1bGVzIiwiX3RvQ29uc3VtYWJsZUFycmF5MiIsInVwZGF0ZVN0YXRlIiwicGFyYW1zIiwiZHJhdyIsIm9wdHMiLCJnbG9iZUNlbGwiLCJsYXllck5hbWUiLCJzZXQiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGF5ZXItdXRpbHMvZ2xvYmUtY2VsbC11dGlscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQge1dlYk1lcmNhdG9yVmlld3BvcnR9IGZyb20gJ0BkZWNrLmdsL2NvcmUnO1xuXG4vKipcbiAqIGRlY2suZ2wncyBhZ2dyZWdhdGlvbiBjZWxsIGxheWVycyAoR3JpZENlbGxMYXllciAvIEhleGFnb25DZWxsTGF5ZXIpIHBvc2l0aW9uXG4gKiBlYWNoIGNlbGwgaW4gZmxhdCBtZXJjYXRvciBcImNvbW1vbiBzcGFjZVwiIChhIDJEIFhZIHBsYW5lKSBhbmQgdGhlbiBkcmF3IGl0IHdpdGhcbiAqIGBwcm9qZWN0X2NvbW1vbl9wb3NpdGlvbl90b19jbGlwc3BhY2VgLCB3aGljaCBvbmx5IG11bHRpcGxpZXMgYnkgdGhlXG4gKiB2aWV3LXByb2plY3Rpb24gbWF0cml4LiBVbmRlciBgX0dsb2JlVmlld2AgdGhpcyBsZWF2ZXMgdGhlIGNlbGxzIG9uIHRoZSBmbGF0IFhZXG4gKiBwbGFuZSB0aGF0IHBhc3NlcyB0aHJvdWdoIHRoZSBjZW50ZXIgb2YgdGhlIGdsb2JlIGluc3RlYWQgb2Ygb24gaXRzIHN1cmZhY2VcbiAqICh0aGUgYmFzZSBDb2x1bW5MYXllciB3b3JrcyBvbiB0aGUgZ2xvYmUgYmVjYXVzZSBpdCBmZWVkcyByZWFsIGxuZy9sYXQgdGhyb3VnaFxuICogYHByb2plY3RfcG9zaXRpb25gIC0+IGBwcm9qZWN0X2dsb2JlX2A7IHRoZSBhZ2dyZWdhdGlvbiBjZWxsIHNoYWRlcnMgc2tpcCB0aGF0KS5cbiAqXG4gKiBUbyBmaXggdGhpcyB3ZSByZW1hcCB0aGUgYWxyZWFkeS1jb21wdXRlZCBmbGF0IGNvbW1vbi1zcGFjZSB2ZXJ0ZXggcG9zaXRpb24gYmFja1xuICogdG8gbG5nL2xhdCAoaW52ZXJzZSBXZWIgTWVyY2F0b3IpIGFuZCB0aGVuIG9udG8gdGhlIHNwaGVyZSB3aXRoIHRoZSBzYW1lIG1hdGhcbiAqIGBwcm9qZWN0X2dsb2JlX2AgdXNlcyBmb3IgZ2VvZ3JhcGhpYyBsYXllcnMuIEJlY2F1c2Ugd2UgcmVtYXAgZXZlcnkgdmVydGV4IG9mIHRoZVxuICogY2VsbCBmb290cHJpbnQgKG5vdCBqdXN0IHRoZSBjZW50cm9pZCksIHRoZSBmbGF0IHF1YWQvaGV4YWdvbiBuYXR1cmFsbHkgY3VydmVzXG4gKiBvbnRvIHRoZSBzdXJmYWNlLiBFbGV2YXRpb24gKGV4dHJ1ZGVkIGNlbGxzLCBzdG9yZWQgaW4gYGdlb21ldHJ5LnBvc2l0aW9uLnpgIGluXG4gKiBjb21tb24gdW5pdHMpIGlzIGFkZGVkIGFsb25nIHRoZSByYWRpdXMgc28gY29sdW1ucyByaXNlIHJhZGlhbGx5IG9mZiB0aGUgZ2xvYmUuXG4gKlxuICogVGhlIHJlbWFwIGlzIGdhdGVkIGJ5IGEgYGdsb2JlTW9kZWAgdW5pZm9ybSBzbyAyRC8zRCBtZXJjYXRvciByZW5kZXJpbmcgaXNcbiAqIGJ5dGUtZm9yLWJ5dGUgdW5jaGFuZ2VkLlxuICpcbiAqIGBXT1JMRF9TQ0FMRWAsIGBQSWAsIGBHTE9CRV9SQURJVVNgIGFuZCBgcHJvamVjdC5jb21tb25PcmlnaW5gIGFyZSBhbGwgcHJvdmlkZWRcbiAqIGJ5IGRlY2suZ2wncyBwcm9qZWN0IHNoYWRlciBtb2R1bGUgd2hpY2ggdGhlc2UgbGF5ZXJzIGluY2x1ZGUuXG4gKi9cblxuLy8gZGVjay5nbCA5IC8gbHVtYSA5IHNldHMgY3VzdG9tIHVuaWZvcm1zIHZpYSBVQk8tYmFja2VkIHNoYWRlciBtb2R1bGVzICh0aGVyZSBpc1xuLy8gbm8gTW9kZWwuc2V0VW5pZm9ybXMpLiBUaGlzIG1pbmltYWwgbW9kdWxlIGV4cG9zZXMgdGhlIGdsb2JlLW1vZGUgZmxhZy5cbmNvbnN0IGdsb2JlQ2VsbFVuaWZvcm1zID0ge1xuICBuYW1lOiAnZ2xvYmVDZWxsJyxcbiAgdnM6IGBsYXlvdXQoc3RkMTQwKSB1bmlmb3JtIGdsb2JlQ2VsbFVuaWZvcm1zIHtcbiAgZmxvYXQgZ2xvYmVNb2RlO1xufSBnbG9iZUNlbGxQcm9wcztcbmAsXG4gIHVuaWZvcm1UeXBlczoge1xuICAgIGdsb2JlTW9kZTogJ2YzMidcbiAgfVxufSBhcyBjb25zdDtcblxuY29uc3QgR0xPQkVfQ0VMTF9ERUNMID0gLyogZ2xzbCAqLyBgXG4vLyBJbnZlcnNlIG9mIGRlY2suZ2wgcHJvamVjdF9tZXJjYXRvcl86IGZsYXQgY29tbW9uIFhZIC0+IGxuZy9sYXQgKGRlZ3JlZXMpLlxudmVjMiBrZXBsZXJfY29tbW9uVG9MbmdMYXQodmVjMiBjb21tb25YWSkge1xuICBmbG9hdCBsbmcgPSBkZWdyZWVzKGNvbW1vblhZLnggLyBXT1JMRF9TQ0FMRSAtIFBJKTtcbiAgZmxvYXQgbGF0ID0gZGVncmVlcygyLjAgKiBhdGFuKGV4cChjb21tb25YWS55IC8gV09STERfU0NBTEUgLSBQSSkpIC0gUEkgKiAwLjUpO1xuICByZXR1cm4gdmVjMihsbmcsIGxhdCk7XG59XG5cbi8vIFNhbWUgbWF0aCBhcyBkZWNrLmdsIHByb2plY3RfZ2xvYmVfLiBlbGV2YXRpb25Db21tb24gaXMgaW4gY29tbW9uIHVuaXRzIGFscmVhZHlcbi8vIChHTE9CRV9SQURJVVMgc3BhY2UpLCBtYXRjaGluZyBob3cgcHJvamVjdF9nbG9iZV8gc2NhbGVzIHogb2ZmIEVBUlRIX1JBRElVUy5cbnZlYzMga2VwbGVyX2xuZ0xhdFRvR2xvYmUodmVjMiBsbmdMYXQsIGZsb2F0IGVsZXZhdGlvbkNvbW1vbikge1xuICBmbG9hdCBsYW1iZGEgPSByYWRpYW5zKGxuZ0xhdC54KTtcbiAgZmxvYXQgcGhpID0gcmFkaWFucyhsbmdMYXQueSk7XG4gIGZsb2F0IGNvc1BoaSA9IGNvcyhwaGkpO1xuICBmbG9hdCBEID0gR0xPQkVfUkFESVVTICsgZWxldmF0aW9uQ29tbW9uO1xuICByZXR1cm4gdmVjMyhcbiAgICBzaW4obGFtYmRhKSAqIGNvc1BoaSxcbiAgICAtY29zKGxhbWJkYSkgKiBjb3NQaGksXG4gICAgc2luKHBoaSlcbiAgKSAqIEQ7XG59XG5gO1xuXG4vKipcbiAqIFJld3JpdGVzIGEgZ3JpZC9oZXhhZ29uIGNlbGwgdmVydGV4IHNoYWRlciBzbyB0aGF0LCBpbiBnbG9iZSBtb2RlLCB0aGUgZmluYWxcbiAqIGNsaXAtc3BhY2UgcG9zaXRpb24gaXMgZGVyaXZlZCBmcm9tIHRoZSBzcGhlcmUgc3VyZmFjZSBpbnN0ZWFkIG9mIHRoZSBmbGF0IFhZXG4gKiBwbGFuZS4gSW4gMkQvM0QgbW9kZSB0aGUgb3JpZ2luYWwgcGF0aCBpcyBrZXB0IHVuY2hhbmdlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFkZEdsb2JlQ2VsbFByb2plY3Rpb24odnM6IHN0cmluZywgdHlwZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgZGVjbCA9IGAke0dMT0JFX0NFTExfREVDTH1cXG52b2lkIG1haW4odm9pZCkge2A7XG4gIGNvbnN0IHdpdGhEZWNsID0gdnMuaW5jbHVkZXMoJ3ZvaWQgbWFpbih2b2lkKSB7JykgPyB2cy5yZXBsYWNlKCd2b2lkIG1haW4odm9pZCkgeycsIGRlY2wpIDogdnM7XG5cbiAgY29uc3QgdGFyZ2V0ID0gJ2dsX1Bvc2l0aW9uID0gcHJvamVjdF9jb21tb25fcG9zaXRpb25fdG9fY2xpcHNwYWNlKGdlb21ldHJ5LnBvc2l0aW9uKTsnO1xuICBpZiAoIXdpdGhEZWNsLmluY2x1ZGVzKHRhcmdldCkpIHtcbiAgICAvLyBTaGFkZXIgc2hhcGUgY2hhbmdlZCBpbiBhIGRlY2suZ2wgdXBkYXRlOyBsZWF2ZSB0aGUgb3JpZ2luYWwgc28gd2UgZG9uJ3QgY3Jhc2guXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICBjb25zb2xlLmVycm9yKGBDYW5ub3QgZWRpdCAke3R5cGV9IGdsb2JlIGNlbGwgc2hhZGVyYCk7XG4gICAgcmV0dXJuIHdpdGhEZWNsO1xuICB9XG5cbiAgcmV0dXJuIHdpdGhEZWNsLnJlcGxhY2UoXG4gICAgdGFyZ2V0LFxuICAgIGBpZiAoZ2xvYmVDZWxsUHJvcHMuZ2xvYmVNb2RlID4gMC41KSB7XG4gICAgICB2ZWMyIGxuZ0xhdCA9IGtlcGxlcl9jb21tb25Ub0xuZ0xhdChnZW9tZXRyeS5wb3NpdGlvbi54eSArIHByb2plY3QuY29tbW9uT3JpZ2luLnh5KTtcbiAgICAgIHZlYzMgZ2xvYmVQb3MgPSBrZXBsZXJfbG5nTGF0VG9HbG9iZShsbmdMYXQsIGdlb21ldHJ5LnBvc2l0aW9uLnopO1xuICAgICAgZ2VvbWV0cnkucG9zaXRpb24gPSB2ZWM0KGdsb2JlUG9zLCAxLjApO1xuICAgIH1cbiAgICBnbF9Qb3NpdGlvbiA9IHByb2plY3RfY29tbW9uX3Bvc2l0aW9uX3RvX2NsaXBzcGFjZShnZW9tZXRyeS5wb3NpdGlvbik7YFxuICApO1xufVxuXG4vKipcbiAqIGRlY2suZ2wgOSdzIEdyaWQvSGV4YWdvbiBhZ2dyZWdhdGlvbiBjb21wdXRlIGJpbiBwb3NpdGlvbnMgYW5kIHRoZSBjZWxsIGxheWVyJ3NcbiAqIFwiY29tbW9uIHNwYWNlXCIgZnJvbSBgdGhpcy5jb250ZXh0LnZpZXdwb3J0YC4gVW5kZXIgYF9HbG9iZVZpZXdgIHRoYXQgY29tbW9uIHNwYWNlXG4gKiBpcyB0aGUgZ2xvYmUncyAzRC1wcm9qZWN0ZWQgc3BhY2UgKHByb2plY3RGbGF0IGlzIGlkZW50aXR5IG9uIGxuZy9sYXQsIHBvc2l0aW9uc1xuICogYmluIG9mZiB0aGUgc3BoZXJlLXByb2plY3RlZCBYWSksIHdoaWNoIGJvdGggbWlzLWJpbnMgZGF0YSBhbmQg4oCUIGNvbWJpbmVkIHdpdGggdGhlXG4gKiBmbGF0IGNlbGwgc2hhZGVyIOKAlCBkcm9wcyBjZWxscyBvbnRvIHRoZSBwbGFuZSB0aHJvdWdoIHRoZSBnbG9iZSBjZW50ZXIuXG4gKlxuICogV2Ugc2lkZXN0ZXAgdGhpcyBieSBydW5uaW5nIGBfdXBkYXRlQmluT3B0aW9uc2Agd2l0aCBhIFdlYk1lcmNhdG9yVmlld3BvcnQgdGhhdFxuICogbWF0Y2hlcyB0aGUgY3VycmVudCBnbG9iZSBjYW1lcmEuIFRoYXQgbWFrZXMgYmlubmluZywgYGNlbGxPcmlnaW5Db21tb25gIC9cbiAqIGBjZWxsU2l6ZUNvbW1vbmAgKG9yIGByYWRpdXNDb21tb25gIC8gYGhleE9yaWdpbkNvbW1vbmApIGFuZCB0aGUgY2VsbCBzaGFkZXInc1xuICogZmxhdCBwb3NpdGlvbiBhbGwgbGl2ZSBpbiBnZW51aW5lIFdlYiBNZXJjYXRvciBjb21tb24gc3BhY2UsIHdoaWNoIHRoZSBjZWxsIHNoYWRlclxuICogcmVtYXAgKGBhZGRHbG9iZUNlbGxQcm9qZWN0aW9uYCkgdGhlbiBjdXJ2ZXMgYmFjayBvbnRvIHRoZSBzcGhlcmUuIEluIDJELzNEIG1vZGVcbiAqIHRoaXMgaXMgYSBuby1vcC5cbiAqXG4gKiBgY2FsbFN1cGVyYCBydW5zIGRlY2suZ2wncyBvcmlnaW5hbCBgX3VwZGF0ZUJpbk9wdGlvbnNgIHdoaWxlIHRoZSB2aWV3cG9ydCBpc1xuICogdGVtcG9yYXJpbHkgc3dhcHBlZC4gVGhlIHN3YXAgaXMgc3luY2hyb25vdXMgYW5kIHJlc3RvcmVkIGluIGBmaW5hbGx5YC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJ1bkJpbk9wdGlvbnNXaXRoTWVyY2F0b3JWaWV3cG9ydChsYXllcjogYW55LCBjYWxsU3VwZXI6ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgY29uc3Qgdmlld3BvcnQgPSBsYXllci5jb250ZXh0Py52aWV3cG9ydDtcbiAgY29uc3QgaXNHbG9iZSA9IEJvb2xlYW4odmlld3BvcnQ/LnJlc29sdXRpb24pO1xuICBpZiAoIWlzR2xvYmUpIHtcbiAgICBjYWxsU3VwZXIoKTtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBtZXJjYXRvclZpZXdwb3J0ID0gbmV3IFdlYk1lcmNhdG9yVmlld3BvcnQoe1xuICAgIHdpZHRoOiB2aWV3cG9ydC53aWR0aCxcbiAgICBoZWlnaHQ6IHZpZXdwb3J0LmhlaWdodCxcbiAgICBsb25naXR1ZGU6IHZpZXdwb3J0LmxvbmdpdHVkZSxcbiAgICBsYXRpdHVkZTogdmlld3BvcnQubGF0aXR1ZGUsXG4gICAgem9vbTogdmlld3BvcnQuem9vbVxuICB9KTtcblxuICBjb25zdCBvcmlnaW5hbFZpZXdwb3J0ID0gbGF5ZXIuY29udGV4dC52aWV3cG9ydDtcbiAgbGF5ZXIuY29udGV4dC52aWV3cG9ydCA9IG1lcmNhdG9yVmlld3BvcnQ7XG4gIHRyeSB7XG4gICAgY2FsbFN1cGVyKCk7XG4gIH0gZmluYWxseSB7XG4gICAgbGF5ZXIuY29udGV4dC52aWV3cG9ydCA9IG9yaWdpbmFsVmlld3BvcnQ7XG4gIH1cbn1cblxuLyoqXG4gKiBXcmFwcyBhIGRlY2suZ2wgYWdncmVnYXRpb24gY2VsbCBsYXllciBjbGFzcyAoR3JpZENlbGxMYXllciAvIEhleGFnb25DZWxsTGF5ZXIpXG4gKiB3aXRoIGEgc3ViY2xhc3MgdGhhdCBpbmplY3RzIHRoZSBnbG9iZSBzdXJmYWNlIHJlbWFwIGludG8gaXRzIHZlcnRleCBzaGFkZXIuXG4gKlxuICogV2UgY3JlYXRlIHRoZSBzdWJjbGFzcyBkeW5hbWljYWxseSBmcm9tIHdoYXRldmVyIGRlZmF1bHQgY2xhc3MgZGVjay5nbCBwcm92aWRlc1xuICogdG8gYGdldFN1YkxheWVyQ2xhc3NgIHNvIHdlIGRvbid0IGhhdmUgdG8gaW1wb3J0IHRoZSAobm9uLXB1YmxpYykgY2VsbCBsYXllclxuICogY2xhc3NlcyBkaXJlY3RseS4gUmVzdWx0cyBhcmUgY2FjaGVkIHBlciBiYXNlIGNsYXNzIHNvIGRlY2suZ2wgc2VlcyBhIHN0YWJsZVxuICogbGF5ZXIgY2xhc3MgYWNyb3NzIHJlbmRlcnMgKGxheWVycyBhcmUgcmVjcmVhdGVkIGV2ZXJ5IGZyYW1lKSBhbmQgc2hhZGVyXG4gKiBjb21waWxhdGlvbiAvIHN1YmxheWVyIGRpZmZpbmcgc3RheXMgc3RhYmxlLlxuICovXG5jb25zdCBnbG9iZUNlbGxDbGFzc0NhY2hlID0gbmV3IFdlYWtNYXA8b2JqZWN0LCBvYmplY3Q+KCk7XG5cbnR5cGUgTGF5ZXJDb25zdHJ1Y3RvciA9IHtuZXcgKC4uLmFyZ3M6IGFueVtdKTogYW55OyBsYXllck5hbWU/OiBzdHJpbmd9O1xuXG4vKipcbiAqIGRlY2suZ2wncyBHcmlkQ2VsbExheWVyIC8gSGV4YWdvbkNlbGxMYXllciBiaW5kIHRoZSBgY29sb3JSYW5nZWAgcGFsZXR0ZVxuICogdGV4dHVyZSBvbmx5IHdoZW4gdGhlIGBjb2xvclJhbmdlYCAqcHJvcCogY2hhbmdlcy4gQ29sdW1uTGF5ZXIgKHRoZSBwYXJlbnQpXG4gKiBkZXN0cm95cyBhbmQgcmVjcmVhdGVzIGBmaWxsTW9kZWxgIHdoZW5ldmVyIGBleHRlbnNpb25zQ2hhbmdlZGAgZmlyZXMg4oCUXG4gKiB3aGljaCBoYXBwZW5zIHdoZW4gTGlnaHQgJiBTaGFkb3cgcmVnaXN0ZXJzIHRoZSBzaGFkb3cgc2hhZGVyIG1vZHVsZS5cbiAqIFRoZSBuZXcgbW9kZWwgc3RhcnRzIHdpdGggZW1wdHkgYmluZGluZ3MsIHRoZSBjb2xvclJhbmdlIGNoZWNrIGlzIGEgbm8tb3AsXG4gKiBhbmQgbHVtYS5nbCBza2lwcyB0aGUgZHJhdzogXCJCaW5kaW5nIGNvbG9yUmFuZ2Ugbm90IGZvdW5kIGluIOKApi1jZWxscy1maWxsLWNhY2hlZFwiLlxuICogUmVjcmVhdGluZyB0aGUgS2VwbGVyIGxheWVyIFwiZml4ZXNcIiBpdCBiZWNhdXNlIGluaXRpYWxpemUvdXBkYXRlIHRoZW4gc2VlcyBhXG4gKiBjb2xvclJhbmdlIGNoYW5nZSBhZ2FpbnN0IGVtcHR5IG9sZFByb3BzIGFuZCBiaW5kcyB0aGUgdGV4dHVyZSBhZ2Fpbi5cbiAqXG4gKiBSZS1iaW5kIHRoZSBleGlzdGluZyB0ZXh0dXJlIG9udG8gd2hhdGV2ZXIgZmlsbE1vZGVsIGlzIGN1cnJlbnQuIEhhcm1sZXNzXG4gKiB3aGVuIHRoZSBwYXJlbnQgYWxyZWFkeSBib3VuZCBpdDsgcmVxdWlyZWQgYWZ0ZXIgYSBtb2RlbCByZWJ1aWxkLlxuICovXG5mdW5jdGlvbiBiaW5kQ29sb3JSYW5nZVRleHR1cmUobGF5ZXI6IGFueSwgbW9kdWxlTmFtZTogc3RyaW5nKTogdm9pZCB7XG4gIGNvbnN0IG1vZGVsID0gbGF5ZXIuc3RhdGU/LmZpbGxNb2RlbDtcbiAgY29uc3QgY29sb3JUZXh0dXJlID0gbGF5ZXIuc3RhdGU/LmNvbG9yVGV4dHVyZTtcbiAgaWYgKG1vZGVsPy5zaGFkZXJJbnB1dHMgJiYgY29sb3JUZXh0dXJlKSB7XG4gICAgbW9kZWwuc2hhZGVySW5wdXRzLnNldFByb3BzKHtbbW9kdWxlTmFtZV06IHtjb2xvclJhbmdlOiBjb2xvclRleHR1cmV9fSk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1ha2VHbG9iZUNlbGxMYXllckNsYXNzPFQgZXh0ZW5kcyBMYXllckNvbnN0cnVjdG9yPihcbiAgQmFzZUNlbGxMYXllcjogVCxcbiAgdHlwZTogc3RyaW5nXG4pOiBUIHtcbiAgY29uc3QgY2FjaGVkID0gZ2xvYmVDZWxsQ2xhc3NDYWNoZS5nZXQoQmFzZUNlbGxMYXllcik7XG4gIGlmIChjYWNoZWQpIHtcbiAgICByZXR1cm4gY2FjaGVkIGFzIFQ7XG4gIH1cblxuICBjbGFzcyBHbG9iZUNlbGxMYXllciBleHRlbmRzIChCYXNlQ2VsbExheWVyIGFzIHtuZXcgKC4uLmFyZ3M6IGFueVtdKTogYW55fSkge1xuICAgIGdldFNoYWRlcnMoKSB7XG4gICAgICBjb25zdCBzaGFkZXJzID0gc3VwZXIuZ2V0U2hhZGVycygpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc2hhZGVycyxcbiAgICAgICAgdnM6IGFkZEdsb2JlQ2VsbFByb2plY3Rpb24oc2hhZGVycy52cywgdHlwZSksXG4gICAgICAgIG1vZHVsZXM6IFsuLi4oc2hhZGVycy5tb2R1bGVzIHx8IFtdKSwgZ2xvYmVDZWxsVW5pZm9ybXNdXG4gICAgICB9O1xuICAgIH1cblxuICAgIHVwZGF0ZVN0YXRlKHBhcmFtczogYW55KSB7XG4gICAgICBzdXBlci51cGRhdGVTdGF0ZShwYXJhbXMpO1xuICAgICAgYmluZENvbG9yUmFuZ2VUZXh0dXJlKHRoaXMsIHR5cGUpO1xuICAgIH1cblxuICAgIGRyYXcob3B0czogYW55KSB7XG4gICAgICBjb25zdCBnbG9iZU1vZGUgPSAodGhpcy5jb250ZXh0LnZpZXdwb3J0IGFzIGFueSkucmVzb2x1dGlvbiA/IDEuMCA6IDAuMDtcbiAgICAgIC8vIEdyaWRDZWxsTGF5ZXIgLyBIZXhhZ29uQ2VsbExheWVyIHJlbmRlciB0aHJvdWdoIGEgc2luZ2xlIGZpbGxNb2RlbCBhbmQgc2V0XG4gICAgICAvLyB0aGVpciBvd24gbW9kdWxlIHByb3BzIGluIGRyYXcoKTsgc2V0IG91cnMgZmlyc3Qgc28gaXQgbWVyZ2VzIChzZXRQcm9wcyBpc1xuICAgICAgLy8gcGVyLW1vZHVsZSkuIGRlY2suZ2wgOSBoYXMgbm8gTW9kZWwuc2V0VW5pZm9ybXMg4oCUIHVuaWZvcm1zIGdvIHRocm91Z2hcbiAgICAgIC8vIHNoYWRlcklucHV0cyBVQk8gbW9kdWxlcy5cbiAgICAgIGNvbnN0IG1vZGVsID0gKHRoaXMuc3RhdGUgYXMgYW55KS5maWxsTW9kZWw7XG4gICAgICBpZiAobW9kZWw/LnNoYWRlcklucHV0cykge1xuICAgICAgICBtb2RlbC5zaGFkZXJJbnB1dHMuc2V0UHJvcHMoe2dsb2JlQ2VsbDoge2dsb2JlTW9kZX19KTtcbiAgICAgIH1cbiAgICAgIGJpbmRDb2xvclJhbmdlVGV4dHVyZSh0aGlzLCB0eXBlKTtcbiAgICAgIHN1cGVyLmRyYXcob3B0cyk7XG4gICAgfVxuICB9XG4gIChHbG9iZUNlbGxMYXllciBhcyB1bmtub3duIGFzIHtsYXllck5hbWU6IHN0cmluZ30pLmxheWVyTmFtZSA9IGBHbG9iZSR7dHlwZX1DZWxsTGF5ZXJgO1xuICBnbG9iZUNlbGxDbGFzc0NhY2hlLnNldChCYXNlQ2VsbExheWVyLCBHbG9iZUNlbGxMYXllcik7XG4gIHJldHVybiBHbG9iZUNlbGxMYXllciBhcyB1bmtub3duIGFzIFQ7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBR0EsSUFBQUEsS0FBQSxHQUFBQyxPQUFBO0FBQWtELFNBQUFDLFFBQUFDLENBQUEsRUFBQUMsQ0FBQSxRQUFBQyxDQUFBLEdBQUFDLE1BQUEsQ0FBQUMsSUFBQSxDQUFBSixDQUFBLE9BQUFHLE1BQUEsQ0FBQUUscUJBQUEsUUFBQUMsQ0FBQSxHQUFBSCxNQUFBLENBQUFFLHFCQUFBLENBQUFMLENBQUEsR0FBQUMsQ0FBQSxLQUFBSyxDQUFBLEdBQUFBLENBQUEsQ0FBQUMsTUFBQSxXQUFBTixDQUFBLFdBQUFFLE1BQUEsQ0FBQUssd0JBQUEsQ0FBQVIsQ0FBQSxFQUFBQyxDQUFBLEVBQUFRLFVBQUEsT0FBQVAsQ0FBQSxDQUFBUSxJQUFBLENBQUFDLEtBQUEsQ0FBQVQsQ0FBQSxFQUFBSSxDQUFBLFlBQUFKLENBQUE7QUFBQSxTQUFBVSxjQUFBWixDQUFBLGFBQUFDLENBQUEsTUFBQUEsQ0FBQSxHQUFBWSxTQUFBLENBQUFDLE1BQUEsRUFBQWIsQ0FBQSxVQUFBQyxDQUFBLFdBQUFXLFNBQUEsQ0FBQVosQ0FBQSxJQUFBWSxTQUFBLENBQUFaLENBQUEs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
@@ -0,0 +1,118 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
5
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
6
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
7
+ var _globeCellUtils = require("./globe-cell-utils");
8
+ // SPDX-License-Identifier: MIT
9
+ // Copyright contributors to the kepler.gl project
10
+
11
+ function makeFakeCellLayerClass() {
12
+ return /*#__PURE__*/function () {
13
+ function FakeCellLayer() {
14
+ (0, _classCallCheck2["default"])(this, FakeCellLayer);
15
+ (0, _defineProperty2["default"])(this, "state", {});
16
+ (0, _defineProperty2["default"])(this, "context", {
17
+ viewport: {}
18
+ });
19
+ }
20
+ return (0, _createClass2["default"])(FakeCellLayer, [{
21
+ key: "getShaders",
22
+ value: function getShaders() {
23
+ return {
24
+ vs: 'void main(void) { gl_Position = project_common_position_to_clipspace(geometry.position); }',
25
+ modules: []
26
+ };
27
+ }
28
+
29
+ // deck.gl ColumnLayer recreates fillModel on extensionsChanged and does not
30
+ // copy over the colorRange texture binding. GridCellLayer / HexagonCellLayer
31
+ // only bind that texture when the colorRange *prop* changes.
32
+ }, {
33
+ key: "updateState",
34
+ value: function updateState(_params) {
35
+ this.state.fillModel = {
36
+ shaderInputs: {
37
+ setProps: jest.fn()
38
+ }
39
+ };
40
+ }
41
+ }, {
42
+ key: "draw",
43
+ value: function draw(_opts) {
44
+ // no-op stub so GlobeCellLayer.draw can call super.draw()
45
+ }
46
+ }]);
47
+ }();
48
+ }
49
+ describe('globe-cell-utils colorRange rebind', function () {
50
+ test('rebinds colorRange onto a rebuilt fillModel (grid)', function () {
51
+ var _layer$state$fillMode;
52
+ var GlobeGridCell = (0, _globeCellUtils.makeGlobeCellLayerClass)(makeFakeCellLayerClass(), 'grid');
53
+ var layer = new GlobeGridCell();
54
+ layer.state.colorTexture = {
55
+ id: 'color-range-tex'
56
+ };
57
+ layer.updateState({
58
+ changeFlags: {
59
+ extensionsChanged: true
60
+ },
61
+ props: {
62
+ colorRange: ['#fff']
63
+ },
64
+ oldProps: {
65
+ colorRange: ['#fff']
66
+ }
67
+ });
68
+ expect((_layer$state$fillMode = layer.state.fillModel) === null || _layer$state$fillMode === void 0 ? void 0 : _layer$state$fillMode.shaderInputs.setProps).toHaveBeenCalledWith({
69
+ grid: {
70
+ colorRange: layer.state.colorTexture
71
+ }
72
+ });
73
+ });
74
+ test('rebinds colorRange onto a rebuilt fillModel (hexagon)', function () {
75
+ var _layer$state$fillMode2;
76
+ var GlobeHexCell = (0, _globeCellUtils.makeGlobeCellLayerClass)(makeFakeCellLayerClass(), 'hexagon');
77
+ var layer = new GlobeHexCell();
78
+ layer.state.colorTexture = {
79
+ id: 'color-range-tex'
80
+ };
81
+ layer.updateState({
82
+ changeFlags: {
83
+ extensionsChanged: true
84
+ },
85
+ props: {
86
+ colorRange: ['#fff']
87
+ },
88
+ oldProps: {
89
+ colorRange: ['#fff']
90
+ }
91
+ });
92
+ expect((_layer$state$fillMode2 = layer.state.fillModel) === null || _layer$state$fillMode2 === void 0 ? void 0 : _layer$state$fillMode2.shaderInputs.setProps).toHaveBeenCalledWith({
93
+ hexagon: {
94
+ colorRange: layer.state.colorTexture
95
+ }
96
+ });
97
+ });
98
+ test('draw also rebinds colorRange so the first frame after rebuild is valid', function () {
99
+ var GlobeGridCell = (0, _globeCellUtils.makeGlobeCellLayerClass)(makeFakeCellLayerClass(), 'grid');
100
+ var layer = new GlobeGridCell();
101
+ var setProps = jest.fn();
102
+ layer.state.colorTexture = {
103
+ id: 'color-range-tex'
104
+ };
105
+ layer.state.fillModel = {
106
+ shaderInputs: {
107
+ setProps: setProps
108
+ }
109
+ };
110
+ layer.draw({});
111
+ expect(setProps).toHaveBeenCalledWith({
112
+ grid: {
113
+ colorRange: layer.state.colorTexture
114
+ }
115
+ });
116
+ });
117
+ });
118
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZ2xvYmVDZWxsVXRpbHMiLCJyZXF1aXJlIiwibWFrZUZha2VDZWxsTGF5ZXJDbGFzcyIsIkZha2VDZWxsTGF5ZXIiLCJfY2xhc3NDYWxsQ2hlY2syIiwiX2RlZmluZVByb3BlcnR5MiIsInZpZXdwb3J0IiwiX2NyZWF0ZUNsYXNzMiIsImtleSIsInZhbHVlIiwiZ2V0U2hhZGVycyIsInZzIiwibW9kdWxlcyIsInVwZGF0ZVN0YXRlIiwiX3BhcmFtcyIsInN0YXRlIiwiZmlsbE1vZGVsIiwic2hhZGVySW5wdXRzIiwic2V0UHJvcHMiLCJqZXN0IiwiZm4iLCJkcmF3IiwiX29wdHMiLCJkZXNjcmliZSIsInRlc3QiLCJfbGF5ZXIkc3RhdGUkZmlsbE1vZGUiLCJHbG9iZUdyaWRDZWxsIiwibWFrZUdsb2JlQ2VsbExheWVyQ2xhc3MiLCJsYXllciIsImNvbG9yVGV4dHVyZSIsImlkIiwiY2hhbmdlRmxhZ3MiLCJleHRlbnNpb25zQ2hhbmdlZCIsInByb3BzIiwiY29sb3JSYW5nZSIsIm9sZFByb3BzIiwiZXhwZWN0IiwidG9IYXZlQmVlbkNhbGxlZFdpdGgiLCJncmlkIiwiX2xheWVyJHN0YXRlJGZpbGxNb2RlMiIsIkdsb2JlSGV4Q2VsbCIsImhleGFnb24iXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGF5ZXItdXRpbHMvZ2xvYmUtY2VsbC11dGlscy5zcGVjLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCB7bWFrZUdsb2JlQ2VsbExheWVyQ2xhc3N9IGZyb20gJy4vZ2xvYmUtY2VsbC11dGlscyc7XG5cbmZ1bmN0aW9uIG1ha2VGYWtlQ2VsbExheWVyQ2xhc3MoKSB7XG4gIHJldHVybiBjbGFzcyBGYWtlQ2VsbExheWVyIHtcbiAgICBzdGF0ZToge1xuICAgICAgZmlsbE1vZGVsPzoge3NoYWRlcklucHV0czoge3NldFByb3BzOiBqZXN0Lk1vY2t9fTtcbiAgICAgIGNvbG9yVGV4dHVyZT86IHtpZDogc3RyaW5nfTtcbiAgICB9ID0ge307XG4gICAgY29udGV4dCA9IHt2aWV3cG9ydDoge319O1xuXG4gICAgZ2V0U2hhZGVycygpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHZzOiAndm9pZCBtYWluKHZvaWQpIHsgZ2xfUG9zaXRpb24gPSBwcm9qZWN0X2NvbW1vbl9wb3NpdGlvbl90b19jbGlwc3BhY2UoZ2VvbWV0cnkucG9zaXRpb24pOyB9JyxcbiAgICAgICAgbW9kdWxlczogW11cbiAgICAgIH07XG4gICAgfVxuXG4gICAgLy8gZGVjay5nbCBDb2x1bW5MYXllciByZWNyZWF0ZXMgZmlsbE1vZGVsIG9uIGV4dGVuc2lvbnNDaGFuZ2VkIGFuZCBkb2VzIG5vdFxuICAgIC8vIGNvcHkgb3ZlciB0aGUgY29sb3JSYW5nZSB0ZXh0dXJlIGJpbmRpbmcuIEdyaWRDZWxsTGF5ZXIgLyBIZXhhZ29uQ2VsbExheWVyXG4gICAgLy8gb25seSBiaW5kIHRoYXQgdGV4dHVyZSB3aGVuIHRoZSBjb2xvclJhbmdlICpwcm9wKiBjaGFuZ2VzLlxuICAgIHVwZGF0ZVN0YXRlKF9wYXJhbXM/OiB1bmtub3duKSB7XG4gICAgICB0aGlzLnN0YXRlLmZpbGxNb2RlbCA9IHtzaGFkZXJJbnB1dHM6IHtzZXRQcm9wczogamVzdC5mbigpfX07XG4gICAgfVxuXG4gICAgZHJhdyhfb3B0cz86IHVua25vd24pIHtcbiAgICAgIC8vIG5vLW9wIHN0dWIgc28gR2xvYmVDZWxsTGF5ZXIuZHJhdyBjYW4gY2FsbCBzdXBlci5kcmF3KClcbiAgICB9XG4gIH07XG59XG5cbmRlc2NyaWJlKCdnbG9iZS1jZWxsLXV0aWxzIGNvbG9yUmFuZ2UgcmViaW5kJywgKCkgPT4ge1xuICB0ZXN0KCdyZWJpbmRzIGNvbG9yUmFuZ2Ugb250byBhIHJlYnVpbHQgZmlsbE1vZGVsIChncmlkKScsICgpID0+IHtcbiAgICBjb25zdCBHbG9iZUdyaWRDZWxsID0gbWFrZUdsb2JlQ2VsbExheWVyQ2xhc3MobWFrZUZha2VDZWxsTGF5ZXJDbGFzcygpLCAnZ3JpZCcpO1xuICAgIGNvbnN0IGxheWVyID0gbmV3IEdsb2JlR3JpZENlbGwoKTtcbiAgICBsYXllci5zdGF0ZS5jb2xvclRleHR1cmUgPSB7aWQ6ICdjb2xvci1yYW5nZS10ZXgnfTtcblxuICAgIGxheWVyLnVwZGF0ZVN0YXRlKHtcbiAgICAgIGNoYW5nZUZsYWdzOiB7ZXh0ZW5zaW9uc0NoYW5nZWQ6IHRydWV9LFxuICAgICAgcHJvcHM6IHtjb2xvclJhbmdlOiBbJyNmZmYnXX0sXG4gICAgICBvbGRQcm9wczoge2NvbG9yUmFuZ2U6IFsnI2ZmZiddfVxuICAgIH0pO1xuXG4gICAgZXhwZWN0KGxheWVyLnN0YXRlLmZpbGxNb2RlbD8uc2hhZGVySW5wdXRzLnNldFByb3BzKS50b0hhdmVCZWVuQ2FsbGVkV2l0aCh7XG4gICAgICBncmlkOiB7Y29sb3JSYW5nZTogbGF5ZXIuc3RhdGUuY29sb3JUZXh0dXJlfVxuICAgIH0pO1xuICB9KTtcblxuICB0ZXN0KCdyZWJpbmRzIGNvbG9yUmFuZ2Ugb250byBhIHJlYnVpbHQgZmlsbE1vZGVsIChoZXhhZ29uKScsICgpID0+IHtcbiAgICBjb25zdCBHbG9iZUhleENlbGwgPSBtYWtlR2xvYmVDZWxsTGF5ZXJDbGFzcyhtYWtlRmFrZUNlbGxMYXllckNsYXNzKCksICdoZXhhZ29uJyk7XG4gICAgY29uc3QgbGF5ZXIgPSBuZXcgR2xvYmVIZXhDZWxsKCk7XG4gICAgbGF5ZXIuc3RhdGUuY29sb3JUZXh0dXJlID0ge2lkOiAnY29sb3ItcmFuZ2UtdGV4J307XG5cbiAgICBsYXllci51cGRhdGVTdGF0ZSh7XG4gICAgICBjaGFuZ2VGbGFnczoge2V4dGVuc2lvbnNDaGFuZ2VkOiB0cnVlfSxcbiAgICAgIHByb3BzOiB7Y29sb3JSYW5nZTogWycjZmZmJ119LFxuICAgICAgb2xkUHJvcHM6IHtjb2xvclJhbmdlOiBbJyNmZmYnXX1cbiAgICB9KTtcblxuICAgIGV4cGVjdChsYXllci5zdGF0ZS5maWxsTW9kZWw/LnNoYWRlcklucHV0cy5zZXRQcm9wcykudG9IYXZlQmVlbkNhbGxlZFdpdGgoe1xuICAgICAgaGV4YWdvbjoge2NvbG9yUmFuZ2U6IGxheWVyLnN0YXRlLmNvbG9yVGV4dHVyZX1cbiAgICB9KTtcbiAgfSk7XG5cbiAgdGVzdCgnZHJhdyBhbHNvIHJlYmluZHMgY29sb3JSYW5nZSBzbyB0aGUgZmlyc3QgZnJhbWUgYWZ0ZXIgcmVidWlsZCBpcyB2YWxpZCcsICgpID0+IHtcbiAgICBjb25zdCBHbG9iZUdyaWRDZWxsID0gbWFrZUdsb2JlQ2VsbExheWVyQ2xhc3MobWFrZUZha2VDZWxsTGF5ZXJDbGFzcygpLCAnZ3JpZCcpO1xuICAgIGNvbnN0IGxheWVyID0gbmV3IEdsb2JlR3JpZENlbGwoKTtcbiAgICBjb25zdCBzZXRQcm9wcyA9IGplc3QuZm4oKTtcbiAgICBsYXllci5zdGF0ZS5jb2xvclRleHR1cmUgPSB7aWQ6ICdjb2xvci1yYW5nZS10ZXgnfTtcbiAgICBsYXllci5zdGF0ZS5maWxsTW9kZWwgPSB7c2hhZGVySW5wdXRzOiB7c2V0UHJvcHN9fTtcblxuICAgIGxheWVyLmRyYXcoe30pO1xuXG4gICAgZXhwZWN0KHNldFByb3BzKS50b0hhdmVCZWVuQ2FsbGVkV2l0aCh7XG4gICAgICBncmlkOiB7Y29sb3JSYW5nZTogbGF5ZXIuc3RhdGUuY29sb3JUZXh0dXJlfVxuICAgIH0pO1xuICB9KTtcbn0pO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFHQSxJQUFBQSxlQUFBLEdBQUFDLE9BQUE7QUFIQTtBQUNBOztBQUlBLFNBQVNDLHNCQUFzQkEsQ0FBQSxFQUFHO0VBQ2hDO0lBQUEsU0FBQUMsY0FBQTtNQUFBLElBQUFDLGdCQUFBLG1CQUFBRCxhQUFBO01BQUEsSUFBQUUsZ0JBQUEsNEJBSU0sQ0FBQyxDQUFDO01BQUEsSUFBQUEsZ0JBQUEsOEJBQ0k7UUFBQ0MsUUFBUSxFQUFFLENBQUM7TUFBQyxDQUFDO0lBQUE7SUFB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
@@ -1,11 +1,11 @@
1
1
  import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
2
- import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
3
2
  import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
4
3
  import _createClass from "@babel/runtime/helpers/esm/createClass";
5
4
  import _possibleConstructorReturn from "@babel/runtime/helpers/esm/possibleConstructorReturn";
6
5
  import _getPrototypeOf from "@babel/runtime/helpers/esm/getPrototypeOf";
7
6
  import _get from "@babel/runtime/helpers/esm/get";
8
7
  import _inherits from "@babel/runtime/helpers/esm/inherits";
8
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
9
9
  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; }
10
10
  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) { _defineProperty(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; }
11
11
  function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
@@ -120,6 +120,29 @@ export function runBinOptionsWithMercatorViewport(layer, callSuper) {
120
120
  * compilation / sublayer diffing stays stable.
121
121
  */
122
122
  var globeCellClassCache = new WeakMap();
123
+ /**
124
+ * deck.gl's GridCellLayer / HexagonCellLayer bind the `colorRange` palette
125
+ * texture only when the `colorRange` *prop* changes. ColumnLayer (the parent)
126
+ * destroys and recreates `fillModel` whenever `extensionsChanged` fires —
127
+ * which happens when Light & Shadow registers the shadow shader module.
128
+ * The new model starts with empty bindings, the colorRange check is a no-op,
129
+ * and luma.gl skips the draw: "Binding colorRange not found in …-cells-fill-cached".
130
+ * Recreating the Kepler layer "fixes" it because initialize/update then sees a
131
+ * colorRange change against empty oldProps and binds the texture again.
132
+ *
133
+ * Re-bind the existing texture onto whatever fillModel is current. Harmless
134
+ * when the parent already bound it; required after a model rebuild.
135
+ */
136
+ function bindColorRangeTexture(layer, moduleName) {
137
+ var _layer$state, _layer$state2;
138
+ var model = (_layer$state = layer.state) === null || _layer$state === void 0 ? void 0 : _layer$state.fillModel;
139
+ var colorTexture = (_layer$state2 = layer.state) === null || _layer$state2 === void 0 ? void 0 : _layer$state2.colorTexture;
140
+ if (model !== null && model !== void 0 && model.shaderInputs && colorTexture) {
141
+ model.shaderInputs.setProps(_defineProperty({}, moduleName, {
142
+ colorRange: colorTexture
143
+ }));
144
+ }
145
+ }
123
146
  export function makeGlobeCellLayerClass(BaseCellLayer, type) {
124
147
  var cached = globeCellClassCache.get(BaseCellLayer);
125
148
  if (cached) {
@@ -140,6 +163,12 @@ export function makeGlobeCellLayerClass(BaseCellLayer, type) {
140
163
  modules: [].concat(_toConsumableArray(shaders.modules || []), [globeCellUniforms])
141
164
  });
142
165
  }
166
+ }, {
167
+ key: "updateState",
168
+ value: function updateState(params) {
169
+ _superPropGet(GlobeCellLayer, "updateState", this, 3)([params]);
170
+ bindColorRangeTexture(this, type);
171
+ }
143
172
  }, {
144
173
  key: "draw",
145
174
  value: function draw(opts) {
@@ -156,6 +185,7 @@ export function makeGlobeCellLayerClass(BaseCellLayer, type) {
156
185
  }
157
186
  });
158
187
  }
188
+ bindColorRangeTexture(this, type);
159
189
  _superPropGet(GlobeCellLayer, "draw", this, 3)([opts]);
160
190
  }
161
191
  }]);
@@ -164,4 +194,4 @@ export function makeGlobeCellLayerClass(BaseCellLayer, type) {
164
194
  globeCellClassCache.set(BaseCellLayer, GlobeCellLayer);
165
195
  return GlobeCellLayer;
166
196
  }
167
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJXZWJNZXJjYXRvclZpZXdwb3J0IiwiZ2xvYmVDZWxsVW5pZm9ybXMiLCJuYW1lIiwidnMiLCJ1bmlmb3JtVHlwZXMiLCJnbG9iZU1vZGUiLCJHTE9CRV9DRUxMX0RFQ0wiLCJhZGRHbG9iZUNlbGxQcm9qZWN0aW9uIiwidHlwZSIsImRlY2wiLCJjb25jYXQiLCJ3aXRoRGVjbCIsImluY2x1ZGVzIiwicmVwbGFjZSIsInRhcmdldCIsImNvbnNvbGUiLCJlcnJvciIsInJ1bkJpbk9wdGlvbnNXaXRoTWVyY2F0b3JWaWV3cG9ydCIsImxheWVyIiwiY2FsbFN1cGVyIiwiX2xheWVyJGNvbnRleHQiLCJ2aWV3cG9ydCIsImNvbnRleHQiLCJpc0dsb2JlIiwiQm9vbGVhbiIsInJlc29sdXRpb24iLCJtZXJjYXRvclZpZXdwb3J0Iiwid2lkdGgiLCJoZWlnaHQiLCJsb25naXR1ZGUiLCJsYXRpdHVkZSIsInpvb20iLCJvcmlnaW5hbFZpZXdwb3J0IiwiZ2xvYmVDZWxsQ2xhc3NDYWNoZSIsIldlYWtNYXAiLCJtYWtlR2xvYmVDZWxsTGF5ZXJDbGFzcyIsIkJhc2VDZWxsTGF5ZXIiLCJjYWNoZWQiLCJnZXQiLCJHbG9iZUNlbGxMYXllciIsIl9yZWYiLCJfY2xhc3NDYWxsQ2hlY2siLCJfY2FsbFN1cGVyIiwiYXJndW1lbnRzIiwiX2luaGVyaXRzIiwiX2NyZWF0ZUNsYXNzIiwia2V5IiwidmFsdWUiLCJnZXRTaGFkZXJzIiwic2hhZGVycyIsIl9zdXBlclByb3BHZXQiLCJfb2JqZWN0U3ByZWFkIiwibW9kdWxlcyIsIl90b0NvbnN1bWFibGVBcnJheSIsImRyYXciLCJvcHRzIiwibW9kZWwiLCJzdGF0ZSIsImZpbGxNb2RlbCIsInNoYWRlcklucHV0cyIsInNldFByb3BzIiwiZ2xvYmVDZWxsIiwibGF5ZXJOYW1lIiwic2V0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xheWVyLXV0aWxzL2dsb2JlLWNlbGwtdXRpbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IHtXZWJNZXJjYXRvclZpZXdwb3J0fSBmcm9tICdAZGVjay5nbC9jb3JlJztcblxuLyoqXG4gKiBkZWNrLmdsJ3MgYWdncmVnYXRpb24gY2VsbCBsYXllcnMgKEdyaWRDZWxsTGF5ZXIgLyBIZXhhZ29uQ2VsbExheWVyKSBwb3NpdGlvblxuICogZWFjaCBjZWxsIGluIGZsYXQgbWVyY2F0b3IgXCJjb21tb24gc3BhY2VcIiAoYSAyRCBYWSBwbGFuZSkgYW5kIHRoZW4gZHJhdyBpdCB3aXRoXG4gKiBgcHJvamVjdF9jb21tb25fcG9zaXRpb25fdG9fY2xpcHNwYWNlYCwgd2hpY2ggb25seSBtdWx0aXBsaWVzIGJ5IHRoZVxuICogdmlldy1wcm9qZWN0aW9uIG1hdHJpeC4gVW5kZXIgYF9HbG9iZVZpZXdgIHRoaXMgbGVhdmVzIHRoZSBjZWxscyBvbiB0aGUgZmxhdCBYWVxuICogcGxhbmUgdGhhdCBwYXNzZXMgdGhyb3VnaCB0aGUgY2VudGVyIG9mIHRoZSBnbG9iZSBpbnN0ZWFkIG9mIG9uIGl0cyBzdXJmYWNlXG4gKiAodGhlIGJhc2UgQ29sdW1uTGF5ZXIgd29ya3Mgb24gdGhlIGdsb2JlIGJlY2F1c2UgaXQgZmVlZHMgcmVhbCBsbmcvbGF0IHRocm91Z2hcbiAqIGBwcm9qZWN0X3Bvc2l0aW9uYCAtPiBgcHJvamVjdF9nbG9iZV9gOyB0aGUgYWdncmVnYXRpb24gY2VsbCBzaGFkZXJzIHNraXAgdGhhdCkuXG4gKlxuICogVG8gZml4IHRoaXMgd2UgcmVtYXAgdGhlIGFscmVhZHktY29tcHV0ZWQgZmxhdCBjb21tb24tc3BhY2UgdmVydGV4IHBvc2l0aW9uIGJhY2tcbiAqIHRvIGxuZy9sYXQgKGludmVyc2UgV2ViIE1lcmNhdG9yKSBhbmQgdGhlbiBvbnRvIHRoZSBzcGhlcmUgd2l0aCB0aGUgc2FtZSBtYXRoXG4gKiBgcHJvamVjdF9nbG9iZV9gIHVzZXMgZm9yIGdlb2dyYXBoaWMgbGF5ZXJzLiBCZWNhdXNlIHdlIHJlbWFwIGV2ZXJ5IHZlcnRleCBvZiB0aGVcbiAqIGNlbGwgZm9vdHByaW50IChub3QganVzdCB0aGUgY2VudHJvaWQpLCB0aGUgZmxhdCBxdWFkL2hleGFnb24gbmF0dXJhbGx5IGN1cnZlc1xuICogb250byB0aGUgc3VyZmFjZS4gRWxldmF0aW9uIChleHRydWRlZCBjZWxscywgc3RvcmVkIGluIGBnZW9tZXRyeS5wb3NpdGlvbi56YCBpblxuICogY29tbW9uIHVuaXRzKSBpcyBhZGRlZCBhbG9uZyB0aGUgcmFkaXVzIHNvIGNvbHVtbnMgcmlzZSByYWRpYWxseSBvZmYgdGhlIGdsb2JlLlxuICpcbiAqIFRoZSByZW1hcCBpcyBnYXRlZCBieSBhIGBnbG9iZU1vZGVgIHVuaWZvcm0gc28gMkQvM0QgbWVyY2F0b3IgcmVuZGVyaW5nIGlzXG4gKiBieXRlLWZvci1ieXRlIHVuY2hhbmdlZC5cbiAqXG4gKiBgV09STERfU0NBTEVgLCBgUElgLCBgR0xPQkVfUkFESVVTYCBhbmQgYHByb2plY3QuY29tbW9uT3JpZ2luYCBhcmUgYWxsIHByb3ZpZGVkXG4gKiBieSBkZWNrLmdsJ3MgcHJvamVjdCBzaGFkZXIgbW9kdWxlIHdoaWNoIHRoZXNlIGxheWVycyBpbmNsdWRlLlxuICovXG5cbi8vIGRlY2suZ2wgOSAvIGx1bWEgOSBzZXRzIGN1c3RvbSB1bmlmb3JtcyB2aWEgVUJPLWJhY2tlZCBzaGFkZXIgbW9kdWxlcyAodGhlcmUgaXNcbi8vIG5vIE1vZGVsLnNldFVuaWZvcm1zKS4gVGhpcyBtaW5pbWFsIG1vZHVsZSBleHBvc2VzIHRoZSBnbG9iZS1tb2RlIGZsYWcuXG5jb25zdCBnbG9iZUNlbGxVbmlmb3JtcyA9IHtcbiAgbmFtZTogJ2dsb2JlQ2VsbCcsXG4gIHZzOiBgbGF5b3V0KHN0ZDE0MCkgdW5pZm9ybSBnbG9iZUNlbGxVbmlmb3JtcyB7XG4gIGZsb2F0IGdsb2JlTW9kZTtcbn0gZ2xvYmVDZWxsUHJvcHM7XG5gLFxuICB1bmlmb3JtVHlwZXM6IHtcbiAgICBnbG9iZU1vZGU6ICdmMzInXG4gIH1cbn0gYXMgY29uc3Q7XG5cbmNvbnN0IEdMT0JFX0NFTExfREVDTCA9IC8qIGdsc2wgKi8gYFxuLy8gSW52ZXJzZSBvZiBkZWNrLmdsIHByb2plY3RfbWVyY2F0b3JfOiBmbGF0IGNvbW1vbiBYWSAtPiBsbmcvbGF0IChkZWdyZWVzKS5cbnZlYzIga2VwbGVyX2NvbW1vblRvTG5nTGF0KHZlYzIgY29tbW9uWFkpIHtcbiAgZmxvYXQgbG5nID0gZGVncmVlcyhjb21tb25YWS54IC8gV09STERfU0NBTEUgLSBQSSk7XG4gIGZsb2F0IGxhdCA9IGRlZ3JlZXMoMi4wICogYXRhbihleHAoY29tbW9uWFkueSAvIFdPUkxEX1NDQUxFIC0gUEkpKSAtIFBJICogMC41KTtcbiAgcmV0dXJuIHZlYzIobG5nLCBsYXQpO1xufVxuXG4vLyBTYW1lIG1hdGggYXMgZGVjay5nbCBwcm9qZWN0X2dsb2JlXy4gZWxldmF0aW9uQ29tbW9uIGlzIGluIGNvbW1vbiB1bml0cyBhbHJlYWR5XG4vLyAoR0xPQkVfUkFESVVTIHNwYWNlKSwgbWF0Y2hpbmcgaG93IHByb2plY3RfZ2xvYmVfIHNjYWxlcyB6IG9mZiBFQVJUSF9SQURJVVMuXG52ZWMzIGtlcGxlcl9sbmdMYXRUb0dsb2JlKHZlYzIgbG5nTGF0LCBmbG9hdCBlbGV2YXRpb25Db21tb24pIHtcbiAgZmxvYXQgbGFtYmRhID0gcmFkaWFucyhsbmdMYXQueCk7XG4gIGZsb2F0IHBoaSA9IHJhZGlhbnMobG5nTGF0LnkpO1xuICBmbG9hdCBjb3NQaGkgPSBjb3MocGhpKTtcbiAgZmxvYXQgRCA9IEdMT0JFX1JBRElVUyArIGVsZXZhdGlvbkNvbW1vbjtcbiAgcmV0dXJuIHZlYzMoXG4gICAgc2luKGxhbWJkYSkgKiBjb3NQaGksXG4gICAgLWNvcyhsYW1iZGEpICogY29zUGhpLFxuICAgIHNpbihwaGkpXG4gICkgKiBEO1xufVxuYDtcblxuLyoqXG4gKiBSZXdyaXRlcyBhIGdyaWQvaGV4YWdvbiBjZWxsIHZlcnRleCBzaGFkZXIgc28gdGhhdCwgaW4gZ2xvYmUgbW9kZSwgdGhlIGZpbmFsXG4gKiBjbGlwLXNwYWNlIHBvc2l0aW9uIGlzIGRlcml2ZWQgZnJvbSB0aGUgc3BoZXJlIHN1cmZhY2UgaW5zdGVhZCBvZiB0aGUgZmxhdCBYWVxuICogcGxhbmUuIEluIDJELzNEIG1vZGUgdGhlIG9yaWdpbmFsIHBhdGggaXMga2VwdCB1bmNoYW5nZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhZGRHbG9iZUNlbGxQcm9qZWN0aW9uKHZzOiBzdHJpbmcsIHR5cGU6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IGRlY2wgPSBgJHtHTE9CRV9DRUxMX0RFQ0x9XFxudm9pZCBtYWluKHZvaWQpIHtgO1xuICBjb25zdCB3aXRoRGVjbCA9IHZzLmluY2x1ZGVzKCd2b2lkIG1haW4odm9pZCkgeycpID8gdnMucmVwbGFjZSgndm9pZCBtYWluKHZvaWQpIHsnLCBkZWNsKSA6IHZzO1xuXG4gIGNvbnN0IHRhcmdldCA9ICdnbF9Qb3NpdGlvbiA9IHByb2plY3RfY29tbW9uX3Bvc2l0aW9uX3RvX2NsaXBzcGFjZShnZW9tZXRyeS5wb3NpdGlvbik7JztcbiAgaWYgKCF3aXRoRGVjbC5pbmNsdWRlcyh0YXJnZXQpKSB7XG4gICAgLy8gU2hhZGVyIHNoYXBlIGNoYW5nZWQgaW4gYSBkZWNrLmdsIHVwZGF0ZTsgbGVhdmUgdGhlIG9yaWdpbmFsIHNvIHdlIGRvbid0IGNyYXNoLlxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgY29uc29sZS5lcnJvcihgQ2Fubm90IGVkaXQgJHt0eXBlfSBnbG9iZSBjZWxsIHNoYWRlcmApO1xuICAgIHJldHVybiB3aXRoRGVjbDtcbiAgfVxuXG4gIHJldHVybiB3aXRoRGVjbC5yZXBsYWNlKFxuICAgIHRhcmdldCxcbiAgICBgaWYgKGdsb2JlQ2VsbFByb3BzLmdsb2JlTW9kZSA+IDAuNSkge1xuICAgICAgdmVjMiBsbmdMYXQgPSBrZXBsZXJfY29tbW9uVG9MbmdMYXQoZ2VvbWV0cnkucG9zaXRpb24ueHkgKyBwcm9qZWN0LmNvbW1vbk9yaWdpbi54eSk7XG4gICAgICB2ZWMzIGdsb2JlUG9zID0ga2VwbGVyX2xuZ0xhdFRvR2xvYmUobG5nTGF0LCBnZW9tZXRyeS5wb3NpdGlvbi56KTtcbiAgICAgIGdlb21ldHJ5LnBvc2l0aW9uID0gdmVjNChnbG9iZVBvcywgMS4wKTtcbiAgICB9XG4gICAgZ2xfUG9zaXRpb24gPSBwcm9qZWN0X2NvbW1vbl9wb3NpdGlvbl90b19jbGlwc3BhY2UoZ2VvbWV0cnkucG9zaXRpb24pO2BcbiAgKTtcbn1cblxuLyoqXG4gKiBkZWNrLmdsIDkncyBHcmlkL0hleGFnb24gYWdncmVnYXRpb24gY29tcHV0ZSBiaW4gcG9zaXRpb25zIGFuZCB0aGUgY2VsbCBsYXllcidzXG4gKiBcImNvbW1vbiBzcGFjZVwiIGZyb20gYHRoaXMuY29udGV4dC52aWV3cG9ydGAuIFVuZGVyIGBfR2xvYmVWaWV3YCB0aGF0IGNvbW1vbiBzcGFjZVxuICogaXMgdGhlIGdsb2JlJ3MgM0QtcHJvamVjdGVkIHNwYWNlIChwcm9qZWN0RmxhdCBpcyBpZGVudGl0eSBvbiBsbmcvbGF0LCBwb3NpdGlvbnNcbiAqIGJpbiBvZmYgdGhlIHNwaGVyZS1wcm9qZWN0ZWQgWFkpLCB3aGljaCBib3RoIG1pcy1iaW5zIGRhdGEgYW5kIOKAlCBjb21iaW5lZCB3aXRoIHRoZVxuICogZmxhdCBjZWxsIHNoYWRlciDigJQgZHJvcHMgY2VsbHMgb250byB0aGUgcGxhbmUgdGhyb3VnaCB0aGUgZ2xvYmUgY2VudGVyLlxuICpcbiAqIFdlIHNpZGVzdGVwIHRoaXMgYnkgcnVubmluZyBgX3VwZGF0ZUJpbk9wdGlvbnNgIHdpdGggYSBXZWJNZXJjYXRvclZpZXdwb3J0IHRoYXRcbiAqIG1hdGNoZXMgdGhlIGN1cnJlbnQgZ2xvYmUgY2FtZXJhLiBUaGF0IG1ha2VzIGJpbm5pbmcsIGBjZWxsT3JpZ2luQ29tbW9uYCAvXG4gKiBgY2VsbFNpemVDb21tb25gIChvciBgcmFkaXVzQ29tbW9uYCAvIGBoZXhPcmlnaW5Db21tb25gKSBhbmQgdGhlIGNlbGwgc2hhZGVyJ3NcbiAqIGZsYXQgcG9zaXRpb24gYWxsIGxpdmUgaW4gZ2VudWluZSBXZWIgTWVyY2F0b3IgY29tbW9uIHNwYWNlLCB3aGljaCB0aGUgY2VsbCBzaGFkZXJcbiAqIHJlbWFwIChgYWRkR2xvYmVDZWxsUHJvamVjdGlvbmApIHRoZW4gY3VydmVzIGJhY2sgb250byB0aGUgc3BoZXJlLiBJbiAyRC8zRCBtb2RlXG4gKiB0aGlzIGlzIGEgbm8tb3AuXG4gKlxuICogYGNhbGxTdXBlcmAgcnVucyBkZWNrLmdsJ3Mgb3JpZ2luYWwgYF91cGRhdGVCaW5PcHRpb25zYCB3aGlsZSB0aGUgdmlld3BvcnQgaXNcbiAqIHRlbXBvcmFyaWx5IHN3YXBwZWQuIFRoZSBzd2FwIGlzIHN5bmNocm9ub3VzIGFuZCByZXN0b3JlZCBpbiBgZmluYWxseWAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBydW5CaW5PcHRpb25zV2l0aE1lcmNhdG9yVmlld3BvcnQobGF5ZXI6IGFueSwgY2FsbFN1cGVyOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gIGNvbnN0IHZpZXdwb3J0ID0gbGF5ZXIuY29udGV4dD8udmlld3BvcnQ7XG4gIGNvbnN0IGlzR2xvYmUgPSBCb29sZWFuKHZpZXdwb3J0Py5yZXNvbHV0aW9uKTtcbiAgaWYgKCFpc0dsb2JlKSB7XG4gICAgY2FsbFN1cGVyKCk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgbWVyY2F0b3JWaWV3cG9ydCA9IG5ldyBXZWJNZXJjYXRvclZpZXdwb3J0KHtcbiAgICB3aWR0aDogdmlld3BvcnQud2lkdGgsXG4gICAgaGVpZ2h0OiB2aWV3cG9ydC5oZWlnaHQsXG4gICAgbG9uZ2l0dWRlOiB2aWV3cG9ydC5sb25naXR1ZGUsXG4gICAgbGF0aXR1ZGU6IHZpZXdwb3J0LmxhdGl0dWRlLFxuICAgIHpvb206IHZpZXdwb3J0Lnpvb21cbiAgfSk7XG5cbiAgY29uc3Qgb3JpZ2luYWxWaWV3cG9ydCA9IGxheWVyLmNvbnRleHQudmlld3BvcnQ7XG4gIGxheWVyLmNvbnRleHQudmlld3BvcnQgPSBtZXJjYXRvclZpZXdwb3J0O1xuICB0cnkge1xuICAgIGNhbGxTdXBlcigpO1xuICB9IGZpbmFsbHkge1xuICAgIGxheWVyLmNvbnRleHQudmlld3BvcnQgPSBvcmlnaW5hbFZpZXdwb3J0O1xuICB9XG59XG5cbi8qKlxuICogV3JhcHMgYSBkZWNrLmdsIGFnZ3JlZ2F0aW9uIGNlbGwgbGF5ZXIgY2xhc3MgKEdyaWRDZWxsTGF5ZXIgLyBIZXhhZ29uQ2VsbExheWVyKVxuICogd2l0aCBhIHN1YmNsYXNzIHRoYXQgaW5qZWN0cyB0aGUgZ2xvYmUgc3VyZmFjZSByZW1hcCBpbnRvIGl0cyB2ZXJ0ZXggc2hhZGVyLlxuICpcbiAqIFdlIGNyZWF0ZSB0aGUgc3ViY2xhc3MgZHluYW1pY2FsbHkgZnJvbSB3aGF0ZXZlciBkZWZhdWx0IGNsYXNzIGRlY2suZ2wgcHJvdmlkZXNcbiAqIHRvIGBnZXRTdWJMYXllckNsYXNzYCBzbyB3ZSBkb24ndCBoYXZlIHRvIGltcG9ydCB0aGUgKG5vbi1wdWJsaWMpIGNlbGwgbGF5ZXJcbiAqIGNsYXNzZXMgZGlyZWN0bHkuIFJlc3VsdHMgYXJlIGNhY2hlZCBwZXIgYmFzZSBjbGFzcyBzbyBkZWNrLmdsIHNlZXMgYSBzdGFibGVcbiAqIGxheWVyIGNsYXNzIGFjcm9zcyByZW5kZXJzIChsYXllcnMgYXJlIHJlY3JlYXRlZCBldmVyeSBmcmFtZSkgYW5kIHNoYWRlclxuICogY29tcGlsYXRpb24gLyBzdWJsYXllciBkaWZmaW5nIHN0YXlzIHN0YWJsZS5cbiAqL1xuY29uc3QgZ2xvYmVDZWxsQ2xhc3NDYWNoZSA9IG5ldyBXZWFrTWFwPG9iamVjdCwgb2JqZWN0PigpO1xuXG50eXBlIExheWVyQ29uc3RydWN0b3IgPSB7bmV3ICguLi5hcmdzOiBhbnlbXSk6IGFueTsgbGF5ZXJOYW1lPzogc3RyaW5nfTtcblxuZXhwb3J0IGZ1bmN0aW9uIG1ha2VHbG9iZUNlbGxMYXllckNsYXNzPFQgZXh0ZW5kcyBMYXllckNvbnN0cnVjdG9yPihcbiAgQmFzZUNlbGxMYXllcjogVCxcbiAgdHlwZTogc3RyaW5nXG4pOiBUIHtcbiAgY29uc3QgY2FjaGVkID0gZ2xvYmVDZWxsQ2xhc3NDYWNoZS5nZXQoQmFzZUNlbGxMYXllcik7XG4gIGlmIChjYWNoZWQpIHtcbiAgICByZXR1cm4gY2FjaGVkIGFzIFQ7XG4gIH1cblxuICBjbGFzcyBHbG9iZUNlbGxMYXllciBleHRlbmRzIChCYXNlQ2VsbExheWVyIGFzIHtuZXcgKC4uLmFyZ3M6IGFueVtdKTogYW55fSkge1xuICAgIGdldFNoYWRlcnMoKSB7XG4gICAgICBjb25zdCBzaGFkZXJzID0gc3VwZXIuZ2V0U2hhZGVycygpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc2hhZGVycyxcbiAgICAgICAgdnM6IGFkZEdsb2JlQ2VsbFByb2plY3Rpb24oc2hhZGVycy52cywgdHlwZSksXG4gICAgICAgIG1vZHVsZXM6IFsuLi4oc2hhZGVycy5tb2R1bGVzIHx8IFtdKSwgZ2xvYmVDZWxsVW5pZm9ybXNdXG4gICAgICB9O1xuICAgIH1cblxuICAgIGRyYXcob3B0czogYW55KSB7XG4gICAgICBjb25zdCBnbG9iZU1vZGUgPSAodGhpcy5jb250ZXh0LnZpZXdwb3J0IGFzIGFueSkucmVzb2x1dGlvbiA/IDEuMCA6IDAuMDtcbiAgICAgIC8vIEdyaWRDZWxsTGF5ZXIgLyBIZXhhZ29uQ2VsbExheWVyIHJlbmRlciB0aHJvdWdoIGEgc2luZ2xlIGZpbGxNb2RlbCBhbmQgc2V0XG4gICAgICAvLyB0aGVpciBvd24gbW9kdWxlIHByb3BzIGluIGRyYXcoKTsgc2V0IG91cnMgZmlyc3Qgc28gaXQgbWVyZ2VzIChzZXRQcm9wcyBpc1xuICAgICAgLy8gcGVyLW1vZHVsZSkuIGRlY2suZ2wgOSBoYXMgbm8gTW9kZWwuc2V0VW5pZm9ybXMg4oCUIHVuaWZvcm1zIGdvIHRocm91Z2hcbiAgICAgIC8vIHNoYWRlcklucHV0cyBVQk8gbW9kdWxlcy5cbiAgICAgIGNvbnN0IG1vZGVsID0gKHRoaXMuc3RhdGUgYXMgYW55KS5maWxsTW9kZWw7XG4gICAgICBpZiAobW9kZWw/LnNoYWRlcklucHV0cykge1xuICAgICAgICBtb2RlbC5zaGFkZXJJbnB1dHMuc2V0UHJvcHMoe2dsb2JlQ2VsbDoge2dsb2JlTW9kZX19KTtcbiAgICAgIH1cbiAgICAgIHN1cGVyLmRyYXcob3B0cyk7XG4gICAgfVxuICB9XG4gIChHbG9iZUNlbGxMYXllciBhcyB1bmtub3duIGFzIHtsYXllck5hbWU6IHN0cmluZ30pLmxheWVyTmFtZSA9IGBHbG9iZSR7dHlwZX1DZWxsTGF5ZXJgO1xuICBnbG9iZUNlbGxDbGFzc0NhY2hlLnNldChCYXNlQ2VsbExheWVyLCBHbG9iZUNlbGxMYXllcik7XG4gIHJldHVybiBHbG9iZUNlbGxMYXllciBhcyB1bmtub3duIGFzIFQ7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBOztBQUVBLFNBQVFBLG1CQUFtQixRQUFPLGVBQWU7O0FBRWpEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxJQUFNQyxpQkFBaUIsR0FBRztFQUN4QkMsSUFBSSxFQUFFLFdBQVc7RUFDakJDLEVBQUUsdUZBR0g7RUFDQ0MsWUFBWSxFQUFFO0lBQ1pDLFNBQVMsRUFBRTtFQUNiO0FBQ0YsQ0FBVTtBQUVWLElBQU1DLGVBQWUsR0FBRywyd0JBcUJ2Qjs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTyxTQUFTQyxzQkFBc0JBLENBQUNKLEVBQVUsRUFBRUssSUFBWSxFQUFVO0VBQ3ZFLElBQU1DLElBQUksTUFBQUMsTUFBQSxDQUFNSixlQUFlLHdCQUFxQjtFQUNwRCxJQUFNSyxRQUFRLEdBQUdSLEVBQUUsQ0FBQ1MsUUFBUSxDQUFD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
197
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJXZWJNZXJjYXRvclZpZXdwb3J0IiwiZ2xvYmVDZWxsVW5pZm9ybXMiLCJuYW1lIiwidnMiLCJ1bmlmb3JtVHlwZXMiLCJnbG9iZU1vZGUiLCJHTE9CRV9DRUxMX0RFQ0wiLCJhZGRHbG9iZUNlbGxQcm9qZWN0aW9uIiwidHlwZSIsImRlY2wiLCJjb25jYXQiLCJ3aXRoRGVjbCIsImluY2x1ZGVzIiwicmVwbGFjZSIsInRhcmdldCIsImNvbnNvbGUiLCJlcnJvciIsInJ1bkJpbk9wdGlvbnNXaXRoTWVyY2F0b3JWaWV3cG9ydCIsImxheWVyIiwiY2FsbFN1cGVyIiwiX2xheWVyJGNvbnRleHQiLCJ2aWV3cG9ydCIsImNvbnRleHQiLCJpc0dsb2JlIiwiQm9vbGVhbiIsInJlc29sdXRpb24iLCJtZXJjYXRvclZpZXdwb3J0Iiwid2lkdGgiLCJoZWlnaHQiLCJsb25naXR1ZGUiLCJsYXRpdHVkZSIsInpvb20iLCJvcmlnaW5hbFZpZXdwb3J0IiwiZ2xvYmVDZWxsQ2xhc3NDYWNoZSIsIldlYWtNYXAiLCJiaW5kQ29sb3JSYW5nZVRleHR1cmUiLCJtb2R1bGVOYW1lIiwiX2xheWVyJHN0YXRlIiwiX2xheWVyJHN0YXRlMiIsIm1vZGVsIiwic3RhdGUiLCJmaWxsTW9kZWwiLCJjb2xvclRleHR1cmUiLCJzaGFkZXJJbnB1dHMiLCJzZXRQcm9wcyIsIl9kZWZpbmVQcm9wZXJ0eSIsImNvbG9yUmFuZ2UiLCJtYWtlR2xvYmVDZWxsTGF5ZXJDbGFzcyIsIkJhc2VDZWxsTGF5ZXIiLCJjYWNoZWQiLCJnZXQiLCJHbG9iZUNlbGxMYXllciIsIl9yZWYiLCJfY2xhc3NDYWxsQ2hlY2siLCJfY2FsbFN1cGVyIiwiYXJndW1lbnRzIiwiX2luaGVyaXRzIiwiX2NyZWF0ZUNsYXNzIiwia2V5IiwidmFsdWUiLCJnZXRTaGFkZXJzIiwic2hhZGVycyIsIl9zdXBlclByb3BHZXQiLCJfb2JqZWN0U3ByZWFkIiwibW9kdWxlcyIsIl90b0NvbnN1bWFibGVBcnJheSIsInVwZGF0ZVN0YXRlIiwicGFyYW1zIiwiZHJhdyIsIm9wdHMiLCJnbG9iZUNlbGwiLCJsYXllck5hbWUiLCJzZXQiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGF5ZXItdXRpbHMvZ2xvYmUtY2VsbC11dGlscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQge1dlYk1lcmNhdG9yVmlld3BvcnR9IGZyb20gJ0BkZWNrLmdsL2NvcmUnO1xuXG4vKipcbiAqIGRlY2suZ2wncyBhZ2dyZWdhdGlvbiBjZWxsIGxheWVycyAoR3JpZENlbGxMYXllciAvIEhleGFnb25DZWxsTGF5ZXIpIHBvc2l0aW9uXG4gKiBlYWNoIGNlbGwgaW4gZmxhdCBtZXJjYXRvciBcImNvbW1vbiBzcGFjZVwiIChhIDJEIFhZIHBsYW5lKSBhbmQgdGhlbiBkcmF3IGl0IHdpdGhcbiAqIGBwcm9qZWN0X2NvbW1vbl9wb3NpdGlvbl90b19jbGlwc3BhY2VgLCB3aGljaCBvbmx5IG11bHRpcGxpZXMgYnkgdGhlXG4gKiB2aWV3LXByb2plY3Rpb24gbWF0cml4LiBVbmRlciBgX0dsb2JlVmlld2AgdGhpcyBsZWF2ZXMgdGhlIGNlbGxzIG9uIHRoZSBmbGF0IFhZXG4gKiBwbGFuZSB0aGF0IHBhc3NlcyB0aHJvdWdoIHRoZSBjZW50ZXIgb2YgdGhlIGdsb2JlIGluc3RlYWQgb2Ygb24gaXRzIHN1cmZhY2VcbiAqICh0aGUgYmFzZSBDb2x1bW5MYXllciB3b3JrcyBvbiB0aGUgZ2xvYmUgYmVjYXVzZSBpdCBmZWVkcyByZWFsIGxuZy9sYXQgdGhyb3VnaFxuICogYHByb2plY3RfcG9zaXRpb25gIC0+IGBwcm9qZWN0X2dsb2JlX2A7IHRoZSBhZ2dyZWdhdGlvbiBjZWxsIHNoYWRlcnMgc2tpcCB0aGF0KS5cbiAqXG4gKiBUbyBmaXggdGhpcyB3ZSByZW1hcCB0aGUgYWxyZWFkeS1jb21wdXRlZCBmbGF0IGNvbW1vbi1zcGFjZSB2ZXJ0ZXggcG9zaXRpb24gYmFja1xuICogdG8gbG5nL2xhdCAoaW52ZXJzZSBXZWIgTWVyY2F0b3IpIGFuZCB0aGVuIG9udG8gdGhlIHNwaGVyZSB3aXRoIHRoZSBzYW1lIG1hdGhcbiAqIGBwcm9qZWN0X2dsb2JlX2AgdXNlcyBmb3IgZ2VvZ3JhcGhpYyBsYXllcnMuIEJlY2F1c2Ugd2UgcmVtYXAgZXZlcnkgdmVydGV4IG9mIHRoZVxuICogY2VsbCBmb290cHJpbnQgKG5vdCBqdXN0IHRoZSBjZW50cm9pZCksIHRoZSBmbGF0IHF1YWQvaGV4YWdvbiBuYXR1cmFsbHkgY3VydmVzXG4gKiBvbnRvIHRoZSBzdXJmYWNlLiBFbGV2YXRpb24gKGV4dHJ1ZGVkIGNlbGxzLCBzdG9yZWQgaW4gYGdlb21ldHJ5LnBvc2l0aW9uLnpgIGluXG4gKiBjb21tb24gdW5pdHMpIGlzIGFkZGVkIGFsb25nIHRoZSByYWRpdXMgc28gY29sdW1ucyByaXNlIHJhZGlhbGx5IG9mZiB0aGUgZ2xvYmUuXG4gKlxuICogVGhlIHJlbWFwIGlzIGdhdGVkIGJ5IGEgYGdsb2JlTW9kZWAgdW5pZm9ybSBzbyAyRC8zRCBtZXJjYXRvciByZW5kZXJpbmcgaXNcbiAqIGJ5dGUtZm9yLWJ5dGUgdW5jaGFuZ2VkLlxuICpcbiAqIGBXT1JMRF9TQ0FMRWAsIGBQSWAsIGBHTE9CRV9SQURJVVNgIGFuZCBgcHJvamVjdC5jb21tb25PcmlnaW5gIGFyZSBhbGwgcHJvdmlkZWRcbiAqIGJ5IGRlY2suZ2wncyBwcm9qZWN0IHNoYWRlciBtb2R1bGUgd2hpY2ggdGhlc2UgbGF5ZXJzIGluY2x1ZGUuXG4gKi9cblxuLy8gZGVjay5nbCA5IC8gbHVtYSA5IHNldHMgY3VzdG9tIHVuaWZvcm1zIHZpYSBVQk8tYmFja2VkIHNoYWRlciBtb2R1bGVzICh0aGVyZSBpc1xuLy8gbm8gTW9kZWwuc2V0VW5pZm9ybXMpLiBUaGlzIG1pbmltYWwgbW9kdWxlIGV4cG9zZXMgdGhlIGdsb2JlLW1vZGUgZmxhZy5cbmNvbnN0IGdsb2JlQ2VsbFVuaWZvcm1zID0ge1xuICBuYW1lOiAnZ2xvYmVDZWxsJyxcbiAgdnM6IGBsYXlvdXQoc3RkMTQwKSB1bmlmb3JtIGdsb2JlQ2VsbFVuaWZvcm1zIHtcbiAgZmxvYXQgZ2xvYmVNb2RlO1xufSBnbG9iZUNlbGxQcm9wcztcbmAsXG4gIHVuaWZvcm1UeXBlczoge1xuICAgIGdsb2JlTW9kZTogJ2YzMidcbiAgfVxufSBhcyBjb25zdDtcblxuY29uc3QgR0xPQkVfQ0VMTF9ERUNMID0gLyogZ2xzbCAqLyBgXG4vLyBJbnZlcnNlIG9mIGRlY2suZ2wgcHJvamVjdF9tZXJjYXRvcl86IGZsYXQgY29tbW9uIFhZIC0+IGxuZy9sYXQgKGRlZ3JlZXMpLlxudmVjMiBrZXBsZXJfY29tbW9uVG9MbmdMYXQodmVjMiBjb21tb25YWSkge1xuICBmbG9hdCBsbmcgPSBkZWdyZWVzKGNvbW1vblhZLnggLyBXT1JMRF9TQ0FMRSAtIFBJKTtcbiAgZmxvYXQgbGF0ID0gZGVncmVlcygyLjAgKiBhdGFuKGV4cChjb21tb25YWS55IC8gV09STERfU0NBTEUgLSBQSSkpIC0gUEkgKiAwLjUpO1xuICByZXR1cm4gdmVjMihsbmcsIGxhdCk7XG59XG5cbi8vIFNhbWUgbWF0aCBhcyBkZWNrLmdsIHByb2plY3RfZ2xvYmVfLiBlbGV2YXRpb25Db21tb24gaXMgaW4gY29tbW9uIHVuaXRzIGFscmVhZHlcbi8vIChHTE9CRV9SQURJVVMgc3BhY2UpLCBtYXRjaGluZyBob3cgcHJvamVjdF9nbG9iZV8gc2NhbGVzIHogb2ZmIEVBUlRIX1JBRElVUy5cbnZlYzMga2VwbGVyX2xuZ0xhdFRvR2xvYmUodmVjMiBsbmdMYXQsIGZsb2F0IGVsZXZhdGlvbkNvbW1vbikge1xuICBmbG9hdCBsYW1iZGEgPSByYWRpYW5zKGxuZ0xhdC54KTtcbiAgZmxvYXQgcGhpID0gcmFkaWFucyhsbmdMYXQueSk7XG4gIGZsb2F0IGNvc1BoaSA9IGNvcyhwaGkpO1xuICBmbG9hdCBEID0gR0xPQkVfUkFESVVTICsgZWxldmF0aW9uQ29tbW9uO1xuICByZXR1cm4gdmVjMyhcbiAgICBzaW4obGFtYmRhKSAqIGNvc1BoaSxcbiAgICAtY29zKGxhbWJkYSkgKiBjb3NQaGksXG4gICAgc2luKHBoaSlcbiAgKSAqIEQ7XG59XG5gO1xuXG4vKipcbiAqIFJld3JpdGVzIGEgZ3JpZC9oZXhhZ29uIGNlbGwgdmVydGV4IHNoYWRlciBzbyB0aGF0LCBpbiBnbG9iZSBtb2RlLCB0aGUgZmluYWxcbiAqIGNsaXAtc3BhY2UgcG9zaXRpb24gaXMgZGVyaXZlZCBmcm9tIHRoZSBzcGhlcmUgc3VyZmFjZSBpbnN0ZWFkIG9mIHRoZSBmbGF0IFhZXG4gKiBwbGFuZS4gSW4gMkQvM0QgbW9kZSB0aGUgb3JpZ2luYWwgcGF0aCBpcyBrZXB0IHVuY2hhbmdlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFkZEdsb2JlQ2VsbFByb2plY3Rpb24odnM6IHN0cmluZywgdHlwZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgZGVjbCA9IGAke0dMT0JFX0NFTExfREVDTH1cXG52b2lkIG1haW4odm9pZCkge2A7XG4gIGNvbnN0IHdpdGhEZWNsID0gdnMuaW5jbHVkZXMoJ3ZvaWQgbWFpbih2b2lkKSB7JykgPyB2cy5yZXBsYWNlKCd2b2lkIG1haW4odm9pZCkgeycsIGRlY2wpIDogdnM7XG5cbiAgY29uc3QgdGFyZ2V0ID0gJ2dsX1Bvc2l0aW9uID0gcHJvamVjdF9jb21tb25fcG9zaXRpb25fdG9fY2xpcHNwYWNlKGdlb21ldHJ5LnBvc2l0aW9uKTsnO1xuICBpZiAoIXdpdGhEZWNsLmluY2x1ZGVzKHRhcmdldCkpIHtcbiAgICAvLyBTaGFkZXIgc2hhcGUgY2hhbmdlZCBpbiBhIGRlY2suZ2wgdXBkYXRlOyBsZWF2ZSB0aGUgb3JpZ2luYWwgc28gd2UgZG9uJ3QgY3Jhc2guXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICBjb25zb2xlLmVycm9yKGBDYW5ub3QgZWRpdCAke3R5cGV9IGdsb2JlIGNlbGwgc2hhZGVyYCk7XG4gICAgcmV0dXJuIHdpdGhEZWNsO1xuICB9XG5cbiAgcmV0dXJuIHdpdGhEZWNsLnJlcGxhY2UoXG4gICAgdGFyZ2V0LFxuICAgIGBpZiAoZ2xvYmVDZWxsUHJvcHMuZ2xvYmVNb2RlID4gMC41KSB7XG4gICAgICB2ZWMyIGxuZ0xhdCA9IGtlcGxlcl9jb21tb25Ub0xuZ0xhdChnZW9tZXRyeS5wb3NpdGlvbi54eSArIHByb2plY3QuY29tbW9uT3JpZ2luLnh5KTtcbiAgICAgIHZlYzMgZ2xvYmVQb3MgPSBrZXBsZXJfbG5nTGF0VG9HbG9iZShsbmdMYXQsIGdlb21ldHJ5LnBvc2l0aW9uLnopO1xuICAgICAgZ2VvbWV0cnkucG9zaXRpb24gPSB2ZWM0KGdsb2JlUG9zLCAxLjApO1xuICAgIH1cbiAgICBnbF9Qb3NpdGlvbiA9IHByb2plY3RfY29tbW9uX3Bvc2l0aW9uX3RvX2NsaXBzcGFjZShnZW9tZXRyeS5wb3NpdGlvbik7YFxuICApO1xufVxuXG4vKipcbiAqIGRlY2suZ2wgOSdzIEdyaWQvSGV4YWdvbiBhZ2dyZWdhdGlvbiBjb21wdXRlIGJpbiBwb3NpdGlvbnMgYW5kIHRoZSBjZWxsIGxheWVyJ3NcbiAqIFwiY29tbW9uIHNwYWNlXCIgZnJvbSBgdGhpcy5jb250ZXh0LnZpZXdwb3J0YC4gVW5kZXIgYF9HbG9iZVZpZXdgIHRoYXQgY29tbW9uIHNwYWNlXG4gKiBpcyB0aGUgZ2xvYmUncyAzRC1wcm9qZWN0ZWQgc3BhY2UgKHByb2plY3RGbGF0IGlzIGlkZW50aXR5IG9uIGxuZy9sYXQsIHBvc2l0aW9uc1xuICogYmluIG9mZiB0aGUgc3BoZXJlLXByb2plY3RlZCBYWSksIHdoaWNoIGJvdGggbWlzLWJpbnMgZGF0YSBhbmQg4oCUIGNvbWJpbmVkIHdpdGggdGhlXG4gKiBmbGF0IGNlbGwgc2hhZGVyIOKAlCBkcm9wcyBjZWxscyBvbnRvIHRoZSBwbGFuZSB0aHJvdWdoIHRoZSBnbG9iZSBjZW50ZXIuXG4gKlxuICogV2Ugc2lkZXN0ZXAgdGhpcyBieSBydW5uaW5nIGBfdXBkYXRlQmluT3B0aW9uc2Agd2l0aCBhIFdlYk1lcmNhdG9yVmlld3BvcnQgdGhhdFxuICogbWF0Y2hlcyB0aGUgY3VycmVudCBnbG9iZSBjYW1lcmEuIFRoYXQgbWFrZXMgYmlubmluZywgYGNlbGxPcmlnaW5Db21tb25gIC9cbiAqIGBjZWxsU2l6ZUNvbW1vbmAgKG9yIGByYWRpdXNDb21tb25gIC8gYGhleE9yaWdpbkNvbW1vbmApIGFuZCB0aGUgY2VsbCBzaGFkZXInc1xuICogZmxhdCBwb3NpdGlvbiBhbGwgbGl2ZSBpbiBnZW51aW5lIFdlYiBNZXJjYXRvciBjb21tb24gc3BhY2UsIHdoaWNoIHRoZSBjZWxsIHNoYWRlclxuICogcmVtYXAgKGBhZGRHbG9iZUNlbGxQcm9qZWN0aW9uYCkgdGhlbiBjdXJ2ZXMgYmFjayBvbnRvIHRoZSBzcGhlcmUuIEluIDJELzNEIG1vZGVcbiAqIHRoaXMgaXMgYSBuby1vcC5cbiAqXG4gKiBgY2FsbFN1cGVyYCBydW5zIGRlY2suZ2wncyBvcmlnaW5hbCBgX3VwZGF0ZUJpbk9wdGlvbnNgIHdoaWxlIHRoZSB2aWV3cG9ydCBpc1xuICogdGVtcG9yYXJpbHkgc3dhcHBlZC4gVGhlIHN3YXAgaXMgc3luY2hyb25vdXMgYW5kIHJlc3RvcmVkIGluIGBmaW5hbGx5YC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJ1bkJpbk9wdGlvbnNXaXRoTWVyY2F0b3JWaWV3cG9ydChsYXllcjogYW55LCBjYWxsU3VwZXI6ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgY29uc3Qgdmlld3BvcnQgPSBsYXllci5jb250ZXh0Py52aWV3cG9ydDtcbiAgY29uc3QgaXNHbG9iZSA9IEJvb2xlYW4odmlld3BvcnQ/LnJlc29sdXRpb24pO1xuICBpZiAoIWlzR2xvYmUpIHtcbiAgICBjYWxsU3VwZXIoKTtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBtZXJjYXRvclZpZXdwb3J0ID0gbmV3IFdlYk1lcmNhdG9yVmlld3BvcnQoe1xuICAgIHdpZHRoOiB2aWV3cG9ydC53aWR0aCxcbiAgICBoZWlnaHQ6IHZpZXdwb3J0LmhlaWdodCxcbiAgICBsb25naXR1ZGU6IHZpZXdwb3J0LmxvbmdpdHVkZSxcbiAgICBsYXRpdHVkZTogdmlld3BvcnQubGF0aXR1ZGUsXG4gICAgem9vbTogdmlld3BvcnQuem9vbVxuICB9KTtcblxuICBjb25zdCBvcmlnaW5hbFZpZXdwb3J0ID0gbGF5ZXIuY29udGV4dC52aWV3cG9ydDtcbiAgbGF5ZXIuY29udGV4dC52aWV3cG9ydCA9IG1lcmNhdG9yVmlld3BvcnQ7XG4gIHRyeSB7XG4gICAgY2FsbFN1cGVyKCk7XG4gIH0gZmluYWxseSB7XG4gICAgbGF5ZXIuY29udGV4dC52aWV3cG9ydCA9IG9yaWdpbmFsVmlld3BvcnQ7XG4gIH1cbn1cblxuLyoqXG4gKiBXcmFwcyBhIGRlY2suZ2wgYWdncmVnYXRpb24gY2VsbCBsYXllciBjbGFzcyAoR3JpZENlbGxMYXllciAvIEhleGFnb25DZWxsTGF5ZXIpXG4gKiB3aXRoIGEgc3ViY2xhc3MgdGhhdCBpbmplY3RzIHRoZSBnbG9iZSBzdXJmYWNlIHJlbWFwIGludG8gaXRzIHZlcnRleCBzaGFkZXIuXG4gKlxuICogV2UgY3JlYXRlIHRoZSBzdWJjbGFzcyBkeW5hbWljYWxseSBmcm9tIHdoYXRldmVyIGRlZmF1bHQgY2xhc3MgZGVjay5nbCBwcm92aWRlc1xuICogdG8gYGdldFN1YkxheWVyQ2xhc3NgIHNvIHdlIGRvbid0IGhhdmUgdG8gaW1wb3J0IHRoZSAobm9uLXB1YmxpYykgY2VsbCBsYXllclxuICogY2xhc3NlcyBkaXJlY3RseS4gUmVzdWx0cyBhcmUgY2FjaGVkIHBlciBiYXNlIGNsYXNzIHNvIGRlY2suZ2wgc2VlcyBhIHN0YWJsZVxuICogbGF5ZXIgY2xhc3MgYWNyb3NzIHJlbmRlcnMgKGxheWVycyBhcmUgcmVjcmVhdGVkIGV2ZXJ5IGZyYW1lKSBhbmQgc2hhZGVyXG4gKiBjb21waWxhdGlvbiAvIHN1YmxheWVyIGRpZmZpbmcgc3RheXMgc3RhYmxlLlxuICovXG5jb25zdCBnbG9iZUNlbGxDbGFzc0NhY2hlID0gbmV3IFdlYWtNYXA8b2JqZWN0LCBvYmplY3Q+KCk7XG5cbnR5cGUgTGF5ZXJDb25zdHJ1Y3RvciA9IHtuZXcgKC4uLmFyZ3M6IGFueVtdKTogYW55OyBsYXllck5hbWU/OiBzdHJpbmd9O1xuXG4vKipcbiAqIGRlY2suZ2wncyBHcmlkQ2VsbExheWVyIC8gSGV4YWdvbkNlbGxMYXllciBiaW5kIHRoZSBgY29sb3JSYW5nZWAgcGFsZXR0ZVxuICogdGV4dHVyZSBvbmx5IHdoZW4gdGhlIGBjb2xvclJhbmdlYCAqcHJvcCogY2hhbmdlcy4gQ29sdW1uTGF5ZXIgKHRoZSBwYXJlbnQpXG4gKiBkZXN0cm95cyBhbmQgcmVjcmVhdGVzIGBmaWxsTW9kZWxgIHdoZW5ldmVyIGBleHRlbnNpb25zQ2hhbmdlZGAgZmlyZXMg4oCUXG4gKiB3aGljaCBoYXBwZW5zIHdoZW4gTGlnaHQgJiBTaGFkb3cgcmVnaXN0ZXJzIHRoZSBzaGFkb3cgc2hhZGVyIG1vZHVsZS5cbiAqIFRoZSBuZXcgbW9kZWwgc3RhcnRzIHdpdGggZW1wdHkgYmluZGluZ3MsIHRoZSBjb2xvclJhbmdlIGNoZWNrIGlzIGEgbm8tb3AsXG4gKiBhbmQgbHVtYS5nbCBza2lwcyB0aGUgZHJhdzogXCJCaW5kaW5nIGNvbG9yUmFuZ2Ugbm90IGZvdW5kIGluIOKApi1jZWxscy1maWxsLWNhY2hlZFwiLlxuICogUmVjcmVhdGluZyB0aGUgS2VwbGVyIGxheWVyIFwiZml4ZXNcIiBpdCBiZWNhdXNlIGluaXRpYWxpemUvdXBkYXRlIHRoZW4gc2VlcyBhXG4gKiBjb2xvclJhbmdlIGNoYW5nZSBhZ2FpbnN0IGVtcHR5IG9sZFByb3BzIGFuZCBiaW5kcyB0aGUgdGV4dHVyZSBhZ2Fpbi5cbiAqXG4gKiBSZS1iaW5kIHRoZSBleGlzdGluZyB0ZXh0dXJlIG9udG8gd2hhdGV2ZXIgZmlsbE1vZGVsIGlzIGN1cnJlbnQuIEhhcm1sZXNzXG4gKiB3aGVuIHRoZSBwYXJlbnQgYWxyZWFkeSBib3VuZCBpdDsgcmVxdWlyZWQgYWZ0ZXIgYSBtb2RlbCByZWJ1aWxkLlxuICovXG5mdW5jdGlvbiBiaW5kQ29sb3JSYW5nZVRleHR1cmUobGF5ZXI6IGFueSwgbW9kdWxlTmFtZTogc3RyaW5nKTogdm9pZCB7XG4gIGNvbnN0IG1vZGVsID0gbGF5ZXIuc3RhdGU/LmZpbGxNb2RlbDtcbiAgY29uc3QgY29sb3JUZXh0dXJlID0gbGF5ZXIuc3RhdGU/LmNvbG9yVGV4dHVyZTtcbiAgaWYgKG1vZGVsPy5zaGFkZXJJbnB1dHMgJiYgY29sb3JUZXh0dXJlKSB7XG4gICAgbW9kZWwuc2hhZGVySW5wdXRzLnNldFByb3BzKHtbbW9kdWxlTmFtZV06IHtjb2xvclJhbmdlOiBjb2xvclRleHR1cmV9fSk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1ha2VHbG9iZUNlbGxMYXllckNsYXNzPFQgZXh0ZW5kcyBMYXllckNvbnN0cnVjdG9yPihcbiAgQmFzZUNlbGxMYXllcjogVCxcbiAgdHlwZTogc3RyaW5nXG4pOiBUIHtcbiAgY29uc3QgY2FjaGVkID0gZ2xvYmVDZWxsQ2xhc3NDYWNoZS5nZXQoQmFzZUNlbGxMYXllcik7XG4gIGlmIChjYWNoZWQpIHtcbiAgICByZXR1cm4gY2FjaGVkIGFzIFQ7XG4gIH1cblxuICBjbGFzcyBHbG9iZUNlbGxMYXllciBleHRlbmRzIChCYXNlQ2VsbExheWVyIGFzIHtuZXcgKC4uLmFyZ3M6IGFueVtdKTogYW55fSkge1xuICAgIGdldFNoYWRlcnMoKSB7XG4gICAgICBjb25zdCBzaGFkZXJzID0gc3VwZXIuZ2V0U2hhZGVycygpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc2hhZGVycyxcbiAgICAgICAgdnM6IGFkZEdsb2JlQ2VsbFByb2plY3Rpb24oc2hhZGVycy52cywgdHlwZSksXG4gICAgICAgIG1vZHVsZXM6IFsuLi4oc2hhZGVycy5tb2R1bGVzIHx8IFtdKSwgZ2xvYmVDZWxsVW5pZm9ybXNdXG4gICAgICB9O1xuICAgIH1cblxuICAgIHVwZGF0ZVN0YXRlKHBhcmFtczogYW55KSB7XG4gICAgICBzdXBlci51cGRhdGVTdGF0ZShwYXJhbXMpO1xuICAgICAgYmluZENvbG9yUmFuZ2VUZXh0dXJlKHRoaXMsIHR5cGUpO1xuICAgIH1cblxuICAgIGRyYXcob3B0czogYW55KSB7XG4gICAgICBjb25zdCBnbG9iZU1vZGUgPSAodGhpcy5jb250ZXh0LnZpZXdwb3J0IGFzIGFueSkucmVzb2x1dGlvbiA/IDEuMCA6IDAuMDtcbiAgICAgIC8vIEdyaWRDZWxsTGF5ZXIgLyBIZXhhZ29uQ2VsbExheWVyIHJlbmRlciB0aHJvdWdoIGEgc2luZ2xlIGZpbGxNb2RlbCBhbmQgc2V0XG4gICAgICAvLyB0aGVpciBvd24gbW9kdWxlIHByb3BzIGluIGRyYXcoKTsgc2V0IG91cnMgZmlyc3Qgc28gaXQgbWVyZ2VzIChzZXRQcm9wcyBpc1xuICAgICAgLy8gcGVyLW1vZHVsZSkuIGRlY2suZ2wgOSBoYXMgbm8gTW9kZWwuc2V0VW5pZm9ybXMg4oCUIHVuaWZvcm1zIGdvIHRocm91Z2hcbiAgICAgIC8vIHNoYWRlcklucHV0cyBVQk8gbW9kdWxlcy5cbiAgICAgIGNvbnN0IG1vZGVsID0gKHRoaXMuc3RhdGUgYXMgYW55KS5maWxsTW9kZWw7XG4gICAgICBpZiAobW9kZWw/LnNoYWRlcklucHV0cykge1xuICAgICAgICBtb2RlbC5zaGFkZXJJbnB1dHMuc2V0UHJvcHMoe2dsb2JlQ2VsbDoge2dsb2JlTW9kZX19KTtcbiAgICAgIH1cbiAgICAgIGJpbmRDb2xvclJhbmdlVGV4dHVyZSh0aGlzLCB0eXBlKTtcbiAgICAgIHN1cGVyLmRyYXcob3B0cyk7XG4gICAgfVxuICB9XG4gIChHbG9iZUNlbGxMYXllciBhcyB1bmtub3duIGFzIHtsYXllck5hbWU6IHN0cmluZ30pLmxheWVyTmFtZSA9IGBHbG9iZSR7dHlwZX1DZWxsTGF5ZXJgO1xuICBnbG9iZUNlbGxDbGFzc0NhY2hlLnNldChCYXNlQ2VsbExheWVyLCBHbG9iZUNlbGxMYXllcik7XG4gIHJldHVybiBHbG9iZUNlbGxMYXllciBhcyB1bmtub3duIGFzIFQ7XG59XG4iXSwi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
@@ -0,0 +1,115 @@
1
+ import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
2
+ import _createClass from "@babel/runtime/helpers/esm/createClass";
3
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
4
+ // SPDX-License-Identifier: MIT
5
+ // Copyright contributors to the kepler.gl project
6
+
7
+ import { makeGlobeCellLayerClass } from './globe-cell-utils';
8
+ function makeFakeCellLayerClass() {
9
+ return /*#__PURE__*/function () {
10
+ function FakeCellLayer() {
11
+ _classCallCheck(this, FakeCellLayer);
12
+ _defineProperty(this, "state", {});
13
+ _defineProperty(this, "context", {
14
+ viewport: {}
15
+ });
16
+ }
17
+ return _createClass(FakeCellLayer, [{
18
+ key: "getShaders",
19
+ value: function getShaders() {
20
+ return {
21
+ vs: 'void main(void) { gl_Position = project_common_position_to_clipspace(geometry.position); }',
22
+ modules: []
23
+ };
24
+ }
25
+
26
+ // deck.gl ColumnLayer recreates fillModel on extensionsChanged and does not
27
+ // copy over the colorRange texture binding. GridCellLayer / HexagonCellLayer
28
+ // only bind that texture when the colorRange *prop* changes.
29
+ }, {
30
+ key: "updateState",
31
+ value: function updateState(_params) {
32
+ this.state.fillModel = {
33
+ shaderInputs: {
34
+ setProps: jest.fn()
35
+ }
36
+ };
37
+ }
38
+ }, {
39
+ key: "draw",
40
+ value: function draw(_opts) {
41
+ // no-op stub so GlobeCellLayer.draw can call super.draw()
42
+ }
43
+ }]);
44
+ }();
45
+ }
46
+ describe('globe-cell-utils colorRange rebind', function () {
47
+ test('rebinds colorRange onto a rebuilt fillModel (grid)', function () {
48
+ var _layer$state$fillMode;
49
+ var GlobeGridCell = makeGlobeCellLayerClass(makeFakeCellLayerClass(), 'grid');
50
+ var layer = new GlobeGridCell();
51
+ layer.state.colorTexture = {
52
+ id: 'color-range-tex'
53
+ };
54
+ layer.updateState({
55
+ changeFlags: {
56
+ extensionsChanged: true
57
+ },
58
+ props: {
59
+ colorRange: ['#fff']
60
+ },
61
+ oldProps: {
62
+ colorRange: ['#fff']
63
+ }
64
+ });
65
+ expect((_layer$state$fillMode = layer.state.fillModel) === null || _layer$state$fillMode === void 0 ? void 0 : _layer$state$fillMode.shaderInputs.setProps).toHaveBeenCalledWith({
66
+ grid: {
67
+ colorRange: layer.state.colorTexture
68
+ }
69
+ });
70
+ });
71
+ test('rebinds colorRange onto a rebuilt fillModel (hexagon)', function () {
72
+ var _layer$state$fillMode2;
73
+ var GlobeHexCell = makeGlobeCellLayerClass(makeFakeCellLayerClass(), 'hexagon');
74
+ var layer = new GlobeHexCell();
75
+ layer.state.colorTexture = {
76
+ id: 'color-range-tex'
77
+ };
78
+ layer.updateState({
79
+ changeFlags: {
80
+ extensionsChanged: true
81
+ },
82
+ props: {
83
+ colorRange: ['#fff']
84
+ },
85
+ oldProps: {
86
+ colorRange: ['#fff']
87
+ }
88
+ });
89
+ expect((_layer$state$fillMode2 = layer.state.fillModel) === null || _layer$state$fillMode2 === void 0 ? void 0 : _layer$state$fillMode2.shaderInputs.setProps).toHaveBeenCalledWith({
90
+ hexagon: {
91
+ colorRange: layer.state.colorTexture
92
+ }
93
+ });
94
+ });
95
+ test('draw also rebinds colorRange so the first frame after rebuild is valid', function () {
96
+ var GlobeGridCell = makeGlobeCellLayerClass(makeFakeCellLayerClass(), 'grid');
97
+ var layer = new GlobeGridCell();
98
+ var setProps = jest.fn();
99
+ layer.state.colorTexture = {
100
+ id: 'color-range-tex'
101
+ };
102
+ layer.state.fillModel = {
103
+ shaderInputs: {
104
+ setProps: setProps
105
+ }
106
+ };
107
+ layer.draw({});
108
+ expect(setProps).toHaveBeenCalledWith({
109
+ grid: {
110
+ colorRange: layer.state.colorTexture
111
+ }
112
+ });
113
+ });
114
+ });
115
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJtYWtlR2xvYmVDZWxsTGF5ZXJDbGFzcyIsIm1ha2VGYWtlQ2VsbExheWVyQ2xhc3MiLCJGYWtlQ2VsbExheWVyIiwiX2NsYXNzQ2FsbENoZWNrIiwiX2RlZmluZVByb3BlcnR5Iiwidmlld3BvcnQiLCJfY3JlYXRlQ2xhc3MiLCJrZXkiLCJ2YWx1ZSIsImdldFNoYWRlcnMiLCJ2cyIsIm1vZHVsZXMiLCJ1cGRhdGVTdGF0ZSIsIl9wYXJhbXMiLCJzdGF0ZSIsImZpbGxNb2RlbCIsInNoYWRlcklucHV0cyIsInNldFByb3BzIiwiamVzdCIsImZuIiwiZHJhdyIsIl9vcHRzIiwiZGVzY3JpYmUiLCJ0ZXN0IiwiX2xheWVyJHN0YXRlJGZpbGxNb2RlIiwiR2xvYmVHcmlkQ2VsbCIsImxheWVyIiwiY29sb3JUZXh0dXJlIiwiaWQiLCJjaGFuZ2VGbGFncyIsImV4dGVuc2lvbnNDaGFuZ2VkIiwicHJvcHMiLCJjb2xvclJhbmdlIiwib2xkUHJvcHMiLCJleHBlY3QiLCJ0b0hhdmVCZWVuQ2FsbGVkV2l0aCIsImdyaWQiLCJfbGF5ZXIkc3RhdGUkZmlsbE1vZGUyIiwiR2xvYmVIZXhDZWxsIiwiaGV4YWdvbiJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9sYXllci11dGlscy9nbG9iZS1jZWxsLXV0aWxzLnNwZWMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IHttYWtlR2xvYmVDZWxsTGF5ZXJDbGFzc30gZnJvbSAnLi9nbG9iZS1jZWxsLXV0aWxzJztcblxuZnVuY3Rpb24gbWFrZUZha2VDZWxsTGF5ZXJDbGFzcygpIHtcbiAgcmV0dXJuIGNsYXNzIEZha2VDZWxsTGF5ZXIge1xuICAgIHN0YXRlOiB7XG4gICAgICBmaWxsTW9kZWw/OiB7c2hhZGVySW5wdXRzOiB7c2V0UHJvcHM6IGplc3QuTW9ja319O1xuICAgICAgY29sb3JUZXh0dXJlPzoge2lkOiBzdHJpbmd9O1xuICAgIH0gPSB7fTtcbiAgICBjb250ZXh0ID0ge3ZpZXdwb3J0OiB7fX07XG5cbiAgICBnZXRTaGFkZXJzKCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdnM6ICd2b2lkIG1haW4odm9pZCkgeyBnbF9Qb3NpdGlvbiA9IHByb2plY3RfY29tbW9uX3Bvc2l0aW9uX3RvX2NsaXBzcGFjZShnZW9tZXRyeS5wb3NpdGlvbik7IH0nLFxuICAgICAgICBtb2R1bGVzOiBbXVxuICAgICAgfTtcbiAgICB9XG5cbiAgICAvLyBkZWNrLmdsIENvbHVtbkxheWVyIHJlY3JlYXRlcyBmaWxsTW9kZWwgb24gZXh0ZW5zaW9uc0NoYW5nZWQgYW5kIGRvZXMgbm90XG4gICAgLy8gY29weSBvdmVyIHRoZSBjb2xvclJhbmdlIHRleHR1cmUgYmluZGluZy4gR3JpZENlbGxMYXllciAvIEhleGFnb25DZWxsTGF5ZXJcbiAgICAvLyBvbmx5IGJpbmQgdGhhdCB0ZXh0dXJlIHdoZW4gdGhlIGNvbG9yUmFuZ2UgKnByb3AqIGNoYW5nZXMuXG4gICAgdXBkYXRlU3RhdGUoX3BhcmFtcz86IHVua25vd24pIHtcbiAgICAgIHRoaXMuc3RhdGUuZmlsbE1vZGVsID0ge3NoYWRlcklucHV0czoge3NldFByb3BzOiBqZXN0LmZuKCl9fTtcbiAgICB9XG5cbiAgICBkcmF3KF9vcHRzPzogdW5rbm93bikge1xuICAgICAgLy8gbm8tb3Agc3R1YiBzbyBHbG9iZUNlbGxMYXllci5kcmF3IGNhbiBjYWxsIHN1cGVyLmRyYXcoKVxuICAgIH1cbiAgfTtcbn1cblxuZGVzY3JpYmUoJ2dsb2JlLWNlbGwtdXRpbHMgY29sb3JSYW5nZSByZWJpbmQnLCAoKSA9PiB7XG4gIHRlc3QoJ3JlYmluZHMgY29sb3JSYW5nZSBvbnRvIGEgcmVidWlsdCBmaWxsTW9kZWwgKGdyaWQpJywgKCkgPT4ge1xuICAgIGNvbnN0IEdsb2JlR3JpZENlbGwgPSBtYWtlR2xvYmVDZWxsTGF5ZXJDbGFzcyhtYWtlRmFrZUNlbGxMYXllckNsYXNzKCksICdncmlkJyk7XG4gICAgY29uc3QgbGF5ZXIgPSBuZXcgR2xvYmVHcmlkQ2VsbCgpO1xuICAgIGxheWVyLnN0YXRlLmNvbG9yVGV4dHVyZSA9IHtpZDogJ2NvbG9yLXJhbmdlLXRleCd9O1xuXG4gICAgbGF5ZXIudXBkYXRlU3RhdGUoe1xuICAgICAgY2hhbmdlRmxhZ3M6IHtleHRlbnNpb25zQ2hhbmdlZDogdHJ1ZX0sXG4gICAgICBwcm9wczoge2NvbG9yUmFuZ2U6IFsnI2ZmZiddfSxcbiAgICAgIG9sZFByb3BzOiB7Y29sb3JSYW5nZTogWycjZmZmJ119XG4gICAgfSk7XG5cbiAgICBleHBlY3QobGF5ZXIuc3RhdGUuZmlsbE1vZGVsPy5zaGFkZXJJbnB1dHMuc2V0UHJvcHMpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKHtcbiAgICAgIGdyaWQ6IHtjb2xvclJhbmdlOiBsYXllci5zdGF0ZS5jb2xvclRleHR1cmV9XG4gICAgfSk7XG4gIH0pO1xuXG4gIHRlc3QoJ3JlYmluZHMgY29sb3JSYW5nZSBvbnRvIGEgcmVidWlsdCBmaWxsTW9kZWwgKGhleGFnb24pJywgKCkgPT4ge1xuICAgIGNvbnN0IEdsb2JlSGV4Q2VsbCA9IG1ha2VHbG9iZUNlbGxMYXllckNsYXNzKG1ha2VGYWtlQ2VsbExheWVyQ2xhc3MoKSwgJ2hleGFnb24nKTtcbiAgICBjb25zdCBsYXllciA9IG5ldyBHbG9iZUhleENlbGwoKTtcbiAgICBsYXllci5zdGF0ZS5jb2xvclRleHR1cmUgPSB7aWQ6ICdjb2xvci1yYW5nZS10ZXgnfTtcblxuICAgIGxheWVyLnVwZGF0ZVN0YXRlKHtcbiAgICAgIGNoYW5nZUZsYWdzOiB7ZXh0ZW5zaW9uc0NoYW5nZWQ6IHRydWV9LFxuICAgICAgcHJvcHM6IHtjb2xvclJhbmdlOiBbJyNmZmYnXX0sXG4gICAgICBvbGRQcm9wczoge2NvbG9yUmFuZ2U6IFsnI2ZmZiddfVxuICAgIH0pO1xuXG4gICAgZXhwZWN0KGxheWVyLnN0YXRlLmZpbGxNb2RlbD8uc2hhZGVySW5wdXRzLnNldFByb3BzKS50b0hhdmVCZWVuQ2FsbGVkV2l0aCh7XG4gICAgICBoZXhhZ29uOiB7Y29sb3JSYW5nZTogbGF5ZXIuc3RhdGUuY29sb3JUZXh0dXJlfVxuICAgIH0pO1xuICB9KTtcblxuICB0ZXN0KCdkcmF3IGFsc28gcmViaW5kcyBjb2xvclJhbmdlIHNvIHRoZSBmaXJzdCBmcmFtZSBhZnRlciByZWJ1aWxkIGlzIHZhbGlkJywgKCkgPT4ge1xuICAgIGNvbnN0IEdsb2JlR3JpZENlbGwgPSBtYWtlR2xvYmVDZWxsTGF5ZXJDbGFzcyhtYWtlRmFrZUNlbGxMYXllckNsYXNzKCksICdncmlkJyk7XG4gICAgY29uc3QgbGF5ZXIgPSBuZXcgR2xvYmVHcmlkQ2VsbCgpO1xuICAgIGNvbnN0IHNldFByb3BzID0gamVzdC5mbigpO1xuICAgIGxheWVyLnN0YXRlLmNvbG9yVGV4dHVyZSA9IHtpZDogJ2NvbG9yLXJhbmdlLXRleCd9O1xuICAgIGxheWVyLnN0YXRlLmZpbGxNb2RlbCA9IHtzaGFkZXJJbnB1dHM6IHtzZXRQcm9wc319O1xuXG4gICAgbGF5ZXIuZHJhdyh7fSk7XG5cbiAgICBleHBlY3Qoc2V0UHJvcHMpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKHtcbiAgICAgIGdyaWQ6IHtjb2xvclJhbmdlOiBsYXllci5zdGF0ZS5jb2xvclRleHR1cmV9XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXSwibWFwcGluZ3MiOiI7OztBQUFBO0FBQ0E7O0FBRUEsU0FBUUEsdUJBQXVCLFFBQU8sb0JBQW9CO0FBRTFELFNBQVNDLHNCQUFzQkEsQ0FBQSxFQUFHO0VBQ2hDO0lBQUEsU0FBQUMsY0FBQTtNQUFBQyxlQUFBLE9BQUFELGFBQUE7TUFBQUUsZUFBQSxnQkFJTSxDQUFDLENBQUM7TUFBQUEsZUFBQSxrQkFDSTtRQUFDQyxRQUFRLEVBQUUsQ0FBQztNQUFDLENBQUM7SUFBQTtJQUFBLE9BQUFDLFlBQUEsQ0FBQUosYUFBQTtNQUFBSyxHQUFBO01BQUFDLEtBQUEsRUFF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
@@ -0,0 +1 @@
1
+ export {};
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@kepler.gl/deckgl-layers",
3
3
  "author": "Shan He <shan@uber.com>",
4
- "version": "3.3.0-alpha.8",
4
+ "version": "3.3.0-alpha.9",
5
5
  "description": "kepler.gl constants used by kepler.gl components, actions and reducers",
6
6
  "license": "MIT",
7
7
  "main": "dist/cjs/index.js",
@@ -33,9 +33,9 @@
33
33
  "@deck.gl/geo-layers": "^9.3.1",
34
34
  "@deck.gl/layers": "^9.3.1",
35
35
  "@deck.gl/mesh-layers": "^9.3.1",
36
- "@kepler.gl/constants": "3.3.0-alpha.8",
37
- "@kepler.gl/types": "3.3.0-alpha.8",
38
- "@kepler.gl/utils": "3.3.0-alpha.8",
36
+ "@kepler.gl/constants": "3.3.0-alpha.9",
37
+ "@kepler.gl/types": "3.3.0-alpha.9",
38
+ "@kepler.gl/utils": "3.3.0-alpha.9",
39
39
  "@loaders.gl/wms": "4.4.1",
40
40
  "@luma.gl/constants": "^9.3.2",
41
41
  "@luma.gl/core": "^9.3.2",