choerodon-ui
Version:
An enterprise-class UI design language and React-based implementation
234 lines (205 loc) • 6.38 kB
JavaScript
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = 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 _tslib = require("tslib");
var _mobx = require("mobx");
var _Column = require("./Column");
var _ColumnGroup = _interopRequireDefault(require("./ColumnGroup"));
var _enum = require("./enum");
var ColumnGroups = /*#__PURE__*/function () {
function ColumnGroups(columns, store, parent) {
var _this = this;
(0, _classCallCheck2["default"])(this, ColumnGroups);
this.store = store;
this.parent = parent;
var prev;
this.columns = columns.map(function (col) {
var group = new _ColumnGroup["default"](col, _this, store);
if (prev) {
prev.next = group;
group.prev = prev;
}
prev = group;
return group;
});
}
(0, _createClass2["default"])(ColumnGroups, [{
key: "aggregation",
get: function get() {
return this.store.aggregation;
}
}, {
key: "wide",
get: function get() {
return this.columns.reduce(function (sum, _ref) {
var colSpan = _ref.colSpan,
hidden = _ref.hidden;
return hidden ? sum : sum + colSpan;
}, 0);
}
}, {
key: "deep",
get: function get() {
return Math.max.apply(Math, (0, _toConsumableArray2["default"])(this.columns.map(function (_ref2) {
var deep = _ref2.deep;
return deep;
})));
}
}, {
key: "hidden",
get: function get() {
return this.columns.every(function (_ref3) {
var hidden = _ref3.hidden;
return hidden;
});
}
}, {
key: "width",
get: function get() {
return this.columns.reduce(function (sum, _ref4) {
var width = _ref4.width;
return sum + width;
}, 0);
}
}, {
key: "left",
get: function get() {
var parent = this.parent;
if (parent) {
return parent.left;
}
return 0;
}
}, {
key: "right",
get: function get() {
var parent = this.parent;
if (parent) {
return parent.right;
}
return 0;
}
}, {
key: "lastLeaf",
get: function get() {
var leafs = this.leafs;
var length = leafs.length;
return length ? leafs[length - 1] : undefined;
}
}, {
key: "allLeafs",
get: function get() {
var aggregation = this.aggregation;
return this.columns.reduce(function (leafs, group) {
return leafs.concat(aggregation && group.column.aggregation ? group : group.allLeafs);
}, []);
}
}, {
key: "inView",
get: function get() {
return this.allLeafs.some(function (group) {
return group.inView !== false;
});
}
}, {
key: "leafs",
get: function get() {
var aggregation = this.aggregation,
hidden = this.hidden;
return hidden ? [] : this.columns.reduce(function (leafs, group) {
return group.hidden ? leafs : leafs.concat(aggregation && group.column.aggregation ? group : group.leafs);
}, []);
}
}, {
key: "leftLeafs",
get: function get() {
if (!this.parent) {
var aggregation = this.aggregation;
return this.columns.reduce(function (leafs, group) {
return group.lock === _enum.ColumnLock.left && !group.hidden ? leafs.concat(aggregation && group.column.aggregation ? group : group.leafs) : leafs;
}, []);
}
return [];
}
}, {
key: "rightLeafs",
get: function get() {
if (!this.parent) {
var aggregation = this.aggregation;
return this.columns.reduce(function (leafs, group) {
return group.lock === _enum.ColumnLock.right && !group.hidden ? leafs.concat(aggregation && group.column.aggregation ? group : group.leafs) : leafs;
}, []);
}
return [];
}
}, {
key: "leafColumnsWidth",
get: function get() {
var _this2 = this;
return this.allLeafs.reduce(function (total, _ref5) {
var column = _ref5.column;
return total + (0, _Column.columnWidth)(column, _this2.store);
}, 0);
}
}, {
key: "leftLeafColumnsWidth",
get: function get() {
var _this3 = this;
return this.leftLeafs.reduce(function (total, _ref6) {
var column = _ref6.column;
return total + (0, _Column.columnWidth)(column, _this3.store);
}, 0);
}
}, {
key: "rightLeafColumnsWidth",
get: function get() {
var _this4 = this;
return this.rightLeafs.reduce(function (total, _ref7) {
var column = _ref7.column;
return total + (0, _Column.columnWidth)(column, _this4.store);
}, 0);
}
}, {
key: "headerGroup",
get: function get() {
var parent = this.parent;
if (parent) {
return parent.headerGroup;
}
}
}, {
key: "headerGroups",
get: function get() {
var parent = this.parent;
if (parent) {
return parent.headerGroups;
}
}
}, {
key: "tableGroup",
get: function get() {
var parent = this.parent;
if (parent) {
return parent.tableGroup;
}
}
}]);
return ColumnGroups;
}();
exports["default"] = ColumnGroups;
(0, _tslib.__decorate)([_mobx.computed], ColumnGroups.prototype, "wide", null);
(0, _tslib.__decorate)([_mobx.computed], ColumnGroups.prototype, "deep", null);
(0, _tslib.__decorate)([_mobx.computed], ColumnGroups.prototype, "hidden", null);
(0, _tslib.__decorate)([_mobx.computed], ColumnGroups.prototype, "width", null);
(0, _tslib.__decorate)([_mobx.computed], ColumnGroups.prototype, "allLeafs", null);
(0, _tslib.__decorate)([_mobx.computed], ColumnGroups.prototype, "inView", null);
(0, _tslib.__decorate)([_mobx.computed], ColumnGroups.prototype, "leafs", null);
(0, _tslib.__decorate)([_mobx.computed], ColumnGroups.prototype, "leftLeafs", null);
(0, _tslib.__decorate)([_mobx.computed], ColumnGroups.prototype, "rightLeafs", null);
//# sourceMappingURL=ColumnGroups.js.map