mirror of
https://github.com/bigcapitalhq/bigcapital.git
synced 2026-02-16 04:40:32 +00:00
add server to monorepo.
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
import * as R from 'ramda';
|
||||
import { ITableColumn } from '@/interfaces';
|
||||
import { isEmpty, clone, cloneDeep, omit } from 'lodash';
|
||||
import { increment } from 'utils';
|
||||
import { ITableRow } from '@/interfaces';
|
||||
import { IROW_TYPE, DISPLAY_COLUMNS_BY } from './BalanceSheet/constants';
|
||||
|
||||
export const FinancialTable = (Base) =>
|
||||
class extends Base {
|
||||
/**
|
||||
* Table columns cell indexing.
|
||||
* @param {ITableColumn[]} columns
|
||||
* @returns {ITableColumn[]}
|
||||
*/
|
||||
protected tableColumnsCellIndexing = (
|
||||
columns: ITableColumn[]
|
||||
): ITableColumn[] => {
|
||||
const cellIndex = increment(-1);
|
||||
|
||||
return this.mapNodesDeep(columns, (column) => {
|
||||
return isEmpty(column.children)
|
||||
? R.assoc('cellIndex', cellIndex(), column)
|
||||
: column;
|
||||
});
|
||||
};
|
||||
|
||||
addTotalRow = (node: ITableRow) => {
|
||||
const clonedNode = clone(node);
|
||||
|
||||
if (clonedNode.children) {
|
||||
const cells = cloneDeep(node.cells);
|
||||
cells[0].value = this.i18n.__('financial_sheet.total_row', {
|
||||
value: cells[0].value,
|
||||
});
|
||||
|
||||
clonedNode.children.push({
|
||||
...omit(clonedNode, 'children'),
|
||||
cells,
|
||||
rowTypes: [IROW_TYPE.TOTAL],
|
||||
});
|
||||
}
|
||||
return clonedNode;
|
||||
};
|
||||
|
||||
private addTotalRows = (nodes: ITableRow[]) => {
|
||||
return this.mapNodesDeep(nodes, this.addTotalRow);
|
||||
};
|
||||
};
|
||||
Reference in New Issue
Block a user