UNPKG

choerodon-ui

Version:

An enterprise-class UI design language and React-based implementation

108 lines (90 loc) 2.85 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"]; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _tslib = require("tslib"); var _mobx = require("mobx"); var _Record = require("./Record"); var _utils = require("./utils"); var Group = /*#__PURE__*/function () { function Group(name, index, value, parentGroup) { (0, _classCallCheck2["default"])(this, Group); this.index = index; this.name = name; this.value = value; this.parentGroup = parentGroup; this.records = []; this.totalRecords = []; this.subGroups = []; } (0, _createClass2["default"])(Group, [{ key: "isExpanded", get: function get() { return this.getState(_Record.EXPANDED_KEY) !== false; }, set: function set(isExpanded) { this.setState(_Record.EXPANDED_KEY, isExpanded); } }, { key: "level", get: function get() { var parent = this.parent; if (parent) { return parent.level + 1; } return 0; } }, { key: "expandedRecords", get: function get() { var subGroups = this.subGroups; if (subGroups.length) { return subGroups.reduce(function (list, group) { var newList = list.concat(group.expandedRecords); var children = group.children; if (children && group.isExpanded) { return children.reduce(function (childList, childGroup) { return childList.concat(childGroup.expandedRecords); }, newList); } return newList; }, []); } return this.records; } }, { key: "getState", value: function getState(key) { var state = this.state; return state && state.get(key); } }, { key: "setState", value: function setState(key, value) { if (value !== undefined || this.state) { var state = (0, _utils.getIf)(this, 'state', function () { return _mobx.observable.map(); }); return state.set(key, value); } } }, { key: "mergeState", value: function mergeState(newState) { var state = (0, _utils.getIf)(this, 'state', function () { return _mobx.observable.map(); }); state.merge(newState); } }]); return Group; }(); exports["default"] = Group; (0, _tslib.__decorate)([_mobx.observable], Group.prototype, "state", void 0); (0, _tslib.__decorate)([_mobx.computed], Group.prototype, "expandedRecords", null); (0, _tslib.__decorate)([_mobx.action], Group.prototype, "setState", null); //# sourceMappingURL=Group.js.map