react-planner-viewer
Version:
react-planner-viewer is a React Component for view plans builded with react-planner in 2D mode
157 lines (137 loc) • 13.6 kB
JavaScript
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
import React, { Component } from 'react';
import PropTypes from 'prop-types';
import { ContentTitle, ContentContainer, FormLabel, FormBlock, FormNumberInput, FormSubmitButton, CancelButton } from '../style/export';
var ProjectConfigurator = function (_Component) {
_inherits(ProjectConfigurator, _Component);
function ProjectConfigurator(props, context) {
_classCallCheck(this, ProjectConfigurator);
var _this = _possibleConstructorReturn(this, (ProjectConfigurator.__proto__ || Object.getPrototypeOf(ProjectConfigurator)).call(this, props, context));
var scene = props.state.scene;
_this.state = {
dataWidth: scene.width,
dataHeight: scene.height
};
return _this;
}
_createClass(ProjectConfigurator, [{
key: 'onSubmit',
value: function onSubmit(event) {
event.preventDefault();
var projectActions = this.context.projectActions;
var _state = this.state,
dataWidth = _state.dataWidth,
dataHeight = _state.dataHeight;
dataWidth = parseInt(dataWidth);
dataHeight = parseInt(dataHeight);
if (dataWidth <= 100 || dataHeight <= 100) {
alert('Scene size too small');
} else {
projectActions.setProjectProperties({ width: dataWidth, height: dataHeight });
}
}
}, {
key: 'render',
value: function render() {
var _this2 = this;
var _props = this.props,
width = _props.width,
height = _props.height;
var _state2 = this.state,
dataWidth = _state2.dataWidth,
dataHeight = _state2.dataHeight;
var _context = this.context,
projectActions = _context.projectActions,
translator = _context.translator;
return React.createElement(
ContentContainer,
{ width: width, height: height },
React.createElement(
ContentTitle,
null,
translator.t('Project config')
),
React.createElement(
'form',
{ onSubmit: function onSubmit(e) {
return _this2.onSubmit(e);
} },
React.createElement(
FormBlock,
null,
React.createElement(
FormLabel,
{ htmlFor: 'width' },
translator.t('width')
),
React.createElement(FormNumberInput, { id: 'width', placeholder: 'width', value: dataWidth,
onChange: function onChange(e) {
return _this2.setState({ dataWidth: e.target.value });
} })
),
React.createElement(
FormBlock,
null,
React.createElement(
FormLabel,
{ htmlFor: 'height' },
translator.t('height')
),
React.createElement(FormNumberInput, { id: 'height', placeholder: 'height', value: dataHeight,
onChange: function onChange(e) {
return _this2.setState({ dataHeight: e.target.value });
} })
),
React.createElement(
'table',
{ style: { float: 'right' } },
React.createElement(
'tbody',
null,
React.createElement(
'tr',
null,
React.createElement(
'td',
null,
React.createElement(
CancelButton,
{ size: 'large',
onClick: function onClick(e) {
return projectActions.rollback();
} },
translator.t('Cancel')
)
),
React.createElement(
'td',
null,
React.createElement(
FormSubmitButton,
{ size: 'large' },
translator.t('Save')
)
)
)
)
)
)
);
}
}]);
return ProjectConfigurator;
}(Component);
export default ProjectConfigurator;
ProjectConfigurator.propTypes = {
width: PropTypes.number.isRequired,
height: PropTypes.number.isRequired,
state: PropTypes.object.isRequired
};
ProjectConfigurator.contextTypes = {
projectActions: PropTypes.object.isRequired,
translator: PropTypes.object.isRequired
};
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2NvbmZpZ3VyYXRvci9wcm9qZWN0LWNvbmZpZ3VyYXRvci5qc3giXSwibmFtZXMiOlsiUmVhY3QiLCJDb21wb25lbnQiLCJQcm9wVHlwZXMiLCJDb250ZW50VGl0bGUiLCJDb250ZW50Q29udGFpbmVyIiwiRm9ybUxhYmVsIiwiRm9ybUJsb2NrIiwiRm9ybU51bWJlcklucHV0IiwiRm9ybVN1Ym1pdEJ1dHRvbiIsIkNhbmNlbEJ1dHRvbiIsIlByb2plY3RDb25maWd1cmF0b3IiLCJwcm9wcyIsImNvbnRleHQiLCJzY2VuZSIsInN0YXRlIiwiZGF0YVdpZHRoIiwid2lkdGgiLCJkYXRhSGVpZ2h0IiwiaGVpZ2h0IiwiZXZlbnQiLCJwcmV2ZW50RGVmYXVsdCIsInByb2plY3RBY3Rpb25zIiwicGFyc2VJbnQiLCJhbGVydCIsInNldFByb2plY3RQcm9wZXJ0aWVzIiwidHJhbnNsYXRvciIsInQiLCJvblN1Ym1pdCIsImUiLCJzZXRTdGF0ZSIsInRhcmdldCIsInZhbHVlIiwiZmxvYXQiLCJyb2xsYmFjayIsInByb3BUeXBlcyIsIm51bWJlciIsImlzUmVxdWlyZWQiLCJvYmplY3QiLCJjb250ZXh0VHlwZXMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUEsT0FBT0EsS0FBUCxJQUFlQyxTQUFmLFFBQStCLE9BQS9CO0FBQ0EsT0FBT0MsU0FBUCxNQUFzQixZQUF0QjtBQUNBLFNBQ0VDLFlBREYsRUFFRUMsZ0JBRkYsRUFHRUMsU0FIRixFQUlFQyxTQUpGLEVBS0VDLGVBTEYsRUFNRUMsZ0JBTkYsRUFPRUMsWUFQRixRQVFPLGlCQVJQOztJQVVxQkMsbUI7OztBQUVuQiwrQkFBWUMsS0FBWixFQUFtQkMsT0FBbkIsRUFBNEI7QUFBQTs7QUFBQSwwSUFDcEJELEtBRG9CLEVBQ2JDLE9BRGE7O0FBRzFCLFFBQUlDLFFBQVFGLE1BQU1HLEtBQU4sQ0FBWUQsS0FBeEI7O0FBRUEsVUFBS0MsS0FBTCxHQUFhO0FBQ1hDLGlC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QXNFckJBLG9CQUFvQndCLFNBQXBCLEdBQWdDO0FBQzlCbEIsU0FBT2QsVUFBVWlDLE1BQVYsQ0FBaUJDLFVBRE07QUFFOUJsQixVQUFRaEIsVUFBVWlDLE1BQVYsQ0FBaUJDLFVBRks7QUFHOUJ0QixTQUFPWixVQUFVbUMsTUFBVixDQUFpQkQ7QUFITSxDQUFoQzs7QUFNQTFCLG9CQUFvQjRCLFlBQXBCLEdBQW1DO0FBQ2pDakIsa0JBQWdCbkIsVUFBVW1DLE1BQVYsQ0FBaUJELFVBREE7QUFFakNYLGNBQVl2QixVQUFVbUMsTUFBVixDQUFpQkQ7QUFGSSxDQUFuQyIsImZpbGUiOiJwcm9qZWN0LWNvbmZpZ3VyYXRvci5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwge0NvbXBvbmVudH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCB7XG4gIENvbnRlbnRUaXRsZSxcbiAgQ29udGVudENvbnRhaW5lcixcbiAgRm9ybUxhYmVsLFxuICBGb3JtQmxvY2ssXG4gIEZvcm1OdW1iZXJJbnB1dCxcbiAgRm9ybVN1Ym1pdEJ1dHRvbixcbiAgQ2FuY2VsQnV0dG9uXG59IGZyb20gJy4uL3N0eWxlL2V4cG9ydCc7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFByb2plY3RDb25maWd1cmF0b3IgZXh0ZW5kcyBDb21wb25lbnQge1xuXG4gIGNvbnN0cnVjdG9yKHByb3BzLCBjb250ZXh0KSB7XG4gICAgc3VwZXIocHJvcHMsIGNvbnRleHQpO1xuXG4gICAgbGV0IHNjZW5lID0gcHJvcHMuc3RhdGUuc2NlbmU7XG5cbiAgICB0aGlzLnN0YXRlID0ge1xuICAgICAgZGF0YVdpZHRoOiBzY2VuZS53aWR0aCxcbiAgICAgIGRhdGFIZWlnaHQ6IHNjZW5lLmhlaWdodCxcbiAgICB9O1xuICB9XG5cbiAgb25TdWJtaXQoZXZlbnQpIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgbGV0IHtwcm9qZWN0QWN0aW9uc30gPSB0aGlzLmNvbnRleHQ7XG5cbiAgICBsZXQge2RhdGFXaWR0aCwgZGF0YUhlaWdodH0gPSB0aGlzLnN0YXRlO1xuICAgIGRhdGFXaWR0aCA9IHBhcnNlSW50KGRhdGFXaWR0aCk7XG4gICAgZGF0YUhlaWdodCA9IHBhcnNlSW50KGRhdGFIZWlnaHQpO1xuICAgIGlmIChkYXRhV2lkdGggPD0gMTAwIHx8IGRhdGFIZWlnaHQgPD0gMTAwKSB7XG4gICAgICBhbGVydCgnU2NlbmUgc2l6ZSB0b28gc21hbGwnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcHJvamVjdEFjdGlvbnMuc2V0UHJvamVjdFByb3BlcnRpZXMoe3dpZHRoOiBkYXRhV2lkdGgsIGhlaWdodDogZGF0YUhlaWdodH0pO1xuICAgIH1cbiAgfVxuXG5cbiAgcmVuZGVyKCkge1xuICAgIGxldCB7d2lkdGgsIGhlaWdodH0gPSB0aGlzLnByb3BzO1xuICAgIGxldCB7ZGF0YVdpZHRoLCBkYXRhSGVpZ2h0fSA9IHRoaXMuc3RhdGU7XG4gICAgbGV0IHtwcm9qZWN0QWN0aW9ucywgdHJhbnNsYXRvcn0gPSB0aGlzLmNvbnRleHQ7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPENvbnRlbnRDb250YWluZXIgd2lkdGg9e3dpZHRofSBoZWlnaHQ9e2hlaWdodH0+XG4gICAgICAgIDxDb250ZW50VGl0bGU+e3RyYW5zbGF0b3IudCgnUHJvamVjdCBjb25maWcnKX08L0NvbnRlbnRUaXRsZT5cblxuICAgICAgICA8Zm9ybSBvblN1Ym1pdD17ZSA9PiB0aGlzLm9uU3VibWl0KGUpfT5cbiAgICAgICAgICA8Rm9ybUJsb2NrPlxuICAgICAgICAgICAgPEZvcm1MYWJlbCBodG1sRm9yPSd3aWR0aCc+e3RyYW5zbGF0b3IudCgnd2lkdGgnKX08L0Zvcm1MYWJlbD5cbiAgICAgICAgICAgIDxGb3JtTnVtYmVySW5wdXQgaWQ9J3dpZHRoJyBwbGFjZWhvbGRlcj0nd2lkdGgnIHZhbHVlPXtkYXRhV2lkdGh9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtlID0+IHRoaXMuc2V0U3RhdGUoe2RhdGFXaWR0aDogZS50YXJnZXQudmFsdWV9KX0vPlxuICAgICAgICAgIDwvRm9ybUJsb2NrPlxuXG4gICAgICAgICAgPEZvcm1CbG9jaz5cbiAgICAgICAgICAgIDxGb3JtTGFiZWwgaHRtbEZvcj0naGVpZ2h0Jz57dHJhbnNsYXRvci50KCdoZWlnaHQnKX08L0Zvcm1MYWJlbD5cbiAgICAgICAgICAgIDxGb3JtTnVtYmVySW5wdXQgaWQ9J2hlaWdodCcgcGxhY2Vob2xkZXI9J2hlaWdodCcgdmFsdWU9e2RhdGFIZWlnaHR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtlID0+IHRoaXMuc2V0U3RhdGUoe2RhdGFIZWlnaHQ6IGUudGFyZ2V0LnZhbHVlfSl9Lz5cbiAgICAgICAgICA8L0Zvcm1CbG9jaz5cblxuICAgICAgICAgIDx0YWJsZSBzdHlsZT17e2Zsb2F0OiAncmlnaHQnfX0+XG4gICAgICAgICAgICA8dGJvZHk+XG4gICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgIDx0ZD5cbiAgICAgICAgICAgICAgICA8Q2FuY2VsQnV0dG9uIHNpemU9J2xhcmdlJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17ZSA9PiBwcm9qZWN0QWN0aW9ucy5yb2xsYmFjaygpfT57dHJhbnNsYXRvci50KCdDYW5jZWwnKX08L0NhbmNlbEJ1dHRvbj5cbiAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgPHRkPlxuICAgICAgICAgICAgICAgIDxGb3JtU3VibWl0QnV0dG9uIHNpemU9J2xhcmdlJz57dHJhbnNsYXRvci50KCdTYXZlJyl9PC9Gb3JtU3VibWl0QnV0dG9uPlxuICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgIDwvdGJvZHk+XG4gICAgICAgICAgPC90YWJsZT5cbiAgICAgICAgPC9mb3JtPlxuICAgICAgPC9Db250ZW50Q29udGFpbmVyPlxuICAgIClcbiAgfVxufVxuXG5Qcm9qZWN0Q29uZmlndXJhdG9yLnByb3BUeXBlcyA9IHtcbiAgd2lkdGg6IFByb3BUeXBlcy5udW1iZXIuaXNSZXF1aXJlZCxcbiAgaGVpZ2h0OiBQcm9wVHlwZXMubnVtYmVyLmlzUmVxdWlyZWQsXG4gIHN0YXRlOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG59O1xuXG5Qcm9qZWN0Q29uZmlndXJhdG9yLmNvbnRleHRUeXBlcyA9IHtcbiAgcHJvamVjdEFjdGlvbnM6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgdHJhbnNsYXRvcjogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxufTtcbiJdfQ==