choerodon-ui
Version:
An enterprise-class UI design language and React-based implementation
120 lines (101 loc) • 3.19 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
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 _ColumnGroup = _interopRequireDefault(require("./ColumnGroup"));
var ColumnGroups =
/*#__PURE__*/
function () {
function ColumnGroups(columns, parent) {
var _this = this;
(0, _classCallCheck2["default"])(this, ColumnGroups);
this.parent = parent;
var prev;
this.columns = columns.map(function (col) {
var group = new _ColumnGroup["default"](col, _this);
if (prev) {
prev.next = group;
group.prev = prev;
}
prev = group;
return group;
});
}
(0, _createClass2["default"])(ColumnGroups, [{
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: "lastLeaf",
get: function get() {
var avaliableColumns = this.columns.filter(function (column) {
return !column.hidden;
});
return avaliableColumns[avaliableColumns.length - 1].lastLeaf;
}
}, {
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;
}
}]);
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, "lastLeaf", null);
(0, _tslib.__decorate)([_mobx.computed], ColumnGroups.prototype, "width", null);
(0, _tslib.__decorate)([_mobx.computed], ColumnGroups.prototype, "left", null);
(0, _tslib.__decorate)([_mobx.computed], ColumnGroups.prototype, "right", null);
//# sourceMappingURL=ColumnGroups.js.map