adui
Version:
<div> <img src="https://wxa.wxs.qq.com/mpweb/delivery/legacy/wxadtouch/upload/t1/od834zef_52939fc6.png" style="margin:40px 0 0 -8px; background-color: #fcfcfc; box-shadow: none;" /> </div>
148 lines • 19.4 kB
JavaScript
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }
function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
import React from "react";
var ColumnManager = _createClass(function ColumnManager(_elements) {
var _this = this;
_classCallCheck(this, ColumnManager);
this.cached = {};
this.columns = void 0;
this.isAnyColumnsFixed = function () {
return _this.cache("isAnyColumnsFixed", function () {
return _this.columns.some(function (column) {
return !!column.fixed;
});
});
};
this.isAnyColumnsLeftFixed = function () {
return _this.cache("isAnyColumnsLeftFixed", function () {
return _this.columns.some(function (column) {
return column.fixed === "left" || column.fixed === true;
});
});
};
this.isAnyColumnsRightFixed = function () {
return _this.cache("isAnyColumnsRightFixed", function () {
return _this.columns.some(function (column) {
return column.fixed === "right";
});
});
};
this.getLeftColumns = function () {
return _this.cache("getLeftColumns", function () {
return _this.columns.filter(function (column) {
return column.fixed === "left" || column.fixed === true;
});
});
};
this.getMainColumns = function () {
return _this.cache("getMainColumns", function () {
return _this.columns.filter(function (column) {
return !column.fixed;
});
});
};
this.getRightColumns = function () {
return _this.cache("getRightColumns", function () {
return _this.columns.filter(function (column) {
return column.fixed === "right";
});
});
};
this.getColumns = function () {
return [].concat(_toConsumableArray(_this.getLeftColumns()), _toConsumableArray(_this.getMainColumns()), _toConsumableArray(_this.getRightColumns()));
};
this.getLeftColumnsWidth = function () {
return _this.cache("getLeftColumnsWidth", function () {
return _this.getColumnsWidthBase(_this.getLeftColumns());
});
};
this.getRightColumnsWidth = function () {
return _this.cache("getRightColumnsWidth", function () {
return _this.getColumnsWidthBase(_this.getRightColumns());
});
};
this.getGroupColumnsDepth = function () {
return _this.cache("getGroupColumnsDepth", function () {
var depth = 1;
var children = _this.columns.filter(function (column) {
return !!column.children;
});
if (children.length) {
depth = 2;
children.forEach(function (child) {
var grands = child.children.some(function (grand) {
return !!grand.children;
});
if (grands) {
depth = 3;
}
});
}
return depth;
});
};
this.getColumnsWidthBase = function (columns) {
var sum = "calc(";
columns.forEach(function (column) {
var width = column.width;
if (typeof width === "number") {
sum += "".concat(width, "px + ");
} else {
sum += "".concat(width, " + ");
}
});
return "".concat(sum.slice(0, -2), ")");
};
this.normalize = function (elementsParam) {
var columns = [];
var elements = Array.isArray(elementsParam) ? elementsParam : [elementsParam];
if (elements.find(function (o) {
return React.isValidElement(o);
})) {
React.Children.forEach(elements, function (element) {
if (!React.isValidElement(element)) {
return;
}
var column = _objectSpread({}, element.props);
var children = column.children;
if (children) {
children = Array.isArray(children) ? children : [children];
column.children = _this.normalize(children);
}
columns.push(column);
});
} else {
elements.forEach(function (o) {
columns.push(o);
});
}
return columns;
};
this.reset = function (elements) {
_this.columns = _this.normalize(elements);
_this.cached = {};
};
this.cache = function (name, fn) {
if (name in _this.cached) {
return _this.cached[name];
}
_this.cached[name] = fn();
return _this.cached[name];
};
this.columns = this.normalize(_elements);
});
export { ColumnManager as default };
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIkNvbHVtbk1hbmFnZXIiLCJfY3JlYXRlQ2xhc3MiLCJlbGVtZW50cyIsIl90aGlzIiwiX2NsYXNzQ2FsbENoZWNrIiwiY2FjaGVkIiwiY29sdW1ucyIsImlzQW55Q29sdW1uc0ZpeGVkIiwiY2FjaGUiLCJzb21lIiwiY29sdW1uIiwiZml4ZWQiLCJpc0FueUNvbHVtbnNMZWZ0Rml4ZWQiLCJpc0FueUNvbHVtbnNSaWdodEZpeGVkIiwiZ2V0TGVmdENvbHVtbnMiLCJmaWx0ZXIiLCJnZXRNYWluQ29sdW1ucyIsImdldFJpZ2h0Q29sdW1ucyIsImdldENvbHVtbnMiLCJjb25jYXQiLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJnZXRMZWZ0Q29sdW1uc1dpZHRoIiwiZ2V0Q29sdW1uc1dpZHRoQmFzZSIsImdldFJpZ2h0Q29sdW1uc1dpZHRoIiwiZ2V0R3JvdXBDb2x1bW5zRGVwdGgiLCJkZXB0aCIsImNoaWxkcmVuIiwibGVuZ3RoIiwiZm9yRWFjaCIsImNoaWxkIiwiZ3JhbmRzIiwiZ3JhbmQiLCJzdW0iLCJ3aWR0aCIsInNsaWNlIiwibm9ybWFsaXplIiwiZWxlbWVudHNQYXJhbSIsIkFycmF5IiwiaXNBcnJheSIsImZpbmQiLCJvIiwiaXNWYWxpZEVsZW1lbnQiLCJDaGlsZHJlbiIsImVsZW1lbnQiLCJfb2JqZWN0U3ByZWFkIiwicHJvcHMiLCJwdXNoIiwicmVzZXQiLCJuYW1lIiwiZm4iLCJkZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vLi4vY29tcG9uZW50cy90YWJsZS9Db2x1bW5NYW5hZ2VyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIlxuXG5pbnRlcmZhY2UgSUJhc2VPYmplY3Qge1xuICBba2V5OiBzdHJpbmddOiBhbnlcbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ29sdW1uTWFuYWdlciB7XG4gIHB1YmxpYyBjYWNoZWQ6IGFueSA9IHt9XG5cbiAgcHVibGljIGNvbHVtbnM6IElCYXNlT2JqZWN0W11cblxuICBjb25zdHJ1Y3RvcihlbGVtZW50czogSUJhc2VPYmplY3RbXSkge1xuICAgIHRoaXMuY29sdW1ucyA9IHRoaXMubm9ybWFsaXplKGVsZW1lbnRzKVxuICB9XG5cbiAgcHVibGljIGlzQW55Q29sdW1uc0ZpeGVkID0gKCkgPT5cbiAgICB0aGlzLmNhY2hlKFwiaXNBbnlDb2x1bW5zRml4ZWRcIiwgKCkgPT5cbiAgICAgIHRoaXMuY29sdW1ucy5zb21lKChjb2x1bW46IElCYXNlT2JqZWN0KSA9PiAhIWNvbHVtbi5maXhlZClcbiAgICApXG5cbiAgcHVibGljIGlzQW55Q29sdW1uc0xlZnRGaXhlZCA9ICgpID0+XG4gICAgdGhpcy5jYWNoZShcImlzQW55Q29sdW1uc0xlZnRGaXhlZFwiLCAoKSA9PlxuICAgICAgdGhpcy5jb2x1bW5zLnNvbWUoXG4gICAgICAgIChjb2x1bW46IElCYXNlT2JqZWN0KSA9PlxuICAgICAgICAgIGNvbHVtbi5maXhlZCA9PT0gXCJsZWZ0XCIgfHwgY29sdW1uLmZpeGVkID09PSB0cnVlXG4gICAgICApXG4gICAgKVxuXG4gIHB1YmxpYyBpc0FueUNvbHVtbnNSaWdodEZpeGVkID0gKCkgPT5cbiAgICB0aGlzLmNhY2hlKFwiaXNBbnlDb2x1bW5zUmlnaHRGaXhlZFwiLCAoKSA9PlxuICAgICAgdGhpcy5jb2x1bW5zLnNvbWUoKGNvbHVtbjogSUJhc2VPYmplY3QpID0+IGNvbHVtbi5maXhlZCA9PT0gXCJyaWdodFwiKVxuICAgIClcblxuICBwdWJsaWMgZ2V0TGVmdENvbHVtbnMgPSAoKSA9PlxuICAgIHRoaXMuY2FjaGUoXCJnZXRMZWZ0Q29sdW1uc1wiLCAoKSA9PlxuICAgICAgdGhpcy5jb2x1bW5zLmZpbHRlcihcbiAgICAgICAgKGNvbHVtbjogSUJhc2VPYmplY3QpID0+XG4gICAgICAgICAgY29sdW1uLmZpeGVkID09PSBcImxlZnRcIiB8fCBjb2x1bW4uZml4ZWQgPT09IHRydWVcbiAgICAgIClcbiAgICApXG5cbiAgcHVibGljIGdldE1haW5Db2x1bW5zID0gKCkgPT5cbiAgICB0aGlzLmNhY2hlKFwiZ2V0TWFpbkNvbHVtbnNcIiwgKCkgPT5cbiAgICAgIHRoaXMuY29sdW1ucy5maWx0ZXIoKGNvbHVtbjogSUJhc2VPYmplY3QpID0+ICFjb2x1bW4uZml4ZWQpXG4gICAgKVxuXG4gIHB1YmxpYyBnZXRSaWdodENvbHVtbnMgPSAoKSA9PlxuICAgIHRoaXMuY2FjaGUoXCJnZXRSaWdodENvbHVtbnNcIiwgKCkgPT5cbiAgICAgIHRoaXMuY29sdW1ucy5maWx0ZXIoKGNvbHVtbjogSUJhc2VPYmplY3QpID0+IGNvbHVtbi5maXhlZCA9PT0gXCJyaWdodFwiKVxuICAgIClcblxuICBwdWJsaWMgZ2V0Q29sdW1ucyA9ICgpID0+IFtcbiAgICAuLi50aGlzLmdldExlZnRDb2x1bW5zKCksXG4gICAgLi4udGhpcy5nZXRNYWluQ29sdW1ucygpLFxuICAgIC4uLnRoaXMuZ2V0UmlnaHRDb2x1bW5zKCksXG4gIF1cblxuICBwdWJsaWMgZ2V0TGVmdENvbHVtbnNXaWR0aCA9ICgpID0+XG4gICAgdGhpcy5jYWNoZShcImdldExlZnRDb2x1bW5zV2lkdGhcIiwgKCkgPT5cbiAgICAgIHRoaXMuZ2V0Q29sdW1uc1dpZHRoQmFzZSh0aGlzLmdldExlZnRDb2x1bW5zKCkpXG4gICAgKVxuXG4gIHB1YmxpYyBnZXRSaWdodENvbHVtbnNXaWR0aCA9ICgpID0+XG4gICAgdGhpcy5jYWNoZShcImdldFJpZ2h0Q29sdW1uc1dpZHRoXCIsICgpID0+XG4gICAgICB0aGlzLmdldENvbHVtbnNXaWR0aEJhc2UodGhpcy5nZXRSaWdodENvbHVtbnMoKSlcbiAgICApXG5cbiAgcHVibGljIGdldEdyb3VwQ29sdW1uc0RlcHRoID0gKCkgPT5cbiAgICB0aGlzLmNhY2hlKFwiZ2V0R3JvdXBDb2x1bW5zRGVwdGhcIiwgKCkgPT4ge1xuICAgICAgbGV0IGRlcHRoID0gMVxuICAgICAgY29uc3QgY2hpbGRyZW4gPSB0aGlzLmNvbHVtbnMuZmlsdGVyKFxuICAgICAgICAoY29sdW1uOiBJQmFzZU9iamVjdCkgPT4gISFjb2x1bW4uY2hpbGRyZW5cbiAgICAgIClcbiAgICAgIGlmIChjaGlsZHJlbi5sZW5ndGgpIHtcbiAgICAgICAgZGVwdGggPSAyXG4gICAgICAgIGNoaWxkcmVuLmZvckVhY2goKGNoaWxkKSA9PiB7XG4gICAgICAgICAgY29uc3QgZ3JhbmRzID0gY2hpbGQuY2hpbGRyZW4uc29tZShcbiAgICAgICAgICAgIChncmFuZDogSUJhc2VPYmplY3QpID0+ICEhZ3JhbmQuY2hpbGRyZW5cbiAgICAgICAgICApXG4gICAgICAgICAgaWYgKGdyYW5kcykge1xuICAgICAgICAgICAgZGVwdGggPSAzXG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgfVxuICAgICAgcmV0dXJuIGRlcHRoXG4gICAgfSlcblxuICBwdWJsaWMgZ2V0Q29sdW1uc1dpZHRoQmFzZSA9IChjb2x1bW5zOiBJQmFzZU9iamVjdFtdKSA9PiB7XG4gICAgbGV0IHN1bSA9IFwiY2FsYyhcIlxuICAgIGNvbHVtbnMuZm9yRWFjaCgoY29sdW1uOiBJQmFzZU9iamVjdCkgPT4ge1xuICAgICAgY29uc3QgeyB3aWR0aCB9ID0gY29sdW1uXG4gICAgICBpZiAodHlwZW9mIHdpZHRoID09PSBcIm51bWJlclwiKSB7XG4gICAgICAgIHN1bSArPSBgJHt3aWR0aH1weCArIGBcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHN1bSArPSBgJHt3aWR0aH0gKyBgXG4gICAgICB9XG4gICAgfSlcbiAgICByZXR1cm4gYCR7c3VtLnNsaWNlKDAsIC0yKX0pYFxuICB9XG5cbiAgcHVibGljIG5vcm1hbGl6ZSA9IChlbGVtZW50c1BhcmFtOiBJQmFzZU9iamVjdFtdKSA9PiB7XG4gICAgY29uc3QgY29sdW1uczogSUJhc2VPYmplY3RbXSA9IFtdXG4gICAgY29uc3QgZWxlbWVudHMgPSBBcnJheS5pc0FycmF5KGVsZW1lbnRzUGFyYW0pXG4gICAgICA/IGVsZW1lbnRzUGFyYW1cbiAgICAgIDogW2VsZW1lbnRzUGFyYW1dXG4gICAgaWYgKGVsZW1lbnRzLmZpbmQoKG8pID0+IFJlYWN0LmlzVmFsaWRFbGVtZW50KG8pKSkge1xuICAgICAgUmVhY3QuQ2hpbGRyZW4uZm9yRWFjaChlbGVtZW50cywgKGVsZW1lbnQpID0+IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIENvbHVtbiDlkI3lrZjlrp7kuqHvvIzlrp7pmYXkuIrmmK/ku44gY2hpbGRyZW4g6I635Y+W5q+P5LiA5YiX55qEIHByb3BzXG4gICAgICAgICAqIOWboOatpOmcgOimgeWIpOaWrSBjaGlsZHJlbiBpc1ZhbGlkRWxlbWVudO+8jOWGjeS7jiBjaGlsZHJlbiDpgY3ljoYgcHJvcFxuICAgICAgICAgKi9cbiAgICAgICAgaWYgKCFSZWFjdC5pc1ZhbGlkRWxlbWVudChlbGVtZW50KSkge1xuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNvbHVtbjogYW55ID0geyAuLi4oZWxlbWVudC5wcm9wcyBhcyB7fSkgfVxuICAgICAgICBsZXQgeyBjaGlsZHJlbiB9ID0gY29sdW1uXG4gICAgICAgIGlmIChjaGlsZHJlbikge1xuICAgICAgICAgIGNoaWxkcmVuID0gQXJyYXkuaXNBcnJheShjaGlsZHJlbikgPyBjaGlsZHJlbiA6IFtjaGlsZHJlbl1cbiAgICAgICAgICBjb2x1bW4uY2hpbGRyZW4gPSB0aGlzLm5vcm1hbGl6ZShjaGlsZHJlbilcbiAgICAgICAgfVxuICAgICAgICBjb2x1bW5zLnB1c2goY29sdW1uKVxuICAgICAgfSlcbiAgICB9IGVsc2Uge1xuICAgICAgZWxlbWVudHMuZm9yRWFjaCgobykgPT4ge1xuICAgICAgICBjb2x1bW5zLnB1c2gobylcbiAgICAgIH0pXG4gICAgfVxuICAgIHJldHVybiBjb2x1bW5zXG4gIH1cblxuICBwdWJsaWMgcmVzZXQgPSAoZWxlbWVudHM6IElCYXNlT2JqZWN0W10pID0+IHtcbiAgICB0aGlzLmNvbHVtbnMgPSB0aGlzLm5vcm1hbGl6ZShlbGVtZW50cylcbiAgICB0aGlzLmNhY2hlZCA9IHt9XG4gIH1cblxuICBwdWJsaWMgY2FjaGUgPSAobmFtZTogc3RyaW5nLCBmbjogKCkgPT4gdm9pZCkgPT4ge1xuICAgIGlmIChuYW1lIGluIHRoaXMuY2FjaGVkKSB7XG4gICAgICByZXR1cm4gdGhpcy5jYWNoZWRbbmFtZV1cbiAgICB9XG4gICAgdGhpcy5jYWNoZWRbbmFtZV0gPSBmbigpXG4gICAgcmV0dXJuIHRoaXMuY2FjaGVkW25hbWVdXG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsT0FBT0EsS0FBSyxNQUFNLE9BQU87QUFBQSxJQU1KQyxhQUFhLEdBQUFDLFlBQUEsQ0FLaEMsU0FBQUQsY0FBWUUsU0FBdUIsRUFBRTtFQUFBLElBQUFDLEtBQUE7RUFBQUMsZUFBQSxPQUFBSixhQUFBO0VBQUEsS0FKOUJLLE1BQU0sR0FBUSxDQUFDLENBQUM7RUFBQSxLQUVoQkMsT0FBTztFQUFBLEtBTVBDLGlCQUFpQixHQUFHO0lBQUEsT0FDekJKLEtBQUksQ0FBQ0ssS0FBSyxDQUFDLG1CQUFtQixFQUFFO01BQUEsT0FDOUJMLEtBQUksQ0FBQ0csT0FBTyxDQUFDRyxJQUFJLENBQUMsVUFBQ0MsTUFBbUI7UUFBQSxPQUFLLENBQUMsQ0FBQ0EsTUFBTSxDQUFDQyxLQUFLO01BQUEsRUFBQztJQUFBLENBQzVELENBQUM7RUFBQTtFQUFBLEtBRUlDLHFCQUFxQixHQUFHO0lBQUEsT0FDN0JULEtBQUksQ0FBQ0ssS0FBSyxDQUFDLHVCQUF1QixFQUFFO01BQUEsT0FDbENMLEtBQUksQ0FBQ0csT0FBTyxDQUFDRyxJQUFJLENBQ2YsVUFBQ0MsTUFBbUI7UUFBQSxPQUNsQkEsTUFBTSxDQUFDQyxLQUFLLEtBQUssTUFBTSxJQUFJRCxNQUFNLENBQUNDLEtBQUssS0FBSyxJQUFJO01BQUEsQ0FDcEQsQ0FBQztJQUFBLENBQ0gsQ0FBQztFQUFBO0VBQUEsS0FFSUUsc0JBQXNCLEdBQUc7SUFBQSxPQUM5QlYsS0FBSSxDQUFDSyxLQUFLLENBQUMsd0JBQXdC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