awv3
Version:
⚡ AWV3 embedded CAD
65 lines (50 loc) • 1.72 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = Handler;
var _drag = require('./drag');
var _drag2 = _interopRequireDefault(_drag);
var _draw = require('./draw');
var _draw2 = _interopRequireDefault(_draw);
var _angle = require('./angle');
var _angle2 = _interopRequireDefault(_angle);
var _fillet = require('./fillet');
var _fillet2 = _interopRequireDefault(_fillet);
var _duplicate = require('./duplicate');
var _duplicate2 = _interopRequireDefault(_duplicate);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function getHandlerClass(name) {
switch (name) {
case 'drag':
return _drag2.default;
case 'point':
case 'line':
case 'arccenter':
case 'arcmiddle':
case 'arctangent':
case 'circle':
return _draw2.default;
case 'angle':
return _angle2.default;
case 'fillet':
return _fillet2.default;
case 'duplicate':
return _duplicate2.default;
}
}
// destroy oldHandler (if needed) and return the new handler
function Handler(sketcher, name, oldHandler) {
var oldClass = getHandlerClass(oldHandler && oldHandler.name),
newClass = getHandlerClass(name);
var handler = oldHandler;
if (oldClass !== newClass) {
oldHandler && oldHandler.destroy();
handler = new newClass(sketcher, name);
handler.addInteractions();
}
if (newClass === _draw2.default) handler.switchMode(name);
return handler;
}
// Support hot reloading
if (module.hot) module.hot.accept(['./drag', './draw', './angle', './fillet', './duplicate']);