UNPKG

patternplate-client

Version:

Universal javascript client application for patternplate

145 lines (112 loc) 11.1 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, _class2, _temp; var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _autobindDecorator = require('autobind-decorator'); var _autobindDecorator2 = _interopRequireDefault(_autobindDecorator); var _querystring = require('querystring'); var _querystring2 = _interopRequireDefault(_querystring); var _connection = require('./connection'); var _connection2 = _interopRequireDefault(_connection); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var Block = (0, _autobindDecorator2.default)(_class = (_temp = _class2 = function (_Component) { (0, _inherits3.default)(Block, _Component); function Block() { (0, _classCallCheck3.default)(this, Block); return (0, _possibleConstructorReturn3.default)(this, (Block.__proto__ || (0, _getPrototypeOf2.default)(Block)).apply(this, arguments)); } (0, _createClass3.default)(Block, [{ key: 'handleClick', value: function handleClick(e) { e.preventDefault(); this.props.onClick(this.props); } }, { key: 'render', value: function render() { var props = this.props; var location = props.location, base = props.base; var className = 'pattern-dependencies__' + props.type; var orientation = props.x < 50 ? 1 : 0; var onMouseEnter = function onMouseEnter() { return props.onMouseEnter(props.blockId); }; var onMouseLeave = function onMouseLeave() { return props.onMouseLeave(props.blockId); }; var block = { x: props.x + props.width * orientation, y: props.y + props.height / 2 }; var target = props.connect; var from = orientation === 1 ? block : target; var to = orientation === 1 ? target : block; var textX = props.type === 'root' ? 50 : props.x + props.width / 2; var textY = props.y + props.height / 2; var href = [base + 'pattern/' + props.id, _querystring2.default.stringify(location.query)].join('?'); return _react2.default.createElement( 'g', { className: 'block-group', onMouseEnter: onMouseEnter, onMouseLeave: onMouseLeave }, _react2.default.createElement( 'a', { xlinkHref: href, className: className }, _react2.default.createElement('rect', { className: className, x: props.x, y: props.y, width: props.width, height: props.height, onClick: this.handleClick }) ), props.connect && _react2.default.createElement(_connection2.default, { labels: [props.id, props.localName], from: from, to: to, n: target.n || 20 }), props.name && _react2.default.createElement( 'a', { xlinkHref: href }, _react2.default.createElement( 'text', { x: textX, y: textY, width: props.width, height: props.height, className: 'block-name' }, props.name ) ) ); } }]); return Block; }(_react.Component), _class2.defaultProps = { type: 'block', width: 8, height: 8, onClick: function onClick() {}, onMouseEnter: function onMouseEnter() {}, onMouseLeave: function onMouseLeave() {} }, _temp)) || _class; exports.default = Block; module.exports = exports['default']; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NvdXJjZS9hcHBsaWNhdGlvbi9jb21wb25lbnRzL3BhdHRlcm4vYmxvY2suanMiXSwibmFtZXMiOlsiQmxvY2siLCJlIiwicHJldmVudERlZmF1bHQiLCJwcm9wcyIsIm9uQ2xpY2siLCJsb2NhdGlvbiIsImJhc2UiLCJjbGFzc05hbWUiLCJ0eXBlIiwib3JpZW50YXRpb24iLCJ4Iiwib25Nb3VzZUVudGVyIiwiYmxvY2tJZCIsIm9uTW91c2VMZWF2ZSIsImJsb2NrIiwid2lkdGgiLCJ5IiwiaGVpZ2h0IiwidGFyZ2V0IiwiY29ubmVjdCIsImZyb20iLCJ0byIsInRleHRYIiwidGV4dFkiLCJocmVmIiwiaWQiLCJzdHJpbmdpZnkiLCJxdWVyeSIsImpvaW4iLCJoYW5kbGVDbGljayIsImxvY2FsTmFtZSIsIm4iLCJuYW1lIiwiZGVmYXVsdFByb3BzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7Ozs7SUFHcUJBLEs7Ozs7Ozs7Ozs7OEJBK0JSQyxDLEVBQUc7QUFDZEEsS0FBRUMsY0FBRjtBQUNBLFFBQUtDLEtBQUwsQ0FBV0MsT0FBWCxDQUFtQixLQUFLRCxLQUF4QjtBQUNBOzs7MkJBRVE7QUFBQSxPQUNEQSxLQURDLEdBQ1EsSUFEUixDQUNEQSxLQURDO0FBQUEsT0FFREUsUUFGQyxHQUVpQkYsS0FGakIsQ0FFREUsUUFGQztBQUFBLE9BRVNDLElBRlQsR0FFaUJILEtBRmpCLENBRVNHLElBRlQ7O0FBR1IsT0FBTUMsdUNBQXFDSixNQUFNSyxJQUFqRDtBQUNBLE9BQU1DLGNBQWNOLE1BQU1PLENBQU4sR0FBVSxFQUFWLEdBQWUsQ0FBZixHQUFtQixDQUF2Qzs7QUFFQSxPQUFNQyxlQUFlLFNBQWZBLFlBQWU7QUFBQSxXQUFNUixNQUFNUSxZQUFOLENBQW1CUixNQUFNUyxPQUF6QixDQUFOO0FBQUEsSUFBckI7QUFDQSxPQUFNQyxlQUFlLFNBQWZBLFlBQWU7QUFBQSxXQUFNVixNQUFNVSxZQUFOLENBQW1CVixNQUFNUyxPQUF6QixDQUFOO0FBQUEsSUFBckI7O0FBRUEsT0FBTUUsUUFBUTtBQUNiSixPQUFHUCxNQUFNTyxDQUFOLEdBQVVQLE1BQU1ZLEtBQU4sR0FBY04sV0FEZDtBQUViTyxPQUFHYixNQUFNYSxDQUFOLEdBQVdiLE1BQU1jLE1BQU4sR0FBZTtBQUZoQixJQUFkOztBQUtBLE9BQU1DLFNBQVNmLE1BQU1nQixPQUFyQjs7QUFFQSxPQUFNQyxPQUFPWCxnQkFBZ0IsQ0FBaEIsR0FBb0JLLEtBQXBCLEdBQTRCSSxNQUF6QztBQUNBLE9BQU1HLEtBQUtaLGdCQUFnQixDQUFoQixHQUFvQlMsTUFBcEIsR0FBNkJKLEtBQXhDOztBQUVBLE9BQU1RLFFBQVFuQixNQUFNSyxJQUFOLEtBQWUsTUFBZixHQUF3QixFQUF4QixHQUE2QkwsTUFBTU8sQ0FBTixHQUFVUCxNQUFNWSxLQUFOLEdBQWMsQ0FBbkU7QUFDQSxPQUFNUSxRQUFRcEIsTUFBTWEsQ0FBTixHQUFVYixNQUFNYyxNQUFOLEdBQWUsQ0FBdkM7O0FBRUEsT0FBTU8sT0FBTyxDQUNUbEIsSUFEUyxnQkFDTUgsTUFBTXNCLEVBRFosRUFFWixzQkFBWUMsU0FBWixDQUFzQnJCLFNBQVNzQixLQUEvQixDQUZZLEVBR1hDLElBSFcsQ0FHTixHQUhNLENBQWI7O0FBS0EsVUFDQztBQUFBO0FBQUEsTUFBRyxXQUFVLGFBQWIsRUFBMkIsY0FBY2pCLFlBQXpDLEVBQXVELGNBQWNFLFlBQXJFO0FBQ0M7QUFBQTtBQUFBLE9BQUcsV0FBV1csSUFBZCxFQUFvQixXQUFXakIsU0FBL0I7QUFDQztBQUNDLGlCQUFXQSxTQURaO0FBRUMsU0FBR0osTUFBTU8sQ0FGVjtBQUdDLFNBQUdQLE1BQU1hLENBSFY7QUFJQyxhQUFPYixNQUFNWSxLQUpkO0FBS0MsY0FBUVosTUFBTWMsTUFMZjtBQU1DLGVBQVMsS0FBS1k7QUFOZjtBQURELEtBREQ7QUFZRTFCLFVBQU1nQixPQUFOLElBQ0M7QUFDQyxhQUFRLENBQUNoQixNQUFNc0IsRUFBUCxFQUFXdEIsTUFBTTJCLFNBQWpCLENBRFQ7QUFFQyxXQUFNVixJQUZQO0FBR0MsU0FBSUMsRUFITDtBQUlDLFFBQUdILE9BQU9hLENBQVAsSUFBWTtBQUpoQixNQWJIO0FBcUJFNUIsVUFBTTZCLElBQU4sSUFDQztBQUFBO0FBQUEsT0FBRyxXQUFXUixJQUFkO0FBQ0M7QUFBQTtBQUFBO0FBQ0MsVUFBR0YsS0FESjtBQUVDLFVBQUdDLEtBRko7QUFHQyxjQUFPcEIsTUFBTVksS0FIZDtBQUlDLGVBQVFaLE1BQU1jLE1BSmY7QUFLQyxrQkFBVTtBQUxYO0FBT0VkLFlBQU02QjtBQVBSO0FBREQ7QUF0QkgsSUFERDtBQXFDQTs7OzZCQTlFTUMsWSxHQUFlO0FBQ3JCekIsT0FBTSxPQURlO0FBRXJCTyxRQUFPLENBRmM7QUFHckJFLFNBQVEsQ0FIYTtBQUlyQmIsVUFBUyxtQkFBTSxDQUFFLENBSkk7QUFLckJPLGVBQWMsd0JBQU0sQ0FBRSxDQUxEO0FBTXJCRSxlQUFjLHdCQUFNLENBQUU7QUFORCxDOztrQkF0QkZiLEsiLCJmaWxlIjoiYmxvY2suanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHtQcm9wVHlwZXMgYXMgdCwgQ29tcG9uZW50fSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgYXV0b2JpbmQgZnJvbSAnYXV0b2JpbmQtZGVjb3JhdG9yJztcbmltcG9ydCBxdWVyeXN0cmluZyBmcm9tICdxdWVyeXN0cmluZyc7XG5pbXBvcnQgQ29ubmVjdGlvbiBmcm9tICcuL2Nvbm5lY3Rpb24nO1xuXG5AYXV0b2JpbmRcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEJsb2NrIGV4dGVuZHMgQ29tcG9uZW50IHtcblx0c3RhdGljIHByb3BUeXBlcyA9IHtcblx0XHRiYXNlOiB0LnN0cmluZy5pc1JlcXVpcmVkLFxuXHRcdG5hbWU6IHQuc3RyaW5nLmlzUmVxdWlyZWQsXG5cdFx0aWQ6IHQuc3RyaW5nLmlzUmVxdWlyZWQsXG5cdFx0dHlwZTogdC5zdHJpbmcuaXNSZXF1aXJlZCxcblx0XHR4OiB0Lm9uZU9mVHlwZShbdC5zdHJpbmcsIHQubnVtYmVyXSkuaXNSZXF1aXJlZCxcblx0XHR5OiB0Lm9uZU9mVHlwZShbdC5zdHJpbmcsIHQubnVtYmVyXSkuaXNSZXF1aXJlZCxcblx0XHR3aWR0aDogdC5udW1iZXIuaXNSZXF1aXJlZCxcblx0XHRoZWlnaHQ6IHQubnVtYmVyLmlzUmVxdWlyZWQsXG5cdFx0Y29ubmVjdDogdC5zaGFwZSh7XG5cdFx0XHR4OiB0Lm9uZU9mVHlwZShbdC5zdHJpbmcsIHQubnVtYmVyXSkuaXNSZXF1aXJlZCxcblx0XHRcdHk6IHQub25lT2ZUeXBlKFt0LnN0cmluZywgdC5udW1iZXJdKS5pc1JlcXVpcmVkLFxuXHRcdFx0bjogdC5udW1iZXJcblx0XHR9KSxcblx0XHRvbkNsaWNrOiB0LmZ1bmMuaXNSZXF1aXJlZCxcblx0XHRsb2NhdGlvbjogdC5zaGFwZSh7XG5cdFx0XHRwYXRobmFtZTogdC5zdHJpbmcsXG5cdFx0XHRxdWVyeTogdC5hbnlcblx0XHR9KS5pc1JlcXVpcmVkXG5cdH07XG5cblx0c3RhdGljIGRlZmF1bHRQcm9wcyA9IHtcblx0XHR0eXBlOiAnYmxvY2snLFxuXHRcdHdpZHRoOiA4LFxuXHRcdGhlaWdodDogOCxcblx0XHRvbkNsaWNrOiAoKSA9PiB7fSxcblx0XHRvbk1vdXNlRW50ZXI6ICgpID0+IHt9LFxuXHRcdG9uTW91c2VMZWF2ZTogKCkgPT4ge31cblx0fTtcblxuXHRoYW5kbGVDbGljayhlKSB7XG5cdFx0ZS5wcmV2ZW50RGVmYXVsdCgpO1xuXHRcdHRoaXMucHJvcHMub25DbGljayh0aGlzLnByb3BzKTtcblx0fVxuXG5cdHJlbmRlcigpIHtcblx0XHRjb25zdCB7cHJvcHN9ID0gdGhpcztcblx0XHRjb25zdCB7bG9jYXRpb24sIGJhc2V9ID0gcHJvcHM7XG5cdFx0Y29uc3QgY2xhc3NOYW1lID0gYHBhdHRlcm4tZGVwZW5kZW5jaWVzX18ke3Byb3BzLnR5cGV9YDtcblx0XHRjb25zdCBvcmllbnRhdGlvbiA9IHByb3BzLnggPCA1MCA/IDEgOiAwO1xuXG5cdFx0Y29uc3Qgb25Nb3VzZUVudGVyID0gKCkgPT4gcHJvcHMub25Nb3VzZUVudGVyKHByb3BzLmJsb2NrSWQpO1xuXHRcdGNvbnN0IG9uTW91c2VMZWF2ZSA9ICgpID0+IHByb3BzLm9uTW91c2VMZWF2ZShwcm9wcy5ibG9ja0lkKTtcblxuXHRcdGNvbnN0IGJsb2NrID0ge1xuXHRcdFx0eDogcHJvcHMueCArIHByb3BzLndpZHRoICogb3JpZW50YXRpb24sXG5cdFx0XHR5OiBwcm9wcy55ICsgKHByb3BzLmhlaWdodCAvIDIpXG5cdFx0fTtcblxuXHRcdGNvbnN0IHRhcmdldCA9IHByb3BzLmNvbm5lY3Q7XG5cblx0XHRjb25zdCBmcm9tID0gb3JpZW50YXRpb24gPT09IDEgPyBibG9jayA6IHRhcmdldDtcblx0XHRjb25zdCB0byA9IG9yaWVudGF0aW9uID09PSAxID8gdGFyZ2V0IDogYmxvY2s7XG5cblx0XHRjb25zdCB0ZXh0WCA9IHByb3BzLnR5cGUgPT09ICdyb290JyA/IDUwIDogcHJvcHMueCArIHByb3BzLndpZHRoIC8gMjtcblx0XHRjb25zdCB0ZXh0WSA9IHByb3BzLnkgKyBwcm9wcy5oZWlnaHQgLyAyO1xuXG5cdFx0Y29uc3QgaHJlZiA9IFtcblx0XHRcdGAke2Jhc2V9cGF0dGVybi8ke3Byb3BzLmlkfWAsXG5cdFx0XHRxdWVyeXN0cmluZy5zdHJpbmdpZnkobG9jYXRpb24ucXVlcnkpXG5cdFx0XS5qb2luKCc/Jyk7XG5cblx0XHRyZXR1cm4gKFxuXHRcdFx0PGcgY2xhc3NOYW1lPVwiYmxvY2stZ3JvdXBcIiBvbk1vdXNlRW50ZXI9e29uTW91c2VFbnRlcn0gb25Nb3VzZUxlYXZlPXtvbk1vdXNlTGVhdmV9PlxuXHRcdFx0XHQ8YSB4bGlua0hyZWY9e2hyZWZ9IGNsYXNzTmFtZT17Y2xhc3NOYW1lfT5cblx0XHRcdFx0XHQ8cmVjdFxuXHRcdFx0XHRcdFx0Y2xhc3NOYW1lPXtjbGFzc05hbWV9XG5cdFx0XHRcdFx0XHR4PXtwcm9wcy54fVxuXHRcdFx0XHRcdFx0eT17cHJvcHMueX1cblx0XHRcdFx0XHRcdHdpZHRoPXtwcm9wcy53aWR0aH1cblx0XHRcdFx0XHRcdGhlaWdodD17cHJvcHMuaGVpZ2h0fVxuXHRcdFx0XHRcdFx0b25DbGljaz17dGhpcy5oYW5kbGVDbGlja31cblx0XHRcdFx0XHRcdC8+XG5cdFx0XHRcdDwvYT5cblx0XHRcdFx0e1xuXHRcdFx0XHRcdHByb3BzLmNvbm5lY3QgJiZcblx0XHRcdFx0XHRcdDxDb25uZWN0aW9uXG5cdFx0XHRcdFx0XHRcdGxhYmVscz17W3Byb3BzLmlkLCBwcm9wcy5sb2NhbE5hbWVdfVxuXHRcdFx0XHRcdFx0XHRmcm9tPXtmcm9tfVxuXHRcdFx0XHRcdFx0XHR0bz17dG99XG5cdFx0XHRcdFx0XHRcdG49e3RhcmdldC5uIHx8IDIwfVxuXHRcdFx0XHRcdFx0XHQvPlxuXHRcdFx0XHR9XG5cdFx0XHRcdHtcblx0XHRcdFx0XHRwcm9wcy5uYW1lICYmXG5cdFx0XHRcdFx0XHQ8YSB4bGlua0hyZWY9e2hyZWZ9PlxuXHRcdFx0XHRcdFx0XHQ8dGV4dFxuXHRcdFx0XHRcdFx0XHRcdHg9e3RleHRYfVxuXHRcdFx0XHRcdFx0XHRcdHk9e3RleHRZfVxuXHRcdFx0XHRcdFx0XHRcdHdpZHRoPXtwcm9wcy53aWR0aH1cblx0XHRcdFx0XHRcdFx0XHRoZWlnaHQ9e3Byb3BzLmhlaWdodH1cblx0XHRcdFx0XHRcdFx0XHRjbGFzc05hbWU9XCJibG9jay1uYW1lXCJcblx0XHRcdFx0XHRcdFx0XHQ+XG5cdFx0XHRcdFx0XHRcdFx0e3Byb3BzLm5hbWV9XG5cdFx0XHRcdFx0XHRcdDwvdGV4dD5cblx0XHRcdFx0XHRcdDwvYT5cblx0XHRcdFx0fVxuXHRcdFx0PC9nPlxuXHRcdCk7XG5cdH1cbn1cbiJdfQ==