UNPKG

@flexis/ui

Version:

Styleless React Components

110 lines (87 loc) 5.84 kB
"use strict"; 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=