UNPKG

awv3

Version:
262 lines (208 loc) 10 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, _class; var _plugin = require('../../session/plugin'); var _plugin2 = _interopRequireDefault(_plugin); var _renderer = require('../../session/renderer'); var _renderer2 = _interopRequireDefault(_renderer); var _dimension = require('../dimension/'); var _dimension2 = _interopRequireDefault(_dimension); 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() { (0, _classCallCheck3.default)(this, MemberRow); return (0, _possibleConstructorReturn3.default)(this, (MemberRow.__proto__ || (0, _getPrototypeOf2.default)(MemberRow)).apply(this, arguments)); } (0, _createClass3.default)(MemberRow, [{ key: 'render', value: function render(_ref) { var _this2 = this; var name = _ref.name, _ref$value = _ref.value, type = _ref$value.type, value = _ref$value.value; if (name === 'extrudeType') return _renderer2.default.createElement(_elements.Slider, { name: name, value: value, onValue: function onValue(v) { return _this2.set(v); }, max: 2, positions: (0, _extends4.default)({}, ['up', 'down', 'symmetric']) });else if (name.endsWith('Angle')) return _renderer2.default.createElement(_elements.Slider, { name: name, value: value, onValue: function onValue(v) { return _this2.set(v); }, max: 360, step: 10, positions: { 0: '0°', 90: '90°', 180: '180°', 270: '270°', 360: '360°' } });else if (name.startsWith('invert')) return _renderer2.default.createElement(_elements.Checkbox, { name: name, value: Boolean(value), onValue: function onValue(v) { return _this2.set(Number(v)); } });else if (type === 'point') return _renderer2.default.createElement(_elements.Input, { name: name, value: value.map(String).join(','), onValue: function onValue(v) { return _this2.set(v.split(',').map(Number)); }, format: _elements.Input.Format.Vector });else if (type === 'real') return _renderer2.default.createElement(_elements.Input, { name: name, value: String(value), onValue: function onValue(v) { return _this2.set(Number(v)); } });else return _renderer2.default.createElement(_elements.Label, { name: name, value: String(value) }); } }, { key: 'set', value: function set(value) { var id = this.props.id, m = (0, _stringify2.default)(this.props.name), v = (0, _stringify2.default)(value), f = 1; this.plugin.connection.execute('_C.CADApplication.SetExpressions(' + id + ', [' + m + '], [' + v + '], ' + f + ');'); } }]); 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(_ref2) { var _this4 = this; var name = _ref2.name, value = _ref2.value.value; return _renderer2.default.createElement(_elements.Dropdown, { name: name, 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(_class = 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(_ref3) { var extrusion = _ref3.extrusion, region = _ref3.region; var id = extrusion.id; return _renderer2.default.createElement( _elements.Group, { format: _elements.Group.Format.Table }, (0, _entries2.default)(extrusion.members).filter(function (_ref4) { var _ref5 = (0, _slicedToArray3.default)(_ref4, 1), name = _ref5[0]; return !name.startsWith('_'); }).map(function (_ref6) { var _ref7 = (0, _slicedToArray3.default)(_ref6, 2), name = _ref7[0], value = _ref7[1]; return _renderer2.default.createElement(MemberRow, { id: id, name: name, value: value }); }), _renderer2.default.createElement(SketchRow, { id: region.id, name: 'sketch', value: region.members.sketch }) ); } }]); return Extrusion; }(_renderer.Component)) || _class); 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.dimension = new _dimension2.default(_this7.session, { name: 'Dimensions', collapsed: true, closeable: false, parent: _this7.id }); _this7.dependencies.push(_this7.dimension); 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.Link, { value: this.dimension.id, collapsable: true }) ); } }, { key: 'onEnabled', value: function onEnabled() { this.dimension.enabled = true; } }]); return Feature; }(_plugin2.default); exports.default = Feature;