// #region Imports
import { ElementIntlBase } from '../../../../../Intl/Abstracts/ElementIntlBase';
import { getDayNames } from '../Utils';
// #endregion
/**
 * The `CalendarElementIntl` class.
 *
 * @public
 */
export class CalendarElementIntl extends ElementIntlBase {
    // #region Fields
    _todayLabel;
    _weekNumberLabel;
    _sundayLabel;
    _mondayLabel;
    _tuesdayLabel;
    _wednesdayLabel;
    _thursdayLabel;
    _fridayLabel;
    _saturdayLabel;
    // #endregion
    // #region Ctor
    /**
     * Constructs a new instance of the `CalendarElementIntl` class.
     *
     * @public
     */
    constructor(locale) {
        super(locale);
        const dayNames = getDayNames(this.locale, 'short');
        this._todayLabel = 'Today';
        this._weekNumberLabel = 'Wk';
        this._sundayLabel = dayNames[0] ?? '';
        this._mondayLabel = dayNames[1] ?? '';
        this._tuesdayLabel = dayNames[2] ?? '';
        this._wednesdayLabel = dayNames[3] ?? '';
        this._thursdayLabel = dayNames[4] ?? '';
        this._fridayLabel = dayNames[5] ?? '';
        this._saturdayLabel = dayNames[6] ?? '';
    }
    // #endregion
    // #region Properties
    /**
     * A label for today.
     * Gets or sets the `todayLabel` property.
     *
     * @public
     */
    get todayLabel() {
        return this._todayLabel;
    }
    set todayLabel(value) {
        this._todayLabel = value;
    }
    /**
     * A label for the week number.
     * Gets or sets the `weekNumberLabel` property.
     *
     * @public
     */
    get weekNumberLabel() {
        return this._weekNumberLabel;
    }
    set weekNumberLabel(value) {
        this._weekNumberLabel = value;
    }
    /**
     * A label for Sunday.
     * Gets or sets the `sundayLabel` property.
     *
     * @public
     */
    get sundayLabel() {
        return this._sundayLabel;
    }
    set sundayLabel(value) {
        this._sundayLabel = value;
    }
    /**
     * A label for Monday.
     * Gets or sets the `mondayLabel` property.
     *
     * @public
     */
    get mondayLabel() {
        return this._mondayLabel;
    }
    set mondayLabel(value) {
        this._mondayLabel = value;
    }
    /**
     * A label for Tuesday.
     * Gets or sets the `tuesdayLabel` property.
     *
     * @public
     */
    get tuesdayLabel() {
        return this._tuesdayLabel;
    }
    set tuesdayLabel(value) {
        this._tuesdayLabel = value;
    }
    /**
     * A label for Wednesday.
     * Gets or sets the `wednesdayLabel` property.
     *
     * @public
     */
    get wednesdayLabel() {
        return this._wednesdayLabel;
    }
    set wednesdayLabel(value) {
        this._wednesdayLabel = value;
    }
    /**
     * A label for Thursday.
     * Gets or sets the `thursdayLabel` property.
     *
     * @public
     */
    get thursdayLabel() {
        return this._thursdayLabel;
    }
    set thursdayLabel(value) {
        this._thursdayLabel = value;
    }
    /**
     * A label for Friday.
     * Gets or sets the `fridayLabel` property.
     *
     * @public
     */
    get fridayLabel() {
        return this._fridayLabel;
    }
    set fridayLabel(value) {
        this._fridayLabel = value;
    }
    /**
     * A label for Saturday.
     * Gets or sets the `saturdayLabel` property.
     *
     * @public
     */
    get saturdayLabel() {
        return this._saturdayLabel;
    }
    set saturdayLabel(value) {
        this._saturdayLabel = value;
    }
    // #endregion
    // #region Methods
    /**
     * @public
     * @override
     */
    onLocaleChanged() {
        const dayNames = getDayNames(this.locale, 'short');
        this._sundayLabel = dayNames[0] ?? '';
        this._mondayLabel = dayNames[1] ?? '';
        this._tuesdayLabel = dayNames[2] ?? '';
        this._wednesdayLabel = dayNames[3] ?? '';
        this._thursdayLabel = dayNames[4] ?? '';
        this._fridayLabel = dayNames[5] ?? '';
        this._saturdayLabel = dayNames[6] ?? '';
    }
}
//# sourceMappingURL=CalendarElementIntl.js.map