tc-ui-toolkit
Version:
React components used to develop tools for the desktop app translationCore
200 lines (177 loc) • 22 kB
JavaScript
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _react = _interopRequireDefault(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _Dialog = _interopRequireDefault(require("@material-ui/core/Dialog"));
var _DialogActions = _interopRequireDefault(require("@material-ui/core/DialogActions"));
var _DialogContent = _interopRequireDefault(require("@material-ui/core/DialogContent"));
var _Toolbar = _interopRequireDefault(require("@material-ui/core/Toolbar"));
var _IconButton = _interopRequireDefault(require("@material-ui/core/IconButton"));
var _reactBootstrap = require("react-bootstrap");
require("./AddPaneModal.styles.css");
var styles = {
toolBar: {
display: 'flex',
justifyContent: 'center',
alignItems: 'center',
color: 'var(--reverse-color)',
backgroundColor: 'var(--accent-color-dark)',
padding: '15px',
width: '100%'
},
title: {
marginLeft: 'auto',
fontSize: '22px',
fontWeight: '400'
},
closeButton: {
marginLeft: 'auto'
},
dialogContent: {
color: 'rgba(0, 0, 0, 0.6)',
textAlign: 'center',
padding: '0px 24px 24px',
margin: '0px'
},
dialogActions: {
height: '70px',
padding: '10px',
margin: '0px',
borderTop: '1px solid var(--border-color)'
},
icon: {
color: '#ffffff',
width: 25,
height: 25
},
iconButton: {
padding: 0,
width: 25,
height: 25,
marginTop: 5
},
body: {
textAlign: 'center'
},
select: {
margin: '0 auto',
width: '300px'
}
};
var AddPaneModal = function AddPaneModal(_ref) {
var show = _ref.show,
title = _ref.title,
onHide = _ref.onHide,
translate = _ref.translate,
selectLabel = _ref.selectLabel,
selectedPane = _ref.selectedPane,
selectLanguageLabel = _ref.selectLanguageLabel,
addNewBibleResource = _ref.addNewBibleResource,
currentPaneSettings = _ref.currentPaneSettings,
selectSourceLanguage = _ref.selectSourceLanguage,
getAvailableScripturePaneSelections = _ref.getAvailableScripturePaneSelections;
var panes = [];
var availableResources = [];
getAvailableScripturePaneSelections(availableResources);
var _loop = function _loop(i, len) {
var resource = availableResources[i];
var _resource$manifest = resource.manifest,
resource_title = _resource$manifest.resource_title,
language_name = _resource$manifest.language_name,
language_id = _resource$manifest.language_id;
var displayText = '';
var prefix = '';
var owner = resource.owner || '';
if (resource.bibleId !== 'targetBible') {
var _resource$manifest2;
var languageId = resource.languageId !== 'originalLanguage' ? resource.languageId : translate('pane.original_language');
displayText = "".concat(language_name, " (").concat(languageId, ") (").concat(resource_title, ")");
if (owner) {
displayText += " (".concat(owner, ")");
}
var stage = resource === null || resource === void 0 ? void 0 : (_resource$manifest2 = resource.manifest) === null || _resource$manifest2 === void 0 ? void 0 : _resource$manifest2.stage;
if (owner !== 'Door43-Catalog' && stage !== 'prod') {
displayText = "[".concat(displayText, "] - ").concat(translate('pre_release'));
prefix = '*';
}
} else {
displayText = "".concat(language_name, " (").concat(language_id, ") (").concat(translate('pane.target_language'), ") (").concat(translate('pane.current_project'), ")");
}
var foundInCurrentPaneSettings = currentPaneSettings.findIndex(function (paneSetting) {
return paneSetting.bibleId === resource.bibleId && paneSetting.languageId === resource.languageId && paneSetting.owner === resource.owner;
}) >= 0;
panes.push( /*#__PURE__*/_react["default"].createElement("option", {
key: "".concat(i).concat(resource.languageId, "_").concat(resource.bibleId, "_").concat(owner),
value: "".concat(prefix).concat(resource.languageId, "_").concat(resource.bibleId, "_").concat(owner),
disabled: foundInCurrentPaneSettings
}, displayText));
};
for (var i = 0, len = availableResources.length; i < len; i++) {
_loop(i, len);
}
var isLoadButtonDisabled = Object.keys(selectedPane).length <= 0;
return /*#__PURE__*/_react["default"].createElement(_Dialog["default"], {
open: show,
onClose: onHide,
fullWidth: true,
maxWidth: "md"
}, /*#__PURE__*/_react["default"].createElement(_Toolbar["default"], {
style: styles.toolBar
}, /*#__PURE__*/_react["default"].createElement("div", {
style: styles.title
}, title), /*#__PURE__*/_react["default"].createElement(_IconButton["default"], {
color: "inherit",
onClick: onHide,
"aria-label": "Close",
style: styles.closeButton
}, /*#__PURE__*/_react["default"].createElement(_reactBootstrap.Glyphicon, {
glyph: "remove"
}))), /*#__PURE__*/_react["default"].createElement(_DialogContent["default"], {
style: styles.dialogContent
}, /*#__PURE__*/_react["default"].createElement("h4", {
style: {
marginBottom: '30px'
}
}, selectLanguageLabel), /*#__PURE__*/_react["default"].createElement(_reactBootstrap.FormControl, {
componentClass: "select",
style: styles.select,
onChange: function onChange(e) {
return selectSourceLanguage(e.target.value);
}
}, /*#__PURE__*/_react["default"].createElement("option", {
value: ""
}, selectLabel), panes)), /*#__PURE__*/_react["default"].createElement(_DialogActions["default"], {
disableSpacing: true,
style: styles.dialogActions
}, /*#__PURE__*/_react["default"].createElement("button", {
className: "btn-second",
onClick: onHide
}, translate('close')), /*#__PURE__*/_react["default"].createElement("button", {
className: "btn-prime",
onClick: addNewBibleResource,
disabled: isLoadButtonDisabled
}, translate('load'))));
};
AddPaneModal.propTypes = {
show: _propTypes["default"].bool.isRequired,
onHide: _propTypes["default"].func.isRequired,
title: _propTypes["default"].string.isRequired,
selectLanguageLabel: _propTypes["default"].string.isRequired,
selectLabel: _propTypes["default"].string.isRequired,
selectSourceLanguage: _propTypes["default"].func.isRequired,
selectedPane: _propTypes["default"].shape({
bibleId: _propTypes["default"].string,
languageId: _propTypes["default"].string
}),
addNewBibleResource: _propTypes["default"].func.isRequired,
currentPaneSettings: _propTypes["default"].array.isRequired,
translate: _propTypes["default"].func.isRequired,
getAvailableScripturePaneSelections: _propTypes["default"].func.isRequired
};
var _default = AddPaneModal;
exports["default"] = _default;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9TY3JpcHR1cmVQYW5lL0FkZFBhbmVNb2RhbC9pbmRleC5qcyJdLCJuYW1lcyI6WyJzdHlsZXMiLCJ0b29sQmFyIiwiZGlzcGxheSIsImp1c3RpZnlDb250ZW50IiwiYWxpZ25JdGVtcyIsImNvbG9yIiwiYmFja2dyb3VuZENvbG9yIiwicGFkZGluZyIsIndpZHRoIiwidGl0bGUiLCJtYXJnaW5MZWZ0IiwiZm9udFNpemUiLCJmb250V2VpZ2h0IiwiY2xvc2VCdXR0b24iLCJkaWFsb2dDb250ZW50IiwidGV4dEFsaWduIiwibWFyZ2luIiwiZGlhbG9nQWN0aW9ucyIsImhlaWdodCIsImJvcmRlclRvcCIsImljb24iLCJpY29uQnV0dG9uIiwibWFyZ2luVG9wIiwiYm9keSIsInNlbGVjdCIsIkFkZFBhbmVNb2RhbCIsInNob3ciLCJvbkhpZGUiLCJ0cmFuc2xhdGUiLCJzZWxlY3RMYWJlbCIsInNlbGVjdGVkUGFuZSIsInNlbGVjdExhbmd1YWdlTGFiZWwiLCJhZGROZXdCaWJsZVJlc291cmNlIiwiY3VycmVudFBhbmVTZXR0aW5ncyIsInNlbGVjdFNvdXJjZUxhbmd1YWdlIiwiZ2V0QXZhaWxhYmxlU2NyaXB0dXJlUGFuZVNlbGVjdGlvbnMiLCJwYW5lcyIsImF2YWlsYWJsZVJlc291cmNlcyIsImkiLCJsZW4iLCJyZXNvdXJjZSIsIm1hbmlmZXN0IiwicmVzb3VyY2VfdGl0bGUiLCJsYW5ndWFnZV9uYW1lIiwibGFuZ3VhZ2VfaWQiLCJkaXNwbGF5VGV4dCIsInByZWZpeCIsIm93bmVyIiwiYmlibGVJZCIsImxhbmd1YWdlSWQiLCJzdGFnZSIsImZvdW5kSW5DdXJyZW50UGFuZVNldHRpbmdzIiwiZmluZEluZGV4IiwicGFuZVNldHRpbmciLCJwdXNoIiwibGVuZ3RoIiwiaXNMb2FkQnV0dG9uRGlzYWJsZWQiLCJPYmplY3QiLCJrZXlzIiwibWFyZ2luQm90dG9tIiwiZSIsInRhcmdldCIsInZhbHVlIiwicHJvcFR5cGVzIiwiUHJv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QUksRUFBRXNDLHNCQUFVQyxJQUFWLENBQWVDLFVBREU7QUFFdkJ2QyxFQUFBQSxNQUFNLEVBQUVxQyxzQkFBVUcsSUFBVixDQUFlRCxVQUZBO0FBR3ZCekQsRUFBQUEsS0FBSyxFQUFFdUQsc0JBQVVJLE1BQVYsQ0FBaUJGLFVBSEQ7QUFJdkJuQyxFQUFBQSxtQkFBbUIsRUFBRWlDLHNCQUFVSSxNQUFWLENBQWlCRixVQUpmO0FBS3ZCckMsRUFBQUEsV0FBVyxFQUFFbUMsc0JBQVVJLE1BQVYsQ0FBaUJGLFVBTFA7QUFNdkJoQyxFQUFBQSxvQkFBb0IsRUFBRThCLHNCQUFVRyxJQUFWLENBQWVELFVBTmQ7QUFPdkJwQyxFQUFBQSxZQUFZLEVBQUVrQyxzQkFBVUssS0FBVixDQUFnQjtBQUM1QnJCLElBQUFBLE9BQU8sRUFBRWdCLHNCQUFVSSxNQURTO0FBRTVCbkIsSUFBQUEsVUFBVSxFQUFFZSxzQkFBVUk7QUFGTSxHQUFoQixDQVBTO0FBV3ZCcEMsRUFBQUEsbUJBQW1CLEVBQUVnQyxzQkFBVUcsSUFBVixDQUFlRCxVQVhiO0FBWXZCakMsRUFBQUEsbUJBQW1CLEVBQUUrQixzQkFBVU0sS0FBVixDQUFnQkosVUFaZDtBQWF2QnRDLEVBQUFBLFNBQVMsRUFBRW9DLHNCQUFVRyxJQUFWLENBQWVELFVBYkg7QUFjdkIvQixFQUFBQSxtQ0FBbUMsRUFBRTZCLHNCQUFVRyxJQUFWLENBQWVEO0FBZDdCLENBQXpCO2VBaUJlekMsWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IERpYWxvZyBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9EaWFsb2cnO1xuaW1wb3J0IERpYWxvZ0FjdGlvbnMgZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvRGlhbG9nQWN0aW9ucyc7XG5pbXBvcnQgRGlhbG9nQ29udGVudCBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9EaWFsb2dDb250ZW50JztcbmltcG9ydCBUb29sYmFyIGZyb20gJ0BtYXRlcmlhbC11aS9jb3JlL1Rvb2xiYXInO1xuaW1wb3J0IEljb25CdXR0b24gZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvSWNvbkJ1dHRvbic7XG5pbXBvcnQgeyBHbHlwaGljb24sIEZvcm1Db250cm9sIH0gZnJvbSAncmVhY3QtYm9vdHN0cmFwJztcblxuaW1wb3J0ICcuL0FkZFBhbmVNb2RhbC5zdHlsZXMuY3NzJztcblxuY29uc3Qgc3R5bGVzID0ge1xuICB0b29sQmFyOiB7XG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyxcbiAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICBjb2xvcjogJ3ZhcigtLXJldmVyc2UtY29sb3IpJyxcbiAgICBiYWNrZ3JvdW5kQ29sb3I6ICd2YXIoLS1hY2NlbnQtY29sb3ItZGFyayknLFxuICAgIHBhZGRpbmc6ICcxNXB4JyxcbiAgICB3aWR0aDogJzEwMCUnLFxuICB9LFxuICB0aXRsZToge1xuICAgIG1hcmdpbkxlZnQ6ICdhdXRvJyxcbiAgICBmb250U2l6ZTogJzIycHgnLFxuICAgIGZvbnRXZWlnaHQ6ICc0MDAnLFxuICB9LFxuICBjbG9zZUJ1dHRvbjogeyBtYXJnaW5MZWZ0OiAnYXV0bycgfSxcbiAgZGlhbG9nQ29udGVudDoge1xuICAgIGNvbG9yOiAncmdiYSgwLCAwLCAwLCAwLjYpJyxcbiAgICB0ZXh0QWxpZ246ICdjZW50ZXInLFxuICAgIHBhZGRpbmc6ICcwcHggMjRweCAyNHB4JyxcbiAgICBtYXJnaW46ICcwcHgnLFxuICB9LFxuICBkaWFsb2dBY3Rpb25zOiB7XG4gICAgaGVpZ2h0OiAnNzBweCcsXG4gICAgcGFkZGluZzogJzEwcHgnLFxuICAgIG1hcmdpbjogJzBweCcsXG4gICAgYm9yZGVyVG9wOiAnMXB4IHNvbGlkIHZhcigtLWJvcmRlci1jb2xvciknLFxuICB9LFxuXG4gIGljb246IHtcbiAgICBjb2xvcjogJyNmZmZmZmYnLFxuICAgIHdpZHRoOiAyNSxcbiAgICBoZWlnaHQ6IDI1LFxuICB9LFxuICBpY29uQnV0dG9uOiB7XG4gICAgcGFkZGluZzogMCxcbiAgICB3aWR0aDogMjUsXG4gICAgaGVpZ2h0OiAyNSxcbiAgICBtYXJnaW5Ub3A6IDUsXG4gIH0sXG4gIGJvZHk6IHsgdGV4dEFsaWduOiAnY2VudGVyJyB9LFxuICBzZWxlY3Q6IHtcbiAgICBtYXJnaW46ICcwIGF1dG8nLFxuICAgIHdpZHRoOiAnMzAwcHgnLFxuICB9LFxufTtcblxuY29uc3QgQWRkUGFuZU1vZGFsID0gKHtcbiAgc2hvdyxcbiAgdGl0bGUsXG4gIG9uSGlkZSxcbiAgdHJhbnNsYXRlLFxuICBzZWxlY3RMYWJlbCxcbiAgc2VsZWN0ZWRQYW5lLFxuICBzZWxlY3RMYW5ndWFnZUxhYmVsLFxuICBhZGROZXdCaWJsZVJlc291cmNlLFxuICBjdXJyZW50UGFuZVNldHRpbmdzLFxuICBzZWxlY3RTb3VyY2VMYW5ndWFnZSxcbiAgZ2V0QXZhaWxhYmxlU2NyaXB0dXJlUGFuZVNlbGVjdGlvbnMsXG59KSA9PiB7XG4gIGNvbnN0IHBhbmVzID0gW107XG4gIGNvbnN0IGF2YWlsYWJsZVJlc291cmNlcyA9IFtdO1xuICBnZXRBdmFpbGFibGVTY3JpcHR1cmVQYW5lU2VsZWN0aW9ucyhhdmFpbGFibGVSZXNvdXJjZXMpO1xuXG4gIGZvciAobGV0IGkgPSAwLCBsZW4gPSBhdmFpbGFibGVSZXNvdXJjZXMubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICBjb25zdCByZXNvdXJjZSA9IGF2YWlsYWJsZVJlc291cmNlc1tpXTtcbiAgICBjb25zdCB7XG4gICAgICByZXNvdXJjZV90aXRsZSwgbGFuZ3VhZ2VfbmFtZSwgbGFuZ3VhZ2VfaWQsXG4gICAgfSA9IHJlc291cmNlLm1hbmlmZXN0O1xuICAgIGxldCBkaXNwbGF5VGV4dCA9ICcnO1xuICAgIGxldCBwcmVmaXggPSAnJztcbiAgICBjb25zdCBvd25lciA9IHJlc291cmNlLm93bmVyIHx8ICcnO1xuXG4gICAgaWYgKHJlc291cmNlLmJpYmxlSWQgIT09ICd0YXJnZXRCaWJsZScpIHtcbiAgICAgIGNvbnN0IGxhbmd1YWdlSWQgPSAocmVzb3VyY2UubGFuZ3VhZ2VJZCAhPT0gJ29yaWdpbmFsTGFuZ3VhZ2UnKSA/IHJlc291cmNlLmxhbmd1YWdlSWQgOiB0cmFuc2xhdGUoJ3BhbmUub3JpZ2luYWxfbGFuZ3VhZ2UnKTtcbiAgICAgIGRpc3BsYXlUZXh0ID0gYCR7bGFuZ3VhZ2VfbmFtZX0gKCR7bGFuZ3VhZ2VJZH0pICAoJHtyZXNvdXJjZV90aXRsZX0pYDtcblxuICAgICAgaWYgKG93bmVyKSB7XG4gICAgICAgIGRpc3BsYXlUZXh0ICs9IGAgKCR7b3duZXJ9KWA7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHN0YWdlID0gcmVzb3VyY2U/Lm1hbmlmZXN0Py5zdGFnZTtcblxuICAgICAgaWYgKChvd25lciAhPT0gJ0Rvb3I0My1DYXRhbG9nJykgJiYgKHN0YWdlICE9PSAncHJvZCcpKSB7XG4gICAgICAgIGRpc3BsYXlUZXh0ID0gYFske2Rpc3BsYXlUZXh0fV0gLSAke3RyYW5zbGF0ZSgncHJlX3JlbGVhc2UnKX1gO1xuICAgICAgICBwcmVmaXggPSAnKic7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGRpc3BsYXlUZXh0ID0gYCR7bGFuZ3VhZ2VfbmFtZX0gKCR7bGFuZ3VhZ2VfaWR9KSAgKCR7dHJhbnNsYXRlKCdwYW5lLnRhcmdldF9sYW5ndWFnZScpfSkgKCR7dHJhbnNsYXRlKCdwYW5lLmN1cnJlbnRfcHJvamVjdCcpfSlgO1xuICAgIH1cblxuICAgIGNvbnN0IGZvdW5kSW5DdXJyZW50UGFuZVNldHRpbmdzID0gY3VycmVudFBhbmVTZXR0aW5ncy5maW5kSW5kZXgoXG4gICAgICAocGFuZVNldHRpbmcpID0+IHBhbmVTZXR0aW5nLmJpYmxlSWQgPT09IHJlc291cmNlLmJpYmxlSWQgJiZcbiAgICAgICAgcGFuZVNldHRpbmcubGFuZ3VhZ2VJZCA9PT0gcmVzb3VyY2UubGFuZ3VhZ2VJZCAmJlxuICAgICAgICBwYW5lU2V0dGluZy5vd25lciA9PT0gcmVzb3VyY2Uub3duZXIpID49IDA7XG5cbiAgICBwYW5lcy5wdXNoKFxuICAgICAgPG9wdGlvblxuICAgICAgICBrZXk9e2Ake2l9JHtyZXNvdXJjZS5sYW5ndWFnZUlkfV8ke3Jlc291cmNlLmJpYmxlSWR9XyR7b3duZXJ9YH1cbiAgICAgICAgdmFsdWU9e2Ake3ByZWZpeH0ke3Jlc291cmNlLmxhbmd1YWdlSWR9XyR7cmVzb3VyY2UuYmlibGVJZH1fJHtvd25lcn1gfVxuICAgICAgICBkaXNhYmxlZD17Zm91bmRJbkN1cnJlbnRQYW5lU2V0dGluZ3N9XG4gICAgICA+XG4gICAgICAgIHtkaXNwbGF5VGV4dH1cbiAgICAgIDwvb3B0aW9uPixcbiAgICApO1xuICB9XG5cbiAgY29uc3QgaXNMb2FkQnV0dG9uRGlzYWJsZWQgPSBPYmplY3Qua2V5cyhzZWxlY3RlZFBhbmUpLmxlbmd0aCA8PSAwO1xuXG4gIHJldHVybiAoXG4gICAgPERpYWxvZyBvcGVuPXtzaG93fSBvbkNsb3NlPXtvbkhpZGV9IGZ1bGxXaWR0aCBtYXhXaWR0aD0nbWQnPlxuICAgICAgPFRvb2xiYXIgc3R5bGU9e3N0eWxlcy50b29sQmFyfT5cbiAgICAgICAgPGRpdiBzdHlsZT17c3R5bGVzLnRpdGxlfT5cbiAgICAgICAgICB7dGl0bGV9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8SWNvbkJ1dHRvbiBjb2xvcj1cImluaGVyaXRcIiBvbkNsaWNrPXtvbkhpZGV9IGFyaWEtbGFiZWw9XCJDbG9zZVwiIHN0eWxlPXtzdHlsZXMuY2xvc2VCdXR0b259PlxuICAgICAgICAgIDxHbHlwaGljb24gZ2x5cGg9XCJyZW1vdmVcIiAvPlxuICAgICAgICA8L0ljb25CdXR0b24+XG4gICAgICA8L1Rvb2xiYXI+XG4gICAgICA8RGlhbG9nQ29udGVudCBzdHlsZT17c3R5bGVzLmRpYWxvZ0NvbnRlbnR9PlxuICAgICAgICA8aDQgc3R5bGU9e3sgbWFyZ2luQm90dG9tOiAnMzBweCcgfX0+XG4gICAgICAgICAge3NlbGVjdExhbmd1YWdlTGFiZWx9XG4gICAgICAgIDwvaDQ+XG4gICAgICAgIDxGb3JtQ29udHJvbFxuICAgICAgICAgIGNvbXBvbmVudENsYXNzPVwic2VsZWN0XCJcbiAgICAgICAgICBzdHlsZT17c3R5bGVzLnNlbGVjdH1cbiAgICAgICAgICBvbkNoYW5nZT17ZSA9PiBzZWxlY3RTb3VyY2VMYW5ndWFnZShlLnRhcmdldC52YWx1ZSl9XG4gICAgICAgID5cbiAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiXCI+e3NlbGVjdExhYmVsfTwvb3B0aW9uPlxuICAgICAgICAgIHtwYW5lc31cbiAgICAgICAgPC9Gb3JtQ29udHJvbD5cbiAgICAgIDwvRGlhbG9nQ29udGVudD5cbiAgICAgIDxEaWFsb2dBY3Rpb25zIGRpc2FibGVTcGFjaW5nIHN0eWxlPXtzdHlsZXMuZGlhbG9nQWN0aW9uc30+XG4gICAgICAgIDxidXR0b24gY2xhc3NOYW1lPVwiYnRuLXNlY29uZFwiIG9uQ2xpY2s9e29uSGlkZX0+XG4gICAgICAgICAge3RyYW5zbGF0ZSgnY2xvc2UnKX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b24gY2xhc3NOYW1lPVwiYnRuLXByaW1lXCIgb25DbGljaz17YWRkTmV3QmlibGVSZXNvdXJjZX0gZGlzYWJsZWQ9e2lzTG9hZEJ1dHRvbkRpc2FibGVkfT5cbiAgICAgICAgICB7dHJhbnNsYXRlKCdsb2FkJyl9XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9EaWFsb2dBY3Rpb25zPlxuICAgIDwvRGlhbG9nPlxuICApO1xufTtcblxuQWRkUGFuZU1vZGFsLnByb3BUeXBlcyA9IHtcbiAgc2hvdzogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgb25IaWRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICB0aXRsZTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICBzZWxlY3RMYW5ndWFnZUxhYmVsOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIHNlbGVjdExhYmVsOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIHNlbGVjdFNvdXJjZUxhbmd1YWdlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBzZWxlY3RlZFBhbmU6IFByb3BUeXBlcy5zaGFwZSh7XG4gICAgYmlibGVJZDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBsYW5ndWFnZUlkOiBQcm9wVHlwZXMuc3RyaW5nLFxuICB9KSxcbiAgYWRkTmV3QmlibGVSZXNvdXJjZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgY3VycmVudFBhbmVTZXR0aW5nczogUHJvcFR5cGVzLmFycmF5LmlzUmVxdWlyZWQsXG4gIHRyYW5zbGF0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgZ2V0QXZhaWxhYmxlU2NyaXB0dXJlUGFuZVNlbGVjdGlvbnM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBBZGRQYW5lTW9kYWw7XG4iXX0=