kepler.gl
Version:
kepler.gl is a webgl based application to visualize large scale location data in the browser
129 lines (128 loc) • 22 kB
JavaScript
"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 _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
var _react = _interopRequireWildcard(require("react"));
var _styledComponents = _interopRequireDefault(require("styled-components"));
var _localization = require("@kepler.gl/localization");
var _react2 = _interopRequireDefault(require("@tippyjs/react"));
var _icons = require("../common/icons");
var _styledComponents2 = require("../common/styled-components");
var _typeahead = _interopRequireDefault(require("../common/item-selector/typeahead"));
var _accessor = _interopRequireDefault(require("../common/item-selector/accessor"));
var _reactIntl = require("react-intl");
var _context = require("../context");
var _templateObject, _templateObject2, _templateObject3; // SPDX-License-Identifier: MIT
// Copyright contributors to the kepler.gl project
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
var DropdownContainer = _styledComponents["default"].div.attrs({
className: 'add-layer-menu-dropdown'
})(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n .list-selector {\n border-top: 1px solid ", ";\n width: 100%;\n /* disable scrolling, currently set to 280px internally */\n max-height: unset;\n }\n .list__item > div {\n display: flex;\n flex-direction: row;\n justify-content: flex-start;\n line-height: 18px;\n padding: 0;\n svg {\n margin-right: 10px;\n }\n }\n"])), function (props) {
return props.theme.secondaryInputBorderColor;
});
var DropdownMenu = _styledComponents["default"].div.attrs({
className: 'dropdown-menu'
})(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n min-width: 240px;\n max-width: 240px;\n position: absolute;\n top: 100%;\n left: -53px;\n z-index: 5;\n"])));
var ListItemWrapper = _styledComponents["default"].div.attrs({
className: 'dropdown-menu-list-item-wrapper'
})(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n color: ", ";\n font-size: 11px;\n letter-spacing: 0.2px;\n overflow: auto;\n .dataset-color {\n flex-shrink: 0;\n margin-top: 3px;\n }\n .dataset-name {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n"])), function (props) {
return props.theme.textColor;
});
var TYPEAHEAD_CLASS = 'typeahead';
var TYPEAHEAD_INPUT_CLASS = 'typeahead__input';
var ListItem = function ListItem(_ref) {
var value = _ref.value;
return /*#__PURE__*/_react["default"].createElement(ListItemWrapper, null, /*#__PURE__*/_react["default"].createElement(_styledComponents2.DatasetSquare, {
className: "dataset-color",
backgroundColor: value.color
}), /*#__PURE__*/_react["default"].createElement("div", {
className: "dataset-name",
title: value.label
}, value.label));
};
var AddByDatasetButton = function AddByDatasetButton(_ref2) {
var datasets = _ref2.datasets,
onAdd = _ref2.onAdd,
buttonIntlId = _ref2.buttonIntlId,
className = _ref2.className,
inactive = _ref2.inactive;
var _useState = (0, _react.useState)(),
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
tippyInstance = _useState2[0],
setTippyInstance = _useState2[1];
var options = (0, _react.useMemo)(function () {
return Object.values(datasets).map(function (ds) {
return {
label: ds.label,
value: ds.id,
color: ds.color
};
});
}, [datasets]);
var onClickBtn = (0, _react.useCallback)(function () {
if (options.length === 1) {
onAdd(options[0].value);
}
return;
}, [options, onAdd]);
var onOptionSelected = (0, _react.useCallback)(function (option) {
if (!option) {
return;
}
onAdd(option.value);
if (tippyInstance) {
// @ts-ignore
tippyInstance.hide();
}
}, [onAdd, tippyInstance]);
var intl = (0, _reactIntl.useIntl)();
var buttonRendered = /*#__PURE__*/_react["default"].createElement(_styledComponents2.Button, {
tabIndex: -1,
className: className || 'add-by-dataset-button',
onClick: onClickBtn,
disabled: !options.length || inactive
}, /*#__PURE__*/_react["default"].createElement(_icons.Add, {
height: "12px"
}), /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, {
id: buttonIntlId
}));
return options.length === 1 ? buttonRendered : /*#__PURE__*/_react["default"].createElement(_context.RootContext.Consumer, null, function (context) {
return /*#__PURE__*/_react["default"].createElement(_react2["default"], {
trigger: "click",
arrow: false,
interactive: true,
placement: "bottom",
appendTo: (context === null || context === void 0 ? void 0 : context.current) || 'parent'
// @ts-ignore
,
onCreate: setTippyInstance,
duration: 0,
content: /*#__PURE__*/_react["default"].createElement(DropdownMenu, null, /*#__PURE__*/_react["default"].createElement(DropdownContainer, null, /*#__PURE__*/_react["default"].createElement(_typeahead["default"], {
className: TYPEAHEAD_CLASS,
customClasses: {
results: 'list-selector',
input: TYPEAHEAD_INPUT_CLASS,
listItem: 'list__item'
},
placeholder: intl ? intl.formatMessage({
id: 'placeholder.search'
}) : 'Search',
selectedItems: null,
options: options,
displayOption: _accessor["default"].generateOptionToStringFor('label'),
filterOption: 'label',
searchable: true,
onOptionSelected: onOptionSelected,
customListItemComponent: ListItem
})))
}, buttonRendered);
});
};
var _default = exports["default"] = AddByDatasetButton;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfbG9jYWxpemF0aW9uIiwiX3JlYWN0MiIsIl9pY29ucyIsIl9zdHlsZWRDb21wb25lbnRzMiIsIl90eXBlYWhlYWQiLCJfYWNjZXNzb3IiLCJfcmVhY3RJbnRsIiwiX2NvbnRleHQiLCJfdGVtcGxhdGVPYmplY3QiLCJfdGVtcGxhdGVPYmplY3QyIiwiX3RlbXBsYXRlT2JqZWN0MyIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIkRyb3Bkb3duQ29udGFpbmVyIiwic3R5bGVkIiwiZGl2IiwiYXR0cnMiLCJjbGFzc05hbWUiLCJfdGFnZ2VkVGVtcGxhdGVMaXRlcmFsMiIsInByb3BzIiwidGhlbWUiLCJzZWNvbmRhcnlJbnB1dEJvcmRlckNvbG9yIiwiRHJvcGRvd25NZW51IiwiTGlzdEl0ZW1XcmFwcGVyIiwidGV4dENvbG9yIiwiVFlQRUFIRUFEX0NMQVNTIiwiVFlQRUFIRUFEX0lOUFVUX0NMQVNTIiwiTGlzdEl0ZW0iLCJfcmVmIiwidmFsdWUiLCJjcmVhdGVFbGVtZW50IiwiRGF0YXNldFNxdWFyZSIsImJhY2tncm91bmRDb2xvciIsImNvbG9yIiwidGl0bGUiLCJsYWJlbCIsIkFkZEJ5RGF0YXNldEJ1dHRvbiIsIl9yZWYyIiwiZGF0YXNldHMiLCJvbkFkZCIsImJ1dHRvbkludGxJZCIsImluYWN0aXZlIiwiX3VzZVN0YXRlIiwidXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkyIiwidGlwcHlJbnN0YW5jZSIsInNldFRpcHB5SW5zdGFuY2UiLCJvcHRpb25zIiwidXNlTWVtbyIsInZhbHVlcyIsIm1hcCIsImRzIiwiaWQiLCJvbkNsaWNrQnRuIiwidXNlQ2FsbGJhY2siLCJsZW5ndGgiLCJvbk9wdGlvblNlbGVjdGVkIiwib3B0aW9uIiwiaGlkZSIsImludGwiLCJ1c2VJbnRsIiwiYnV0dG9uUmVuZGVyZWQiLCJCdXR0b24iLCJ0YWJJbmRleCIsIm9uQ2xpY2siLCJkaXNhYmxlZCIsIkFkZCIsImhlaWdodCIsIkZvcm1hdHRlZE1lc3NhZ2UiLCJSb290Q29udGV4dCIsIkNvbnN1bWVyIiwiY29udGV4dCIsInRyaWdnZXIiLCJhcnJvdyIsImludGVyYWN0aXZlIiwicGxhY2VtZW50IiwiYXBwZW5kVG8iLCJjdXJyZW50Iiwib25DcmVhdGUiLCJkdXJhdGlvbiIsImNvbnRlbnQiLCJjdXN0b21DbGFzc2VzIiwicmVzdWx0cyIsImlucHV0IiwibGlzdEl0ZW0iLCJwbGFjZWhvbGRlciIsImZvcm1hdE1lc3NhZ2UiLCJzZWxlY3RlZEl0ZW1zIiwiZGlzcGxheU9wdGlvbiIsIkFjY2Vzc29yIiwiZ2VuZXJhdGVPcHRpb25Ub1N0cmluZ0ZvciIsImZpbHRlck9wdGlvbiIsInNlYXJjaGFibGUiLCJjdXN0b21MaXN0SXRlbUNvbXBvbmVudCIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zaWRlLXBhbmVsL2FkZC1ieS1kYXRhc2V0LWJ1dHRvbi50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IFJlYWN0LCB7dXNlQ2FsbGJhY2ssIHVzZU1lbW8sIHVzZVN0YXRlfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCB7Rm9ybWF0dGVkTWVzc2FnZX0gZnJvbSAnQGtlcGxlci5nbC9sb2NhbGl6YXRpb24nO1xuaW1wb3J0IHtEYXRhc2V0cywgS2VwbGVyVGFibGV9IGZyb20gJ0BrZXBsZXIuZ2wvdGFibGUnO1xuXG5pbXBvcnQgVGlwcHkgZnJvbSAnQHRpcHB5anMvcmVhY3QnO1xuaW1wb3J0IHtBZGR9IGZyb20gJy4uL2NvbW1vbi9pY29ucyc7XG5pbXBvcnQge0J1dHRvbiwgRGF0YXNldFNxdWFyZX0gZnJvbSAnLi4vY29tbW9uL3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCBUeXBlYWhlYWQgZnJvbSAnLi4vY29tbW9uL2l0ZW0tc2VsZWN0b3IvdHlwZWFoZWFkJztcbmltcG9ydCBBY2Nlc3NvciBmcm9tICcuLi9jb21tb24vaXRlbS1zZWxlY3Rvci9hY2Nlc3Nvcic7XG5pbXBvcnQge3VzZUludGx9IGZyb20gJ3JlYWN0LWludGwnO1xuaW1wb3J0IHtSb290Q29udGV4dH0gZnJvbSAnLi4vY29udGV4dCc7XG5cbmNvbnN0IERyb3Bkb3duQ29udGFpbmVyID0gc3R5bGVkLmRpdi5hdHRycyh7XG4gIGNsYXNzTmFtZTogJ2FkZC1sYXllci1tZW51LWRyb3Bkb3duJ1xufSlgXG4gIC5saXN0LXNlbGVjdG9yIHtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zZWNvbmRhcnlJbnB1dEJvcmRlckNvbG9yfTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICAvKiBkaXNhYmxlIHNjcm9sbGluZywgY3VycmVudGx5IHNldCB0byAyODBweCBpbnRlcm5hbGx5ICovXG4gICAgbWF4LWhlaWdodDogdW5zZXQ7XG4gIH1cbiAgLmxpc3RfX2l0ZW0gPiBkaXYge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgbGluZS1oZWlnaHQ6IDE4cHg7XG4gICAgcGFkZGluZzogMDtcbiAgICBzdmcge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICAgIH1cbiAgfVxuYDtcblxuY29uc3QgRHJvcGRvd25NZW51ID0gc3R5bGVkLmRpdi5hdHRycyh7XG4gIGNsYXNzTmFtZTogJ2Ryb3Bkb3duLW1lbnUnXG59KWBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgbWluLXdpZHRoOiAyNDBweDtcbiAgbWF4LXdpZHRoOiAyNDBweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDEwMCU7XG4gIGxlZnQ6IC01M3B4O1xuICB6LWluZGV4OiA1O1xuYDtcblxuY29uc3QgTGlzdEl0ZW1XcmFwcGVyID0gc3R5bGVkLmRpdi5hdHRycyh7XG4gIGNsYXNzTmFtZTogJ2Ryb3Bkb3duLW1lbnUtbGlzdC1pdGVtLXdyYXBwZXInXG59KWBcbiAgZGlzcGxheTogZmxleDtcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUudGV4dENvbG9yfTtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBsZXR0ZXItc3BhY2luZzogMC4ycHg7XG4gIG92ZXJmbG93OiBhdXRvO1xuICAuZGF0YXNldC1jb2xvciB7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgbWFyZ2luLXRvcDogM3B4O1xuICB9XG4gIC5kYXRhc2V0LW5hbWUge1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgfVxuYDtcblxuY29uc3QgVFlQRUFIRUFEX0NMQVNTID0gJ3R5cGVhaGVhZCc7XG5jb25zdCBUWVBFQUhFQURfSU5QVVRfQ0xBU1MgPSAndHlwZWFoZWFkX19pbnB1dCc7XG5cbmV4cG9ydCB0eXBlIEFkZEJ5RGF0YXNldEJ1dHRvblByb3BzID0ge1xuICBkYXRhc2V0czogRGF0YXNldHM7XG4gIG9uQWRkOiAoZGF0YUlkOiBzdHJpbmcpID0+IHZvaWQ7XG4gIGJ1dHRvbkludGxJZDogc3RyaW5nO1xuICBpbmFjdGl2ZT86IGJvb2xlYW47XG4gIGNsYXNzTmFtZT86IHN0cmluZztcbn07XG5cbmNvbnN0IExpc3RJdGVtID0gKHt2YWx1ZX0pID0+IChcbiAgPExpc3RJdGVtV3JhcHBlcj5cbiAgICA8RGF0YXNldFNxdWFyZSBjbGFzc05hbWU9XCJkYXRhc2V0LWNvbG9yXCIgYmFja2dyb3VuZENvbG9yPXt2YWx1ZS5jb2xvcn0gLz5cbiAgICA8ZGl2IGNsYXNzTmFtZT1cImRhdGFzZXQtbmFtZVwiIHRpdGxlPXt2YWx1ZS5sYWJlbH0+XG4gICAgICB7dmFsdWUubGFiZWx9XG4gICAgPC9kaXY+XG4gIDwvTGlzdEl0ZW1XcmFwcGVyPlxuKTtcblxuY29uc3QgQWRkQnlEYXRhc2V0QnV0dG9uOiBSZWFjdC5GQzxBZGRCeURhdGFzZXRCdXR0b25Qcm9wcz4gPSAoe1xuICBkYXRhc2V0cyxcbiAgb25BZGQsXG4gIGJ1dHRvbkludGxJZCxcbiAgY2xhc3NOYW1lLFxuICBpbmFjdGl2ZVxufSkgPT4ge1xuICBjb25zdCBbdGlwcHlJbnN0YW5jZSwgc2V0VGlwcHlJbnN0YW5jZV0gPSB1c2VTdGF0ZSgpO1xuXG4gIGNvbnN0IG9wdGlvbnMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyhkYXRhc2V0cykubWFwKChkczogS2VwbGVyVGFibGUpID0+ICh7XG4gICAgICBsYWJlbDogZHMubGFiZWwsXG4gICAgICB2YWx1ZTogZHMuaWQsXG4gICAgICBjb2xvcjogZHMuY29sb3JcbiAgICB9KSk7XG4gIH0sIFtkYXRhc2V0c10pO1xuXG4gIGNvbnN0IG9uQ2xpY2tCdG4gPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgaWYgKG9wdGlvbnMubGVuZ3RoID09PSAxKSB7XG4gICAgICBvbkFkZChvcHRpb25zWzBdLnZhbHVlKTtcbiAgICB9XG5cbiAgICByZXR1cm47XG4gIH0sIFtvcHRpb25zLCBvbkFkZF0pO1xuXG4gIGNvbnN0IG9uT3B0aW9uU2VsZWN0ZWQgPSB1c2VDYWxsYmFjayhcbiAgICBvcHRpb24gPT4ge1xuICAgICAgaWYgKCFvcHRpb24pIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgb25BZGQob3B0aW9uLnZhbHVlKTtcbiAgICAgIGlmICh0aXBweUluc3RhbmNlKSB7XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgdGlwcHlJbnN0YW5jZS5oaWRlKCk7XG4gICAgICB9XG4gICAgfSxcbiAgICBbb25BZGQsIHRpcHB5SW5zdGFuY2VdXG4gICk7XG5cbiAgY29uc3QgaW50bCA9IHVzZUludGwoKTtcblxuICBjb25zdCBidXR0b25SZW5kZXJlZCA9IChcbiAgICA8QnV0dG9uXG4gICAgICB0YWJJbmRleD17LTF9XG4gICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZSB8fCAnYWRkLWJ5LWRhdGFzZXQtYnV0dG9uJ31cbiAgICAgIG9uQ2xpY2s9e29uQ2xpY2tCdG59XG4gICAgICBkaXNhYmxlZD17IW9wdGlvbnMubGVuZ3RoIHx8IGluYWN0aXZlfVxuICAgID5cbiAgICAgIDxBZGQgaGVpZ2h0PVwiMTJweFwiIC8+XG4gICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD17YnV0dG9uSW50bElkfSAvPlxuICAgIDwvQnV0dG9uPlxuICApO1xuXG4gIHJldHVybiBvcHRpb25zLmxlbmd0aCA9PT0gMSA/IChcbiAgICBidXR0b25SZW5kZXJlZFxuICApIDogKFxuICAgIDxSb290Q29udGV4dC5Db25zdW1lcj5cbiAgICAgIHtjb250ZXh0ID0+IChcbiAgICAgICAgPFRpcHB5XG4gICAgICAgICAgdHJpZ2dlcj1cImNsaWNrXCJcbiAgICAgICAgICBhcnJvdz17ZmFsc2V9XG4gICAgICAgICAgaW50ZXJhY3RpdmVcbiAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b21cIlxuICAgICAgICAgIGFwcGVuZFRvPXtjb250ZXh0Py5jdXJyZW50IHx8ICdwYXJlbnQnfVxuICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICBvbkNyZWF0ZT17c2V0VGlwcHlJbnN0YW5jZX1cbiAgICAgICAgICBkdXJhdGlvbj17MH1cbiAgICAgICAgICBjb250ZW50PXtcbiAgICAgICAgICAgIDxEcm9wZG93bk1lbnU+XG4gICAgICAgICAgICAgIDxEcm9wZG93bkNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8VHlwZWFoZWFkXG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e1RZUEVBSEVBRF9DTEFTU31cbiAgICAgICAgICAgICAgICAgIGN1c3RvbUNsYXNzZXM9e3tcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0czogJ2xpc3Qtc2VsZWN0b3InLFxuICAgICAgICAgICAgICAgICAgICBpbnB1dDogVFlQRUFIRUFEX0lOUFVUX0NMQVNTLFxuICAgICAgICAgICAgICAgICAgICBsaXN0SXRlbTogJ2xpc3RfX2l0ZW0nXG4gICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9e2ludGwgPyBpbnRsLmZvcm1hdE1lc3NhZ2Uoe2lkOiAncGxhY2Vob2xkZXIuc2VhcmNoJ30pIDogJ1NlYXJjaCd9XG4gICAgICAgICAgICAgICAgICBzZWxlY3RlZEl0ZW1zPXtudWxsfVxuICAgICAgICAgICAgICAgICAgb3B0aW9ucz17b3B0aW9uc31cbiAgICAgICAgICAgICAgICAgIGRpc3BsYXlPcHRpb249e0FjY2Vzc29yLmdlbmVyYXRlT3B0aW9uVG9TdHJpbmdGb3IoJ2xhYmVsJyl9XG4gICAgICAgICAgICAgICAgICBmaWx0ZXJPcHRpb249eydsYWJlbCd9XG4gICAgICAgICAgICAgICAgICBzZWFyY2hhYmxlXG4gICAgICAgICAgICAgICAgICBvbk9wdGlvblNlbGVjdGVkPXtvbk9wdGlvblNlbGVjdGVkfVxuICAgICAgICAgICAgICAgICAgY3VzdG9tTGlzdEl0ZW1Db21wb25lbnQ9e0xpc3RJdGVtfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvRHJvcGRvd25Db250YWluZXI+XG4gICAgICAgICAgICA8L0Ryb3Bkb3duTWVudT5cbiAgICAgICAgICB9XG4gICAgICAgID5cbiAgICAgICAgICB7YnV0dG9uUmVuZGVyZWR9XG4gICAgICAgIDwvVGlwcHk+XG4gICAgICApfVxuICAgIDwvUm9vdENvbnRleHQuQ29uc3VtZXI+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBBZGRCeURhdGFzZXRCdXR0b247XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFHQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxpQkFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsYUFBQSxHQUFBSCxPQUFBO0FBR0EsSUFBQUksT0FBQSxHQUFBRixzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUssTUFBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sa0JBQUEsR0FBQU4sT0FBQTtBQUNBLElBQUFPLFVBQUEsR0FBQUwsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFRLFNBQUEsR0FBQU4sc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFTLFVBQUEsR0FBQVQsT0FBQTtBQUNBLElBQUFVLFFBQUEsR0FBQVYsT0FBQTtBQUF1QyxJQUFBVyxlQUFBLEVBQUFDLGdCQUFBLEVBQUFDLGdCQUFBLEVBZHZDO0FBQ0E7QUFBQSxTQUFBQyx5QkFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxtQkFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSx5QkFBQUMsQ0FBQSxXQUFBQSxDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxLQUFBRixDQUFBO0FBQUEsU0FBQWhCLHdCQUFBZ0IsQ0FBQSxFQUFBRSxDQUFBLFNBQUFBLENBQUEsSUFBQUYsQ0FBQSxJQUFBQSxDQUFBLENBQUFJLFVBQUEsU0FBQUosQ0FBQSxlQUFBQSxDQUFBLGdCQUFBSyxPQUFBLENBQUFMLENBQUEsMEJBQUFBLENBQUEsc0JBQUFBLENBQUEsUUFBQUcsQ0FBQSxH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