react-planner-viewer
Version:
react-planner-viewer is a React Component for view plans builded with react-planner in 2D mode
140 lines (119 loc) • 14.1 kB
JavaScript
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
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 _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }
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 NumericInput from 'react-numeric-input';
import * as SharedStyle from '../../shared-style';
var STYLE_INPUT = {
display: 'block',
width: '100%',
padding: '0 2px',
fontSize: '13px',
lineHeight: '1.25',
color: '#55595c',
backgroundColor: SharedStyle.COLORS.white,
backgroundImage: 'none',
border: '1px solid rgba(0,0,0,.15)',
outline: 'none',
height: '30px'
};
var FormNumberInput = function (_Component) {
_inherits(FormNumberInput, _Component);
function FormNumberInput(props) {
_classCallCheck(this, FormNumberInput);
var _this = _possibleConstructorReturn(this, (FormNumberInput.__proto__ || Object.getPrototypeOf(FormNumberInput)).call(this, props));
_this.state = { focus: false };
return _this;
}
_createClass(FormNumberInput, [{
key: 'onChangeCustom',
value: function onChangeCustom(valueAsNumber, valueAsString, input) {
if (this.refs.realNumber.refs.input.checkValidity()) {
this.props.onChange({ target: { value: valueAsNumber } });
this.onValidCustom(valueAsNumber, valueAsString);
} else {
this.onInvalidCustom(valueAsNumber, valueAsString);
}
}
}, {
key: 'onValidCustom',
value: function onValidCustom(valueAsNumber, valueAsString) {
if (this.refs.realNumber) this.refs.realNumber.refs.input.style.color = STYLE_INPUT.color;
}
}, {
key: 'onInvalidCustom',
value: function onInvalidCustom(error, valueAsNumber, valueAsString) {
if (this.refs.realNumber) this.refs.realNumber.refs.input.style.color = 'red';
}
}, {
key: 'render',
value: function render() {
var _this2 = this;
var _props = this.props,
value = _props.value,
configs = _props.configs,
onChange = _props.onChange,
onValid = _props.onValid,
style = _props.style,
rest = _objectWithoutProperties(_props, ['value', 'configs', 'onChange', 'onValid', 'style']);
var min = configs.min,
max = configs.max,
precision = configs.precision;
var step = 1 / Math.pow(10, precision);
return React.createElement(NumericInput, {
ref: 'realNumber',
onChange: this.onChangeCustom.bind(this),
onInvalid: this.onInvalidCustom.bind(this),
onInput: function onInput(evt) {
return _this2.refs.realNumber.refs.input.style.color = evt.nativeEvent.target.checkValidity() ? STYLE_INPUT.color : 'red';
},
step: step,
precision: precision,
value: value,
type: 'number',
min: min,
max: max,
pattern: '^-?([0-9]+)\.?([0-9]+)?',
style: {
wrap: { width: '100%' },
input: _extends({}, STYLE_INPUT, style, {
border: this.state.focus ? '1px solid #66afe9' : '1px solid rgba(0,0,0,.15)'
})
},
snap: true
});
}
}]);
return FormNumberInput;
}(Component);
export default FormNumberInput;
FormNumberInput.propTypes = {
value: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
style: PropTypes.object,
onChange: PropTypes.func,
onValid: PropTypes.func,
configs: PropTypes.object
};
FormNumberInput.defaultProps = {
value: 0,
style: {},
onChange: function onChange() {
return console.log('onValid instead');
},
onValid: function onValid() {
return console.log('onValid not defined');
},
onInvalid: function onInvalid() {
return console.log('onInvalid not defined');
},
configs: {
min: Number.MIN_SAFE_INTEGER,
max: Number.MAX_SAFE_INTEGER,
precision: 3
}
};
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3N0eWxlL2Zvcm0tbnVtYmVyLWlucHV0LmpzeCJdLCJuYW1lcyI6WyJSZWFjdCIsIkNvbXBvbmVudCIsIlByb3BUeXBlcyIsIk51bWVyaWNJbnB1dCIsIlNoYXJlZFN0eWxlIiwiU1RZTEVfSU5QVVQiLCJkaXNwbGF5Iiwid2lkdGgiLCJwYWRkaW5nIiwiZm9udFNpemUiLCJsaW5lSGVpZ2h0IiwiY29sb3IiLCJiYWNrZ3JvdW5kQ29sb3IiLCJDT0xPUlMiLCJ3aGl0ZSIsImJhY2tncm91bmRJbWFnZSIsImJvcmRlciIsIm91dGxpbmUiLCJoZWlnaHQiLCJGb3JtTnVtYmVySW5wdXQiLCJwcm9wcyIsInN0YXRlIiwiZm9jdXMiLCJ2YWx1ZUFzTnVtYmVyIiwidmFsdWVBc1N0cmluZyIsImlucHV0IiwicmVmcyIsInJlYWxOdW1iZXIiLCJjaGVja1ZhbGlkaXR5Iiwib25DaGFuZ2UiLCJ0YXJnZXQiLCJ2YWx1ZSIsIm9uVmFsaWRDdXN0b20iLCJvbkludmFsaWRDdXN0b20iLCJzdHlsZSIsImVycm9yIiwiY29uZmlncyIsIm9uVmFsaWQiLCJyZXN0IiwibWluIiwibWF4IiwicHJlY2lzaW9uIiwic3RlcCIsIk1hdGgiLCJwb3ciLCJvbkNoYW5nZUN1c3RvbSIsImJpbmQiLCJldnQiLCJuYXRpdmVFdmVudCIsIndyYXAiLCJwcm9wVHlwZXMiLCJvbmVPZlR5cGUiLCJudW1iZXIiLCJzdHJpbmciLCJvYmplY3QiLCJmdW5jIiwiZGVmYXVsdFByb3BzIiwiY29uc29sZSIsImxvZyIsIm9uSW52YWxpZCIsIk51bWJlciIsIk1JTl9TQUZFX0lOVEVHRVIiLCJNQVhfU0FGRV9JTlRFR0VSIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSxPQUFPQSxLQUFQLElBQWVDLFNBQWYsUUFBK0IsT0FBL0I7QUFDQSxPQUFPQyxTQUFQLE1BQXNCLFlBQXRCO0FBQ0EsT0FBT0MsWUFBUCxNQUF5QixxQkFBekI7QUFDQSxPQUFP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QTtBQVVMLGFBQUtDLEdBVkE7QUFXTCxpQkFBUyx5QkFYSjtBQVlMLGVBQ0U7QUFDRVMsZ0JBQU0sRUFBRTFDLE9BQU8sTUFBVCxFQURSO0FBRUVrQiw4QkFDS3BCLFdBREwsRUFFSzZCLEtBRkw7QUFHRWxCLG9CQUFRLEtBQUtLLEtBQUwsQ0FBV0MsS0FBWCxHQUFtQixtQkFBbkIsR0FBeUM7QUFIbkQ7QUFGRixTQWJHO0FBc0JMO0FBdEJLLFFBQVA7QUF3QkQ7Ozs7RUExRDBDckIsUzs7ZUFBeEJrQixlOzs7QUE2RHJCQSxnQkFBZ0IrQixTQUFoQixHQUE0QjtBQUMxQm5CLFNBQU83QixVQUFVaUQsU0FBVixDQUFvQixDQUFDakQsVUFBVWtELE1BQVgsRUFBbUJsRCxVQUFVbUQsTUFBN0IsQ0FBcEIsQ0FEbUI7QUFFMUJuQixTQUFPaEMsVUFBVW9ELE1BRlM7QUFHMUJ6QixZQUFVM0IsVUFBVXFELElBSE07QUFJMUJsQixXQUFTbkMsVUFBVXFELElBSk87QUFLMUJuQixXQUFTbEMsVUFBVW9EO0FBTE8sQ0FBNUI7O0FBUUFuQyxnQkFBZ0JxQyxZQUFoQixHQUErQjtBQUM3QnpCLFNBQU8sQ0FEc0I7QUFFN0JHLFNBQU8sRUFGc0I7QUFHN0JMLFlBQVU7QUFBQSxXQUFNNEIsUUFBUUMsR0FBUixDQUFZLGlCQUFaLENBQU47QUFBQSxHQUhtQjtBQUk3QnJCLFdBQVM7QUFBQSxXQUFNb0IsUUFBUUMsR0FBUixDQUFZLHFCQUFaLENBQU47QUFBQSxHQUpvQjtBQUs3QkMsYUFBVztBQUFBLFdBQU1GLFFBQVFDLEdBQVIsQ0FBWSx1QkFBWixDQUFOO0FBQUEsR0FMa0I7QUFNN0J0QixXQUFTO0FBQ1BHLFNBQUtxQixPQUFPQyxnQkFETDtBQUVQckIsU0FBS29CLE9BQU9FLGdCQUZMO0FBR1ByQixlQUFXO0FBSEo7QUFOb0IsQ0FBL0IiLCJmaWxlIjoiZm9ybS1udW1iZXItaW5wdXQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHtDb21wb25lbnR9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgTnVtZXJpY0lucHV0IGZyb20gJ3JlYWN0LW51bWVyaWMtaW5wdXQnO1xuaW1wb3J0ICogYXMgU2hhcmVkU3R5bGUgZnJvbSAnLi4vLi4vc2hhcmVkLXN0eWxlJztcblxuY29uc3QgU1RZTEVfSU5QVVQgPSB7XG4gIGRpc3BsYXk6ICdibG9jaycsXG4gIHdpZHRoOiAnMTAwJScsXG4gIHBhZGRpbmc6ICcwIDJweCcsXG4gIGZvbnRTaXplOiAnMTNweCcsXG4gIGxpbmVIZWlnaHQ6ICcxLjI1JyxcbiAgY29sb3I6ICcjNTU1OTVjJyxcbiAgYmFja2dyb3VuZENvbG9yOiBTaGFyZWRTdHlsZS5DT0xPUlMud2hpdGUsXG4gIGJhY2tncm91bmRJbWFnZTogJ25vbmUnLFxuICBib3JkZXI6ICcxcHggc29saWQgcmdiYSgwLDAsMCwuMTUpJyxcbiAgb3V0bGluZTogJ25vbmUnLFxuICBoZWlnaHQ6ICczMHB4Jyxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEZvcm1OdW1iZXJJbnB1dCBleHRlbmRzIENvbXBvbmVudCB7XG5cbiAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICBzdXBlcihwcm9wcyk7XG4gICAgdGhpcy5zdGF0ZSA9IHtmb2N1czogZmFsc2V9O1xuICB9XG5cbiAgb25DaGFuZ2VDdXN0b20odmFsdWVBc051bWJlciwgdmFsdWVBc1N0cmluZywgaW5wdXQpIHtcbiAgICBpZiggdGhpcy5yZWZzLnJlYWxOdW1iZXIucmVmcy5pbnB1dC5jaGVja1ZhbGlkaXR5KCkgKVxuICAgIHtcbiAgICAgIHRoaXMucHJvcHMub25DaGFuZ2UoIHsgdGFyZ2V0OiB7IHZhbHVlOiB2YWx1ZUFzTnVtYmVyIH0gfSApO1xuICAgICAgdGhpcy5vblZhbGlkQ3VzdG9tKHZhbHVlQXNOdW1iZXIsIHZhbHVlQXNTdHJpbmcpO1xuICAgIH1cbiAgICBlbHNlXG4gICAge1xuICAgICAgdGhpcy5vbkludmFsaWRDdXN0b20odmFsdWVBc051bWJlciwgdmFsdWVBc1N0cmluZyk7XG4gICAgfVxuICB9XG5cbiAgb25WYWxpZEN1c3RvbSggdmFsdWVBc051bWJlciwgdmFsdWVBc1N0cmluZyApIHtcbiAgICBpZiggdGhpcy5yZWZzLnJlYWxOdW1iZXIpIHRoaXMucmVmcy5yZWFsTnVtYmVyLnJlZnMuaW5wdXQuc3R5bGUuY29sb3IgPSBTVFlMRV9JTlBVVC5jb2xvcjtcblxuICB9XG5cbiAgb25JbnZhbGlkQ3VzdG9tKCBlcnJvciwgdmFsdWVBc051bWJlciwgdmFsdWVBc1N0cmluZyApIHtcbiAgICBpZiggdGhpcy5yZWZzLnJlYWxOdW1iZXIpIHRoaXMucmVmcy5yZWFsTnVtYmVyLnJlZnMuaW5wdXQuc3R5bGUuY29sb3IgPSAncmVkJztcbiAgfVxuXG4gIHJlbmRlcigpIHtcblxuICAgIGxldCB7dmFsdWUsIGNvbmZpZ3MsIG9uQ2hhbmdlLCBvblZhbGlkLCBzdHlsZSwgLi4ucmVzdH0gPSB0aGlzLnByb3BzO1xuICAgIGxldCB7IG1pbiwgbWF4LCBwcmVjaXNpb24gfSA9IGNvbmZpZ3M7XG4gICAgbGV0IHN0ZXAgPSAxIC8gTWF0aC5wb3coMTAsIHByZWNpc2lvbik7XG5cbiAgICByZXR1cm4gPE51bWVyaWNJbnB1dFxuICAgICAgcmVmPVwicmVhbE51bWJlclwiXG4gICAgICBvbkNoYW5nZT17dGhpcy5vbkNoYW5nZUN1c3RvbS5iaW5kKHRoaXMpfVxuICAgICAgb25JbnZhbGlkPXt0aGlzLm9uSW52YWxpZEN1c3RvbS5iaW5kKHRoaXMpfVxuICAgICAgb25JbnB1dD17KGV2dCkgPT4gdGhpcy5yZWZzLnJlYWxOdW1iZXIucmVmcy5pbnB1dC5zdHlsZS5jb2xvciA9IGV2dC5uYXRpdmVFdmVudC50YXJnZXQuY2hlY2tWYWxpZGl0eSgpID8gU1RZTEVfSU5QVVQuY29sb3IgOiAncmVkJyB9XG4gICAgICBzdGVwPXtzdGVwfVxuICAgICAgcHJlY2lzaW9uPXtwcmVjaXNpb259XG4gICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICB0eXBlPXsnbnVtYmVyJ31cbiAgICAgIG1pbj17bWlufVxuICAgICAgbWF4PXttYXh9XG4gICAgICBwYXR0ZXJuPXsnXi0/KFswLTldKylcXC4/KFswLTldKyk/J31cbiAgICAgIHN0eWxlPXtcbiAgICAgICAge1xuICAgICAgICAgIHdyYXA6IHsgd2lkdGg6ICcxMDAlJ30sXG4gICAgICAgICAgaW5wdXQ6IHtcbiAgICAgICAgICAgIC4uLlNUWUxFX0lOUFVULFxuICAgICAgICAgICAgLi4uc3R5bGUsXG4gICAgICAgICAgICBib3JkZXI6IHRoaXMuc3RhdGUuZm9jdXMgPyAnMXB4IHNvbGlkICM2NmFmZTknIDogJzFweCBzb2xpZCByZ2JhKDAsMCwwLC4xNSknXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBzbmFwXG4gICAgLz47XG4gIH1cbn1cblxuRm9ybU51bWJlcklucHV0LnByb3BUeXBlcyA9IHtcbiAgdmFsdWU6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5udW1iZXIsIFByb3BUeXBlcy5zdHJpbmddKSxcbiAgc3R5bGU6IFByb3BUeXBlcy5vYmplY3QsXG4gIG9uQ2hhbmdlOiBQcm9wVHlwZXMuZnVuYyxcbiAgb25WYWxpZDogUHJvcFR5cGVzLmZ1bmMsXG4gIGNvbmZpZ3M6IFByb3BUeXBlcy5vYmplY3Rcbn07XG5cbkZvcm1OdW1iZXJJbnB1dC5kZWZhdWx0UHJvcHMgPSB7XG4gIHZhbHVlOiAwLFxuICBzdHlsZToge30sXG4gIG9uQ2hhbmdlOiAoKSA9PiBjb25zb2xlLmxvZygnb25WYWxpZCBpbnN0ZWFkJyksXG4gIG9uVmFsaWQ6ICgpID0+IGNvbnNvbGUubG9nKCdvblZhbGlkIG5vdCBkZWZpbmVkJyksXG4gIG9uSW52YWxpZDogKCkgPT4gY29uc29sZS5sb2coJ29uSW52YWxpZCBub3QgZGVmaW5lZCcpLFxuICBjb25maWdzOiB7XG4gICAgbWluOiBOdW1iZXIuTUlOX1NBRkVfSU5URUdFUixcbiAgICBtYXg6IE51bWJlci5NQVhfU0FGRV9JTlRFR0VSLFxuICAgIHByZWNpc2lvbjogM1xuICB9XG59O1xuIl19