UNPKG

awv3

Version:
287 lines (225 loc) 11.2 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = undefined; var _slicedToArray2 = require('babel-runtime/helpers/slicedToArray'); var _slicedToArray3 = _interopRequireDefault(_slicedToArray2); var _entries = require('babel-runtime/core-js/object/entries'); var _entries2 = _interopRequireDefault(_entries); var _stringify = require('babel-runtime/core-js/json/stringify'); var _stringify2 = _interopRequireDefault(_stringify); var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of'); var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck'); var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); var _createClass2 = require('babel-runtime/helpers/createClass'); var _createClass3 = _interopRequireDefault(_createClass2); var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn'); var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); var _inherits2 = require('babel-runtime/helpers/inherits'); var _inherits3 = _interopRequireDefault(_inherits2); var _defineProperty2 = require('babel-runtime/helpers/defineProperty'); var _defineProperty3 = _interopRequireDefault(_defineProperty2); var _extends3 = require('babel-runtime/helpers/extends'); var _extends4 = _interopRequireDefault(_extends3); var _dec, _class2; var _debounce = require('lodash/debounce'); var _debounce2 = _interopRequireDefault(_debounce); var _plugin = require('../../session/plugin'); var _plugin2 = _interopRequireDefault(_plugin); var _renderer = require('../../session/renderer'); var _renderer2 = _interopRequireDefault(_renderer); var _dimensions = require('../dimensions/'); var _dimensions2 = _interopRequireDefault(_dimensions); var _elements = require('../../session/elements'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var resources = ['extrusion'].reduce(function (prev, item) { return (0, _extends4.default)({}, prev, (0, _defineProperty3.default)({}, item, require('!!url-loader!awv3-icons/32x32/' + item + '.png'))); }, {}); var MemberRow = function (_Component) { (0, _inherits3.default)(MemberRow, _Component); function MemberRow() { var _ref; var _temp, _this, _ret; (0, _classCallCheck3.default)(this, MemberRow); for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, (_ref = MemberRow.__proto__ || (0, _getPrototypeOf2.default)(MemberRow)).call.apply(_ref, [this].concat(args))), _this), _this.state = { value: undefined }, _this.update = (0, _debounce2.default)(function (value) { var id = _this.props.id, m = (0, _stringify2.default)(_this.props.key), v = (0, _stringify2.default)(value); console.log('_C.CADApplication.SetExpressions(' + id + ', [' + m + '], [' + v + '], ' + f + ');'); _this.plugin.connection.execute('_C.CADApplication.SetExpressions(' + id + ', [' + m + '], [' + v + '], 1);'); }, 500), _temp), (0, _possibleConstructorReturn3.default)(_this, _ret); } (0, _createClass3.default)(MemberRow, [{ key: 'render', value: function render(_ref2, _ref3, set) { var key = _ref2.key, member = _ref2.member; var _this2 = this; var value = _ref3.value; var displayVal = value === undefined ? member.expression || member.value : value; if (Array.isArray(displayVal)) displayVal = displayVal.join(','); if (key === 'color') return _renderer2.default.createElement(_elements.Button, { name: key, format: _elements.Button.Format.Color });else if (key === 'extrudeType') return _renderer2.default.createElement(_elements.Slider, { name: key, value: Number(displayVal) || 0, max: 2, positions: (0, _extends4.default)({}, ['up', 'down', 'symmetric']), onValue: this.update });else if (key.endsWith('Angle')) return _renderer2.default.createElement(_elements.Slider, { name: key, value: Number(displayVal) || 0, onValue: this.update, max: 45, step: 1, positions: { 0: '0°', 45: '45' } });else if (key.startsWith('invert')) return _renderer2.default.createElement(_elements.Checkbox, { name: key, value: Boolean(displayVal), onValue: function onValue(value) { return _this2.update(value ? 1 : 0); } });else if (member.type === 'point') return _renderer2.default.createElement(_elements.Input, { name: key, value: displayVal, onValue: function onValue(value) { return set({ value: value }); }, format: _elements.Input.Format.Vector, onLastEvent: function onLastEvent(e) { return e.key === 'Enter' && _this2.update(value.split(',').map(Number)); } });else if (member.type === 'real') return _renderer2.default.createElement(_elements.Input, { name: key, value: displayVal, onValue: function onValue(value) { return set({ value: value }); }, onLastEvent: function onLastEvent(e) { return e.key === 'Enter' && _this2.update(value); } });else return _renderer2.default.createElement(_elements.Label, { name: key, value: displayVal }); } }]); return MemberRow; }(_renderer.Component); var SketchRow = function (_Component2) { (0, _inherits3.default)(SketchRow, _Component2); function SketchRow() { (0, _classCallCheck3.default)(this, SketchRow); return (0, _possibleConstructorReturn3.default)(this, (SketchRow.__proto__ || (0, _getPrototypeOf2.default)(SketchRow)).apply(this, arguments)); } (0, _createClass3.default)(SketchRow, [{ key: 'render', value: function render(_ref4) { var _this4 = this; var name = _ref4.name, value = _ref4.value.value; console.log(value); return _renderer2.default.createElement(_elements.Dropdown, { name: name, items: [String(value)], value: String(value), onValue: function onValue(v) { return _this4.set(v); } }); } }, { key: 'set', value: function set(value) { var _this5 = this; if (true) return; // TODO var sketches = this.tree[this.tree.root].features.map(function (x) { return _this5.tree[x]; }).filter(function (x) { return x.class === 'CC_Sketch'; }); var items = sketches.map(function (x) { return x.name; }); var t2e = function t2e(t) { return t ? _this5.tree[t].name : ''; }; var e2t = function e2t(e) { return (sketches.find(function (x) { return x.name === e; }) || { id: 0 }).id; }; this.connection.execute('VAR region, sketch;\n region = CADH_RealToId(' + region + ');\n sketch = CADH_RealToId(' + e2t(e) + ');\n region.SetCurves(sketch.GetCCCurves());'); } }]); return SketchRow; }(_renderer.Component); var Extrusion = (_dec = (0, _renderer.connect)(function (state, props) { var tree = state.connections[props.connection].tree; var extrusion = tree[props.id]; var region = extrusion.children.map(function (x) { return tree[x]; }).find(function (x) { return x.class === 'CC_SketchRegion'; }); return { extrusion: extrusion, region: region }; }), _dec(_class2 = function (_Component3) { (0, _inherits3.default)(Extrusion, _Component3); function Extrusion() { (0, _classCallCheck3.default)(this, Extrusion); return (0, _possibleConstructorReturn3.default)(this, (Extrusion.__proto__ || (0, _getPrototypeOf2.default)(Extrusion)).apply(this, arguments)); } (0, _createClass3.default)(Extrusion, [{ key: 'render', value: function render(_ref5) { var extrusion = _ref5.extrusion, region = _ref5.region; var id = extrusion.id; return _renderer2.default.createElement( _elements.Group, { format: _elements.Group.Format.Table }, (0, _entries2.default)(extrusion.members).filter(function (_ref6) { var _ref7 = (0, _slicedToArray3.default)(_ref6, 1), name = _ref7[0]; return !name.startsWith('_'); }).map(function (_ref8) { var _ref9 = (0, _slicedToArray3.default)(_ref8, 2), key = _ref9[0], member = _ref9[1]; return _renderer2.default.createElement(MemberRow, { id: id, key: key, member: member }); }), _renderer2.default.createElement(SketchRow, { id: region.id, name: 'sketch', value: region.members.sketch }) ); } }]); return Extrusion; }(_renderer.Component)) || _class2); var Feature = function (_Plugin) { (0, _inherits3.default)(Feature, _Plugin); function Feature(session, args) { (0, _classCallCheck3.default)(this, Feature); var _this7 = (0, _possibleConstructorReturn3.default)(this, (Feature.__proto__ || (0, _getPrototypeOf2.default)(Feature)).call(this, session, (0, _extends4.default)({ type: 'Extrusion', icon: 'extrusion', resources: resources }, args))); _this7.dimensions = new _dimensions2.default(_this7.session, { name: 'Dimensions', collapsed: true, closeable: false, parent: _this7.id }); return _this7; } (0, _createClass3.default)(Feature, [{ key: 'render', value: function render() { return _renderer2.default.createElement( _elements.Group, null, _renderer2.default.createElement(Extrusion, { connection: this.connection.id, id: this.feature }), _renderer2.default.createElement(_elements.Spacer, null), _renderer2.default.createElement(_elements.Link, { value: this.dimensions.id, collapsable: true }) ); } }, { key: 'onEnabled', value: function onEnabled() { this.dimensions.enabled = true; } }, { key: 'onDisabled', value: function onDisabled() { this.dimensions.destroy(); } }]); return Feature; }(_plugin2.default); exports.default = Feature;