@nodeject/ui-components
Version:
UI library for non-trivial components
79 lines (78 loc) • 2.43 kB
JavaScript
import * as _ from 'lodash';
export var getNodeParentKey = function (key, tree) {
var parentKey;
for (var i = 0; i < tree.length; i++) {
var node = tree[i];
if (node.children) {
if (node.children.some(function (item) { return item.value === key; })) {
parentKey = node.value;
}
else if (getNodeParentKey(key, node.children)) {
parentKey = getNodeParentKey(key, node.children);
}
}
}
return parentKey;
};
export var flattenTree = function (entries) {
return !entries
? []
: _.flatMapDeep(entries, function (e) { return [
e,
e.children ? flattenTree(e.children) : []
]; });
};
export var formatCurrency = function (currencyValue, currencySymbol, decimals) {
if (decimals === void 0) { decimals = 0; }
if (!currencyValue) {
currencyValue = 0;
}
return (currencySymbol +
("" + currencyValue
.toFixed(decimals)
.replace(/\B(?=(\d{3})+(?!\d))/g, ',')));
};
export var formatWork = function (workValue, workUnit) {
if (!workValue) {
workValue = 0;
}
return (workValue.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',') + " " +
workUnit);
};
export var getIdName = function (cssClassName, id) {
return cssClassName + "_" + id;
};
export var getClassName = function (cssClassName) {
return cssClassName;
};
export var getClassAndIdNames = function (cssClassName, id) {
return {
className: getClassName(cssClassName),
idName: getIdName(cssClassName, id)
};
};
export var getBasicProps = function (styleName, id) {
var classAndIdNames = getClassAndIdNames(styleName, id);
return {
key: classAndIdNames.idName,
className: classAndIdNames.className,
id: classAndIdNames.idName
};
};
export var stringToColour = function (str) {
if (str) {
var hash = 0;
for (var i = 0; i < str.length; i++) {
hash = str.charCodeAt(i) + ((hash << 5) - hash);
}
var colour = '#';
for (var i = 0; i < 3; i++) {
var value = (hash >> (i * 8)) & 0xff;
colour += ('00' + value.toString(16)).substr(-2);
}
return colour;
}
else {
return '#ffffff';
}
};