awv3
Version:
⚡ AWV3 embedded CAD
262 lines (208 loc) • 10 kB
JavaScript
'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;