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
JavaScript
'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=