@metadev/daga-angular 4.0.4 → 4.2.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.
@@ -1,11 +1,11 @@
1
1
  import { Side, DiagramCanvas, DiagramActions, Corner, layouts, getLocationsOfNodes, ApplyLayoutAction, Events, setCursorStyle, CursorStyle, DragEvents, filterByOnlyDescendants, AddNodeAction, generalClosedPath, DIAGRAM_FIELD_DEFAULTS, getLeftMargin, getTopMargin, Type, Property, isObject, equals, Keys, DagaImporter, DagaExporter } from '@metadev/daga';
2
2
  export { ACTION_STACK_SIZE, ActionStack, AddConnectionAction, AddNodeAction, AdjacencyLayout, ApplyLayoutAction, BreadthAdjacencyLayout, BreadthLayout, ClosedShape, CollabClient, Corner, DagaExporter, DagaImporter, DiagramActionMethod, DiagramActions, DiagramCanvas, DiagramConnection, DiagramConnectionSet, DiagramConnectionType, DiagramDecorator, DiagramDecoratorSet, DiagramDoubleClickEvent, DiagramElement, DiagramElementSet, DiagramEntitySet, DiagramEvent, DiagramEvents, DiagramField, DiagramFieldSet, DiagramHighlightedEvent, DiagramModel, DiagramNode, DiagramNodeSet, DiagramNodeType, DiagramObject, DiagramObjectSet, DiagramPort, DiagramPortSet, DiagramPortType, DiagramSecondaryClickEvent, DiagramSection, DiagramSectionSet, DiagramSelectionEvent, EditFieldAction, ForceLayout, HorizontalAlign, HorizontalLayout, LineShape, LineStyle, MoveAction, PasteAction, PriorityLayout, Property, PropertySet, RemoveAction, SetGeometryAction, SetParentAction, Side, TreeLayout, Type, UpdateValuesAction, ValueSet, VerticalAlign, VerticalLayout, getLocationsOfNodes, layouts } from '@metadev/daga';
3
- import * as i1 from '@angular/common';
4
- import { CommonModule } from '@angular/common';
5
3
  import * as i0 from '@angular/core';
6
- import { ElementRef, Component, Input, Injectable, ChangeDetectionStrategy, ViewChild, EventEmitter, Output, NgModule } from '@angular/core';
4
+ import { ElementRef, Input, Component, Injectable, inject, ViewChild, ChangeDetectionStrategy, ChangeDetectorRef, EventEmitter, Output, NgModule } from '@angular/core';
7
5
  import * as d3 from 'd3';
8
- import * as i2 from '@angular/forms';
6
+ import * as i2 from '@angular/common';
7
+ import { CommonModule } from '@angular/common';
8
+ import * as i1 from '@angular/forms';
9
9
  import { FormsModule } from '@angular/forms';
10
10
  import { ReplaySubject, merge, map, skip } from 'rxjs';
11
11
 
@@ -92,12 +92,12 @@ class CollapseButtonComponent {
92
92
  }
93
93
  }
94
94
  }
95
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: CollapseButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
96
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.5", type: CollapseButtonComponent, isStandalone: true, selector: "daga-collapse-button", inputs: { collapsableSelector: "collapsableSelector", collapsableAdditionalSelector: "collapsableAdditionalSelector", collapsed: "collapsed", disabled: "disabled", direction: "direction", rule: "rule", collapsedValue: "collapsedValue", visibleValue: "visibleValue" }, ngImport: i0, template: "<button\r\n class=\"daga-collapse-button daga-{{ direction }}\"\r\n (click)=\"toggleCollapse()\"\r\n>\r\n <div [class]=\"getClass()\"></div>\r\n</button>\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }] }); }
95
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: CollapseButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
96
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.3", type: CollapseButtonComponent, isStandalone: true, selector: "daga-collapse-button", inputs: { collapsableSelector: "collapsableSelector", collapsableAdditionalSelector: "collapsableAdditionalSelector", collapsed: "collapsed", disabled: "disabled", direction: "direction", rule: "rule", collapsedValue: "collapsedValue", visibleValue: "visibleValue" }, ngImport: i0, template: "<button\r\n class=\"daga-collapse-button daga-{{ direction }}\"\r\n (click)=\"toggleCollapse()\"\r\n>\r\n <div [class]=\"getClass()\"></div>\r\n</button>\r\n" }); }
97
97
  }
98
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: CollapseButtonComponent, decorators: [{
98
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: CollapseButtonComponent, decorators: [{
99
99
  type: Component,
100
- args: [{ selector: 'daga-collapse-button', imports: [CommonModule], template: "<button\r\n class=\"daga-collapse-button daga-{{ direction }}\"\r\n (click)=\"toggleCollapse()\"\r\n>\r\n <div [class]=\"getClass()\"></div>\r\n</button>\r\n" }]
100
+ args: [{ selector: 'daga-collapse-button', template: "<button\r\n class=\"daga-collapse-button daga-{{ direction }}\"\r\n (click)=\"toggleCollapse()\"\r\n>\r\n <div [class]=\"getClass()\"></div>\r\n</button>\r\n" }]
101
101
  }], propDecorators: { collapsableSelector: [{
102
102
  type: Input
103
103
  }], collapsableAdditionalSelector: [{
@@ -162,10 +162,10 @@ class CanvasProviderService {
162
162
  getCanvas() {
163
163
  return this._canvas;
164
164
  }
165
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: CanvasProviderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
166
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: CanvasProviderService }); }
165
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: CanvasProviderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
166
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: CanvasProviderService }); }
167
167
  }
168
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: CanvasProviderService, decorators: [{
168
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: CanvasProviderService, decorators: [{
169
169
  type: Injectable
170
170
  }] });
171
171
 
@@ -199,10 +199,10 @@ class DagaConfigurationService {
199
199
  getConfig() {
200
200
  return this._config;
201
201
  }
202
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: DagaConfigurationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
203
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: DagaConfigurationService }); }
202
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: DagaConfigurationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
203
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: DagaConfigurationService }); }
204
204
  }
205
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: DagaConfigurationService, decorators: [{
205
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: DagaConfigurationService, decorators: [{
206
206
  type: Injectable
207
207
  }] });
208
208
 
@@ -211,12 +211,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
211
211
  * @private
212
212
  */
213
213
  class DiagramButtonsComponent {
214
- get canvas() {
215
- return this.canvasProvider.getCanvas();
216
- }
217
- constructor(canvasProvider, configService) {
218
- this.canvasProvider = canvasProvider;
219
- this.configService = configService;
214
+ constructor() {
215
+ this.#canvasProvider = inject(CanvasProviderService);
216
+ this.#configService = inject(DagaConfigurationService);
220
217
  this.enableAction = true;
221
218
  this.enableFilter = false;
222
219
  this.enableLayout = false;
@@ -227,8 +224,13 @@ class DiagramButtonsComponent {
227
224
  this.animationOngoing = false;
228
225
  this.DiagramActions = DiagramActions;
229
226
  }
227
+ #canvasProvider;
228
+ #configService;
229
+ get canvas() {
230
+ return this.#canvasProvider.getCanvas();
231
+ }
230
232
  ngOnInit() {
231
- this.sub = this.configService.config$.subscribe((c) => {
233
+ this.sub = this.#configService.config$.subscribe((c) => {
232
234
  this.init(c);
233
235
  });
234
236
  }
@@ -374,13 +376,13 @@ class DiagramButtonsComponent {
374
376
  startMultipleSelection() {
375
377
  this.canvas.multipleSelectionOn = true;
376
378
  }
377
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: DiagramButtonsComponent, deps: [{ token: CanvasProviderService }, { token: DagaConfigurationService }], target: i0.ɵɵFactoryTarget.Component }); }
378
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.5", type: DiagramButtonsComponent, isStandalone: true, selector: "daga-diagram-buttons", inputs: { location: "location", direction: "direction", enableAction: "enableAction", enableFilter: "enableFilter", enableLayout: "enableLayout", enableSelection: "enableSelection", enableZoom: "enableZoom" }, viewQueries: [{ propertyName: "collapsableButtons", first: true, predicate: ["collapsableButtons"], descendants: true }], ngImport: i0, template: "<div class=\"daga-diagram-buttons daga-{{ location }} daga-{{ direction }}\">\r\n <button\r\n *ngIf=\"enableZoom && canvas.canUserPerformAction(DiagramActions.Zoom)\"\r\n class=\"daga-zoom-in\"\r\n (click)=\"zoomIn()\"\r\n >\r\n <span class=\"daga-tooltip\">Zoom in</span>\r\n </button>\r\n <button\r\n *ngIf=\"enableZoom && canvas.canUserPerformAction(DiagramActions.Zoom)\"\r\n class=\"daga-zoom-out\"\r\n (click)=\"zoomOut()\"\r\n >\r\n <span class=\"daga-tooltip\">Zoom out</span>\r\n </button>\r\n <div #collapsableButtons class=\"daga-collapsable-buttons daga-collapsed\">\r\n <button\r\n *ngIf=\"enableZoom && canvas.canUserPerformAction(DiagramActions.Zoom)\"\r\n class=\"daga-center\"\r\n (click)=\"center()\"\r\n >\r\n <span class=\"daga-tooltip\">Fit diagram to screen</span>\r\n </button>\r\n <button *ngIf=\"enableAction\" class=\"daga-undo\" (click)=\"undo()\">\r\n <span class=\"daga-tooltip\">Undo</span>\r\n </button>\r\n <button *ngIf=\"enableAction\" class=\"daga-redo\" (click)=\"redo()\">\r\n <span class=\"daga-tooltip\">Redo</span>\r\n </button>\r\n <button *ngIf=\"enableSelection\" class=\"daga-copy\" (click)=\"copySelection()\">\r\n <span class=\"daga-tooltip\">Copy</span>\r\n </button>\r\n <button *ngIf=\"enableSelection\" class=\"daga-cut\" (click)=\"cutSelection()\">\r\n <span class=\"daga-tooltip\">Cut</span>\r\n </button>\r\n <button\r\n *ngIf=\"enableSelection\"\r\n class=\"daga-multiple-selection\"\r\n [class]=\"canvas.multipleSelectionOn ? 'daga-on' : 'daga-off'\"\r\n (click)=\"startMultipleSelection()\"\r\n >\r\n <span class=\"daga-tooltip\">Multiple selection</span>\r\n </button>\r\n <button\r\n *ngIf=\"enableSelection\"\r\n class=\"daga-paste\"\r\n (click)=\"pasteSelection()\"\r\n >\r\n <span class=\"daga-tooltip\">Paste</span>\r\n </button>\r\n <button\r\n *ngIf=\"enableSelection\"\r\n class=\"daga-delete\"\r\n (click)=\"deleteSelection()\"\r\n >\r\n <span class=\"daga-tooltip\">Delete</span>\r\n </button>\r\n <button *ngIf=\"enableLayout\" class=\"daga-layout\" (click)=\"layout()\">\r\n <span class=\"daga-tooltip\">Apply layout</span>\r\n </button>\r\n <button\r\n *ngIf=\"enableFilter\"\r\n class=\"daga-filter\"\r\n [class]=\"filterOn ? 'daga-on' : 'daga-off'\"\r\n (click)=\"filter()\"\r\n >\r\n <span class=\"daga-tooltip\">Apply filter</span>\r\n </button>\r\n </div>\r\n <button class=\"daga-more-options\" (click)=\"toggleCollapse()\">\r\n <span *ngIf=\"!collapsed\" class=\"daga-tooltip\">Less options</span>\r\n <span *ngIf=\"collapsed\" class=\"daga-tooltip\">More options</span>\r\n </button>\r\n</div>\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
379
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: DiagramButtonsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
380
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.3", type: DiagramButtonsComponent, isStandalone: true, selector: "daga-diagram-buttons", inputs: { location: "location", direction: "direction", enableAction: "enableAction", enableFilter: "enableFilter", enableLayout: "enableLayout", enableSelection: "enableSelection", enableZoom: "enableZoom" }, viewQueries: [{ propertyName: "collapsableButtons", first: true, predicate: ["collapsableButtons"], descendants: true }], ngImport: i0, template: "<div class=\"daga-diagram-buttons daga-{{ location }} daga-{{ direction }}\">\r\n @if (enableZoom && canvas.canUserPerformAction(DiagramActions.Zoom)) {\r\n <button\r\n class=\"daga-zoom-in\"\r\n (click)=\"zoomIn()\"\r\n >\r\n <span class=\"daga-tooltip\">Zoom in</span>\r\n </button>\r\n }\r\n @if (enableZoom && canvas.canUserPerformAction(DiagramActions.Zoom)) {\r\n <button\r\n class=\"daga-zoom-out\"\r\n (click)=\"zoomOut()\"\r\n >\r\n <span class=\"daga-tooltip\">Zoom out</span>\r\n </button>\r\n }\r\n <div #collapsableButtons class=\"daga-collapsable-buttons daga-collapsed\">\r\n @if (enableZoom && canvas.canUserPerformAction(DiagramActions.Zoom)) {\r\n <button\r\n class=\"daga-center\"\r\n (click)=\"center()\"\r\n >\r\n <span class=\"daga-tooltip\">Fit diagram to screen</span>\r\n </button>\r\n }\r\n @if (enableAction) {\r\n <button class=\"daga-undo\" (click)=\"undo()\">\r\n <span class=\"daga-tooltip\">Undo</span>\r\n </button>\r\n }\r\n @if (enableAction) {\r\n <button class=\"daga-redo\" (click)=\"redo()\">\r\n <span class=\"daga-tooltip\">Redo</span>\r\n </button>\r\n }\r\n @if (enableSelection) {\r\n <button class=\"daga-copy\" (click)=\"copySelection()\">\r\n <span class=\"daga-tooltip\">Copy</span>\r\n </button>\r\n }\r\n @if (enableSelection) {\r\n <button class=\"daga-cut\" (click)=\"cutSelection()\">\r\n <span class=\"daga-tooltip\">Cut</span>\r\n </button>\r\n }\r\n @if (enableSelection) {\r\n <button\r\n class=\"daga-multiple-selection\"\r\n [class]=\"canvas.multipleSelectionOn ? 'daga-on' : 'daga-off'\"\r\n (click)=\"startMultipleSelection()\"\r\n >\r\n <span class=\"daga-tooltip\">Multiple selection</span>\r\n </button>\r\n }\r\n @if (enableSelection) {\r\n <button\r\n class=\"daga-paste\"\r\n (click)=\"pasteSelection()\"\r\n >\r\n <span class=\"daga-tooltip\">Paste</span>\r\n </button>\r\n }\r\n @if (enableSelection) {\r\n <button\r\n class=\"daga-delete\"\r\n (click)=\"deleteSelection()\"\r\n >\r\n <span class=\"daga-tooltip\">Delete</span>\r\n </button>\r\n }\r\n @if (enableLayout) {\r\n <button class=\"daga-layout\" (click)=\"layout()\">\r\n <span class=\"daga-tooltip\">Apply layout</span>\r\n </button>\r\n }\r\n @if (enableFilter) {\r\n <button\r\n class=\"daga-filter\"\r\n [class]=\"filterOn ? 'daga-on' : 'daga-off'\"\r\n (click)=\"filter()\"\r\n >\r\n <span class=\"daga-tooltip\">Apply filter</span>\r\n </button>\r\n }\r\n </div>\r\n <button class=\"daga-more-options\" (click)=\"toggleCollapse()\">\r\n @if (!collapsed) {\r\n <span class=\"daga-tooltip\">Less options</span>\r\n }\r\n @if (collapsed) {\r\n <span class=\"daga-tooltip\">More options</span>\r\n }\r\n </button>\r\n</div>\r\n", changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
379
381
  }
