import { __decorate } from "tslib";
import { attr } from '@ni/fast-element';
import { TableColumn } from '../base';
import { mixinFractionalWidthColumnAPI } from '../mixins/fractional-width-column';
import { mixinGroupableColumnAPI } from '../mixins/groupable-column';
import { mixinColumnWithPlaceholderAPI } from '../mixins/placeholder';
import { mixinSortableColumnAPI } from '../mixins/sortable-column';
/**
 * The base class for table columns that display fields of any type as text.
 */
export class TableColumnTextBase extends TableColumn {
    fieldNameChanged() {
        this.columnInternals.dataRecordFieldNames = [this.fieldName];
        this.columnInternals.operandDataRecordFieldName = this.fieldName;
    }
}
__decorate([
    attr({ attribute: 'field-name' })
], TableColumnTextBase.prototype, "fieldName", void 0);
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/explicit-function-return-type
export function mixinTextBase(base) {
    return mixinGroupableColumnAPI(mixinFractionalWidthColumnAPI(mixinColumnWithPlaceholderAPI(mixinSortableColumnAPI(base))));
}
//# sourceMappingURL=index.js.map