UNPKG

@turbox3d/design-engine

Version:

Large-scale design application engine library

100 lines (99 loc) 5.32 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.Selection = void 0; var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray")); var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof")); var _reactivity = require("@turbox3d/reactivity"); var _shared = require("@turbox3d/shared"); var _command = require("./command"); function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); } function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } var __decorate = void 0 && (void 0).__decorate || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if ((typeof Reflect === "undefined" ? "undefined" : (0, _typeof2["default"])(Reflect)) === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var Selection = exports.Selection = /*#__PURE__*/function (_Domain) { function Selection() { var _this; (0, _classCallCheck2["default"])(this, Selection); _this = _callSuper(this, Selection, arguments); _this.selectedEntities = []; /** 选择层级深度,多选时取最大值 */ _this.layerDepth = 1; _this.selectMode = _command.ESelectMode.OVERALL; _this.isMultiSelectMode = false; return _this; } (0, _inherits2["default"])(Selection, _Domain); return (0, _createClass2["default"])(Selection, [{ key: "setMultiSelect", value: function setMultiSelect(isMultiple) { this.isMultiSelectMode = isMultiple; } }, { key: "switchSelectMode", value: function switchSelectMode(selectMode) { this.selectMode = selectMode; } }, { key: "setLayerDepth", value: function setLayerDepth(layerDepth) { this.layerDepth = layerDepth; } }, { key: "select", value: function select(models, onSelectHandler) { var _this$selectedEntitie; if (models.length === 0) { return; } (_this$selectedEntitie = this.selectedEntities).push.apply(_this$selectedEntitie, (0, _toConsumableArray2["default"])(models)); var layerDepths = models.map(function (m) { return m.getParentPathChain().indexOf(m) + 1; }); this.setLayerDepth(Math.max.apply(Math, (0, _toConsumableArray2["default"])(layerDepths))); onSelectHandler && onSelectHandler(models); } }, { key: "unselect", value: function unselect(models, onUnselectHandler) { (0, _shared.batchRemove)(this.selectedEntities, models); onUnselectHandler && onUnselectHandler(models); } }, { key: "clearAllSelected", value: function clearAllSelected(onUnselectHandler) { var selected = this.selectedEntities.slice(); (0, _shared.batchRemove)(this.selectedEntities, selected); onUnselectHandler && onUnselectHandler(selected); } }, { key: "setSelectEntityTypes", value: function setSelectEntityTypes(types) { this.selectEntityTypes = types; } }]); }(_reactivity.Domain); __decorate([(0, _reactivity.reactor)()], Selection.prototype, "selectedEntities", void 0); __decorate([(0, _reactivity.reactor)()], Selection.prototype, "layerDepth", void 0); __decorate([(0, _reactivity.reactor)()], Selection.prototype, "selectMode", void 0); __decorate([(0, _reactivity.reactor)()], Selection.prototype, "selectEntityTypes", void 0); __decorate([(0, _reactivity.reactor)()], Selection.prototype, "isMultiSelectMode", void 0); __decorate([_reactivity.mutation], Selection.prototype, "setMultiSelect", null); __decorate([(0, _reactivity.mutation)()], Selection.prototype, "switchSelectMode", null); __decorate([_reactivity.mutation], Selection.prototype, "setLayerDepth", null); __decorate([(0, _reactivity.mutation)()], Selection.prototype, "select", null); __decorate([(0, _reactivity.mutation)()], Selection.prototype, "unselect", null); __decorate([(0, _reactivity.mutation)()], Selection.prototype, "clearAllSelected", null); __decorate([(0, _reactivity.mutation)()], Selection.prototype, "setSelectEntityTypes", null);