import { Plugin } from '../../ckeditor/5-43.3.1/ckeditor5.js';

/**
 * Plugin para permitir redimensionar o editor.
 */
export default class Resizable extends Plugin {
    init() {
        this.editor.on('ready', () => {
            const editorElement = this.editor.ui.view.element;
            const editorContent = editorElement.querySelector('.ck-editor__main');
            /**
             * @type {[HTMLElement, string][]}
             */
            const elementosAlterados = [];
            if (editorContent.checkVisibility && !editorContent.checkVisibility()) {
                const arvoreElementos = [];
                let atual = editorContent;
                while (atual.parentElement) {
                    arvoreElementos.unshift(atual);
                    atual = atual.parentElement;
                }
                arvoreElementos.forEach((elemento) => {
                    if (getComputedStyle(elemento).display === 'none') {
                        elementosAlterados.push([elemento, elemento.style.display || '']);
                        elemento.style.display = 'block';
                    }
                });
            }
            editorContent.style.setProperty('height', editorContent.getBoundingClientRect().height + 'px');
            editorElement.classList.add('govbr-editor-resizable');
            elementosAlterados.forEach(([elemento, display]) => {
                elemento.style.display = display;
            });
        });
    }
}
