@adaptabletools/adaptable-cjs
Version:
Powerful data-agnostic HTML5 AG Grid extension which provides advanced, cutting-edge functionality to meet all DataGrid requirements
91 lines (90 loc) • 3.82 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ColumnInternalApi = exports.getAutoRowGroupColumnIdFor = void 0;
const tslib_1 = require("tslib");
const ApiBase_1 = require("../Implementation/ApiBase");
const GeneralConstants_1 = require("../../Utilities/Constants/GeneralConstants");
const uniq_1 = tslib_1.__importDefault(require("lodash/uniq"));
const StringExtensions_1 = tslib_1.__importDefault(require("../../Utilities/Extensions/StringExtensions"));
function getAutoRowGroupColumnIdFor(columnId) {
return `${GeneralConstants_1.AG_GRID_GROUPED_COLUMN}-${columnId}`;
}
exports.getAutoRowGroupColumnIdFor = getAutoRowGroupColumnIdFor;
class ColumnInternalApi extends ApiBase_1.ApiBase {
/**
* Retrieves 'ColumnType' property for a given Column
* isCumulativeAggregate(input: string): boolean {
* return !!this.getNodesFromExpression(input, 'CUMUL')?.length;
* }
* @param columnId Column to use
*/
getAgGridColumnType(columnId) {
return this._adaptable.getAgGridColumnType(columnId);
}
getAllAgGridColumnTypes() {
let colTypes = [];
this.getColumnApi()
.getColumns()
.forEach((c) => {
const agGridColType = this.getAgGridColumnType(c.columnId);
if (Array.isArray(agGridColType)) {
colTypes.push(...agGridColType);
}
else {
colTypes.push(agGridColType);
}
});
return (0, uniq_1.default)(colTypes).filter((c) => StringExtensions_1.default.IsNotNullOrEmptyOrWhiteSpace(c));
}
/**
* Retrieves a list providing the Friendly Name / Caption for all columns
*/
getAllColumnFriendlyNames() {
return this.getColumnApi()
.getColumns()
.map((c) => {
return c.friendlyName;
});
}
getAutoRowGroupColumnIdFor(columnId) {
return getAutoRowGroupColumnIdFor(columnId);
}
/**
* Retrieves AG Grid's field property for the column
* @param columnId columnId to look up
*/
getAgGridColumnFieldForAdaptableColumn(columnId) {
const agGridColumn = this.getAgGridColumnForAdaptableColumn(columnId);
return agGridColumn.getColDef().field || '';
}
/**
* Retrieves AG Grid's column for an Adaptable column
* @param columnId columnId to look up
*/
getAgGridColumnForAdaptableColumn(columnId) {
return this._adaptable.getAgGridColumnForColumnId(columnId);
}
getActiveColumnComparator(columnId, customSort, customSortComparer) {
if ((!customSort || customSort?.IsSuspended) && !customSortComparer) {
// defaults to AG-Grid column definition comparator if no CustomSort is defined&active
const colDefComparator = this._adaptable.agGridColumnAdapter.getUserColDefProperty(columnId, 'comparator');
return colDefComparator;
}
// CustomSort Comparer function takes precedence over CustomSort SortedValues
const comparerFunction = customSortComparer
? customSortComparer.comparer
: this.getCustomSortApi().internalApi.getDefaultCustomSortComparer(customSort.ColumnId, customSort.SortedValues);
return comparerFunction;
}
isSpecialColumn(columnId, column = null) {
if (column) {
return column.isCalculatedColumn || column.isFreeTextColumn || column.isActionColumn;
}
else
return (this.getColumnApi().isCalculatedColumn(columnId) ||
this.getColumnApi().isFreeTextColumn(columnId) ||
this.getColumnApi().isActionColumn(columnId) ||
this.getColumnApi().isFdc3Column(columnId));
}
}
exports.ColumnInternalApi = ColumnInternalApi;