@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.
- package/Changelog.md +20 -3
- package/README.md +1 -0
- package/fesm2022/metadev-daga-angular.mjs +261 -245
- package/fesm2022/metadev-daga-angular.mjs.map +1 -1
- package/index.d.ts +400 -13
- package/package.json +5 -5
- package/lib/collapse-button/collapse-button.component.d.ts +0 -22
- package/lib/daga.module.d.ts +0 -17
- package/lib/diagram/diagram.component.d.ts +0 -87
- package/lib/diagram-buttons/diagram-buttons.component.d.ts +0 -53
- package/lib/errors/errors.component.d.ts +0 -29
- package/lib/palette/palette.component.d.ts +0 -42
- package/lib/property-editor/autocomplete/autocomplete.component.d.ts +0 -37
- package/lib/property-editor/object-editor/object-editor.component.d.ts +0 -29
- package/lib/property-editor/option-list-editor/option-list-editor.component.d.ts +0 -33
- package/lib/property-editor/property-editor.component.d.ts +0 -35
- package/lib/property-editor/property-settings/property-settings.component.d.ts +0 -33
- package/lib/property-editor/text-list-editor/text-list-editor.component.d.ts +0 -29
- package/lib/property-editor/text-map-editor/text-map-editor.component.d.ts +0 -36
- package/lib/services/canvas-provider.service.d.ts +0 -42
- package/lib/services/daga-configuration.service.d.ts +0 -29
|
@@ -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,
|
|
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/
|
|
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: "
|
|
96
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
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: "
|
|
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',
|
|
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: "
|
|
166
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
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: "
|
|
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: "
|
|
203
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
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: "
|
|
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
|
-
|
|
215
|
-
|
|
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
|
|
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: "
|
|
378
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
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: "
|
|
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',
|
|
383
|
-
}],
|
|
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
|
-
|
|
409
|
-
|
|
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
|
|
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
|
|
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: "
|
|
475
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
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: "
|
|
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: [
|
|
480
|
-
}],
|
|
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
|
-
|
|
497
|
-
|
|
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
|
|
510
|
-
this.init(this
|
|
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', `${
|
|
643
|
-
.style('height', `${
|
|
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] -
|
|
662
|
-
.style('top', `${pointerCoords[1] -
|
|
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] -
|
|
682
|
-
.style('top', `${pointerCoords[1] -
|
|
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',
|
|
755
|
-
.style('height',
|
|
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 (
|
|
851
|
-
|
|
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('
|
|
854
|
-
.attr('
|
|
855
|
-
.attr('
|
|
856
|
-
.attr('
|
|
857
|
-
.
|
|
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: "
|
|
951
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
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: "
|
|
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: [
|
|
956
|
-
}],
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
1171
|
+
this.#cdr.detectChanges();
|
|
1155
1172
|
this.addListeners();
|
|
1156
1173
|
}
|
|
1157
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1158
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
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: "
|
|
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: [
|
|
1163
|
-
}],
|
|
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: "
|
|
1347
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
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: "
|
|
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: [
|
|
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
|
|
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
|
|
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: "
|
|
1464
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
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: "
|
|
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,
|
|
1469
|
-
}],
|
|
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
|
|
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
|
|
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
|
|
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: "
|
|
1559
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
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: "
|
|
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: [
|
|
1564
|
-
}],
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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: "
|
|
1650
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
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: "
|
|
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: "
|
|
1655
|
-
}],
|
|
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
|
|
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
|
|
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: "
|
|
1728
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
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: "
|
|
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: "
|
|
1740
|
-
}],
|
|
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
|
|
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
|
|
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: "
|
|
1829
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
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: "
|
|
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
|
|
1839
|
-
}],
|
|
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
|
|
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
|
|
1868
|
-
this
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
1965
|
-
this
|
|
1966
|
-
this
|
|
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: "
|
|
1988
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
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: "
|
|
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
|
|
1999
|
-
}],
|
|
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: "
|
|
2023
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
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: "
|
|
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: "
|
|
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: [],
|