UNPKG

react-planner-viewer

Version:

react-planner-viewer is a React Component for view plans builded with react-planner in 2D mode

158 lines (131 loc) 12.7 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = PropertyLengthMeasure; var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _propTypes = require('prop-types'); var _propTypes2 = _interopRequireDefault(_propTypes); var _constants = require('./../../constants'); var _convertUnits = require('convert-units'); var _convertUnits2 = _interopRequireDefault(_convertUnits); var _export = require('../../components/style/export'); var _immutable = require('immutable'); var _math = require('../../utils/math'); var _sharedPropertyStyle = require('./shared-property-style'); var _sharedPropertyStyle2 = _interopRequireDefault(_sharedPropertyStyle); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 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; } var internalTableStyle = { borderCollapse: 'collapse' }; var secondTdStyle = { padding: 0 }; var unitContainerStyle = { width: '5em' }; function PropertyLengthMeasure(_ref, _ref2) { var value = _ref.value, onUpdate = _ref.onUpdate, onValid = _ref.onValid, configs = _ref.configs, sourceElement = _ref.sourceElement, internalState = _ref.internalState, state = _ref.state; var catalog = _ref2.catalog; var length = value.get('length') || 0; var _length = value.get('_length') || length; var _unit = value.get('_unit') || _constants.UNIT_CENTIMETER; var hook = configs.hook, label = configs.label, configRest = _objectWithoutProperties(configs, ['hook', 'label']); var update = function update(lengthInput, unitInput) { var newLength = (0, _math.toFixedFloat)(lengthInput); var merged = value.merge({ length: unitInput !== _constants.UNIT_CENTIMETER ? (0, _convertUnits2.default)(newLength).from(unitInput).to(_constants.UNIT_CENTIMETER) : newLength, _length: lengthInput, _unit: unitInput }); if (hook) { return hook(merged, sourceElement, internalState, state).then(function (val) { return onUpdate(val); }); } return onUpdate(merged); }; return _react2.default.createElement( 'table', { className: 'PropertyLengthMeasure', style: _sharedPropertyStyle2.default.tableStyle }, _react2.default.createElement( 'tbody', null, _react2.default.createElement( 'tr', null, _react2.default.createElement( 'td', { style: _sharedPropertyStyle2.default.firstTdStyle }, _react2.default.createElement( _export.FormLabel, null, label ) ), _react2.default.createElement( 'td', { style: secondTdStyle }, _react2.default.createElement( 'table', { style: internalTableStyle }, _react2.default.createElement( 'tbody', null, _react2.default.createElement( 'tr', null, _react2.default.createElement( 'td', null, _react2.default.createElement(_export.FormNumberInput, { value: _length, onChange: function onChange(event) { return update(event.target.value, _unit); }, onValid: onValid, configs: configs }) ), _react2.default.createElement( 'td', { style: unitContainerStyle }, _react2.default.createElement( _export.FormSelect, { value: _unit, onChange: function onChange(event) { return update(_length, event.target.value); } }, _constants.UNITS_LENGTH.map(function (el) { return _react2.default.createElement( 'option', { key: el, value: el }, el ); }) ) ) ) ) ) ) ) ) ); } PropertyLengthMeasure.propTypes = { value: _propTypes2.default.instanceOf(_immutable.Map).isRequired, onUpdate: _propTypes2.default.func.isRequired, onValid: _propTypes2.default.func, configs: _propTypes2.default.object.isRequired, sourceElement: _propTypes2.default.object, internalState: _propTypes2.default.object, state: _propTypes2.default.object.isRequired }; PropertyLengthMeasure.contextTypes = { catalog: _propTypes2.default.object.isRequired }; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jYXRhbG9nL3Byb3BlcnRpZXMvcHJvcGVydHktbGVuZ2h0LW1lYXN1cmUuanN4Il0sIm5hbWVzIjpbIlByb3BlcnR5TGVuZ3RoTWVhc3VyZSIsImludGVybmFsVGFibGVTdHlsZSIsImJvcmRlckNvbGxhcHNlIiwic2Vjb25kVGRTdHlsZSIsInBhZGRpbmciLCJ1bml0Q29udGFpbmVyU3R5bGUiLCJ3aWR0aCIsInZhbHVlIiwib25VcGRhdGUiLCJvblZhbGlkIiwiY29uZmlncyIsInNvdXJjZUVsZW1lbnQiLCJpbnRlcm5hbFN0YXRlIiwic3RhdGUiLCJjYXRhbG9nIiwibGVuZ3RoIiwiZ2V0IiwiX2xlbmd0aCIsIl91bml0IiwiaG9vayIsImxhYmVsIiwiY29uZmlnUmVzdCIsInVwZGF0ZSIsImxlbmd0aElucHV0IiwidW5pdElucHV0IiwibmV3TGVuZ3RoIiwibWVyZ2VkIiwibWVyZ2UiLCJmcm9tIiwidG8iLCJ0aGVuIiwidmFsIiwidGFibGVTdHlsZSIsImZpcnN0VGRTdHlsZSIsImV2ZW50IiwidGFyZ2V0IiwibWFwIiwiZWwiLCJwcm9wVHlwZXMiLCJpbnN0YW5jZU9mIiwiaXNSZXF1aXJlZCIsImZ1bmMiLCJvYmplY3QiLCJjb250ZXh0VHlwZXMiXSwibWFwcGluZ3MiOiI7Ozs7O2tCQWF3QkEscUI7O0FBYnhCOzs7O0FBQ0E7Ozs7QUFDQTs7QUFDQTs7OztBQUNBOztBQUNBOztBQUNBOztBQUNBOzs7Ozs7OztBQUVBLElBQU1DLHFCQUFxQixFQUFDQyxnQkFBZ0IsVUFBakIsRUFBM0I7QUFDQSxJQUFNQyxnQkFBZ0IsRUFBQ0MsU0FBUyxDQUFWLEVBQXRCO0FBQ0EsSUFBTUMscUJBQXFCLEVBQUNDLE9BQU8sS0FBUixFQUEzQjs7QUFFZSxTQUFTTixxQkFBVCxjQUFvSDtBQUFBLE1BQXBGTyxLQUFvRixRQUFwRkEsS0FBb0Y7QUFBQSxNQUE3RUMsUUFBNkUsUUFBN0VBLFFBQTZFO0FBQUEsTUFBbkVDLE9BQW1FLFFBQW5F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VUFKTTtBQUtoQzdCLGlCQUFlLG9CQUFVK0IsTUFMTztBQU1oQzlCLGlCQUFlLG9CQUFVOEIsTUFOTztBQU9oQzdCLFNBQU8sb0JBQVU2QixNQUFWLENBQWlCRjtBQVBRLENBQWxDOztBQVVBeEMsc0JBQXNCMkMsWUFBdEIsR0FBcUM7QUFDbkM3QixXQUFTLG9CQUFVNEIsTUFBVixDQUFpQkY7QUFEUyxDQUFyQyIsImZpbGUiOiJwcm9wZXJ0eS1sZW5naHQtbWVhc3VyZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHtVTklUU19MRU5HVEgsIFVOSVRfQ0VOVElNRVRFUn0gZnJvbSAnLi8uLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IGNvbnZlcnQgZnJvbSAnY29udmVydC11bml0cyc7XG5pbXBvcnQgeyBGb3JtTGFiZWwsIEZvcm1OdW1iZXJJbnB1dCwgRm9ybVNlbGVjdCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvc3R5bGUvZXhwb3J0JztcbmltcG9ydCB7TWFwfSBmcm9tICdpbW11dGFibGUnO1xuaW1wb3J0IHt0b0ZpeGVkRmxvYXR9IGZyb20gJy4uLy4uL3V0aWxzL21hdGgnO1xuaW1wb3J0IFByb3BlcnR5U3R5bGUgZnJvbSAnLi9zaGFyZWQtcHJvcGVydHktc3R5bGUnO1xuXG5jb25zdCBpbnRlcm5hbFRhYmxlU3R5bGUgPSB7Ym9yZGVyQ29sbGFwc2U6ICdjb2xsYXBzZSd9O1xuY29uc3Qgc2Vjb25kVGRTdHlsZSA9IHtwYWRkaW5nOiAwfTtcbmNvbnN0IHVuaXRDb250YWluZXJTdHlsZSA9IHt3aWR0aDogJzVlbSd9O1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBQcm9wZXJ0eUxlbmd0aE1lYXN1cmUoe3ZhbHVlLCBvblVwZGF0ZSwgb25WYWxpZCwgY29uZmlncywgc291cmNlRWxlbWVudCwgaW50ZXJuYWxTdGF0ZSwgc3RhdGV9LCB7Y2F0YWxvZ30pIHtcblxuICBsZXQgbGVuZ3RoID0gdmFsdWUuZ2V0KCdsZW5ndGgnKSB8fCAwO1xuICBsZXQgX2xlbmd0aCA9IHZhbHVlLmdldCgnX2xlbmd0aCcpIHx8IGxlbmd0aDtcbiAgbGV0IF91bml0ID0gdmFsdWUuZ2V0KCdfdW5pdCcpIHx8IFVOSVRfQ0VOVElNRVRFUjtcbiAgbGV0IHsgaG9vaywgbGFiZWwsIC4uLmNvbmZpZ1Jlc3R9ID0gY29uZmlncztcblxuICBsZXQgdXBkYXRlID0gKGxlbmd0aElucHV0LCB1bml0SW5wdXQpID0+IHtcblxuICAgIGxldCBuZXdMZW5ndGggPSB0b0ZpeGVkRmxvYXQobGVuZ3RoSW5wdXQpO1xuICAgIGxldCBtZXJnZWQgPSB2YWx1ZS5tZXJnZSh7XG4gICAgICBsZW5ndGg6IHVuaXRJbnB1dCAhPT0gVU5JVF9DRU5USU1FVEVSID8gY29udmVydChuZXdMZW5ndGgpLmZyb20odW5pdElucHV0KS50byhVTklUX0NFTlRJTUVURVIpIDogbmV3TGVuZ3RoLFxuICAgICAgX2xlbmd0aDogbGVuZ3RoSW5wdXQsXG4gICAgICBfdW5pdDogdW5pdElucHV0XG4gICAgfSk7XG5cbiAgICBpZiAoaG9vaykge1xuICAgICAgcmV0dXJuIGhvb2sobWVyZ2VkLCBzb3VyY2VFbGVtZW50LCBpbnRlcm5hbFN0YXRlLCBzdGF0ZSkudGhlbih2YWwgPT4ge1xuICAgICAgICByZXR1cm4gb25VcGRhdGUodmFsKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBvblVwZGF0ZShtZXJnZWQpO1xuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPHRhYmxlIGNsYXNzTmFtZT1cIlByb3BlcnR5TGVuZ3RoTWVhc3VyZVwiIHN0eWxlPXtQcm9wZXJ0eVN0eWxlLnRhYmxlU3R5bGV9PlxuICAgICAgPHRib2R5PlxuICAgICAgPHRyPlxuICAgICAgICA8dGQgc3R5bGU9e1Byb3BlcnR5U3R5bGUuZmlyc3RUZFN0eWxlfT48Rm9ybUxhYmVsPntsYWJlbH08L0Zvcm1MYWJlbD48L3RkPlxuICAgICAgICA8dGQgc3R5bGU9e3NlY29uZFRkU3R5bGV9PlxuICAgICAgICAgIDx0YWJsZSBzdHlsZT17aW50ZXJuYWxUYWJsZVN0eWxlfT5cbiAgICAgICAgICAgIDx0Ym9keT5cbiAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgPHRkPlxuICAgICAgICAgICAgICAgIDxGb3JtTnVtYmVySW5wdXRcbiAgICAgICAgICAgICAgICAgIHZhbHVlPXtfbGVuZ3RofVxuICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e2V2ZW50ID0+IHVwZGF0ZShldmVudC50YXJnZXQudmFsdWUsIF91bml0KX1cbiAgICAgICAgICAgICAgICAgIG9uVmFsaWQ9e29uVmFsaWR9XG4gICAgICAgICAgICAgICAgICBjb25maWdzPXtjb25maWdzfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgIDx0ZCBzdHlsZT17dW5pdENvbnRhaW5lclN0eWxlfT5cbiAgICAgICAgICAgICAgICA8Rm9ybVNlbGVjdCB2YWx1ZT17X3VuaXR9IG9uQ2hhbmdlPXtldmVudCA9PiB1cGRhdGUoX2xlbmd0aCwgZXZlbnQudGFyZ2V0LnZhbHVlKSB9PlxuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBVTklUU19MRU5HVEgubWFwKGVsID0+IDxvcHRpb24ga2V5PXtlbH0gdmFsdWU9e2VsfT57ZWx9PC9vcHRpb24+KVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvRm9ybVNlbGVjdD5cbiAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICA8L3Rib2R5PlxuICAgICAgICAgIDwvdGFibGU+XG4gICAgICAgIDwvdGQ+XG4gICAgICA8L3RyPlxuICAgICAgPC90Ym9keT5cbiAgICA8L3RhYmxlPlxuICApO1xuXG59XG5cblByb3BlcnR5TGVuZ3RoTWVhc3VyZS5wcm9wVHlwZXMgPSB7XG4gIHZhbHVlOiBQcm9wVHlwZXMuaW5zdGFuY2VPZihNYXApLmlzUmVxdWlyZWQsXG4gIG9uVXBkYXRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBvblZhbGlkOiBQcm9wVHlwZXMuZnVuYyxcbiAgY29uZmlnczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICBzb3VyY2VFbGVtZW50OiBQcm9wVHlwZXMub2JqZWN0LFxuICBpbnRlcm5hbFN0YXRlOiBQcm9wVHlwZXMub2JqZWN0LFxuICBzdGF0ZTogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkXG59O1xuXG5Qcm9wZXJ0eUxlbmd0aE1lYXN1cmUuY29udGV4dFR5cGVzID0ge1xuICBjYXRhbG9nOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWRcbn07XG4iXX0=