UNPKG

react-planner-viewer

Version:

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

134 lines (121 loc) 12.4 kB
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; } import React from 'react'; import PropTypes from 'prop-types'; import { UNITS_LENGTH, UNIT_CENTIMETER } from './../../constants'; import convert from 'convert-units'; import { FormLabel, FormNumberInput, FormSelect } from '../../components/style/export'; import { Map } from 'immutable'; import { toFixedFloat } from '../../utils/math'; import PropertyStyle from './shared-property-style'; var internalTableStyle = { borderCollapse: 'collapse' }; var secondTdStyle = { padding: 0 }; var unitContainerStyle = { width: '5em' }; export default 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') || UNIT_CENTIMETER; var hook = configs.hook, label = configs.label, configRest = _objectWithoutProperties(configs, ['hook', 'label']); var update = function update(lengthInput, unitInput) { var newLength = toFixedFloat(lengthInput); var merged = value.merge({ length: unitInput !== UNIT_CENTIMETER ? convert(newLength).from(unitInput).to(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 React.createElement( 'table', { className: 'PropertyLengthMeasure', style: PropertyStyle.tableStyle }, React.createElement( 'tbody', null, React.createElement( 'tr', null, React.createElement( 'td', { style: PropertyStyle.firstTdStyle }, React.createElement( FormLabel, null, label ) ), React.createElement( 'td', { style: secondTdStyle }, React.createElement( 'table', { style: internalTableStyle }, React.createElement( 'tbody', null, React.createElement( 'tr', null, React.createElement( 'td', null, React.createElement(FormNumberInput, { value: _length, onChange: function onChange(event) { return update(event.target.value, _unit); }, onValid: onValid, configs: configs }) ), React.createElement( 'td', { style: unitContainerStyle }, React.createElement( FormSelect, { value: _unit, onChange: function onChange(event) { return update(_length, event.target.value); } }, UNITS_LENGTH.map(function (el) { return React.createElement( 'option', { key: el, value: el }, el ); }) ) ) ) ) ) ) ) ) ); } PropertyLengthMeasure.propTypes = { value: PropTypes.instanceOf(Map).isRequired, onUpdate: PropTypes.func.isRequired, onValid: PropTypes.func, configs: PropTypes.object.isRequired, sourceElement: PropTypes.object, internalState: PropTypes.object, state: PropTypes.object.isRequired }; PropertyLengthMeasure.contextTypes = { catalog: PropTypes.object.isRequired }; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jYXRhbG9nL3Byb3BlcnRpZXMvcHJvcGVydHktbGVuZ2h0LW1lYXN1cmUuanN4Il0sIm5hbWVzIjpbIlJlYWN0IiwiUHJvcFR5cGVzIiwiVU5JVFNfTEVOR1RIIiwiVU5JVF9DRU5USU1FVEVSIiwiY29udmVydCIsIkZvcm1MYWJlbCIsIkZvcm1OdW1iZXJJbnB1dCIsIkZvcm1TZWxlY3QiLCJNYXAiLCJ0b0ZpeGVkRmxvYXQiLCJQcm9wZXJ0eVN0eWxlIiwiaW50ZXJuYWxUYWJsZVN0eWxlIiwiYm9yZGVyQ29sbGFwc2UiLCJzZWNvbmRUZFN0eWxlIiwicGFkZGluZyIsInVuaXRDb250YWluZXJTdHlsZSIsIndpZHRoIiwiUHJvcGVydHlMZW5ndGhNZWFzdXJlIiwidmFsdWUiLCJvblVwZGF0ZSIsIm9uVmFsaWQiLCJjb25maWdzIiwic291cmNlRWxlbWVudCIsImludGVybmFsU3RhdGUiLCJzdGF0ZSIsImNhdGFsb2ciLCJsZW5ndGgiLCJnZXQiLCJfbGVuZ3RoIiwiX3VuaXQiLCJob29rIiwibGFiZWwiLCJjb25maWdSZXN0IiwidXBkYXRlIiwibGVuZ3RoSW5wdXQiLCJ1bml0SW5wdXQiLCJuZXdMZW5ndGgiLCJtZXJnZWQiLCJtZXJnZSIsImZyb20iLCJ0byIsInRoZW4iLCJ2YWwiLCJ0YWJsZVN0eWxlIiwiZmlyc3RUZFN0eWxlIiwiZXZlbnQiLCJ0YXJnZXQiLCJtYXAiLCJlbCIsInByb3BUeXBlcyIsImluc3RhbmNlT2YiLCJpc1JlcXVpcmVkIiwiZnVuYyIsIm9iamVjdCIsImNvbnRleHRUeXBlcyJdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPQSxLQUFQLE1BQWtCLE9BQWxCO0FBQ0EsT0FBT0MsU0FBUCxNQUFzQixZQUF0QjtBQUNBLFNBQVFDLFlBQVIsRUFBc0JDLGVBQXRCLFFBQTRDLG1CQUE1QztBQUNBLE9BQU9DLE9BQVAsTUFBb0IsZUFBcEI7QUFDQSxTQUFTQyxTQUFULEVBQW9CQyxlQUFwQixFQUFxQ0MsVUFB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O0FBQUEsK0JBQVNJLE9BQU9MLE9BQVAsRUFBZ0JpQixNQUFNQyxNQUFOLENBQWE1QixLQUE3QixDQUFUO0FBQUEsdUJBQXBDO0FBRUloQixpQ0FBYTZDLEdBQWIsQ0FBaUI7QUFBQSw2QkFBTTtBQUFBO0FBQUEsMEJBQVEsS0FBS0MsRUFBYixFQUFpQixPQUFPQSxFQUF4QjtBQUE2QkE7QUFBN0IsdUJBQU47QUFBQSxxQkFBakI7QUFGSjtBQURGO0FBVEY7QUFEQTtBQURGO0FBREY7QUFGRjtBQURBO0FBREYsR0FERjtBQWlDRDs7QUFFRC9CLHNCQUFzQmdDLFNBQXRCLEdBQWtDO0FBQ2hDL0IsU0FBT2pCLFVBQVVpRCxVQUFWLENBQXFCMUMsR0FBckIsRUFBMEIyQyxVQUREO0FBRWhDaEMsWUFBVWxCLFVBQVVtRCxJQUFWLENBQWVELFVBRk87QUFHaEMvQixXQUFTbkIsVUFBVW1ELElBSGE7QUFJaEMvQixXQUFTcEIsVUFBVW9ELE1BQVYsQ0FBaUJGLFVBSk07QUFLaEM3QixpQkFBZXJCLFVBQVVvRCxNQUxPO0FBTWhDOUIsaUJBQWV0QixVQUFVb0QsTUFOTztBQU9oQzdCLFNBQU92QixVQUFVb0QsTUFBVixDQUFpQkY7QUFQUSxDQUFsQzs7QUFVQWxDLHNCQUFzQnFDLFlBQXRCLEdBQXFDO0FBQ25DN0IsV0FBU3hCLFVBQVVvRCxNQUFWLENBQWlCRjtBQURTLENBQXJDIiwiZmlsZSI6InByb3BlcnR5LWxlbmdodC1tZWFzdXJlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQge1VOSVRTX0xFTkdUSCwgVU5JVF9DRU5USU1FVEVSfSBmcm9tICcuLy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgY29udmVydCBmcm9tICdjb252ZXJ0LXVuaXRzJztcbmltcG9ydCB7IEZvcm1MYWJlbCwgRm9ybU51bWJlcklucHV0LCBGb3JtU2VsZWN0IH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9zdHlsZS9leHBvcnQnO1xuaW1wb3J0IHtNYXB9IGZyb20gJ2ltbXV0YWJsZSc7XG5pbXBvcnQge3RvRml4ZWRGbG9hdH0gZnJvbSAnLi4vLi4vdXRpbHMvbWF0aCc7XG5pbXBvcnQgUHJvcGVydHlTdHlsZSBmcm9tICcuL3NoYXJlZC1wcm9wZXJ0eS1zdHlsZSc7XG5cbmNvbnN0IGludGVybmFsVGFibGVTdHlsZSA9IHtib3JkZXJDb2xsYXBzZTogJ2NvbGxhcHNlJ307XG5jb25zdCBzZWNvbmRUZFN0eWxlID0ge3BhZGRpbmc6IDB9O1xuY29uc3QgdW5pdENvbnRhaW5lclN0eWxlID0ge3dpZHRoOiAnNWVtJ307XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIFByb3BlcnR5TGVuZ3RoTWVhc3VyZSh7dmFsdWUsIG9uVXBkYXRlLCBvblZhbGlkLCBjb25maWdzLCBzb3VyY2VFbGVtZW50LCBpbnRlcm5hbFN0YXRlLCBzdGF0ZX0sIHtjYXRhbG9nfSkge1xuXG4gIGxldCBsZW5ndGggPSB2YWx1ZS5nZXQoJ2xlbmd0aCcpIHx8IDA7XG4gIGxldCBfbGVuZ3RoID0gdmFsdWUuZ2V0KCdfbGVuZ3RoJykgfHwgbGVuZ3RoO1xuICBsZXQgX3VuaXQgPSB2YWx1ZS5nZXQoJ191bml0JykgfHwgVU5JVF9DRU5USU1FVEVSO1xuICBsZXQgeyBob29rLCBsYWJlbCwgLi4uY29uZmlnUmVzdH0gPSBjb25maWdzO1xuXG4gIGxldCB1cGRhdGUgPSAobGVuZ3RoSW5wdXQsIHVuaXRJbnB1dCkgPT4ge1xuXG4gICAgbGV0IG5ld0xlbmd0aCA9IHRvRml4ZWRGbG9hdChsZW5ndGhJbnB1dCk7XG4gICAgbGV0IG1lcmdlZCA9IHZhbHVlLm1lcmdlKHtcbiAgICAgIGxlbmd0aDogdW5pdElucHV0ICE9PSBVTklUX0NFTlRJTUVURVIgPyBjb252ZXJ0KG5ld0xlbmd0aCkuZnJvbSh1bml0SW5wdXQpLnRvKFVOSVRfQ0VOVElNRVRFUikgOiBuZXdMZW5ndGgsXG4gICAgICBfbGVuZ3RoOiBsZW5ndGhJbnB1dCxcbiAgICAgIF91bml0OiB1bml0SW5wdXRcbiAgICB9KTtcblxuICAgIGlmIChob29rKSB7XG4gICAgICByZXR1cm4gaG9vayhtZXJnZWQsIHNvdXJjZUVsZW1lbnQsIGludGVybmFsU3RhdGUsIHN0YXRlKS50aGVuKHZhbCA9PiB7XG4gICAgICAgIHJldHVybiBvblVwZGF0ZSh2YWwpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG9uVXBkYXRlKG1lcmdlZCk7XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8dGFibGUgY2xhc3NOYW1lPVwiUHJvcGVydHlMZW5ndGhNZWFzdXJlXCIgc3R5bGU9e1Byb3BlcnR5U3R5bGUudGFibGVTdHlsZX0+XG4gICAgICA8dGJvZHk+XG4gICAgICA8dHI+XG4gICAgICAgIDx0ZCBzdHlsZT17UHJvcGVydHlTdHlsZS5maXJzdFRkU3R5bGV9PjxGb3JtTGFiZWw+e2xhYmVsfTwvRm9ybUxhYmVsPjwvdGQ+XG4gICAgICAgIDx0ZCBzdHlsZT17c2Vjb25kVGRTdHlsZX0+XG4gICAgICAgICAgPHRhYmxlIHN0eWxlPXtpbnRlcm5hbFRhYmxlU3R5bGV9PlxuICAgICAgICAgICAgPHRib2R5PlxuICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICAgICAgPEZvcm1OdW1iZXJJbnB1dFxuICAgICAgICAgICAgICAgICAgdmFsdWU9e19sZW5ndGh9XG4gICAgICAgICAgICAgICAgICBvbkNoYW5nZT17ZXZlbnQgPT4gdXBkYXRlKGV2ZW50LnRhcmdldC52YWx1ZSwgX3VuaXQpfVxuICAgICAgICAgICAgICAgICAgb25WYWxpZD17b25WYWxpZH1cbiAgICAgICAgICAgICAgICAgIGNvbmZpZ3M9e2NvbmZpZ3N9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgPHRkIHN0eWxlPXt1bml0Q29udGFpbmVyU3R5bGV9PlxuICAgICAgICAgICAgICAgIDxGb3JtU2VsZWN0IHZhbHVlPXtfdW5pdH0gb25DaGFuZ2U9e2V2ZW50ID0+IHVwZGF0ZShfbGVuZ3RoLCBldmVudC50YXJnZXQudmFsdWUpIH0+XG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIFVOSVRTX0xFTkdUSC5tYXAoZWwgPT4gPG9wdGlvbiBrZXk9e2VsfSB2YWx1ZT17ZWx9PntlbH08L29wdGlvbj4pXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9Gb3JtU2VsZWN0PlxuICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgIDwvdGJvZHk+XG4gICAgICAgICAgPC90YWJsZT5cbiAgICAgICAgPC90ZD5cbiAgICAgIDwvdHI+XG4gICAgICA8L3Rib2R5PlxuICAgIDwvdGFibGU+XG4gICk7XG5cbn1cblxuUHJvcGVydHlMZW5ndGhNZWFzdXJlLnByb3BUeXBlcyA9IHtcbiAgdmFsdWU6IFByb3BUeXBlcy5pbnN0YW5jZU9mKE1hcCkuaXNSZXF1aXJlZCxcbiAgb25VcGRhdGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIG9uVmFsaWQ6IFByb3BUeXBlcy5mdW5jLFxuICBjb25maWdzOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gIHNvdXJjZUVsZW1lbnQ6IFByb3BUeXBlcy5vYmplY3QsXG4gIGludGVybmFsU3RhdGU6IFByb3BUeXBlcy5vYmplY3QsXG4gIHN0YXRlOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWRcbn07XG5cblByb3BlcnR5TGVuZ3RoTWVhc3VyZS5jb250ZXh0VHlwZXMgPSB7XG4gIGNhdGFsb2c6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZFxufTtcbiJdfQ==