UNPKG

@integec/grid-tools

Version:
111 lines (84 loc) 4.06 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _min = require('ramda/src/min'); var _min2 = _interopRequireDefault(_min); var _isNil = require('ramda/src/isNil'); var _isNil2 = _interopRequireDefault(_isNil); var _takeWhile = require('ramda/src/takeWhile'); var _takeWhile2 = _interopRequireDefault(_takeWhile); var _compose = require('ramda/src/compose'); var _compose2 = _interopRequireDefault(_compose); var _drop = require('ramda/src/drop'); var _drop2 = _interopRequireDefault(_drop); var _take = require('ramda/src/take'); var _take2 = _interopRequireDefault(_take); var _utils = require('./utils'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var splitFixedCols = function splitFixedCols(numOfFixedCols, headers) { return { rowHeaders: (0, _take2.default)(numOfFixedCols, headers), dataHeaders: (0, _drop2.default)(numOfFixedCols, headers) }; }; var countKeyCols = (0, _compose2.default)(function (l) { return l.length; }, (0, _takeWhile2.default)(function (h) { return h.isKey; })); var computeGridViewProps = function computeGridViewProps(_ref) { var headers = _ref.headers, data = _ref.data, rowHeight = _ref.rowHeight, width = _ref.width, height = _ref.height, _ref$scrollBarWidthAd = _ref.scrollBarWidthAdjustment, scrollBarWidthAdjustment = _ref$scrollBarWidthAd === undefined ? 17 : _ref$scrollBarWidthAd, _ref$scrollBarHeightA = _ref.scrollBarHeightAdjustment, scrollBarHeightAdjustment = _ref$scrollBarHeightA === undefined ? 17 : _ref$scrollBarHeightA, _ref$fixedScrollHeigh = _ref.fixedScrollHeightAdjustment, fixedScrollHeightAdjustment = _ref$fixedScrollHeigh === undefined ? 6 : _ref$fixedScrollHeigh, _ref$borderSize = _ref.borderSize, borderSize = _ref$borderSize === undefined ? 1 : _ref$borderSize, fixedColCount = _ref.fixedColCount, autoFixColByKey = _ref.autoFixColByKey, headerRowHeight = _ref.headerRowHeight, hasPaging = _ref.hasPaging, pagerHeight = _ref.pagerHeight; var rawDataWidth = (0, _utils.sumWidth)(headers); var rawDataHeight = (0, _utils.sumHeight)({ data: data, rowHeight: rowHeight }); var normalizedWidth = (0, _isNil2.default)(width) ? rawDataWidth : (0, _min2.default)(width, rawDataWidth); /* do not scroll when we can fit everything */ var scroll = width && height && headerRowHeight && (width < rawDataWidth || height < rawDataHeight); var scrollX = scroll && width < rawDataWidth; var scrollY = scroll && height < rawDataHeight; var numOfFixedCols = !scrollX ? 0 : autoFixColByKey ? countKeyCols(headers) : fixedColCount; var _splitFixedCols = splitFixedCols(numOfFixedCols, headers), rowHeaders = _splitFixedCols.rowHeaders, dataHeaders = _splitFixedCols.dataHeaders; var containerWidth = normalizedWidth + (headers.length - 1) * borderSize + (scrollY ? scrollBarWidthAdjustment : 0); var scrollPaneHeight = numOfFixedCols > 0 && scrollX ? height + 5 + scrollBarHeightAdjustment : height + 5; var fixedPaneHeight = height; // TODO: min of rawDataHeight or specified width var containerHeight = (0, _isNil2.default)(height) ? undefined : height + (scroll ? scrollBarHeightAdjustment : 0) + (hasPaging ? pagerHeight : 0); var hasFixedCols = numOfFixedCols > 0; return { scroll: scroll, scrollX: scrollX, scrollY: scrollY, numOfFixedCols: numOfFixedCols, rowHeaders: rowHeaders, dataHeaders: dataHeaders, containerWidth: containerWidth, scrollPaneHeight: scrollPaneHeight, fixedPaneHeight: fixedPaneHeight, containerHeight: containerHeight, hasFixedCols: hasFixedCols, fixedHeaderWidth: (0, _utils.sumWidth)(rowHeaders), contentViewPortWidth: hasFixedCols ? containerWidth - (0, _utils.sumWidth)(rowHeaders) : scroll ? containerWidth : null, totalWidth: (0, _utils.sumWidth)(headers) }; }; exports.default = computeGridViewProps; //# sourceMappingURL=computeGridProps.js.map