import { __decorate } from "tslib";
import { attr } from '@ni/fast-element';
import { DesignSystem } from '@ni/fast-foundation';
import { LabelProviderBase } from '../base';
import { popupDismissLabel, numericDecrementLabel, numericIncrementLabel, popupIconErrorLabel, popupIconWarningLabel, popupIconCompletedLabel, popupIconCurrentLabel, popupIconInformationLabel, filterSearchLabel, filterNoResultsLabel, loadingLabel, scrollBackwardLabel, scrollForwardLabel, itemRemoveLabel } from './label-tokens';
import { styles } from '../base/styles';
const supportedLabels = {
    popupDismiss: popupDismissLabel,
    numericDecrement: numericDecrementLabel,
    numericIncrement: numericIncrementLabel,
    popupIconError: popupIconErrorLabel,
    popupIconWarning: popupIconWarningLabel,
    popupIconCompleted: popupIconCompletedLabel,
    popupIconCurrent: popupIconCurrentLabel,
    popupIconInformation: popupIconInformationLabel,
    filterSearch: filterSearchLabel,
    filterNoResults: filterNoResultsLabel,
    loading: loadingLabel,
    scrollBackward: scrollBackwardLabel,
    scrollForward: scrollForwardLabel,
    itemRemove: itemRemoveLabel
};
/**
 * Core label provider for Nimble
 */
export class LabelProviderCore extends LabelProviderBase {
    constructor() {
        super(...arguments);
        this.supportedLabels = supportedLabels;
    }
}
__decorate([
    attr({ attribute: 'popup-dismiss' })
], LabelProviderCore.prototype, "popupDismiss", void 0);
__decorate([
    attr({ attribute: 'numeric-decrement' })
], LabelProviderCore.prototype, "numericDecrement", void 0);
__decorate([
    attr({ attribute: 'numeric-increment' })
], LabelProviderCore.prototype, "numericIncrement", void 0);
__decorate([
    attr({ attribute: 'popup-icon-error' })
], LabelProviderCore.prototype, "popupIconError", void 0);
__decorate([
    attr({ attribute: 'popup-icon-warning' })
], LabelProviderCore.prototype, "popupIconWarning", void 0);
__decorate([
    attr({ attribute: 'popup-icon-completed' })
], LabelProviderCore.prototype, "popupIconCompleted", void 0);
__decorate([
    attr({ attribute: 'popup-icon-current' })
], LabelProviderCore.prototype, "popupIconCurrent", void 0);
__decorate([
    attr({ attribute: 'popup-icon-information' })
], LabelProviderCore.prototype, "popupIconInformation", void 0);
__decorate([
    attr({ attribute: 'filter-search' })
], LabelProviderCore.prototype, "filterSearch", void 0);
__decorate([
    attr({ attribute: 'filter-no-results' })
], LabelProviderCore.prototype, "filterNoResults", void 0);
__decorate([
    attr({ attribute: 'loading' })
], LabelProviderCore.prototype, "loading", void 0);
__decorate([
    attr({ attribute: 'scroll-backward' })
], LabelProviderCore.prototype, "scrollBackward", void 0);
__decorate([
    attr({ attribute: 'scroll-forward' })
], LabelProviderCore.prototype, "scrollForward", void 0);
__decorate([
    attr({ attribute: 'item-remove' })
], LabelProviderCore.prototype, "itemRemove", void 0);
const nimbleLabelProviderCore = LabelProviderCore.compose({
    baseName: 'label-provider-core',
    styles
});
DesignSystem.getOrCreate()
    .withPrefix('nimble')
    .register(nimbleLabelProviderCore());
export const labelProviderCoreTag = 'nimble-label-provider-core';
//# sourceMappingURL=index.js.map