keevo-components 2.0.88 → 2.0.90

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.
Files changed (45) hide show
  1. package/esm2022/lib/api/components/table/table.config.mjs +1 -1
  2. package/esm2022/lib/api/services/pdf.service.mjs +48 -0
  3. package/esm2022/lib/components/kv-inputs/kv-editor/components/kv-instrucoes-report/kv-instrucoes-report.component.mjs +11 -0
  4. package/esm2022/lib/components/kv-inputs/kv-editor/components/kv-report-modal/kv-report-modal.component.mjs +40 -0
  5. package/esm2022/lib/components/kv-inputs/kv-editor/config/kv-editor.config.mjs +108 -0
  6. package/esm2022/lib/components/kv-inputs/kv-editor/kv-editor.component.mjs +148 -97
  7. package/esm2022/lib/components/kv-inputs/kv-editor/kv-editor.mjs +7 -0
  8. package/esm2022/lib/components/kv-inputs/kv-editor/services/kv-editor-mention.service.mjs +135 -0
  9. package/esm2022/lib/components/kv-inputs/kv-editor/services/kv-editor-pdf.service.mjs +169 -0
  10. package/esm2022/lib/components/kv-inputs/kv-editor/services/kv-editor-quill.service.mjs +78 -0
  11. package/esm2022/lib/components/kv-inputs/kv-editor/services/kv-editor-relatorio.service.mjs +95 -0
  12. package/esm2022/lib/components/kv-inputs/kv-editor/types/kv-editor.types.mjs +2 -0
  13. package/esm2022/lib/components/kv-inputs/kv-inputs.module.mjs +28 -4
  14. package/esm2022/lib/components/kv-inputs/kv-tree-multi-select/kv-tree-multi-select.component.mjs +3 -3
  15. package/esm2022/lib/components/kv-layout/layout/kv-layout.component.mjs +3 -3
  16. package/esm2022/lib/components/kv-table/kv-table.component.mjs +3 -3
  17. package/esm2022/lib/components/kv-table-viewer/components/actions-lote-field/actions-lote-field.component.mjs +15 -0
  18. package/esm2022/lib/components/kv-table-viewer/components/actions-row-menu/actions-row-menu.component.mjs +18 -0
  19. package/esm2022/lib/components/kv-table-viewer/kv-table-viewer.component.mjs +166 -0
  20. package/esm2022/lib/components/kv-tags/kv-tags.component.mjs +2 -2
  21. package/esm2022/public-api.mjs +5 -1
  22. package/fesm2022/keevo-components.mjs +1196 -298
  23. package/fesm2022/keevo-components.mjs.map +1 -1
  24. package/lib/api/base-components/base-component-dropdown.d.ts +1 -1
  25. package/lib/api/components/table/table.config.d.ts +2 -0
  26. package/lib/api/services/pdf.service.d.ts +7 -0
  27. package/lib/components/kv-buttons/kv-button-popup/kv-button-popup.component.d.ts +1 -1
  28. package/lib/components/kv-inputs/kv-editor/components/kv-instrucoes-report/kv-instrucoes-report.component.d.ts +5 -0
  29. package/lib/components/kv-inputs/kv-editor/components/kv-report-modal/kv-report-modal.component.d.ts +14 -0
  30. package/lib/components/kv-inputs/kv-editor/config/kv-editor.config.d.ts +55 -0
  31. package/lib/components/kv-inputs/kv-editor/kv-editor.component.d.ts +39 -13
  32. package/lib/components/kv-inputs/kv-editor/kv-editor.d.ts +6 -0
  33. package/lib/components/kv-inputs/kv-editor/services/kv-editor-mention.service.d.ts +41 -0
  34. package/lib/components/kv-inputs/kv-editor/services/kv-editor-pdf.service.d.ts +41 -0
  35. package/lib/components/kv-inputs/kv-editor/services/kv-editor-quill.service.d.ts +28 -0
  36. package/lib/components/kv-inputs/kv-editor/services/kv-editor-relatorio.service.d.ts +45 -0
  37. package/lib/components/kv-inputs/kv-editor/types/kv-editor.types.d.ts +32 -0
  38. package/lib/components/kv-inputs/kv-inputs.module.d.ts +7 -1
  39. package/lib/components/kv-stepper/kv-stepper.component.d.ts +1 -1
  40. package/lib/components/kv-table-viewer/components/actions-lote-field/actions-lote-field.component.d.ts +8 -0
  41. package/lib/components/kv-table-viewer/components/actions-row-menu/actions-row-menu.component.d.ts +7 -0
  42. package/lib/components/kv-table-viewer/kv-table-viewer.component.d.ts +64 -0
  43. package/lib/components/kv-tag/kv-tag.component.d.ts +1 -1
  44. package/package.json +6 -4
  45. package/public-api.d.ts +4 -0
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2FwaS9jb21wb25lbnRzL3RhYmxlL3RhYmxlLmNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGFibGVDb25maWdDb2x1bW4gfSBmcm9tICcuL3RhYmxlLmNvbmZpZy5jb2x1bW4nO1xyXG5pbXBvcnQgeyBLdk1lbnVJdGVtLCBWYWx1ZU9yRm4gfSBmcm9tICcuL2t2LW1lbnVpdGVtJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVGFibGVDb25maWcge1xyXG4gIGFjdGlvbnM/OiBLdk1lbnVJdGVtW107XHJcbiAgYWN0aW9uc0xvdGU/OiBBY3Rpb25zTG90ZUl0ZW1bXTtcclxuICBjb2x1bW5zOiBUYWJsZUNvbmZpZ0NvbHVtbltdO1xyXG4gIGRhdGFLZXk/OiBzdHJpbmc7XHJcbiAgcm93cz86IGFueTtcclxuICB0aXRsZT86IHN0cmluZztcclxuICBzdWJ0aXRsZT86IHN0cmluZztcclxuICBsYXp5OiBib29sZWFuO1xyXG4gIGZpZWxkR3JvdXA/OiBzdHJpbmc7XHJcbiAgZW5hYmxlQ2F0aW9uPzogYm9vbGVhbjtcclxuICBlbmFibGVGaWx0ZXI/OiBib29sZWFuO1xyXG4gIGVuYWJsZVNlbGVjdD86IGJvb2xlYW47XHJcbiAgZW5hYmxlVG9nZ2xlTm9kZXM/OiBib29sZWFuO1xyXG4gIHRlbXBsYXRlUm93RXhwYW5kZWQ/OiBhbnk7XHJcbiAgLy8gdmlzaWJsZUNvbnRyb2xDaGVja2JveEZ1bmN0aW9uPzogKHJvd0RhdGE6IGFueSkgPT4gYm9vbGVhbjsgLy8gQSBmdW7Dp8OjbyBxdWUgY29udHJvbGEgYSBlZGnDp8Ojb1xyXG4gIGRpc2FibGVDb250cm9sQ2hlY2tib3hGdW5jdGlvbj86IChyb3dEYXRhOiBhbnksIHJvd05vZGU/OiBhbnkpID0+IGJvb2xlYW47IC8vIEEgZnVuw6fDo28gcXVlIGNvbnRyb2xhIGEgZWRpw6fDo29cclxuICBmaWVsZEdyb3VwQ29sb3JGdW5jdGlvbj86IChkYXRhOiBhbnkpID0+IHN0cmluZzsgLy8gTsOjbyDDqSB1dGlsaXphZG9cclxuICBkaXNhYmxlUm93PzogKHJvd0RhdGE6IGFueSkgPT4gYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBY3Rpb25zTG90ZUl0ZW0ge1xyXG4gIC8qKlxyXG4gICAqIElnbm9yYWRvIHBvciBlbnF1YW50b1xyXG4gICAqL1xyXG4gIHNldmVyaXR5PzogJ3ByaW1hcnknIHwgJ3NlY29uZGFyeScgfCAndGVydGlhcnknO1xyXG4gIGljb246IHN0cmluZztcclxuICBzaG93QWNvZXNMb3RlPzogYm9vbGVhbjtcclxuICB0b29sdGlwPzogVmFsdWVPckZuPHN0cmluZyB8IHVuZGVmaW5lZD47XHJcbiAgZGlzYWJsZWQ/OiBWYWx1ZU9yRm48Ym9vbGVhbiB8IHVuZGVmaW5lZD47XHJcbiAgdmlzaWJsZT86IFZhbHVlT3JGbjxib29sZWFuIHwgdW5kZWZpbmVkPjtcclxuICBsYWJlbD86IFZhbHVlT3JGbjxzdHJpbmc+O1xyXG4gIGNvbW1hbmQ/OiAoKSA9PiB2b2lkO1xyXG59XHJcbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2FwaS9jb21wb25lbnRzL3RhYmxlL3RhYmxlLmNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGFibGVDb25maWdDb2x1bW4gfSBmcm9tICcuL3RhYmxlLmNvbmZpZy5jb2x1bW4nO1xyXG5pbXBvcnQgeyBLdk1lbnVJdGVtLCBWYWx1ZU9yRm4gfSBmcm9tICcuL2t2LW1lbnVpdGVtJztcclxuaW1wb3J0IHsgTWVudUl0ZW0gfSBmcm9tICdwcmltZW5nL2FwaSc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFRhYmxlQ29uZmlnIHtcclxuICBhY3Rpb25zPzogS3ZNZW51SXRlbVtdO1xyXG4gIGFjdGlvbnNMb3RlPzogQWN0aW9uc0xvdGVJdGVtW107XHJcbiAgY29sdW1uczogVGFibGVDb25maWdDb2x1bW5bXTtcclxuICBkYXRhS2V5Pzogc3RyaW5nO1xyXG4gIHJvd3M/OiBhbnk7XHJcbiAgdGl0bGU/OiBzdHJpbmc7XHJcbiAgc3VidGl0bGU/OiBzdHJpbmc7XHJcbiAgbGF6eTogYm9vbGVhbjtcclxuICBmaWVsZEdyb3VwPzogc3RyaW5nO1xyXG4gIGVuYWJsZUNhdGlvbj86IGJvb2xlYW47XHJcbiAgZW5hYmxlRmlsdGVyPzogYm9vbGVhbjtcclxuICBlbmFibGVTZWxlY3Q/OiBib29sZWFuO1xyXG4gIGVuYWJsZVRvZ2dsZU5vZGVzPzogYm9vbGVhbjtcclxuICB0ZW1wbGF0ZVJvd0V4cGFuZGVkPzogYW55O1xyXG4gIC8vIHZpc2libGVDb250cm9sQ2hlY2tib3hGdW5jdGlvbj86IChyb3dEYXRhOiBhbnkpID0+IGJvb2xlYW47IC8vIEEgZnVuw6fDo28gcXVlIGNvbnRyb2xhIGEgZWRpw6fDo29cclxuICBkaXNhYmxlQ29udHJvbENoZWNrYm94RnVuY3Rpb24/OiAocm93RGF0YTogYW55LCByb3dOb2RlPzogYW55KSA9PiBib29sZWFuOyAvLyBBIGZ1bsOnw6NvIHF1ZSBjb250cm9sYSBhIGVkacOnw6NvXHJcbiAgZmllbGRHcm91cENvbG9yRnVuY3Rpb24/OiAoZGF0YTogYW55KSA9PiBzdHJpbmc7IC8vIE7Do28gw6kgdXRpbGl6YWRvXHJcbiAgZGlzYWJsZVJvdz86IChyb3dEYXRhOiBhbnkpID0+IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQWN0aW9uc0xvdGVJdGVtIHtcclxuICAvKipcclxuICAgKiBJZ25vcmFkbyBwb3IgZW5xdWFudG9cclxuICAgKi9cclxuICBzZXZlcml0eT86ICdwcmltYXJ5JyB8ICdzZWNvbmRhcnknIHwgJ3RlcnRpYXJ5JztcclxuICBpY29uOiBzdHJpbmc7XHJcbiAgc2hvd0Fjb2VzTG90ZT86IGJvb2xlYW47XHJcbiAgdG9vbHRpcD86IFZhbHVlT3JGbjxzdHJpbmcgfCB1bmRlZmluZWQ+O1xyXG4gIGRpc2FibGVkPzogVmFsdWVPckZuPGJvb2xlYW4gfCB1bmRlZmluZWQ+O1xyXG4gIHZpc2libGU/OiBWYWx1ZU9yRm48Ym9vbGVhbiB8IHVuZGVmaW5lZD47XHJcbiAgbGFiZWw/OiBWYWx1ZU9yRm48c3RyaW5nPjtcclxuICBpdGVtcz86IE1lbnVJdGVtW107XHJcbiAgY29tbWFuZD86ICgpID0+IHZvaWQ7XHJcbn1cclxuIl19
@@ -0,0 +1,48 @@
1
+ // pdf.service.ts (VERSÃO FINAL - com html2canvas)
2
+ import { Injectable } from '@angular/core';
3
+ import jsPDF from 'jspdf';
4
+ import html2canvas from 'html2canvas';
5
+ import * as i0 from "@angular/core";
6
+ export class PdfService {
7
+ constructor() { }
8
+ async gerarPdfBlobPorElementoId(elementId) {
9
+ const element = document.getElementById(elementId);
10
+ if (!element) {
11
+ throw new Error(`Elemento com id "${elementId}" para renderização do PDF não foi encontrado.`);
12
+ }
13
+ const canvas = await html2canvas(element, {
14
+ scale: 2, // Boa relação entre qualidade e performance
15
+ useCORS: true,
16
+ });
17
+ const imgData = canvas.toDataURL('image/png');
18
+ const pdf = new jsPDF({
19
+ orientation: 'p',
20
+ unit: 'mm',
21
+ format: 'a4'
22
+ });
23
+ const pdfWidth = pdf.internal.pageSize.getWidth();
24
+ const pdfPageHeight = pdf.internal.pageSize.getHeight();
25
+ const imgProps = pdf.getImageProperties(imgData);
26
+ const imgHeight = (imgProps.height * pdfWidth) / imgProps.width;
27
+ let heightLeft = imgHeight;
28
+ let position = 0;
29
+ pdf.addImage(imgData, 'PNG', 0, position, pdfWidth, imgHeight);
30
+ heightLeft -= pdfPageHeight;
31
+ while (heightLeft > 0) {
32
+ position -= pdfPageHeight;
33
+ pdf.addPage();
34
+ pdf.addImage(imgData, 'PNG', 0, position, pdfWidth, imgHeight);
35
+ heightLeft -= pdfPageHeight;
36
+ }
37
+ return pdf.output('blob');
38
+ }
39
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: PdfService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
40
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: PdfService, providedIn: 'root' }); }
41
+ }
42
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: PdfService, decorators: [{
43
+ type: Injectable,
44
+ args: [{
45
+ providedIn: 'root'
46
+ }]
47
+ }], ctorParameters: () => [] });
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGRmLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rZWV2by1jb21wb25lbnRzL3NyYy9saWIvYXBpL3NlcnZpY2VzL3BkZi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGtEQUFrRDtBQUVsRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLFdBQVcsTUFBTSxhQUFhLENBQUM7O0FBS3RDLE1BQU0sT0FBTyxVQUFVO0lBRW5CLGdCQUFnQixDQUFDO0lBRVYsS0FBSyxDQUFDLHlCQUF5QixDQUFDLFNBQWlCO1FBRXBELE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ1gsTUFBTSxJQUFJLEtBQUssQ0FBQyxvQkFBb0IsU0FBUyxnREFBZ0QsQ0FBQyxDQUFDO1FBQ25HLENBQUM7UUFFRCxNQUFNLE1BQU0sR0FBRyxNQUFNLFdBQVcsQ0FBQyxPQUFPLEVBQUU7WUFDdEMsS0FBSyxFQUFFLENBQUMsRUFBRSw0Q0FBNEM7WUFDdEQsT0FBTyxFQUFFLElBQUk7U0FDaEIsQ0FBQyxDQUFDO1FBRUgsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUU5QyxNQUFNLEdBQUcsR0FBRyxJQUFJLEtBQUssQ0FBQztZQUNsQixXQUFXLEVBQUUsR0FBRztZQUNoQixJQUFJLEVBQUUsSUFBSTtZQUNWLE1BQU0sRUFBRSxJQUFJO1NBQ2YsQ0FBQyxDQUFDO1FBRUgsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDbEQsTUFBTSxhQUFhLEdBQUcsR0FBRyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDeEQsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pELE1BQU0sU0FBUyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUMsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDO1FBRWhFLElBQUksVUFBVSxHQUFHLFNBQVMsQ0FBQztRQUMzQixJQUFJLFFBQVEsR0FBRyxDQUFDLENBQUM7UUFFakIsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQy9ELFVBQVUsSUFBSSxhQUFhLENBQUM7UUFFNUIsT0FBTyxVQUFVLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDcEIsUUFBUSxJQUFJLGFBQWEsQ0FBQztZQUMxQixHQUFHLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDZCxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFDL0QsVUFBVSxJQUFJLGFBQWEsQ0FBQztRQUNoQyxDQUFDO1FBRUQsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzlCLENBQUM7OEdBM0NRLFVBQVU7a0hBQVYsVUFBVSxjQUZQLE1BQU07OzJGQUVULFVBQVU7a0JBSHRCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiLy8gcGRmLnNlcnZpY2UudHMgKFZFUlPDg08gRklOQUwgLSBjb20gaHRtbDJjYW52YXMpXHJcblxyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCBqc1BERiBmcm9tICdqc3BkZic7XHJcbmltcG9ydCBodG1sMmNhbnZhcyBmcm9tICdodG1sMmNhbnZhcyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFBkZlNlcnZpY2Uge1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG4gICAgcHVibGljIGFzeW5jIGdlcmFyUGRmQmxvYlBvckVsZW1lbnRvSWQoZWxlbWVudElkOiBzdHJpbmcpOiBQcm9taXNlPEJsb2I+IHtcclxuICAgICAgICBcclxuICAgICAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElkKTtcclxuICAgICAgICBpZiAoIWVsZW1lbnQpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBFbGVtZW50byBjb20gaWQgXCIke2VsZW1lbnRJZH1cIiBwYXJhIHJlbmRlcml6YcOnw6NvIGRvIFBERiBuw6NvIGZvaSBlbmNvbnRyYWRvLmApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgY2FudmFzID0gYXdhaXQgaHRtbDJjYW52YXMoZWxlbWVudCwge1xyXG4gICAgICAgICAgICBzY2FsZTogMiwgLy8gQm9hIHJlbGHDp8OjbyBlbnRyZSBxdWFsaWRhZGUgZSBwZXJmb3JtYW5jZVxyXG4gICAgICAgICAgICB1c2VDT1JTOiB0cnVlLFxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBjb25zdCBpbWdEYXRhID0gY2FudmFzLnRvRGF0YVVSTCgnaW1hZ2UvcG5nJyk7XHJcblxyXG4gICAgICAgIGNvbnN0IHBkZiA9IG5ldyBqc1BERih7XHJcbiAgICAgICAgICAgIG9yaWVudGF0aW9uOiAncCcsXHJcbiAgICAgICAgICAgIHVuaXQ6ICdtbScsXHJcbiAgICAgICAgICAgIGZvcm1hdDogJ2E0J1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBjb25zdCBwZGZXaWR0aCA9IHBkZi5pbnRlcm5hbC5wYWdlU2l6ZS5nZXRXaWR0aCgpO1xyXG4gICAgICAgIGNvbnN0IHBkZlBhZ2VIZWlnaHQgPSBwZGYuaW50ZXJuYWwucGFnZVNpemUuZ2V0SGVpZ2h0KCk7XHJcbiAgICAgICAgY29uc3QgaW1nUHJvcHMgPSBwZGYuZ2V0SW1hZ2VQcm9wZXJ0aWVzKGltZ0RhdGEpO1xyXG4gICAgICAgIGNvbnN0IGltZ0hlaWdodCA9IChpbWdQcm9wcy5oZWlnaHQgKiBwZGZXaWR0aCkgLyBpbWdQcm9wcy53aWR0aDtcclxuICAgICAgICBcclxuICAgICAgICBsZXQgaGVpZ2h0TGVmdCA9IGltZ0hlaWdodDtcclxuICAgICAgICBsZXQgcG9zaXRpb24gPSAwO1xyXG5cclxuICAgICAgICBwZGYuYWRkSW1hZ2UoaW1nRGF0YSwgJ1BORycsIDAsIHBvc2l0aW9uLCBwZGZXaWR0aCwgaW1nSGVpZ2h0KTtcclxuICAgICAgICBoZWlnaHRMZWZ0IC09IHBkZlBhZ2VIZWlnaHQ7XHJcblxyXG4gICAgICAgIHdoaWxlIChoZWlnaHRMZWZ0ID4gMCkge1xyXG4gICAgICAgICAgICBwb3NpdGlvbiAtPSBwZGZQYWdlSGVpZ2h0O1xyXG4gICAgICAgICAgICBwZGYuYWRkUGFnZSgpO1xyXG4gICAgICAgICAgICBwZGYuYWRkSW1hZ2UoaW1nRGF0YSwgJ1BORycsIDAsIHBvc2l0aW9uLCBwZGZXaWR0aCwgaW1nSGVpZ2h0KTtcclxuICAgICAgICAgICAgaGVpZ2h0TGVmdCAtPSBwZGZQYWdlSGVpZ2h0O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHBkZi5vdXRwdXQoJ2Jsb2InKTtcclxuICAgIH1cclxufSJdfQ==
@@ -0,0 +1,11 @@
1
+ import { Component } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class KvInstrucoesReportComponent {
4
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvInstrucoesReportComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.8", type: KvInstrucoesReportComponent, isStandalone: true, selector: "kv-instrucoes-report", ngImport: i0, template: "<p>kv-instrucoes-report works!</p>\r\n", styles: [""] }); }
6
+ }
7
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvInstrucoesReportComponent, decorators: [{
8
+ type: Component,
9
+ args: [{ selector: 'kv-instrucoes-report', standalone: true, imports: [], template: "<p>kv-instrucoes-report works!</p>\r\n" }]
10
+ }] });
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtaW5zdHJ1Y29lcy1yZXBvcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3YtaW5wdXRzL2t2LWVkaXRvci9jb21wb25lbnRzL2t2LWluc3RydWNvZXMtcmVwb3J0L2t2LWluc3RydWNvZXMtcmVwb3J0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlZXZvLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2t2LWlucHV0cy9rdi1lZGl0b3IvY29tcG9uZW50cy9rdi1pbnN0cnVjb2VzLXJlcG9ydC9rdi1pbnN0cnVjb2VzLXJlcG9ydC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQVMxQyxNQUFNLE9BQU8sMkJBQTJCOzhHQUEzQiwyQkFBMkI7a0dBQTNCLDJCQUEyQixnRkNUeEMsd0NBQ0E7OzJGRFFhLDJCQUEyQjtrQkFQdkMsU0FBUzsrQkFDRSxzQkFBc0IsY0FDcEIsSUFBSSxXQUNQLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAna3YtaW5zdHJ1Y29lcy1yZXBvcnQnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW10sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2t2LWluc3RydWNvZXMtcmVwb3J0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4va3YtaW5zdHJ1Y29lcy1yZXBvcnQuY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBLdkluc3RydWNvZXNSZXBvcnRDb21wb25lbnQge1xyXG5cclxufVxyXG4iLCI8cD5rdi1pbnN0cnVjb2VzLXJlcG9ydCB3b3JrcyE8L3A+XHJcbiJdfQ==
@@ -0,0 +1,40 @@
1
+ import { Component, inject } from '@angular/core';
2
+ import { DomSanitizer } from '@angular/platform-browser';
3
+ import { DynamicDialogConfig } from 'primeng/dynamicdialog';
4
+ import { CommonModule } from '@angular/common';
5
+ import * as i0 from "@angular/core";
6
+ export class KvReportModalComponent {
7
+ constructor() {
8
+ // Injeções
9
+ this.dynamicDialogConfig = inject(DynamicDialogConfig);
10
+ this.sanitizer = inject(DomSanitizer);
11
+ // A única URL que precisamos
12
+ this.pdfUrl = null;
13
+ this.objectUrl = null;
14
+ }
15
+ ngOnInit() {
16
+ // 1. Recebe o Blob PRONTO vindo do componente pai
17
+ const pdfBlob = this.dynamicDialogConfig.data?.pdfBlob;
18
+ if (pdfBlob) {
19
+ // 2. Cria a URL segura para o iframe
20
+ this.objectUrl = URL.createObjectURL(pdfBlob);
21
+ this.pdfUrl = this.sanitizer.bypassSecurityTrustResourceUrl(this.objectUrl);
22
+ }
23
+ else {
24
+ console.error("O modal do relatório foi aberto sem um Blob de PDF.");
25
+ }
26
+ }
27
+ // Limpa a memória quando o modal é fechado
28
+ ngOnDestroy() {
29
+ if (this.objectUrl) {
30
+ URL.revokeObjectURL(this.objectUrl);
31
+ }
32
+ }
33
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvReportModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
34
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.8", type: KvReportModalComponent, isStandalone: true, selector: "kv-report-modal", ngImport: i0, template: "@if (pdfUrl) {\r\n<div class=\"h-full w-full overflow-hidden\">\r\n <iframe\r\n [src]=\"pdfUrl\"\r\n class=\"w-full h-full\"\r\n style=\"border: none\"\r\n title=\"Pr\u00E9-visualiza\u00E7\u00E3o do Relat\u00F3rio\"\r\n >\r\n </iframe>\r\n</div>\r\n} @else {\r\n<div class=\"w-full h-full flex items-center justify-center bg-gray-200\">\r\n <div class=\"text-center text-red-600\">\r\n <p class=\"font-bold\">Erro!</p>\r\n <p>N\u00E3o foi poss\u00EDvel carregar o arquivo do relat\u00F3rio.</p>\r\n </div>\r\n</div>\r\n}\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }] }); }
35
+ }
36
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvReportModalComponent, decorators: [{
37
+ type: Component,
38
+ args: [{ selector: 'kv-report-modal', standalone: true, imports: [CommonModule], template: "@if (pdfUrl) {\r\n<div class=\"h-full w-full overflow-hidden\">\r\n <iframe\r\n [src]=\"pdfUrl\"\r\n class=\"w-full h-full\"\r\n style=\"border: none\"\r\n title=\"Pr\u00E9-visualiza\u00E7\u00E3o do Relat\u00F3rio\"\r\n >\r\n </iframe>\r\n</div>\r\n} @else {\r\n<div class=\"w-full h-full flex items-center justify-center bg-gray-200\">\r\n <div class=\"text-center text-red-600\">\r\n <p class=\"font-bold\">Erro!</p>\r\n <p>N\u00E3o foi poss\u00EDvel carregar o arquivo do relat\u00F3rio.</p>\r\n </div>\r\n</div>\r\n}\r\n" }]
39
+ }] });
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtcmVwb3J0LW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlZXZvLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2t2LWlucHV0cy9rdi1lZGl0b3IvY29tcG9uZW50cy9rdi1yZXBvcnQtbW9kYWwva3YtcmVwb3J0LW1vZGFsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlZXZvLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2t2LWlucHV0cy9rdi1lZGl0b3IvY29tcG9uZW50cy9rdi1yZXBvcnQtbW9kYWwva3YtcmVwb3J0LW1vZGFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUNyRSxPQUFPLEVBQUUsWUFBWSxFQUFtQixNQUFNLDJCQUEyQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzVELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFTL0MsTUFBTSxPQUFPLHNCQUFzQjtJQVBuQztRQVFFLFdBQVc7UUFDWCx3QkFBbUIsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUNsRCxjQUFTLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBRWpDLDZCQUE2QjtRQUM3QixXQUFNLEdBQTJCLElBQUksQ0FBQztRQUM5QixjQUFTLEdBQWtCLElBQUksQ0FBQztLQXFCekM7SUFuQkMsUUFBUTtRQUNOLGtEQUFrRDtRQUNsRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQztRQUV2RCxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ1oscUNBQXFDO1lBQ3JDLElBQUksQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUM5QyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsOEJBQThCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzlFLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxDQUFDLEtBQUssQ0FBQyxxREFBcUQsQ0FBQyxDQUFDO1FBQ3ZFLENBQUM7SUFDSCxDQUFDO0lBRUQsMkNBQTJDO0lBQzNDLFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNuQixHQUFHLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN0QyxDQUFDO0lBQ0gsQ0FBQzs4R0EzQlUsc0JBQXNCO2tHQUF0QixzQkFBc0IsMkVDWm5DLHFpQkFrQkEseUREVlksWUFBWTs7MkZBSVgsc0JBQXNCO2tCQVBsQyxTQUFTOytCQUNFLGlCQUFpQixjQUNmLElBQUksV0FDUCxDQUFDLFlBQVksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0LCBPbkluaXQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIsIFNhZmVSZXNvdXJjZVVybCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xyXG5pbXBvcnQgeyBEeW5hbWljRGlhbG9nQ29uZmlnIH0gZnJvbSAncHJpbWVuZy9keW5hbWljZGlhbG9nJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAna3YtcmVwb3J0LW1vZGFsJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9rdi1yZXBvcnQtbW9kYWwuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2t2LXJlcG9ydC1tb2RhbC5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBLdlJlcG9ydE1vZGFsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIC8vIEluamXDp8O1ZXNcclxuICBkeW5hbWljRGlhbG9nQ29uZmlnID0gaW5qZWN0KER5bmFtaWNEaWFsb2dDb25maWcpO1xyXG4gIHNhbml0aXplciA9IGluamVjdChEb21TYW5pdGl6ZXIpO1xyXG5cclxuICAvLyBBIMO6bmljYSBVUkwgcXVlIHByZWNpc2Ftb3NcclxuICBwZGZVcmw6IFNhZmVSZXNvdXJjZVVybCB8IG51bGwgPSBudWxsO1xyXG4gIHByaXZhdGUgb2JqZWN0VXJsOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICAvLyAxLiBSZWNlYmUgbyBCbG9iIFBST05UTyB2aW5kbyBkbyBjb21wb25lbnRlIHBhaVxyXG4gICAgY29uc3QgcGRmQmxvYiA9IHRoaXMuZHluYW1pY0RpYWxvZ0NvbmZpZy5kYXRhPy5wZGZCbG9iO1xyXG5cclxuICAgIGlmIChwZGZCbG9iKSB7XHJcbiAgICAgIC8vIDIuIENyaWEgYSBVUkwgc2VndXJhIHBhcmEgbyBpZnJhbWVcclxuICAgICAgdGhpcy5vYmplY3RVcmwgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKHBkZkJsb2IpO1xyXG4gICAgICB0aGlzLnBkZlVybCA9IHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RSZXNvdXJjZVVybCh0aGlzLm9iamVjdFVybCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zb2xlLmVycm9yKFwiTyBtb2RhbCBkbyByZWxhdMOzcmlvIGZvaSBhYmVydG8gc2VtIHVtIEJsb2IgZGUgUERGLlwiKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIExpbXBhIGEgbWVtw7NyaWEgcXVhbmRvIG8gbW9kYWwgw6kgZmVjaGFkb1xyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgaWYgKHRoaXMub2JqZWN0VXJsKSB7XHJcbiAgICAgIFVSTC5yZXZva2VPYmplY3RVUkwodGhpcy5vYmplY3RVcmwpO1xyXG4gICAgfVxyXG4gIH1cclxufSIsIkBpZiAocGRmVXJsKSB7XHJcbjxkaXYgY2xhc3M9XCJoLWZ1bGwgdy1mdWxsIG92ZXJmbG93LWhpZGRlblwiPlxyXG4gIDxpZnJhbWVcclxuICAgIFtzcmNdPVwicGRmVXJsXCJcclxuICAgIGNsYXNzPVwidy1mdWxsIGgtZnVsbFwiXHJcbiAgICBzdHlsZT1cImJvcmRlcjogbm9uZVwiXHJcbiAgICB0aXRsZT1cIlByw6ktdmlzdWFsaXphw6fDo28gZG8gUmVsYXTDs3Jpb1wiXHJcbiAgPlxyXG4gIDwvaWZyYW1lPlxyXG48L2Rpdj5cclxufSBAZWxzZSB7XHJcbjxkaXYgY2xhc3M9XCJ3LWZ1bGwgaC1mdWxsIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGJnLWdyYXktMjAwXCI+XHJcbiAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyIHRleHQtcmVkLTYwMFwiPlxyXG4gICAgPHAgY2xhc3M9XCJmb250LWJvbGRcIj5FcnJvITwvcD5cclxuICAgIDxwPk7Do28gZm9pIHBvc3PDrXZlbCBjYXJyZWdhciBvIGFycXVpdm8gZG8gcmVsYXTDs3Jpby48L3A+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG59XHJcbiJdfQ==
@@ -0,0 +1,108 @@
1
+ /**
2
+ * Configuração padrão para o KV Editor
3
+ * Este arquivo demonstra as melhores práticas de configuração
4
+ */
5
+ /**
6
+ * Configuração padrão do componente KV Editor
7
+ */
8
+ export const DEFAULT_KV_EDITOR_CONFIG = {
9
+ contentType: 'html',
10
+ readonly: false,
11
+ debug: false,
12
+ canvaHeigth: '380px'
13
+ };
14
+ /**
15
+ * Configuração padrão do Quill Editor
16
+ */
17
+ export const DEFAULT_QUILL_CONFIG = {
18
+ theme: 'snow',
19
+ modules: {
20
+ toolbar: '#kv-editor-toolbar',
21
+ },
22
+ readOnly: false,
23
+ debug: false,
24
+ };
25
+ /**
26
+ * Configuração de fontes personalizadas
27
+ */
28
+ export const CUSTOM_FONTS = [
29
+ 'monospace',
30
+ 'roboto',
31
+ 'serif',
32
+ 'inter'
33
+ ];
34
+ /**
35
+ * Configuração de tamanhos de fonte
36
+ */
37
+ export const FONT_SIZES = [
38
+ '15px',
39
+ '20px',
40
+ '30px',
41
+ '40px',
42
+ '50px',
43
+ '70px',
44
+ '90px'
45
+ ];
46
+ /**
47
+ * Configuração de estilos CSS para PDF
48
+ */
49
+ export const PDF_STYLES = `
50
+ <style>
51
+ #temp-pdf-render-area {
52
+ font-family: 'Sans Serif', Arial, sans-serif;
53
+ font-size: 11pt;
54
+ line-height: 1.3;
55
+ text-align: justify;
56
+ }
57
+ #temp-pdf-render-area p {
58
+ min-height: 1.3em;
59
+ margin: 0;
60
+ padding: 0;
61
+ }
62
+ #temp-pdf-render-area h1, #temp-pdf-render-area h2, #temp-pdf-render-area h3,
63
+ #temp-pdf-render-area h4, #temp-pdf-render-area h5, #temp-pdf-render-area h6 {
64
+ page-break-after: avoid;
65
+ }
66
+ #temp-pdf-render-area [style*="text-align: center"] {
67
+ text-align: center !important;
68
+ }
69
+ #temp-pdf-render-area p, #temp-pdf-render-area h1, #temp-pdf-render-area h2,
70
+ #temp-pdf-render-area h3, #temp-pdf-render-area h4, #temp-pdf-render-area h5,
71
+ #temp-pdf-render-area h6, #temp-pdf-render-area blockquote, #temp-pdf-render-area ul,
72
+ #temp-pdf-render-area ol, #temp-pdf-render-area li, #temp-pdf-render-area table,
73
+ #temp-pdf-render-area tr, #temp-pdf-render-area img {
74
+ page-break-inside: avoid;
75
+ }
76
+ </style>
77
+ `;
78
+ /**
79
+ * Configuração de tempo de debounce para auto-save
80
+ */
81
+ export const DEBOUNCE_TIME = 500;
82
+ /**
83
+ * Configuração de URLs CDN
84
+ */
85
+ export const CDN_URLS = {
86
+ quillCss: 'https://cdn.jsdelivr.net/npm/quill@2.0.2/dist/quill.snow.css',
87
+ quillJs: 'https://cdn.jsdelivr.net/npm/quill@2.0.2/dist/quill.js',
88
+ robotoFont: 'https://fonts.googleapis.com/css?family=Roboto'
89
+ };
90
+ /**
91
+ * Configuração de mensagens de erro
92
+ */
93
+ export const ERROR_MESSAGES = {
94
+ pdfGeneration: 'Ocorreu um erro ao gerar o relatório.',
95
+ quillInit: 'Erro ao inicializar o editor.',
96
+ saveError: 'Erro ao salvar o conteúdo.',
97
+ loadError: 'Erro ao carregar o conteúdo.'
98
+ };
99
+ /**
100
+ * Configuração de timeouts
101
+ */
102
+ export const TIMEOUTS = {
103
+ pdfGeneration: 2000,
104
+ editorInit: 1000,
105
+ cssLoad: 5000,
106
+ autoSave: 3000
107
+ };
108
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtZWRpdG9yLmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlZXZvLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2t2LWlucHV0cy9rdi1lZGl0b3IvY29uZmlnL2t2LWVkaXRvci5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBSUg7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBbUI7SUFDdEQsV0FBVyxFQUFFLE1BQU07SUFDbkIsUUFBUSxFQUFFLEtBQUs7SUFDZixLQUFLLEVBQUUsS0FBSztJQUNaLFdBQVcsRUFBRSxPQUFPO0NBQ3JCLENBQUM7QUFFRjs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFpQztJQUNoRSxLQUFLLEVBQUUsTUFBTTtJQUNiLE9BQU8sRUFBRTtRQUNQLE9BQU8sRUFBRSxvQkFBb0I7S0FDOUI7SUFDRCxRQUFRLEVBQUUsS0FBSztJQUNmLEtBQUssRUFBRSxLQUFLO0NBQ2IsQ0FBQztBQUVGOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHO0lBQzFCLFdBQVc7SUFDWCxRQUFRO0lBQ1IsT0FBTztJQUNQLE9BQU87Q0FDUixDQUFDO0FBRUY7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUc7SUFDeEIsTUFBTTtJQUNOLE1BQU07SUFDTixNQUFNO0lBQ04sTUFBTTtJQUNOLE1BQU07SUFDTixNQUFNO0lBQ04sTUFBTTtDQUNQLENBQUM7QUFFRjs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQTRCekIsQ0FBQztBQUVGOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLEdBQUcsQ0FBQztBQUVqQzs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRztJQUN0QixRQUFRLEVBQUUsOERBQThEO0lBQ3hFLE9BQU8sRUFBRSx3REFBd0Q7SUFDakUsVUFBVSxFQUFFLGdEQUFnRDtDQUM3RCxDQUFDO0FBRUY7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUc7SUFDNUIsYUFBYSxFQUFFLHVDQUF1QztJQUN0RCxTQUFTLEVBQUUsK0JBQStCO0lBQzFDLFNBQVMsRUFBRSw0QkFBNEI7SUFDdkMsU0FBUyxFQUFFLDhCQUE4QjtDQUMxQyxDQUFDO0FBRUY7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUc7SUFDdEIsYUFBYSxFQUFFLElBQUk7SUFDbkIsVUFBVSxFQUFFLElBQUk7SUFDaEIsT0FBTyxFQUFFLElBQUk7SUFDYixRQUFRLEVBQUUsSUFBSTtDQUNmLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQ29uZmlndXJhw6fDo28gcGFkcsOjbyBwYXJhIG8gS1YgRWRpdG9yXHJcbiAqIEVzdGUgYXJxdWl2byBkZW1vbnN0cmEgYXMgbWVsaG9yZXMgcHLDoXRpY2FzIGRlIGNvbmZpZ3VyYcOnw6NvXHJcbiAqL1xyXG5cclxuaW1wb3J0IHsgS3ZFZGl0b3JDb25maWcsIEt2RWRpdG9yUXVpbGxDb25maWcgfSBmcm9tICcuLi90eXBlcy9rdi1lZGl0b3IudHlwZXMnO1xyXG5cclxuLyoqXHJcbiAqIENvbmZpZ3VyYcOnw6NvIHBhZHLDo28gZG8gY29tcG9uZW50ZSBLViBFZGl0b3JcclxuICovXHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX0tWX0VESVRPUl9DT05GSUc6IEt2RWRpdG9yQ29uZmlnID0ge1xyXG4gIGNvbnRlbnRUeXBlOiAnaHRtbCcsXHJcbiAgcmVhZG9ubHk6IGZhbHNlLFxyXG4gIGRlYnVnOiBmYWxzZSxcclxuICBjYW52YUhlaWd0aDogJzM4MHB4J1xyXG59O1xyXG5cclxuLyoqXHJcbiAqIENvbmZpZ3VyYcOnw6NvIHBhZHLDo28gZG8gUXVpbGwgRWRpdG9yXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgREVGQVVMVF9RVUlMTF9DT05GSUc6IFBhcnRpYWw8S3ZFZGl0b3JRdWlsbENvbmZpZz4gPSB7XHJcbiAgdGhlbWU6ICdzbm93JyxcclxuICBtb2R1bGVzOiB7XHJcbiAgICB0b29sYmFyOiAnI2t2LWVkaXRvci10b29sYmFyJyxcclxuICB9LFxyXG4gIHJlYWRPbmx5OiBmYWxzZSxcclxuICBkZWJ1ZzogZmFsc2UsXHJcbn07XHJcblxyXG4vKipcclxuICogQ29uZmlndXJhw6fDo28gZGUgZm9udGVzIHBlcnNvbmFsaXphZGFzXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgQ1VTVE9NX0ZPTlRTID0gW1xyXG4gICdtb25vc3BhY2UnLFxyXG4gICdyb2JvdG8nLCBcclxuICAnc2VyaWYnLFxyXG4gICdpbnRlcidcclxuXTtcclxuXHJcbi8qKlxyXG4gKiBDb25maWd1cmHDp8OjbyBkZSB0YW1hbmhvcyBkZSBmb250ZVxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IEZPTlRfU0laRVMgPSBbXHJcbiAgJzE1cHgnLFxyXG4gICcyMHB4JywgXHJcbiAgJzMwcHgnLFxyXG4gICc0MHB4JyxcclxuICAnNTBweCcsXHJcbiAgJzcwcHgnLFxyXG4gICc5MHB4J1xyXG5dO1xyXG5cclxuLyoqXHJcbiAqIENvbmZpZ3VyYcOnw6NvIGRlIGVzdGlsb3MgQ1NTIHBhcmEgUERGXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgUERGX1NUWUxFUyA9IGBcclxuICA8c3R5bGU+XHJcbiAgICAjdGVtcC1wZGYtcmVuZGVyLWFyZWEgeyBcclxuICAgICAgZm9udC1mYW1pbHk6ICdTYW5zIFNlcmlmJywgQXJpYWwsIHNhbnMtc2VyaWY7IFxyXG4gICAgICBmb250LXNpemU6IDExcHQ7XHJcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjM7XHJcbiAgICAgIHRleHQtYWxpZ246IGp1c3RpZnk7IFxyXG4gICAgfVxyXG4gICAgI3RlbXAtcGRmLXJlbmRlci1hcmVhIHAge1xyXG4gICAgICBtaW4taGVpZ2h0OiAxLjNlbTtcclxuICAgICAgbWFyZ2luOiAwO1xyXG4gICAgICBwYWRkaW5nOiAwO1xyXG4gICAgfVxyXG4gICAgI3RlbXAtcGRmLXJlbmRlci1hcmVhIGgxLCAjdGVtcC1wZGYtcmVuZGVyLWFyZWEgaDIsICN0ZW1wLXBkZi1yZW5kZXItYXJlYSBoMywgXHJcbiAgICAjdGVtcC1wZGYtcmVuZGVyLWFyZWEgaDQsICN0ZW1wLXBkZi1yZW5kZXItYXJlYSBoNSwgI3RlbXAtcGRmLXJlbmRlci1hcmVhIGg2IHsgXHJcbiAgICAgIHBhZ2UtYnJlYWstYWZ0ZXI6IGF2b2lkOyBcclxuICAgIH1cclxuICAgICN0ZW1wLXBkZi1yZW5kZXItYXJlYSBbc3R5bGUqPVwidGV4dC1hbGlnbjogY2VudGVyXCJdIHtcclxuICAgICAgdGV4dC1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcbiAgICAjdGVtcC1wZGYtcmVuZGVyLWFyZWEgcCwgI3RlbXAtcGRmLXJlbmRlci1hcmVhIGgxLCAjdGVtcC1wZGYtcmVuZGVyLWFyZWEgaDIsIFxyXG4gICAgI3RlbXAtcGRmLXJlbmRlci1hcmVhIGgzLCAjdGVtcC1wZGYtcmVuZGVyLWFyZWEgaDQsICN0ZW1wLXBkZi1yZW5kZXItYXJlYSBoNSwgXHJcbiAgICAjdGVtcC1wZGYtcmVuZGVyLWFyZWEgaDYsICN0ZW1wLXBkZi1yZW5kZXItYXJlYSBibG9ja3F1b3RlLCAjdGVtcC1wZGYtcmVuZGVyLWFyZWEgdWwsIFxyXG4gICAgI3RlbXAtcGRmLXJlbmRlci1hcmVhIG9sLCAjdGVtcC1wZGYtcmVuZGVyLWFyZWEgbGksICN0ZW1wLXBkZi1yZW5kZXItYXJlYSB0YWJsZSwgXHJcbiAgICAjdGVtcC1wZGYtcmVuZGVyLWFyZWEgdHIsICN0ZW1wLXBkZi1yZW5kZXItYXJlYSBpbWcgeyBcclxuICAgICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkOyBcclxuICAgIH1cclxuICA8L3N0eWxlPlxyXG5gO1xyXG5cclxuLyoqXHJcbiAqIENvbmZpZ3VyYcOnw6NvIGRlIHRlbXBvIGRlIGRlYm91bmNlIHBhcmEgYXV0by1zYXZlXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgREVCT1VOQ0VfVElNRSA9IDUwMDtcclxuXHJcbi8qKlxyXG4gKiBDb25maWd1cmHDp8OjbyBkZSBVUkxzIENETlxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IENETl9VUkxTID0ge1xyXG4gIHF1aWxsQ3NzOiAnaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS9xdWlsbEAyLjAuMi9kaXN0L3F1aWxsLnNub3cuY3NzJyxcclxuICBxdWlsbEpzOiAnaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS9xdWlsbEAyLjAuMi9kaXN0L3F1aWxsLmpzJyxcclxuICByb2JvdG9Gb250OiAnaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3M/ZmFtaWx5PVJvYm90bydcclxufTtcclxuXHJcbi8qKlxyXG4gKiBDb25maWd1cmHDp8OjbyBkZSBtZW5zYWdlbnMgZGUgZXJyb1xyXG4gKi9cclxuZXhwb3J0IGNvbnN0IEVSUk9SX01FU1NBR0VTID0ge1xyXG4gIHBkZkdlbmVyYXRpb246ICdPY29ycmV1IHVtIGVycm8gYW8gZ2VyYXIgbyByZWxhdMOzcmlvLicsXHJcbiAgcXVpbGxJbml0OiAnRXJybyBhbyBpbmljaWFsaXphciBvIGVkaXRvci4nLFxyXG4gIHNhdmVFcnJvcjogJ0Vycm8gYW8gc2FsdmFyIG8gY29udGXDumRvLicsXHJcbiAgbG9hZEVycm9yOiAnRXJybyBhbyBjYXJyZWdhciBvIGNvbnRlw7pkby4nXHJcbn07XHJcblxyXG4vKipcclxuICogQ29uZmlndXJhw6fDo28gZGUgdGltZW91dHNcclxuICovXHJcbmV4cG9ydCBjb25zdCBUSU1FT1VUUyA9IHtcclxuICBwZGZHZW5lcmF0aW9uOiAyMDAwLFxyXG4gIGVkaXRvckluaXQ6IDEwMDAsXHJcbiAgY3NzTG9hZDogNTAwMCxcclxuICBhdXRvU2F2ZTogMzAwMFxyXG59O1xyXG4iXX0=