@esfaenza/dpe-builder 20.3.7 → 20.3.8

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/index.d.ts CHANGED
@@ -1470,7 +1470,20 @@ declare function dpeWriteNodePosition<TNode extends DpeAnyNode>(node: TNode, pos
1470
1470
  /** Vero quando **tutti** i nodi hanno una posizione: se no, il canvas rifa' il layout. */
1471
1471
  declare function dpeHasCompleteLayout(nodes: readonly DpeAnyNode[]): boolean;
1472
1472
 
1473
- /** Una definizione vuota ma **leggibile**: `formatVersion` e `dialect` non sono opzionali. */
1473
+ /**
1474
+ * Una definizione vuota ma **leggibile**: `formatVersion` e `dialect` non sono opzionali.
1475
+ *
1476
+ * **Serve a `createDefinition`, non a montare l'editor.** E' il documento minimo che si manda al
1477
+ * backend per far nascere una definizione nel catalogo (ADR 0019), e da li' in poi quella che si
1478
+ * edita e' la definizione **caricata con `load(nome)`**.
1479
+ *
1480
+ * Montare l'editor su un documento costruito qui, o su uno costruito a mano senza nome, produce due
1481
+ * sintomi che sembrano scollegati e sono la stessa cosa: la validazione risponde
1482
+ * `DPE_MODEL_REQUIRED_MISSING` su `name` e `label` — per il backend una stringa vuota e un campo
1483
+ * assente sono lo stesso caso — e il salvataggio non ha una chiave per la rotta
1484
+ * `PUT /definitions/{name}`. L'editor lo dichiara in cima con un banner e disabilita «Salva», ma la
1485
+ * correzione e' a monte: creare dal catalogo e caricare.
1486
+ */
1474
1487
  declare function dpeEmptyDefinition(name: string, label: string, dialect: SqlDialectKind): DpeDefinition;
1475
1488
  declare class DpeDocumentStore {
1476
1489
  private readonly _definition;
@@ -1483,6 +1496,16 @@ declare class DpeDocumentStore {
1483
1496
  * sulla selezione.
1484
1497
  */
1485
1498
  private readonly _selectedNodeNames;
1499
+ /**
1500
+ * La dialog di modifica del nodo e' aperta. **Un booleano**, non un secondo nome di nodo: il
1501
+ * nodo su cui si sta agendo resta `selectedNodeName()`, e due registrazioni dello stesso fatto
1502
+ * sono esattamente cio' che questo store dichiara di non voler avere (ci ha gia' rimesso una
1503
+ * volta con la doppia selezione di @foblex/flow).
1504
+ *
1505
+ * Non entra nella cronologia: aprire una finestra non e' una modifica del documento, e un undo
1506
+ * che aprisse o chiudesse finestre sarebbe un comando che fa due cose.
1507
+ */
1508
+ private readonly _isNodeEditorOpen;
1486
1509
  private readonly _past;
1487
1510
  private readonly _future;
1488
1511
  /**
@@ -1493,8 +1516,18 @@ declare class DpeDocumentStore {
1493
1516
  * — e tornare a "no" quando si annulla fino allo stato di partenza.
1494
1517
  */
1495
1518
  private readonly _savedSnapshot;
1519
+ /**
1520
+ * Vero da quando un documento e' stato **caricato**. Distingue il segnaposto del costruttore da
1521
+ * una definizione vera, e serve a chi non deve lavorare sul segnaposto: la validazione non lo
1522
+ * manda al backend (`DpeValidationService`), perche' la risposta sarebbero i quattro rilievi di
1523
+ * una definizione vuota — `name`, `label`, `dataSources` e nessun writeback — che descrivono il
1524
+ * segnaposto e non il lavoro dell'utente, e che dall'editor nessuno puo' correggere.
1525
+ */
1526
+ private readonly _hasDocument;
1496
1527
  /** La definizione corrente: unica fonte di verita' per canvas, ispettori e pannelli. */
1497
1528
  readonly definition: _angular_core.Signal<DpeDefinition>;
1529
+ /** Vero da quando `load` ha portato un documento: prima c'e' solo il segnaposto. */
1530
+ readonly hasDocument: _angular_core.Signal<boolean>;
1498
1531
  /** Nodi e archi derivati dalla definizione. Ricalcolati solo quando la definizione cambia. */
1499
1532
  readonly graph: _angular_core.Signal<DpeGraph>;
1500
1533
  readonly selectedNodeNames: _angular_core.Signal<readonly string[]>;
@@ -1506,6 +1539,11 @@ declare class DpeDocumentStore {
1506
1539
  */
1507
1540
  readonly selectedNodeName: _angular_core.Signal<string | undefined>;
1508
1541
  readonly selectedNode: _angular_core.Signal<DpeAnyNode | undefined>;
1542
+ /**
1543
+ * La dialog di modifica del nodo e' aperta. Non e' una seconda identita': il nodo e'
1544
+ * `selectedNodeName()`.
1545
+ */
1546
+ readonly isNodeEditorOpen: _angular_core.Signal<boolean>;
1509
1547
  readonly validateResult: _angular_core.Signal<DpeValidateResult | undefined>;
1510
1548
  readonly compileResult: _angular_core.Signal<DpeCompileResult | undefined>;
1511
1549
  readonly diagnostics: _angular_core.Signal<readonly Diagnostic[]>;
@@ -1564,6 +1602,19 @@ declare class DpeDocumentStore {
1564
1602
  select(nodeName: string | undefined): void;
1565
1603
  /** Selezione multipla (riquadro, `Ctrl+A`): la lista che arriva dal gesto, senza duplicati. */
1566
1604
  selectMany(nodeNames: readonly string[]): void;
1605
+ /**
1606
+ * Seleziona **solo** quel nodo e apre la dialog di modifica.
1607
+ *
1608
+ * La selezione **collassa a un nodo solo**: il gesto «apri questo» dichiara su chi si sta
1609
+ * agendo, e la regola gia' in vigore e' che con piu' di un nodo selezionato non si mostrano i
1610
+ * campi di uno.
1611
+ *
1612
+ * Le due scritture sono **esplicite** e non conseguenza di un `effect`: un effect che scrive
1613
+ * signal renderebbe l'ordine di questi due fatti dipendente dalla schedulazione, cioe' non
1614
+ * testabile.
1615
+ */
1616
+ openNodeEditor(nodeName: string): void;
1617
+ closeNodeEditor(): void;
1567
1618
  /**
1568
1619
  * Proprieta' della radice: etichetta, descrizione, dialetto, parametri.
1569
1620
  *
@@ -1963,6 +2014,8 @@ declare class DpeBuilderComponent {
1963
2014
  protected readonly documentProblem: Signal<string | undefined>;
1964
2015
  protected readonly canSave: Signal<boolean>;
1965
2016
  protected readonly nodeCount: Signal<number>;
2017
+ /** I nomi selezionati: la striscia contestuale compare da due in su. */
2018
+ protected readonly selectedNames: Signal<readonly string[]>;
1966
2019
  constructor();
1967
2020
  /** Comando «Riordina»: e' un'azione dell'utente, quindi annullabile e "modifica". */
1968
2021
  protected runAutoLayout(): void;
@@ -1977,6 +2030,21 @@ declare class DpeBuilderComponent {
1977
2030
  x: number;
1978
2031
  y: number;
1979
2032
  }): void;
2033
+ /**
2034
+ * Doppio clic sul nodo, o bottone `✎` sulla card: i due gesti che il canvas emetteva su
2035
+ * `nodeOpened` e che **nessuno ascoltava** — il bottone non produceva nemmeno la selezione.
2036
+ *
2037
+ * Due cose, in quest'ordine. Si apre la dialog (che collassa la selezione a quel nodo) e si
2038
+ * **inquadra** il nodo: sotto il velo non si vede, ma alla chiusura si torna guardando il nodo su
2039
+ * cui si e' lavorato invece del punto dov'era il grafo prima.
2040
+ */
2041
+ protected onNodeOpened(name: string): void;
2042
+ /**
2043
+ * Elimina i nodi selezionati (striscia della selezione multipla). Si itera su una **copia** dei
2044
+ * nomi: `removeNode` pota la selezione a ogni giro, e scorrere il signal mentre lo si svuota
2045
+ * salterebbe la meta' dei nodi.
2046
+ */
2047
+ protected removeSelectedNodes(): void;
1980
2048
  /** Clic sulla palette (via tastiera compresa): il nodo nasce in un punto libero e prevedibile. */
1981
2049
  protected onNodeRequested(collection: DpeNodeCollectionName): void;
1982
2050
  /**
@@ -2295,29 +2363,70 @@ declare class DpeNodePaletteComponent {
2295
2363
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<DpeNodePaletteComponent, "dpe-node-palette", never, {}, { "nodeRequested": "nodeRequested"; }, never, never, true, never>;
2296
2364
  }
2297
2365
 
2298
- declare class DpeNodeInspectorComponent {
2299
- private readonly store;
2366
+ declare class DpeNodeDialogComponent {
2367
+ protected readonly store: DpeDocumentStore;
2368
+ private readonly dialogRef;
2369
+ protected readonly labelId: string;
2370
+ /**
2371
+ * Il nodo corrente, **riderivato** dallo store come fa il dispatcher degli ispettori. Non si
2372
+ * conserva il nome: se il nodo viene rinominato, `selectedNodeName()` porta gia' il nome nuovo.
2373
+ */
2374
+ protected readonly located: _angular_core.Signal<_esfaenza_dpe_builder.DpeLocatedNode<keyof _esfaenza_dpe_builder.DpeNodeCollectionMap> | undefined>;
2375
+ protected readonly categoryLabel: _angular_core.Signal<string>;
2376
+ protected readonly familyClass: _angular_core.Signal<string>;
2300
2377
  /**
2301
- * Il riordino richiede le misure delle card, che le conosce il canvas: l'ispettore **chiede**,
2302
- * non calcola. Componente stupido, orchestrazione fuori.
2378
+ * Vero quando il fondo ha ricevuto il `pointerdown` di questo clic. Vedi `onDialogClick`: la
2379
+ * verifica di coppia non e' prudenza, e' la correzione di un difetto reale.
2303
2380
  */
2304
- readonly layoutRequested: _angular_core.OutputEmitterRef<void>;
2305
- readonly selectedNames: _angular_core.Signal<readonly string[]>;
2381
+ private pointerDownWasOnBackdrop;
2382
+ constructor();
2383
+ /**
2384
+ * **Esc.** Il browser chiede di chiudere e la finestra e' ancora aperta: la richiesta riguarda
2385
+ * per definizione la sessione corrente, quindi si chiude e non serve nessuna verifica.
2386
+ *
2387
+ * Perche' `cancel` e' legato, contro cio' che sembra sufficiente: in Chrome 151 l'evento `close`
2388
+ * **arriva molto in ritardo** (vedi `onClose`), quindi con il solo `close` lo store restava
2389
+ * «aperta» dopo Esc — e il sintomo era che **riaprire lo stesso nodo non faceva niente**: il
2390
+ * signal non cambiava, l'effect non rieseguiva, `showModal()` non veniva mai chiamato. Sul
2391
+ * bottone del piede non si vedeva, perche' quella via passa dallo store.
2392
+ *
2393
+ * `cancel` sarebbe annullabile: non si annulla. La chiusura dell'elemento arriva comunque dal
2394
+ * browser, e la guardia su `el.open` nell'effect regge in entrambi gli ordini.
2395
+ */
2396
+ protected onCancel(): void;
2397
+ /**
2398
+ * **L'elemento si e' chiuso.** La guardia non e' prudenza: Chrome accoda `close` come task
2399
+ * dell'elemento e lo consegna anche **dopo** una riapertura — misurato nella demo, la traccia
2400
+ * degli eventi mostra `close` con `open: true` subito dopo un `showModal()`. Senza la guardia
2401
+ * quel `close` in ritardo chiudeva la finestra appena aperta, e il sintomo era una dialog che
2402
+ * «non si apre a volte»: sparisce da sola dopo essere comparsa, e con la finestra aperta si
2403
+ * riapriva solo alla prima modifica del documento (l'unica cosa che faceva rieseguire l'effect).
2404
+ *
2405
+ * Se l'elemento risulta **aperto**, questo `close` riguarda una sessione precedente e si ignora.
2406
+ * Se risulta chiuso, la notifica e' di questa sessione — e allineare qui lo store e' anche cio'
2407
+ * che ripara una divergenza, se il browser chiudesse la finestra per vie sue.
2408
+ */
2409
+ protected onClose(): void;
2410
+ protected onPointerDown(event: Event): void;
2411
+ /**
2412
+ * Chiusura al clic sul fondo, con la **verifica di coppia** e non con il solo controllo sul
2413
+ * click. I clic sul velo sono recapitati all'elemento `<dialog>` stesso — ma anche un
2414
+ * trascinamento di selezione del testo che **inizia** dentro una casella e **finisce** fuori
2415
+ * produce un `click` con `target` uguale alla dialog. Con la sola verifica sul click, selezionare
2416
+ * del testo chiuderebbe la finestra.
2417
+ */
2418
+ protected onDialogClick(event: Event): void;
2419
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<DpeNodeDialogComponent, never>;
2420
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DpeNodeDialogComponent, "dpe-node-dialog", never, {}, {}, never, never, true, never>;
2421
+ }
2422
+
2423
+ declare class DpeNodeInspectorComponent {
2424
+ private readonly store;
2306
2425
  readonly located: _angular_core.Signal<_esfaenza_dpe_builder.DpeLocatedNode<keyof _esfaenza_dpe_builder.DpeNodeCollectionMap> | undefined>;
2307
2426
  readonly nameDraft: _angular_core.WritableSignal<string>;
2308
- readonly categoryLabel: _angular_core.Signal<string>;
2309
- /** La classe di famiglia dell'icona: la stessa funzione che usano palette e canvas. */
2310
- readonly familyClass: _angular_core.Signal<string>;
2311
- readonly columns: _angular_core.Signal<_esfaenza_dpe_builder.DpeColumnInfo[]>;
2312
- readonly diagnostics: _angular_core.Signal<_esfaenza_dpe_builder.Diagnostic[]>;
2313
2427
  readonly referenceCount: _angular_core.Signal<number>;
2314
2428
  readonly canRename: _angular_core.Signal<boolean>;
2315
2429
  constructor();
2316
- /**
2317
- * Elimina i nodi selezionati. Si itera su una **copia** dei nomi: `removeNode` pota la selezione
2318
- * a ogni giro, e scorrere il signal mentre lo si svuota salterebbe la meta' dei nodi.
2319
- */
2320
- protected removeSelected(): void;
2321
2430
  protected rename(currentName: string): void;
2322
2431
  protected setCommon(field: 'label' | 'description', value: string): void;
2323
2432
  protected valueOf(event: Event): string;
@@ -2333,7 +2442,31 @@ declare class DpeNodeInspectorComponent {
2333
2442
  protected asWriteback(node: unknown): WritebackNode;
2334
2443
  protected asAtomic(node: unknown): AtomicWritebackNode;
2335
2444
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<DpeNodeInspectorComponent, never>;
2336
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<DpeNodeInspectorComponent, "dpe-node-inspector", never, {}, { "layoutRequested": "layoutRequested"; }, never, never, true, never>;
2445
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DpeNodeInspectorComponent, "dpe-node-inspector", never, {}, {}, never, never, true, never>;
2446
+ }
2447
+
2448
+ declare class DpeNodeFactsComponent {
2449
+ private readonly store;
2450
+ /**
2451
+ * Il nodo di cui si mostrano i fatti. Arriva per input e non dalla selezione: chi monta questo
2452
+ * componente sa quale nodo sta guardando, e leggere qui la selezione lo farebbe cambiare
2453
+ * bersaglio sotto la dialog che lo contiene.
2454
+ */
2455
+ readonly nodeName: _angular_core.InputSignal<string>;
2456
+ /**
2457
+ * Il nodo e' valido ma **non compilabile** (**I10**). Due rami, ed e' la **stessa espressione**
2458
+ * che `DpeNodeInspectorBase.isNotCompilable` usa gia': il codice diagnostico
2459
+ * `DPE_NODE_NOT_COMPILABLE` raggruppato per nodo, **oppure** lo schema che dichiara
2460
+ * `isCompilable: false`. Servono entrambi perche' il backend puo' dirlo per due vie — un rilievo
2461
+ * sul nodo, o la riga di schema — e riconoscerne una sola vorrebbe dire tacere nell'altro caso.
2462
+ *
2463
+ * Qui non si giudica niente: la decisione e' del compilatore, questa e' la sua risposta.
2464
+ */
2465
+ readonly isNotCompilable: _angular_core.Signal<boolean>;
2466
+ readonly columns: _angular_core.Signal<_esfaenza_dpe_builder.DpeColumnInfo[]>;
2467
+ readonly diagnostics: _angular_core.Signal<_esfaenza_dpe_builder.Diagnostic[]>;
2468
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<DpeNodeFactsComponent, never>;
2469
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DpeNodeFactsComponent, "dpe-node-facts", never, { "nodeName": { "alias": "nodeName"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
2337
2470
  }
2338
2471
 
2339
2472
  declare abstract class DpeNodeInspectorBase<TNode extends DpeAnyNode = DpeAnyNode> {
@@ -2503,5 +2636,5 @@ declare class DpeNodeIconComponent {
2503
2636
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<DpeNodeIconComponent, "dpe-node-icon", never, { "collection": { "alias": "collection"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
2504
2637
  }
2505
2638
 
2506
- export { DPE_API_ERROR_FALLBACK_MESSAGE, DPE_BUILDER_HTTP_CONFIG, DPE_DIALECT_LABELS, DPE_LAYOUT_KEY, DPE_NODE_CATEGORIES, DPE_NODE_COLLECTIONS, DPE_NODE_HEIGHT, DPE_NODE_ICON_PATHS, DPE_NODE_NOT_COMPILABLE, DPE_SOURCE_SLOTS, DpeApiError, DpeBuilderApi, DpeBuilderComponent, DpeCanvasComponent, DpeCatalogComponent, DpeCatalogStore, DpeColumnTypeEditorComponent, DpeDiagnosticsPanelComponent, DpeDocumentStore, DpeExpressionEditorComponent, DpeLayoutService, DpeMetadataStore, DpeNodeIconComponent, DpeNodeInspectorBase, DpeNodeInspectorComponent, DpeNodePaletteComponent, DpeSchemaPanelComponent, DpeSelectValueDirective, DpeSqlPreviewComponent, DpeValidationService, HttpDpeBuilderApi, diagnosticPathToString, dpeAllNodes, dpeBuildGraph, dpeCountReferences, dpeCreateCommandAvailability, dpeCreateNode, dpeDefinitionLevelDiagnostics, dpeDiagnosticField, dpeDiagnosticLocationLabel, dpeDiagnosticNodeName, dpeEdgeId, dpeEmptyDefinition, dpeFindNode, dpeGroupDiagnosticsByNode, dpeHasCompleteLayout, dpeInputPortId, dpeInputPorts, dpeIsDialectDiagnostic, dpeIsNotCompilable, dpeIsPrimitiveAvailable, dpeIsRectFullyVisible, dpeKnownNodeNames, dpeNodeCategory, dpeNodeIconFamily, dpeNodeIconFamilyClass, dpeNodeIconPaths, dpeNodeId, dpeNodeSourceReferences, dpeNodeSubtitle, dpeNodeWidth, dpeNodeWidthClass, dpeOutputPortId, dpeParseInputPortId, dpeParseNodeId, dpeParseOutputPortId, dpeProposeNodeName, dpeProposeWritebackSequence, dpeReadCapabilities, dpeReadNodePosition, dpeRenameNode, dpeWorstSeverity, dpeWriteNodePosition, dpeWriteSourceReference, provideDpeBuilderHttpApi };
2639
+ export { DPE_API_ERROR_FALLBACK_MESSAGE, DPE_BUILDER_HTTP_CONFIG, DPE_DIALECT_LABELS, DPE_LAYOUT_KEY, DPE_NODE_CATEGORIES, DPE_NODE_COLLECTIONS, DPE_NODE_HEIGHT, DPE_NODE_ICON_PATHS, DPE_NODE_NOT_COMPILABLE, DPE_SOURCE_SLOTS, DpeApiError, DpeBuilderApi, DpeBuilderComponent, DpeCanvasComponent, DpeCatalogComponent, DpeCatalogStore, DpeColumnTypeEditorComponent, DpeDiagnosticsPanelComponent, DpeDocumentStore, DpeExpressionEditorComponent, DpeLayoutService, DpeMetadataStore, DpeNodeDialogComponent, DpeNodeFactsComponent, DpeNodeIconComponent, DpeNodeInspectorBase, DpeNodeInspectorComponent, DpeNodePaletteComponent, DpeSchemaPanelComponent, DpeSelectValueDirective, DpeSqlPreviewComponent, DpeValidationService, HttpDpeBuilderApi, diagnosticPathToString, dpeAllNodes, dpeBuildGraph, dpeCountReferences, dpeCreateCommandAvailability, dpeCreateNode, dpeDefinitionLevelDiagnostics, dpeDiagnosticField, dpeDiagnosticLocationLabel, dpeDiagnosticNodeName, dpeEdgeId, dpeEmptyDefinition, dpeFindNode, dpeGroupDiagnosticsByNode, dpeHasCompleteLayout, dpeInputPortId, dpeInputPorts, dpeIsDialectDiagnostic, dpeIsNotCompilable, dpeIsPrimitiveAvailable, dpeIsRectFullyVisible, dpeKnownNodeNames, dpeNodeCategory, dpeNodeIconFamily, dpeNodeIconFamilyClass, dpeNodeIconPaths, dpeNodeId, dpeNodeSourceReferences, dpeNodeSubtitle, dpeNodeWidth, dpeNodeWidthClass, dpeOutputPortId, dpeParseInputPortId, dpeParseNodeId, dpeParseOutputPortId, dpeProposeNodeName, dpeProposeWritebackSequence, dpeReadCapabilities, dpeReadNodePosition, dpeRenameNode, dpeWorstSeverity, dpeWriteNodePosition, dpeWriteSourceReference, provideDpeBuilderHttpApi };
2507
2640
  export type { AggregateField, AggregateFunction, AggregateNode, AppendNode, AtomicWritebackNode, AtomicWritebackRelationship, ColumnType, CsvArtifactOptions, CsvDelimiter, CsvSourceOptions, CustomNode, CustomNodeParameter, DataSourceField, DataSourceKind, DataSourceNode, DatePart, DeclaredField, DefinitionRunMode, DefinitionStatus, Diagnostic, DiagnosticPath, DiagnosticPathSegment, DiagnosticSeverity, DpeAnyNode, DpeApiErrorCategory, DpeBuilderHttpConfig, DpeCanvasEdge, DpeCanvasNode, DpeCanvasPort, DpeCapabilities, DpeColumnInfo, DpeCommandAvailability, DpeCompileResult, DpeCompiledWriteback, DpeDefinition, DpeDefinitionSummary, DpeEnvironment, DpeExtensible, DpeExtensionData, DpeFieldMappingInfo, DpeGraph, DpeGraphEdge, DpeGraphNode, DpeInputPort, DpeLayoutDirection, DpeLayoutEdgeInput, DpeLayoutNodeInput, DpeLayoutOptions, DpeLayoutPosition, DpeLocatedNode, DpeNode, DpeNodeCategory, DpeNodeCollectionMap, DpeNodeCollectionName, DpeNodeDiagnostics, DpeNodeIconFamily, DpeNodePaletteGroup, DpeNodePosition, DpeNodeSchemaInfo, DpeOptionalPrimitive, DpeParameter, DpeParameterValue, DpeRect, DpeSourceReference, DpeSourceSlot, DpeTableState, DpeValidateResult, DpeWritebackStep, ExpressionField, FieldDescriptor, FieldRelationship, FilterCriterion, FilterNode, FilterOperator, ForecastAccuracy, ForecastAggregationField, ForecastGroupField, ForecastModelType, ForecastNode, ForecastPeriodType, HierarchyPathNode, JoinKey, JoinKind, JoinNode, JoinResultField, JsonArtifactOptions, LogicalType, OrderByField, ParameterRole, SortDirection, SqlDialectKind, SqlParameterValue, SqlStatement, TableDescriptor, TableLookupOutcome, TableLookupResult, TableSummary, TransformKind, TransformNode, WritebackFieldMapping, WritebackFieldRole, WritebackNode, WritebackOperation, WritebackTargetKind };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@esfaenza/dpe-builder",
3
- "version": "20.3.7",
3
+ "version": "20.3.8",
4
4
  "peerDependencies": {
5
5
  "@angular/cdk": "^20.2.14",
6
6
  "@angular/common": "^20.3.25",