@docvyu/sdk 0.0.5 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +174 -209
- package/dist/cdn/docvyu.js +5060 -0
- package/dist/cdn/docvyu.min.js +10 -4
- package/dist/cjs/DocvyuEditor-BOTw6i4d.js +1 -0
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/react/index.js +1 -1
- package/dist/esm/DocvyuEditor-CDLqMpaq.js +1 -0
- package/dist/esm/index.js +1 -1
- package/dist/esm/react/index.js +1 -1
- package/dist/types/app/DocvyuApp.d.ts +187 -0
- package/dist/types/app/index.d.ts +0 -2
- package/dist/types/core/DocvyuEditor.d.ts +409 -57
- package/dist/types/core/index.d.ts +1 -1
- package/dist/types/i18n/types.d.ts +131 -0
- package/dist/types/index.d.ts +19 -5
- package/dist/types/react/index.d.ts +2 -1
- package/dist/wasm/docvyu_core.d.ts +8 -182
- package/dist/wasm/docvyu_core.js +1 -1
- package/dist/wasm/docvyu_core_bg.wasm +0 -0
- package/dist/wasm/docvyu_core_bg.wasm.d.ts +0 -56
- package/package.json +2 -2
- package/wasm/docvyu_core.d.ts +8 -182
- package/wasm/docvyu_core.js +1297 -200
- package/wasm/docvyu_core_bg.wasm +0 -0
- package/wasm/docvyu_core_bg.wasm.d.ts +0 -56
- package/dist/cjs/DocvyuEditor-Bh9EkDQb.js +0 -1
- package/dist/esm/DocvyuEditor-DlUB7weZ.js +0 -1
- package/dist/types/app/DocvyuApp.test.d.ts +0 -1
- package/dist/types/app/styles.d.ts +0 -10
- package/dist/types/app/template.d.ts +0 -9
- package/dist/types/core/DocvyuEditor.test.d.ts +0 -4
- package/dist/types/i18n/I18nManager.test.d.ts +0 -4
- package/dist/types/license/LicenseManager.test.d.ts +0 -4
- package/dist/wasm/docuweave_core.d.ts +0 -207
- package/dist/wasm/docuweave_core.js +0 -988
- package/dist/wasm/docuweave_core_bg.wasm +0 -0
- package/dist/wasm/docuweave_core_bg.wasm.d.ts +0 -59
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var e="undefined"!=typeof document?document.currentScript:null;const t={loadDocument:!0,saveDocument:!0,editText:!0,formatting:!0,lists:!0,pageSettings:!0,zoom:!0,showWatermark:!0,maxDocumentSize:5242880,maxDocsPerMonth:10,grayLabel:!1,prioritySupport:!1},i={starter:t,professional:{loadDocument:!0,saveDocument:!0,editText:!0,formatting:!0,lists:!0,pageSettings:!0,zoom:!0,showWatermark:!1,maxDocumentSize:0,maxDocsPerMonth:10,grayLabel:!1,prioritySupport:!0},enterprise:{loadDocument:!0,saveDocument:!0,editText:!0,formatting:!0,lists:!0,pageSettings:!0,zoom:!0,showWatermark:!1,maxDocumentSize:0,maxDocsPerMonth:0,grayLabel:!0,prioritySupport:!0}},o=function(){try{if("undefined"!=typeof process&&process.env){const e=process.env.VITE_DOCVYU_LICENSE_SERVER||process.env.NEXT_PUBLIC_DOCVYU_LICENSE_SERVER;if(e&&"undefined"!==e)return e}}catch{}try{"undefined"==typeof document?require("url").pathToFileURL(__filename).href:e&&"SCRIPT"===e.tagName.toUpperCase()&&e.src||new URL("DocvyuEditor-BOTw6i4d.js",document.baseURI).href}catch{}return"https://api.docvyu.com/v1/license"}(),r="docvyu_license_cache";class a{constructor(e={}){this.status=null,this.fingerprint=null,this.serverUsageCount=0,this.config={apiKey:e.apiKey,licenseServerUrl:e.licenseServerUrl||o,offlineMode:e.offlineMode??!1}}async initialize(){return this.fingerprint=await this.generateFingerprint(),this.config.apiKey?this.initializeWithApiKey():this.initializeStarterTier()}async initializeWithApiKey(){const e=this.getCachedLicense();if(e&&e.apiKey===this.config.apiKey){const t=Date.now();if(e.expiresAt>t)return this.status=e.status,this.status}try{return this.status=await this.validateWithServer(),this.cacheLicense(this.status),this.status}catch(t){return this.config.offlineMode&&e?(this.status=e.status,this.status):this.initializeStarterTier()}}async initializeStarterTier(){try{const e=await this.getServerUsage();this.serverUsageCount=e.used;const i=Math.max(0,e.limit-e.used);return this.status={isValid:i>0,tier:"starter",remainingUses:i,unlimited:!1,features:t,expiresAt:null,error:i<=0?"Monthly document limit exceeded. Please upgrade to continue.":void 0},this.status}catch(e){return this.status={isValid:!1,tier:"starter",remainingUses:0,unlimited:!1,features:t,expiresAt:null,error:"Could not verify usage. Please check your internet connection."},this.status}}getStatus(){return this.status?this.status:{isValid:!1,tier:"starter",remainingUses:0,unlimited:!1,features:t,expiresAt:null,error:"License not initialized"}}hasFeature(e){return!!this.getStatus().features[e]}async recordUsage(){if(this.status?.unlimited)return 1/0;try{const e=await this.recordServerUsage();return this.serverUsageCount=e.used,this.status&&(this.status.remainingUses=e.remaining,e.remaining<=0&&(this.status.isValid=!1,this.status.error="Monthly document limit exceeded. Please upgrade to continue.")),e.remaining}catch(e){return this.status&&(this.status.remainingUses=0,this.status.isValid=!1,this.status.error="Could not verify usage. Please check your internet connection."),0}}getRemainingUses(){return this.status?.unlimited?1/0:this.status?.remainingUses??0}isUsageLimitExceeded(){return!this.status?.unlimited&&this.getRemainingUses()<=0}async fetchWithTimeout(e,t,i=1e4){const o=new AbortController,r=setTimeout(()=>o.abort(),i);try{const i=await fetch(e,{...t,signal:o.signal});return clearTimeout(r),i}catch(e){if(clearTimeout(r),e instanceof Error&&"AbortError"===e.name)throw new Error("Request timeout: License server did not respond in time");throw e}}async getServerUsage(){const e=await this.fetchWithTimeout(`${this.config.licenseServerUrl}/usage`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({fingerprint:this.fingerprint,action:"get"})},1e4);if(!e.ok)throw new Error(`Failed to get usage: ${e.status}`);return e.json()}async recordServerUsage(){const e=await this.fetchWithTimeout(`${this.config.licenseServerUrl}/usage`,{method:"POST",headers:{"Content-Type":"application/json",...this.config.apiKey?{Authorization:`Bearer ${this.config.apiKey}`}:{}},body:JSON.stringify({fingerprint:this.fingerprint,action:"record",apiKey:this.config.apiKey})},1e4);if(!e.ok)throw new Error(`Failed to record usage: ${e.status}`);return e.json()}async validateWithServer(){const e=await this.fetchWithTimeout(`${this.config.licenseServerUrl}/validate`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${this.config.apiKey}`},body:JSON.stringify({apiKey:this.config.apiKey,fingerprint:this.fingerprint,timestamp:Date.now()})},1e4);if(!e.ok){if(401===e.status||403===e.status)return{isValid:!1,tier:"starter",remainingUses:0,unlimited:!1,features:t,expiresAt:null,error:"Invalid API key"};throw new Error(`License validation failed: ${e.status}`)}const o=await e.json();return o.signature&&(this.lastServerSignature=o.signature,this.lastServerTimestamp=o.timestamp),{isValid:o.valid,tier:o.tier||"starter",remainingUses:o.remainingUses??1/0,unlimited:o.unlimited??!1,features:i[o.tier]||t,expiresAt:o.expiresAt?new Date(o.expiresAt):null}}getCachedLicense(){if("undefined"==typeof localStorage)return null;try{const e=localStorage.getItem(r);if(!e)return null;const t=JSON.parse(e);return t.signature&&!t.timestamp?null:t}catch{return null}}cacheLicense(e){if("undefined"==typeof localStorage)return;if(!this.config.apiKey)return;const t={status:e,apiKey:this.config.apiKey,cachedAt:Date.now(),expiresAt:Date.now()+864e5,signature:this.lastServerSignature,timestamp:this.lastServerTimestamp};try{localStorage.setItem(r,JSON.stringify(t))}catch{}}async generateFingerprint(){const e=[];"undefined"!=typeof navigator&&(e.push(navigator.userAgent),e.push(navigator.language),e.push(String(navigator.hardwareConcurrency||"")),e.push(navigator.platform||"")),"undefined"!=typeof screen&&(e.push(`${screen.width}x${screen.height}`),e.push(String(screen.colorDepth)));try{e.push(Intl.DateTimeFormat().resolvedOptions().timeZone)}catch{}try{const t=document.createElement("canvas"),i=t.getContext("2d");i&&(i.textBaseline="top",i.font="14px Arial",i.fillText("DocVyu",0,0),e.push(t.toDataURL()))}catch{}const t=e.join("|");return this.hashString(t)}async hashString(e){if("undefined"!=typeof crypto&&crypto.subtle){const t=(new TextEncoder).encode(e),i=await crypto.subtle.digest("SHA-256",t);return Array.from(new Uint8Array(i)).map(e=>e.toString(16).padStart(2,"0")).join("")}let t=0;for(let i=0;i<e.length;i++)t=(t<<5)-t+e.charCodeAt(i),t&=t;return Math.abs(t).toString(16)}}const n={en:{general:{loading:"Loading...",error:"Error",success:"Success",cancel:"Cancel",confirm:"Confirm",save:"Save",close:"Close",retry:"Retry",poweredBy:"Powered by"},editor:{title:"DocVyu Editor",untitledDocument:"Untitled Document",loadingEditor:"Loading editor...",initializingEditor:"Initializing editor...",documentLoaded:"Document loaded successfully",documentSaved:"Document saved successfully",noDocumentLoaded:"No document loaded"},toolbar:{file:"File",edit:"Edit",view:"View",format:"Format",help:"Help",newDocument:"New Document",openDocument:"Open Document",saveDocument:"Save Document",downloadDocument:"Download Document",undo:"Undo (Ctrl+Z)",redo:"Redo (Ctrl+Y)",cut:"Cut",copy:"Copy",paste:"Paste",selectAll:"Select All",home:"Home",insert:"Insert",layout:"Layout",clipboard:"Clipboard",font:"Font",paragraph:"Paragraph",editing:"Editing",tables:"Tables",styles:"Styles",find:"Find",replace:"Replace",size:"Size",numberingFormat:"Numbering Format",table:"Table",insertTable:"Insert Table",rows:"Rows",columns:"Columns",image:"Picture",insertImage:"Insert Picture",illustrations:"Illustrations",comment:"Comment",comments:"Comments",insertComment:"New Comment",showComments:"Show Comments",header:"Header",footer:"Footer",headerFooter:"Header & Footer",insertHeader:"Edit Header",insertFooter:"Edit Footer",review:"Review",pageNumber:"Page Number",pageXOfY:"Page X of Y",fields:"Fields",sectionBreak:"Section Break",breaks:"Breaks",bookmark:"Bookmark",bookmarks:"Bookmarks",insertBookmark:"Insert Bookmark"},formatting:{bold:"Bold",italic:"Italic",underline:"Underline",strikethrough:"Strikethrough",fontSize:"Font Size",fontFamily:"Font Family",fontColor:"Font Color",backgroundColor:"Background Color",alignment:"Alignment",alignLeft:"Align Left",alignCenter:"Align Center",alignRight:"Align Right",alignJustify:"Justify",bulletList:"Bullet List",numberedList:"Numbered List",numberingFormats:"Numbering Formats",simpleList:"Simple List",outlineList:"Outline List",increaseIndent:"Increase Indent",decreaseIndent:"Decrease Indent",lineSpacing:"Line Spacing",paragraphSpacing:"Paragraph Spacing"},pageSettings:{title:"Page Settings",pageSize:"Page Size",margins:"Margins",marginTop:"Top",marginBottom:"Bottom",marginLeft:"Left",marginRight:"Right",orientation:"Orientation",portrait:"Portrait",landscape:"Landscape",customSize:"Custom Size",letter:"Letter",legal:"Legal",a4:"A4",a5:"A5",b5:"B5",columns:"Columns",oneColumn:"1 Column",twoColumns:"2 Columns",threeColumns:"3 Columns"},zoom:{zoomIn:"Zoom In",zoomOut:"Zoom Out",zoomLevel:"Zoom Level",fitToPage:"Fit to Page",fitToWidth:"Fit to Width"},styles:{paragraphStyle:"Paragraph Style",normal:"Normal",heading1:"Heading 1",heading2:"Heading 2",heading3:"Heading 3",heading4:"Heading 4",heading5:"Heading 5",heading6:"Heading 6",title:"Title",subtitle:"Subtitle",listParagraph:"List Paragraph"},ruler:{centimeters:"Centimeters",inches:"Inches",toggleUnit:"Toggle Unit"},license:{freeTier:"Free",starterTier:"Starter",professionalTier:"Professional",enterpriseTier:"Enterprise",documentsRemaining:"{count} documents remaining this month",unlimitedDocuments:"Unlimited documents",upgradeNow:"Upgrade Now",licenseValid:"License is valid",licenseExpired:"License has expired",licenseInvalid:"Invalid license",invalidLicense:"Invalid or expired license. Please check your API key.",notValidated:"License not validated. Please ensure you are connected to the internet.",usageLimitExceeded:"Usage Limit Exceeded",usageLimitExceededMessage:"You have reached your monthly document limit. Please upgrade your plan to continue.",checkingLicense:"Checking license..."},watermark:{poweredBy:"Powered by DocVyu"},errors:{editorNotInitialized:"Editor not initialized. Please call initialize() first.",documentLoadFailed:"Failed to load document",documentSaveFailed:"Failed to save document",featureNotAvailable:"This feature is not available in your current plan. Please upgrade to access it.",documentTooLarge:"Document size exceeds the limit for your plan",networkError:"Network error. Please check your connection.",invalidApiKey:"Invalid API key",licenseFetchFailed:"Failed to fetch license information",wasmLoadFailed:"Failed to load WebAssembly module",canvasNotFound:"Canvas element not found"},accessibility:{editorLabel:"Document Editor",toolbarLabel:"Editor Toolbar",formattingToolbar:"Formatting Toolbar",pageNavigation:"Page Navigation",currentPage:"Page {current}",totalPages:"of {total}"},statusBar:{ready:"Ready",pageOf:"Page {current} of {total}",words:"{count} words",selectLanguage:"Select language",copied:"Copied to clipboard",cut:"Cut to clipboard",pasted:"Pasted from clipboard",copyError:"Failed to copy",cutError:"Failed to cut",pasteError:"Failed to paste",listLevel:"Level {level}",listLevelTooltip:"List nesting level (Tab to increase, Shift+Tab to decrease)",insertingImage:"Inserting image...",imageInserted:"Image inserted",imageError:"Failed to insert image"},comments:{enterAuthor:"Enter author name:",enterComment:"Enter comment:",commentAdded:"Comment added",commentError:"Failed to add comment",noComments:"No comments in document",documentComments:"Document Comments"},headerFooter:{headerNotSupported:"Header editing coming soon",footerNotSupported:"Footer editing coming soon"},contextMenu:{copy:"Copy",cut:"Cut",paste:"Paste",selectAll:"Select All",copyFormat:"Copy Format",applyFormat:"Apply Format"},formatPainter:{copyFormat:"Copy Format",applyFormat:"Apply Format",formatCopied:"Format copied",formatApplied:"Format applied",noFormatCopied:"No format copied"},review:{accept:"Accept",reject:"Reject",acceptAll:"Accept All",rejectAll:"Reject All",noRevisions:"No revisions",changes:"Changes",trackChanges:"Track Changes"},viewTab:{properties:"Properties",title:"Title",author:"Author",wordCount:"Word Count",characterCount:"Character Count",bookmarksPanel:"Bookmarks",tocPanel:"Table of Contents",noBookmarks:"No bookmarks in document",noHeadings:"No headings in document",documentInfo:"Document Info",navigation:"Navigation"},sectionBreaks:{nextPage:"Next Page",continuous:"Continuous",evenPage:"Even Page",oddPage:"Odd Page"},search:{find:"Find",findPlaceholder:"Find in document...",noResults:"No results",matchOf:"{current} of {total}",matchesFound:"{count} matches found",caseSensitive:"Case sensitive",close:"Close search",next:"Next match",previous:"Previous match",replacePlaceholder:"Replace with...",replaceOne:"Replace",replaceAll:"Replace all",replacedCount:"{count} replaced"}},es:{general:{loading:"Cargando...",error:"Error",success:"Éxito",cancel:"Cancelar",confirm:"Confirmar",save:"Guardar",close:"Cerrar",retry:"Reintentar",poweredBy:"Desarrollado por"},editor:{title:"Editor DocVyu",untitledDocument:"Documento sin título",loadingEditor:"Cargando editor...",initializingEditor:"Inicializando editor...",documentLoaded:"Documento cargado exitosamente",documentSaved:"Documento guardado exitosamente",noDocumentLoaded:"No hay documento cargado"},toolbar:{file:"Archivo",edit:"Editar",view:"Ver",format:"Formato",help:"Ayuda",newDocument:"Nuevo Documento",openDocument:"Abrir Documento",saveDocument:"Guardar Documento",downloadDocument:"Descargar Documento",undo:"Deshacer (Ctrl+Z)",redo:"Rehacer (Ctrl+Y)",cut:"Cortar",copy:"Copiar",paste:"Pegar",selectAll:"Seleccionar Todo",home:"Inicio",insert:"Insertar",layout:"Diseño",clipboard:"Portapapeles",font:"Fuente",paragraph:"Párrafo",editing:"Edición",tables:"Tablas",styles:"Estilos",find:"Buscar",replace:"Reemplazar",size:"Tamaño",numberingFormat:"Formato de Numeración",table:"Tabla",insertTable:"Insertar Tabla",rows:"Filas",columns:"Columnas",image:"Imagen",insertImage:"Insertar Imagen",illustrations:"Ilustraciones",comment:"Comentario",comments:"Comentarios",insertComment:"Nuevo Comentario",showComments:"Mostrar Comentarios",header:"Encabezado",footer:"Pie de página",headerFooter:"Encabezado y Pie",insertHeader:"Editar Encabezado",insertFooter:"Editar Pie de página",review:"Revisar",pageNumber:"Número de Página",pageXOfY:"Página X de Y",fields:"Campos",sectionBreak:"Salto de Sección",breaks:"Saltos",bookmark:"Marcador",bookmarks:"Marcadores",insertBookmark:"Insertar Marcador"},formatting:{bold:"Negrita",italic:"Cursiva",underline:"Subrayado",strikethrough:"Tachado",fontSize:"Tamaño de Fuente",fontFamily:"Familia de Fuente",fontColor:"Color de Fuente",backgroundColor:"Color de Fondo",alignment:"Alineación",alignLeft:"Alinear a la Izquierda",alignCenter:"Centrar",alignRight:"Alinear a la Derecha",alignJustify:"Justificar",bulletList:"Lista con Viñetas",numberedList:"Lista Numerada",numberingFormats:"Formatos de Numeración",simpleList:"Lista Simple",outlineList:"Lista Multinivel",increaseIndent:"Aumentar Sangría",decreaseIndent:"Disminuir Sangría",lineSpacing:"Interlineado",paragraphSpacing:"Espaciado de Párrafo"},pageSettings:{title:"Configuración de Página",pageSize:"Tamaño de Página",margins:"Márgenes",marginTop:"Superior",marginBottom:"Inferior",marginLeft:"Izquierdo",marginRight:"Derecho",orientation:"Orientación",portrait:"Vertical",landscape:"Horizontal",customSize:"Tamaño Personalizado",letter:"Carta",legal:"Legal",a4:"A4",a5:"A5",b5:"B5",columns:"Columnas",oneColumn:"1 Columna",twoColumns:"2 Columnas",threeColumns:"3 Columnas"},zoom:{zoomIn:"Acercar",zoomOut:"Alejar",zoomLevel:"Nivel de Zoom",fitToPage:"Ajustar a Página",fitToWidth:"Ajustar al Ancho"},styles:{paragraphStyle:"Estilo de Párrafo",normal:"Normal",heading1:"Título 1",heading2:"Título 2",heading3:"Título 3",heading4:"Título 4",heading5:"Título 5",heading6:"Título 6",title:"Título",subtitle:"Subtítulo",listParagraph:"Párrafo de Lista"},ruler:{centimeters:"Centímetros",inches:"Pulgadas",toggleUnit:"Cambiar Unidad"},license:{freeTier:"Gratuito",starterTier:"Inicial",professionalTier:"Profesional",enterpriseTier:"Empresarial",documentsRemaining:"{count} documentos restantes este mes",unlimitedDocuments:"Documentos ilimitados",upgradeNow:"Actualizar Ahora",licenseValid:"La licencia es válida",licenseExpired:"La licencia ha expirado",licenseInvalid:"Licencia inválida",invalidLicense:"Licencia inválida o expirada. Por favor verifica tu clave API.",notValidated:"Licencia no validada. Por favor asegúrate de estar conectado a internet.",usageLimitExceeded:"Límite de Uso Excedido",usageLimitExceededMessage:"Has alcanzado tu límite mensual de documentos. Por favor actualiza tu plan para continuar.",checkingLicense:"Verificando licencia..."},watermark:{poweredBy:"Desarrollado con DocVyu"},errors:{editorNotInitialized:"Editor no inicializado. Por favor llama a initialize() primero.",documentLoadFailed:"Error al cargar el documento",documentSaveFailed:"Error al guardar el documento",featureNotAvailable:"Esta función no está disponible en tu plan actual. Por favor actualiza para acceder.",documentTooLarge:"El tamaño del documento excede el límite de tu plan",networkError:"Error de red. Por favor verifica tu conexión.",invalidApiKey:"Clave API inválida",licenseFetchFailed:"Error al obtener información de la licencia",wasmLoadFailed:"Error al cargar el módulo WebAssembly",canvasNotFound:"Elemento canvas no encontrado"},accessibility:{editorLabel:"Editor de Documentos",toolbarLabel:"Barra de Herramientas del Editor",formattingToolbar:"Barra de Formato",pageNavigation:"Navegación de Páginas",currentPage:"Página {current}",totalPages:"de {total}"},statusBar:{ready:"Listo",pageOf:"Página {current} de {total}",words:"{count} palabras",selectLanguage:"Seleccionar idioma",copied:"Copiado al portapapeles",cut:"Cortado al portapapeles",pasted:"Pegado desde el portapapeles",copyError:"Error al copiar",cutError:"Error al cortar",pasteError:"Error al pegar",listLevel:"Nivel {level}",listLevelTooltip:"Nivel de anidación de lista (Tab para aumentar, Shift+Tab para disminuir)",insertingImage:"Insertando imagen...",imageInserted:"Imagen insertada",imageError:"Error al insertar imagen"},comments:{enterAuthor:"Ingrese nombre del autor:",enterComment:"Ingrese comentario:",commentAdded:"Comentario agregado",commentError:"Error al agregar comentario",noComments:"No hay comentarios en el documento",documentComments:"Comentarios del Documento"},headerFooter:{headerNotSupported:"Edición de encabezado próximamente",footerNotSupported:"Edición de pie de página próximamente"},contextMenu:{copy:"Copiar",cut:"Cortar",paste:"Pegar",selectAll:"Seleccionar Todo",copyFormat:"Copiar Formato",applyFormat:"Aplicar Formato"},formatPainter:{copyFormat:"Copiar Formato",applyFormat:"Aplicar Formato",formatCopied:"Formato copiado",formatApplied:"Formato aplicado",noFormatCopied:"No hay formato copiado"},review:{accept:"Aceptar",reject:"Rechazar",acceptAll:"Aceptar Todo",rejectAll:"Rechazar Todo",noRevisions:"Sin revisiones",changes:"Cambios",trackChanges:"Control de Cambios"},viewTab:{properties:"Propiedades",title:"Título",author:"Autor",wordCount:"Palabras",characterCount:"Caracteres",bookmarksPanel:"Marcadores",tocPanel:"Tabla de Contenido",noBookmarks:"No hay marcadores en el documento",noHeadings:"No hay encabezados en el documento",documentInfo:"Info del Documento",navigation:"Navegación"},sectionBreaks:{nextPage:"Página Siguiente",continuous:"Continuo",evenPage:"Página Par",oddPage:"Página Impar"},search:{find:"Buscar",findPlaceholder:"Buscar en el documento...",noResults:"Sin resultados",matchOf:"{current} de {total}",matchesFound:"{count} coincidencias encontradas",caseSensitive:"Distinguir mayúsculas",close:"Cerrar búsqueda",next:"Siguiente",previous:"Anterior",replacePlaceholder:"Reemplazar con...",replaceOne:"Reemplazar",replaceAll:"Reemplazar todo",replacedCount:"{count} reemplazados"}},pt:{general:{loading:"Carregando...",error:"Erro",success:"Sucesso",cancel:"Cancelar",confirm:"Confirmar",save:"Salvar",close:"Fechar",retry:"Tentar novamente",poweredBy:"Desenvolvido por"},editor:{title:"Editor DocVyu",untitledDocument:"Documento sem título",loadingEditor:"Carregando editor...",initializingEditor:"Inicializando editor...",documentLoaded:"Documento carregado com sucesso",documentSaved:"Documento salvo com sucesso",noDocumentLoaded:"Nenhum documento carregado"},toolbar:{file:"Arquivo",edit:"Editar",view:"Visualizar",format:"Formatar",help:"Ajuda",newDocument:"Novo Documento",openDocument:"Abrir Documento",saveDocument:"Salvar Documento",downloadDocument:"Baixar Documento",undo:"Desfazer (Ctrl+Z)",redo:"Refazer (Ctrl+Y)",cut:"Recortar",copy:"Copiar",paste:"Colar",selectAll:"Selecionar Tudo",home:"Início",insert:"Inserir",layout:"Layout",clipboard:"Área de Transferência",font:"Fonte",paragraph:"Parágrafo",editing:"Edição",tables:"Tabelas",styles:"Estilos",find:"Localizar",replace:"Substituir",size:"Tamanho",numberingFormat:"Formato de Numeração",table:"Tabela",insertTable:"Inserir Tabela",rows:"Linhas",columns:"Colunas",image:"Imagem",insertImage:"Inserir Imagem",illustrations:"Ilustrações",comment:"Comentário",comments:"Comentários",insertComment:"Novo Comentário",showComments:"Mostrar Comentários",header:"Cabeçalho",footer:"Rodapé",headerFooter:"Cabeçalho e Rodapé",insertHeader:"Editar Cabeçalho",insertFooter:"Editar Rodapé",review:"Revisão",pageNumber:"Número de Página",pageXOfY:"Página X de Y",fields:"Campos",sectionBreak:"Quebra de Seção",breaks:"Quebras",bookmark:"Marcador",bookmarks:"Marcadores",insertBookmark:"Inserir Marcador"},formatting:{bold:"Negrito",italic:"Itálico",underline:"Sublinhado",strikethrough:"Riscado",fontSize:"Tamanho da Fonte",fontFamily:"Família da Fonte",fontColor:"Cor da Fonte",backgroundColor:"Cor de Fundo",alignment:"Alinhamento",alignLeft:"Alinhar à Esquerda",alignCenter:"Centralizar",alignRight:"Alinhar à Direita",alignJustify:"Justificar",bulletList:"Lista com Marcadores",numberedList:"Lista Numerada",numberingFormats:"Formatos de Numeração",simpleList:"Lista Simples",outlineList:"Lista Multinível",increaseIndent:"Aumentar Recuo",decreaseIndent:"Diminuir Recuo",lineSpacing:"Espaçamento entre Linhas",paragraphSpacing:"Espaçamento de Parágrafo"},pageSettings:{title:"Configurações de Página",pageSize:"Tamanho da Página",margins:"Margens",marginTop:"Superior",marginBottom:"Inferior",marginLeft:"Esquerda",marginRight:"Direita",orientation:"Orientação",portrait:"Retrato",landscape:"Paisagem",customSize:"Tamanho Personalizado",letter:"Carta",legal:"Ofício",a4:"A4",a5:"A5",b5:"B5",columns:"Colunas",oneColumn:"1 Coluna",twoColumns:"2 Colunas",threeColumns:"3 Colunas"},zoom:{zoomIn:"Aumentar Zoom",zoomOut:"Diminuir Zoom",zoomLevel:"Nível de Zoom",fitToPage:"Ajustar à Página",fitToWidth:"Ajustar à Largura"},styles:{paragraphStyle:"Estilo de Parágrafo",normal:"Normal",heading1:"Título 1",heading2:"Título 2",heading3:"Título 3",heading4:"Título 4",heading5:"Título 5",heading6:"Título 6",title:"Título",subtitle:"Subtítulo",listParagraph:"Parágrafo de Lista"},ruler:{centimeters:"Centímetros",inches:"Polegadas",toggleUnit:"Alternar Unidade"},license:{freeTier:"Gratuito",starterTier:"Inicial",professionalTier:"Profissional",enterpriseTier:"Empresarial",documentsRemaining:"{count} documentos restantes este mês",unlimitedDocuments:"Documentos ilimitados",upgradeNow:"Atualizar Agora",licenseValid:"Licença válida",licenseExpired:"Licença expirada",licenseInvalid:"Licença inválida",invalidLicense:"Licença inválida ou expirada. Por favor, verifique sua chave API.",notValidated:"Licença não validada. Por favor, verifique sua conexão com a internet.",usageLimitExceeded:"Limite de Uso Excedido",usageLimitExceededMessage:"Você atingiu seu limite mensal de documentos. Por favor, atualize seu plano para continuar.",checkingLicense:"Verificando licença..."},watermark:{poweredBy:"Desenvolvido com DocVyu"},errors:{editorNotInitialized:"Editor não inicializado. Por favor, chame initialize() primeiro.",documentLoadFailed:"Falha ao carregar o documento",documentSaveFailed:"Falha ao salvar o documento",featureNotAvailable:"Este recurso não está disponível no seu plano atual. Por favor, atualize para acessar.",documentTooLarge:"O tamanho do documento excede o limite do seu plano",networkError:"Erro de rede. Por favor, verifique sua conexão.",invalidApiKey:"Chave API inválida",licenseFetchFailed:"Falha ao obter informações da licença",wasmLoadFailed:"Falha ao carregar o módulo WebAssembly",canvasNotFound:"Elemento canvas não encontrado"},accessibility:{editorLabel:"Editor de Documentos",toolbarLabel:"Barra de Ferramentas do Editor",formattingToolbar:"Barra de Formatação",pageNavigation:"Navegação de Páginas",currentPage:"Página {current}",totalPages:"de {total}"},statusBar:{ready:"Pronto",pageOf:"Página {current} de {total}",words:"{count} palavras",selectLanguage:"Selecionar idioma",copied:"Copiado para a área de transferência",cut:"Cortado para a área de transferência",pasted:"Colado da área de transferência",copyError:"Falha ao copiar",cutError:"Falha ao cortar",pasteError:"Falha ao colar",listLevel:"Nível {level}",listLevelTooltip:"Nível de aninhamento da lista (Tab para aumentar, Shift+Tab para diminuir)",insertingImage:"Inserindo imagem...",imageInserted:"Imagem inserida",imageError:"Falha ao inserir imagem"},comments:{enterAuthor:"Digite o nome do autor:",enterComment:"Digite o comentário:",commentAdded:"Comentário adicionado",commentError:"Falha ao adicionar comentário",noComments:"Não há comentários no documento",documentComments:"Comentários do Documento"},headerFooter:{headerNotSupported:"Edição de cabeçalho em breve",footerNotSupported:"Edição de rodapé em breve"},contextMenu:{copy:"Copiar",cut:"Cortar",paste:"Colar",selectAll:"Selecionar Tudo",copyFormat:"Copiar Formato",applyFormat:"Aplicar Formato"},formatPainter:{copyFormat:"Copiar Formato",applyFormat:"Aplicar Formato",formatCopied:"Formato copiado",formatApplied:"Formato aplicado",noFormatCopied:"Nenhum formato copiado"},review:{accept:"Aceitar",reject:"Rejeitar",acceptAll:"Aceitar Tudo",rejectAll:"Rejeitar Tudo",noRevisions:"Sem revisões",changes:"Alterações",trackChanges:"Controle de Alterações"},viewTab:{properties:"Propriedades",title:"Título",author:"Autor",wordCount:"Palavras",characterCount:"Caracteres",bookmarksPanel:"Marcadores",tocPanel:"Índice",noBookmarks:"Não há marcadores no documento",noHeadings:"Não há títulos no documento",documentInfo:"Info do Documento",navigation:"Navegação"},sectionBreaks:{nextPage:"Próxima Página",continuous:"Contínuo",evenPage:"Página Par",oddPage:"Página Ímpar"},search:{find:"Buscar",findPlaceholder:"Buscar no documento...",noResults:"Sem resultados",matchOf:"{current} de {total}",matchesFound:"{count} correspondências encontradas",caseSensitive:"Diferenciar maiúsculas",close:"Fechar busca",next:"Próximo",previous:"Anterior",replacePlaceholder:"Substituir por...",replaceOne:"Substituir",replaceAll:"Substituir tudo",replacedCount:"{count} substituídos"}}},s={locale:"en",fallbackLocale:"en",customTranslations:{}};class l{constructor(e={}){this.listeners=new Set,this.config={...s,...e},this.currentTranslations=this.buildTranslations()}static getInstance(e){return l.instance?e&&l.instance.configure(e):l.instance=new l(e),l.instance}static reset(){l.instance=null}configure(e){this.config={...this.config,...e},this.currentTranslations=this.buildTranslations(),this.notifyListeners()}getLocale(){return this.config.locale}setLocale(e){this.config.locale!==e&&(this.config.locale=e,this.currentTranslations=this.buildTranslations(),this.notifyListeners())}getAvailableLocales(){return Object.keys(n)}getTranslations(){return this.currentTranslations}t(e,t){const i=this.getNestedValue(this.currentTranslations,e);if(void 0===i){const i=this.getNestedValue(n[this.config.fallbackLocale],e);return void 0===i?e:this.interpolate(i,t)}return this.interpolate(i,t)}onLocaleChange(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}detectAndSetLocale(){const e=this.detectBrowserLocale();return e?(this.setLocale(e),e):this.config.locale}detectBrowserLocale(){if("undefined"==typeof navigator)return null;const e=navigator.languages||[navigator.language];for(const t of e){const e=t.split("-")[0].toLowerCase();if(this.getAvailableLocales().includes(e))return e}return null}buildTranslations(){const e=n[this.config.locale]||n[this.config.fallbackLocale],t=this.config.customTranslations?.[this.config.locale];return t?this.deepMerge(e,t):e}getNestedValue(e,t){const i=t.split(".");let o=e;for(const e of i){if(null==o)return;o=o[e]}return"string"==typeof o?o:void 0}interpolate(e,t){return t?e.replace(/\{(\w+)\}/g,(e,i)=>{const o=t[i];return void 0!==o?String(o):`{${i}}`}):e}deepMerge(e,t){const i={...e};for(const o in t)if(Object.prototype.hasOwnProperty.call(t,o)){const r=t[o],a=e[o];null===r||"object"!=typeof r||Array.isArray(r)||null===a||"object"!=typeof a||Array.isArray(a)?void 0!==r&&(i[o]=r):i[o]=this.deepMerge(a,r)}return i}notifyListeners(){for(const e of this.listeners)e(this.config.locale)}}function c(e){return l.getInstance(e)}function d(e,t){return l.getInstance().t(e,t)}function u(e){l.getInstance().setLocale(e)}l.instance=null;class h{constructor(e){this.wasmEditor=null,this.isInitialized=!1,this.licenseValidated=!1,this.cursorBlinkInterval=null,this.cursorVisible=!0,this.localeUnsubscribe=null,this.config=e,this.licenseManager=new a({apiKey:e.apiKey,licenseServerUrl:e.licenseServerUrl,offlineMode:e.offlineMode});const t=c({locale:e.locale||"en",customTranslations:e.customTranslations});if(e.autoDetectLocale&&t.detectAndSetLocale(),e.onLocaleChange&&(this.localeUnsubscribe=t.onLocaleChange(e.onLocaleChange)),"string"==typeof e.canvas){const t=document.getElementById(e.canvas);if(!(t&&t instanceof HTMLCanvasElement))throw new Error(d("errors.canvasNotFound"));this.canvas=t,this.canvasId=e.canvas}else this.canvas=e.canvas,this.canvas.id||(this.canvas.id=`docvyu-canvas-${Date.now()}`),this.canvasId=this.canvas.id}async initialize(e,t){const i=await this.licenseManager.initialize();this.licenseValidated=!0;const o={valid:i.isValid,tier:i.tier,remaining:i.remainingUses,watermark:i.features.showWatermark,error:i.error};if(this.config.onLicenseChange&&this.config.onLicenseChange(o),this.licenseManager.isUsageLimitExceeded())throw this.config.onUsageLimitExceeded&&this.config.onUsageLimitExceeded(),new Error(d("license.usageLimitExceededMessage"));if(!i.isValid)throw new Error(i.error||d("license.invalidLicense"));return await e(),this.wasmEditor=new t(this.canvasId),this.isInitialized=!0,this.config.zoom&&this.wasmEditor.set_zoom(this.config.zoom),"inches"===this.config.rulerUnit&&this.wasmEditor.set_ruler_unit(1),this.wasmEditor.set_watermark(i.features.showWatermark),this.startCursorBlink(),o}async loadDocument(e){this.ensureInitialized(),this.ensureFeature("loadDocument");const t=e instanceof ArrayBuffer?new Uint8Array(e):e;if(this.licenseManager.isUsageLimitExceeded())throw this.config.onUsageLimitExceeded&&this.config.onUsageLimitExceeded(),new Error(d("license.usageLimitExceededMessage"));const i=this.licenseManager.getStatus().features.maxDocumentSize;if(i>0&&t.length>i)throw new Error(d("errors.documentTooLarge"));const o=await this.licenseManager.recordUsage();if(this.config.onLicenseChange&&this.config.onLicenseChange(this.getLicenseInfo()),o<=0&&this.licenseManager.isUsageLimitExceeded())throw this.config.onUsageLimitExceeded&&this.config.onUsageLimitExceeded(),new Error(d("license.usageLimitExceededMessage"));this.wasmEditor.load_docx_and_render(t),this.config.onLoad&&this.config.onLoad()}saveDocument(){this.ensureInitialized(),this.ensureFeature("saveDocument");const e=this.wasmEditor.save_document();return this.config.onSave&&this.config.onSave(e),e}downloadDocument(e="document.docx"){const t=this.saveDocument(),i=new Blob([new Uint8Array(t)],{type:"application/vnd.openxmlformats-officedocument.wordprocessingml.document"}),o=URL.createObjectURL(i),r=document.createElement("a");r.href=o,r.download=e,document.body.appendChild(r),r.click(),r.remove(),URL.revokeObjectURL(o)}setBold(e){this.ensureInitialized(),this.ensureFeature("formatting"),this.wasmEditor.set_bold(e),this.notifySelectionChange()}setItalic(e){this.ensureInitialized(),this.ensureFeature("formatting"),this.wasmEditor.set_italic(e),this.notifySelectionChange()}setUnderline(e){this.ensureInitialized(),this.ensureFeature("formatting"),this.wasmEditor.set_underline(e),this.notifySelectionChange()}setFontSize(e){this.ensureInitialized(),this.ensureFeature("formatting"),this.wasmEditor.set_font_size(e),this.notifySelectionChange()}resetFontSize(){this.ensureInitialized(),this.wasmEditor.reset_font_size(),this.notifySelectionChange()}setFontFamily(e){this.ensureInitialized(),this.ensureFeature("formatting"),this.wasmEditor.set_font_family(e),this.notifySelectionChange()}resetFontFamily(){this.ensureInitialized(),this.wasmEditor.reset_font_family(),this.notifySelectionChange()}setFontColor(e){this.ensureInitialized(),this.ensureFeature("formatting"),this.wasmEditor.set_font_color(e),this.notifySelectionChange()}resetFontColor(){this.ensureInitialized(),this.wasmEditor.reset_font_color(),this.notifySelectionChange()}setAlignment(e){this.ensureInitialized(),this.ensureFeature("formatting"),this.wasmEditor.set_paragraph_alignment(e),this.notifySelectionChange()}setBulletList(e){this.ensureInitialized(),this.ensureFeature("lists"),this.wasmEditor.set_bullet_list(e),this.notifySelectionChange()}setNumberedList(e){this.ensureInitialized(),this.ensureFeature("lists"),this.wasmEditor.set_numbered_list(e),this.notifySelectionChange()}setNumberedListFormat(e){this.ensureInitialized(),this.ensureFeature("lists"),this.wasmEditor.set_numbered_list_format(e),this.notifySelectionChange()}setOutlineList(e){this.ensureInitialized(),this.ensureFeature("lists"),this.wasmEditor.set_outline_list(e),this.notifySelectionChange()}hasOutlineList(){return this.ensureInitialized(),this.wasmEditor.has_outline_list()}getListFormats(){this.ensureInitialized();const e=this.wasmEditor.get_list_formats();try{return JSON.parse(e)}catch{return[]}}applyNumbering(e){this.ensureInitialized(),this.ensureFeature("lists");const t={102:"decimal",103:"decimal-paren",104:"decimal-paren-both",105:"upper-letter",106:"lower-letter",107:"upper-roman",108:"lower-roman",109:"outline",110:"outline-mixed",111:"outline-legal"}[e];t&&(this.wasmEditor.set_numbered_list_format(t),this.notifySelectionChange())}removeNumbering(){this.ensureInitialized(),this.wasmEditor.remove_numbering(),this.notifySelectionChange()}getAvailableStyles(){this.ensureInitialized();const e=this.wasmEditor.get_available_styles();try{return JSON.parse(e)}catch{return[]}}applyParagraphStyle(e){this.ensureInitialized(),this.wasmEditor.apply_paragraph_style(e),this.notifySelectionChange()}getCurrentParagraphStyle(){return this.ensureInitialized(),this.wasmEditor.get_current_paragraph_style()}removeParagraphStyle(){this.ensureInitialized(),this.wasmEditor.remove_paragraph_style(),this.notifySelectionChange()}insertTable(e,t){this.ensureInitialized(),this.wasmEditor.insert_table(e,t),this.notifySelectionChange()}getListLevel(){return this.ensureInitialized(),this.wasmEditor.get_list_level()}increaseListLevel(){this.ensureInitialized(),this.ensureFeature("lists"),this.wasmEditor.increase_list_level(),this.notifySelectionChange()}decreaseListLevel(){this.ensureInitialized(),this.ensureFeature("lists"),this.wasmEditor.decrease_list_level(),this.notifySelectionChange()}setMargins(e){this.ensureInitialized(),this.ensureFeature("pageSettings"),this.wasmEditor.set_page_margins(e.left,e.right,e.top,e.bottom)}setPageSize(e){this.ensureInitialized(),this.ensureFeature("pageSettings"),"custom"!==e&&this.wasmEditor.set_page_size(e)}getPageSize(){return this.ensureInitialized(),this.wasmEditor.get_page_size()}setZoom(e){this.ensureInitialized(),this.ensureFeature("zoom"),this.wasmEditor.set_zoom(e)}getZoom(){return this.ensureInitialized(),this.wasmEditor.get_zoom()}zoomIn(){this.ensureInitialized(),this.ensureFeature("zoom"),this.wasmEditor.zoom_in()}zoomOut(){this.ensureInitialized(),this.ensureFeature("zoom"),this.wasmEditor.zoom_out()}setViewport(e,t){this.ensureInitialized(),this.wasmEditor.set_viewport(e,t)}getParagraphPositions(){return this.ensureInitialized(),this.wasmEditor.get_paragraph_positions()}setRulerUnit(e){this.ensureInitialized(),this.wasmEditor.set_ruler_unit("inches"===e?1:0)}getRulerUnit(){return this.ensureInitialized(),1===this.wasmEditor.get_ruler_unit()?"inches":"centimeters"}toggleRulerUnit(){this.ensureInitialized(),this.wasmEditor.toggle_ruler_unit()}selectWord(){this.ensureInitialized(),this.wasmEditor.select_word(),this.notifySelectionChange()}selectParagraph(){this.ensureInitialized(),this.wasmEditor.select_paragraph(),this.notifySelectionChange()}selectAll(){this.ensureInitialized(),this.wasmEditor.select_document(),this.notifySelectionChange()}getSelectedText(){return this.ensureInitialized(),this.wasmEditor.get_selected_text()}copyText(){return this.ensureInitialized(),this.wasmEditor.copy()}cutText(){this.ensureInitialized();const e=this.wasmEditor.cut();return this.notifySelectionChange(),e}pasteText(e){this.ensureInitialized(),this.wasmEditor.paste_text(e),this.notifySelectionChange()}find(e,t=!1){this.ensureInitialized();const i=this.wasmEditor.find(e,t);return{query:e,matchCount:i,currentIndex:this.wasmEditor.get_search_current_index(),isActive:i>0||e.length>0}}findNext(){return this.ensureInitialized(),this.wasmEditor.find_next(),{query:this.wasmEditor.get_search_query(),matchCount:this.wasmEditor.get_search_match_count(),currentIndex:this.wasmEditor.get_search_current_index(),isActive:this.wasmEditor.is_search_active()}}findPrevious(){return this.ensureInitialized(),this.wasmEditor.find_previous(),{query:this.wasmEditor.get_search_query(),matchCount:this.wasmEditor.get_search_match_count(),currentIndex:this.wasmEditor.get_search_current_index(),isActive:this.wasmEditor.is_search_active()}}clearSearch(){this.ensureInitialized(),this.wasmEditor.clear_search()}getSearchState(){return this.ensureInitialized(),{query:this.wasmEditor.get_search_query(),matchCount:this.wasmEditor.get_search_match_count(),currentIndex:this.wasmEditor.get_search_current_index(),isActive:this.wasmEditor.is_search_active()}}replaceCurrent(e){return this.ensureInitialized(),this.wasmEditor.replace_current(e)}replaceAll(e){return this.ensureInitialized(),this.wasmEditor.replace_all(e)}undo(){return this.ensureInitialized(),this.wasmEditor.undo()}redo(){return this.ensureInitialized(),this.wasmEditor.redo()}canUndo(){return this.ensureInitialized(),this.wasmEditor.can_undo()}canRedo(){return this.ensureInitialized(),this.wasmEditor.can_redo()}insertImage(e,t,i,o){this.ensureInitialized(),this.wasmEditor.insert_image(e,t,i,o),this.notifySelectionChange(),setTimeout(()=>{this.wasmEditor&&this.wasmEditor.render()},100)}render(){this.ensureInitialized(),this.wasmEditor.render()}isCursorOnImage(){return this.ensureInitialized(),this.wasmEditor.is_cursor_on_image()}getImageDimensions(){this.ensureInitialized();const e=this.wasmEditor.get_image_width_at_cursor(),t=this.wasmEditor.get_image_height_at_cursor();return e<0||t<0?null:{width:e,height:t}}resizeImage(e,t){this.ensureInitialized();const i=this.wasmEditor.resize_image_at_cursor(e,t);return i&&this.notifySelectionChange(),i}scaleImage(e){this.ensureInitialized();const t=this.wasmEditor.scale_image_at_cursor(e);return t&&this.notifySelectionChange(),t}getImageWrapMode(){return this.ensureInitialized(),this.wasmEditor.get_image_wrap_mode()}setImageWrapMode(e){this.ensureInitialized();const t=this.wasmEditor.set_image_wrap_mode(e);return t&&this.notifySelectionChange(),t}isImageFloating(){return this.ensureInitialized(),this.wasmEditor.is_image_floating()}getImageFloatPosition(){this.ensureInitialized();const e=this.wasmEditor.get_image_float_x(),t=this.wasmEditor.get_image_float_y();return e<0||t<0?null:{x:e,y:t}}setImageFloatPosition(e,t){return this.ensureInitialized(),this.wasmEditor.set_image_float_position(e,t)}startImageDrag(e,t){return this.ensureInitialized(),this.wasmEditor.start_image_drag(e,t)}moveImageDrag(e,t){this.ensureInitialized(),this.wasmEditor.move_image_drag(e,t)}endImageDrag(){this.ensureInitialized(),this.wasmEditor.end_image_drag()}isDraggingImage(){return this.ensureInitialized(),this.wasmEditor.is_dragging_image()}insertComment(e,t){this.ensureInitialized(),this.wasmEditor.insert_comment(e,t),this.notifySelectionChange()}getCommentCount(){return this.ensureInitialized(),this.wasmEditor.get_comment_count()}getCommentAuthor(e){return this.ensureInitialized(),this.wasmEditor.get_comment_author(e)}getCommentInitials(e){return this.ensureInitialized(),this.wasmEditor.get_comment_initials(e)}getCommentDate(e){return this.ensureInitialized(),this.wasmEditor.get_comment_date(e)}getCommentText(e){return this.ensureInitialized(),this.wasmEditor.get_comment_text(e)}getCommentId(e){return this.ensureInitialized(),this.wasmEditor.get_comment_id(e)}getCommentsAtCursor(){this.ensureInitialized();const e=this.wasmEditor.get_comments_at_cursor();return Array.from(e)}getSelectionState(){this.ensureInitialized();const e=this.wasmEditor.selection_style_state();return{bold:e.bold_all(),italic:e.italic_all(),underline:e.underline_all(),strikethrough:e.strike_all(),fontSize:e.font_size(),fontFamily:e.font_family(),fontColor:e.font_color(),alignment:e.paragraph_alignment(),hasBulletList:this.wasmEditor.has_bullet_list(),hasNumberedList:this.wasmEditor.has_numbered_list(),hasOutlineList:this.wasmEditor.has_outline_list(),numberingFormatId:this.wasmEditor.get_numbering_format_id(),listLevel:this.wasmEditor.get_list_level()}}getCursorFormat(){this.ensureInitialized();const e=this.wasmEditor.get_cursor_format();return{bold:e.bold(),italic:e.italic(),underline:e.underline(),fontSize:e.font_size(),fontFamily:e.font_family(),fontColor:e.font_color(),alignment:e.paragraph_alignment()}}handleMouseClick(e,t){this.ensureInitialized(),this.wasmEditor.on_mouse_click(e,t),this.resetCursorBlink(),this.notifySelectionChange()}handleMouseDrag(e,t){this.ensureInitialized(),this.wasmEditor.on_mouse_drag(e,t),this.notifySelectionChange()}getHyperlinkAtPosition(e,t){return this.ensureInitialized(),this.wasmEditor.get_hyperlink_at_position(e,t)}navigateToBookmark(e){return this.ensureInitialized(),this.wasmEditor.navigate_to_bookmark(e)}handleKeyDown(e){this.ensureInitialized(),this.ensureFeature("editText"),this.wasmEditor.on_key_down(e),this.resetCursorBlink(),this.notifySelectionChange()}getLicenseInfo(){const e=this.licenseManager.getStatus();return{valid:e.isValid,tier:e.tier,remaining:e.remainingUses,watermark:e.features.showWatermark,error:e.error}}shouldShowWatermark(){return this.licenseManager.getStatus().features.showWatermark}getWatermarkText(){return d("watermark.poweredBy")}setLocale(e){u(e)}getLocale(){return l.getInstance().getLocale()}translate(e,t){return d(e,t)}insertHeader(){this.ensureInitialized(),this.wasmEditor.insert_header(),this.notifySelectionChange()}insertFooter(){this.ensureInitialized(),this.wasmEditor.insert_footer(),this.notifySelectionChange()}enterHeaderEditing(){this.ensureInitialized(),this.wasmEditor.enter_header_editing(),this.notifySelectionChange()}enterFooterEditing(){this.ensureInitialized(),this.wasmEditor.enter_footer_editing(),this.notifySelectionChange()}getEditContext(){return this.ensureInitialized(),this.wasmEditor.get_edit_context()}destroy(){this.stopCursorBlink(),this.localeUnsubscribe&&(this.localeUnsubscribe(),this.localeUnsubscribe=null),this.wasmEditor&&(this.wasmEditor.free(),this.wasmEditor=null),this.isInitialized=!1}ensureInitialized(){if(!this.licenseValidated)throw new Error(d("license.notValidated"));if(!this.isInitialized||!this.wasmEditor)throw new Error(d("errors.editorNotInitialized"))}ensureLicenseValid(){if(!this.licenseValidated)throw new Error(d("license.notValidated"));const e=this.licenseManager.getStatus();if(!e.isValid)throw new Error(e.error||d("license.invalidLicense"))}ensureFeature(e){if(!this.licenseManager.hasFeature(e))throw new Error(d("errors.featureNotAvailable"))}notifySelectionChange(){this.config.onSelectionChange&&this.isInitialized&&this.config.onSelectionChange(this.getSelectionState())}startCursorBlink(){this.stopCursorBlink(),this.cursorVisible=!0,this.cursorBlinkInterval=window.setInterval(()=>{this.cursorVisible=!this.cursorVisible,this.wasmEditor&&this.wasmEditor.set_cursor_visible(this.cursorVisible)},530)}stopCursorBlink(){null!==this.cursorBlinkInterval&&(clearInterval(this.cursorBlinkInterval),this.cursorBlinkInterval=null)}resetCursorBlink(){this.cursorVisible=!0,this.wasmEditor&&this.wasmEditor.set_cursor_visible(!0),this.startCursorBlink()}setStrikethrough(e){this.ensureInitialized(),this.ensureFeature("formatting"),this.wasmEditor.set_strikethrough(e),this.notifySelectionChange()}getRevisionCount(){return this.ensureInitialized(),this.wasmEditor.get_revision_count()}getRevisionsJson(){return this.ensureInitialized(),this.wasmEditor.get_revisions_json()}acceptRevision(e){this.ensureInitialized(),this.wasmEditor.accept_revision(e)}rejectRevision(e){this.ensureInitialized(),this.wasmEditor.reject_revision(e)}acceptAllRevisions(){this.ensureInitialized(),this.wasmEditor.accept_all_revisions()}rejectAllRevisions(){this.ensureInitialized(),this.wasmEditor.reject_all_revisions()}insertPageNumberField(e){this.ensureInitialized(),this.wasmEditor.insert_page_number_field(e)}insertPageXOfY(){this.ensureInitialized(),this.wasmEditor.insert_page_x_of_y()}getPageOrientation(){return this.ensureInitialized(),this.wasmEditor.get_page_orientation()}setPageOrientation(e){this.ensureInitialized(),this.wasmEditor.set_page_orientation(e)}getColumnCount(){return this.ensureInitialized(),this.wasmEditor.get_column_count()}setColumnCount(e){this.ensureInitialized(),this.wasmEditor.set_column_count(e)}hasColumns(){return this.ensureInitialized(),this.wasmEditor.has_columns()}insertSectionBreak(e){this.ensureInitialized(),this.wasmEditor.insert_section_break(e)}getSectionBreakType(){return this.ensureInitialized(),this.wasmEditor.get_section_break_type()}getBookmarkCount(){return this.ensureInitialized(),this.wasmEditor.get_bookmark_count()}getBookmarksJson(){return this.ensureInitialized(),this.wasmEditor.get_bookmarks_json()}getBookmarkNames(){return this.ensureInitialized(),this.wasmEditor.get_bookmark_names()}hasBookmark(e){return this.ensureInitialized(),this.wasmEditor.has_bookmark(e)}selectBookmark(e){return this.ensureInitialized(),this.wasmEditor.select_bookmark(e)}insertBookmark(e){this.ensureInitialized(),this.wasmEditor.insert_bookmark(e)}generateTocJson(){return this.ensureInitialized(),this.wasmEditor.generate_toc_json()}getTocEntryCount(){return this.ensureInitialized(),this.wasmEditor.get_toc_entry_count()}navigateToTocEntry(e){return this.ensureInitialized(),this.wasmEditor.navigate_to_toc_entry(e)}getDocumentPropertiesJson(){return this.ensureInitialized(),this.wasmEditor.get_document_properties_json()}getDocumentTitle(){return this.ensureInitialized(),this.wasmEditor.get_document_title()}setDocumentTitle(e){this.ensureInitialized(),this.wasmEditor.set_document_title(e)}getDocumentCreator(){return this.ensureInitialized(),this.wasmEditor.get_document_creator()}setDocumentCreator(e){this.ensureInitialized(),this.wasmEditor.set_document_creator(e)}calculateWordCount(){return this.ensureInitialized(),this.wasmEditor.calculate_word_count()}calculateCharacterCount(){return this.ensureInitialized(),this.wasmEditor.calculate_character_count()}getPageCount(){return this.ensureInitialized(),this.wasmEditor.get_page_count()}getCurrentPage(){return this.ensureInitialized(),this.wasmEditor.get_current_page()}}exports.DocvyuEditor=h,exports.LicenseManager=a,exports.createEditor=function(e){return new h(e)},exports.getAvailableLocales=function(){return l.getInstance().getAvailableLocales()},exports.initI18n=c,exports.onLocaleChange=function(e){return l.getInstance().onLocaleChange(e)},exports.setLocale=u,exports.t=d;
|