380
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: DiagramButtonsComponent, decorators: [{
382
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: DiagramButtonsComponent, decorators: [{
381
383
  type: Component,
382
- args: [{ selector: 'daga-diagram-buttons', imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"daga-diagram-buttons daga-{{ location }} daga-{{ direction }}\">\r\n <button\r\n *ngIf=\"enableZoom && canvas.canUserPerformAction(DiagramActions.Zoom)\"\r\n class=\"daga-zoom-in\"\r\n (click)=\"zoomIn()\"\r\n >\r\n <span class=\"daga-tooltip\">Zoom in</span>\r\n </button>\r\n <button\r\n *ngIf=\"enableZoom && canvas.canUserPerformAction(DiagramActions.Zoom)\"\r\n class=\"daga-zoom-out\"\r\n (click)=\"zoomOut()\"\r\n >\r\n <span class=\"daga-tooltip\">Zoom out</span>\r\n </button>\r\n <div #collapsableButtons class=\"daga-collapsable-buttons daga-collapsed\">\r\n <button\r\n *ngIf=\"enableZoom && canvas.canUserPerformAction(DiagramActions.Zoom)\"\r\n class=\"daga-center\"\r\n (click)=\"center()\"\r\n >\r\n <span class=\"daga-tooltip\">Fit diagram to screen</span>\r\n </button>\r\n <button *ngIf=\"enableAction\" class=\"daga-undo\" (click)=\"undo()\">\r\n <span class=\"daga-tooltip\">Undo</span>\r\n </button>\r\n <button *ngIf=\"enableAction\" class=\"daga-redo\" (click)=\"redo()\">\r\n <span class=\"daga-tooltip\">Redo</span>\r\n </button>\r\n <button *ngIf=\"enableSelection\" class=\"daga-copy\" (click)=\"copySelection()\">\r\n <span class=\"daga-tooltip\">Copy</span>\r\n </button>\r\n <button *ngIf=\"enableSelection\" class=\"daga-cut\" (click)=\"cutSelection()\">\r\n <span class=\"daga-tooltip\">Cut</span>\r\n </button>\r\n <button\r\n *ngIf=\"enableSelection\"\r\n class=\"daga-multiple-selection\"\r\n [class]=\"canvas.multipleSelectionOn ? 'daga-on' : 'daga-off'\"\r\n (click)=\"startMultipleSelection()\"\r\n >\r\n <span class=\"daga-tooltip\">Multiple selection</span>\r\n </button>\r\n <button\r\n *ngIf=\"enableSelection\"\r\n class=\"daga-paste\"\r\n (click)=\"pasteSelection()\"\r\n >\r\n <span class=\"daga-tooltip\">Paste</span>\r\n </button>\r\n <button\r\n *ngIf=\"enableSelection\"\r\n class=\"daga-delete\"\r\n (click)=\"deleteSelection()\"\r\n >\r\n <span class=\"daga-tooltip\">Delete</span>\r\n </button>\r\n <button *ngIf=\"enableLayout\" class=\"daga-layout\" (click)=\"layout()\">\r\n <span class=\"daga-tooltip\">Apply layout</span>\r\n </button>\r\n <button\r\n *ngIf=\"enableFilter\"\r\n class=\"daga-filter\"\r\n [class]=\"filterOn ? 'daga-on' : 'daga-off'\"\r\n (click)=\"filter()\"\r\n >\r\n <span class=\"daga-tooltip\">Apply filter</span>\r\n </button>\r\n </div>\r\n <button class=\"daga-more-options\" (click)=\"toggleCollapse()\">\r\n <span *ngIf=\"!collapsed\" class=\"daga-tooltip\">Less options</span>\r\n <span *ngIf=\"collapsed\" class=\"daga-tooltip\">More options</span>\r\n </button>\r\n</div>\r\n" }]
383
- }], ctorParameters: () => [{ type: CanvasProviderService }, { type: DagaConfigurationService }], propDecorators: { collapsableButtons: [{
384
+ args: [{ selector: 'daga-diagram-buttons', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"daga-diagram-buttons daga-{{ location }} daga-{{ direction }}\">\r\n @if (enableZoom && canvas.canUserPerformAction(DiagramActions.Zoom)) {\r\n <button\r\n class=\"daga-zoom-in\"\r\n (click)=\"zoomIn()\"\r\n >\r\n <span class=\"daga-tooltip\">Zoom in</span>\r\n </button>\r\n }\r\n @if (enableZoom && canvas.canUserPerformAction(DiagramActions.Zoom)) {\r\n <button\r\n class=\"daga-zoom-out\"\r\n (click)=\"zoomOut()\"\r\n >\r\n <span class=\"daga-tooltip\">Zoom out</span>\r\n </button>\r\n }\r\n <div #collapsableButtons class=\"daga-collapsable-buttons daga-collapsed\">\r\n @if (enableZoom && canvas.canUserPerformAction(DiagramActions.Zoom)) {\r\n <button\r\n class=\"daga-center\"\r\n (click)=\"center()\"\r\n >\r\n <span class=\"daga-tooltip\">Fit diagram to screen</span>\r\n </button>\r\n }\r\n @if (enableAction) {\r\n <button class=\"daga-undo\" (click)=\"undo()\">\r\n <span class=\"daga-tooltip\">Undo</span>\r\n </button>\r\n }\r\n @if (enableAction) {\r\n <button class=\"daga-redo\" (click)=\"redo()\">\r\n <span class=\"daga-tooltip\">Redo</span>\r\n </button>\r\n }\r\n @if (enableSelection) {\r\n <button class=\"daga-copy\" (click)=\"copySelection()\">\r\n <span class=\"daga-tooltip\">Copy</span>\r\n </button>\r\n }\r\n @if (enableSelection) {\r\n <button class=\"daga-cut\" (click)=\"cutSelection()\">\r\n <span class=\"daga-tooltip\">Cut</span>\r\n </button>\r\n }\r\n @if (enableSelection) {\r\n <button\r\n class=\"daga-multiple-selection\"\r\n [class]=\"canvas.multipleSelectionOn ? 'daga-on' : 'daga-off'\"\r\n (click)=\"startMultipleSelection()\"\r\n >\r\n <span class=\"daga-tooltip\">Multiple selection</span>\r\n </button>\r\n }\r\n @if (enableSelection) {\r\n <button\r\n class=\"daga-paste\"\r\n (click)=\"pasteSelection()\"\r\n >\r\n <span class=\"daga-tooltip\">Paste</span>\r\n </button>\r\n }\r\n @if (enableSelection) {\r\n <button\r\n class=\"daga-delete\"\r\n (click)=\"deleteSelection()\"\r\n >\r\n <span class=\"daga-tooltip\">Delete</span>\r\n </button>\r\n }\r\n @if (enableLayout) {\r\n <button class=\"daga-layout\" (click)=\"layout()\">\r\n <span class=\"daga-tooltip\">Apply layout</span>\r\n </button>\r\n }\r\n @if (enableFilter) {\r\n <button\r\n class=\"daga-filter\"\r\n [class]=\"filterOn ? 'daga-on' : 'daga-off'\"\r\n (click)=\"filter()\"\r\n >\r\n <span class=\"daga-tooltip\">Apply filter</span>\r\n </button>\r\n }\r\n </div>\r\n <button class=\"daga-more-options\" (click)=\"toggleCollapse()\">\r\n @if (!collapsed) {\r\n <span class=\"daga-tooltip\">Less options</span>\r\n }\r\n @if (collapsed) {\r\n <span class=\"daga-tooltip\">More options</span>\r\n }\r\n </button>\r\n</div>\r\n" }]
385
+ }], propDecorators: { collapsableButtons: [{
384
386
  type: ViewChild,
385
387
  args: ['collapsableButtons']
386
388
  }], location: [{
@@ -405,17 +407,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
405
407
  * @see DiagramValidator
406
408
  */
407
409
  class ErrorsComponent {
408
- get canvas() {
409
- return this.canvasProvider.getCanvas();
410
- }
411
- constructor(canvasProvider, cdf) {
412
- this.canvasProvider = canvasProvider;
413
- this.cdf = cdf;
410
+ constructor() {
411
+ this.#canvasProvider = inject(CanvasProviderService);
412
+ this.#cdf = inject(ChangeDetectorRef);
414
413
  this.errors = [];
415
414
  this.Side = Side;
416
415
  }
416
+ #canvasProvider;
417
+ #cdf;
418
+ get canvas() {
419
+ return this.#canvasProvider.getCanvas();
420
+ }
417
421
  ngAfterViewInit() {
418
- this.canvasSub = this.canvasProvider.canvas$.subscribe((c) => {
422
+ this.canvasSub = this.#canvasProvider.canvas$.subscribe((c) => {
419
423
  this.updateCanvas(c);
420
424
  });
421
425
  }
@@ -441,7 +445,7 @@ class ErrorsComponent {
441
445
  this.errors = [...this.errors, ...newErrors];
442
446
  }
443
447
  // need to force detection changes here for some reason...
444
- this.cdf.detectChanges();
448
+ this.#cdf.detectChanges();
445
449
  }
446
450
  showError(error) {
447
451
  if (error.elementId &&
@@ -471,13 +475,13 @@ class ErrorsComponent {
471
475
  this.canvas.parentComponent?.propertyEditor?.highlightProperty(...error.propertyNames);
472
476
  }
473
477
  }
474
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ErrorsComponent, deps: [{ token: CanvasProviderService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
475
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.5", type: ErrorsComponent, isStandalone: true, selector: "daga-errors", viewQueries: [{ propertyName: "errorsContainer", first: true, predicate: ["errors"], descendants: true }], ngImport: i0, template: "<div #errorsContainer class=\"daga-errors\">\r\n <div\r\n *ngIf=\"errors.length === 0\"\r\n class=\"daga-errors-summary daga-no-errors daga-prevent-user-select\"\r\n >\r\n <span>No errors found</span>\r\n </div>\r\n <div\r\n *ngIf=\"errors.length > 0\"\r\n class=\"daga-errors-summary daga-with-errors daga-prevent-user-select\"\r\n >\r\n <span>{{ errors.length }} errors found</span>\r\n <div class=\"daga-collapse-button-container\">\r\n <daga-collapse-button\r\n [collapsableSelector]=\"errorsContainer\"\r\n [collapsableAdditionalSelector]=\"'.daga-error-panel'\"\r\n [direction]=\"Side.Top\"\r\n [rule]=\"'display'\"\r\n [collapsedValue]=\"'none'\"\r\n [visibleValue]=\"'block'\"\r\n />\r\n </div>\r\n </div>\r\n <div *ngIf=\"errors.length > 0\" class=\"daga-error-panel\">\r\n <ol>\r\n <li\r\n *ngFor=\"let error of errors; index as i\"\r\n (click)=\"showError(error)\"\r\n [innerHTML]=\"error.message\"\r\n ></li>\r\n </ol>\r\n </div>\r\n</div>\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: CollapseButtonComponent, selector: "daga-collapse-button", inputs: ["collapsableSelector", "collapsableAdditionalSelector", "collapsed", "disabled", "direction", "rule", "collapsedValue", "visibleValue"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
478
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: ErrorsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
479
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.3", type: ErrorsComponent, isStandalone: true, selector: "daga-errors", viewQueries: [{ propertyName: "errorsContainer", first: true, predicate: ["errors"], descendants: true }], ngImport: i0, template: "<div #errorsContainer class=\"daga-errors\">\r\n @if (errors.length === 0) {\r\n <div\r\n class=\"daga-errors-summary daga-no-errors daga-prevent-user-select\"\r\n >\r\n <span>No errors found</span>\r\n </div>\r\n }\r\n @if (errors.length > 0) {\r\n <div\r\n class=\"daga-errors-summary daga-with-errors daga-prevent-user-select\"\r\n >\r\n <span>{{ errors.length }} errors found</span>\r\n <div class=\"daga-collapse-button-container\">\r\n <daga-collapse-button\r\n [collapsableSelector]=\"errorsContainer\"\r\n [collapsableAdditionalSelector]=\"'.daga-error-panel'\"\r\n [direction]=\"Side.Top\"\r\n [rule]=\"'display'\"\r\n [collapsedValue]=\"'none'\"\r\n [visibleValue]=\"'block'\"\r\n />\r\n </div>\r\n </div>\r\n }\r\n @if (errors.length > 0) {\r\n <div class=\"daga-error-panel\">\r\n <ol>\r\n @for (error of errors; track error; let i = $index) {\r\n <li\r\n (click)=\"showError(error)\"\r\n [innerHTML]=\"error.message\"\r\n ></li>\r\n }\r\n </ol>\r\n </div>\r\n }\r\n </div>\r\n", dependencies: [{ kind: "component", type: CollapseButtonComponent, selector: "daga-collapse-button", inputs: ["collapsableSelector", "collapsableAdditionalSelector", "collapsed", "disabled", "direction", "rule", "collapsedValue", "visibleValue"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
476
480
  }
477
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ErrorsComponent, decorators: [{
481
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: ErrorsComponent, decorators: [{
478
482
  type: Component,
479
- args: [{ selector: 'daga-errors', imports: [CommonModule, CollapseButtonComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div #errorsContainer class=\"daga-errors\">\r\n <div\r\n *ngIf=\"errors.length === 0\"\r\n class=\"daga-errors-summary daga-no-errors daga-prevent-user-select\"\r\n >\r\n <span>No errors found</span>\r\n </div>\r\n <div\r\n *ngIf=\"errors.length > 0\"\r\n class=\"daga-errors-summary daga-with-errors daga-prevent-user-select\"\r\n >\r\n <span>{{ errors.length }} errors found</span>\r\n <div class=\"daga-collapse-button-container\">\r\n <daga-collapse-button\r\n [collapsableSelector]=\"errorsContainer\"\r\n [collapsableAdditionalSelector]=\"'.daga-error-panel'\"\r\n [direction]=\"Side.Top\"\r\n [rule]=\"'display'\"\r\n [collapsedValue]=\"'none'\"\r\n [visibleValue]=\"'block'\"\r\n />\r\n </div>\r\n </div>\r\n <div *ngIf=\"errors.length > 0\" class=\"daga-error-panel\">\r\n <ol>\r\n <li\r\n *ngFor=\"let error of errors; index as i\"\r\n (click)=\"showError(error)\"\r\n [innerHTML]=\"error.message\"\r\n ></li>\r\n </ol>\r\n </div>\r\n</div>\r\n" }]
480
- }], ctorParameters: () => [{ type: CanvasProviderService }, { type: i0.ChangeDetectorRef }], propDecorators: { errorsContainer: [{
483
+ args: [{ selector: 'daga-errors', imports: [CollapseButtonComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div #errorsContainer class=\"daga-errors\">\r\n @if (errors.length === 0) {\r\n <div\r\n class=\"daga-errors-summary daga-no-errors daga-prevent-user-select\"\r\n >\r\n <span>No errors found</span>\r\n </div>\r\n }\r\n @if (errors.length > 0) {\r\n <div\r\n class=\"daga-errors-summary daga-with-errors daga-prevent-user-select\"\r\n >\r\n <span>{{ errors.length }} errors found</span>\r\n <div class=\"daga-collapse-button-container\">\r\n <daga-collapse-button\r\n [collapsableSelector]=\"errorsContainer\"\r\n [collapsableAdditionalSelector]=\"'.daga-error-panel'\"\r\n [direction]=\"Side.Top\"\r\n [rule]=\"'display'\"\r\n [collapsedValue]=\"'none'\"\r\n [visibleValue]=\"'block'\"\r\n />\r\n </div>\r\n </div>\r\n }\r\n @if (errors.length > 0) {\r\n <div class=\"daga-error-panel\">\r\n <ol>\r\n @for (error of errors; track error; let i = $index) {\r\n <li\r\n (click)=\"showError(error)\"\r\n [innerHTML]=\"error.message\"\r\n ></li>\r\n }\r\n </ol>\r\n </div>\r\n }\r\n </div>\r\n" }]
484
+ }], propDecorators: { errorsContainer: [{
481
485
  type: ViewChild,
482
486
  args: ['errors']
483
487
  }] } });
@@ -493,21 +497,23 @@ const LABEL_VERTICAL_SHIFT_PX = 6;
493
497
  * @see DiagramNode
494
498
  */
495
499
  class PaletteComponent {
496
- get canvas() {
497
- return this.canvasProvider.getCanvas();
498
- }
499
- constructor(canvasProvider, configService) {
500
- this.canvasProvider = canvasProvider;
501
- this.configService = configService;
500
+ constructor() {
501
+ this.#canvasProvider = inject(CanvasProviderService);
502
+ this.#configService = inject(DagaConfigurationService);
502
503
  this.currentCategory = '';
503
504
  }
505
+ #canvasProvider;
506
+ #configService;
507
+ get canvas() {
508
+ return this.#canvasProvider.getCanvas();
509
+ }
504
510
  ngOnInit() {
505
511
  /*
506
512
  reload using the canvas observable instead of the config one
507
513
  because we're getting the type info from the model, not the configuration
508
514
  */
509
- this.sub = this.canvasProvider.canvas$.subscribe(() => {
510
- this.init(this.configService.getConfig());
515
+ this.sub = this.#canvasProvider.canvas$.subscribe(() => {
516
+ this.init(this.#configService.getConfig());
511
517
  });
512
518
  }
513
519
  ngAfterViewInit() {
@@ -635,12 +641,16 @@ class PaletteComponent {
635
641
  const borderThickness = type.defaultLook.lookType === 'shaped-look'
636
642
  ? type.defaultLook.borderThickness
637
643
  : 0;
644
+ const templateHeight = type.defaultHeight + borderThickness;
645
+ const templateWidth = type.defaultWidth + borderThickness;
646
+ const stretchedTemplateHeight = templateConfig.height || templateHeight;
647
+ const stretchedTemplateWidth = templateConfig.width || templateWidth;
638
648
  let thisComponentClone;
639
649
  const thisComponent = this.selectPalette()
640
650
  .append('div')
641
651
  .attr('class', `daga-template-container ${classes !== undefined ? classes : ''}`)
642
- .style('width', `${type.defaultWidth + borderThickness}px`)
643
- .style('height', `${type.defaultHeight + borderThickness}px`)
652
+ .style('width', `${stretchedTemplateWidth}px`)
653
+ .style('height', `${stretchedTemplateHeight}px`)
644
654
  .on(Events.MouseEnter, () => {
645
655
  setCursorStyle(CursorStyle.Grab);
646
656
  })
@@ -658,8 +668,8 @@ class PaletteComponent {
658
668
  return;
659
669
  }
660
670
  thisComponentClone
661
- .style('left', `${pointerCoords[0] - type.defaultWidth / 2 - borderThickness / 2}px`)
662
- .style('top', `${pointerCoords[1] - type.defaultHeight / 2 - borderThickness / 2}px`);
671
+ .style('left', `${pointerCoords[0] - stretchedTemplateWidth / 2}px`)
672
+ .style('top', `${pointerCoords[1] - stretchedTemplateHeight / 2}px`);
663
673
  }
664
674
  })
665
675
  .on(DragEvents.Start, (event) => {
@@ -678,8 +688,8 @@ class PaletteComponent {
678
688
  thisComponentClone = d3.select(thisComponentNodeCloned);
679
689
  thisComponentClone
680
690
  .style('position', 'absolute')
681
- .style('left', `${pointerCoords[0] - type.defaultWidth / 2 - borderThickness / 2}px`)
682
- .style('top', `${pointerCoords[1] - type.defaultHeight / 2 - borderThickness / 2}px`)
691
+ .style('left', `${pointerCoords[0] - stretchedTemplateWidth / 2}px`)
692
+ .style('top', `${pointerCoords[1] - stretchedTemplateHeight / 2}px`)
683
693
  .style('z-index', 1);
684
694
  // when trying to place a unique node in a diagram that already has a node of that type, set cursor style to not allowed
685
695
  if (type.isUnique &&
@@ -748,11 +758,13 @@ class PaletteComponent {
748
758
  }))
749
759
  .append('svg')
750
760
  .attr('class', `palette-node ${type.id}`)
761
+ .attr('viewBox', `0 0 ${templateWidth} ${templateHeight}`)
762
+ .attr('preserveAspectRatio', 'none')
751
763
  .style('position', 'relative')
752
764
  .style('left', 0)
753
765
  .style('top', 0)
754
- .style('width', '100%')
755
- .style('height', '100%');
766
+ .style('width', `${stretchedTemplateWidth}px`)
767
+ .style('height', `${stretchedTemplateHeight}px`);
756
768
  const nodeLook = templateConfig.look || type.defaultLook;
757
769
  switch (nodeLook.lookType) {
758
770
  case 'shaped-look':
@@ -847,37 +859,39 @@ class PaletteComponent {
847
859
  .attr('href', nodeLook.backgroundImageBottomRight)
848
860
  .attr('preserveAspectRatio', 'none');
849
861
  }
850
- if (type.decorators) {
851
- for (const decoratorConfig of type.decorators) {
862
+ if (templateConfig.look === undefined) {
863
+ if (type.decorators) {
864
+ for (const decoratorConfig of type.decorators) {
865
+ thisComponent
866
+ .append('foreignObject')
867
+ .attr('width', `${decoratorConfig.width}px`)
868
+ .attr('height', `${decoratorConfig.height}px`)
869
+ .attr('transform', `translate(${decoratorConfig.coords[0]},${decoratorConfig.coords[1]})`)
870
+ .html(decoratorConfig.html);
871
+ }
872
+ }
873
+ if (templateConfig.label) {
874
+ const labelConfig = {
875
+ ...DIAGRAM_FIELD_DEFAULTS,
876
+ ...type.label,
877
+ ...templateConfig.labelLook
878
+ };
852
879
  thisComponent
853
- .append('foreignObject')
854
- .attr('width', `${decoratorConfig.width}px`)
855
- .attr('height', `${decoratorConfig.height}px`)
856
- .attr('transform', `translate(${decoratorConfig.coords[0]},${decoratorConfig.coords[1]})`)
857
- .html(decoratorConfig.html);
880
+ .append('text')
881
+ .attr('transform', `translate(${(getLeftMargin(labelConfig) + type.defaultWidth + borderThickness / 2) / 2},${(getTopMargin(labelConfig) + type.defaultHeight + borderThickness / 2) / 2})`)
882
+ .attr('x', 0)
883
+ .attr('y', 0)
884
+ .attr('font-size', `${labelConfig.fontSize}px`)
885
+ .attr('text-anchor', 'middle')
886
+ .attr('font-family', labelConfig.fontFamily)
887
+ .attr('font-weight', 400)
888
+ .attr('fill', labelConfig.color)
889
+ .attr('stroke', 'none')
890
+ .style('font-kerning', 'none')
891
+ .style('user-select', 'none')
892
+ .text(templateConfig.label);
858
893
  }
859
894
  }
860
- if (templateConfig.label) {
861
- const labelConfig = {
862
- ...DIAGRAM_FIELD_DEFAULTS,
863
- ...type.label,
864
- ...templateConfig.labelLook
865
- };
866
- thisComponent
867
- .append('text')
868
- .attr('transform', `translate(${(getLeftMargin(labelConfig) + type.defaultWidth + borderThickness / 2) / 2},${(getTopMargin(labelConfig) + type.defaultHeight + borderThickness / 2) / 2})`)
869
- .attr('x', 0)
870
- .attr('y', 0)
871
- .attr('font-size', `${labelConfig.fontSize}px`)
872
- .attr('text-anchor', 'middle')
873
- .attr('font-family', labelConfig.fontFamily)
874
- .attr('font-weight', 400)
875
- .attr('fill', labelConfig.color)
876
- .attr('stroke', 'none')
877
- .style('font-kerning', 'none')
878
- .style('user-select', 'none')
879
- .text(templateConfig.label);
880
- }
881
895
  }
882
896
  appendConnectionTemplate(type, templateConfig, classes) {
883
897
  const thisComponent = this.selectPalette()
@@ -947,13 +961,13 @@ class PaletteComponent {
947
961
  .text(templateConfig.label);
948
962
  }
949
963
  }
950
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: PaletteComponent, deps: [{ token: CanvasProviderService }, { token: DagaConfigurationService }], target: i0.ɵɵFactoryTarget.Component }); }
951
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.5", type: PaletteComponent, isStandalone: true, selector: "daga-palette", inputs: { palettes: "palettes", currentPalette: "currentPalette", currentCategory: "currentCategory", location: "location", direction: "direction", width: "width", gap: "gap" }, viewQueries: [{ propertyName: "panel", first: true, predicate: ["panel"], descendants: true }], ngImport: i0, template: "<div #panel class=\"daga-panel daga-{{ location }} daga-{{ direction }}\">\r\n <daga-collapse-button\r\n #collapseButton\r\n [direction]=\"direction\"\r\n [collapsableSelector]=\"panel\"\r\n collapsableAdditionalSelector=\".daga-panel-content\"\r\n rule=\"display\"\r\n collapsedValue=\"none\"\r\n visibleValue=\"block\"\r\n />\r\n <div class=\"daga-panel-content\">\r\n <div *ngIf=\"palettes.length > 1\" class=\"daga-panel-tabs\">\r\n <div\r\n *ngFor=\"let palette of palettes\"\r\n class=\"daga-panel-tab\"\r\n [class]=\"palette === currentPalette ? 'daga-current-tab' : ''\"\r\n (click)=\"switchPalette(palette)\"\r\n >\r\n {{ palette.name }}\r\n </div>\r\n </div>\r\n <div class=\"daga-palette-view\"></div>\r\n </div>\r\n</div>\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: CollapseButtonComponent, selector: "daga-collapse-button", inputs: ["collapsableSelector", "collapsableAdditionalSelector", "collapsed", "disabled", "direction", "rule", "collapsedValue", "visibleValue"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
964
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: PaletteComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
965
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.3", type: PaletteComponent, isStandalone: true, selector: "daga-palette", inputs: { palettes: "palettes", currentPalette: "currentPalette", currentCategory: "currentCategory", location: "location", direction: "direction", width: "width", gap: "gap" }, viewQueries: [{ propertyName: "panel", first: true, predicate: ["panel"], descendants: true }], ngImport: i0, template: "<div #panel class=\"daga-panel daga-{{ location }} daga-{{ direction }}\">\r\n <daga-collapse-button\r\n #collapseButton\r\n [direction]=\"direction\"\r\n [collapsableSelector]=\"panel\"\r\n collapsableAdditionalSelector=\".daga-panel-content\"\r\n rule=\"display\"\r\n collapsedValue=\"none\"\r\n visibleValue=\"block\"\r\n />\r\n <div class=\"daga-panel-content\">\r\n @if (palettes.length > 1) {\r\n <div class=\"daga-panel-tabs\">\r\n @for (palette of palettes; track palette) {\r\n <div\r\n class=\"daga-panel-tab\"\r\n [class]=\"palette === currentPalette ? 'daga-current-tab' : ''\"\r\n (click)=\"switchPalette(palette)\"\r\n >\r\n {{ palette.name }}\r\n </div>\r\n }\r\n </div>\r\n }\r\n <div class=\"daga-palette-view\"></div>\r\n </div>\r\n </div>\r\n", dependencies: [{ kind: "component", type: CollapseButtonComponent, selector: "daga-collapse-button", inputs: ["collapsableSelector", "collapsableAdditionalSelector", "collapsed", "disabled", "direction", "rule", "collapsedValue", "visibleValue"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
952
966
  }
953
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: PaletteComponent, decorators: [{
967
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: PaletteComponent, decorators: [{
954
968
  type: Component,
955
- args: [{ selector: 'daga-palette', imports: [CommonModule, CollapseButtonComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div #panel class=\"daga-panel daga-{{ location }} daga-{{ direction }}\">\r\n <daga-collapse-button\r\n #collapseButton\r\n [direction]=\"direction\"\r\n [collapsableSelector]=\"panel\"\r\n collapsableAdditionalSelector=\".daga-panel-content\"\r\n rule=\"display\"\r\n collapsedValue=\"none\"\r\n visibleValue=\"block\"\r\n />\r\n <div class=\"daga-panel-content\">\r\n <div *ngIf=\"palettes.length > 1\" class=\"daga-panel-tabs\">\r\n <div\r\n *ngFor=\"let palette of palettes\"\r\n class=\"daga-panel-tab\"\r\n [class]=\"palette === currentPalette ? 'daga-current-tab' : ''\"\r\n (click)=\"switchPalette(palette)\"\r\n >\r\n {{ palette.name }}\r\n </div>\r\n </div>\r\n <div class=\"daga-palette-view\"></div>\r\n </div>\r\n</div>\r\n" }]
956
- }], ctorParameters: () => [{ type: CanvasProviderService }, { type: DagaConfigurationService }], propDecorators: { panel: [{
969
+ args: [{ selector: 'daga-palette', imports: [CollapseButtonComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div #panel class=\"daga-panel daga-{{ location }} daga-{{ direction }}\">\r\n <daga-collapse-button\r\n #collapseButton\r\n [direction]=\"direction\"\r\n [collapsableSelector]=\"panel\"\r\n collapsableAdditionalSelector=\".daga-panel-content\"\r\n rule=\"display\"\r\n collapsedValue=\"none\"\r\n visibleValue=\"block\"\r\n />\r\n <div class=\"daga-panel-content\">\r\n @if (palettes.length > 1) {\r\n <div class=\"daga-panel-tabs\">\r\n @for (palette of palettes; track palette) {\r\n <div\r\n class=\"daga-panel-tab\"\r\n [class]=\"palette === currentPalette ? 'daga-current-tab' : ''\"\r\n (click)=\"switchPalette(palette)\"\r\n >\r\n {{ palette.name }}\r\n </div>\r\n }\r\n </div>\r\n }\r\n <div class=\"daga-palette-view\"></div>\r\n </div>\r\n </div>\r\n" }]
970
+ }], propDecorators: { panel: [{
957
971
  type: ViewChild,
958
972
  args: ['panel']
959
973
  }], palettes: [{
@@ -979,8 +993,22 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
979
993
  * @see ValueSet
980
994
  */
981
995
  class PropertySettingsComponent {
996
+ constructor() {
997
+ this.#element = inject(ElementRef);
998
+ this.#cdr = inject(ChangeDetectorRef);
999
+ this.#canvasProvider = inject(CanvasProviderService);
1000
+ /** How many property-settings elements are parents of this property-settings element. @private */
1001
+ this.depth = 0;
1002
+ // Attributes for the template
1003
+ this.Type = Type;
1004
+ this.getStyleClassName = getStyleClassName;
1005
+ this.asString = asString;
1006
+ }
1007
+ #element;
1008
+ #cdr;
1009
+ #canvasProvider;
982
1010
  get canvas() {
983
- return this.canvasProvider.getCanvas();
1011
+ return this.#canvasProvider.getCanvas();
984
1012
  }
985
1013
  get valueSet() {
986
1014
  return this._valueSet;
@@ -989,20 +1017,9 @@ class PropertySettingsComponent {
989
1017
  if (this._valueSet !== valueSet) {
990
1018
  this._valueSet = valueSet;
991
1019
  // force value change detection
992
- this.cdr.detectChanges();
1020
+ this.#cdr.detectChanges();
993
1021
  }
994
1022
  }
995
- constructor(element, cdr, canvasProvider) {
996
- this.element = element;
997
- this.cdr = cdr;
998
- this.canvasProvider = canvasProvider;
999
- /** How many property-settings elements are parents of this property-settings element. @private */
1000
- this.depth = 0;
1001
- // Attributes for the template
1002
- this.Type = Type;
1003
- this.getStyleClassName = getStyleClassName;
1004
- this.asString = asString;
1005
- }
1006
1023
  ngAfterViewInit() {
1007
1024
  this.addListeners();
1008
1025
  }
@@ -1012,7 +1029,7 @@ class PropertySettingsComponent {
1012
1029
  let propertyElementHeight = 0;
1013
1030
  let closestDropbarIndex = 0;
1014
1031
  const propertyElement = d3
1015
- .select(this.element.nativeElement)
1032
+ .select(this.#element.nativeElement)
1016
1033
  .select(`.daga-property.${getStyleClassName(property.name)}.daga-depth-${this.depth}`);
1017
1034
  propertyElement.select('button.daga-move-button').call(d3
1018
1035
  .drag()
@@ -1052,12 +1069,12 @@ class PropertySettingsComponent {
1052
1069
  .style('width', `${propertyElementWidth}px`)
1053
1070
  .style('height', `${propertyElementHeight}px`)
1054
1071
  .style('z-index', 1);
1055
- d3.select(this.element.nativeElement)
1072
+ d3.select(this.#element.nativeElement)
1056
1073
  .select(`.daga-dropbar.daga-index-${closestDropbarIndex}.daga-depth-${this.depth}`)
1057
1074
  .style('visibility', 'hidden')
1058
1075
  .style('height', 0);
1059
1076
  closestDropbarIndex = this.getClosestDropbarIndex(pointerCoords);
1060
- d3.select(this.element.nativeElement)
1077
+ d3.select(this.#element.nativeElement)
1061
1078
  .select(`.daga-dropbar.daga-index-${closestDropbarIndex}.daga-depth-${this.depth}`)
1062
1079
  .style('visibility', 'visible')
1063
1080
  .style('height', '0.25rem');
@@ -1071,7 +1088,7 @@ class PropertySettingsComponent {
1071
1088
  .style('z-index', 0)
1072
1089
  .style('width', 'unset')
1073
1090
  .style('height', 'unset');
1074
- d3.select(this.element.nativeElement)
1091
+ d3.select(this.#element.nativeElement)
1075
1092
  .select(`.daga-dropbar.daga-index-${closestDropbarIndex}.daga-depth-${this.depth}`)
1076
1093
  .style('visibility', 'hidden')
1077
1094
  .style('height', 0);
@@ -1084,7 +1101,7 @@ class PropertySettingsComponent {
1084
1101
  closestDropbarIndex = this.getClosestDropbarIndex(pointerCoords);
1085
1102
  this.valueSet?.displayedProperties?.splice(this.valueSet.displayedProperties.indexOf(property), 1);
1086
1103
  this.valueSet?.displayedProperties?.splice(closestDropbarIndex, 0, property);
1087
- this.cdr.detectChanges();
1104
+ this.#cdr.detectChanges();
1088
1105
  }));
1089
1106
  }
1090
1107
  }
@@ -1094,7 +1111,7 @@ class PropertySettingsComponent {
1094
1111
  const coordsList = [];
1095
1112
  for (let i = 0; i <= propertyList.length; ++i) {
1096
1113
  const boundingRect = d3
1097
- .select(this.element.nativeElement)
1114
+ .select(this.#element.nativeElement)
1098
1115
  .select(`.daga-dropbar.daga-index-${i}.daga-depth-${this.depth}`)
1099
1116
  .node()
1100
1117
  ?.getBoundingClientRect();
@@ -1131,7 +1148,7 @@ class PropertySettingsComponent {
1131
1148
  if (selectedProperty) {
1132
1149
  this.valueSet.displayProperty(selectedProperty);
1133
1150
  }
1134
- this.cdr.detectChanges();
1151
+ this.#cdr.detectChanges();
1135
1152
  this.addListeners();
1136
1153
  }
1137
1154
  hideProperty(property) {
@@ -1151,16 +1168,16 @@ class PropertySettingsComponent {
1151
1168
  if (selectedProperty) {
1152
1169
  this.valueSet.hideProperty(selectedProperty);
1153
1170
  }
1154
- this.cdr.detectChanges();
1171
+ this.#cdr.detectChanges();
1155
1172
  this.addListeners();
1156
1173
  }
1157
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: PropertySettingsComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: CanvasProviderService }], target: i0.ɵɵFactoryTarget.Component }); }
1158
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.5", type: PropertySettingsComponent, isStandalone: true, selector: "daga-property-settings", inputs: { valueSet: "valueSet", depth: "depth" }, ngImport: i0, template: "<div\r\n class=\"daga-dropbar\"\r\n [class]=\"'daga-index-' + 0 + ' daga-depth-' + depth\"\r\n></div>\r\n<div\r\n *ngFor=\"let property of valueSet?.displayedProperties || []; index as i\"\r\n class=\"daga-property-and-dropbar\"\r\n [class]=\"getStyleClassName(property.name) + ' daga-depth-' + depth\"\r\n>\r\n <div\r\n class=\"daga-property\"\r\n [class]=\"getStyleClassName(property.name) + ' daga-depth-' + depth\"\r\n >\r\n <div class=\"daga-property-name\">\r\n <span>{{ property.name }}</span>\r\n <div class=\"daga-buttons\">\r\n <button class=\"daga-property-button daga-move-button\">\r\n <div class=\"daga-icon daga-move-icon\"></div>\r\n </button>\r\n <button\r\n class=\"daga-property-button daga-hide-button\"\r\n (click)=\"hideProperty(property.name)\"\r\n >\r\n <div class=\"daga-icon daga-hide-icon\"></div>\r\n </button>\r\n </div>\r\n </div>\r\n <div *ngIf=\"property.type !== Type.Object\" class=\"daga-property-value\">\r\n {{ asString(valueSet?.getValue(property.name)) }}\r\n </div>\r\n <div *ngIf=\"property.type === Type.Object\">\r\n <daga-property-settings\r\n [valueSet]=\"valueSet?.getSubValueSet(property.name)\"\r\n [depth]=\"depth + 1\"\r\n ></daga-property-settings>\r\n </div>\r\n </div>\r\n <div\r\n class=\"daga-dropbar\"\r\n [class]=\"'daga-index-' + (i + 1) + ' daga-depth-' + depth\"\r\n ></div>\r\n</div>\r\n<div\r\n class=\"daga-property\"\r\n *ngIf=\"valueSet && valueSet.hiddenProperties.length > 0\"\r\n>\r\n <p class=\"daga-property-name\">Add property:</p>\r\n <select (change)=\"displayProperty($event)\">\r\n <option value=\"\">Select a property</option>\r\n <option\r\n *ngFor=\"let property of valueSet?.hiddenProperties || []\"\r\n [value]=\"property.name\"\r\n >\r\n {{ property.name }}\r\n </option>\r\n </select>\r\n</div>\r\n", dependencies: [{ kind: "component", type: PropertySettingsComponent, selector: "daga-property-settings", inputs: ["valueSet", "depth"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1174
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: PropertySettingsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1175
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.3", type: PropertySettingsComponent, isStandalone: true, selector: "daga-property-settings", inputs: { valueSet: "valueSet", depth: "depth" }, ngImport: i0, template: "<div\r\n class=\"daga-dropbar\"\r\n [class]=\"'daga-index-' + 0 + ' daga-depth-' + depth\"\r\n></div>\r\n@for (property of valueSet?.displayedProperties || []; track property; let i = $index) {\r\n <div\r\n class=\"daga-property-and-dropbar\"\r\n [class]=\"getStyleClassName(property.name) + ' daga-depth-' + depth\"\r\n >\r\n <div\r\n class=\"daga-property\"\r\n [class]=\"getStyleClassName(property.name) + ' daga-depth-' + depth\"\r\n >\r\n <div class=\"daga-property-name\">\r\n <span>{{ property.name }}</span>\r\n <div class=\"daga-buttons\">\r\n <button class=\"daga-property-button daga-move-button\">\r\n <div class=\"daga-icon daga-move-icon\"></div>\r\n </button>\r\n <button\r\n class=\"daga-property-button daga-hide-button\"\r\n (click)=\"hideProperty(property.name)\"\r\n >\r\n <div class=\"daga-icon daga-hide-icon\"></div>\r\n </button>\r\n </div>\r\n </div>\r\n @if (property.type !== Type.Object) {\r\n <div class=\"daga-property-value\">\r\n {{ asString(valueSet?.getValue(property.name)) }}\r\n </div>\r\n }\r\n @if (property.type === Type.Object) {\r\n <div>\r\n <daga-property-settings\r\n [valueSet]=\"valueSet?.getSubValueSet(property.name)\"\r\n [depth]=\"depth + 1\"\r\n ></daga-property-settings>\r\n </div>\r\n }\r\n </div>\r\n <div\r\n class=\"daga-dropbar\"\r\n [class]=\"'daga-index-' + (i + 1) + ' daga-depth-' + depth\"\r\n ></div>\r\n </div>\r\n}\r\n@if (valueSet && valueSet.hiddenProperties.length > 0) {\r\n <div\r\n class=\"daga-property\"\r\n >\r\n <p class=\"daga-property-name\">Add property:</p>\r\n <select (change)=\"displayProperty($event)\">\r\n <option value=\"\">Select a property</option>\r\n @for (property of valueSet?.hiddenProperties || []; track property) {\r\n <option\r\n [value]=\"property.name\"\r\n >\r\n {{ property.name }}\r\n </option>\r\n }\r\n </select>\r\n </div>\r\n}\r\n", dependencies: [{ kind: "component", type: PropertySettingsComponent, selector: "daga-property-settings", inputs: ["valueSet", "depth"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1159
1176
  }
1160
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: PropertySettingsComponent, decorators: [{
1177
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: PropertySettingsComponent, decorators: [{
1161
1178
  type: Component,
1162
- args: [{ selector: 'daga-property-settings', imports: [CommonModule, FormsModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\r\n class=\"daga-dropbar\"\r\n [class]=\"'daga-index-' + 0 + ' daga-depth-' + depth\"\r\n></div>\r\n<div\r\n *ngFor=\"let property of valueSet?.displayedProperties || []; index as i\"\r\n class=\"daga-property-and-dropbar\"\r\n [class]=\"getStyleClassName(property.name) + ' daga-depth-' + depth\"\r\n>\r\n <div\r\n class=\"daga-property\"\r\n [class]=\"getStyleClassName(property.name) + ' daga-depth-' + depth\"\r\n >\r\n <div class=\"daga-property-name\">\r\n <span>{{ property.name }}</span>\r\n <div class=\"daga-buttons\">\r\n <button class=\"daga-property-button daga-move-button\">\r\n <div class=\"daga-icon daga-move-icon\"></div>\r\n </button>\r\n <button\r\n class=\"daga-property-button daga-hide-button\"\r\n (click)=\"hideProperty(property.name)\"\r\n >\r\n <div class=\"daga-icon daga-hide-icon\"></div>\r\n </button>\r\n </div>\r\n </div>\r\n <div *ngIf=\"property.type !== Type.Object\" class=\"daga-property-value\">\r\n {{ asString(valueSet?.getValue(property.name)) }}\r\n </div>\r\n <div *ngIf=\"property.type === Type.Object\">\r\n <daga-property-settings\r\n [valueSet]=\"valueSet?.getSubValueSet(property.name)\"\r\n [depth]=\"depth + 1\"\r\n ></daga-property-settings>\r\n </div>\r\n </div>\r\n <div\r\n class=\"daga-dropbar\"\r\n [class]=\"'daga-index-' + (i + 1) + ' daga-depth-' + depth\"\r\n ></div>\r\n</div>\r\n<div\r\n class=\"daga-property\"\r\n *ngIf=\"valueSet && valueSet.hiddenProperties.length > 0\"\r\n>\r\n <p class=\"daga-property-name\">Add property:</p>\r\n <select (change)=\"displayProperty($event)\">\r\n <option value=\"\">Select a property</option>\r\n <option\r\n *ngFor=\"let property of valueSet?.hiddenProperties || []\"\r\n [value]=\"property.name\"\r\n >\r\n {{ property.name }}\r\n </option>\r\n </select>\r\n</div>\r\n" }]
1163
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: CanvasProviderService }], propDecorators: { valueSet: [{
1179
+ args: [{ selector: 'daga-property-settings', imports: [FormsModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\r\n class=\"daga-dropbar\"\r\n [class]=\"'daga-index-' + 0 + ' daga-depth-' + depth\"\r\n></div>\r\n@for (property of valueSet?.displayedProperties || []; track property; let i = $index) {\r\n <div\r\n class=\"daga-property-and-dropbar\"\r\n [class]=\"getStyleClassName(property.name) + ' daga-depth-' + depth\"\r\n >\r\n <div\r\n class=\"daga-property\"\r\n [class]=\"getStyleClassName(property.name) + ' daga-depth-' + depth\"\r\n >\r\n <div class=\"daga-property-name\">\r\n <span>{{ property.name }}</span>\r\n <div class=\"daga-buttons\">\r\n <button class=\"daga-property-button daga-move-button\">\r\n <div class=\"daga-icon daga-move-icon\"></div>\r\n </button>\r\n <button\r\n class=\"daga-property-button daga-hide-button\"\r\n (click)=\"hideProperty(property.name)\"\r\n >\r\n <div class=\"daga-icon daga-hide-icon\"></div>\r\n </button>\r\n </div>\r\n </div>\r\n @if (property.type !== Type.Object) {\r\n <div class=\"daga-property-value\">\r\n {{ asString(valueSet?.getValue(property.name)) }}\r\n </div>\r\n }\r\n @if (property.type === Type.Object) {\r\n <div>\r\n <daga-property-settings\r\n [valueSet]=\"valueSet?.getSubValueSet(property.name)\"\r\n [depth]=\"depth + 1\"\r\n ></daga-property-settings>\r\n </div>\r\n }\r\n </div>\r\n <div\r\n class=\"daga-dropbar\"\r\n [class]=\"'daga-index-' + (i + 1) + ' daga-depth-' + depth\"\r\n ></div>\r\n </div>\r\n}\r\n@if (valueSet && valueSet.hiddenProperties.length > 0) {\r\n <div\r\n class=\"daga-property\"\r\n >\r\n <p class=\"daga-property-name\">Add property:</p>\r\n <select (change)=\"displayProperty($event)\">\r\n <option value=\"\">Select a property</option>\r\n @for (property of valueSet?.hiddenProperties || []; track property) {\r\n <option\r\n [value]=\"property.name\"\r\n >\r\n {{ property.name }}\r\n </option>\r\n }\r\n </select>\r\n </div>\r\n}\r\n" }]
1180
+ }], propDecorators: { valueSet: [{
1164
1181
  type: Input
1165
1182
  }], depth: [{
1166
1183
  type: Input
@@ -1343,12 +1360,12 @@ class AutocompleteComponent {
1343
1360
  this.valueChange.emit(option.key);
1344
1361
  }
1345
1362
  }
1346
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: AutocompleteComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1347
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.5", type: AutocompleteComponent, isStandalone: true, selector: "daga-autocomplete", inputs: { value: "value", valueInput: "valueInput", options: "options", disabled: "disabled" }, outputs: { valueChange: "valueChange" }, viewQueries: [{ propertyName: "mainElement", first: true, predicate: ["main"], descendants: true, static: true }], ngImport: i0, template: "<div\r\n #main\r\n class=\"daga-autocomplete\"\r\n [class]=\"showOptions ? 'daga-showing-options' : ''\"\r\n (blur)=\"closeOptions()\"\r\n>\r\n <div class=\"daga-autocomplete-input\">\r\n <input\r\n [(ngModel)]=\"valueInput\"\r\n [disabled]=\"disabled\"\r\n (keyup)=\"onKeyUp($event)\"\r\n (focus)=\"openOptions()\"\r\n (blur)=\"onLostFocus()\"\r\n />\r\n <button\r\n *ngIf=\"valueInput !== ''\"\r\n class=\"daga-clear\"\r\n (click)=\"clearInput()\"\r\n ></button>\r\n </div>\r\n <div class=\"daga-autocomplete-options\">\r\n <ul class=\"daga-autocomplete-option-list\">\r\n <li\r\n *ngIf=\"(currentOptions?.length || 0) === 0\"\r\n class=\"daga-autocomplete-option no-options\"\r\n >\r\n (No options)\r\n </li>\r\n <li\r\n *ngFor=\"let option of currentOptions; let index = index\"\r\n class=\"daga-autocomplete-option\"\r\n [class]=\"index === focusIndex ? 'daga-focused' : ''\"\r\n (mousemove)=\"focusOnOption(index)\"\r\n (click)=\"complete(option)\"\r\n >\r\n <span>{{ currentLabelStarts[index] }}</span>\r\n <span class=\"daga-match\">{{ currentLabelMatches[index] }}</span>\r\n <span>{{ currentLabelEnds[index] }}</span>\r\n </li>\r\n </ul>\r\n </div>\r\n</div>\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1363
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AutocompleteComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1364
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.3", type: AutocompleteComponent, isStandalone: true, selector: "daga-autocomplete", inputs: { value: "value", valueInput: "valueInput", options: "options", disabled: "disabled" }, outputs: { valueChange: "valueChange" }, viewQueries: [{ propertyName: "mainElement", first: true, predicate: ["main"], descendants: true, static: true }], ngImport: i0, template: "<div\r\n #main\r\n class=\"daga-autocomplete\"\r\n [class]=\"showOptions ? 'daga-showing-options' : ''\"\r\n (blur)=\"closeOptions()\"\r\n >\r\n <div class=\"daga-autocomplete-input\">\r\n <input\r\n [(ngModel)]=\"valueInput\"\r\n [disabled]=\"disabled\"\r\n (keyup)=\"onKeyUp($event)\"\r\n (focus)=\"openOptions()\"\r\n (blur)=\"onLostFocus()\"\r\n />\r\n @if (valueInput !== '') {\r\n <button\r\n class=\"daga-clear\"\r\n (click)=\"clearInput()\"\r\n ></button>\r\n }\r\n </div>\r\n <div class=\"daga-autocomplete-options\">\r\n <ul class=\"daga-autocomplete-option-list\">\r\n @if ((currentOptions?.length || 0) === 0) {\r\n <li\r\n class=\"daga-autocomplete-option no-options\"\r\n >\r\n (No options)\r\n </li>\r\n }\r\n @for (option of currentOptions; track option; let index = $index) {\r\n <li\r\n class=\"daga-autocomplete-option\"\r\n [class]=\"index === focusIndex ? 'daga-focused' : ''\"\r\n (mousemove)=\"focusOnOption(index)\"\r\n (click)=\"complete(option)\"\r\n >\r\n <span>{{ currentLabelStarts[index] }}</span>\r\n <span class=\"daga-match\">{{ currentLabelMatches[index] }}</span>\r\n <span>{{ currentLabelEnds[index] }}</span>\r\n </li>\r\n }\r\n </ul>\r\n </div>\r\n </div>\r\n", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1348
1365
  }
1349
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: AutocompleteComponent, decorators: [{
1366
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: AutocompleteComponent, decorators: [{
1350
1367
  type: Component,
1351
- args: [{ selector: 'daga-autocomplete', imports: [CommonModule, FormsModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\r\n #main\r\n class=\"daga-autocomplete\"\r\n [class]=\"showOptions ? 'daga-showing-options' : ''\"\r\n (blur)=\"closeOptions()\"\r\n>\r\n <div class=\"daga-autocomplete-input\">\r\n <input\r\n [(ngModel)]=\"valueInput\"\r\n [disabled]=\"disabled\"\r\n (keyup)=\"onKeyUp($event)\"\r\n (focus)=\"openOptions()\"\r\n (blur)=\"onLostFocus()\"\r\n />\r\n <button\r\n *ngIf=\"valueInput !== ''\"\r\n class=\"daga-clear\"\r\n (click)=\"clearInput()\"\r\n ></button>\r\n </div>\r\n <div class=\"daga-autocomplete-options\">\r\n <ul class=\"daga-autocomplete-option-list\">\r\n <li\r\n *ngIf=\"(currentOptions?.length || 0) === 0\"\r\n class=\"daga-autocomplete-option no-options\"\r\n >\r\n (No options)\r\n </li>\r\n <li\r\n *ngFor=\"let option of currentOptions; let index = index\"\r\n class=\"daga-autocomplete-option\"\r\n [class]=\"index === focusIndex ? 'daga-focused' : ''\"\r\n (mousemove)=\"focusOnOption(index)\"\r\n (click)=\"complete(option)\"\r\n >\r\n <span>{{ currentLabelStarts[index] }}</span>\r\n <span class=\"daga-match\">{{ currentLabelMatches[index] }}</span>\r\n <span>{{ currentLabelEnds[index] }}</span>\r\n </li>\r\n </ul>\r\n </div>\r\n</div>\r\n" }]
1368
+ args: [{ selector: 'daga-autocomplete', imports: [FormsModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\r\n #main\r\n class=\"daga-autocomplete\"\r\n [class]=\"showOptions ? 'daga-showing-options' : ''\"\r\n (blur)=\"closeOptions()\"\r\n >\r\n <div class=\"daga-autocomplete-input\">\r\n <input\r\n [(ngModel)]=\"valueInput\"\r\n [disabled]=\"disabled\"\r\n (keyup)=\"onKeyUp($event)\"\r\n (focus)=\"openOptions()\"\r\n (blur)=\"onLostFocus()\"\r\n />\r\n @if (valueInput !== '') {\r\n <button\r\n class=\"daga-clear\"\r\n (click)=\"clearInput()\"\r\n ></button>\r\n }\r\n </div>\r\n <div class=\"daga-autocomplete-options\">\r\n <ul class=\"daga-autocomplete-option-list\">\r\n @if ((currentOptions?.length || 0) === 0) {\r\n <li\r\n class=\"daga-autocomplete-option no-options\"\r\n >\r\n (No options)\r\n </li>\r\n }\r\n @for (option of currentOptions; track option; let index = $index) {\r\n <li\r\n class=\"daga-autocomplete-option\"\r\n [class]=\"index === focusIndex ? 'daga-focused' : ''\"\r\n (mousemove)=\"focusOnOption(index)\"\r\n (click)=\"complete(option)\"\r\n >\r\n <span>{{ currentLabelStarts[index] }}</span>\r\n <span class=\"daga-match\">{{ currentLabelMatches[index] }}</span>\r\n <span>{{ currentLabelEnds[index] }}</span>\r\n </li>\r\n }\r\n </ul>\r\n </div>\r\n </div>\r\n" }]
1352
1369
  }], propDecorators: { mainElement: [{
1353
1370
  type: ViewChild,
1354
1371
  args: ['main', { static: true }]
@@ -1376,6 +1393,18 @@ const normalizeString = (a) => (a || '')
1376
1393
  * @see ValueSet
1377
1394
  */
1378
1395
  class OptionListEditorComponent {
1396
+ constructor() {
1397
+ this.#cdr = inject(ChangeDetectorRef);
1398
+ this._value = [];
1399
+ this.labelsOfValue = [];
1400
+ this.options = [];
1401
+ this.valueInput = undefined;
1402
+ this.allowRepeats = true;
1403
+ this.optionsNotPresentInValue = [];
1404
+ this.disabled = false;
1405
+ this.valueChange = new EventEmitter();
1406
+ }
1407
+ #cdr;
1379
1408
  set value(value) {
1380
1409
  if (value === this._value) {
1381
1410
  return;
@@ -1394,17 +1423,6 @@ class OptionListEditorComponent {
1394
1423
  get value() {
1395
1424
  return this._value;
1396
1425
  }
1397
- constructor(cdr) {
1398
- this.cdr = cdr;
1399
- this._value = [];
1400
- this.labelsOfValue = [];
1401
- this.options = [];
1402
- this.valueInput = undefined;
1403
- this.allowRepeats = true;
1404
- this.optionsNotPresentInValue = [];
1405
- this.disabled = false;
1406
- this.valueChange = new EventEmitter();
1407
- }
1408
1426
  getLabelOfValue(value) {
1409
1427
  for (const option of this.options) {
1410
1428
  if (option.key === value) {
@@ -1427,7 +1445,7 @@ class OptionListEditorComponent {
1427
1445
  this.labelsOfValue.splice(index, 1);
1428
1446
  this.valueChange.emit(this._value);
1429
1447
  this.updateOptionsNotPresentInValue();
1430
- this.cdr.detectChanges();
1448
+ this.#cdr.detectChanges();
1431
1449
  }
1432
1450
  }
1433
1451
  addToValue() {
@@ -1438,7 +1456,7 @@ class OptionListEditorComponent {
1438
1456
  this.valueChange.emit(this._value);
1439
1457
  this.clearInput();
1440
1458
  this.updateOptionsNotPresentInValue();
1441
- this.cdr.detectChanges();
1459
+ this.#cdr.detectChanges();
1442
1460
  }
1443
1461
  }
1444
1462
  clearInput() {
@@ -1460,13 +1478,13 @@ class OptionListEditorComponent {
1460
1478
  this.addToValue();
1461
1479
  }
1462
1480
  }
1463
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: OptionListEditorComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
1464
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.5", type: OptionListEditorComponent, isStandalone: true, selector: "daga-option-list-editor", inputs: { value: "value", options: "options", valueInput: "valueInput", allowRepeats: "allowRepeats", optionsNotPresentInValue: "optionsNotPresentInValue", disabled: "disabled" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<div\r\n *ngFor=\"let item of value; let index = index\"\r\n class=\"daga-value-item-element\"\r\n>\r\n <span class=\"daga-input\">{{ labelsOfValue[index] }}</span>\r\n <button\r\n *ngIf=\"!disabled\"\r\n class=\"daga-property-button\"\r\n (click)=\"removeFromValue(index)\"\r\n >\r\n <div class=\"daga-icon daga-close-icon\"></div>\r\n </button>\r\n</div>\r\n<div *ngIf=\"!disabled\" class=\"daga-value-item-input\">\r\n <div class=\"daga-input daga-relatively-positioned\">\r\n <daga-autocomplete\r\n [disabled]=\"disabled\"\r\n [options]=\"allowRepeats ? options || [] : optionsNotPresentInValue || []\"\r\n [(value)]=\"valueInput\"\r\n />\r\n </div>\r\n <button class=\"daga-property-button\" (click)=\"addToValue()\">\r\n <div class=\"daga-icon daga-add-icon\"></div>\r\n </button>\r\n</div>\r\n", dependencies: [{ kind: "component", type: AutocompleteComponent, selector: "daga-autocomplete", inputs: ["value", "valueInput", "options", "disabled"], outputs: ["valueChange"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1481
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: OptionListEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1482
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.3", type: OptionListEditorComponent, isStandalone: true, selector: "daga-option-list-editor", inputs: { value: "value", options: "options", valueInput: "valueInput", allowRepeats: "allowRepeats", optionsNotPresentInValue: "optionsNotPresentInValue", disabled: "disabled" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "@for (item of value; track item; let index = $index) {\r\n <div\r\n class=\"daga-value-item-element\"\r\n >\r\n <span class=\"daga-input\">{{ labelsOfValue[index] }}</span>\r\n @if (!disabled) {\r\n <button\r\n class=\"daga-property-button\"\r\n (click)=\"removeFromValue(index)\"\r\n >\r\n <div class=\"daga-icon daga-close-icon\"></div>\r\n </button>\r\n }\r\n </div>\r\n}\r\n@if (!disabled) {\r\n <div class=\"daga-value-item-input\">\r\n <div class=\"daga-input daga-relatively-positioned\">\r\n <daga-autocomplete\r\n [disabled]=\"disabled\"\r\n [options]=\"allowRepeats ? options || [] : optionsNotPresentInValue || []\"\r\n [(value)]=\"valueInput\"\r\n />\r\n </div>\r\n <button class=\"daga-property-button\" (click)=\"addToValue()\">\r\n <div class=\"daga-icon daga-add-icon\"></div>\r\n </button>\r\n </div>\r\n }\r\n", dependencies: [{ kind: "component", type: AutocompleteComponent, selector: "daga-autocomplete", inputs: ["value", "valueInput", "options", "disabled"], outputs: ["valueChange"] }, { kind: "ngmodule", type: FormsModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1465
1483
  }
1466
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: OptionListEditorComponent, decorators: [{
1484
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: OptionListEditorComponent, decorators: [{
1467
1485
  type: Component,
1468
- args: [{ selector: 'daga-option-list-editor', imports: [AutocompleteComponent, CommonModule, FormsModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\r\n *ngFor=\"let item of value; let index = index\"\r\n class=\"daga-value-item-element\"\r\n>\r\n <span class=\"daga-input\">{{ labelsOfValue[index] }}</span>\r\n <button\r\n *ngIf=\"!disabled\"\r\n class=\"daga-property-button\"\r\n (click)=\"removeFromValue(index)\"\r\n >\r\n <div class=\"daga-icon daga-close-icon\"></div>\r\n </button>\r\n</div>\r\n<div *ngIf=\"!disabled\" class=\"daga-value-item-input\">\r\n <div class=\"daga-input daga-relatively-positioned\">\r\n <daga-autocomplete\r\n [disabled]=\"disabled\"\r\n [options]=\"allowRepeats ? options || [] : optionsNotPresentInValue || []\"\r\n [(value)]=\"valueInput\"\r\n />\r\n </div>\r\n <button class=\"daga-property-button\" (click)=\"addToValue()\">\r\n <div class=\"daga-icon daga-add-icon\"></div>\r\n </button>\r\n</div>\r\n" }]
1469
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { value: [{
1486
+ args: [{ selector: 'daga-option-list-editor', imports: [AutocompleteComponent, FormsModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "@for (item of value; track item; let index = $index) {\r\n <div\r\n class=\"daga-value-item-element\"\r\n >\r\n <span class=\"daga-input\">{{ labelsOfValue[index] }}</span>\r\n @if (!disabled) {\r\n <button\r\n class=\"daga-property-button\"\r\n (click)=\"removeFromValue(index)\"\r\n >\r\n <div class=\"daga-icon daga-close-icon\"></div>\r\n </button>\r\n }\r\n </div>\r\n}\r\n@if (!disabled) {\r\n <div class=\"daga-value-item-input\">\r\n <div class=\"daga-input daga-relatively-positioned\">\r\n <daga-autocomplete\r\n [disabled]=\"disabled\"\r\n [options]=\"allowRepeats ? options || [] : optionsNotPresentInValue || []\"\r\n [(value)]=\"valueInput\"\r\n />\r\n </div>\r\n <button class=\"daga-property-button\" (click)=\"addToValue()\">\r\n <div class=\"daga-icon daga-add-icon\"></div>\r\n </button>\r\n </div>\r\n }\r\n" }]
1487
+ }], propDecorators: { value: [{
1470
1488
  type: Input
1471
1489
  }], options: [{
1472
1490
  type: Input
@@ -1490,6 +1508,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
1490
1508
  * @see ValueSet
1491
1509
  */
1492
1510
  class TextListEditorComponent {
1511
+ constructor() {
1512
+ this.#cdr = inject(ChangeDetectorRef);
1513
+ this._value = [];
1514
+ this.valueInput = '';
1515
+ this.allowRepeats = true;
1516
+ this.disabled = false;
1517
+ this.valueChange = new EventEmitter();
1518
+ }
1519
+ #cdr;
1493
1520
  set value(value) {
1494
1521
  if (value === this._value) {
1495
1522
  return;
@@ -1503,14 +1530,6 @@ class TextListEditorComponent {
1503
1530
  get value() {
1504
1531
  return this._value;
1505
1532
  }
1506
- constructor(cdr) {
1507
- this.cdr = cdr;
1508
- this._value = [];
1509
- this.valueInput = '';
1510
- this.allowRepeats = true;
1511
- this.disabled = false;
1512
- this.valueChange = new EventEmitter();
1513
- }
1514
1533
  getValueFromEvent(event) {
1515
1534
  return event.target.value;
1516
1535
  }
@@ -1526,7 +1545,7 @@ class TextListEditorComponent {
1526
1545
  if (this._value.length > index) {
1527
1546
  this._value.splice(index, 1);
1528
1547
  this.valueChange.emit(this._value);
1529
- this.cdr.detectChanges();
1548
+ this.#cdr.detectChanges();
1530
1549
  }
1531
1550
  }
1532
1551
  editFromValue(item, index) {
@@ -1534,7 +1553,7 @@ class TextListEditorComponent {
1534
1553
  if (this._value.length > index && item !== '') {
1535
1554
  this._value.splice(index, 1, item);
1536
1555
  this.valueChange.emit(this._value);
1537
- this.cdr.detectChanges();
1556
+ this.#cdr.detectChanges();
1538
1557
  }
1539
1558
  }
1540
1559
  addToValue() {
@@ -1544,7 +1563,7 @@ class TextListEditorComponent {
1544
1563
  this._value.push(valueInput);
1545
1564
  this.valueChange.emit(this._value);
1546
1565
  this.clearInput();
1547
- this.cdr.detectChanges();
1566
+ this.#cdr.detectChanges();
1548
1567
  }
1549
1568
  }
1550
1569
  clearInput() {
@@ -1555,13 +1574,13 @@ class TextListEditorComponent {
1555
1574
  this.addToValue();
1556
1575
  }
1557
1576
  }
1558
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: TextListEditorComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
1559
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.5", type: TextListEditorComponent, isStandalone: true, selector: "daga-text-list-editor", inputs: { value: "value", valueInput: "valueInput", allowRepeats: "allowRepeats", disabled: "disabled" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<div\r\n *ngFor=\"let item of value; let index = index\"\r\n class=\"daga-value-item-element\"\r\n>\r\n <input\r\n class=\"daga-input\"\r\n type=\"text\"\r\n [disabled]=\"disabled\"\r\n [value]=\"item\"\r\n (focusout)=\"editFromValue(getValueFromEvent($event), index)\"\r\n />\r\n <button\r\n *ngIf=\"!disabled\"\r\n class=\"daga-property-button\"\r\n (click)=\"removeFromValue(index)\"\r\n >\r\n <div class=\"daga-icon daga-close-icon\"></div>\r\n </button>\r\n</div>\r\n<div *ngIf=\"!disabled\" class=\"daga-value-item-input\">\r\n <div class=\"daga-input daga-relatively-positioned\">\r\n <input type=\"text\" (keyup)=\"onKeyUp($event)\" [(ngModel)]=\"valueInput\" />\r\n <button\r\n *ngIf=\"valueInput !== ''\"\r\n class=\"daga-clear\"\r\n (click)=\"clearInput()\"\r\n ></button>\r\n </div>\r\n <button class=\"daga-property-button\" (click)=\"addToValue()\">\r\n <div class=\"daga-icon daga-add-icon\"></div>\r\n </button>\r\n</div>\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1577
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: TextListEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1578
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.3", type: TextListEditorComponent, isStandalone: true, selector: "daga-text-list-editor", inputs: { value: "value", valueInput: "valueInput", allowRepeats: "allowRepeats", disabled: "disabled" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "@for (item of value; track item; let index = $index) {\r\n <div\r\n class=\"daga-value-item-element\"\r\n >\r\n <input\r\n class=\"daga-input\"\r\n type=\"text\"\r\n [disabled]=\"disabled\"\r\n [value]=\"item\"\r\n (focusout)=\"editFromValue(getValueFromEvent($event), index)\"\r\n />\r\n @if (!disabled) {\r\n <button\r\n class=\"daga-property-button\"\r\n (click)=\"removeFromValue(index)\"\r\n >\r\n <div class=\"daga-icon daga-close-icon\"></div>\r\n </button>\r\n }\r\n </div>\r\n }\r\n @if (!disabled) {\r\n <div class=\"daga-value-item-input\">\r\n <div class=\"daga-input daga-relatively-positioned\">\r\n <input type=\"text\" (keyup)=\"onKeyUp($event)\" [(ngModel)]=\"valueInput\" />\r\n @if (valueInput !== '') {\r\n <button\r\n class=\"daga-clear\"\r\n (click)=\"clearInput()\"\r\n ></button>\r\n }\r\n </div>\r\n <button class=\"daga-property-button\" (click)=\"addToValue()\">\r\n <div class=\"daga-icon daga-add-icon\"></div>\r\n </button>\r\n </div>\r\n }\r\n", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1560
1579
  }
1561
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: TextListEditorComponent, decorators: [{
1580
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: TextListEditorComponent, decorators: [{
1562
1581
  type: Component,
1563
- args: [{ selector: 'daga-text-list-editor', imports: [CommonModule, FormsModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\r\n *ngFor=\"let item of value; let index = index\"\r\n class=\"daga-value-item-element\"\r\n>\r\n <input\r\n class=\"daga-input\"\r\n type=\"text\"\r\n [disabled]=\"disabled\"\r\n [value]=\"item\"\r\n (focusout)=\"editFromValue(getValueFromEvent($event), index)\"\r\n />\r\n <button\r\n *ngIf=\"!disabled\"\r\n class=\"daga-property-button\"\r\n (click)=\"removeFromValue(index)\"\r\n >\r\n <div class=\"daga-icon daga-close-icon\"></div>\r\n </button>\r\n</div>\r\n<div *ngIf=\"!disabled\" class=\"daga-value-item-input\">\r\n <div class=\"daga-input daga-relatively-positioned\">\r\n <input type=\"text\" (keyup)=\"onKeyUp($event)\" [(ngModel)]=\"valueInput\" />\r\n <button\r\n *ngIf=\"valueInput !== ''\"\r\n class=\"daga-clear\"\r\n (click)=\"clearInput()\"\r\n ></button>\r\n </div>\r\n <button class=\"daga-property-button\" (click)=\"addToValue()\">\r\n <div class=\"daga-icon daga-add-icon\"></div>\r\n </button>\r\n</div>\r\n" }]
1564
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { value: [{
1582
+ args: [{ selector: 'daga-text-list-editor', imports: [FormsModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "@for (item of value; track item; let index = $index) {\r\n <div\r\n class=\"daga-value-item-element\"\r\n >\r\n <input\r\n class=\"daga-input\"\r\n type=\"text\"\r\n [disabled]=\"disabled\"\r\n [value]=\"item\"\r\n (focusout)=\"editFromValue(getValueFromEvent($event), index)\"\r\n />\r\n @if (!disabled) {\r\n <button\r\n class=\"daga-property-button\"\r\n (click)=\"removeFromValue(index)\"\r\n >\r\n <div class=\"daga-icon daga-close-icon\"></div>\r\n </button>\r\n }\r\n </div>\r\n }\r\n @if (!disabled) {\r\n <div class=\"daga-value-item-input\">\r\n <div class=\"daga-input daga-relatively-positioned\">\r\n <input type=\"text\" (keyup)=\"onKeyUp($event)\" [(ngModel)]=\"valueInput\" />\r\n @if (valueInput !== '') {\r\n <button\r\n class=\"daga-clear\"\r\n (click)=\"clearInput()\"\r\n ></button>\r\n }\r\n </div>\r\n <button class=\"daga-property-button\" (click)=\"addToValue()\">\r\n <div class=\"daga-icon daga-add-icon\"></div>\r\n </button>\r\n </div>\r\n }\r\n" }]
1583
+ }], propDecorators: { value: [{
1565
1584
  type: Input
1566
1585
  }], valueInput: [{
1567
1586
  type: Input
@@ -1581,6 +1600,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
1581
1600
  * @see ValueSet
1582
1601
  */
1583
1602
  class TextMapEditorComponent {
1603
+ constructor() {
1604
+ this.#cdr = inject(ChangeDetectorRef);
1605
+ this._value = {};
1606
+ this.keyInput = '';
1607
+ this.valueInput = '';
1608
+ this.disabled = false;
1609
+ this.valueChange = new EventEmitter();
1610
+ }
1611
+ #cdr;
1584
1612
  set value(value) {
1585
1613
  if (value === this._value) {
1586
1614
  return;
@@ -1594,34 +1622,26 @@ class TextMapEditorComponent {
1594
1622
  get value() {
1595
1623
  return this._value;
1596
1624
  }
1597
- constructor(cdr) {
1598
- this.cdr = cdr;
1599
- this._value = {};
1600
- this.keyInput = '';
1601
- this.valueInput = '';
1602
- this.disabled = false;
1603
- this.valueChange = new EventEmitter();
1604
- }
1605
1625
  getValueFromEvent(event) {
1606
1626
  return event.target.value;
1607
1627
  }
1608
1628
  removeFromValue(key) {
1609
1629
  delete this._value[key];
1610
- this.cdr.detectChanges();
1630
+ this.#cdr.detectChanges();
1611
1631
  }
1612
1632
  editKey(oldKey, newKey) {
1613
1633
  newKey = newKey.trim();
1614
1634
  if (oldKey !== newKey && newKey !== '') {
1615
1635
  this._value[newKey] = this._value[oldKey];
1616
1636
  delete this._value[oldKey];
1617
- this.cdr.detectChanges();
1637
+ this.#cdr.detectChanges();
1618
1638
  }
1619
1639
  }
1620
1640
  editValue(key, value) {
1621
1641
  value = value.trim();
1622
1642
  if (value !== '') {
1623
1643
  this._value[key] = value;
1624
- this.cdr.detectChanges();
1644
+ this.#cdr.detectChanges();
1625
1645
  }
1626
1646
  }
1627
1647
  addToValue() {
@@ -1632,7 +1652,7 @@ class TextMapEditorComponent {
1632
1652
  this.valueChange.emit(this._value);
1633
1653
  this.clearKeyInput();
1634
1654
  this.clearValueInput();
1635
- this.cdr.detectChanges();
1655
+ this.#cdr.detectChanges();
1636
1656
  }
1637
1657
  }
1638
1658
  clearKeyInput() {
@@ -1646,13 +1666,13 @@ class TextMapEditorComponent {
1646
1666
  this.addToValue();
1647
1667
  }
1648
1668
  }
1649
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: TextMapEditorComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
1650
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.5", type: TextMapEditorComponent, isStandalone: true, selector: "daga-text-map-editor", inputs: { value: "value", keyInput: "keyInput", valueInput: "valueInput", disabled: "disabled" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<div *ngFor=\"let item of value | keyvalue\" class=\"daga-value-item-element\">\r\n <input\r\n class=\"daga-input\"\r\n type=\"text\"\r\n [disabled]=\"disabled\"\r\n [value]=\"item.key\"\r\n (focusout)=\"editKey(item.key, getValueFromEvent($event))\"\r\n />\r\n <input\r\n class=\"daga-input\"\r\n type=\"text\"\r\n [disabled]=\"disabled\"\r\n [value]=\"item.value\"\r\n (focusout)=\"editValue(item.key, getValueFromEvent($event))\"\r\n />\r\n <button\r\n *ngIf=\"!disabled\"\r\n class=\"daga-property-button\"\r\n (click)=\"removeFromValue(item.key)\"\r\n >\r\n <div class=\"daga-icon daga-close-icon\"></div>\r\n </button>\r\n</div>\r\n<div *ngIf=\"!disabled\" class=\"daga-value-item-input\">\r\n <div class=\"daga-input daga-relatively-positioned\">\r\n <input type=\"text\" (keyup)=\"onKeyUp($event)\" [(ngModel)]=\"keyInput\" />\r\n <button\r\n *ngIf=\"keyInput !== ''\"\r\n class=\"daga-clear\"\r\n (click)=\"clearKeyInput()\"\r\n ></button>\r\n </div>\r\n <div class=\"daga-input daga-relatively-positioned\">\r\n <input type=\"text\" (keyup)=\"onKeyUp($event)\" [(ngModel)]=\"valueInput\" />\r\n <button\r\n *ngIf=\"valueInput !== ''\"\r\n class=\"daga-clear\"\r\n (click)=\"clearValueInput()\"\r\n ></button>\r\n </div>\r\n <button class=\"daga-property-button\" (click)=\"addToValue()\">\r\n <div class=\"daga-icon daga-add-icon\"></div>\r\n </button>\r\n</div>\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.KeyValuePipe, name: "keyvalue" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1669
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: TextMapEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1670
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.3", type: TextMapEditorComponent, isStandalone: true, selector: "daga-text-map-editor", inputs: { value: "value", keyInput: "keyInput", valueInput: "valueInput", disabled: "disabled" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "@for (item of value | keyvalue; track item) {\r\n <div class=\"daga-value-item-element\">\r\n <input\r\n class=\"daga-input\"\r\n type=\"text\"\r\n [disabled]=\"disabled\"\r\n [value]=\"item.key\"\r\n (focusout)=\"editKey(item.key, getValueFromEvent($event))\"\r\n />\r\n <input\r\n class=\"daga-input\"\r\n type=\"text\"\r\n [disabled]=\"disabled\"\r\n [value]=\"item.value\"\r\n (focusout)=\"editValue(item.key, getValueFromEvent($event))\"\r\n />\r\n @if (!disabled) {\r\n <button\r\n class=\"daga-property-button\"\r\n (click)=\"removeFromValue(item.key)\"\r\n >\r\n <div class=\"daga-icon daga-close-icon\"></div>\r\n </button>\r\n }\r\n </div>\r\n }\r\n @if (!disabled) {\r\n <div class=\"daga-value-item-input\">\r\n <div class=\"daga-input daga-relatively-positioned\">\r\n <input type=\"text\" (keyup)=\"onKeyUp($event)\" [(ngModel)]=\"keyInput\" />\r\n @if (keyInput !== '') {\r\n <button\r\n class=\"daga-clear\"\r\n (click)=\"clearKeyInput()\"\r\n ></button>\r\n }\r\n </div>\r\n <div class=\"daga-input daga-relatively-positioned\">\r\n <input type=\"text\" (keyup)=\"onKeyUp($event)\" [(ngModel)]=\"valueInput\" />\r\n @if (valueInput !== '') {\r\n <button\r\n class=\"daga-clear\"\r\n (click)=\"clearValueInput()\"\r\n ></button>\r\n }\r\n </div>\r\n <button class=\"daga-property-button\" (click)=\"addToValue()\">\r\n <div class=\"daga-icon daga-add-icon\"></div>\r\n </button>\r\n </div>\r\n }\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: i2.KeyValuePipe, name: "keyvalue" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1651
1671
  }
1652
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: TextMapEditorComponent, decorators: [{
1672
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: TextMapEditorComponent, decorators: [{
1653
1673
  type: Component,
1654
- args: [{ selector: 'daga-text-map-editor', imports: [CommonModule, FormsModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div *ngFor=\"let item of value | keyvalue\" class=\"daga-value-item-element\">\r\n <input\r\n class=\"daga-input\"\r\n type=\"text\"\r\n [disabled]=\"disabled\"\r\n [value]=\"item.key\"\r\n (focusout)=\"editKey(item.key, getValueFromEvent($event))\"\r\n />\r\n <input\r\n class=\"daga-input\"\r\n type=\"text\"\r\n [disabled]=\"disabled\"\r\n [value]=\"item.value\"\r\n (focusout)=\"editValue(item.key, getValueFromEvent($event))\"\r\n />\r\n <button\r\n *ngIf=\"!disabled\"\r\n class=\"daga-property-button\"\r\n (click)=\"removeFromValue(item.key)\"\r\n >\r\n <div class=\"daga-icon daga-close-icon\"></div>\r\n </button>\r\n</div>\r\n<div *ngIf=\"!disabled\" class=\"daga-value-item-input\">\r\n <div class=\"daga-input daga-relatively-positioned\">\r\n <input type=\"text\" (keyup)=\"onKeyUp($event)\" [(ngModel)]=\"keyInput\" />\r\n <button\r\n *ngIf=\"keyInput !== ''\"\r\n class=\"daga-clear\"\r\n (click)=\"clearKeyInput()\"\r\n ></button>\r\n </div>\r\n <div class=\"daga-input daga-relatively-positioned\">\r\n <input type=\"text\" (keyup)=\"onKeyUp($event)\" [(ngModel)]=\"valueInput\" />\r\n <button\r\n *ngIf=\"valueInput !== ''\"\r\n class=\"daga-clear\"\r\n (click)=\"clearValueInput()\"\r\n ></button>\r\n </div>\r\n <button class=\"daga-property-button\" (click)=\"addToValue()\">\r\n <div class=\"daga-icon daga-add-icon\"></div>\r\n </button>\r\n</div>\r\n" }]
1655
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { value: [{
1674
+ args: [{ selector: 'daga-text-map-editor', imports: [CommonModule, FormsModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "@for (item of value | keyvalue; track item) {\r\n <div class=\"daga-value-item-element\">\r\n <input\r\n class=\"daga-input\"\r\n type=\"text\"\r\n [disabled]=\"disabled\"\r\n [value]=\"item.key\"\r\n (focusout)=\"editKey(item.key, getValueFromEvent($event))\"\r\n />\r\n <input\r\n class=\"daga-input\"\r\n type=\"text\"\r\n [disabled]=\"disabled\"\r\n [value]=\"item.value\"\r\n (focusout)=\"editValue(item.key, getValueFromEvent($event))\"\r\n />\r\n @if (!disabled) {\r\n <button\r\n class=\"daga-property-button\"\r\n (click)=\"removeFromValue(item.key)\"\r\n >\r\n <div class=\"daga-icon daga-close-icon\"></div>\r\n </button>\r\n }\r\n </div>\r\n }\r\n @if (!disabled) {\r\n <div class=\"daga-value-item-input\">\r\n <div class=\"daga-input daga-relatively-positioned\">\r\n <input type=\"text\" (keyup)=\"onKeyUp($event)\" [(ngModel)]=\"keyInput\" />\r\n @if (keyInput !== '') {\r\n <button\r\n class=\"daga-clear\"\r\n (click)=\"clearKeyInput()\"\r\n ></button>\r\n }\r\n </div>\r\n <div class=\"daga-input daga-relatively-positioned\">\r\n <input type=\"text\" (keyup)=\"onKeyUp($event)\" [(ngModel)]=\"valueInput\" />\r\n @if (valueInput !== '') {\r\n <button\r\n class=\"daga-clear\"\r\n (click)=\"clearValueInput()\"\r\n ></button>\r\n }\r\n </div>\r\n <button class=\"daga-property-button\" (click)=\"addToValue()\">\r\n <div class=\"daga-icon daga-add-icon\"></div>\r\n </button>\r\n </div>\r\n }\r\n" }]
1675
+ }], propDecorators: { value: [{
1656
1676
  type: Input
1657
1677
  }], keyInput: [{
1658
1678
  type: Input
@@ -1671,8 +1691,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
1671
1691
  * @see ValueSet
1672
1692
  */
1673
1693
  class ObjectEditorComponent {
1694
+ constructor() {
1695
+ this.#cdr = inject(ChangeDetectorRef);
1696
+ this.#canvasProvider = inject(CanvasProviderService);
1697
+ /** How many object-editor elements are parents of this object-editor element. @private */
1698
+ this.depth = 0;
1699
+ // Attributes for the template
1700
+ this.Type = Type;
1701
+ this.getStyleClassName = getStyleClassName;
1702
+ }
1703
+ #cdr;
1704
+ #canvasProvider;
1674
1705
  get canvas() {
1675
- return this.canvasProvider.getCanvas();
1706
+ return this.#canvasProvider.getCanvas();
1676
1707
  }
1677
1708
  get userCanEdit() {
1678
1709
  return (this.canvas.canUserPerformAction(DiagramActions.UpdateValues) &&
@@ -1685,18 +1716,9 @@ class ObjectEditorComponent {
1685
1716
  if (this._valueSet !== valueSet) {
1686
1717
  this._valueSet = valueSet;
1687
1718
  // force value change detection
1688
- this.cdr.detectChanges();
1719
+ this.#cdr.detectChanges();
1689
1720
  }
1690
1721
  }
1691
- constructor(cdr, canvasProvider) {
1692
- this.cdr = cdr;
1693
- this.canvasProvider = canvasProvider;
1694
- /** How many object-editor elements are parents of this object-editor element. @private */
1695
- this.depth = 0;
1696
- // Attributes for the template
1697
- this.Type = Type;
1698
- this.getStyleClassName = getStyleClassName;
1699
- }
1700
1722
  setValue(property, value) {
1701
1723
  if (this.valueSet === undefined) {
1702
1724
  return;
@@ -1724,20 +1746,19 @@ class ObjectEditorComponent {
1724
1746
  // with no timezone specified, the local time is assumed
1725
1747
  return new Date(string);
1726
1748
  }
1727
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ObjectEditorComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: CanvasProviderService }], target: i0.ɵɵFactoryTarget.Component }); }
1728
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.5", type: ObjectEditorComponent, isStandalone: true, selector: "daga-object-editor", inputs: { valueSet: "valueSet", depth: "depth" }, ngImport: i0, template: "<div\r\n *ngFor=\"let property of valueSet?.displayedProperties || []\"\r\n class=\"daga-property\"\r\n [class]=\"getStyleClassName(property.name) + ' daga-depth-' + depth\"\r\n>\r\n <p class=\"daga-property-name\">\r\n {{ property.name }}\r\n </p>\r\n\r\n <input\r\n *ngIf=\"property.type === Type.Text\"\r\n type=\"daga-text\"\r\n [disabled]=\"!property.editable || !userCanEdit\"\r\n [ngModel]=\"valueSet?.getValue(property.name)\"\r\n (ngModelChange)=\"setValue(property, $event)\"\r\n />\r\n <textarea\r\n *ngIf=\"property.type === Type.TextArea\"\r\n [disabled]=\"!property.editable || !userCanEdit\"\r\n [ngModel]=\"valueSet?.getValue(property.name)\"\r\n (ngModelChange)=\"setValue(property, $event)\"\r\n ></textarea>\r\n <input\r\n *ngIf=\"property.type === Type.Number\"\r\n type=\"number\"\r\n [disabled]=\"!property.editable || !userCanEdit\"\r\n [ngModel]=\"valueSet?.getValue(property.name)\"\r\n (ngModelChange)=\"setValue(property, $event)\"\r\n />\r\n <input\r\n *ngIf=\"property.type === Type.Color\"\r\n type=\"text\"\r\n pattern=\"#[0-9a-fA-F]{6}\"\r\n [disabled]=\"!property.editable || !userCanEdit\"\r\n [ngModel]=\"valueSet?.getValue(property.name)\"\r\n (ngModelChange)=\"setValue(property, $event)\"\r\n />\r\n <input\r\n *ngIf=\"property.type === Type.Datetime\"\r\n type=\"datetime-local\"\r\n [disabled]=\"!property.editable || !userCanEdit\"\r\n [ngModel]=\"dateToLocalDatetimeString(valueSet?.getValue(property.name))\"\r\n (ngModelChange)=\"setValue(property, localDatetimeStringToDate($event))\"\r\n />\r\n <input\r\n *ngIf=\"property.type === Type.Date\"\r\n type=\"date\"\r\n [disabled]=\"!property.editable || !userCanEdit\"\r\n [ngModel]=\"valueSet?.getValue(property.name)\"\r\n (ngModelChange)=\"setValue(property, $event)\"\r\n />\r\n <input\r\n *ngIf=\"property.type === Type.Time\"\r\n type=\"time\"\r\n [disabled]=\"!property.editable || !userCanEdit\"\r\n [ngModel]=\"valueSet?.getValue(property.name)\"\r\n (ngModelChange)=\"setValue(property, $event)\"\r\n />\r\n <input\r\n *ngIf=\"property.type === Type.Url\"\r\n type=\"url\"\r\n [disabled]=\"!property.editable || !userCanEdit\"\r\n [ngModel]=\"valueSet?.getValue(property.name)\"\r\n (ngModelChange)=\"setValue(property, $event)\"\r\n />\r\n <div class=\"daga-radio\" *ngIf=\"property.type === Type.Boolean\">\r\n <label\r\n class=\"daga-radio-item daga-radio-start\"\r\n [class]=\"\r\n valueSet?.getValue(property.name) === false ? 'daga-checked' : ''\r\n \"\r\n >\r\n <input\r\n type=\"radio\"\r\n [disabled]=\"!property.editable || !userCanEdit\"\r\n [name]=\"property.name\"\r\n value=\"false\"\r\n (change)=\"setValue(property, false)\"\r\n />\r\n No\r\n </label>\r\n <label\r\n class=\"daga-radio-item daga-radio-end\"\r\n [class]=\"valueSet?.getValue(property.name) === true ? 'daga-checked' : ''\"\r\n >\r\n <input\r\n type=\"radio\"\r\n [disabled]=\"!property.editable || !userCanEdit\"\r\n [name]=\"property.name\"\r\n value=\"true\"\r\n (change)=\"setValue(property, true)\"\r\n />\r\n Yes\r\n </label>\r\n </div>\r\n <div class=\"daga-relatively-positioned\" *ngIf=\"property.type === Type.Option\">\r\n <daga-autocomplete\r\n [disabled]=\"!property.editable || !userCanEdit\"\r\n [options]=\"property.options || []\"\r\n [value]=\"valueSet?.getValue(property.name)\"\r\n (valueChange)=\"setValue(property, $event)\"\r\n />\r\n </div>\r\n <daga-option-list-editor\r\n *ngIf=\"\r\n property.type === Type.OptionList || property.type === Type.OptionSet\r\n \"\r\n [disabled]=\"!property.editable || !userCanEdit\"\r\n [allowRepeats]=\"property.type === Type.OptionList\"\r\n [options]=\"property.options || []\"\r\n [value]=\"valueSet?.getValue(property.name)\"\r\n (valueChange)=\"setValue(property, $event)\"\r\n ></daga-option-list-editor>\r\n <daga-text-list-editor\r\n *ngIf=\"property.type === Type.TextList || property.type === Type.TextSet\"\r\n [disabled]=\"!property.editable || !userCanEdit\"\r\n [allowRepeats]=\"property.type === Type.TextList\"\r\n [value]=\"valueSet?.getValue(property.name)\"\r\n (valueChange)=\"setValue(property, $event)\"\r\n ></daga-text-list-editor>\r\n <daga-text-map-editor\r\n *ngIf=\"property.type === Type.TextMap\"\r\n [disabled]=\"!property.editable || !userCanEdit\"\r\n [value]=\"valueSet?.getValue(property.name)\"\r\n (valueChange)=\"setValue(property, $event)\"\r\n ></daga-text-map-editor>\r\n <div *ngIf=\"property.type === Type.Object\" class=\"daga-left-bar\">\r\n <daga-object-editor\r\n [valueSet]=\"valueSet?.getSubValueSet(property.name)\"\r\n [depth]=\"depth + 1\"\r\n ></daga-object-editor>\r\n </div>\r\n</div>\r\n", dependencies: [{ kind: "component", type: ObjectEditorComponent, selector: "daga-object-editor", inputs: ["valueSet", "depth"] }, { kind: "component", type: AutocompleteComponent, selector: "daga-autocomplete", inputs: ["value", "valueInput", "options", "disabled"], outputs: ["valueChange"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: OptionListEditorComponent, selector: "daga-option-list-editor", inputs: ["value", "options", "valueInput", "allowRepeats", "optionsNotPresentInValue", "disabled"], outputs: ["valueChange"] }, { kind: "component", type: TextListEditorComponent, selector: "daga-text-list-editor", inputs: ["value", "valueInput", "allowRepeats", "disabled"], outputs: ["valueChange"] }, { kind: "component", type: TextMapEditorComponent, selector: "daga-text-map-editor", inputs: ["value", "keyInput", "valueInput", "disabled"], outputs: ["valueChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1749
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: ObjectEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1750
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.3", type: ObjectEditorComponent, isStandalone: true, selector: "daga-object-editor", inputs: { valueSet: "valueSet", depth: "depth" }, ngImport: i0, template: "@for (property of valueSet?.displayedProperties || []; track property) {\r\n <div\r\n class=\"daga-property\"\r\n [class]=\"getStyleClassName(property.name) + ' daga-depth-' + depth\"\r\n >\r\n <p class=\"daga-property-name\">\r\n {{ property.name }}\r\n </p>\r\n @if (property.type === Type.Text) {\r\n <input\r\n type=\"daga-text\"\r\n [disabled]=\"!property.editable || !userCanEdit\"\r\n [ngModel]=\"valueSet?.getValue(property.name)\"\r\n (ngModelChange)=\"setValue(property, $event)\"\r\n />\r\n }\r\n @if (property.type === Type.TextArea) {\r\n <textarea\r\n [disabled]=\"!property.editable || !userCanEdit\"\r\n [ngModel]=\"valueSet?.getValue(property.name)\"\r\n (ngModelChange)=\"setValue(property, $event)\"\r\n ></textarea>\r\n }\r\n @if (property.type === Type.Number) {\r\n <input\r\n type=\"number\"\r\n [disabled]=\"!property.editable || !userCanEdit\"\r\n [ngModel]=\"valueSet?.getValue(property.name)\"\r\n (ngModelChange)=\"setValue(property, $event)\"\r\n />\r\n }\r\n @if (property.type === Type.Color) {\r\n <input\r\n type=\"text\"\r\n pattern=\"#[0-9a-fA-F]{6}\"\r\n [disabled]=\"!property.editable || !userCanEdit\"\r\n [ngModel]=\"valueSet?.getValue(property.name)\"\r\n (ngModelChange)=\"setValue(property, $event)\"\r\n />\r\n }\r\n @if (property.type === Type.Datetime) {\r\n <input\r\n type=\"datetime-local\"\r\n [disabled]=\"!property.editable || !userCanEdit\"\r\n [ngModel]=\"dateToLocalDatetimeString(valueSet?.getValue(property.name))\"\r\n (ngModelChange)=\"setValue(property, localDatetimeStringToDate($event))\"\r\n />\r\n }\r\n @if (property.type === Type.Date) {\r\n <input\r\n type=\"date\"\r\n [disabled]=\"!property.editable || !userCanEdit\"\r\n [ngModel]=\"valueSet?.getValue(property.name)\"\r\n (ngModelChange)=\"setValue(property, $event)\"\r\n />\r\n }\r\n @if (property.type === Type.Time) {\r\n <input\r\n type=\"time\"\r\n [disabled]=\"!property.editable || !userCanEdit\"\r\n [ngModel]=\"valueSet?.getValue(property.name)\"\r\n (ngModelChange)=\"setValue(property, $event)\"\r\n />\r\n }\r\n @if (property.type === Type.Url) {\r\n <input\r\n type=\"url\"\r\n [disabled]=\"!property.editable || !userCanEdit\"\r\n [ngModel]=\"valueSet?.getValue(property.name)\"\r\n (ngModelChange)=\"setValue(property, $event)\"\r\n />\r\n }\r\n @if (property.type === Type.Boolean) {\r\n <div class=\"daga-radio\">\r\n <label\r\n class=\"daga-radio-item daga-radio-start\"\r\n [class]=\"\r\n valueSet?.getValue(property.name) === false ? 'daga-checked' : ''\r\n \"\r\n >\r\n <input\r\n type=\"radio\"\r\n [disabled]=\"!property.editable || !userCanEdit\"\r\n [name]=\"property.name\"\r\n value=\"false\"\r\n (change)=\"setValue(property, false)\"\r\n />\r\n No\r\n </label>\r\n <label\r\n class=\"daga-radio-item daga-radio-end\"\r\n [class]=\"valueSet?.getValue(property.name) === true ? 'daga-checked' : ''\"\r\n >\r\n <input\r\n type=\"radio\"\r\n [disabled]=\"!property.editable || !userCanEdit\"\r\n [name]=\"property.name\"\r\n value=\"true\"\r\n (change)=\"setValue(property, true)\"\r\n />\r\n Yes\r\n </label>\r\n </div>\r\n }\r\n @if (property.type === Type.Option) {\r\n <div class=\"daga-relatively-positioned\">\r\n <daga-autocomplete\r\n [disabled]=\"!property.editable || !userCanEdit\"\r\n [options]=\"property.options || []\"\r\n [value]=\"valueSet?.getValue(property.name)\"\r\n (valueChange)=\"setValue(property, $event)\"\r\n />\r\n </div>\r\n }\r\n @if (\r\n property.type === Type.OptionList || property.type === Type.OptionSet\r\n ) {\r\n <daga-option-list-editor\r\n [disabled]=\"!property.editable || !userCanEdit\"\r\n [allowRepeats]=\"property.type === Type.OptionList\"\r\n [options]=\"property.options || []\"\r\n [value]=\"valueSet?.getValue(property.name)\"\r\n (valueChange)=\"setValue(property, $event)\"\r\n ></daga-option-list-editor>\r\n }\r\n @if (property.type === Type.TextList || property.type === Type.TextSet) {\r\n <daga-text-list-editor\r\n [disabled]=\"!property.editable || !userCanEdit\"\r\n [allowRepeats]=\"property.type === Type.TextList\"\r\n [value]=\"valueSet?.getValue(property.name)\"\r\n (valueChange)=\"setValue(property, $event)\"\r\n ></daga-text-list-editor>\r\n }\r\n @if (property.type === Type.TextMap) {\r\n <daga-text-map-editor\r\n [disabled]=\"!property.editable || !userCanEdit\"\r\n [value]=\"valueSet?.getValue(property.name)\"\r\n (valueChange)=\"setValue(property, $event)\"\r\n ></daga-text-map-editor>\r\n }\r\n @if (property.type === Type.Object) {\r\n <div class=\"daga-left-bar\">\r\n <daga-object-editor\r\n [valueSet]=\"valueSet?.getSubValueSet(property.name)\"\r\n [depth]=\"depth + 1\"\r\n ></daga-object-editor>\r\n </div>\r\n }\r\n </div>\r\n }\r\n", dependencies: [{ kind: "component", type: ObjectEditorComponent, selector: "daga-object-editor", inputs: ["valueSet", "depth"] }, { kind: "component", type: AutocompleteComponent, selector: "daga-autocomplete", inputs: ["value", "valueInput", "options", "disabled"], outputs: ["valueChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: OptionListEditorComponent, selector: "daga-option-list-editor", inputs: ["value", "options", "valueInput", "allowRepeats", "optionsNotPresentInValue", "disabled"], outputs: ["valueChange"] }, { kind: "component", type: TextListEditorComponent, selector: "daga-text-list-editor", inputs: ["value", "valueInput", "allowRepeats", "disabled"], outputs: ["valueChange"] }, { kind: "component", type: TextMapEditorComponent, selector: "daga-text-map-editor", inputs: ["value", "keyInput", "valueInput", "disabled"], outputs: ["valueChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1729
1751
  }
1730
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: ObjectEditorComponent, decorators: [{
1752
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: ObjectEditorComponent, decorators: [{
1731
1753
  type: Component,
1732
1754
  args: [{ selector: 'daga-object-editor', imports: [
1733
1755
  AutocompleteComponent,
1734
- CommonModule,
1735
1756
  FormsModule,
1736
1757
  OptionListEditorComponent,
1737
1758
  TextListEditorComponent,
1738
1759
  TextMapEditorComponent
1739
- ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\r\n *ngFor=\"let property of valueSet?.displayedProperties || []\"\r\n class=\"daga-property\"\r\n [class]=\"getStyleClassName(property.name) + ' daga-depth-' + depth\"\r\n>\r\n <p class=\"daga-property-name\">\r\n {{ property.name }}\r\n </p>\r\n\r\n <input\r\n *ngIf=\"property.type === Type.Text\"\r\n type=\"daga-text\"\r\n [disabled]=\"!property.editable || !userCanEdit\"\r\n [ngModel]=\"valueSet?.getValue(property.name)\"\r\n (ngModelChange)=\"setValue(property, $event)\"\r\n />\r\n <textarea\r\n *ngIf=\"property.type === Type.TextArea\"\r\n [disabled]=\"!property.editable || !userCanEdit\"\r\n [ngModel]=\"valueSet?.getValue(property.name)\"\r\n (ngModelChange)=\"setValue(property, $event)\"\r\n ></textarea>\r\n <input\r\n *ngIf=\"property.type === Type.Number\"\r\n type=\"number\"\r\n [disabled]=\"!property.editable || !userCanEdit\"\r\n [ngModel]=\"valueSet?.getValue(property.name)\"\r\n (ngModelChange)=\"setValue(property, $event)\"\r\n />\r\n <input\r\n *ngIf=\"property.type === Type.Color\"\r\n type=\"text\"\r\n pattern=\"#[0-9a-fA-F]{6}\"\r\n [disabled]=\"!property.editable || !userCanEdit\"\r\n [ngModel]=\"valueSet?.getValue(property.name)\"\r\n (ngModelChange)=\"setValue(property, $event)\"\r\n />\r\n <input\r\n *ngIf=\"property.type === Type.Datetime\"\r\n type=\"datetime-local\"\r\n [disabled]=\"!property.editable || !userCanEdit\"\r\n [ngModel]=\"dateToLocalDatetimeString(valueSet?.getValue(property.name))\"\r\n (ngModelChange)=\"setValue(property, localDatetimeStringToDate($event))\"\r\n />\r\n <input\r\n *ngIf=\"property.type === Type.Date\"\r\n type=\"date\"\r\n [disabled]=\"!property.editable || !userCanEdit\"\r\n [ngModel]=\"valueSet?.getValue(property.name)\"\r\n (ngModelChange)=\"setValue(property, $event)\"\r\n />\r\n <input\r\n *ngIf=\"property.type === Type.Time\"\r\n type=\"time\"\r\n [disabled]=\"!property.editable || !userCanEdit\"\r\n [ngModel]=\"valueSet?.getValue(property.name)\"\r\n (ngModelChange)=\"setValue(property, $event)\"\r\n />\r\n <input\r\n *ngIf=\"property.type === Type.Url\"\r\n type=\"url\"\r\n [disabled]=\"!property.editable || !userCanEdit\"\r\n [ngModel]=\"valueSet?.getValue(property.name)\"\r\n (ngModelChange)=\"setValue(property, $event)\"\r\n />\r\n <div class=\"daga-radio\" *ngIf=\"property.type === Type.Boolean\">\r\n <label\r\n class=\"daga-radio-item daga-radio-start\"\r\n [class]=\"\r\n valueSet?.getValue(property.name) === false ? 'daga-checked' : ''\r\n \"\r\n >\r\n <input\r\n type=\"radio\"\r\n [disabled]=\"!property.editable || !userCanEdit\"\r\n [name]=\"property.name\"\r\n value=\"false\"\r\n (change)=\"setValue(property, false)\"\r\n />\r\n No\r\n </label>\r\n <label\r\n class=\"daga-radio-item daga-radio-end\"\r\n [class]=\"valueSet?.getValue(property.name) === true ? 'daga-checked' : ''\"\r\n >\r\n <input\r\n type=\"radio\"\r\n [disabled]=\"!property.editable || !userCanEdit\"\r\n [name]=\"property.name\"\r\n value=\"true\"\r\n (change)=\"setValue(property, true)\"\r\n />\r\n Yes\r\n </label>\r\n </div>\r\n <div class=\"daga-relatively-positioned\" *ngIf=\"property.type === Type.Option\">\r\n <daga-autocomplete\r\n [disabled]=\"!property.editable || !userCanEdit\"\r\n [options]=\"property.options || []\"\r\n [value]=\"valueSet?.getValue(property.name)\"\r\n (valueChange)=\"setValue(property, $event)\"\r\n />\r\n </div>\r\n <daga-option-list-editor\r\n *ngIf=\"\r\n property.type === Type.OptionList || property.type === Type.OptionSet\r\n \"\r\n [disabled]=\"!property.editable || !userCanEdit\"\r\n [allowRepeats]=\"property.type === Type.OptionList\"\r\n [options]=\"property.options || []\"\r\n [value]=\"valueSet?.getValue(property.name)\"\r\n (valueChange)=\"setValue(property, $event)\"\r\n ></daga-option-list-editor>\r\n <daga-text-list-editor\r\n *ngIf=\"property.type === Type.TextList || property.type === Type.TextSet\"\r\n [disabled]=\"!property.editable || !userCanEdit\"\r\n [allowRepeats]=\"property.type === Type.TextList\"\r\n [value]=\"valueSet?.getValue(property.name)\"\r\n (valueChange)=\"setValue(property, $event)\"\r\n ></daga-text-list-editor>\r\n <daga-text-map-editor\r\n *ngIf=\"property.type === Type.TextMap\"\r\n [disabled]=\"!property.editable || !userCanEdit\"\r\n [value]=\"valueSet?.getValue(property.name)\"\r\n (valueChange)=\"setValue(property, $event)\"\r\n ></daga-text-map-editor>\r\n <div *ngIf=\"property.type === Type.Object\" class=\"daga-left-bar\">\r\n <daga-object-editor\r\n [valueSet]=\"valueSet?.getSubValueSet(property.name)\"\r\n [depth]=\"depth + 1\"\r\n ></daga-object-editor>\r\n </div>\r\n</div>\r\n" }]
1740
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: CanvasProviderService }], propDecorators: { valueSet: [{
1760
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: "@for (property of valueSet?.displayedProperties || []; track property) {\r\n <div\r\n class=\"daga-property\"\r\n [class]=\"getStyleClassName(property.name) + ' daga-depth-' + depth\"\r\n >\r\n <p class=\"daga-property-name\">\r\n {{ property.name }}\r\n </p>\r\n @if (property.type === Type.Text) {\r\n <input\r\n type=\"daga-text\"\r\n [disabled]=\"!property.editable || !userCanEdit\"\r\n [ngModel]=\"valueSet?.getValue(property.name)\"\r\n (ngModelChange)=\"setValue(property, $event)\"\r\n />\r\n }\r\n @if (property.type === Type.TextArea) {\r\n <textarea\r\n [disabled]=\"!property.editable || !userCanEdit\"\r\n [ngModel]=\"valueSet?.getValue(property.name)\"\r\n (ngModelChange)=\"setValue(property, $event)\"\r\n ></textarea>\r\n }\r\n @if (property.type === Type.Number) {\r\n <input\r\n type=\"number\"\r\n [disabled]=\"!property.editable || !userCanEdit\"\r\n [ngModel]=\"valueSet?.getValue(property.name)\"\r\n (ngModelChange)=\"setValue(property, $event)\"\r\n />\r\n }\r\n @if (property.type === Type.Color) {\r\n <input\r\n type=\"text\"\r\n pattern=\"#[0-9a-fA-F]{6}\"\r\n [disabled]=\"!property.editable || !userCanEdit\"\r\n [ngModel]=\"valueSet?.getValue(property.name)\"\r\n (ngModelChange)=\"setValue(property, $event)\"\r\n />\r\n }\r\n @if (property.type === Type.Datetime) {\r\n <input\r\n type=\"datetime-local\"\r\n [disabled]=\"!property.editable || !userCanEdit\"\r\n [ngModel]=\"dateToLocalDatetimeString(valueSet?.getValue(property.name))\"\r\n (ngModelChange)=\"setValue(property, localDatetimeStringToDate($event))\"\r\n />\r\n }\r\n @if (property.type === Type.Date) {\r\n <input\r\n type=\"date\"\r\n [disabled]=\"!property.editable || !userCanEdit\"\r\n [ngModel]=\"valueSet?.getValue(property.name)\"\r\n (ngModelChange)=\"setValue(property, $event)\"\r\n />\r\n }\r\n @if (property.type === Type.Time) {\r\n <input\r\n type=\"time\"\r\n [disabled]=\"!property.editable || !userCanEdit\"\r\n [ngModel]=\"valueSet?.getValue(property.name)\"\r\n (ngModelChange)=\"setValue(property, $event)\"\r\n />\r\n }\r\n @if (property.type === Type.Url) {\r\n <input\r\n type=\"url\"\r\n [disabled]=\"!property.editable || !userCanEdit\"\r\n [ngModel]=\"valueSet?.getValue(property.name)\"\r\n (ngModelChange)=\"setValue(property, $event)\"\r\n />\r\n }\r\n @if (property.type === Type.Boolean) {\r\n <div class=\"daga-radio\">\r\n <label\r\n class=\"daga-radio-item daga-radio-start\"\r\n [class]=\"\r\n valueSet?.getValue(property.name) === false ? 'daga-checked' : ''\r\n \"\r\n >\r\n <input\r\n type=\"radio\"\r\n [disabled]=\"!property.editable || !userCanEdit\"\r\n [name]=\"property.name\"\r\n value=\"false\"\r\n (change)=\"setValue(property, false)\"\r\n />\r\n No\r\n </label>\r\n <label\r\n class=\"daga-radio-item daga-radio-end\"\r\n [class]=\"valueSet?.getValue(property.name) === true ? 'daga-checked' : ''\"\r\n >\r\n <input\r\n type=\"radio\"\r\n [disabled]=\"!property.editable || !userCanEdit\"\r\n [name]=\"property.name\"\r\n value=\"true\"\r\n (change)=\"setValue(property, true)\"\r\n />\r\n Yes\r\n </label>\r\n </div>\r\n }\r\n @if (property.type === Type.Option) {\r\n <div class=\"daga-relatively-positioned\">\r\n <daga-autocomplete\r\n [disabled]=\"!property.editable || !userCanEdit\"\r\n [options]=\"property.options || []\"\r\n [value]=\"valueSet?.getValue(property.name)\"\r\n (valueChange)=\"setValue(property, $event)\"\r\n />\r\n </div>\r\n }\r\n @if (\r\n property.type === Type.OptionList || property.type === Type.OptionSet\r\n ) {\r\n <daga-option-list-editor\r\n [disabled]=\"!property.editable || !userCanEdit\"\r\n [allowRepeats]=\"property.type === Type.OptionList\"\r\n [options]=\"property.options || []\"\r\n [value]=\"valueSet?.getValue(property.name)\"\r\n (valueChange)=\"setValue(property, $event)\"\r\n ></daga-option-list-editor>\r\n }\r\n @if (property.type === Type.TextList || property.type === Type.TextSet) {\r\n <daga-text-list-editor\r\n [disabled]=\"!property.editable || !userCanEdit\"\r\n [allowRepeats]=\"property.type === Type.TextList\"\r\n [value]=\"valueSet?.getValue(property.name)\"\r\n (valueChange)=\"setValue(property, $event)\"\r\n ></daga-text-list-editor>\r\n }\r\n @if (property.type === Type.TextMap) {\r\n <daga-text-map-editor\r\n [disabled]=\"!property.editable || !userCanEdit\"\r\n [value]=\"valueSet?.getValue(property.name)\"\r\n (valueChange)=\"setValue(property, $event)\"\r\n ></daga-text-map-editor>\r\n }\r\n @if (property.type === Type.Object) {\r\n <div class=\"daga-left-bar\">\r\n <daga-object-editor\r\n [valueSet]=\"valueSet?.getSubValueSet(property.name)\"\r\n [depth]=\"depth + 1\"\r\n ></daga-object-editor>\r\n </div>\r\n }\r\n </div>\r\n }\r\n" }]
1761
+ }], propDecorators: { valueSet: [{
1741
1762
  type: Input
1742
1763
  }], depth: [{
1743
1764
  type: Input
@@ -1753,6 +1774,8 @@ const HIGHLIGHT_ANIMATION_DURATION_MS = 1000;
1753
1774
  * @see ValueSet
1754
1775
  */
1755
1776
  class PropertyEditorComponent {
1777
+ #cdr = inject(ChangeDetectorRef);
1778
+ #configService = inject(DagaConfigurationService);
1756
1779
  get valueSet() {
1757
1780
  return this._valueSet;
1758
1781
  }
@@ -1761,15 +1784,11 @@ class PropertyEditorComponent {
1761
1784
  this._valueSet = valueSet;
1762
1785
  this.settings = undefined;
1763
1786
  // force value change detection
1764
- this.cdr.detectChanges();
1787
+ this.#cdr.detectChanges();
1765
1788
  }
1766
1789
  }
1767
- constructor(cdr, configService) {
1768
- this.cdr = cdr;
1769
- this.configService = configService;
1770
- }
1771
1790
  ngOnInit() {
1772
- this.sub = this.configService.config$.subscribe((c) => {
1791
+ this.sub = this.#configService.config$.subscribe((c) => {
1773
1792
  this.init(c);
1774
1793
  });
1775
1794
  }
@@ -1825,18 +1844,17 @@ class PropertyEditorComponent {
1825
1844
  });
1826
1845
  }
1827
1846
  }
1828
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: PropertyEditorComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: DagaConfigurationService }], target: i0.ɵɵFactoryTarget.Component }); }
1829
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.5", type: PropertyEditorComponent, isStandalone: true, selector: "daga-property-editor", inputs: { valueSet: "valueSet" }, viewQueries: [{ propertyName: "panel", first: true, predicate: ["panel"], descendants: true }], ngImport: i0, template: "<div\r\n #panel\r\n class=\"daga-panel daga-bottom daga-{{ location }} daga-{{ direction }}\"\r\n>\r\n <daga-collapse-button\r\n #collapse\r\n [disabled]=\"\r\n !valueSet ||\r\n !valueSet.propertySet ||\r\n !valueSet.propertySet.hasProperties()\r\n \"\r\n [direction]=\"direction\"\r\n [collapsableSelector]=\"panel\"\r\n collapsableAdditionalSelector=\".daga-panel-content\"\r\n rule=\"display\"\r\n collapsedValue=\"none\"\r\n visibleValue=\"block\"\r\n />\r\n <div\r\n *ngIf=\"\r\n valueSet &&\r\n valueSet.propertySet &&\r\n valueSet.propertySet.hasProperties() &&\r\n !collapse.collapsed\r\n \"\r\n class=\"daga-panel-content\"\r\n >\r\n <p *ngIf=\"title\" class=\"daga-title\">\r\n {{ title }}\r\n <button class=\"daga-property-button\" (click)=\"settings = !settings\">\r\n <div\r\n class=\"daga-icon daga-settings-icon\"\r\n [class]=\"\r\n settings === undefined\r\n ? ''\r\n : settings\r\n ? 'daga-unrotate'\r\n : 'daga-rotate'\r\n \"\r\n ></div>\r\n </button>\r\n </p>\r\n <daga-object-editor *ngIf=\"!settings\" [valueSet]=\"valueSet\" />\r\n <daga-property-settings *ngIf=\"settings\" [valueSet]=\"valueSet\" />\r\n </div>\r\n</div>\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: CollapseButtonComponent, selector: "daga-collapse-button", inputs: ["collapsableSelector", "collapsableAdditionalSelector", "collapsed", "disabled", "direction", "rule", "collapsedValue", "visibleValue"] }, { kind: "component", type: ObjectEditorComponent, selector: "daga-object-editor", inputs: ["valueSet", "depth"] }, { kind: "component", type: PropertySettingsComponent, selector: "daga-property-settings", inputs: ["valueSet", "depth"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1847
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: PropertyEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1848
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.3", type: PropertyEditorComponent, isStandalone: true, selector: "daga-property-editor", inputs: { valueSet: "valueSet" }, viewQueries: [{ propertyName: "panel", first: true, predicate: ["panel"], descendants: true }], ngImport: i0, template: "<div\r\n #panel\r\n class=\"daga-panel daga-bottom daga-{{ location }} daga-{{ direction }}\"\r\n >\r\n <daga-collapse-button\r\n #collapse\r\n [disabled]=\"\r\n !valueSet ||\r\n !valueSet.propertySet ||\r\n !valueSet.propertySet.hasProperties()\r\n \"\r\n [direction]=\"direction\"\r\n [collapsableSelector]=\"panel\"\r\n collapsableAdditionalSelector=\".daga-panel-content\"\r\n rule=\"display\"\r\n collapsedValue=\"none\"\r\n visibleValue=\"block\"\r\n />\r\n @if (\r\n valueSet &&\r\n valueSet.propertySet &&\r\n valueSet.propertySet.hasProperties() &&\r\n !collapse.collapsed\r\n ) {\r\n <div\r\n class=\"daga-panel-content\"\r\n >\r\n @if (title) {\r\n <p class=\"daga-title\">\r\n {{ title }}\r\n <button class=\"daga-property-button\" (click)=\"settings = !settings\">\r\n <div\r\n class=\"daga-icon daga-settings-icon\"\r\n [class]=\"\r\n settings === undefined\r\n ? ''\r\n : settings\r\n ? 'daga-unrotate'\r\n : 'daga-rotate'\r\n \"\r\n ></div>\r\n </button>\r\n </p>\r\n }\r\n @if (!settings) {\r\n <daga-object-editor [valueSet]=\"valueSet\" />\r\n }\r\n @if (settings) {\r\n <daga-property-settings [valueSet]=\"valueSet\" />\r\n }\r\n </div>\r\n }\r\n </div>\r\n", dependencies: [{ kind: "component", type: CollapseButtonComponent, selector: "daga-collapse-button", inputs: ["collapsableSelector", "collapsableAdditionalSelector", "collapsed", "disabled", "direction", "rule", "collapsedValue", "visibleValue"] }, { kind: "component", type: ObjectEditorComponent, selector: "daga-object-editor", inputs: ["valueSet", "depth"] }, { kind: "component", type: PropertySettingsComponent, selector: "daga-property-settings", inputs: ["valueSet", "depth"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1830
1849
  }
1831
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: PropertyEditorComponent, decorators: [{
1850
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: PropertyEditorComponent, decorators: [{
1832
1851
  type: Component,
1833
1852
  args: [{ selector: 'daga-property-editor', imports: [
1834
- CommonModule,
1835
1853
  CollapseButtonComponent,
1836
1854
  ObjectEditorComponent,
1837
1855
  PropertySettingsComponent
1838
- ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\r\n #panel\r\n class=\"daga-panel daga-bottom daga-{{ location }} daga-{{ direction }}\"\r\n>\r\n <daga-collapse-button\r\n #collapse\r\n [disabled]=\"\r\n !valueSet ||\r\n !valueSet.propertySet ||\r\n !valueSet.propertySet.hasProperties()\r\n \"\r\n [direction]=\"direction\"\r\n [collapsableSelector]=\"panel\"\r\n collapsableAdditionalSelector=\".daga-panel-content\"\r\n rule=\"display\"\r\n collapsedValue=\"none\"\r\n visibleValue=\"block\"\r\n />\r\n <div\r\n *ngIf=\"\r\n valueSet &&\r\n valueSet.propertySet &&\r\n valueSet.propertySet.hasProperties() &&\r\n !collapse.collapsed\r\n \"\r\n class=\"daga-panel-content\"\r\n >\r\n <p *ngIf=\"title\" class=\"daga-title\">\r\n {{ title }}\r\n <button class=\"daga-property-button\" (click)=\"settings = !settings\">\r\n <div\r\n class=\"daga-icon daga-settings-icon\"\r\n [class]=\"\r\n settings === undefined\r\n ? ''\r\n : settings\r\n ? 'daga-unrotate'\r\n : 'daga-rotate'\r\n \"\r\n ></div>\r\n </button>\r\n </p>\r\n <daga-object-editor *ngIf=\"!settings\" [valueSet]=\"valueSet\" />\r\n <daga-property-settings *ngIf=\"settings\" [valueSet]=\"valueSet\" />\r\n </div>\r\n</div>\r\n" }]
1839
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: DagaConfigurationService }], propDecorators: { panel: [{
1856
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\r\n #panel\r\n class=\"daga-panel daga-bottom daga-{{ location }} daga-{{ direction }}\"\r\n >\r\n <daga-collapse-button\r\n #collapse\r\n [disabled]=\"\r\n !valueSet ||\r\n !valueSet.propertySet ||\r\n !valueSet.propertySet.hasProperties()\r\n \"\r\n [direction]=\"direction\"\r\n [collapsableSelector]=\"panel\"\r\n collapsableAdditionalSelector=\".daga-panel-content\"\r\n rule=\"display\"\r\n collapsedValue=\"none\"\r\n visibleValue=\"block\"\r\n />\r\n @if (\r\n valueSet &&\r\n valueSet.propertySet &&\r\n valueSet.propertySet.hasProperties() &&\r\n !collapse.collapsed\r\n ) {\r\n <div\r\n class=\"daga-panel-content\"\r\n >\r\n @if (title) {\r\n <p class=\"daga-title\">\r\n {{ title }}\r\n <button class=\"daga-property-button\" (click)=\"settings = !settings\">\r\n <div\r\n class=\"daga-icon daga-settings-icon\"\r\n [class]=\"\r\n settings === undefined\r\n ? ''\r\n : settings\r\n ? 'daga-unrotate'\r\n : 'daga-rotate'\r\n \"\r\n ></div>\r\n </button>\r\n </p>\r\n }\r\n @if (!settings) {\r\n <daga-object-editor [valueSet]=\"valueSet\" />\r\n }\r\n @if (settings) {\r\n <daga-property-settings [valueSet]=\"valueSet\" />\r\n }\r\n </div>\r\n }\r\n </div>\r\n" }]
1857
+ }], propDecorators: { panel: [{
1840
1858
  type: ViewChild,
1841
1859
  args: ['panel']
1842
1860
  }], valueSet: [{
@@ -1852,20 +1870,42 @@ const getStyleClassName = (s) => {
1852
1870
  * @public
1853
1871
  */
1854
1872
  class DiagramComponent {
1873
+ constructor() {
1874
+ this.#configurationService = inject(DagaConfigurationService);
1875
+ this.#canvasProvider = inject(CanvasProviderService);
1876
+ this.#cdr = inject(ChangeDetectorRef);
1877
+ this.importer = new DagaImporter();
1878
+ this.exporter = new DagaExporter();
1879
+ /**
1880
+ * Output for changes to the diagram's model.
1881
+ * @public
1882
+ */
1883
+ this.modelChange = new EventEmitter();
1884
+ /**
1885
+ * Output for user events on the diagram.
1886
+ * @public
1887
+ */
1888
+ this.diagramEvent = new EventEmitter();
1889
+ this.Corner = Corner;
1890
+ this.Side = Side;
1891
+ }
1892
+ #configurationService;
1893
+ #canvasProvider;
1894
+ #cdr;
1855
1895
  /**
1856
1896
  * Getter for the configuration of this diagram.
1857
1897
  * @public
1858
1898
  */
1859
1899
  get config() {
1860
- return this.configurationService.getConfig();
1900
+ return this.#configurationService.getConfig();
1861
1901
  }
1862
1902
  /**
1863
1903
  * Setter for the configuration for the diagram.
1864
1904
  * @public
1865
1905
  */
1866
1906
  set config(config) {
1867
- if (this.configurationService.getConfig() !== config) {
1868
- this.configurationService.init(config);
1907
+ if (this.#configurationService.getConfig() !== config) {
1908
+ this.#configurationService.init(config);
1869
1909
  }
1870
1910
  }
1871
1911
  /**
@@ -1873,28 +1913,28 @@ class DiagramComponent {
1873
1913
  * @public
1874
1914
  */
1875
1915
  get config$() {
1876
- return this.configurationService.config$;
1916
+ return this.#configurationService.config$;
1877
1917
  }
1878
1918
  /**
1879
1919
  * Getter for the canvas of this diagram.
1880
1920
  * @public
1881
1921
  */
1882
1922
  get canvas() {
1883
- return this.canvasProvider.getCanvas();
1923
+ return this.#canvasProvider.getCanvas();
1884
1924
  }
1885
1925
  /**
1886
1926
  * Subject used to track when the canvas has been updated.
1887
1927
  * @public
1888
1928
  */
1889
1929
  get canvas$() {
1890
- return this.canvasProvider.canvas$;
1930
+ return this.#canvasProvider.canvas$;
1891
1931
  }
1892
1932
  /**
1893
1933
  * Subject used to track when the view has been initialized after updating the canvas.
1894
1934
  * @public
1895
1935
  */
1896
1936
  get viewInitialized$() {
1897
- return this.canvasProvider.viewInitialized$;
1937
+ return this.#canvasProvider.viewInitialized$;
1898
1938
  }
1899
1939
  /**
1900
1940
  * Serialized model for the diagram. Used for data binding to the model.
@@ -1916,38 +1956,19 @@ class DiagramComponent {
1916
1956
  }
1917
1957
  }
1918
1958
  }
1919
- constructor(configurationService, canvasProvider, cdr) {
1920
- this.configurationService = configurationService;
1921
- this.canvasProvider = canvasProvider;
1922
- this.cdr = cdr;
1923
- this.importer = new DagaImporter();
1924
- this.exporter = new DagaExporter();
1925
- /**
1926
- * Output for changes to the diagram's model.
1927
- * @public
1928
- */
1929
- this.modelChange = new EventEmitter();
1930
- /**
1931
- * Output for user events on the diagram.
1932
- * @public
1933
- */
1934
- this.diagramEvent = new EventEmitter();
1935
- this.Corner = Corner;
1936
- this.Side = Side;
1937
- }
1938
1959
  ngOnInit() {
1939
- this.canvasProvider.initCanvas(this, this.config);
1960
+ this.#canvasProvider.initCanvas(this, this.config);
1940
1961
  this.setUpCanvas(this.canvas);
1941
1962
  }
1942
1963
  ngAfterViewInit() {
1943
1964
  // wait for setTimeout(0) to force browser to finish calculating the size of parent before initializing the view
1944
1965
  setTimeout(() => {
1945
- this.canvasProvider.initCanvasView(this.appendTo.nativeElement);
1966
+ this.#canvasProvider.initCanvasView(this.appendTo.nativeElement);
1946
1967
  // initial import of the model
1947
1968
  if (this.model) {
1948
1969
  this.importer.import(this.canvas.model, this.model);
1949
1970
  }
1950
- this.canvasSub = this.canvasProvider.canvas$
1971
+ this.canvasSub = this.#canvasProvider.canvas$
1951
1972
  // we skip the first one as the subscribe() underneath is
1952
1973
  // for when the canvas is reloaded, not initially loaded
1953
1974
  .pipe(skip(1))
@@ -1956,14 +1977,14 @@ class DiagramComponent {
1956
1977
  this.model = this.exporter.export(c.model);
1957
1978
  this.setUpCanvas(c);
1958
1979
  });
1959
- this.configurationSub = this.configurationService.config$
1980
+ this.configurationSub = this.#configurationService.config$
1960
1981
  // we skip the first one as the subscribe() underneath is
1961
1982
  // for when the config is reloaded, not initially loaded
1962
1983
  .pipe(skip(1))
1963
1984
  .subscribe((c) => {
1964
- this.canvasProvider.initCanvas(this, c);
1965
- this.canvasProvider.initCanvasView(this.appendTo.nativeElement);
1966
- this.cdr.detectChanges();
1985
+ this.#canvasProvider.initCanvas(this, c);
1986
+ this.#canvasProvider.initCanvasView(this.appendTo.nativeElement);
1987
+ this.#cdr.detectChanges();
1967
1988
  });
1968
1989
  }, 0);
1969
1990
  }
@@ -1984,19 +2005,18 @@ class DiagramComponent {
1984
2005
  this.importer.import(canvas.model, this.model);
1985
2006
  }
1986
2007
  }
1987
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: DiagramComponent, deps: [{ token: DagaConfigurationService }, { token: CanvasProviderService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
1988
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.5", type: DiagramComponent, isStandalone: true, selector: "daga-diagram", inputs: { config: "config", model: "model" }, outputs: { modelChange: "modelChange", diagramEvent: "diagramEvent" }, providers: [CanvasProviderService, DagaConfigurationService], viewQueries: [{ propertyName: "appendTo", first: true, predicate: ["appendTo"], descendants: true }, { propertyName: "diagramButtons", first: true, predicate: ["diagramButtons"], descendants: true }, { propertyName: "palette", first: true, predicate: ["palette"], descendants: true }, { propertyName: "propertyEditor", first: true, predicate: ["propertyEditor"], descendants: true }], ngImport: i0, template: "<div class=\"daga-append-to\" #appendTo></div>\r\n<daga-diagram-buttons\r\n *ngIf=\"\r\n config.components?.buttons !== undefined &&\r\n config.components?.buttons?.enabled !== false\r\n \"\r\n #diagramButtons\r\n/>\r\n<daga-palette\r\n *ngIf=\"\r\n config.components?.palette !== undefined &&\r\n config.components?.palette?.enabled !== false &&\r\n config.components?.palette?.sections &&\r\n (config.components?.palette?.sections?.length || 0) > 0\r\n \"\r\n #palette\r\n/>\r\n<daga-property-editor\r\n *ngIf=\"\r\n config.components?.propertyEditor !== undefined &&\r\n config.components?.propertyEditor?.enabled !== false\r\n \"\r\n #propertyEditor\r\n/>\r\n<daga-errors\r\n *ngIf=\"\r\n config.components?.errors !== undefined &&\r\n config.components?.errors?.enabled !== false\r\n \"\r\n/>\r\n<ng-content />\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: DiagramButtonsComponent, selector: "daga-diagram-buttons", inputs: ["location", "direction", "enableAction", "enableFilter", "enableLayout", "enableSelection", "enableZoom"] }, { kind: "component", type: PaletteComponent, selector: "daga-palette", inputs: ["palettes", "currentPalette", "currentCategory", "location", "direction", "width", "gap"] }, { kind: "component", type: PropertyEditorComponent, selector: "daga-property-editor", inputs: ["valueSet"] }, { kind: "component", type: ErrorsComponent, selector: "daga-errors" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2008
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: DiagramComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2009
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.3", type: DiagramComponent, isStandalone: true, selector: "daga-diagram", inputs: { config: "config", model: "model" }, outputs: { modelChange: "modelChange", diagramEvent: "diagramEvent" }, providers: [CanvasProviderService, DagaConfigurationService], viewQueries: [{ propertyName: "appendTo", first: true, predicate: ["appendTo"], descendants: true }, { propertyName: "diagramButtons", first: true, predicate: ["diagramButtons"], descendants: true }, { propertyName: "palette", first: true, predicate: ["palette"], descendants: true }, { propertyName: "propertyEditor", first: true, predicate: ["propertyEditor"], descendants: true }], ngImport: i0, template: "<div class=\"daga-append-to\" #appendTo></div>\r\n@if (\r\n config.components?.buttons !== undefined &&\r\n config.components?.buttons?.enabled !== false\r\n ) {\r\n <daga-diagram-buttons\r\n #diagramButtons\r\n />\r\n}\r\n@if (\r\n config.components?.palette !== undefined &&\r\n config.components?.palette?.enabled !== false &&\r\n config.components?.palette?.sections &&\r\n (config.components?.palette?.sections?.length || 0) > 0\r\n ) {\r\n <daga-palette\r\n #palette\r\n />\r\n}\r\n@if (\r\n config.components?.propertyEditor !== undefined &&\r\n config.components?.propertyEditor?.enabled !== false\r\n ) {\r\n <daga-property-editor\r\n #propertyEditor\r\n />\r\n}\r\n@if (\r\n config.components?.errors !== undefined &&\r\n config.components?.errors?.enabled !== false\r\n ) {\r\n <daga-errors\r\n />\r\n}\r\n<ng-content />\r\n", dependencies: [{ kind: "component", type: DiagramButtonsComponent, selector: "daga-diagram-buttons", inputs: ["location", "direction", "enableAction", "enableFilter", "enableLayout", "enableSelection", "enableZoom"] }, { kind: "component", type: PaletteComponent, selector: "daga-palette", inputs: ["palettes", "currentPalette", "currentCategory", "location", "direction", "width", "gap"] }, { kind: "component", type: PropertyEditorComponent, selector: "daga-property-editor", inputs: ["valueSet"] }, { kind: "component", type: ErrorsComponent, selector: "daga-errors" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1989
2010
  }
1990
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: DiagramComponent, decorators: [{
2011
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: DiagramComponent, decorators: [{
1991
2012
  type: Component,
1992
2013
  args: [{ standalone: true, selector: 'daga-diagram', providers: [CanvasProviderService, DagaConfigurationService], imports: [
1993
- CommonModule,
1994
2014
  DiagramButtonsComponent,
1995
2015
  PaletteComponent,
1996
2016
  PropertyEditorComponent,
1997
2017
  ErrorsComponent
1998
- ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"daga-append-to\" #appendTo></div>\r\n<daga-diagram-buttons\r\n *ngIf=\"\r\n config.components?.buttons !== undefined &&\r\n config.components?.buttons?.enabled !== false\r\n \"\r\n #diagramButtons\r\n/>\r\n<daga-palette\r\n *ngIf=\"\r\n config.components?.palette !== undefined &&\r\n config.components?.palette?.enabled !== false &&\r\n config.components?.palette?.sections &&\r\n (config.components?.palette?.sections?.length || 0) > 0\r\n \"\r\n #palette\r\n/>\r\n<daga-property-editor\r\n *ngIf=\"\r\n config.components?.propertyEditor !== undefined &&\r\n config.components?.propertyEditor?.enabled !== false\r\n \"\r\n #propertyEditor\r\n/>\r\n<daga-errors\r\n *ngIf=\"\r\n config.components?.errors !== undefined &&\r\n config.components?.errors?.enabled !== false\r\n \"\r\n/>\r\n<ng-content />\r\n" }]
1999
- }], ctorParameters: () => [{ type: DagaConfigurationService }, { type: CanvasProviderService }, { type: i0.ChangeDetectorRef }], propDecorators: { appendTo: [{
2018
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"daga-append-to\" #appendTo></div>\r\n@if (\r\n config.components?.buttons !== undefined &&\r\n config.components?.buttons?.enabled !== false\r\n ) {\r\n <daga-diagram-buttons\r\n #diagramButtons\r\n />\r\n}\r\n@if (\r\n config.components?.palette !== undefined &&\r\n config.components?.palette?.enabled !== false &&\r\n config.components?.palette?.sections &&\r\n (config.components?.palette?.sections?.length || 0) > 0\r\n ) {\r\n <daga-palette\r\n #palette\r\n />\r\n}\r\n@if (\r\n config.components?.propertyEditor !== undefined &&\r\n config.components?.propertyEditor?.enabled !== false\r\n ) {\r\n <daga-property-editor\r\n #propertyEditor\r\n />\r\n}\r\n@if (\r\n config.components?.errors !== undefined &&\r\n config.components?.errors?.enabled !== false\r\n ) {\r\n <daga-errors\r\n />\r\n}\r\n<ng-content />\r\n" }]
2019
+ }], propDecorators: { appendTo: [{
2000
2020
  type: ViewChild,
2001
2021
  args: ['appendTo']
2002
2022
  }], diagramButtons: [{
@@ -2019,8 +2039,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
2019
2039
  }] } });
2020
2040
 
2021
2041
  class DagaModule {
2022
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: DagaModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
2023
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.5", ngImport: i0, type: DagaModule, imports: [CollapseButtonComponent,
2042
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: DagaModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
2043
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.1.3", ngImport: i0, type: DagaModule, imports: [CollapseButtonComponent,
2024
2044
  DiagramButtonsComponent,
2025
2045
  DiagramComponent,
2026
2046
  ErrorsComponent,
@@ -2031,19 +2051,15 @@ class DagaModule {
2031
2051
  PropertyEditorComponent,
2032
2052
  CommonModule,
2033
2053
  FormsModule], exports: [DiagramComponent] }); }
2034
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: DagaModule, providers: [DagaConfigurationService, CanvasProviderService], imports: [CollapseButtonComponent,
2035
- DiagramButtonsComponent,
2036
- DiagramComponent,
2037
- ErrorsComponent,
2054
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: DagaModule, providers: [DagaConfigurationService, CanvasProviderService], imports: [DiagramComponent,
2038
2055
  ObjectEditorComponent,
2039
- PaletteComponent,
2040
2056
  TextListEditorComponent,
2041
2057
  TextMapEditorComponent,
2042
2058
  PropertyEditorComponent,
2043
2059
  CommonModule,
2044
2060
  FormsModule] }); }
2045
2061
  }
2046
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: DagaModule, decorators: [{
2062
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: DagaModule, decorators: [{
2047
2063
  type: NgModule,
2048
2064
  args: [{
2049
2065
  declarations: [],