UNPKG

@flexis/ui

Version:

Styleless React Components

94 lines (78 loc) 5.39 kB
import _mapInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/map"; import _Array$from from "@babel/runtime-corejs3/core-js-stable/array/from"; import _forEachInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/for-each"; import _bindInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/bind"; import _classCallCheck from "@babel/runtime-corejs3/helpers/classCallCheck"; import _createClass from "@babel/runtime-corejs3/helpers/createClass"; import { ResizeObserver } from './ResizeObserver'; export var ColumnsSyncObserver = /*#__PURE__*/function () { function ColumnsSyncObserver(callback) { var _context; _classCallCheck(this, ColumnsSyncObserver); this.ro = null; this.callback = null; this.source = null; this.target = null; this.callback = callback; this.ro = new ResizeObserver(_bindInstanceProperty(_context = this.sync).call(_context, this)); } _createClass(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(); _forEachInstanceProperty(_context2 = _Array$from(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; }(); export function syncColumns(sourceRow, targetRow) { var sourceChildren = _Array$from(sourceRow.children); var targetChildren = _Array$from(targetRow.children); var columnsWidths = _mapInstanceProperty(sourceChildren).call(sourceChildren, function (cell) { return cell.offsetWidth; }); var sourceChildrenCount = sourceChildren.length; _forEachInstanceProperty(targetChildren).call(targetChildren, function (cell, i) { if (i < sourceChildrenCount) { cell.style.width = "".concat(columnsWidths[i], "px"); } }); } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL0NvbHVtbnNTeW5jT2JzZXJ2ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsU0FDQyxjQURELFFBSU8sa0JBSlA7QUFNQSxXQUFhLG1CQUFiO0FBT0MsK0JBQVksUUFBWixFQUE2QztBQUFBOztBQUFBOztBQUxyQyxTQUFBLEVBQUEsR0FBcUIsSUFBckI7QUFDQSxTQUFBLFFBQUEsR0FBbUMsSUFBbkM7QUFDQSxTQUFBLE1BQUEsR0FBc0IsSUFBdEI7QUFDQSxTQUFBLE1BQUEsR0FBc0IsSUFBdEI7QUFHUCxTQUFLLFFBQUwsR0FBZ0IsUUFBaEI7QUFDQSxTQUFLLEVBQUwsR0FBVSxJQUFJLGNBQUosQ0FBbUIsc0NBQUssSUFBTCxpQkFBZSxJQUFmLENBQW5CLENBQVY7QUFDQTs7QUFWRjtBQUFBO0FBQUEsNEJBWVMsTUFaVCxFQVk4QixNQVo5QixFQVlpRDtBQUFBLFVBR3RDLFVBSHNDLEdBSzNDLElBTDJDLENBRzlDLE1BSDhDO0FBQUEsVUFJOUMsRUFKOEMsR0FLM0MsSUFMMkMsQ0FJOUMsRUFKOEM7O0FBTy9DLFVBQUksTUFBTSxLQUFLLElBQVgsSUFBbUIsTUFBTSxLQUFLLElBQWxDLEVBQXdDO0FBQ3ZDO0FBQ0E7O0FBRUQsV0FBSyxNQUFMLEdBQWMsTUFBZDtBQUNBLFdBQUssTUFBTCxHQUFjLE1BQWQ7O0FBRUEsVUFBSSxNQUFNLEtBQUssVUFBZixFQUEyQjtBQUFBOztBQUMxQixRQUFBLEVBQUUsQ0FBQyxVQUFIOztBQUNBLHlEQUFXLE1BQU0sQ0FBQyxRQUFsQixtQkFBb0MsVUFBQyxJQUFELEVBQVM7QUFDNUMsVUFBQSxFQUFFLENBQUMsT0FBSCxDQUFXLElBQVg7QUFDQSxTQUZEO0FBR0E7O0FBRUQsV0FBSyxJQUFMO0FBQ0E7QUFsQ0Y7QUFBQTtBQUFBLDJCQW9DNkU7QUFBQSxVQUF2RSxPQUF1RSx1RUFBdEMsRUFBc0M7QUFBQSxVQUFsQyxRQUFrQyx1RUFBUCxLQUFLLEVBQUU7QUFBQSxVQUcxRSxRQUgwRSxHQU12RSxJQU51RSxDQUcxRSxRQUgwRTtBQUFBLFVBSTFFLE1BSjBFLEdBTXZFLElBTnVFLENBSTFFLE1BSjBFO0FBQUEsVUFLMUUsTUFMMEUsR0FNdkUsSUFOdUUsQ0FLMUUsTUFMMEU7O0FBUTNFLFVBQUksTUFBTSxLQUFLLElBQVgsSUFBbUIsTUFBTSxLQUFLLElBQWxDLEVBQXdDO0FBQ3ZDLFFBQUEsV0FBVyxDQUFDLE1BQUQsRUFBUyxNQUFULENBQVg7QUFDQTs7QUFFRCxVQUFJLE9BQU8sUUFBUCxLQUFvQixVQUF4QixFQUFvQztBQUNuQyxRQUFBLFFBQVEsQ0FBQyxPQUFELEVBQVUsUUFBVixDQUFSO0FBQ0E7QUFDRDtBQW5ERjtBQUFBO0FBQUEsOEJBcURRO0FBQ04sV0FBSyxFQUFMLENBQVEsVUFBUjtBQUNBLFdBQUssRUFBTCxHQUFVLElBQVY7QUFDQSxXQUFLLFFBQUwsR0FBZ0IsSUFBaEI7QUFDQSxXQUFLLE1BQUwsR0FBYyxJQUFkO0FBQ0EsV0FBSyxNQUFMLEdBQWMsSUFBZDtBQUNBO0FBM0RGOztBQUFBO0FBQUE7QUE4REEsT0FBTSxTQUFVLFdBQVYsQ0FBc0IsU0FBdEIsRUFBOEMsU0FBOUMsRUFBb0U7QUFFekUsTUFBTSxjQUFjLEdBQUcsWUFBVyxTQUFTLENBQUMsUUFBckIsQ0FBdkI7O0FBQ0EsTUFBTSxjQUFjLEdBQUcsWUFBVyxTQUFTLENBQUMsUUFBckIsQ0FBdkI7O0FBQ0EsTUFBTSxhQUFhLEdBQUcscUJBQUEsY0FBYyxNQUFkLENBQUEsY0FBYyxFQUFLLFVBQUEsSUFBSTtBQUFBLFdBQUksSUFBSSxDQUFDLFdBQVQ7QUFBQSxHQUFULENBQXBDOztBQUNBLE1BQU0sbUJBQW1CLEdBQUcsY0FBYyxDQUFDLE1BQTNDOztBQUVBLDJCQUFBLGNBQWMsTUFBZCxDQUFBLGNBQWMsRUFBUyxVQUFDLElBQUQsRUFBTyxDQUFQLEVBQVk7QUFFbEMsUUFBSSxDQUFDLEdBQUcsbUJBQVIsRUFBNkI7QUFDNUIsTUFBQSxJQUFJLENBQUMsS0FBTCxDQUFXLEtBQVgsYUFBc0IsYUFBYSxDQUFDLENBQUQsQ0FBbkM7QUFDQTtBQUNELEdBTGEsQ0FBZDtBQU1BIiwic291cmNlUm9vdCI6IiJ9