UNPKG

kepler.gl.geoiq

Version:

kepler.gl is a webgl based application to visualize large scale location data in the browser

145 lines (116 loc) 15.6 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _typeof = require("@babel/runtime/helpers/typeof"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized")); var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _react = _interopRequireWildcard(require("react")); var _styledComponents = require("../../common/styled-components"); var _itemSelector = _interopRequireDefault(require("../../common/item-selector/item-selector")); var _reselect = require("reselect"); function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } var WidgetLayerSelector = exports["default"] = /*#__PURE__*/function (_Component) { (0, _inherits2["default"])(WidgetLayerSelector, _Component); var _super = _createSuper(WidgetLayerSelector); function WidgetLayerSelector() { var _this; (0, _classCallCheck2["default"])(this, WidgetLayerSelector); for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } _this = _super.call.apply(_super, [this].concat(args)); (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "layersSelector", function (props) { return props.layers; }); (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "dataIdSelector", function (props) { return props.widget.config.dataId; }); (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "lsOptionsSelector", (0, _reselect.createSelector)(_this.layersSelector, _this.dataIdSelector, function (layers, dataId) { return Object.values(layers).map(function (ls) { if (ls.config.dataId === dataId) { return { label: ls.config.label, value: { id: ls.id, label: ls.config.label } }; } }); })); return _this; } (0, _createClass2["default"])(WidgetLayerSelector, [{ key: "_widgetLayerOptions", value: function _widgetLayerOptions(layers, dataId) { var options = []; layers.map(function (lidget) { var config = lidget.config; var LayerDataId = config.dataId; if (LayerDataId === dataId) { options.push({ label: lidget.config.label, value: { id: lidget.id, label: lidget.config.label } }); } }); return options; } }, { key: "_renderPlaceholder", value: function _renderPlaceholder(id) { var placeholder = this.props.layers.map(function (l) { if (l.id === id) { return l.config.label; } }); return placeholder; } }, { key: "render", value: function render() { var _React$createElement; var _this$props = this.props, layers = _this$props.layers, widget = _this$props.widget, dataId = _this$props.dataId, onSelect = _this$props.onSelect; var config = widget.config; var selectedLayer; selectedLayer = config.selectedLayer; // console.log(selectedLayer); // console.log('lsoptions in widgetLayerSelector', lsOptions); // console.log('selected layer is ', typeof selectedLayer); // console.log('layers widgetLayerSelector', layers); // console.log('options', this._widgetLayerOptions(layers, dataId)); // console.log('layers', layers); return (/*#__PURE__*/_react["default"].createElement(_styledComponents.SidePanelSection, { className: "layer-selector" }, /*#__PURE__*/_react["default"].createElement(_styledComponents.PanelLabel, null, "Layers"), /*#__PURE__*/_react["default"].createElement(_itemSelector["default"], (_React$createElement = { placeholder: selectedLayer ? this._renderPlaceholder(selectedLayer.id) : 'Select A Layer' // selectedItems={selectedLayer} // options={this._widgetLayerOptions(layers, dataId)} , options: this._widgetLayerOptions(layers, dataId), multiSelect: false, getOptionValue: 'value' }, (0, _defineProperty2["default"])(_React$createElement, "multiSelect", false), (0, _defineProperty2["default"])(_React$createElement, "onChange", onSelect), (0, _defineProperty2["default"])(_React$createElement, "displayOption", 'label'), (0, _defineProperty2["default"])(_React$createElement, "searchable", false), _React$createElement))) ); } }]); return WidgetLayerSelector; }(_react.Component); (0, _defineProperty2["default"])(WidgetLayerSelector, "proptypes", {}); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3NpZGUtcGFuZWwvd2lkZ2V0LXBhbmVsL3dpZGdldC1sYXllci1zZWxlY3Rvci5qcyJdLCJuYW1lcyI6WyJXaWRnZXRMYXllclNlbGVjdG9yIiwicHJvcHMiLCJsYXllcnMiLCJ3aWRnZXQiLCJjb25maWciLCJkYXRhSWQiLCJsYXllcnNTZWxlY3RvciIsImRhdGFJZFNlbGVjdG9yIiwiT2JqZWN0IiwidmFsdWVzIiwibWFwIiwibHMiLCJsYWJlbCIsInZhbHVlIiwiaWQiLCJvcHRpb25zIiwibGlkZ2V0IiwiTGF5ZXJEYXRhSWQiLCJwdXNoIiwicGxhY2Vob2xkZXIiLCJsIiwib25TZWxlY3QiLCJzZWxlY3RlZExheWVyIiwiX3JlbmRlclBsYWNlaG9sZGVyIiwiX3dpZGdldExheWVyT3B0aW9ucyIsIkNvbXBvbmVudCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQW9CQTs7QUFDQTs7QUFJQTs7QUFDQTs7Ozs7Ozs7OztJQUVxQkEsbUI7Ozs7Ozs7Ozs7Ozs7Ozt1R0FHRixVQUFBQyxLQUFLO0FBQUEsYUFBSUEsS0FBSyxDQUFDQyxNQUFWO0FBQUEsSzt1R0FDTCxVQUFBRCxLQUFLO0FBQUEsYUFBSUEsS0FBSyxDQUFDRSxNQUFOLENBQWFDLE1BQWIsQ0FBb0JDLE1BQXhCO0FBQUEsSzswR0FDRiw4QkFDbEIsTUFBS0MsY0FEYSxFQUVsQixNQUFLQyxjQUZhLEVBR2xCLFVBQUNMLE1BQUQsRUFBU0csTUFBVDtBQUFBLGFBQ0VHLE1BQU0sQ0FBQ0MsTUFBUCxDQUFjUCxNQUFkLEVBQXNCUSxHQUF0QixDQUEwQixVQUFBQyxFQUFFLEVBQUk7QUFDOUIsWUFBSUEsRUFBRSxDQUFDUCxNQUFILENBQVVDLE1BQVYsS0FBcUJBLE1BQXpCLEVBQWlDO0FBQy9CLGlCQUFPO0FBQ0xPLFlBQUFBLEtBQUssRUFBRUQsRUFBRSxDQUFDUCxNQUFILENBQVVRLEtBRFo7QUFFTEMsWUFBQUEsS0FBSyxFQUFFO0FBQUNDLGNBQUFBLEVBQUUsRUFBRUgsRUFBRSxDQUFDRyxFQUFSO0FBQVlGLGNBQUFBLEtBQUssRUFBRUQsRUFBRSxDQUFDUCxNQUFILENBQVVRO0FBQTdCO0FBRkYsV0FBUDtBQUlEO0FBQ0YsT0FQRCxDQURGO0FBQUEsS0FIa0IsQzs7Ozs7O1dBY3BCLDZCQUFvQlYsTUFBcEIsRUFBNEJHLE1BQTVCLEVBQW9DO0FBQ2xDLFVBQUlVLE9BQU8sR0FBRyxFQUFkO0FBQ0FiLE1BQUFBLE1BQU0sQ0FBQ1EsR0FBUCxDQUFXLFVBQUFNLE1BQU0sRUFBSTtBQUNuQixZQUFPWixNQUFQLEdBQWlCWSxNQUFqQixDQUFPWixNQUFQO0FBQ0EsWUFBTWEsV0FBVyxHQUFHYixNQUFNLENBQUNDLE1BQTNCOztBQUNBLFlBQUlZLFdBQVcsS0FBS1osTUFBcEIsRUFBNEI7QUFDMUJVLFVBQUFBLE9BQU8sQ0FBQ0csSUFBUixDQUFhO0FBQ1hOLFlBQUFBLEtBQUssRUFBRUksTUFBTSxDQUFDWixNQUFQLENBQWNRLEtBRFY7QUFFWEMsWUFBQUEsS0FBSyxFQUFFO0FBQUNDLGNBQUFBLEVBQUUsRUFBRUUsTUFBTSxDQUFDRixFQUFaO0FBQWdCRixjQUFBQSxLQUFLLEVBQUVJLE1BQU0sQ0FBQ1osTUFBUCxDQUFjUTtBQUFyQztBQUZJLFdBQWI7QUFJRDtBQUNGLE9BVEQ7QUFVQSxhQUFPRyxPQUFQO0FBQ0Q7OztXQUVELDRCQUFtQkQsRUFBbkIsRUFBdUI7QUFDckIsVUFBSUssV0FBVyxHQUFHLEtBQUtsQixLQUFMLENBQVdDLE1BQVgsQ0FBa0JRLEdBQWxCLENBQXNCLFVBQUFVLENBQUMsRUFBSTtBQUMzQyxZQUFJQSxDQUFDLENBQUNOLEVBQUYsS0FBU0EsRUFBYixFQUFpQjtBQUNmLGlCQUFPTSxDQUFDLENBQUNoQixNQUFGLENBQVNRLEtBQWhCO0FBQ0Q7QUFDRixPQUppQixDQUFsQjtBQUtBLGFBQU9PLFdBQVA7QUFDRDs7O1dBRUQsa0JBQVM7QUFBQTs7QUFDUCx3QkFBMkMsS0FBS2xCLEtBQWhEO0FBQUEsVUFBT0MsTUFBUCxlQUFPQSxNQUFQO0FBQUEsVUFBZUMsTUFBZixlQUFlQSxNQUFmO0FBQUEsVUFBdUJFLE1BQXZCLGVBQXVCQSxNQUF2QjtBQUFBLFVBQStCZ0IsUUFBL0IsZUFBK0JBLFFBQS9CO0FBQ0EsVUFBT2pCLE1BQVAsR0FBaUJELE1BQWpCLENBQU9DLE1BQVA7QUFDQSxVQUFJa0IsYUFBSjtBQUVBQSxNQUFBQSxhQUFhLEdBQUdsQixNQUFNLENBQUNrQixhQUF2QixDQUxPLENBTVA7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUNBLDJCQUNFLGdDQUFDLGtDQUFEO0FBQWtCLFVBQUEsU0FBUyxFQUFDO0FBQTVCLHdCQUNFLGdDQUFDLDRCQUFELGlCQURGLGVBRUUsZ0NBQUMsd0JBQUQ7QUFDRSxVQUFBLFdBQVcsRUFDVEEsYUFBYSxHQUNULEtBQUtDLGtCQUFMLENBQXdCRCxhQUFhLENBQUNSLEVBQXRDLENBRFMsR0FFVCxnQkFKUixDQU1FO0FBQ0E7QUFQRjtBQVFFLFVBQUEsT0FBTyxFQUFFLEtBQUtVLG1CQUFMLENBQXlCdEIsTUFBekIsRUFBaUNHLE1BQWpDLENBUlg7QUFTRSxVQUFBLFdBQVcsRUFBRSxLQVRmO0FBVUUsVUFBQSxjQUFjLEVBQUU7QUFWbEIsaUZBV2UsS0FYZixzRUFZWWdCLFFBWlosMkVBYWlCLE9BYmpCLHdFQWNjLEtBZGQseUJBRkY7QUFERjtBQXFCRDs7O0VBNUU4Q0ksZ0I7O2lDQUE1QnpCLG1CLGVBQ0EsRSIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgMjAyMyBVYmVyIFRlY2hub2xvZ2llcywgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbmltcG9ydCBSZWFjdCwge0NvbXBvbmVudH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHtcbiAgUGFuZWxMYWJlbCxcbiAgU2lkZVBhbmVsU2VjdGlvblxufSBmcm9tICdjb21wb25lbnRzL2NvbW1vbi9zdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQgSXRlbVNlbGVjdG9yIGZyb20gJ2NvbXBvbmVudHMvY29tbW9uL2l0ZW0tc2VsZWN0b3IvaXRlbS1zZWxlY3Rvcic7XG5pbXBvcnQge2NyZWF0ZVNlbGVjdG9yfSBmcm9tICdyZXNlbGVjdCc7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFdpZGdldExheWVyU2VsZWN0b3IgZXh0ZW5kcyBDb21wb25lbnQge1xuICBzdGF0aWMgcHJvcHR5cGVzID0ge307XG5cbiAgbGF5ZXJzU2VsZWN0b3IgPSBwcm9wcyA9PiBwcm9wcy5sYXllcnM7XG4gIGRhdGFJZFNlbGVjdG9yID0gcHJvcHMgPT4gcHJvcHMud2lkZ2V0LmNvbmZpZy5kYXRhSWQ7XG4gIGxzT3B0aW9uc1NlbGVjdG9yID0gY3JlYXRlU2VsZWN0b3IoXG4gICAgdGhpcy5sYXllcnNTZWxlY3RvcixcbiAgICB0aGlzLmRhdGFJZFNlbGVjdG9yLFxuICAgIChsYXllcnMsIGRhdGFJZCkgPT5cbiAgICAgIE9iamVjdC52YWx1ZXMobGF5ZXJzKS5tYXAobHMgPT4ge1xuICAgICAgICBpZiAobHMuY29uZmlnLmRhdGFJZCA9PT0gZGF0YUlkKSB7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGxhYmVsOiBscy5jb25maWcubGFiZWwsXG4gICAgICAgICAgICB2YWx1ZToge2lkOiBscy5pZCwgbGFiZWw6IGxzLmNvbmZpZy5sYWJlbH1cbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICB9KVxuICApO1xuXG4gIF93aWRnZXRMYXllck9wdGlvbnMobGF5ZXJzLCBkYXRhSWQpIHtcbiAgICB2YXIgb3B0aW9ucyA9IFtdO1xuICAgIGxheWVycy5tYXAobGlkZ2V0ID0+IHtcbiAgICAgIGNvbnN0IHtjb25maWd9ID0gbGlkZ2V0O1xuICAgICAgY29uc3QgTGF5ZXJEYXRhSWQgPSBjb25maWcuZGF0YUlkO1xuICAgICAgaWYgKExheWVyRGF0YUlkID09PSBkYXRhSWQpIHtcbiAgICAgICAgb3B0aW9ucy5wdXNoKHtcbiAgICAgICAgICBsYWJlbDogbGlkZ2V0LmNvbmZpZy5sYWJlbCxcbiAgICAgICAgICB2YWx1ZToge2lkOiBsaWRnZXQuaWQsIGxhYmVsOiBsaWRnZXQuY29uZmlnLmxhYmVsfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gb3B0aW9ucztcbiAgfVxuXG4gIF9yZW5kZXJQbGFjZWhvbGRlcihpZCkge1xuICAgIHZhciBwbGFjZWhvbGRlciA9IHRoaXMucHJvcHMubGF5ZXJzLm1hcChsID0+IHtcbiAgICAgIGlmIChsLmlkID09PSBpZCkge1xuICAgICAgICByZXR1cm4gbC5jb25maWcubGFiZWw7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHBsYWNlaG9sZGVyO1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHtsYXllcnMsIHdpZGdldCwgZGF0YUlkLCBvblNlbGVjdH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IHtjb25maWd9ID0gd2lkZ2V0O1xuICAgIHZhciBzZWxlY3RlZExheWVyO1xuXG4gICAgc2VsZWN0ZWRMYXllciA9IGNvbmZpZy5zZWxlY3RlZExheWVyO1xuICAgIC8vIGNvbnNvbGUubG9nKHNlbGVjdGVkTGF5ZXIpO1xuICAgIC8vIGNvbnNvbGUubG9nKCdsc29wdGlvbnMgaW4gd2lkZ2V0TGF5ZXJTZWxlY3RvcicsIGxzT3B0aW9ucyk7XG4gICAgLy8gY29uc29sZS5sb2coJ3NlbGVjdGVkIGxheWVyIGlzICcsIHR5cGVvZiBzZWxlY3RlZExheWVyKTtcbiAgICAvLyBjb25zb2xlLmxvZygnbGF5ZXJzIHdpZGdldExheWVyU2VsZWN0b3InLCBsYXllcnMpO1xuICAgIC8vIGNvbnNvbGUubG9nKCdvcHRpb25zJywgdGhpcy5fd2lkZ2V0TGF5ZXJPcHRpb25zKGxheWVycywgZGF0YUlkKSk7XG4gICAgLy8gY29uc29sZS5sb2coJ2xheWVycycsIGxheWVycyk7XG4gICAgcmV0dXJuIChcbiAgICAgIDxTaWRlUGFuZWxTZWN0aW9uIGNsYXNzTmFtZT1cImxheWVyLXNlbGVjdG9yXCI+XG4gICAgICAgIDxQYW5lbExhYmVsPkxheWVyczwvUGFuZWxMYWJlbD5cbiAgICAgICAgPEl0ZW1TZWxlY3RvclxuICAgICAgICAgIHBsYWNlaG9sZGVyPXtcbiAgICAgICAgICAgIHNlbGVjdGVkTGF5ZXJcbiAgICAgICAgICAgICAgPyB0aGlzLl9yZW5kZXJQbGFjZWhvbGRlcihzZWxlY3RlZExheWVyLmlkKVxuICAgICAgICAgICAgICA6ICdTZWxlY3QgQSBMYXllcidcbiAgICAgICAgICB9XG4gICAgICAgICAgLy8gc2VsZWN0ZWRJdGVtcz17c2VsZWN0ZWRMYXllcn1cbiAgICAgICAgICAvLyBvcHRpb25zPXt0aGlzLl93aWRnZXRMYXllck9wdGlvbnMobGF5ZXJzLCBkYXRhSWQpfVxuICAgICAgICAgIG9wdGlvbnM9e3RoaXMuX3dpZGdldExheWVyT3B0aW9ucyhsYXllcnMsIGRhdGFJZCl9XG4gICAgICAgICAgbXVsdGlTZWxlY3Q9e2ZhbHNlfVxuICAgICAgICAgIGdldE9wdGlvblZhbHVlPXsndmFsdWUnfVxuICAgICAgICAgIG11bHRpU2VsZWN0PXtmYWxzZX1cbiAgICAgICAgICBvbkNoYW5nZT17b25TZWxlY3R9XG4gICAgICAgICAgZGlzcGxheU9wdGlvbj17J2xhYmVsJ31cbiAgICAgICAgICBzZWFyY2hhYmxlPXtmYWxzZX1cbiAgICAgICAgLz5cbiAgICAgIDwvU2lkZVBhbmVsU2VjdGlvbj5cbiAgICApO1xuICB9XG59XG4iXX0=