@flexis/ui
Version:
Styleless React Components
110 lines (87 loc) • 5.84 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
_Object$defineProperty(exports, "__esModule", {
value: true
});
exports.syncColumns = syncColumns;
exports.ColumnsSyncObserver = void 0;
var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/map"));
var _from = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/array/from"));
var _forEach = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/for-each"));
var _bind = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/bind"));
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/classCallCheck"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/createClass"));
var _ResizeObserver = require("./ResizeObserver");
var ColumnsSyncObserver = /*#__PURE__*/function () {
function ColumnsSyncObserver(callback) {
var _context;
(0, _classCallCheck2.default)(this, ColumnsSyncObserver);
this.ro = null;
this.callback = null;
this.source = null;
this.target = null;
this.callback = callback;
this.ro = new _ResizeObserver.ResizeObserver((0, _bind.default)(_context = this.sync).call(_context, this));
}
(0, _createClass2.default)(ColumnsSyncObserver, [{
key: "observe",
value: function observe(source, target) {
var prevSource = this.source,
ro = this.ro;
if (source === null || target === null) {
return;
}
this.source = source;
this.target = target;
if (source !== prevSource) {
var _context2;
ro.disconnect();
(0, _forEach.default)(_context2 = (0, _from.default)(source.children)).call(_context2, function (cell) {
ro.observe(cell);
});
}
this.sync();
}
}, {
key: "sync",
value: function sync() {
var entries = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
var observer = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.ro;
var callback = this.callback,
source = this.source,
target = this.target;
if (source !== null && target !== null) {
syncColumns(source, target);
}
if (typeof callback === 'function') {
callback(entries, observer);
}
}
}, {
key: "destroy",
value: function destroy() {
this.ro.disconnect();
this.ro = null;
this.callback = null;
this.source = null;
this.target = null;
}
}]);
return ColumnsSyncObserver;
}();
exports.ColumnsSyncObserver = ColumnsSyncObserver;
function syncColumns(sourceRow, targetRow) {
var sourceChildren = (0, _from.default)(sourceRow.children);
var targetChildren = (0, _from.default)(targetRow.children);
var columnsWidths = (0, _map.default)(sourceChildren).call(sourceChildren, function (cell) {
return cell.offsetWidth;
});
var sourceChildrenCount = sourceChildren.length;
(0, _forEach.default)(targetChildren).call(targetChildren, function (cell, i) {
if (i < sourceChildrenCount) {
cell.style.width = "".concat(columnsWidths[i], "px");
}
});
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL0NvbHVtbnNTeW5jT2JzZXJ2ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztJQU1hLG1CO0FBT1osK0JBQVksUUFBWixFQUE2QztBQUFBOztBQUFBO0FBTHJDLFNBQUEsRUFBQSxHQUFxQixJQUFyQjtBQUNBLFNBQUEsUUFBQSxHQUFtQyxJQUFuQztBQUNBLFNBQUEsTUFBQSxHQUFzQixJQUF0QjtBQUNBLFNBQUEsTUFBQSxHQUFzQixJQUF0QjtBQUdQLFNBQUssUUFBTCxHQUFnQixRQUFoQjtBQUNBLFNBQUssRUFBTCxHQUFVLElBQUksOEJBQUosQ0FBbUIsbUNBQUssSUFBTCxpQkFBZSxJQUFmLENBQW5CLENBQVY7QUFDQTs7Ozs0QkFFTyxNLEVBQXFCLE0sRUFBbUI7QUFBQSxVQUd0QyxVQUhzQyxHQUszQyxJQUwyQyxDQUc5QyxNQUg4QztBQUFBLFVBSTlDLEVBSjhDLEdBSzNDLElBTDJDLENBSTlDLEVBSjhDOztBQU8vQyxVQUFJLE1BQU0sS0FBSyxJQUFYLElBQW1CLE1BQU0sS0FBSyxJQUFsQyxFQUF3QztBQUN2QztBQUNBOztBQUVELFdBQUssTUFBTCxHQUFjLE1BQWQ7QUFDQSxXQUFLLE1BQUwsR0FBYyxNQUFkOztBQUVBLFVBQUksTUFBTSxLQUFLLFVBQWYsRUFBMkI7QUFBQTs7QUFDMUIsUUFBQSxFQUFFLENBQUMsVUFBSDtBQUNBLDZEQUFXLE1BQU0sQ0FBQyxRQUFsQixtQkFBb0MsVUFBQyxJQUFELEVBQVM7QUFDNUMsVUFBQSxFQUFFLENBQUMsT0FBSCxDQUFXLElBQVg7QUFDQSxTQUZEO0FBR0E7O0FBRUQsV0FBSyxJQUFMO0FBQ0E7OzsyQkFFMkU7QUFBQSxVQUF2RSxPQUF1RSx1RUFBdEMsRUFBc0M7QUFBQSxVQUFsQyxRQUFrQyx1RUFBUCxLQUFLLEVBQUU7QUFBQSxVQUcxRSxRQUgwRSxHQU12RSxJQU51RSxDQUcxRSxRQUgwRTtBQUFBLFVBSTFFLE1BSjBFLEdBTXZFLElBTnVFLENBSTFFLE1BSjBFO0FBQUEsVUFLMUUsTUFMMEUsR0FNdkUsSUFOdUUsQ0FLMUUsTUFMMEU7O0FBUTNFLFVBQUksTUFBTSxLQUFLLElBQVgsSUFBbUIsTUFBTSxLQUFLLElBQWxDLEVBQXdDO0FBQ3ZDLFFBQUEsV0FBVyxDQUFDLE1BQUQsRUFBUyxNQUFULENBQVg7QUFDQTs7QUFFRCxVQUFJLE9BQU8sUUFBUCxLQUFvQixVQUF4QixFQUFvQztBQUNuQyxRQUFBLFFBQVEsQ0FBQyxPQUFELEVBQVUsUUFBVixDQUFSO0FBQ0E7QUFDRDs7OzhCQUVNO0FBQ04sV0FBSyxFQUFMLENBQVEsVUFBUjtBQUNBLFdBQUssRUFBTCxHQUFVLElBQVY7QUFDQSxXQUFLLFFBQUwsR0FBZ0IsSUFBaEI7QUFDQSxXQUFLLE1BQUwsR0FBYyxJQUFkO0FBQ0EsV0FBSyxNQUFMLEdBQWMsSUFBZDtBQUNBOzs7Ozs7O0FBR0ksU0FBVSxXQUFWLENBQXNCLFNBQXRCLEVBQThDLFNBQTlDLEVBQW9FO0FBRXpFLE1BQU0sY0FBYyxHQUFHLG1CQUFXLFNBQVMsQ0FBQyxRQUFyQixDQUF2QjtBQUNBLE1BQU0sY0FBYyxHQUFHLG1CQUFXLFNBQVMsQ0FBQyxRQUFyQixDQUF2QjtBQUNBLE1BQU0sYUFBYSxHQUFHLGtCQUFBLGNBQWMsTUFBZCxDQUFBLGNBQWMsRUFBSyxVQUFBLElBQUk7QUFBQSxXQUFJLElBQUksQ0FBQyxXQUFUO0FBQUEsR0FBVCxDQUFwQztBQUNBLE1BQU0sbUJBQW1CLEdBQUcsY0FBYyxDQUFDLE1BQTNDO0FBRUEsd0JBQUEsY0FBYyxNQUFkLENBQUEsY0FBYyxFQUFTLFVBQUMsSUFBRCxFQUFPLENBQVAsRUFBWTtBQUVsQyxRQUFJLENBQUMsR0FBRyxtQkFBUixFQUE2QjtBQUM1QixNQUFBLElBQUksQ0FBQyxLQUFMLENBQVcsS0FBWCxhQUFzQixhQUFhLENBQUMsQ0FBRCxDQUFuQztBQUNBO0FBQ0QsR0FMYSxDQUFkO0FBTUEiLCJzb3VyY2VSb290IjoiIn0=