import { L10n } from '@syncfusion/ej2-base';
import { SizeGroup } from './size-group';
import { AltTextGroup } from './alt-text-group';
import { RIBBON_ID } from '../ribbon-base/ribbon-constants';
// Picture Format tab constants
export var PICTURE_FORMAT_TAB_ID = '_picture_format_tab';
export var PICTURE_FORMAT_TAB_TEXT = 'Picture Format';
/**
 * Picture Format tab implementation
 */
var PictureFormatTab = /** @class */ (function () {
    /**
     * Constructor for PictureFormatTab class
     * @param {DocumentEditorContainer} container - DocumentEditorContainer instance
     */
    function PictureFormatTab(container) {
        this.container = container;
        this.localObj = new L10n('documenteditorcontainer', this.container.defaultLocale, this.container.locale);
        this.sizeGroup = new SizeGroup(container);
        this.altTextGroup = new AltTextGroup(container);
    }
    /**
     * Get the Picture Format tab configuration
     * @returns {RibbonTabModel} - Picture Format tab configuration
     * @private
     */
    PictureFormatTab.prototype.getPictureFormatTab = function () {
        return {
            id: this.container.element.id + RIBBON_ID + PICTURE_FORMAT_TAB_ID,
            keyTip: 'JP',
            header: this.localObj.getConstant(PICTURE_FORMAT_TAB_TEXT),
            groups: [
                this.sizeGroup.getSizeGroup(),
                this.altTextGroup.getGroupModel()
            ]
        };
    };
    /**
     * Updates the property controls with current image properties
     * @returns {void}
     * @private
     */
    PictureFormatTab.prototype.updateImageProperties = function () {
        this.sizeGroup.updateSizeProperties();
    };
    /**
     * Clean up resources when destroyed
     * @returns {void}
     * @private
     */
    PictureFormatTab.prototype.destroy = function () {
        if (this.sizeGroup) {
            this.sizeGroup.destroy();
            this.sizeGroup = undefined;
        }
        if (this.altTextGroup) {
            this.altTextGroup.destroy();
            this.altTextGroup = undefined;
        }
    };
    return PictureFormatTab;
}());
export { PictureFormatTab };
