Dario Ghunney Ware 58c1bccfcc renamed module: enterprise > proprietary
updating paths (DOCKER_SECURITY_ENABLE > ADDITIONAL_FEATURES)
2025-06-05 18:13:50 +01:00

60 lines
1.7 KiB
JavaScript

import {Command} from './command.js';
export class PageBreakCommand extends Command {
constructor(elements, isSelectedInWindow, selectedPages, pageBreakCallback, pagesContainer) {
super();
this.elements = elements;
this.isSelectedInWindow = isSelectedInWindow;
this.selectedPages = selectedPages;
this.pageBreakCallback = pageBreakCallback;
this.pagesContainer = pagesContainer;
this.addedElements = [];
this.originalStates = Array.from(elements, (element) => ({
element,
hasContent: element.innerHTML.trim() !== '',
}));
}
async execute() {
const undoBtn = document.getElementById('undo-btn');
undoBtn.disabled = true;
for (const [index, element] of this.elements.entries()) {
if (!this.isSelectedInWindow || this.selectedPages.includes(index)) {
if (index !== 0) {
const newElement = await this.pageBreakCallback(element, this.addedElements);
if (newElement) {
this.addedElements = newElement;
}
}
}
}
undoBtn.disabled = false;
}
undo() {
this.addedElements.forEach((element) => {
const nextSibling = element.nextSibling;
this.pagesContainer.removeChild(element);
if (this.pagesContainer.childElementCount === 0) {
const filenameInput = document.getElementById('filename-input');
const filenameParagraph = document.getElementById('filename');
const downloadBtn = document.getElementById('export-button');
filenameInput.disabled = true;
filenameInput.value = '';
filenameParagraph.innerText = '';
downloadBtn.disabled = true;
}
element._nextSibling = nextSibling;
});
}
redo() {
this.execute();
}
}