UNPKG

patternplate-client

Version:

Universal javascript client application for patternplate

216 lines (186 loc) 18.4 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _extends2 = require('babel-runtime/helpers/extends'); var _extends3 = _interopRequireDefault(_extends2); var _defineProperty2 = require('babel-runtime/helpers/defineProperty'); var _defineProperty3 = _interopRequireDefault(_defineProperty2); exports.default = PatternHeader; var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _reactRouter = require('@marionebl/react-router'); var _classnames = require('classnames'); var _classnames2 = _interopRequireDefault(_classnames); var _lodash = require('lodash'); var _breadCrumbs = require('../bread-crumbs'); var _breadCrumbs2 = _interopRequireDefault(_breadCrumbs); var _headline = require('../common/headline'); var _headline2 = _interopRequireDefault(_headline); var _icon = require('../common/icon'); var _icon2 = _interopRequireDefault(_icon); var _urlQuery = require('../../utils/url-query'); var _urlQuery2 = _interopRequireDefault(_urlQuery); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var autoMount = 'https://github.com/sinnerschrader/patternplate-transform-react-to-markup#component-auto-mounting'; function PatternHeader(props) { var flagClassName = (0, _classnames2.default)('pattern__flag', (0, _defineProperty3.default)({}, 'pattern__flag--' + props.flag, props.flag)); var fullscreen = _urlQuery2.default.format({ pathname: props.base + 'demo/' + props.id + '/index.html', query: { environment: props.environment } }); var fullscreenTitle = 'Open "' + props.name + '" in fullscreen [ctrl+f]'; var reloadTitle = 'Reload demo for "' + props.name + '" [ctrl+r]'; var reloadClassName = (0, _classnames2.default)('button', 'button--reload', { 'reload--reloading': props.loading, 'button--is-active': props.loading, 'reload--error': props.errored }); var rulersTitle = props.rulers ? 'Disable rulers [ctrl+l]' : 'Enable rulers [ctrl+l]'; var rulersClassName = (0, _classnames2.default)('button button--rulers', { 'button--is-active': props.rulers }); var opacityClassName = (0, _classnames2.default)('button button--opacity', { 'button--is-active': props.opacity }); var opacitySymbol = props.opacity ? 'checkers' : 'checkers-inverted'; var opacityTitle = props.opacity ? 'Hide opacity [ctrl+o]' : 'Show opacity [ctrl+o]'; return _react2.default.createElement( 'div', { className: 'pattern-header-container' }, _react2.default.createElement(_breadCrumbs2.default, { base: props.base, crumbs: props.breadcrumbs, location: props.location, className: 'pattern-path' }), _react2.default.createElement( _headline2.default, { className: 'pattern-header', order: 2 }, _react2.default.createElement( 'span', { className: 'pattern-name' }, props.name ), _react2.default.createElement( 'small', { className: 'pattern-version' }, props.version ? 'v' + props.version : '' ), props.flag ? _react2.default.createElement( 'small', { className: flagClassName }, _react2.default.createElement( _reactRouter.Link, { title: 'Search patterns with flag ' + props.flag, to: { pathname: props.location.pathname, query: (0, _extends3.default)({}, props.location.query, { search: 'flag:' + props.flag }) } }, props.flag ) ) : null, props.tags.map(function (tag, key) { return _react2.default.createElement( 'small', { key: key, className: 'pattern-tag' }, _react2.default.createElement( _reactRouter.Link, { title: 'Search patterns with tag ' + tag, to: { pathname: props.location.pathname, query: (0, _extends3.default)({}, props.location.query, { search: 'tag:' + tag }) }, key: key }, tag ) ); }), props.automount && _react2.default.createElement( 'small', { className: 'pattern-option' }, _react2.default.createElement( 'a', { href: autoMount, target: '_blank', title: 'Learn about component auto mounting on Github', rel: 'noopener' }, 'auto-mount' ) ) ), _react2.default.createElement( 'div', { className: 'pattern-header__actions' }, _react2.default.createElement( _reactRouter.Link, { className: reloadClassName, title: reloadTitle, disabled: props.loading, onClick: props.loading ? _lodash.noop : props.onReloadClick, to: { pathname: props.location.pathname, query: (0, _extends3.default)({}, props.location.query, { reload: props.reloadTime }) } }, _react2.default.createElement(_icon2.default, { symbol: 'reload' }) ), _react2.default.createElement( _reactRouter.Link, { className: rulersClassName, title: rulersTitle, to: { pathname: props.location.pathname, query: (0, _extends3.default)({}, props.location.query, { rulers: !props.rulers }) } }, _react2.default.createElement(_icon2.default, { symbol: 'rulers' }) ), _react2.default.createElement( _reactRouter.Link, { className: opacityClassName, title: opacityTitle, to: { pathname: props.location.pathname, query: (0, _extends3.default)({}, props.location.query, { opacity: !props.opacity }) } }, _react2.default.createElement(_icon2.default, { symbol: opacitySymbol }) ), _react2.default.createElement( 'a', { className: 'button fullscreen', target: '_blank', rel: 'noopener', href: fullscreen, title: fullscreenTitle }, _react2.default.createElement(_icon2.default, { symbol: 'fullscreen' }) ) ) ); } PatternHeader.defaultProps = { tags: [], onReloadClick: _lodash.noop }; module.exports = exports['default']; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NvdXJjZS9hcHBsaWNhdGlvbi9jb21wb25lbnRzL3BhdHRlcm4vcGF0dGVybi1oZWFkZXIuanMiXSwibmFtZXMiOlsiUGF0dGVybkhlYWRlciIsImF1dG9Nb3VudCIsInByb3BzIiwiZmxhZ0NsYXNzTmFtZSIsImZsYWciLCJmdWxsc2NyZWVuIiwiZm9ybWF0IiwicGF0aG5hbWUiLCJiYXNlIiwiaWQiLCJxdWVyeSIsImVudmlyb25tZW50IiwiZnVsbHNjcmVlblRpdGxlIiwibmFtZSIsInJlbG9hZFRpdGxlIiwicmVsb2FkQ2xhc3NOYW1lIiwibG9hZGluZyIsImVycm9yZWQiLCJydWxlcnNUaXRsZSIsInJ1bGVycyIsInJ1bGVyc0NsYXNzTmFtZSIsIm9wYWNpdHlDbGFzc05hbWUiLCJvcGFjaXR5Iiwib3BhY2l0eVN5bWJvbCIsIm9wYWNpdHlUaXRsZSIsImJyZWFkY3J1bWJzIiwibG9jYXRpb24iLCJ2ZXJzaW9uIiwic2VhcmNoIiwidGFncyIsIm1hcCIsInRhZyIsImtleSIsImF1dG9tb3VudCIsIm9uUmVsb2FkQ2xpY2siLCJyZWxvYWQiLCJyZWxvYWRUaW1lIiwiZGVmYXVsdFByb3BzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztrQkFZd0JBLGE7O0FBWnhCOzs7O0FBQ0E7O0FBQ0E7Ozs7QUFDQTs7QUFFQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7Ozs7O0FBRUEsSUFBTUMsWUFBWSxrR0FBbEI7O0FBRWUsU0FBU0QsYUFBVCxDQUF1QkUsS0FBdkIsRUFBOEI7QUFDNUMsS0FBTUMsZ0JBQWdCLGlHQUNGRCxNQUFNRSxJQURKLEVBQ2FGLE1BQU1FLElBRG5CLEVBQXRCOztBQUlBLEtBQU1DLGFBQWEsbUJBQVNDLE1BQVQsQ0FBZ0I7QUFDbENDLFlBQWFMLE1BQU1NLElBQW5CLGFBQStCTixNQUFNTyxFQUFyQyxnQkFEa0M7QUFFbENDLFNBQU87QUFDTkMsZ0JBQWFULE1BQU1TO0FBRGI7QUFGMkIsRUFBaEIsQ0FBbkI7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QUFNa0M7QUFGZjtBQUZHO0FBTEw7QUFhQyxvREFBTSxRQUFPLFFBQWI7QUFiRCxJQUREO0FBZ0JDO0FBQUE7QUFBQTtBQUNDLGdCQUFXaEIsZUFEWjtBQUVDLFlBQU9GLFdBRlI7QUFHQyxTQUFJO0FBQ0hYLGdCQUFVTCxNQUFNd0IsUUFBTixDQUFlbkIsUUFEdEI7QUFFSEcsd0NBQ0lSLE1BQU13QixRQUFOLENBQWVoQixLQURuQjtBQUVDUyxlQUFRLENBQUNqQixNQUFNaUI7QUFGaEI7QUFGRztBQUhMO0FBV0Msb0RBQU0sUUFBTyxRQUFiO0FBWEQsSUFoQkQ7QUE2QkM7QUFBQTtBQUFBO0FBQ0MsZ0JBQVdFLGdCQURaO0FBRUMsWUFBT0csWUFGUjtBQUdDLFNBQUk7QUFDSGpCLGdCQUFVTCxNQUFNd0IsUUFBTixDQUFlbkIsUUFEdEI7QUFFSEcsd0NBQ0lSLE1BQU13QixRQUFOLENBQWVoQixLQURuQjtBQUVDWSxnQkFBUyxDQUFDcEIsTUFBTW9CO0FBRmpCO0FBRkc7QUFITDtBQVdDLG9EQUFNLFFBQVFDLGFBQWQ7QUFYRCxJQTdCRDtBQTBDQztBQUFBO0FBQUE7QUFDQyxnQkFBVSxtQkFEWDtBQUVDLGFBQU8sUUFGUjtBQUdDLFVBQUksVUFITDtBQUlDLFdBQU1sQixVQUpQO0FBS0MsWUFBT087QUFMUjtBQU9DLG9EQUFNLFFBQU8sWUFBYjtBQVBEO0FBMUNEO0FBekRELEVBREQ7QUFnSEE7O0FBZ0NEWixjQUFjcUMsWUFBZCxHQUE2QjtBQUM1QlIsT0FBTSxFQURzQjtBQUU1Qks7QUFGNEIsQ0FBN0IiLCJmaWxlIjoicGF0dGVybi1oZWFkZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHtQcm9wVHlwZXMgYXMgdH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHtMaW5rfSBmcm9tICdAbWFyaW9uZWJsL3JlYWN0LXJvdXRlcic7XG5pbXBvcnQgam9pbiBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCB7bm9vcH0gZnJvbSAnbG9kYXNoJztcblxuaW1wb3J0IEJyZWFkQ3J1bWJzIGZyb20gJy4uL2JyZWFkLWNydW1icyc7XG5pbXBvcnQgSGVhZGxpbmUgZnJvbSAnLi4vY29tbW9uL2hlYWRsaW5lJztcbmltcG9ydCBJY29uIGZyb20gJy4uL2NvbW1vbi9pY29uJztcbmltcG9ydCB1cmxRdWVyeSBmcm9tICcuLi8uLi91dGlscy91cmwtcXVlcnknO1xuXG5jb25zdCBhdXRvTW91bnQgPSAnaHR0cHM6Ly9naXRodWIuY29tL3Npbm5lcnNjaHJhZGVyL3BhdHRlcm5wbGF0ZS10cmFuc2Zvcm0tcmVhY3QtdG8tbWFya3VwI2NvbXBvbmVudC1hdXRvLW1vdW50aW5nJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gUGF0dGVybkhlYWRlcihwcm9wcykge1xuXHRjb25zdCBmbGFnQ2xhc3NOYW1lID0gam9pbihgcGF0dGVybl9fZmxhZ2AsIHtcblx0XHRbYHBhdHRlcm5fX2ZsYWctLSR7cHJvcHMuZmxhZ31gXTogcHJvcHMuZmxhZ1xuXHR9KTtcblxuXHRjb25zdCBmdWxsc2NyZWVuID0gdXJsUXVlcnkuZm9ybWF0KHtcblx0XHRwYXRobmFtZTogYCR7cHJvcHMuYmFzZX1kZW1vLyR7cHJvcHMuaWR9L2luZGV4Lmh0bWxgLFxuXHRcdHF1ZXJ5OiB7XG5cdFx0XHRlbnZpcm9ubWVudDogcHJvcHMuZW52aXJvbm1lbnRcblx0XHR9XG5cdH0pO1xuXHRjb25zdCBmdWxsc2NyZWVuVGl0bGUgPSBgT3BlbiBcIiR7cHJvcHMubmFtZX1cIiBpbiBmdWxsc2NyZWVuIFtjdHJsK2ZdYDtcblxuXHRjb25zdCByZWxvYWRUaXRsZSA9IGBSZWxvYWQgZGVtbyBmb3IgXCIke3Byb3BzLm5hbWV9XCIgW2N0cmwrcl1gO1xuXHRjb25zdCByZWxvYWRDbGFzc05hbWUgPSBqb2luKFxuXHRcdCdidXR0b24nLFxuXHRcdCdidXR0b24tLXJlbG9hZCcsXG5cdFx0e1xuXHRcdFx0J3JlbG9hZC0tcmVsb2FkaW5nJzogcHJvcHMubG9hZGluZyxcblx0XHRcdCdidXR0b24tLWlzLWFjdGl2ZSc6IHByb3BzLmxvYWRpbmcsXG5cdFx0XHQncmVsb2FkLS1lcnJvcic6IHByb3BzLmVycm9yZWRcblx0XHR9XG5cdCk7XG5cblx0Y29uc3QgcnVsZXJzVGl0bGUgPSBwcm9wcy5ydWxlcnMgP1xuXHRcdGBEaXNhYmxlIHJ1bGVycyBbY3RybCtsXWAgOlxuXHRcdGBFbmFibGUgcnVsZXJzIFtjdHJsK2xdYDtcblxuXHRjb25zdCBydWxlcnNDbGFzc05hbWUgPSBqb2luKFxuXHRcdGBidXR0b24gYnV0dG9uLS1ydWxlcnNgLFxuXHRcdHtcblx0XHRcdCdidXR0b24tLWlzLWFjdGl2ZSc6IHByb3BzLnJ1bGVyc1xuXHRcdH1cblx0KTtcblxuXHRjb25zdCBvcGFjaXR5Q2xhc3NOYW1lID0gam9pbihcblx0XHQnYnV0dG9uIGJ1dHRvbi0tb3BhY2l0eScsXG5cdFx0e1xuXHRcdFx0J2J1dHRvbi0taXMtYWN0aXZlJzogcHJvcHMub3BhY2l0eVxuXHRcdH1cblx0KTtcblx0Y29uc3Qgb3BhY2l0eVN5bWJvbCA9IHByb3BzLm9wYWNpdHkgPyAnY2hlY2tlcnMnIDogJ2NoZWNrZXJzLWludmVydGVkJztcblx0Y29uc3Qgb3BhY2l0eVRpdGxlID0gcHJvcHMub3BhY2l0eSA/XG5cdFx0J0hpZGUgb3BhY2l0eSBbY3RybCtvXSc6XG5cdFx0J1Nob3cgb3BhY2l0eSBbY3RybCtvXSc7XG5cblx0cmV0dXJuIChcblx0XHQ8ZGl2IGNsYXNzTmFtZT1cInBhdHRlcm4taGVhZGVyLWNvbnRhaW5lclwiPlxuXHRcdFx0PEJyZWFkQ3J1bWJzXG5cdFx0XHRcdGJhc2U9e3Byb3BzLmJhc2V9XG5cdFx0XHRcdGNydW1icz17cHJvcHMuYnJlYWRjcnVtYnN9XG5cdFx0XHRcdGxvY2F0aW9uPXtwcm9wcy5sb2NhdGlvbn1cblx0XHRcdFx0Y2xhc3NOYW1lPVwicGF0dGVybi1wYXRoXCJcblx0XHRcdFx0Lz5cblx0XHRcdDxIZWFkbGluZSBjbGFzc05hbWU9XCJwYXR0ZXJuLWhlYWRlclwiIG9yZGVyPXsyfT5cblx0XHRcdFx0PHNwYW4gY2xhc3NOYW1lPVwicGF0dGVybi1uYW1lXCI+XG5cdFx0XHRcdFx0e3Byb3BzLm5hbWV9XG5cdFx0XHRcdDwvc3Bhbj5cblx0XHRcdFx0PHNtYWxsIGNsYXNzTmFtZT1cInBhdHRlcm4tdmVyc2lvblwiPlxuXHRcdFx0XHRcdHtwcm9wcy52ZXJzaW9uID8gYHYke3Byb3BzLnZlcnNpb259YCA6ICcnfVxuXHRcdFx0XHQ8L3NtYWxsPlxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0cHJvcHMuZmxhZyA/XG5cdFx0XHRcdFx0XHQ8c21hbGwgY2xhc3NOYW1lPXtmbGFnQ2xhc3NOYW1lfT5cblx0XHRcdFx0XHRcdFx0PExpbmtcblx0XHRcdFx0XHRcdFx0XHR0aXRsZT17YFNlYXJjaCBwYXR0ZXJucyB3aXRoIGZsYWcgJHtwcm9wcy5mbGFnfWB9XG5cdFx0XHRcdFx0XHRcdFx0dG89e3tcblx0XHRcdFx0XHRcdFx0XHRcdHBhdGhuYW1lOiBwcm9wcy5sb2NhdGlvbi5wYXRobmFtZSxcblx0XHRcdFx0XHRcdFx0XHRcdHF1ZXJ5OiB7Li4ucHJvcHMubG9jYXRpb24ucXVlcnksIHNlYXJjaDogYGZsYWc6JHtwcm9wcy5mbGFnfWB9XG5cdFx0XHRcdFx0XHRcdFx0fX1cblx0XHRcdFx0XHRcdFx0XHQ+XG5cdFx0XHRcdFx0XHRcdFx0e3Byb3BzLmZsYWd9XG5cdFx0XHRcdFx0XHRcdDwvTGluaz5cblx0XHRcdFx0XHRcdDwvc21hbGw+IDpcblx0XHRcdFx0XHRcdG51bGxcblx0XHRcdFx0fVxuXHRcdFx0XHR7cHJvcHMudGFncy5tYXAoKHRhZywga2V5KSA9PlxuXHRcdFx0XHRcdDxzbWFsbCBrZXk9e2tleX0gY2xhc3NOYW1lPVwicGF0dGVybi10YWdcIj5cblx0XHRcdFx0XHRcdDxMaW5rXG5cdFx0XHRcdFx0XHRcdHRpdGxlPXtgU2VhcmNoIHBhdHRlcm5zIHdpdGggdGFnICR7dGFnfWB9XG5cdFx0XHRcdFx0XHRcdHRvPXt7XG5cdFx0XHRcdFx0XHRcdFx0cGF0aG5hbWU6IHByb3BzLmxvY2F0aW9uLnBhdGhuYW1lLFxuXHRcdFx0XHRcdFx0XHRcdHF1ZXJ5OiB7Li4ucHJvcHMubG9jYXRpb24ucXVlcnksIHNlYXJjaDogYHRhZzoke3RhZ31gfVxuXHRcdFx0XHRcdFx0XHR9fVxuXHRcdFx0XHRcdFx0XHRrZXk9e2tleX1cblx0XHRcdFx0XHRcdFx0PlxuXHRcdFx0XHRcdFx0XHR7dGFnfVxuXHRcdFx0XHRcdFx0PC9MaW5rPlxuXHRcdFx0XHRcdDwvc21hbGw+XG5cdFx0XHRcdCl9XG5cdFx0XHRcdHtcblx0XHRcdFx0XHRwcm9wcy5hdXRvbW91bnQgJiZcblx0XHRcdFx0XHRcdDxzbWFsbCBjbGFzc05hbWU9XCJwYXR0ZXJuLW9wdGlvblwiPlxuXHRcdFx0XHRcdFx0XHQ8YVxuXHRcdFx0XHRcdFx0XHRcdGhyZWY9e2F1dG9Nb3VudH1cblx0XHRcdFx0XHRcdFx0XHR0YXJnZXQ9XCJfYmxhbmtcIlxuXHRcdFx0XHRcdFx0XHRcdHRpdGxlPVwiTGVhcm4gYWJvdXQgY29tcG9uZW50IGF1dG8gbW91bnRpbmcgb24gR2l0aHViXCJcblx0XHRcdFx0XHRcdFx0XHRyZWw9XCJub29wZW5lclwiXG5cdFx0XHRcdFx0XHRcdFx0PlxuXHRcdFx0XHRcdFx0XHRcdGF1dG8tbW91bnRcblx0XHRcdFx0XHRcdFx0PC9hPlxuXHRcdFx0XHRcdFx0PC9zbWFsbD5cblx0XHRcdFx0fVxuXHRcdFx0PC9IZWFkbGluZT5cblx0XHRcdDxkaXYgY2xhc3NOYW1lPVwicGF0dGVybi1oZWFkZXJfX2FjdGlvbnNcIj5cblx0XHRcdFx0PExpbmtcblx0XHRcdFx0XHRjbGFzc05hbWU9e3JlbG9hZENsYXNzTmFtZX1cblx0XHRcdFx0XHR0aXRsZT17cmVsb2FkVGl0bGV9XG5cdFx0XHRcdFx0ZGlzYWJsZWQ9e3Byb3BzLmxvYWRpbmd9XG5cdFx0XHRcdFx0b25DbGljaz17cHJvcHMubG9hZGluZyA/IG5vb3AgOiBwcm9wcy5vblJlbG9hZENsaWNrfVxuXHRcdFx0XHRcdHRvPXt7XG5cdFx0XHRcdFx0XHRwYXRobmFtZTogcHJvcHMubG9jYXRpb24ucGF0aG5hbWUsXG5cdFx0XHRcdFx0XHRxdWVyeToge1xuXHRcdFx0XHRcdFx0XHQuLi5wcm9wcy5sb2NhdGlvbi5xdWVyeSxcblx0XHRcdFx0XHRcdFx0cmVsb2FkOiBwcm9wcy5yZWxvYWRUaW1lXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fX1cblx0XHRcdFx0XHQ+XG5cdFx0XHRcdFx0PEljb24gc3ltYm9sPVwicmVsb2FkXCIvPlxuXHRcdFx0XHQ8L0xpbms+XG5cdFx0XHRcdDxMaW5rXG5cdFx0XHRcdFx0Y2xhc3NOYW1lPXtydWxlcnNDbGFzc05hbWV9XG5cdFx0XHRcdFx0dGl0bGU9e3J1bGVyc1RpdGxlfVxuXHRcdFx0XHRcdHRvPXt7XG5cdFx0XHRcdFx0XHRwYXRobmFtZTogcHJvcHMubG9jYXRpb24ucGF0aG5hbWUsXG5cdFx0XHRcdFx0XHRxdWVyeToge1xuXHRcdFx0XHRcdFx0XHQuLi5wcm9wcy5sb2NhdGlvbi5xdWVyeSxcblx0XHRcdFx0XHRcdFx0cnVsZXJzOiAhcHJvcHMucnVsZXJzXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fX1cblx0XHRcdFx0XHQ+XG5cdFx0XHRcdFx0PEljb24gc3ltYm9sPVwicnVsZXJzXCIvPlxuXHRcdFx0XHQ8L0xpbms+XG5cdFx0XHRcdDxMaW5rXG5cdFx0XHRcdFx0Y2xhc3NOYW1lPXtvcGFjaXR5Q2xhc3NOYW1lfVxuXHRcdFx0XHRcdHRpdGxlPXtvcGFjaXR5VGl0bGV9XG5cdFx0XHRcdFx0dG89e3tcblx0XHRcdFx0XHRcdHBhdGhuYW1lOiBwcm9wcy5sb2NhdGlvbi5wYXRobmFtZSxcblx0XHRcdFx0XHRcdHF1ZXJ5OiB7XG5cdFx0XHRcdFx0XHRcdC4uLnByb3BzLmxvY2F0aW9uLnF1ZXJ5LFxuXHRcdFx0XHRcdFx0XHRvcGFjaXR5OiAhcHJvcHMub3BhY2l0eVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH19XG5cdFx0XHRcdFx0PlxuXHRcdFx0XHRcdDxJY29uIHN5bWJvbD17b3BhY2l0eVN5bWJvbH0vPlxuXHRcdFx0XHQ8L0xpbms+XG5cdFx0XHRcdDxhXG5cdFx0XHRcdFx0Y2xhc3NOYW1lPVwiYnV0dG9uIGZ1bGxzY3JlZW5cIlxuXHRcdFx0XHRcdHRhcmdldD1cIl9ibGFua1wiXG5cdFx0XHRcdFx0cmVsPVwibm9vcGVuZXJcIlxuXHRcdFx0XHRcdGhyZWY9e2Z1bGxzY3JlZW59XG5cdFx0XHRcdFx0dGl0bGU9e2Z1bGxzY3JlZW5UaXRsZX1cblx0XHRcdFx0XHQ+XG5cdFx0XHRcdFx0PEljb24gc3ltYm9sPVwiZnVsbHNjcmVlblwiLz5cblx0XHRcdFx0PC9hPlxuXHRcdFx0PC9kaXY+XG5cdFx0PC9kaXY+XG5cdCk7XG59XG5cblBhdHRlcm5IZWFkZXIucHJvcFR5cGVzID0ge1xuXHRhdXRvbW91bnQ6IHQuYm9vbC5pc1JlcXVpcmVkLFxuXHRiYXNlOiB0LnN0cmluZy5pc1JlcXVpcmVkLFxuXHRicmVhZGNydW1iczogdC5hcnJheU9mKHQuc2hhcGUoe1xuXHRcdGlkOiB0LnN0cmluZy5pc1JlcXVpcmVkLFxuXHRcdG5hbWU6IHQuc3RyaW5nLmlzUmVxdWlyZWQsXG5cdFx0dGFyZ2V0OiB0LnNoYXBlKHtcblx0XHRcdHBhdGhuYW1lOiB0LnN0cmluZy5pc1JlcXVpcmVkLFxuXHRcdFx0cXVlcnk6IHQub2JqZWN0LmlzUmVxdWlyZWRcblx0XHR9KS5pc1JlcXVpcmVkXG5cdH0pKS5pc1JlcXVpcmVkLFxuXHRlbnZpcm9ubWVudDogdC5zdHJpbmcuaXNSZXF1aXJlZCxcblx0ZXJyb3JlZDogdC5ib29sLmlzUmVxdWlyZWQsXG5cdGZsYWc6IHQuc3RyaW5nLFxuXHRpZDogdC5zdHJpbmcuaXNSZXF1aXJlZCxcblx0bG9hZGluZzogdC5ib29sLmlzUmVxdWlyZWQsXG5cdGxvY2F0aW9uOiB0LnNoYXBlKHtcblx0XHRwYXRobmFtZTogdC5zdHJpbmcuaXNSZXF1aXJlZCxcblx0XHRxdWVyeTogdC5vYmplY3QuaXNSZXF1aXJlZFxuXHR9KSxcblx0bmFtZTogdC5zdHJpbmcuaXNSZXF1aXJlZCxcblx0b25SZWxvYWRDbGljazogdC5mdW5jLmlzUmVxdWlyZWQsXG5cdG9wYWNpdHk6IHQuYm9vbC5pc1JlcXVpcmVkLFxuXHRyZWxvYWRUaW1lOiB0Lm51bWJlcixcblx0cmVsb2FkZWRUaW1lOiB0Lm51bWJlcixcblx0cnVsZXJzOiB0LmJvb2wuaXNSZXF1aXJlZCxcblx0dGFnczogdC5hcnJheU9mKHQuc3RyaW5nKSxcblx0dmVyc2lvbjogdC5zdHJpbmcuaXNSZXF1aXJlZFxufTtcblxuUGF0dGVybkhlYWRlci5kZWZhdWx0UHJvcHMgPSB7XG5cdHRhZ3M6IFtdLFxuXHRvblJlbG9hZENsaWNrOiBub29wXG59O1xuIl19