@muni-sanfer/types-gestor-documental 0.0.1-beta.36 → 0.0.1-beta.37

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.
@@ -390,6 +390,77 @@ export interface DocumentTrailExportEntity {
390
390
  }
391
391
  /** Plantilla oficial con que se redacta un documento en el sistema. */
392
392
  export type DocumentTemplateKind = 'Decree' | 'Office' | 'Memorandum' | 'General';
393
+ /** Formato de un trozo de texto en el editor del gestor. */
394
+ export type RichMark = 'bold' | 'italic' | 'underline';
395
+ /**
396
+ * Texto con su formato, o un campo de la plantilla (`field`: su clave), que se reemplaza por su valor al armar el PDF.
397
+ * Un salto de línea dentro del texto (`\n`) es un salto de línea del párrafo.
398
+ */
399
+ export type RichInline = {
400
+ text: string;
401
+ marks?: RichMark[];
402
+ } | {
403
+ field: string;
404
+ };
405
+ export type RichAlign = 'left' | 'center' | 'right' | 'justify';
406
+ /** Numeración de una lista: viñetas, «1.» o la de los decretos, «1.-». */
407
+ export type RichListStyle = 'bullet' | 'decimal' | 'decree';
408
+ /**
409
+ * Cómo se ve una tabla: con bordes (`grid`), o como las líneas «DE:», «A:», «MAT.:» de un oficio, con la etiqueta en
410
+ * negrita y sin bordes (`labels`, o `labelsRight`, en la mitad derecha, como «ANT.» y «MAT.» de un oficio).
411
+ */
412
+ export type RichTableVariant = 'grid' | 'labels' | 'labelsRight';
413
+ /**
414
+ * Un bloque del texto. Los de una plantilla pueden ser fijos (`locked`): quien redacta no los cambia. Las listas son
415
+ * bloques seguidos del mismo estilo (su nivel es la sangría, desde 0); un título o un párrafo reinicia la numeración.
416
+ */
417
+ export type RichBlock = {
418
+ id: string;
419
+ type: 'paragraph';
420
+ align?: RichAlign;
421
+ locked?: boolean;
422
+ content: RichInline[];
423
+ } | {
424
+ id: string;
425
+ type: 'heading';
426
+ level: 1 | 2;
427
+ align?: RichAlign;
428
+ locked?: boolean;
429
+ content: RichInline[];
430
+ } | {
431
+ id: string;
432
+ type: 'listItem';
433
+ list: RichListStyle;
434
+ level: number;
435
+ locked?: boolean;
436
+ content: RichInline[];
437
+ }
438
+ /** `rows[fila][columna]`: el contenido de cada celda. */
439
+ | {
440
+ id: string;
441
+ type: 'table';
442
+ variant: RichTableVariant;
443
+ locked?: boolean;
444
+ rows: RichInline[][][];
445
+ } | {
446
+ id: string;
447
+ type: 'rule';
448
+ locked?: boolean;
449
+ } | {
450
+ id: string;
451
+ type: 'pageBreak';
452
+ locked?: boolean;
453
+ };
454
+ /**
455
+ * Campo de una plantilla, con el valor que le dio quien redacta. `materia` es el asunto del documento: no se escribe
456
+ * aparte.
457
+ */
458
+ export interface RichField {
459
+ key: string;
460
+ label: string;
461
+ value: string;
462
+ required?: boolean;
463
+ }
393
464
  /**
394
465
  * Contenido de un documento redactado en el sistema. Cada plantilla tiene su estructura; los párrafos son texto
395
466
  * (un salto de línea dentro de un párrafo se respeta). La materia es el asunto del documento.
@@ -426,6 +497,18 @@ export type DocumentComposition = {
426
497
  title: string;
427
498
  body: string[];
428
499
  closing?: string | null;
500
+ }
501
+ /**
502
+ * Redactado con el editor del gestor: los bloques del texto, los campos de la plantilla con su valor y la
503
+ * distribución. `templateKey` y `templateVersion`: de qué plantilla salió, si salió de una.
504
+ */
505
+ | {
506
+ template: 'Rich';
507
+ templateKey?: string | null;
508
+ templateVersion?: number | null;
509
+ blocks: RichBlock[];
510
+ fields: RichField[];
511
+ distribution: string[];
429
512
  };
430
513
  /** PDF armado con una plantilla: para la vista previa (`contentBase64`) o ya subido (`fileId`). */
