choerodon-ui
Version:
An enterprise-class UI design language and React-based implementation
120 lines (100 loc) • 3.2 kB
JavaScript
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
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 _Column = require("./Column");
var _ColumnGroups = _interopRequireDefault(require("./ColumnGroups"));
var _utils = require("./utils");
var ColumnGroup =
/*#__PURE__*/
function () {
function ColumnGroup(column, parent) {
(0, _classCallCheck2["default"])(this, ColumnGroup);
this.column = column;
this.parent = parent;
var children = column.children;
if (children && children.length > 0) {
this.children = new _ColumnGroups["default"](children, this);
}
}
(0, _createClass2["default"])(ColumnGroup, [{
key: "key",
get: function get() {
return (0, _utils.getColumnKey)(this.column);
}
}, {
key: "rowSpan",
get: function get() {
return this.parent.deep - this.deep + 1;
}
}, {
key: "colSpan",
get: function get() {
return this.children ? this.children.wide : 1;
}
}, {
key: "deep",
get: function get() {
return this.children ? this.children.deep + 1 : this.hidden ? 0 : 1;
}
}, {
key: "hidden",
get: function get() {
return this.children ? this.children.hidden : !!this.column.hidden;
}
}, {
key: "lastLeaf",
get: function get() {
return this.children ? this.children.lastLeaf : this.column;
}
}, {
key: "width",
get: function get() {
return this.children ? this.children.width : (0, _Column.columnWidth)(this.column);
}
}, {
key: "left",
get: function get() {
var prev = this.prev,
parent = this.parent;
if (prev) {
return prev.left + prev.width;
}
if (parent) {
return parent.left;
}
return 0;
}
}, {
key: "right",
get: function get() {
var next = this.next,
parent = this.parent;
if (next) {
return next.right + next.width;
}
if (parent) {
return parent.right;
}
return 0;
}
}]);
return ColumnGroup;
}();
exports["default"] = ColumnGroup;
(0, _tslib.__decorate)([_mobx.computed], ColumnGroup.prototype, "key", null);
(0, _tslib.__decorate)([_mobx.computed], ColumnGroup.prototype, "rowSpan", null);
(0, _tslib.__decorate)([_mobx.computed], ColumnGroup.prototype, "colSpan", null);
(0, _tslib.__decorate)([_mobx.computed], ColumnGroup.prototype, "deep", null);
(0, _tslib.__decorate)([_mobx.computed], ColumnGroup.prototype, "hidden", null);
(0, _tslib.__decorate)([_mobx.computed], ColumnGroup.prototype, "lastLeaf", null);
(0, _tslib.__decorate)([_mobx.computed], ColumnGroup.prototype, "width", null);
(0, _tslib.__decorate)([_mobx.computed], ColumnGroup.prototype, "left", null);
(0, _tslib.__decorate)([_mobx.computed], ColumnGroup.prototype, "right", null);
//# sourceMappingURL=ColumnGroup.js.map