UNPKG

patternplate-client

Version:

Universal javascript client application for patternplate

122 lines (92 loc) 9.23 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = undefined; var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of'); var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck'); var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); var _createClass2 = require('babel-runtime/helpers/createClass'); var _createClass3 = _interopRequireDefault(_createClass2); var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn'); var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); var _inherits2 = require('babel-runtime/helpers/inherits'); var _inherits3 = _interopRequireDefault(_inherits2); var _class, _temp; var _url = require('url'); var _url2 = _interopRequireDefault(_url); var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _reactRouter = require('@marionebl/react-router'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var MarkdownLink = (_temp = _class = function (_Component) { (0, _inherits3.default)(MarkdownLink, _Component); function MarkdownLink() { (0, _classCallCheck3.default)(this, MarkdownLink); return (0, _possibleConstructorReturn3.default)(this, (MarkdownLink.__proto__ || (0, _getPrototypeOf2.default)(MarkdownLink)).apply(this, arguments)); } (0, _createClass3.default)(MarkdownLink, [{ key: 'componentDidMount', value: function componentDidMount() { var props = this.props; var parsed = _url2.default.parse(props.href); var pathname = parsed.pathname || '/'; var hasHash = Boolean(parsed.hash); var isSamePathname = !parsed.pathname || props.pathname === pathname; var isSameHash = hasHash && isSamePathname && props.hash === parsed.hash; if (isSameHash) { props.onHashChange(parsed.hash.slice(1)); } } }, { key: 'render', value: function render() { var props = this.props; var parsed = _url2.default.parse(props.href); var pathname = parsed.pathname || '/'; var isAbsolute = Boolean(parsed.protocol); if (isAbsolute) { return _react2.default.createElement( 'a', { href: props.href, className: 'link link--external', rel: 'noopener', target: '_blank', title: props.title || 'Open ' + props.href + ' in a new tab' }, props.children ); } var hasHash = Boolean(parsed.hash); var isSamePathname = !parsed.pathname || props.pathname === pathname; var to = { pathname: hasHash && isSamePathname ? '' + props.base : '/' + [props.base, parsed.pathname].join('').split('/').filter(Boolean).join('/'), query: props.query, hash: parsed.hash }; var title = hasHash && isSamePathname ? 'Jump to ' + to.hash.slice(1) : 'Navigate to ' + to.pathname; var onClick = function onClick() { if (hasHash && isSamePathname) { props.onHashChange(to.hash.slice(1)); } }; return _react2.default.createElement( _reactRouter.Link, { onClick: onClick, title: props.title || title, to: to }, props.children ); } }]); return MarkdownLink; }(_react.Component), _class.defaultProps = { onHashChange: function onHashChange() {} }, _temp); exports.default = MarkdownLink; module.exports = exports['default']; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NvdXJjZS9hcHBsaWNhdGlvbi9jb21wb25lbnRzL2NvbW1vbi9tYXJrZG93bi9tYXJrZG93bi1saW5rLmpzIl0sIm5hbWVzIjpbIk1hcmtkb3duTGluayIsInByb3BzIiwicGFyc2VkIiwicGFyc2UiLCJocmVmIiwicGF0aG5hbWUiLCJoYXNIYXNoIiwiQm9vbGVhbiIsImhhc2giLCJpc1NhbWVQYXRobmFtZSIsImlzU2FtZUhhc2giLCJvbkhhc2hDaGFuZ2UiLCJzbGljZSIsImlzQWJzb2x1dGUiLCJwcm90b2NvbCIsInRpdGxlIiwiY2hpbGRyZW4iLCJ0byIsImJhc2UiLCJqb2luIiwic3BsaXQiLCJmaWx0ZXIiLCJxdWVyeSIsIm9uQ2xpY2siLCJkZWZhdWx0UHJvcHMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7Ozs7QUFDQTs7OztBQUNBOzs7O0lBRXFCQSxZOzs7Ozs7Ozs7O3NDQWdCQTtBQUFBLE9BQ1pDLEtBRFksR0FDSCxJQURHLENBQ1pBLEtBRFk7O0FBRW5CLE9BQU1DLFNBQVMsY0FBSUMsS0FBSixDQUFVRixNQUFNRyxJQUFoQixDQUFmO0FBQ0EsT0FBTUMsV0FBV0gsT0FBT0csUUFBUCxJQUFtQixHQUFwQztBQUNBLE9BQU1DLFVBQVVDLFFBQVFMLE9BQU9NLElBQWYsQ0FBaEI7QUFDQSxPQUFNQyxpQkFBaUIsQ0FBQ1AsT0FBT0csUUFBUixJQUFvQkosTUFBTUksUUFBTixLQUFtQkEsUUFBOUQ7QUFDQSxPQUFNSyxhQUFhSixXQUFXRyxjQUFYLElBQTZCUixNQUFNTyxJQUFOLEtBQWVOLE9BQU9NLElBQXRFOztBQUVBLE9BQUlFLFVBQUosRUFBZ0I7QUFDZlQsVUFBTVUsWUFBTixDQUFtQlQsT0FBT00sSUFBUCxDQUFZSSxLQUFaLENBQWtCLENBQWxCLENBQW5CO0FBQ0E7QUFDRDs7OzJCQUVRO0FBQUEsT0FDRFgsS0FEQyxHQUNRLElBRFIsQ0FDREEsS0FEQzs7QUFFUixPQUFNQyxTQUFTLGNBQUlDLEtBQUosQ0FBVUYsTUFBTUcsSUFBaEIsQ0FBZjtBQUNBLE9BQU1DLFdBQVdILE9BQU9HLFFBQVAsSUFBbUIsR0FBcEM7QUFDQSxPQUFNUSxhQUFhTixRQUFRTCxPQUFPWSxRQUFmLENBQW5COztBQUVBLE9BQUlELFVBQUosRUFBZ0I7QUFDZixXQUNDO0FBQUE7QUFBQTtBQUNDLFlBQU1aLE1BQU1HLElBRGI7QUFFQyxpQkFBVSxxQkFGWDtBQUdDLFdBQUksVUFITDtBQUlDLGNBQU8sUUFKUjtBQUtDLGFBQU9ILE1BQU1jLEtBQU4sY0FBdUJkLE1BQU1HLElBQTdCO0FBTFI7QUFPRUgsV0FBTWU7QUFQUixLQUREO0FBV0E7O0FBRUQsT0FBTVYsVUFBVUMsUUFBUUwsT0FBT00sSUFBZixDQUFoQjtBQUNBLE9BQU1DLGlCQUFpQixDQUFDUCxPQUFPRyxRQUFSLElBQW9CSixNQUFNSSxRQUFOLEtBQW1CQSxRQUE5RDs7QUFFQSxPQUFNWSxLQUFLO0FBQ1ZaLGNBQVVDLFdBQVdHLGNBQVgsUUFDTlIsTUFBTWlCLElBREEsU0FFTCxDQUFDakIsTUFBTWlCLElBQVAsRUFBYWhCLE9BQU9HLFFBQXBCLEVBQThCYyxJQUE5QixDQUFtQyxFQUFuQyxFQUF1Q0MsS0FBdkMsQ0FBNkMsR0FBN0MsRUFBa0RDLE1BQWxELENBQXlEZCxPQUF6RCxFQUFrRVksSUFBbEUsQ0FBdUUsR0FBdkUsQ0FISztBQUlWRyxXQUFPckIsTUFBTXFCLEtBSkg7QUFLVmQsVUFBTU4sT0FBT007QUFMSCxJQUFYOztBQVFBLE9BQU1PLFFBQVFULFdBQVdHLGNBQVgsZ0JBQ0ZRLEdBQUdULElBQUgsQ0FBUUksS0FBUixDQUFjLENBQWQsQ0FERSxvQkFFRUssR0FBR1osUUFGbkI7O0FBSUEsT0FBTWtCLFVBQVUsU0FBVkEsT0FBVSxHQUFNO0FBQ3JCLFFBQUlqQixXQUFXRyxjQUFmLEVBQStCO0FBQzlCUixXQUFNVSxZQUFOLENBQW1CTSxHQUFHVCxJQUFILENBQVFJLEtBQVIsQ0FBYyxDQUFkLENBQW5CO0FBQ0E7QUFDRCxJQUpEOztBQU1BLFVBQ0M7QUFBQTtBQUFBO0FBQ0MsY0FBU1csT0FEVjtBQUVDLFlBQU90QixNQUFNYyxLQUFOLElBQWVBLEtBRnZCO0FBR0MsU0FBSUU7QUFITDtBQUtFaEIsVUFBTWU7QUFMUixJQUREO0FBU0E7Ozs0QkFuRU1RLFksR0FBZTtBQUNyQmIsZUFBYyx3QkFBTSxDQUFFO0FBREQsQztrQkFaRlgsWSIsImZpbGUiOiJtYXJrZG93bi1saW5rLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHVybCBmcm9tICd1cmwnO1xuaW1wb3J0IFJlYWN0LCB7Q29tcG9uZW50LCBQcm9wVHlwZXMgYXMgdH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHtMaW5rfSBmcm9tICdAbWFyaW9uZWJsL3JlYWN0LXJvdXRlcic7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE1hcmtkb3duTGluayBleHRlbmRzIENvbXBvbmVudCB7XG5cdHN0YXRpYyBwcm9wVHlwZXMgPSB7XG5cdFx0YmFzZTogdC5zdHJpbmcuaXNSZXF1aXJlZCxcblx0XHRjaGlsZHJlbjogdC5hbnksXG5cdFx0aGFzaDogdC5zdHJpbmcuaXNSZXF1aXJlZCxcblx0XHRocmVmOiB0LnN0cmluZy5pc1JlcXVpcmVkLFxuXHRcdG9uSGFzaENoYW5nZTogdC5mdW5jLmlzUmVxdWlyZWQsXG5cdFx0cGF0aG5hbWU6IHQuc3RyaW5nLmlzUmVxdWlyZWQsXG5cdFx0cXVlcnk6IHQub2JqZWN0LmlzUmVxdWlyZWQsXG5cdFx0dGl0bGU6IHQuc3RyaW5nXG5cdH07XG5cblx0c3RhdGljIGRlZmF1bHRQcm9wcyA9IHtcblx0XHRvbkhhc2hDaGFuZ2U6ICgpID0+IHt9XG5cdH07XG5cblx0Y29tcG9uZW50RGlkTW91bnQoKSB7XG5cdFx0Y29uc3Qge3Byb3BzfSA9IHRoaXM7XG5cdFx0Y29uc3QgcGFyc2VkID0gdXJsLnBhcnNlKHByb3BzLmhyZWYpO1xuXHRcdGNvbnN0IHBhdGhuYW1lID0gcGFyc2VkLnBhdGhuYW1lIHx8ICcvJztcblx0XHRjb25zdCBoYXNIYXNoID0gQm9vbGVhbihwYXJzZWQuaGFzaCk7XG5cdFx0Y29uc3QgaXNTYW1lUGF0aG5hbWUgPSAhcGFyc2VkLnBhdGhuYW1lIHx8IHByb3BzLnBhdGhuYW1lID09PSBwYXRobmFtZTtcblx0XHRjb25zdCBpc1NhbWVIYXNoID0gaGFzSGFzaCAmJiBpc1NhbWVQYXRobmFtZSAmJiBwcm9wcy5oYXNoID09PSBwYXJzZWQuaGFzaDtcblxuXHRcdGlmIChpc1NhbWVIYXNoKSB7XG5cdFx0XHRwcm9wcy5vbkhhc2hDaGFuZ2UocGFyc2VkLmhhc2guc2xpY2UoMSkpO1xuXHRcdH1cblx0fVxuXG5cdHJlbmRlcigpIHtcblx0XHRjb25zdCB7cHJvcHN9ID0gdGhpcztcblx0XHRjb25zdCBwYXJzZWQgPSB1cmwucGFyc2UocHJvcHMuaHJlZik7XG5cdFx0Y29uc3QgcGF0aG5hbWUgPSBwYXJzZWQucGF0aG5hbWUgfHwgJy8nO1xuXHRcdGNvbnN0IGlzQWJzb2x1dGUgPSBCb29sZWFuKHBhcnNlZC5wcm90b2NvbCk7XG5cblx0XHRpZiAoaXNBYnNvbHV0ZSkge1xuXHRcdFx0cmV0dXJuIChcblx0XHRcdFx0PGFcblx0XHRcdFx0XHRocmVmPXtwcm9wcy5ocmVmfVxuXHRcdFx0XHRcdGNsYXNzTmFtZT1cImxpbmsgbGluay0tZXh0ZXJuYWxcIlxuXHRcdFx0XHRcdHJlbD1cIm5vb3BlbmVyXCJcblx0XHRcdFx0XHR0YXJnZXQ9XCJfYmxhbmtcIlxuXHRcdFx0XHRcdHRpdGxlPXtwcm9wcy50aXRsZSB8fCBgT3BlbiAke3Byb3BzLmhyZWZ9IGluIGEgbmV3IHRhYmB9XG5cdFx0XHRcdFx0PlxuXHRcdFx0XHRcdHtwcm9wcy5jaGlsZHJlbn1cblx0XHRcdFx0PC9hPlxuXHRcdFx0KTtcblx0XHR9XG5cblx0XHRjb25zdCBoYXNIYXNoID0gQm9vbGVhbihwYXJzZWQuaGFzaCk7XG5cdFx0Y29uc3QgaXNTYW1lUGF0aG5hbWUgPSAhcGFyc2VkLnBhdGhuYW1lIHx8IHByb3BzLnBhdGhuYW1lID09PSBwYXRobmFtZTtcblxuXHRcdGNvbnN0IHRvID0ge1xuXHRcdFx0cGF0aG5hbWU6IGhhc0hhc2ggJiYgaXNTYW1lUGF0aG5hbWUgP1xuXHRcdFx0XHRgJHtwcm9wcy5iYXNlfWAgOlxuXHRcdFx0XHRgLyR7W3Byb3BzLmJhc2UsIHBhcnNlZC5wYXRobmFtZV0uam9pbignJykuc3BsaXQoJy8nKS5maWx0ZXIoQm9vbGVhbikuam9pbignLycpfWAsXG5cdFx0XHRxdWVyeTogcHJvcHMucXVlcnksXG5cdFx0XHRoYXNoOiBwYXJzZWQuaGFzaFxuXHRcdH07XG5cblx0XHRjb25zdCB0aXRsZSA9IGhhc0hhc2ggJiYgaXNTYW1lUGF0aG5hbWUgP1xuXHRcdFx0YEp1bXAgdG8gJHt0by5oYXNoLnNsaWNlKDEpfWAgOlxuXHRcdFx0YE5hdmlnYXRlIHRvICR7dG8ucGF0aG5hbWV9YDtcblxuXHRcdGNvbnN0IG9uQ2xpY2sgPSAoKSA9PiB7XG5cdFx0XHRpZiAoaGFzSGFzaCAmJiBpc1NhbWVQYXRobmFtZSkge1xuXHRcdFx0XHRwcm9wcy5vbkhhc2hDaGFuZ2UodG8uaGFzaC5zbGljZSgxKSk7XG5cdFx0XHR9XG5cdFx0fTtcblxuXHRcdHJldHVybiAoXG5cdFx0XHQ8TGlua1xuXHRcdFx0XHRvbkNsaWNrPXtvbkNsaWNrfVxuXHRcdFx0XHR0aXRsZT17cHJvcHMudGl0bGUgfHwgdGl0bGV9XG5cdFx0XHRcdHRvPXt0b31cblx0XHRcdFx0PlxuXHRcdFx0XHR7cHJvcHMuY2hpbGRyZW59XG5cdFx0XHQ8L0xpbms+XG5cdFx0KTtcblx0fVxufVxuIl19