import { __decorate } from "tslib";
import { attr } from '@ni/fast-element';
import { DesignSystem } from '@ni/fast-foundation';
import { LabelProviderBase } from '../base';
import { tableCellActionMenuLabel, tableColumnHeaderGroupedLabel, tableColumnHeaderSortedAscendingLabel, tableColumnHeaderSortedDescendingLabel, tableGroupCollapseLabel, tableGroupExpandLabel, tableGroupSelectAllLabel, tableCollapseAllLabel, tableRowCollapseLabel, tableRowExpandLabel, tableRowOperationColumnLabel, tableRowSelectLabel, tableSelectAllLabel, tableRowLoadingLabel, tableGroupRowPlaceholderEmptyLabel, tableGroupRowPlaceholderNoValueLabel } from './label-tokens';
import { styles } from '../base/styles';
const supportedLabels = {
    groupCollapse: tableGroupCollapseLabel,
    groupExpand: tableGroupExpandLabel,
    rowCollapse: tableRowCollapseLabel,
    rowExpand: tableRowExpandLabel,
    collapseAll: tableCollapseAllLabel,
    cellActionMenu: tableCellActionMenuLabel,
    columnHeaderGrouped: tableColumnHeaderGroupedLabel,
    columnHeaderSortedAscending: tableColumnHeaderSortedAscendingLabel,
    columnHeaderSortedDescending: tableColumnHeaderSortedDescendingLabel,
    selectAll: tableSelectAllLabel,
    groupSelectAll: tableGroupSelectAllLabel,
    rowSelect: tableRowSelectLabel,
    rowOperationColumn: tableRowOperationColumnLabel,
    rowLoading: tableRowLoadingLabel,
    groupRowPlaceholderNoValue: tableGroupRowPlaceholderNoValueLabel,
    groupRowPlaceholderEmpty: tableGroupRowPlaceholderEmptyLabel
};
/**
 * Label provider for the Nimble table (and its sub-components and columns)
 */
export class LabelProviderTable extends LabelProviderBase {
    constructor() {
        super(...arguments);
        this.supportedLabels = supportedLabels;
    }
}
__decorate([
    attr({ attribute: 'group-collapse' })
], LabelProviderTable.prototype, "groupCollapse", void 0);
__decorate([
    attr({ attribute: 'group-expand' })
], LabelProviderTable.prototype, "groupExpand", void 0);
__decorate([
    attr({ attribute: 'row-collapse' })
], LabelProviderTable.prototype, "rowCollapse", void 0);
__decorate([
    attr({ attribute: 'row-expand' })
], LabelProviderTable.prototype, "rowExpand", void 0);
__decorate([
    attr({ attribute: 'collapse-all' })
], LabelProviderTable.prototype, "collapseAll", void 0);
__decorate([
    attr({ attribute: 'cell-action-menu' })
], LabelProviderTable.prototype, "cellActionMenu", void 0);
__decorate([
    attr({ attribute: 'column-header-grouped' })
], LabelProviderTable.prototype, "columnHeaderGrouped", void 0);
__decorate([
    attr({ attribute: 'column-header-sorted-ascending' })
], LabelProviderTable.prototype, "columnHeaderSortedAscending", void 0);
__decorate([
    attr({ attribute: 'column-header-sorted-descending' })
], LabelProviderTable.prototype, "columnHeaderSortedDescending", void 0);
__decorate([
    attr({ attribute: 'select-all' })
], LabelProviderTable.prototype, "selectAll", void 0);
__decorate([
    attr({ attribute: 'group-select-all' })
], LabelProviderTable.prototype, "groupSelectAll", void 0);
__decorate([
    attr({ attribute: 'row-select' })
], LabelProviderTable.prototype, "rowSelect", void 0);
__decorate([
    attr({ attribute: 'row-operation-column' })
], LabelProviderTable.prototype, "rowOperationColumn", void 0);
__decorate([
    attr({ attribute: 'row-loading' })
], LabelProviderTable.prototype, "rowLoading", void 0);
__decorate([
    attr({ attribute: 'group-row-placeholder-no-value' })
], LabelProviderTable.prototype, "groupRowPlaceholderNoValue", void 0);
__decorate([
    attr({ attribute: 'group-row-placeholder-empty' })
], LabelProviderTable.prototype, "groupRowPlaceholderEmpty", void 0);
const nimbleLabelProviderTable = LabelProviderTable.compose({
    baseName: 'label-provider-table',
    styles
});
DesignSystem.getOrCreate()
    .withPrefix('nimble')
    .register(nimbleLabelProviderTable());
export const labelProviderTableTag = 'nimble-label-provider-table';
//# sourceMappingURL=index.js.map