95 lines
2.2 KiB
JavaScript
95 lines
2.2 KiB
JavaScript
/**
|
|
* @typedef {Object} PDFSaveCfazDialogOptions
|
|
* @property {HTMLDialogElement} dialog - The overlay's DOM element.
|
|
* @property {Object} message - Message's DOM element.
|
|
* @property {HTMLButtonElement} closeButton - Button for closing the overlay.
|
|
*/
|
|
|
|
class PDFSaveCfazDialog {
|
|
/**
|
|
* @param {PDFSaveCfazDialogOptions} options
|
|
* @param {OverlayManager} overlayManager - Manager for the viewer overlays.
|
|
* @param {EventBus} eventBus - The application event bus.
|
|
* @param {IL10n} l10n - Localization service.
|
|
*/
|
|
constructor(
|
|
{ dialog, message, closeButton },
|
|
overlayManager,
|
|
l10n,
|
|
) {
|
|
this.dialog = dialog;
|
|
this.message = message;
|
|
this.closeButton = closeButton;
|
|
this.overlayManager = overlayManager;
|
|
this.l10n = l10n;
|
|
|
|
this.#reset();
|
|
|
|
// Bind the event listener for the Close button.
|
|
this.closeButton.addEventListener("click", this.close.bind(this));
|
|
|
|
this.overlayManager.register(this.dialog);
|
|
}
|
|
|
|
/**
|
|
* Set messageContent to show in overlay
|
|
*
|
|
* @param {String} messageContent - Message string
|
|
*/
|
|
setMessageContent(messageContent) {
|
|
this.messageContent = messageContent;
|
|
|
|
this.#updateUI();
|
|
}
|
|
|
|
/**
|
|
* Set closeButtonToggle to show in overlay
|
|
*
|
|
* @param {Boolean} closeButtonToggle - closeButtonToggle Boolean
|
|
*/
|
|
setCloseButtonToggle(closeButtonToggle) {
|
|
this.closeButtonToggle = closeButtonToggle;
|
|
|
|
this.#updateUI();
|
|
}
|
|
|
|
#reset() {
|
|
this.closeButtonToggle = false;
|
|
this.messageContent = "Enviando arquivo ...";
|
|
}
|
|
|
|
/**
|
|
* Open the document properties overlay.
|
|
*/
|
|
async open() {
|
|
this.#reset();
|
|
this.#updateUI();
|
|
await Promise.all([
|
|
this.overlayManager.open(this.dialog),
|
|
]);
|
|
}
|
|
|
|
/**
|
|
* Close the document properties overlay.
|
|
*/
|
|
async close() {
|
|
this.overlayManager.close(this.dialog);
|
|
}
|
|
|
|
/**
|
|
* Always updates all of the dialog fields, to prevent inconsistent UI state.
|
|
*/
|
|
#updateUI() {
|
|
this.message.textContent = this.messageContent;
|
|
|
|
if(this.closeButtonToggle){
|
|
this.closeButton.parentElement.style = 'display: block'
|
|
}
|
|
else {
|
|
this.closeButton.parentElement.style = 'display: none'
|
|
}
|
|
}
|
|
}
|
|
|
|
export { PDFSaveCfazDialog };
|