@integec/grid-tools
Version:
Integ Grid Tools
250 lines (197 loc) • 9.46 kB
JavaScript
;
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