431
514
  export interface DocumentComposeResponseEntity {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@muni-sanfer/types-gestor-documental",
3
- "version": "0.0.1-beta.36",
3
+ "version": "0.0.1-beta.37",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "scripts": {
@@ -439,6 +439,50 @@ export interface DocumentTrailExportEntity {
439
439
  /** Plantilla oficial con que se redacta un documento en el sistema. */
440
440
  export type DocumentTemplateKind = 'Decree' | 'Office' | 'Memorandum' | 'General';
441
441
 
442
+ /** Formato de un trozo de texto en el editor del gestor. */
443
+ export type RichMark = 'bold' | 'italic' | 'underline';
444
+
445
+ /**
446
+ * Texto con su formato, o un campo de la plantilla (`field`: su clave), que se reemplaza por su valor al armar el PDF.
447
+ * Un salto de línea dentro del texto (`\n`) es un salto de línea del párrafo.
448
+ */
449
+ export type RichInline = { text: string; marks?: RichMark[] } | { field: string };
450
+
451
+ export type RichAlign = 'left' | 'center' | 'right' | 'justify';
452
+
453
+ /** Numeración de una lista: viñetas, «1.» o la de los decretos, «1.-». */
454
+ export type RichListStyle = 'bullet' | 'decimal' | 'decree';
455
+
456
+ /**
457
+ * Cómo se ve una tabla: con bordes (`grid`), o como las líneas «DE:», «A:», «MAT.:» de un oficio, con la etiqueta en
458
+ * negrita y sin bordes (`labels`, o `labelsRight`, en la mitad derecha, como «ANT.» y «MAT.» de un oficio).
459
+ */
460
+ export type RichTableVariant = 'grid' | 'labels' | 'labelsRight';
461
+
462
+ /**
463
+ * Un bloque del texto. Los de una plantilla pueden ser fijos (`locked`): quien redacta no los cambia. Las listas son
464
+ * bloques seguidos del mismo estilo (su nivel es la sangría, desde 0); un título o un párrafo reinicia la numeración.
465
+ */
466
+ export type RichBlock =
467
+ | { id: string; type: 'paragraph'; align?: RichAlign; locked?: boolean; content: RichInline[] }
468
+ | { id: string; type: 'heading'; level: 1 | 2; align?: RichAlign; locked?: boolean; content: RichInline[] }
469
+ | { id: string; type: 'listItem'; list: RichListStyle; level: number; locked?: boolean; content: RichInline[] }
470
+ /** `rows[fila][columna]`: el contenido de cada celda. */
471
+ | { id: string; type: 'table'; variant: RichTableVariant; locked?: boolean; rows: RichInline[][][] }
472
+ | { id: string; type: 'rule'; locked?: boolean }
473
+ | { id: string; type: 'pageBreak'; locked?: boolean };
474
+
475
+ /**
476
+ * Campo de una plantilla, con el valor que le dio quien redacta. `materia` es el asunto del documento: no se escribe
477
+ * aparte.
478
+ */
479
+ export interface RichField {
480
+ key: string;
481
+ label: string;
482
+ value: string;
483
+ required?: boolean;
484
+ }
485
+
442
486
  /**
443
487
  * Contenido de un documento redactado en el sistema. Cada plantilla tiene su estructura; los párrafos son texto
444
488
  * (un salto de línea dentro de un párrafo se respeta). La materia es el asunto del documento.
@@ -474,7 +518,19 @@ export type DocumentComposition =
474
518
  closing?: string | null;
475
519
  distribution: string[];
476
520
  }
477
- | { template: 'General'; title: string; body: string[]; closing?: string | null };
521
+ | { template: 'General'; title: string; body: string[]; closing?: string | null }
522
+ /**
523
+ * Redactado con el editor del gestor: los bloques del texto, los campos de la plantilla con su valor y la
524
+ * distribución. `templateKey` y `templateVersion`: de qué plantilla salió, si salió de una.
525
+ */
526
+ | {
527
+ template: 'Rich';
528
+ templateKey?: string | null;
529
+ templateVersion?: number | null;
530
+ blocks: RichBlock[];
531
+ fields: RichField[];
532
+ distribution: string[];
533
+ };
478
534
 
479
535
  /** PDF armado con una plantilla: para la vista previa (`contentBase64`) o ya subido (`fileId`). */
480
536
  export interface DocumentComposeResponseEntity {