/** * CyberCore Signer - PdfSealDesigner * Ferramenta visual interativa para criação, personalização e exportação * de temas de selos de assinatura digital PAdES (ICP-Brasil). */ export class PdfSealDesigner { /** * @param {Object} options Configurações iniciais do designer. * @param {HTMLElement|string} options.container Elemento onde renderizar o designer. * @param {Object} [options.initialTheme] Configuração inicial de tema. * @param {Function} [options.onChange] Callback chamado quando o tema for modificado: fn(theme). */ constructor(options = {}) { this.container = typeof options.container === 'string' ? document.querySelector(options.container) : options.container; if (!this.container) { throw new Error('Container DOM obrigatório para instanciar PdfSealDesigner.'); } this.onChange = options.onChange || null; // Estado do tema this.theme = { name: 'Meu Selo Personalizado', description: 'Selo visual corporativo customizado via CyberCore Web SDK', width: 320, height: 82, primaryColor: '#0d47a1', secondaryColor: '#0284c7', backgroundColor: '#ffffff', borderColor: '#93c5fd', textColor: '#0f172a', iconStyle: 'shield', customLogoBase64: null, customHeader: 'DOCUMENTO ASSINADO DIGITALMENTE', customFooter: 'Verifique a autenticidade da assinatura eletrônica em https://validar.iti.gov.br', customFieldLabel: 'Cargo', customFieldValue: 'Diretor Responsável', defaultCpfMode: 'MASKED', defaultIncludeDateTime: true, ...(options.initialTheme || {}) }; this._initDom(); this._attachEvents(); this._renderPreview(); } _initDom() { this.container.innerHTML = `
Personalize cores, brasão, logotipo próprio e regras LGPD para a estampa no PDF.
{}