UNPKG

@integec/grid-tools

Version:
250 lines (197 loc) 9.46 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.computeAltIndexes = exports.sumHeight = exports.rawToValue = exports.toSelectionColProps = exports.extractAndFormatData = exports.formatData = exports.extractData = exports.eventBroadcaster = exports.isPositionValid = exports.extractColIdent = exports.extractPosition = exports.sumWidth = exports.normalizeBounds = exports.fromEmpty = undefined; var _add = require('ramda/src/add'); var _add2 = _interopRequireDefault(_add); var _range = require('ramda/src/range'); var _range2 = _interopRequireDefault(_range); var _toPairs = require('ramda/src/toPairs'); var _toPairs2 = _interopRequireDefault(_toPairs); var _sortBy = require('ramda/src/sortBy'); var _sortBy2 = _interopRequireDefault(_sortBy); var _map = require('ramda/src/map'); var _map2 = _interopRequireDefault(_map); var _sum = require('ramda/src/sum'); var _sum2 = _interopRequireDefault(_sum); var _compose = require('ramda/src/compose'); var _compose2 = _interopRequireDefault(_compose); var _isNil = require('ramda/src/isNil'); var _isNil2 = _interopRequireDefault(_isNil); var _isEmpty = require('ramda/src/isEmpty'); var _isEmpty2 = _interopRequireDefault(_isEmpty); var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); var _data = require('data.maybe'); var _moment = require('moment'); var _moment2 = _interopRequireDefault(_moment); var _numeral = require('numeral'); var _numeral2 = _interopRequireDefault(_numeral); var _constants = require('./constants.js'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var fromEmpty = exports.fromEmpty = function fromEmpty(d) { return (0, _data.fromNullable)(d).chain(function (v) { return (0, _isEmpty2.default)(v) ? (0, _data.Nothing)() : (0, _data.Just)(v); }); }; var normalizeBounds = exports.normalizeBounds = function normalizeBounds(selection) { if ((0, _isEmpty2.default)(selection)) return selection; var x1 = selection.x1, y1 = selection.y1, x2 = selection.x2, y2 = selection.y2; var xMin = !(0, _isNil2.default)(x2) ? Math.min(x1, x2) : x1; var xMax = !(0, _isNil2.default)(x2) ? Math.max(x1, x2) : x1; var yMin = !(0, _isNil2.default)(y2) ? Math.min(y1, y2) : y1; var yMax = !(0, _isNil2.default)(y2) ? Math.max(y1, y2) : y1; return { x1: xMin, x2: xMax, y1: yMin, y2: yMax }; }; var sumWidth = exports.sumWidth = (0, _compose2.default)(_sum2.default, (0, _map2.default)(function (_ref) { var width = _ref.width; return width; })); var extractPosition = exports.extractPosition = function extractPosition(evt) { return { rowIndex: (0, _data.fromNullable)(evt.target.getAttribute(_constants.ROW_INDEX_ATTRIBUTE)).map(parseInt).getOrElse(undefined), columnIndex: (0, _data.fromNullable)(evt.target.getAttribute(_constants.COLUMN_INDEX_ATTRIBUTE)).map(parseInt).getOrElse(undefined) }; }; var extractColIdent = exports.extractColIdent = function extractColIdent(evt) { return evt.target.getAttribute(_constants.COL_IDENT_ATTRIBUTE); }; var isPositionValid = exports.isPositionValid = function isPositionValid(pos) { return !(0, _isNil2.default)(pos) && !(0, _isNil2.default)(pos.rowIndex) && !(0, _isNil2.default)(pos.columnIndex); }; var eventBroadcaster = exports.eventBroadcaster = function eventBroadcaster(listeners) { return function (e) { return listeners.filter(function (l) { return !(0, _isNil2.default)(l); }).forEach(function (l) { return l(e); }); }; }; var extractData = exports.extractData = function extractData(_ref2) { var header = _ref2.header, _ref2$rowData = _ref2.rowData, rowData = _ref2$rowData === undefined ? [] : _ref2$rowData, dataFormat = _ref2.dataFormat; var dataGetter = header.dataGetter, type = header.type, ident = header.ident; var rawData = rowData[ident]; return dataGetter ? dataGetter({ header: header, rowData: rowData }) : type === 'date-time' ? (0, _isNil2.default)(rowData) ? undefined : _moment2.default.isDate(rowData) ? (0, _moment2.default)(rawData).format(dataFormat) : _moment2.default.isMoment(rawData) ? rawData.formatData(dataFormat) : rawData : rawData; }; var formatData = exports.formatData = function formatData(_ref3) { var header = _ref3.header, value = _ref3.value, rowData = _ref3.rowData; var type = header.type, dataFormat = header.dataFormat, displayFormat = header.displayFormat, dataFormatter = header.dataFormatter; return dataFormatter ? dataFormatter({ header: header, value: value, rowData: rowData }) : (0, _isNil2.default)(value) ? '' : type === 'num' && displayFormat ? (0, _numeral2.default)(value).format(displayFormat) : type === 'date-time' && displayFormat ? (0, _moment2.default)(value, dataFormat).format(displayFormat) : value + ''; }; var extractAndFormatData = exports.extractAndFormatData = function extractAndFormatData(_ref4) { var header = _ref4.header, rowData = _ref4.rowData; return formatData({ header: header, value: extractData({ header: header, rowData: rowData }), rowData: rowData }); }; var toSelectionColProps = exports.toSelectionColProps = function toSelectionColProps(keyValues) { if (!keyValues) { console.warn('called select Colprops with null or undefined'); return {}; } if (keyValues instanceof Map) { var choices = []; keyValues.forEach(function (value, key) { return choices.push({ text: value, value: key }); }); return { choices: choices, dataFormatter: function dataFormatter(_ref5) { var header = _ref5.header, value = _ref5.value; return keyValues.has(value) ? keyValues.get(value) : value; } }; } else { return { choices: (0, _compose2.default)((0, _map2.default)(function (_ref6) { var _ref7 = _slicedToArray(_ref6, 2), value = _ref7[0], text = _ref7[1]; return { value: value, text: text }; }), (0, _sortBy2.default)(function (_ref8) { var _ref9 = _slicedToArray(_ref8, 2), _ = _ref9[0], name = _ref9[1]; return name.toLowerCase(); }), _toPairs2.default)(keyValues), dataFormatter: function dataFormatter(_ref10) { var header = _ref10.header, value = _ref10.value; return (0, _isNil2.default)(keyValues[value]) ? value : keyValues[value]; } }; } }; var isIntermediateNumber = function isIntermediateNumber(value) { return value.endsWith('.') && value.lastIndexOf('.') === value.indexOf('.') && !(0, _isNil2.default)((0, _numeral2.default)(value.replace('.', ''))) || value.trim().length === 1 && value.match('-') || value.endsWith('0') || value.endsWith(' '); }; var rawToValue = exports.rawToValue = function rawToValue(_ref11) { var value = _ref11.value, _ref11$header = _ref11.header, type = _ref11$header.type, numFormat = _ref11$header.numFormat, dataFormat = _ref11$header.dataFormat; console.log('raw value is ', value); // TODO: timezone issue if (_moment2.default.isMoment(value)) { return value.format(dataFormat); } if (_moment2.default.isDate(value)) { return (0, _moment2.default)(value).format(dataFormat); } if (type === 'num' && typeof value === 'string') { if (value.trim().length === 0) return ''; if (isIntermediateNumber(value)) return value.trim(); var parsedValue = (0, _numeral2.default)(value).value(); console.log('parsed value is ', parsedValue); if (isNaN(parsedValue) || (0, _isNil2.default)(parsedValue)) return undefined; return parsedValue; } if (type === 'bool' && typeof value === 'string') { return [value.toLowerCase()].map(function (v) { return v === 'y' || v === 'yes' || v === 'true'; })[0]; } return value; }; var sumHeight = exports.sumHeight = function sumHeight(_ref12) { var _ref12$data = _ref12.data, data = _ref12$data === undefined ? [] : _ref12$data, rowHeight = _ref12.rowHeight; if (typeof rowHeight === 'function') { return (0, _range2.default)(0, data.length).map(rowHeight).reduce(_add2.default); } return rowHeight * data.length; }; var computeAltIndexes = exports.computeAltIndexes = function computeAltIndexes(_ref13) { var data = _ref13.data, altBy = _ref13.altBy; if (altBy == null || data == null || data.length === 0) return null; var indexArray = data.map(altBy); var lastGroup = null; var result = []; var altIdx = 0; for (var i = 0; i < indexArray.length; i++) { var isAlt = lastGroup != null && lastGroup !== indexArray[i]; result.push(isAlt ? ++altIdx : altIdx); lastGroup = indexArray[i]; } return result.map(function (idx) { return idx % 2 === 1; }); }; //# sourceMappingURL=utils.js.map