UNPKG

patternplate-client

Version:

Universal javascript client application for patternplate

121 lines (97 loc) 9.36 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _extends2 = require('babel-runtime/helpers/extends'); var _extends3 = _interopRequireDefault(_extends2); var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _reactRouter = require('@marionebl/react-router'); var _lodash = require('lodash'); var _unified = require('unified'); var _unified2 = _interopRequireDefault(_unified); var _rehypeParse = require('rehype-parse'); var _rehypeParse2 = _interopRequireDefault(_rehypeParse); var _unistUtilSelect = require('unist-util-select'); var _unistUtilSelect2 = _interopRequireDefault(_unistUtilSelect); var _hastToHyperscript = require('hast-to-hyperscript'); var _hastToHyperscript2 = _interopRequireDefault(_hastToHyperscript); var _icon = require('../common/icon'); var _icon2 = _interopRequireDefault(_icon); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } exports.default = Header; function Header(props) { var to = { pathname: props.base, query: props.query }; var enabledTo = { pathname: props.pathname, query: (0, _extends3.default)({}, props.query, { 'menu-enabled': !props.menuEnabled }) }; return _react2.default.createElement( 'header', { className: 'main-header application__header' }, _react2.default.createElement( _reactRouter.IndexLink, { to: to, title: 'Navigate to documentation [ctrl+d]', className: 'logo' }, _react2.default.createElement(LiteralIcon, { icon: props.icon }), _react2.default.createElement( 'span', { className: 'main-header__title' }, props.title ) ), _react2.default.createElement( 'div', { className: 'toolbar' }, _react2.default.createElement( _reactRouter.Link, { className: 'menu', to: enabledTo }, _react2.default.createElement( _icon2.default, { base: props.base, symbol: 'patternplate', fallback: false }, props.menuEnabled ? 'Disable Menu' : 'Enable Menu' ) ) ) ); } function LiteralIcon(props) { var isSVG = (0, _lodash.startsWith)(props.icon.trim(), '<svg'); var parsed = isSVG ? toSVGElement(props.icon) : null; var dim = parsed ? { width: parsed.props.width + 'px', height: parsed.props.height + 'px' } : null; return parsed ? _react2.default.createElement( 'div', { className: 'icon' }, _react2.default.createElement( 'div', { className: 'svg-icon', style: dim }, parsed ) ) : _react2.default.createElement(_icon2.default, { symbol: props.icon, fallback: false }); } function toSVGElement(input) { var ast = (0, _unified2.default)().use(_rehypeParse2.default).parse(input); var svg = (0, _lodash.find)((0, _unistUtilSelect2.default)(ast, '*'), function (e) { return e.tagName === 'svg'; }); var el = (0, _hastToHyperscript2.default)(_react2.default.createElement, svg); var props = (0, _lodash.keys)(el.props).reduce(function (props, prop) { props[(0, _lodash.camelCase)(prop)] = el.props[prop]; return props; }, {}); return (0, _lodash.assign)({}, el, { props: props }); } module.exports = exports['default']; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NvdXJjZS9hcHBsaWNhdGlvbi9jb21wb25lbnRzL2hlYWRlci9pbmRleC5qcyJdLCJuYW1lcyI6WyJIZWFkZXIiLCJwcm9wcyIsInRvIiwicGF0aG5hbWUiLCJiYXNlIiwicXVlcnkiLCJlbmFibGVkVG8iLCJtZW51RW5hYmxlZCIsImljb24iLCJ0aXRsZSIsIkxpdGVyYWxJY29uIiwiaXNTVkciLCJ0cmltIiwicGFyc2VkIiwidG9TVkdFbGVtZW50IiwiZGltIiwid2lkdGgiLCJoZWlnaHQiLCJpbnB1dCIsImFzdCIsInVzZSIsInBhcnNlIiwic3ZnIiwiZSIsInRhZ05hbWUiLCJlbCIsImNyZWF0ZUVsZW1lbnQiLCJyZWR1Y2UiLCJwcm9wIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUE7Ozs7QUFDQTs7QUFDQTs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUVBOzs7Ozs7a0JBRWVBLE07OztBQUVmLFNBQVNBLE1BQVQsQ0FBZ0JDLEtBQWhCLEVBQXVCO0FBQ3RCLEtBQU1DLEtBQUssRUFBQ0MsVUFBVUYsTUFBTUcsSUFBakIsRUFBdUJDLE9BQU9KLE1BQU1JLEtBQXBDLEVBQVg7QUFDQSxLQUFNQyxZQUFZO0FBQ2pCSCxZQUFVRixNQUFNRSxRQURDO0FBRWpCRSxvQ0FDSUosTUFBTUksS0FEVjtBQUVDLG1CQUFnQixDQUFDSixNQUFNTTtBQUZ4QjtBQUZpQixFQUFsQjs7QUFRQSxRQUNDO0FBQUE7QUFBQSxJQUFRLFdBQVUsaUNBQWxCO0FBQ0M7QUFBQTtBQUFBO0FBQ0MsUUFBSUwsRUFETDtBQUVDLFdBQU0sb0NBRlA7QUFHQyxlQUFVO0FBSFg7QUFLQyxpQ0FBQyxXQUFELElBQWEsTUFBTUQsTUFBTU8sSUFBekIsR0FMRDtBQU1DO0FBQUE7QUFBQSxNQUFNLFdBQVUsb0JBQWhCO0FBQ0VQLFVBQU1RO0FBRFI7QUFORCxHQUREO0FBV0M7QUFBQTtBQUFBLEtBQUssV0FBVSxTQUFmO0FBQ0M7QUFBQTtBQUFBO0FBQ0MsZ0JBQVUsTUFEWDtBQUVDLFNBQUlIO0FBRkw7QUFJQztBQUFBO0FBQUE7QUFDQyxZQUFNTCxNQUFNRyxJQURiO0FBRUMsY0FBTyxjQUZSO0FBR0MsZ0JBQVU7QUFIWDtBQU1FSCxXQUFNTSxXQUFOLEdBQ0MsY0FERCxHQUVDO0FBUkg7QUFKRDtBQUREO0FBWEQsRUFERDtBQWdDQTs7QUFZRCxTQUFTRyxXQUFULENBQXFCVCxLQUFyQixFQUE0QjtBQUMzQixLQUFNVSxRQUFRLHdCQUFXVixNQUFNTyxJQUFOLENBQVdJLElBQVgsRUFBWCxFQUE4QixNQUE5QixDQUFkO0FBQ0EsS0FBTUMsU0FBU0YsUUFBUUcsYUFBYWIsTUFBTU8sSUFBbkIsQ0FBUixHQUFtQyxJQUFsRDtBQUNBLEtBQU1PLE1BQU1GLFNBQVMsRUFBQ0csT0FBVUgsT0FBT1osS0FBUCxDQUFhZSxLQUF2QixPQUFELEVBQW1DQyxRQUFXSixPQUFPWixLQUFQLENBQWFnQixNQUF4QixPQUFuQyxFQUFULEdBQWtGLElBQTlGO0FBQ0EsUUFBT0osU0FDTjtBQUFBO0FBQUEsSUFBSyxXQUFVLE1BQWY7QUFBc0I7QUFBQTtBQUFBLEtBQUssV0FBVSxVQUFmLEVBQTBCLE9BQU9FLEdBQWpDO0FBQXVDRjtBQUF2QztBQUF0QixFQURNLEdBRU4sZ0RBQU0sUUFBUVosTUFBTU8sSUFBcEIsRUFBMEIsVUFBVSxLQUFwQyxHQUZEO0FBR0E7O0FBTUQsU0FBU00sWUFBVCxDQUFzQkksS0FBdEIsRUFBNkI7QUFDNUIsS0FBTUMsTUFBTSx5QkFDVkMsR0FEVSx3QkFFVkMsS0FGVSxDQUVKSCxLQUZJLENBQVo7QUFHQSxLQUFNSSxNQUFNLGtCQUFLLCtCQUFPSCxHQUFQLEVBQVksR0FBWixDQUFMLEVBQXVCO0FBQUEsU0FBS0ksRUFBRUMsT0FBRixLQUFjLEtBQW5CO0FBQUEsRUFBdkIsQ0FBWjtBQUNBLEtBQU1DLEtBQUssaUNBQUksZ0JBQU1DLGFBQVYsRUFBeUJKLEdBQXpCLENBQVg7QUFDQSxLQUFNckIsUUFBUSxrQkFBS3dCLEdBQUd4QixLQUFSLEVBQWUwQixNQUFmLENBQXNCLFVBQUMxQixLQUFELEVBQVEyQixJQUFSLEVBQWlCO0FBQ3BEM0IsUUFBTSx1QkFBVTJCLElBQVYsQ0FBTixJQUF5QkgsR0FBR3hCLEtBQUgsQ0FBUzJCLElBQVQsQ0FBekI7QUFDQSxTQUFPM0IsS0FBUDtBQUNBLEVBSGEsRUFHWCxFQUhXLENBQWQ7QUFJQSxRQUFPLG9CQUFPLEVBQVAsRUFBV3dCLEVBQVgsRUFBZSxFQUFDeEIsWUFBRCxFQUFmLENBQVA7QUFDQSIsImZpbGUiOiJpbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwge1Byb3BUeXBlcyBhcyB0fSBmcm9tICdyZWFjdCc7XG5pbXBvcnQge0xpbmssIEluZGV4TGlua30gZnJvbSAnQG1hcmlvbmVibC9yZWFjdC1yb3V0ZXInO1xuaW1wb3J0IHthc3NpZ24sIGNhbWVsQ2FzZSwgZmluZCwga2V5cywgc3RhcnRzV2l0aH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB1bmlmaWVkIGZyb20gJ3VuaWZpZWQnO1xuaW1wb3J0IHBhcnNlIGZyb20gJ3JlaHlwZS1wYXJzZSc7XG5pbXBvcnQgc2VsZWN0IGZyb20gJ3VuaXN0LXV0aWwtc2VsZWN0JztcbmltcG9ydCB0b2ggZnJvbSAnaGFzdC10by1oeXBlcnNjcmlwdCc7XG5cbmltcG9ydCBJY29uIGZyb20gJy4uL2NvbW1vbi9pY29uJztcblxuZXhwb3J0IGRlZmF1bHQgSGVhZGVyO1xuXG5mdW5jdGlvbiBIZWFkZXIocHJvcHMpIHtcblx0Y29uc3QgdG8gPSB7cGF0aG5hbWU6IHByb3BzLmJhc2UsIHF1ZXJ5OiBwcm9wcy5xdWVyeX07XG5cdGNvbnN0IGVuYWJsZWRUbyA9IHtcblx0XHRwYXRobmFtZTogcHJvcHMucGF0aG5hbWUsXG5cdFx0cXVlcnk6IHtcblx0XHRcdC4uLnByb3BzLnF1ZXJ5LFxuXHRcdFx0J21lbnUtZW5hYmxlZCc6ICFwcm9wcy5tZW51RW5hYmxlZFxuXHRcdH1cblx0fTtcblxuXHRyZXR1cm4gKFxuXHRcdDxoZWFkZXIgY2xhc3NOYW1lPVwibWFpbi1oZWFkZXIgYXBwbGljYXRpb25fX2hlYWRlclwiPlxuXHRcdFx0PEluZGV4TGlua1xuXHRcdFx0XHR0bz17dG99XG5cdFx0XHRcdHRpdGxlPVwiTmF2aWdhdGUgdG8gZG9jdW1lbnRhdGlvbiBbY3RybCtkXVwiXG5cdFx0XHRcdGNsYXNzTmFtZT1cImxvZ29cIlxuXHRcdFx0XHQ+XG5cdFx0XHRcdDxMaXRlcmFsSWNvbiBpY29uPXtwcm9wcy5pY29ufS8+XG5cdFx0XHRcdDxzcGFuIGNsYXNzTmFtZT1cIm1haW4taGVhZGVyX190aXRsZVwiPlxuXHRcdFx0XHRcdHtwcm9wcy50aXRsZX1cblx0XHRcdFx0PC9zcGFuPlxuXHRcdFx0PC9JbmRleExpbms+XG5cdFx0XHQ8ZGl2IGNsYXNzTmFtZT1cInRvb2xiYXJcIj5cblx0XHRcdFx0PExpbmtcblx0XHRcdFx0XHRjbGFzc05hbWU9XCJtZW51XCJcblx0XHRcdFx0XHR0bz17ZW5hYmxlZFRvfVxuXHRcdFx0XHRcdD5cblx0XHRcdFx0XHQ8SWNvblxuXHRcdFx0XHRcdFx0YmFzZT17cHJvcHMuYmFzZX1cblx0XHRcdFx0XHRcdHN5bWJvbD1cInBhdHRlcm5wbGF0ZVwiXG5cdFx0XHRcdFx0XHRmYWxsYmFjaz17ZmFsc2V9XG5cdFx0XHRcdFx0XHQ+XG5cdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdHByb3BzLm1lbnVFbmFibGVkID9cblx0XHRcdFx0XHRcdFx0XHQnRGlzYWJsZSBNZW51JyA6XG5cdFx0XHRcdFx0XHRcdFx0J0VuYWJsZSBNZW51J1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdDwvSWNvbj5cblx0XHRcdFx0PC9MaW5rPlxuXHRcdFx0PC9kaXY+XG5cdFx0PC9oZWFkZXI+XG5cdCk7XG59XG5cbkhlYWRlci5wcm9wVHlwZXMgPSB7XG5cdGJhc2U6IHQuc3RyaW5nLmlzUmVxdWlyZWQsXG5cdGljb246IHQuc3RyaW5nLmlzUmVxdWlyZWQsXG5cdG1lbnVFbmFibGVkOiB0LmJvb2wuaXNSZXF1aXJlZCxcblx0cGF0aG5hbWU6IHQuc3RyaW5nLmlzUmVxdWlyZWQsXG5cdHF1ZXJ5OiB0Lm9iamVjdC5pc1JlcXVpcmVkLFxuXHR0aXRsZTogdC5zdHJpbmcuaXNSZXF1aXJlZCxcblx0dmVyc2lvbjogdC5zdHJpbmcuaXNSZXF1aXJlZFxufTtcblxuZnVuY3Rpb24gTGl0ZXJhbEljb24ocHJvcHMpIHtcblx0Y29uc3QgaXNTVkcgPSBzdGFydHNXaXRoKHByb3BzLmljb24udHJpbSgpLCAnPHN2ZycpO1xuXHRjb25zdCBwYXJzZWQgPSBpc1NWRyA/IHRvU1ZHRWxlbWVudChwcm9wcy5pY29uKSA6IG51bGw7XG5cdGNvbnN0IGRpbSA9IHBhcnNlZCA/IHt3aWR0aDogYCR7cGFyc2VkLnByb3BzLndpZHRofXB4YCwgaGVpZ2h0OiBgJHtwYXJzZWQucHJvcHMuaGVpZ2h0fXB4YH0gOiBudWxsO1xuXHRyZXR1cm4gcGFyc2VkID9cblx0XHQ8ZGl2IGNsYXNzTmFtZT1cImljb25cIj48ZGl2IGNsYXNzTmFtZT1cInN2Zy1pY29uXCIgc3R5bGU9e2RpbX0+e3BhcnNlZH08L2Rpdj48L2Rpdj4gOlxuXHRcdDxJY29uIHN5bWJvbD17cHJvcHMuaWNvbn0gZmFsbGJhY2s9e2ZhbHNlfS8+O1xufVxuXG5MaXRlcmFsSWNvbi5wcm9wVHlwZXMgPSB7XG5cdGljb246IHQuc3RyaW5nLmlzUmVxdWlyZWRcbn07XG5cbmZ1bmN0aW9uIHRvU1ZHRWxlbWVudChpbnB1dCkge1xuXHRjb25zdCBhc3QgPSB1bmlmaWVkKClcblx0XHQudXNlKHBhcnNlKVxuXHRcdC5wYXJzZShpbnB1dCk7XG5cdGNvbnN0IHN2ZyA9IGZpbmQoc2VsZWN0KGFzdCwgJyonKSwgZSA9PiBlLnRhZ05hbWUgPT09ICdzdmcnKTtcblx0Y29uc3QgZWwgPSB0b2goUmVhY3QuY3JlYXRlRWxlbWVudCwgc3ZnKTtcblx0Y29uc3QgcHJvcHMgPSBrZXlzKGVsLnByb3BzKS5yZWR1Y2UoKHByb3BzLCBwcm9wKSA9PiB7XG5cdFx0cHJvcHNbY2FtZWxDYXNlKHByb3ApXSA9IGVsLnByb3BzW3Byb3BdO1xuXHRcdHJldHVybiBwcm9wcztcblx0fSwge30pO1xuXHRyZXR1cm4gYXNzaWduKHt9LCBlbCwge3Byb3BzfSk7XG59XG4iXX0=