@visuallyjs/browser-ui-angular 1.2.0 → 1.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/esm2022/index.mjs +2 -0
  2. package/esm2022/lib/base.group.component.mjs +3 -3
  3. package/esm2022/lib/base.node.component.mjs +3 -3
  4. package/esm2022/lib/base.port.component.mjs +4 -4
  5. package/esm2022/lib/base.vertex.component.mjs +33 -12
  6. package/esm2022/lib/browser-ui-angular.module.mjs +18 -8
  7. package/esm2022/lib/charts/area.chart.component.mjs +3 -3
  8. package/esm2022/lib/charts/bar.chart.component.mjs +3 -3
  9. package/esm2022/lib/charts/bubble.chart.component.mjs +3 -3
  10. package/esm2022/lib/charts/column.chart.component.mjs +3 -3
  11. package/esm2022/lib/charts/line.chart.component.mjs +3 -3
  12. package/esm2022/lib/charts/pie.chart.component.mjs +3 -3
  13. package/esm2022/lib/charts/sankey.chart.component.mjs +4 -4
  14. package/esm2022/lib/charts/scatter.chart.component.mjs +3 -3
  15. package/esm2022/lib/charts/series.based.chart.component.mjs +4 -4
  16. package/esm2022/lib/charts/xy.chart.component.mjs +3 -3
  17. package/esm2022/lib/color.tag.component.mjs +6 -6
  18. package/esm2022/lib/controls-component.mjs +4 -4
  19. package/esm2022/lib/decorator-component.mjs +3 -3
  20. package/esm2022/lib/default-group-component.mjs +3 -3
  21. package/esm2022/lib/default-node-component.mjs +3 -3
  22. package/esm2022/lib/diagram-component.mjs +34 -12
  23. package/esm2022/lib/diagram-palette-component.mjs +4 -4
  24. package/esm2022/lib/edge.type.picker.component.mjs +5 -5
  25. package/esm2022/lib/export-controls-component.mjs +3 -3
  26. package/esm2022/lib/inspector.component.mjs +4 -4
  27. package/esm2022/lib/miniview-component.mjs +4 -4
  28. package/esm2022/lib/palette.component.mjs +4 -4
  29. package/esm2022/lib/paper-component.mjs +345 -0
  30. package/esm2022/lib/shape.component.mjs +4 -4
  31. package/esm2022/lib/shape.palette.component.mjs +4 -4
  32. package/esm2022/lib/surface-component.mjs +71 -14
  33. package/esm2022/lib/surface-popup-component.mjs +62 -0
  34. package/esm2022/lib/vjs-service.mjs +3 -3
  35. package/fesm2022/visuallyjs-browser-ui-angular.mjs +645 -142
  36. package/fesm2022/visuallyjs-browser-ui-angular.mjs.map +1 -1
  37. package/index.d.ts +2 -0
  38. package/lib/base.vertex.component.d.ts +29 -3
  39. package/lib/browser-ui-angular.module.d.ts +23 -21
  40. package/lib/diagram-component.d.ts +7 -5
  41. package/lib/overlay-component.d.ts +5 -5
  42. package/lib/paper-component.d.ts +156 -0
  43. package/lib/surface-component.d.ts +19 -11
  44. package/lib/surface-popup-component.d.ts +62 -0
  45. package/package.json +2 -2
  46. package/visuallyjs-browser-ui-angular.tgz +0 -0
@@ -1,8 +1,8 @@
1
1
  import * as i0 from '@angular/core';
2
- import { signal, Injectable, inject, ElementRef, effect, Component, Input, ChangeDetectorRef, computed, Directive, EventEmitter, ViewContainerRef, NgZone, reflectComponentType, Output, NgModule } from '@angular/core';
2
+ import { signal, Injectable, inject, ElementRef, effect, Input, Component, ChangeDetectorRef, computed, Directive, input, EventEmitter, ViewContainerRef, NgZone, reflectComponentType, Output, TemplateRef, ViewChild, ContentChild, NgModule } from '@angular/core';
3
3
  import * as i1 from '@angular/common';
4
4
  import { CommonModule } from '@angular/common';
5
- import { log, Surface, Paper, MiniviewPlugin, EVENT_ZOOM, EVENT_PORT_UPDATED, BrowserUIModel, OVERLAY_TYPE_CUSTOM, ELEMENT_DIV, isGroup, extend, renderSurface, EVENT_NODE_UPDATED, EVENT_PORT_ADDED, EVENT_GROUP_UPDATED, EVENT_DATA_LOAD_END, EVENT_EDGE_UPDATED, EVENT_INTERNAL_CONNECTION, ShapeLibraryDefaults, ShapePalette, convertToMultilineText, DEFAULT_LABEL_FILL_RATIO, LassoPlugin, EVENT_SURFACE_MODE_CHANGED, EVENT_UNDOREDO_UPDATE, TRUE, FALSE, EVENT_SELECT, EVENT_DESELECT, EVENT_SELECTION_CLEARED, SURFACE_MODE_PAN, SURFACE_MODE_SELECT, supportsPathEditing, PAN_VIEW_BOX, PAN_PATH, LASSO_VIEW_BOX, LASSO_PATH, ZOOM_TO_FIT_VIEW_BOX, ZOOM_TO_FIT_PATH, ZOOM_IN_OUT_VIEW_BOX, ZOOM_IN_PATH, ZOOM_OUT_PATH, CLASS_CONTROLS_RESET_SELECTION, RESET_SELECTION_VIEW_BOX, RESET_SELECTION_PATH, CLEAR_VIEW_BOX, CLEAR_PATH, INSPECTOR_CONTEXT_EDGE_PROPERTY_MAPPINGS, EdgeTypePicker, Palette, SvgExportUI, ImageExportUI, CLASS_CONTROLS, CLASS_EXPORT_CONTROLS, INSPECTOR_CONTEXT_RECENT_COLORS, EVENT_CONTEXT_UPDATE, CLASS_COLOR_PICKER, CLASS_COLOR_PICKER_SWATCHES, CLASS_COLOR_PICKER_SWATCH, createDiagram, ColumnChart, BarChart, DiagramPalette, CategoryValueChart, LineChart, AreaChart, PieChart, ScatterChart, BubbleChart, SankeyChart, Edge, Node, Group, Port, Inspector, EVENT_DATA_UPDATED, EVENT_GRAPH_CLEARED } from '@visuallyjs/browser-ui';
5
+ import { log, Surface, Paper, MiniviewPlugin, EVENT_ZOOM, EVENT_PORT_UPDATED, BrowserUIModel, OVERLAY_TYPE_CUSTOM, ELEMENT_DIV, isGroup, extend, renderSurface, EVENT_NODE_UPDATED, EVENT_PORT_ADDED, EVENT_GROUP_UPDATED, EVENT_DATA_LOAD_END, EVENT_EDGE_UPDATED, EVENT_EDGE_ADDED, EVENT_EDGE_REMOVED, EVENT_INTERNAL_CONNECTION, ShapeLibraryDefaults, ShapePalette, convertToMultilineText, DEFAULT_LABEL_FILL_RATIO, LassoPlugin, EVENT_SURFACE_MODE_CHANGED, EVENT_UNDOREDO_UPDATE, TRUE, FALSE, EVENT_SELECT, EVENT_DESELECT, EVENT_SELECTION_CLEARED, SURFACE_MODE_PAN, SURFACE_MODE_SELECT, supportsPathEditing, PAN_VIEW_BOX, PAN_PATH, LASSO_VIEW_BOX, LASSO_PATH, ZOOM_TO_FIT_VIEW_BOX, ZOOM_TO_FIT_PATH, ZOOM_IN_OUT_VIEW_BOX, ZOOM_IN_PATH, ZOOM_OUT_PATH, CLASS_CONTROLS_RESET_SELECTION, RESET_SELECTION_VIEW_BOX, RESET_SELECTION_PATH, CLEAR_VIEW_BOX, CLEAR_PATH, INSPECTOR_CONTEXT_EDGE_PROPERTY_MAPPINGS, EdgeTypePicker, Palette, SvgExportUI, ImageExportUI, CLASS_CONTROLS, CLASS_EXPORT_CONTROLS, INSPECTOR_CONTEXT_RECENT_COLORS, EVENT_CONTEXT_UPDATE, CLASS_COLOR_PICKER, CLASS_COLOR_PICKER_SWATCHES, CLASS_COLOR_PICKER_SWATCH, createDiagram, ColumnChart, BarChart, DiagramPalette, CategoryValueChart, LineChart, AreaChart, PieChart, ScatterChart, BubbleChart, SankeyChart, PopupHandler, CLASS_SURFACE_POPUP, renderPaper, Edge, Node, Group, Port, Inspector, EVENT_DATA_UPDATED, EVENT_GRAPH_CLEARED } from '@visuallyjs/browser-ui';
6
6
 
7
7
 
8
8
  class VisuallyJsService {
@@ -202,10 +202,10 @@ class VisuallyJsService {
202
202
  this.uiListeners.push(cb);
203
203
  }
204
204
  }
205
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: VisuallyJsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
206
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: VisuallyJsService, providedIn: 'root' }); }
205
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: VisuallyJsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
206
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: VisuallyJsService, providedIn: 'root' }); }
207
207
  }
208
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: VisuallyJsService, decorators: [{
208
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: VisuallyJsService, decorators: [{
209
209
  type: Injectable,
210
210
  args: [{
211
211
  providedIn: 'root',
@@ -257,16 +257,16 @@ class MiniviewComponent {
257
257
  this.$miniview.invalidate();
258
258
  }
259
259
  }
260
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MiniviewComponent, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
261
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MiniviewComponent, selector: "vjs-miniview", inputs: { elementFilter: "elementFilter", typeFunction: "typeFunction", activeTracking: "activeTracking", clickToCenter: "clickToCenter", showLasso: "showLasso", trackSelection: "trackSelection" }, ngImport: i0, template: `<div></div>`, isInline: true }); }
260
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MiniviewComponent, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
261
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MiniviewComponent, selector: "vjs-miniview", inputs: { elementFilter: "elementFilter", typeFunction: "typeFunction", activeTracking: "activeTracking", clickToCenter: "clickToCenter", showLasso: "showLasso", trackSelection: "trackSelection" }, ngImport: i0, template: `<div></div>`, isInline: true }); }
262
262
  }
263
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MiniviewComponent, decorators: [{
263
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MiniviewComponent, decorators: [{
264
264
  type: Component,
265
265
  args: [{
266
266
  selector: 'vjs-miniview',
267
267
  template: `<div></div>`
268
268
  }]
269
- }], ctorParameters: function () { return [{ type: i0.NgZone }]; }, propDecorators: { elementFilter: [{
269
+ }], ctorParameters: () => [{ type: i0.NgZone }], propDecorators: { elementFilter: [{
270
270
  type: Input
271
271
  }], typeFunction: [{
272
272
  type: Input
@@ -307,15 +307,31 @@ class BaseVertexComponent {
307
307
  this.$data = signal(undefined);
308
308
 
309
309
  this.zoom = signal(1);
310
+
311
+ this.sourceEdges = signal([]);
312
+
313
+ this.allSourceEdges = signal([]);
314
+
315
+ this.targetEdges = signal([]);
316
+
317
+ this.allTargetEdges = signal([]);
310
318
  }
311
319
 
312
320
  ngOnInit() {
313
321
  this.$data.set(this.data);
314
- this._zoomHandler = (p) => {
315
- this.zoom.set(p.zoom);
316
- };
317
- this.zoom.set(this.surface.getZoom());
318
- this.surface.bind(EVENT_ZOOM, this._zoomHandler);
322
+ if (this.surface) {
323
+ this._zoomHandler = (p) => {
324
+ this.zoom.set(p.zoom);
325
+ };
326
+ this.zoom.set(this.surface.getZoom());
327
+ this.surface.bind(EVENT_ZOOM, this._zoomHandler);
328
+ }
329
+ }
330
+ $updateEdges() {
331
+ this.sourceEdges.set(this.getVertex().getSourceEdges());
332
+ this.allSourceEdges.set(this.getVertex().getAllSourceEdges());
333
+ this.targetEdges.set(this.getVertex().getTargetEdges());
334
+ this.allTargetEdges.set(this.getVertex().getAllTargetEdges());
319
335
  }
320
336
 
321
337
  getVertex() {
@@ -323,11 +339,12 @@ class BaseVertexComponent {
323
339
  }
324
340
 
325
341
  ngOnDestroy() {
326
- this.surface.unbind(EVENT_ZOOM, this._zoomHandler);
327
- delete this._el._visuallyJsNgComponent._el;
342
+ this.surface?.unbind(EVENT_ZOOM, this._zoomHandler);
343
+ delete this._el?._visuallyJsNgComponent._el;
328
344
  delete this._el;
329
345
  delete this.model;
330
346
  delete this.surface;
347
+ delete this.paper;
331
348
  }
332
349
 
333
350
  removeVertex() {
@@ -359,16 +376,16 @@ class BaseVertexComponent {
359
376
  }
360
377
 
361
378
  cloneVertex(options) {
362
- this.surface.cloneVertex(this.getVertex(), options);
379
+ this.surface?.cloneVertex(this.getVertex(), options);
363
380
  }
364
381
 
365
382
  flashVertex(duration, animName) {
366
- this.surface.flashVertex(this.getVertex(), duration, animName);
383
+ this.surface?.flashVertex(this.getVertex(), duration, animName);
367
384
  }
368
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BaseVertexComponent, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
369
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BaseVertexComponent }); }
385
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BaseVertexComponent, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
386
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BaseVertexComponent }); }
370
387
  }
371
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BaseVertexComponent, decorators: [{
388
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BaseVertexComponent, decorators: [{
372
389
  type: Injectable
373
390
  }], propDecorators: { data: [{
374
391
  type: Input
@@ -376,6 +393,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
376
393
  type: Input
377
394
  }], surface: [{
378
395
  type: Input
396
+ }], paper: [{
397
+ type: Input
398
+ }], ui: [{
399
+ type: Input
379
400
  }], modelObject: [{
380
401
  type: Input
381
402
  }] } });
@@ -414,10 +435,10 @@ class BaseGroupComponent extends BaseVertexComponent {
414
435
  getPort(portId) {
415
436
  return this.getGroup().getPort(portId);
416
437
  }
417
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BaseGroupComponent, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
418
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BaseGroupComponent }); }
438
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BaseGroupComponent, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
439
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BaseGroupComponent }); }
419
440
  }
420
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BaseGroupComponent, decorators: [{
441
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BaseGroupComponent, decorators: [{
421
442
  type: Injectable
422
443
  }] });
423
444
 
@@ -427,10 +448,10 @@ class DefaultGroupComponent extends BaseGroupComponent {
427
448
  super(...arguments);
428
449
  this.label = computed(() => this.$data().label || "");
429
450
  }
430
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DefaultGroupComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
431
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DefaultGroupComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `<div class="vjs-default-group">{{label()}}</div>`, isInline: true }); }
451
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DefaultGroupComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
452
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: DefaultGroupComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `<div class="vjs-default-group">{{label()}}</div>`, isInline: true }); }
432
453
  }
433
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DefaultGroupComponent, decorators: [{
454
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DefaultGroupComponent, decorators: [{
434
455
  type: Component,
435
456
  args: [{
436
457
  template: `<div class="vjs-default-group">{{label()}}</div>`
@@ -469,10 +490,10 @@ class BaseNodeComponent extends BaseVertexComponent {
469
490
  flashNode(duration, animName) {
470
491
  this.flashVertex(duration, animName);
471
492
  }
472
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BaseNodeComponent, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
473
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BaseNodeComponent }); }
493
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BaseNodeComponent, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
494
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BaseNodeComponent }); }
474
495
  }
475
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BaseNodeComponent, decorators: [{
496
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BaseNodeComponent, decorators: [{
476
497
  type: Injectable
477
498
  }] });
478
499
 
@@ -482,10 +503,10 @@ class DefaultNodeComponent extends BaseNodeComponent {
482
503
  super(...arguments);
483
504
  this.label = computed(() => this.$data().label || "");
484
505
  }
485
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DefaultNodeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
486
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DefaultNodeComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `<div class="vjs-default-node">{{label()}}</div>`, isInline: true }); }
506
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DefaultNodeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
507
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: DefaultNodeComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `<div class="vjs-default-node">{{label()}}</div>`, isInline: true }); }
487
508
  }
488
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DefaultNodeComponent, decorators: [{
509
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DefaultNodeComponent, decorators: [{
489
510
  type: Component,
490
511
  args: [{
491
512
  template: `<div class="vjs-default-node">{{label()}}</div>`
@@ -547,15 +568,15 @@ class BasePortComponent {
547
568
  ngOnDestroy() {
548
569
  this.parent.model.unbind(EVENT_PORT_UPDATED, this._signalBinder);
549
570
  }
550
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BasePortComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
551
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: BasePortComponent, selector: "vjs-base-port", inputs: { parent: "parent", data: "data" }, ngImport: i0 }); }
571
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BasePortComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
572
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: BasePortComponent, selector: "vjs-base-port", inputs: { parent: "parent", data: "data" }, ngImport: i0 }); }
552
573
  }
553
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BasePortComponent, decorators: [{
574
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BasePortComponent, decorators: [{
554
575
  type: Directive,
555
576
  args: [{
556
577
  selector: "vjs-base-port",
557
578
  }]
558
- }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { parent: [{
579
+ }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { parent: [{
559
580
  type: Input
560
581
  }], data: [{
561
582
  type: Input
@@ -573,13 +594,36 @@ class BrowserUIAngularModel extends BrowserUIModel {
573
594
  class SurfaceComponent {
574
595
  constructor() {
575
596
 
597
+ this.data = input();
598
+
599
+ this.url = input();
600
+
576
601
  this.vertexEvent = new EventEmitter();
577
602
  this.$el = inject(ElementRef);
578
603
  this.$viewContainerRef = inject(ViewContainerRef);
579
604
  this.$ngZone = inject(NgZone);
580
605
  this.$vjs = inject(VisuallyJsService);
606
+ this._dataEffect = effect(() => {
607
+ const currentData = this.data();
608
+ if (currentData) {
609
+ if (this.model) {
610
+ this.model.clear();
611
+ this.model.load({ data: currentData });
612
+ }
613
+ }
614
+ });
615
+ this._urlEffect = effect(() => {
616
+ const currentUrl = this.url();
617
+ if (currentUrl) {
618
+ // Respond to changes in the url here.
619
+ // For example, if you need to reload the model with new data:
620
+ if (this.model) {
621
+ this.model.clear();
622
+ this.model.load({ url: currentUrl });
623
+ }
624
+ }
625
+ });
581
626
  }
582
- // $vjsSignals = inject(VisuallyJsSignalService)
583
627
 
584
628
  getNativeElement(component) {
585
629
  return component.location.nativeElement.childNodes[0];
@@ -638,6 +682,32 @@ class SurfaceComponent {
638
682
  }
639
683
  }
640
684
  }
685
+ edgeAddedRemoved(params) {
686
+ const info = this.surface.getObjectInfo(params.edge.source, false);
687
+ if (info.el) {
688
+ this._getComponentThen(info.el, (component) => {
689
+ try {
690
+ component.$updateEdges();
691
+ if (component.changeDetectorRef) {
692
+ component.changeDetectorRef.detectChanges();
693
+ }
694
+ }
695
+ catch (e) { }
696
+ }, false);
697
+ }
698
+ const info2 = this.surface.getObjectInfo(params.edge.target, false);
699
+ if (info2.el && info.obj.getFullId() !== info2.obj.getFullId()) {
700
+ this._getComponentThen(info2.el, (component) => {
701
+ try {
702
+ component.$updateEdges();
703
+ if (component.changeDetectorRef) {
704
+ component.changeDetectorRef.detectChanges();
705
+ }
706
+ }
707
+ catch (e) { }
708
+ }, false);
709
+ }
710
+ }
641
711
 
642
712
  _processAngularOverlays(view) {
643
713
  const self = this;
@@ -670,7 +740,10 @@ class SurfaceComponent {
670
740
  angularOverlayComponent.data = edge.data;
671
741
  }
672
742
  angularOverlayComponent.model = self.model;
743
+ // backwards compat: remove at some point
744
+ ;
673
745
  angularOverlayComponent.surface = self.surface;
746
+ angularOverlayComponent.ui = self.surface;
674
747
  createdComponent.changeDetectorRef.detectChanges();
675
748
  return el;
676
749
  };
@@ -733,6 +806,7 @@ class SurfaceComponent {
733
806
  _componentRef.data = data || {};
734
807
  _componentRef.model = model;
735
808
  _componentRef.surface = surface;
809
+ _componentRef.ui = surface;
736
810
  _componentRef.modelObject = modelObject;
737
811
  // get the reflection data for the component
738
812
  const componentInfo = reflectComponentType(component);
@@ -804,11 +878,17 @@ class SurfaceComponent {
804
878
  model.bind(EVENT_PORT_UPDATED, this.portUpdateFn);
805
879
  this.edgeUpdateFn = this.edgeUpdated.bind(this);
806
880
  model.bind(EVENT_EDGE_UPDATED, this.edgeUpdateFn);
807
- if (this.data) {
808
- this.model.load({ data: this.data });
881
+ this.edgeAddFn = this.edgeAddedRemoved.bind(this);
882
+ this.edgeRemoveFn = this.edgeAddedRemoved.bind(this);
883
+ model.bind(EVENT_EDGE_ADDED, this.edgeAddFn);
884
+ model.bind(EVENT_EDGE_REMOVED, this.edgeRemoveFn);
885
+ const initialData = this.data();
886
+ const initialUrl = this.url();
887
+ if (initialData) {
888
+ this.model.load({ data: initialData });
809
889
  }
810
- else if (this.url) {
811
- this.model.load({ url: this.url });
890
+ else if (initialUrl) {
891
+ this.model.load({ url: initialUrl });
812
892
  }
813
893
  });
814
894
  }
@@ -820,13 +900,15 @@ class SurfaceComponent {
820
900
  this.model.unbind(EVENT_PORT_ADDED, this.nodeUpdateFn);
821
901
  this.model.unbind(EVENT_PORT_UPDATED, this.portUpdateFn);
822
902
  this.model.unbind(EVENT_EDGE_UPDATED, this.edgeUpdateFn);
903
+ this.model.unbind(EVENT_EDGE_ADDED, this.edgeAddFn);
904
+ this.model.unbind(EVENT_EDGE_REMOVED, this.edgeRemoveFn);
823
905
  this.model.unbind(EVENT_DATA_LOAD_END, this.dataLoadEndFn);
824
906
  this.surface.unbind(EVENT_INTERNAL_CONNECTION, this.edgeAddFn);
825
907
  }
826
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SurfaceComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
827
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SurfaceComponent, selector: "vjs-surface", inputs: { inputModel: ["model", "inputModel"], viewOptions: "viewOptions", renderOptions: "renderOptions", modelOptions: "modelOptions", data: "data", url: "url" }, outputs: { vertexEvent: "vertexEvent" }, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true }); }
908
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SurfaceComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
909
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.3.12", type: SurfaceComponent, selector: "vjs-surface", inputs: { inputModel: { classPropertyName: "inputModel", publicName: "model", isSignal: false, isRequired: false, transformFunction: null }, viewOptions: { classPropertyName: "viewOptions", publicName: "viewOptions", isSignal: false, isRequired: false, transformFunction: null }, renderOptions: { classPropertyName: "renderOptions", publicName: "renderOptions", isSignal: false, isRequired: false, transformFunction: null }, modelOptions: { classPropertyName: "modelOptions", publicName: "modelOptions", isSignal: false, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, url: { classPropertyName: "url", publicName: "url", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { vertexEvent: "vertexEvent" }, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true }); }
828
910
  }
829
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SurfaceComponent, decorators: [{
911
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SurfaceComponent, decorators: [{
830
912
  type: Component,
831
913
  args: [{
832
914
  selector: "vjs-surface",
@@ -841,10 +923,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
841
923
  type: Input
842
924
  }], modelOptions: [{
843
925
  type: Input
844
- }], data: [{
845
- type: Input
846
- }], url: [{
847
- type: Input
848
926
  }], vertexEvent: [{
849
927
  type: Output
850
928
  }] } });
@@ -895,16 +973,16 @@ class ShapePaletteComponent {
895
973
  }
896
974
  });
897
975
  }
898
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ShapePaletteComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
899
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ShapePaletteComponent, selector: "vjs-shape-palette", inputs: { initialSet: "initialSet", dragSize: "dragSize", iconSize: "iconSize", fill: "fill", outline: "outline", showAllMessage: "showAllMessage", selectAfterDrop: "selectAfterDrop", paletteStrokeWidth: "paletteStrokeWidth", onVertexAdded: "onVertexAdded", dataGenerator: "dataGenerator", preparedShapes: "preparedShapes" }, ngImport: i0, template: `<div></div>`, isInline: true }); }
976
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ShapePaletteComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
977
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ShapePaletteComponent, selector: "vjs-shape-palette", inputs: { initialSet: "initialSet", dragSize: "dragSize", iconSize: "iconSize", fill: "fill", outline: "outline", showAllMessage: "showAllMessage", selectAfterDrop: "selectAfterDrop", paletteStrokeWidth: "paletteStrokeWidth", onVertexAdded: "onVertexAdded", dataGenerator: "dataGenerator", preparedShapes: "preparedShapes" }, ngImport: i0, template: `<div></div>`, isInline: true }); }
900
978
  }
901
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ShapePaletteComponent, decorators: [{
979
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ShapePaletteComponent, decorators: [{
902
980
  type: Component,
903
981
  args: [{
904
982
  template: `<div></div>`,
905
983
  selector: `vjs-shape-palette`
906
984
  }]
907
- }], ctorParameters: function () { return []; }, propDecorators: { initialSet: [{
985
+ }], ctorParameters: () => [], propDecorators: { initialSet: [{
908
986
  type: Input
909
987
  }], dragSize: [{
910
988
  type: Input
@@ -967,8 +1045,8 @@ class ShapeComponent {
967
1045
  ngOnChanges(changes) {
968
1046
  this._render();
969
1047
  }
970
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ShapeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
971
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ShapeComponent, selector: "vjs-shape", inputs: { obj: "obj", width: "width", height: "height", showLabels: "showLabels", labelProperty: "labelProperty", labelStrokeWidth: "labelStrokeWidth", label: "label", multilineLabels: "multilineLabels", labelFillRatio: "labelFillRatio", font: "font" }, usesOnChanges: true, ngImport: i0, template: `<svg:svg
1048
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ShapeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1049
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ShapeComponent, selector: "vjs-shape", inputs: { obj: "obj", width: "width", height: "height", showLabels: "showLabels", labelProperty: "labelProperty", labelStrokeWidth: "labelStrokeWidth", label: "label", multilineLabels: "multilineLabels", labelFillRatio: "labelFillRatio", font: "font" }, usesOnChanges: true, ngImport: i0, template: `<svg:svg
972
1050
  [attr.stroke-width]="obj.outlineWidth || 2"
973
1051
  attr.fill="{{ obj.fill }}"
974
1052
  attr.stroke="{{ obj.outline }}"
@@ -977,7 +1055,7 @@ class ShapeComponent {
977
1055
  attr.viewBox="0 0 {{ width }} {{ height }}"
978
1056
  ></svg:svg>`, isInline: true }); }
979
1057
  }
980
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ShapeComponent, decorators: [{
1058
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ShapeComponent, decorators: [{
981
1059
  type: Component,
982
1060
  args: [{
983
1061
  template: `<svg:svg
@@ -990,7 +1068,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
990
1068
  ></svg:svg>`,
991
1069
  selector: `vjs-shape`,
992
1070
  }]
993
- }], ctorParameters: function () { return []; }, propDecorators: { obj: [{
1071
+ }], ctorParameters: () => [], propDecorators: { obj: [{
994
1072
  type: Input
995
1073
  }], width: [{
996
1074
  type: Input
@@ -1116,10 +1194,10 @@ class ControlsComponent {
1116
1194
  t.clear();
1117
1195
  }
1118
1196
  }
1119
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ControlsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1120
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ControlsComponent, selector: "vjs-controls", inputs: { undoRedo: "undoRedo", zoomToExtents: "zoomToExtents", zoomButtons: "zoomButtons", clear: "clear", clearMessage: "clearMessage", buttons: "buttons", orientation: "orientation" }, ngImport: i0, template: "<div class=\"vjs-controls\" [attr.data-vjs-orientation]=\"orientation\">\n <i *ngIf=\"showPanButton\" class=\"vjs-pan-mode vjs-selected-mode\" data-mode=\"pan\" title=\"Pan Mode\" (click)=\"panMode()\">\n <svg viewBox=\"0 0 24 24\" stroke=\"currentColor\" fill=\"none\">\n <path d=\"M8 13v-7.5a1.5 1.5 0 0 1 3 0v6.5 M11 5.5v-2a1.5 1.5 0 1 1 3 0v8.5 M14 5.5a1.5 1.5 0 0 1 3 0v6.5 M17 7.5a1.5 1.5 0 0 1 3 0v8.5a6 6 0 0 1 -6 6h-2h.208a6 6 0 0 1 -5.012 -2.7a69.74 69.74 0 0 1 -.196 -.3c-.312 -.479 -1.407 -2.388 -3.286 -5.728a1.5 1.5 0 0 1 .536 -2.022a1.867 1.867 0 0 1 2.28 .28l1.47 1.47\"></path>\n </svg>\n </i>\n <i *ngIf=\"showLassoButton\" class=\"vjs-select-mode\" data-mode=\"select\" title=\"Select Mode\" (click)=\"selectMode()\">\n <svg fill=\"currentColor\" viewBox=\"0 0 24 24\" stroke=\"currentColor\">\n <path d=\"M18.2848192,17.5777124 L20.8535534,20.1464466 C21.0488155,20.3417088 21.0488155,20.6582912 20.8535534,20.8535534 C20.6582912,21.0488155 20.3417088,21.0488155 20.1464466,20.8535534 L17.5777124,18.2848192 L15.9160251,20.7773501 C15.6899572,21.116452 15.1749357,21.0571624 15.0318354,20.6755617 L12.0318354,12.6755617 C11.8811067,12.2736185 12.2736185,11.8811067 12.6755617,12.0318354 L20.6755617,15.0318354 C21.0571624,15.1749357 21.116452,15.6899572 20.7773501,15.9160251 L18.2848192,17.5777124 L18.2848192,17.5777124 Z M17.2312404,17.0782479 L19.4104716,15.6254271 L13.3544004,13.3544004 L15.6254271,19.4104716 L17.0782479,17.2312404 C17.0974475,17.2011742 17.1201804,17.1727128 17.1464466,17.1464466 C17.1727128,17.1201804 17.2011742,17.0974475 17.2312404,17.0782479 L17.2312404,17.0782479 Z M5.5,3 C5.77614237,3 6,3.22385763 6,3.5 C6,3.77614237 5.77614237,4 5.5,4 C4.67157288,4 4,4.67157288 4,5.5 C4,5.77614237 3.77614237,6 3.5,6 C3.22385763,6 3,5.77614237 3,5.5 C3,4.11928813 4.11928813,3 5.5,3 Z M8.5,4 C8.22385763,4 8,3.77614237 8,3.5 C8,3.22385763 8.22385763,3 8.5,3 L10.5,3 C10.7761424,3 11,3.22385763 11,3.5 C11,3.77614237 10.7761424,4 10.5,4 L8.5,4 Z M13.5,4 C13.2238576,4 13,3.77614237 13,3.5 C13,3.22385763 13.2238576,3 13.5,3 L15.5,3 C15.7761424,3 16,3.22385763 16,3.5 C16,3.77614237 15.7761424,4 15.5,4 L13.5,4 Z M8.5,21 C8.22385763,21 8,20.7761424 8,20.5 C8,20.2238576 8.22385763,20 8.5,20 L10.5,20 C10.7761424,20 11,20.2238576 11,20.5 C11,20.7761424 10.7761424,21 10.5,21 L8.5,21 Z M3,8.5 C3,8.22385763 3.22385763,8 3.5,8 C3.77614237,8 4,8.22385763 4,8.5 L4,10.5 C4,10.7761424 3.77614237,11 3.5,11 C3.22385763,11 3,10.7761424 3,10.5 L3,8.5 Z M3,13.5 C3,13.2238576 3.22385763,13 3.5,13 C3.77614237,13 4,13.2238576 4,13.5 L4,15.5 C4,15.7761424 3.77614237,16 3.5,16 C3.22385763,16 3,15.7761424 3,15.5 L3,13.5 Z M3,18.5 C3,18.2238576 3.22385763,18 3.5,18 C3.77614237,18 4,18.2238576 4,18.5 C4,19.3284271 4.67157288,20 5.5,20 C5.77614237,20 6,20.2238576 6,20.5 C6,20.7761424 5.77614237,21 5.5,21 C4.11928813,21 3,19.8807119 3,18.5 Z M21,10.5 C21,10.7761424 20.7761424,11 20.5,11 C20.2238576,11 20,10.7761424 20,10.5 L20,8.5 C20,8.22385763 20.2238576,8 20.5,8 C20.7761424,8 21,8.22385763 21,8.5 L21,10.5 Z M21,5.5 C21,5.77614237 20.7761424,6 20.5,6 C20.2238576,6 20,5.77614237 20,5.5 C20,4.67157288 19.3284271,4 18.5,4 C18.2238576,4 18,3.77614237 18,3.5 C18,3.22385763 18.2238576,3 18.5,3 C19.8807119,3 21,4.11928813 21,5.5 Z\"></path>\n </svg>\n </i>\n\n <i *ngFor=\"let button of modeButtons\" data-mode=\"{{ button.mode }}\" class=\"{{ button.class }}\" title=\"{{ button.title }}\"></i>\n\n <i *ngIf=\"zoomToExtents\" class=\"vjs-zoom-to-fit\" data-reset=\"true\"title=\"Zoom To Fit\" (click)=\"zoomToFit()\">\n <svg viewBox=\"0 0 32 30\" stroke=\"currentColor\" fill=\"currentColor\"><path d=\"M3.692 4.63c0-.53.4-.938.939-.938h5.215V0H4.708C2.13 0 0 2.054 0 4.63v5.216h3.692V4.631zM27.354 0h-5.2v3.692h5.17c.53 0 .984.4.984.939v5.215H32V4.631A4.624 4.624 0 0027.354 0zm.954 24.83c0 .532-.4.94-.939.94h-5.215v3.768h5.215c2.577 0 4.631-2.13 4.631-4.707v-5.139h-3.692v5.139zm-23.677.94c-.531 0-.939-.4-.939-.94v-5.138H0v5.139c0 2.577 2.13 4.707 4.708 4.707h5.138V25.77H4.631z\"></path></svg>\n </i>\n\n <i *ngIf=\"zoomButtons\" class=\"vjs-zoom-in\" data-zoom-in=\"true\" title=\"Zoom In\" (click)=\"zoomIn()\">\n <svg viewBox=\"0 0 32 32\" stroke=\"currentColor\" fill=\"currentColor\"><path d=\"M 13 6 L 13 20 M 6 13 L 20 13 M 22,22 L 30,30 M1, 13 a 12,12 0 1,0 24,0 a 12,12 0 1,0 -24,0\"></path></svg>\n </i>\n\n <i *ngIf=\"zoomButtons\" class=\"vjs-zoom-out\" data-zoom-out=\"true\" title=\"Zoom Out\" (click)=\"zoomOut()\">\n <svg viewBox=\"0 0 32 32\" stroke=\"currentColor\" fill=\"currentColor\"><path d=\"M 6 13 L 20 13 M 22,22 L 30,30 M1, 13 a 12,12 0 1,0 24,0 a 12,12 0 1,0 -24,0\"></path></svg>\n </i>\n\n <i *ngIf=\"undoRedo\" class=\"vjs-undo\" data-undo=\"true\" title=\"Undo last action\" (click)=\"undo()\"></i>\n <i *ngIf=\"undoRedo\" class=\"vjs-redo\" data-redo=\"true\" title=\"Redo last action\" (click)=\"redo()\"></i>\n <i class=\"vjs-controls-reset-selection\" title=\"Clear selection\" (click)=\"resetSelection()\">\n <svg viewBox=\"0 0 24 24\" stroke=\"currentColor\" fill=\"currentColor\"><path d=\"M2,5 V2 H5 M9,2 H11 M13,2 H15 M19,2 H22 V5 M22,9 V11 M22,13 V15 M22,19 V22 H19 M15,22 H13 M11,22 H9 M5,22 H2 V19 M2,15 V13 M2,11 V9 M9,9 L15,15 M15,9 L9,15\"></path></svg>\n </i>\n <i *ngIf=\"clear\" class=\"vjs-clear-dataset\" [title]=\"clearMessage\" (click)=\"doClear()\">\n <svg viewBox=\"0 0 24 24\" stroke=\"currentColor\" fill=\"currentColor\"><path d=\"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"></path></svg>\n </i>\n <i *ngFor=\"let button of otherButtons\" class=\"{{ button.class }}\" title=\"{{ button.title }}\"></i>\n </div>", isInline: true, dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
1197
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ControlsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1198
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ControlsComponent, selector: "vjs-controls", inputs: { undoRedo: "undoRedo", zoomToExtents: "zoomToExtents", zoomButtons: "zoomButtons", clear: "clear", clearMessage: "clearMessage", buttons: "buttons", orientation: "orientation" }, ngImport: i0, template: "<div class=\"vjs-controls\" [attr.data-vjs-orientation]=\"orientation\">\n <i *ngIf=\"showPanButton\" class=\"vjs-pan-mode vjs-selected-mode\" data-mode=\"pan\" title=\"Pan Mode\" (click)=\"panMode()\">\n <svg viewBox=\"0 0 24 24\" stroke=\"currentColor\" fill=\"none\">\n <path d=\"M8 13v-7.5a1.5 1.5 0 0 1 3 0v6.5 M11 5.5v-2a1.5 1.5 0 1 1 3 0v8.5 M14 5.5a1.5 1.5 0 0 1 3 0v6.5 M17 7.5a1.5 1.5 0 0 1 3 0v8.5a6 6 0 0 1 -6 6h-2h.208a6 6 0 0 1 -5.012 -2.7a69.74 69.74 0 0 1 -.196 -.3c-.312 -.479 -1.407 -2.388 -3.286 -5.728a1.5 1.5 0 0 1 .536 -2.022a1.867 1.867 0 0 1 2.28 .28l1.47 1.47\"></path>\n </svg>\n </i>\n <i *ngIf=\"showLassoButton\" class=\"vjs-select-mode\" data-mode=\"select\" title=\"Select Mode\" (click)=\"selectMode()\">\n <svg fill=\"currentColor\" viewBox=\"0 0 24 24\" stroke=\"currentColor\">\n <path d=\"M18.2848192,17.5777124 L20.8535534,20.1464466 C21.0488155,20.3417088 21.0488155,20.6582912 20.8535534,20.8535534 C20.6582912,21.0488155 20.3417088,21.0488155 20.1464466,20.8535534 L17.5777124,18.2848192 L15.9160251,20.7773501 C15.6899572,21.116452 15.1749357,21.0571624 15.0318354,20.6755617 L12.0318354,12.6755617 C11.8811067,12.2736185 12.2736185,11.8811067 12.6755617,12.0318354 L20.6755617,15.0318354 C21.0571624,15.1749357 21.116452,15.6899572 20.7773501,15.9160251 L18.2848192,17.5777124 L18.2848192,17.5777124 Z M17.2312404,17.0782479 L19.4104716,15.6254271 L13.3544004,13.3544004 L15.6254271,19.4104716 L17.0782479,17.2312404 C17.0974475,17.2011742 17.1201804,17.1727128 17.1464466,17.1464466 C17.1727128,17.1201804 17.2011742,17.0974475 17.2312404,17.0782479 L17.2312404,17.0782479 Z M5.5,3 C5.77614237,3 6,3.22385763 6,3.5 C6,3.77614237 5.77614237,4 5.5,4 C4.67157288,4 4,4.67157288 4,5.5 C4,5.77614237 3.77614237,6 3.5,6 C3.22385763,6 3,5.77614237 3,5.5 C3,4.11928813 4.11928813,3 5.5,3 Z M8.5,4 C8.22385763,4 8,3.77614237 8,3.5 C8,3.22385763 8.22385763,3 8.5,3 L10.5,3 C10.7761424,3 11,3.22385763 11,3.5 C11,3.77614237 10.7761424,4 10.5,4 L8.5,4 Z M13.5,4 C13.2238576,4 13,3.77614237 13,3.5 C13,3.22385763 13.2238576,3 13.5,3 L15.5,3 C15.7761424,3 16,3.22385763 16,3.5 C16,3.77614237 15.7761424,4 15.5,4 L13.5,4 Z M8.5,21 C8.22385763,21 8,20.7761424 8,20.5 C8,20.2238576 8.22385763,20 8.5,20 L10.5,20 C10.7761424,20 11,20.2238576 11,20.5 C11,20.7761424 10.7761424,21 10.5,21 L8.5,21 Z M3,8.5 C3,8.22385763 3.22385763,8 3.5,8 C3.77614237,8 4,8.22385763 4,8.5 L4,10.5 C4,10.7761424 3.77614237,11 3.5,11 C3.22385763,11 3,10.7761424 3,10.5 L3,8.5 Z M3,13.5 C3,13.2238576 3.22385763,13 3.5,13 C3.77614237,13 4,13.2238576 4,13.5 L4,15.5 C4,15.7761424 3.77614237,16 3.5,16 C3.22385763,16 3,15.7761424 3,15.5 L3,13.5 Z M3,18.5 C3,18.2238576 3.22385763,18 3.5,18 C3.77614237,18 4,18.2238576 4,18.5 C4,19.3284271 4.67157288,20 5.5,20 C5.77614237,20 6,20.2238576 6,20.5 C6,20.7761424 5.77614237,21 5.5,21 C4.11928813,21 3,19.8807119 3,18.5 Z M21,10.5 C21,10.7761424 20.7761424,11 20.5,11 C20.2238576,11 20,10.7761424 20,10.5 L20,8.5 C20,8.22385763 20.2238576,8 20.5,8 C20.7761424,8 21,8.22385763 21,8.5 L21,10.5 Z M21,5.5 C21,5.77614237 20.7761424,6 20.5,6 C20.2238576,6 20,5.77614237 20,5.5 C20,4.67157288 19.3284271,4 18.5,4 C18.2238576,4 18,3.77614237 18,3.5 C18,3.22385763 18.2238576,3 18.5,3 C19.8807119,3 21,4.11928813 21,5.5 Z\"></path>\n </svg>\n </i>\n\n <i *ngFor=\"let button of modeButtons\" data-mode=\"{{ button.mode }}\" class=\"{{ button.class }}\" title=\"{{ button.title }}\"></i>\n\n <i *ngIf=\"zoomToExtents\" class=\"vjs-zoom-to-fit\" data-reset=\"true\"title=\"Zoom To Fit\" (click)=\"zoomToFit()\">\n <svg viewBox=\"0 0 32 30\" stroke=\"currentColor\" fill=\"currentColor\"><path d=\"M3.692 4.63c0-.53.4-.938.939-.938h5.215V0H4.708C2.13 0 0 2.054 0 4.63v5.216h3.692V4.631zM27.354 0h-5.2v3.692h5.17c.53 0 .984.4.984.939v5.215H32V4.631A4.624 4.624 0 0027.354 0zm.954 24.83c0 .532-.4.94-.939.94h-5.215v3.768h5.215c2.577 0 4.631-2.13 4.631-4.707v-5.139h-3.692v5.139zm-23.677.94c-.531 0-.939-.4-.939-.94v-5.138H0v5.139c0 2.577 2.13 4.707 4.708 4.707h5.138V25.77H4.631z\"></path></svg>\n </i>\n\n <i *ngIf=\"zoomButtons\" class=\"vjs-zoom-in\" data-zoom-in=\"true\" title=\"Zoom In\" (click)=\"zoomIn()\">\n <svg viewBox=\"0 0 32 32\" stroke=\"currentColor\" fill=\"currentColor\"><path d=\"M 13 6 L 13 20 M 6 13 L 20 13 M 22,22 L 30,30 M1, 13 a 12,12 0 1,0 24,0 a 12,12 0 1,0 -24,0\"></path></svg>\n </i>\n\n <i *ngIf=\"zoomButtons\" class=\"vjs-zoom-out\" data-zoom-out=\"true\" title=\"Zoom Out\" (click)=\"zoomOut()\">\n <svg viewBox=\"0 0 32 32\" stroke=\"currentColor\" fill=\"currentColor\"><path d=\"M 6 13 L 20 13 M 22,22 L 30,30 M1, 13 a 12,12 0 1,0 24,0 a 12,12 0 1,0 -24,0\"></path></svg>\n </i>\n\n <i *ngIf=\"undoRedo\" class=\"vjs-undo\" data-undo=\"true\" title=\"Undo last action\" (click)=\"undo()\"></i>\n <i *ngIf=\"undoRedo\" class=\"vjs-redo\" data-redo=\"true\" title=\"Redo last action\" (click)=\"redo()\"></i>\n <i class=\"vjs-controls-reset-selection\" title=\"Clear selection\" (click)=\"resetSelection()\">\n <svg viewBox=\"0 0 24 24\" stroke=\"currentColor\" fill=\"currentColor\"><path d=\"M2,5 V2 H5 M9,2 H11 M13,2 H15 M19,2 H22 V5 M22,9 V11 M22,13 V15 M22,19 V22 H19 M15,22 H13 M11,22 H9 M5,22 H2 V19 M2,15 V13 M2,11 V9 M9,9 L15,15 M15,9 L9,15\"></path></svg>\n </i>\n <i *ngIf=\"clear\" class=\"vjs-clear-dataset\" [title]=\"clearMessage\" (click)=\"doClear()\">\n <svg viewBox=\"0 0 24 24\" stroke=\"currentColor\" fill=\"currentColor\"><path d=\"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"></path></svg>\n </i>\n <i *ngFor=\"let button of otherButtons\" class=\"{{ button.class }}\" title=\"{{ button.title }}\"></i>\n </div>", isInline: true, dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
1121
1199
  }
1122
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ControlsComponent, decorators: [{
1200
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ControlsComponent, decorators: [{
1123
1201
  type: Component,
1124
1202
  args: [{
1125
1203
  selector: "vjs-controls",
@@ -1160,7 +1238,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
1160
1238
  <i *ngFor="let button of otherButtons" class="{{ button.class }}" title="{{ button.title }}"></i>
1161
1239
  </div>`,
1162
1240
  }]
1163
- }], ctorParameters: function () { return []; }, propDecorators: { undoRedo: [{
1241
+ }], ctorParameters: () => [], propDecorators: { undoRedo: [{
1164
1242
  type: Input
1165
1243
  }], zoomToExtents: [{
1166
1244
  type: Input
@@ -1199,7 +1277,7 @@ class EdgeTypePickerComponent {
1199
1277
  });
1200
1278
  const current = inspector.getValue(this.propertyName) || '';
1201
1279
  this.edgeTypePicker = new EdgeTypePicker(inspector.$ui, this.el.nativeElement, this.resolveMappings(), current, (p, v) => {
1202
- inspector.setValue(this.propertyName, v);
1280
+ inspector.setValue(this.propertyName, v, null);
1203
1281
  this.changeEvent.emit(v);
1204
1282
  });
1205
1283
  this.edgeTypePicker.render(this.propertyName, inspector._currentCommonData);
@@ -1207,16 +1285,16 @@ class EdgeTypePickerComponent {
1207
1285
  }
1208
1286
  });
1209
1287
  }
1210
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EdgeTypePickerComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
1211
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EdgeTypePickerComponent, selector: "vjs-edge-type", inputs: { propertyName: "propertyName", edgeMappings: "edgeMappings" }, outputs: { changeEvent: "changeEvent" }, ngImport: i0, template: `<div [attr.vjs-att]="propertyName"></div>`, isInline: true }); }
1288
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: EdgeTypePickerComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
1289
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: EdgeTypePickerComponent, selector: "vjs-edge-type", inputs: { propertyName: "propertyName", edgeMappings: "edgeMappings" }, outputs: { changeEvent: "changeEvent" }, ngImport: i0, template: `<div [attr.vjs-att]="propertyName"></div>`, isInline: true }); }
1212
1290
  }
1213
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EdgeTypePickerComponent, decorators: [{
1291
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: EdgeTypePickerComponent, decorators: [{
1214
1292
  type: Component,
1215
1293
  args: [{
1216
1294
  selector: "vjs-edge-type",
1217
1295
  template: `<div [attr.vjs-att]="propertyName"></div>`
1218
1296
  }]
1219
- }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { propertyName: [{
1297
+ }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { propertyName: [{
1220
1298
  type: Input
1221
1299
  }], edgeMappings: [{
1222
1300
  type: Input
@@ -1272,15 +1350,15 @@ class PaletteComponent {
1272
1350
  }
1273
1351
  });
1274
1352
  }
1275
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PaletteComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1276
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: PaletteComponent, selector: "[vjs-palette]", inputs: { selector: "selector", dataGenerator: "dataGenerator", typeGenerator: "typeGenerator", groupIdentifier: "groupIdentifier", allowDropOnEdge: "allowDropOnEdge", allowDropOnGroup: "allowDropOnGroup", allowDropOnCanvas: "allowDropOnCanvas", allowDropOnNode: "allowDropOnNode", onVertexAdded: "onVertexAdded", dragSize: "dragSize", canvasDropFilter: "canvasDropFilter", mode: "mode", selectAfterAdd: "selectAfterAdd", allowClickToAdd: "allowClickToAdd", clickToAddOnly: "clickToAddOnly" }, ngImport: i0 }); }
1353
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PaletteComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1354
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: PaletteComponent, selector: "[vjs-palette]", inputs: { selector: "selector", dataGenerator: "dataGenerator", typeGenerator: "typeGenerator", groupIdentifier: "groupIdentifier", allowDropOnEdge: "allowDropOnEdge", allowDropOnGroup: "allowDropOnGroup", allowDropOnCanvas: "allowDropOnCanvas", allowDropOnNode: "allowDropOnNode", onVertexAdded: "onVertexAdded", dragSize: "dragSize", canvasDropFilter: "canvasDropFilter", mode: "mode", selectAfterAdd: "selectAfterAdd", allowClickToAdd: "allowClickToAdd", clickToAddOnly: "clickToAddOnly" }, ngImport: i0 }); }
1277
1355
  }
1278
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PaletteComponent, decorators: [{
1356
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PaletteComponent, decorators: [{
1279
1357
  type: Directive,
1280
1358
  args: [{
1281
1359
  selector: "[vjs-palette]",
1282
1360
  }]
1283
- }], ctorParameters: function () { return []; }, propDecorators: { selector: [{
1361
+ }], ctorParameters: () => [], propDecorators: { selector: [{
1284
1362
  type: Input
1285
1363
  }], dataGenerator: [{
1286
1364
  type: Input
@@ -1343,10 +1421,10 @@ class ExportControlsComponent {
1343
1421
  type: "image/jpeg",
1344
1422
  }));
1345
1423
  }
1346
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ExportControlsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1347
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ExportControlsComponent, selector: "vjs-export-controls", inputs: { showLabel: "showLabel", label: "label", margins: "margins", svgOptions: "svgOptions", imageOptions: "imageOptions", allowSvgExport: "allowSvgExport", allowPngExport: "allowPngExport", allowJpgExport: "allowJpgExport" }, ngImport: i0, template: "<div class=\"vjs-controls vjs-export-controls\">\n <span *ngIf=\"showLabel\">{{ label }}</span>\n <i *ngIf=\"allowSvgExport\"\n ><a href=\"#\" id=\"exportSvg\" (click)=\"exportSVG()\">SVG</a></i\n >\n <i *ngIf=\"allowPngExport\"\n ><a href=\"#\" id=\"exportPng\" (click)=\"exportPNG()\">PNG</a></i\n >\n <i *ngIf=\"allowJpgExport\"\n ><a href=\"#\" id=\"exportJpg\" (click)=\"exportJPG()\">JPG</a></i\n >\n </div>", isInline: true, dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
1424
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ExportControlsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1425
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ExportControlsComponent, selector: "vjs-export-controls", inputs: { showLabel: "showLabel", label: "label", margins: "margins", svgOptions: "svgOptions", imageOptions: "imageOptions", allowSvgExport: "allowSvgExport", allowPngExport: "allowPngExport", allowJpgExport: "allowJpgExport" }, ngImport: i0, template: "<div class=\"vjs-controls vjs-export-controls\">\n <span *ngIf=\"showLabel\">{{ label }}</span>\n <i *ngIf=\"allowSvgExport\"\n ><a href=\"#\" id=\"exportSvg\" (click)=\"exportSVG()\">SVG</a></i\n >\n <i *ngIf=\"allowPngExport\"\n ><a href=\"#\" id=\"exportPng\" (click)=\"exportPNG()\">PNG</a></i\n >\n <i *ngIf=\"allowJpgExport\"\n ><a href=\"#\" id=\"exportJpg\" (click)=\"exportJPG()\">JPG</a></i\n >\n </div>", isInline: true, dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
1348
1426
  }
1349
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ExportControlsComponent, decorators: [{
1427
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ExportControlsComponent, decorators: [{
1350
1428
  type: Component,
1351
1429
  args: [{
1352
1430
  selector: "vjs-export-controls",
@@ -1408,7 +1486,7 @@ class ColorPickerComponent {
1408
1486
  colorInput.onchange = () => {
1409
1487
  const color = colorInput.value;
1410
1488
  this.pushColor(color);
1411
- i.setValue(this.propertyName, color, true);
1489
+ i.setValue(this.propertyName, color, null, true);
1412
1490
  };
1413
1491
  setTimeout(() => {
1414
1492
  // if there is a color, maybe push to context
@@ -1428,7 +1506,7 @@ class ColorPickerComponent {
1428
1506
  }
1429
1507
  selectColor(color) {
1430
1508
  this.$getInspector(inspector => {
1431
- inspector.setValue(this.propertyName, color);
1509
+ inspector.setValue(this.propertyName, color, null);
1432
1510
  this.$el.nativeElement.querySelector("[type='color']").value = color;
1433
1511
  });
1434
1512
  }
@@ -1447,10 +1525,10 @@ class ColorPickerComponent {
1447
1525
  }
1448
1526
  });
1449
1527
  }
1450
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColorPickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1451
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ColorPickerComponent, selector: "vjs-color", inputs: { propertyName: "propertyName", maxColors: "maxColors" }, outputs: { changeEvent: "changeEvent" }, ngImport: i0, template: "<div class=\"vjs-color-picker\">\n <input type=\"color\" [attr.vjs-att]=\"propertyName\"/>\n <div class=\"vjs-color-picker-swatches\">\n <div *ngFor=\"let swatch of swatches()\" class=\"vjs-color-picker-swatch\" attr.data-color=\"{{swatch}}\" style=\"background-color:{{swatch}}\" (click)=\"selectColor(swatch)\"></div>\n </div>\n </div>", isInline: true, dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] }); }
1528
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ColorPickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1529
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ColorPickerComponent, selector: "vjs-color", inputs: { propertyName: "propertyName", maxColors: "maxColors" }, outputs: { changeEvent: "changeEvent" }, ngImport: i0, template: "<div class=\"vjs-color-picker\">\n <input type=\"color\" [attr.vjs-att]=\"propertyName\"/>\n <div class=\"vjs-color-picker-swatches\">\n <div *ngFor=\"let swatch of swatches()\" class=\"vjs-color-picker-swatch\" attr.data-color=\"{{swatch}}\" style=\"background-color:{{swatch}}\" (click)=\"selectColor(swatch)\"></div>\n </div>\n </div>", isInline: true, dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] }); }
1452
1530
  }
1453
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColorPickerComponent, decorators: [{
1531
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ColorPickerComponent, decorators: [{
1454
1532
  type: Component,
1455
1533
  args: [{
1456
1534
  selector: "vjs-color",
@@ -1461,7 +1539,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
1461
1539
  </div>
1462
1540
  </div>`
1463
1541
  }]
1464
- }], ctorParameters: function () { return []; }, propDecorators: { propertyName: [{
1542
+ }], ctorParameters: () => [], propDecorators: { propertyName: [{
1465
1543
  type: Input
1466
1544
  }], maxColors: [{
1467
1545
  type: Input
@@ -1472,19 +1550,45 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
1472
1550
 
1473
1551
  class DiagramComponent {
1474
1552
  constructor() {
1553
+
1554
+ this.data = input();
1555
+
1556
+ this.url = input();
1475
1557
  this.$ngZone = inject(NgZone);
1476
1558
  this.$el = inject(ElementRef);
1477
1559
  this.$vjs = inject(VisuallyJsService);
1560
+ this._dataEffect = effect(() => {
1561
+ const currentData = this.data();
1562
+ if (currentData) {
1563
+ if (this.diagram) {
1564
+ this.diagram.clear();
1565
+ this.diagram.load({ data: currentData });
1566
+ }
1567
+ }
1568
+ });
1569
+ this._urlEffect = effect(() => {
1570
+ const currentUrl = this.url();
1571
+ if (currentUrl) {
1572
+ // Respond to changes in the url here.
1573
+ // For example, if you need to reload the model with new data:
1574
+ if (this.diagram) {
1575
+ this.diagram.clear();
1576
+ this.diagram.load({ url: currentUrl });
1577
+ }
1578
+ }
1579
+ });
1478
1580
  }
1479
1581
  ngAfterViewInit() {
1480
1582
  this.$ngZone.runOutsideAngular(() => {
1481
1583
  this.diagram = createDiagram(this.$el.nativeElement, this.options, this.modelOptions);
1482
1584
  this.$vjs.$setDiagram(this.diagram);
1483
- if (this.data != null) {
1484
- this.diagram.load({ data: this.data });
1585
+ const initialData = this.data();
1586
+ const initialUrl = this.url();
1587
+ if (initialData) {
1588
+ this.diagram.load({ data: initialData });
1485
1589
  }
1486
- else if (this.url != null) {
1487
- this.diagram.load({ url: this.url });
1590
+ else if (initialUrl) {
1591
+ this.diagram.load({ url: initialUrl });
1488
1592
  }
1489
1593
  });
1490
1594
  }
@@ -1499,10 +1603,10 @@ class DiagramComponent {
1499
1603
  saveToUrl(options) {
1500
1604
  this.diagram.saveToUrl(options);
1501
1605
  }
1502
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DiagramComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1503
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DiagramComponent, selector: "vjs-diagram", inputs: { options: "options", data: "data", url: "url", modelOptions: "modelOptions" }, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true }); }
1606
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DiagramComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1607
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.3.12", type: DiagramComponent, selector: "vjs-diagram", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: false, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, url: { classPropertyName: "url", publicName: "url", isSignal: true, isRequired: false, transformFunction: null }, modelOptions: { classPropertyName: "modelOptions", publicName: "modelOptions", isSignal: false, isRequired: false, transformFunction: null } }, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true }); }
1504
1608
  }
1505
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DiagramComponent, decorators: [{
1609
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DiagramComponent, decorators: [{
1506
1610
  type: Component,
1507
1611
  args: [{
1508
1612
  selector: "vjs-diagram",
@@ -1510,10 +1614,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
1510
1614
  }]
1511
1615
  }], propDecorators: { options: [{
1512
1616
  type: Input
1513
- }], data: [{
1514
- type: Input
1515
- }], url: [{
1516
- type: Input
1517
1617
  }], modelOptions: [{
1518
1618
  type: Input
1519
1619
  }] } });
@@ -1555,12 +1655,12 @@ class SeriesBasedChartComponent {
1555
1655
  ngOnDestroy() {
1556
1656
  this.chart?.destroy();
1557
1657
  }
1558
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SeriesBasedChartComponent, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1559
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SeriesBasedChartComponent }); }
1658
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SeriesBasedChartComponent, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1659
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SeriesBasedChartComponent }); }
1560
1660
  }
1561
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SeriesBasedChartComponent, decorators: [{
1661
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SeriesBasedChartComponent, decorators: [{
1562
1662
  type: Injectable
1563
- }], ctorParameters: function () { return []; }, propDecorators: { data: [{
1663
+ }], ctorParameters: () => [], propDecorators: { data: [{
1564
1664
  type: Input
1565
1665
  }], url: [{
1566
1666
  type: Input
@@ -1575,10 +1675,10 @@ class ColumnChartComponent extends SeriesBasedChartComponent {
1575
1675
  createChart(el, options) {
1576
1676
  return new ColumnChart(el, options);
1577
1677
  }
1578
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnChartComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1579
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ColumnChartComponent, selector: "vjs-column-chart", inputs: { data: "data", url: "url", options: "options", useModel: "useModel" }, usesInheritance: true, ngImport: i0, template: `<div></div>`, isInline: true }); }
1678
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ColumnChartComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1679
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ColumnChartComponent, selector: "vjs-column-chart", inputs: { data: "data", url: "url", options: "options", useModel: "useModel" }, usesInheritance: true, ngImport: i0, template: `<div></div>`, isInline: true }); }
1580
1680
  }
1581
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ColumnChartComponent, decorators: [{
1681
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ColumnChartComponent, decorators: [{
1582
1682
  type: Component,
1583
1683
  args: [{
1584
1684
  selector: "vjs-column-chart",
@@ -1599,10 +1699,10 @@ class BarChartComponent extends SeriesBasedChartComponent {
1599
1699
  createChart(el, options) {
1600
1700
  return new BarChart(el, options);
1601
1701
  }
1602
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BarChartComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1603
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: BarChartComponent, selector: "vjs-bar-chart", inputs: { data: "data", url: "url", options: "options", useModel: "useModel" }, usesInheritance: true, ngImport: i0, template: `<div></div>`, isInline: true }); }
1702
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BarChartComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1703
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: BarChartComponent, selector: "vjs-bar-chart", inputs: { data: "data", url: "url", options: "options", useModel: "useModel" }, usesInheritance: true, ngImport: i0, template: `<div></div>`, isInline: true }); }
1604
1704
  }
1605
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BarChartComponent, decorators: [{
1705
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BarChartComponent, decorators: [{
1606
1706
  type: Component,
1607
1707
  args: [{
1608
1708
  selector: "vjs-bar-chart",
@@ -1658,16 +1758,16 @@ class DiagramPaletteComponent {
1658
1758
  this.$init(this.inputDiagram);
1659
1759
  }
1660
1760
  }
1661
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DiagramPaletteComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1662
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DiagramPaletteComponent, selector: "vjs-diagram-palette", inputs: { fill: "fill", outline: "outline", dragSize: "dragSize", inspector: "inspector", iconSize: "iconSize", showLabels: "showLabels", paletteStrokeWidth: "paletteStrokeWidth", showAllMessage: "showAllMessage", onCellAdded: "onCellAdded", mode: "mode", allowClickToAdd: "allowClickToAdd", autoExitDrawMode: "autoExitDrawMode", selectAfterAdd: "selectAfterAdd", inputDiagram: ["diagram", "inputDiagram"], onVertexAdded: "onVertexAdded", preparedShapes: "preparedShapes" }, ngImport: i0, template: `<div></div>`, isInline: true }); }
1761
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DiagramPaletteComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1762
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: DiagramPaletteComponent, selector: "vjs-diagram-palette", inputs: { fill: "fill", outline: "outline", dragSize: "dragSize", inspector: "inspector", iconSize: "iconSize", showLabels: "showLabels", paletteStrokeWidth: "paletteStrokeWidth", showAllMessage: "showAllMessage", onCellAdded: "onCellAdded", mode: "mode", allowClickToAdd: "allowClickToAdd", autoExitDrawMode: "autoExitDrawMode", selectAfterAdd: "selectAfterAdd", inputDiagram: ["diagram", "inputDiagram"], onVertexAdded: "onVertexAdded", preparedShapes: "preparedShapes" }, ngImport: i0, template: `<div></div>`, isInline: true }); }
1663
1763
  }
1664
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DiagramPaletteComponent, decorators: [{
1764
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DiagramPaletteComponent, decorators: [{
1665
1765
  type: Component,
1666
1766
  args: [{
1667
1767
  selector: "vjs-diagram-palette",
1668
1768
  template: `<div></div>`,
1669
1769
  }]
1670
- }], ctorParameters: function () { return []; }, propDecorators: { fill: [{
1770
+ }], ctorParameters: () => [], propDecorators: { fill: [{
1671
1771
  type: Input
1672
1772
  }], outline: [{
1673
1773
  type: Input
@@ -1707,10 +1807,10 @@ class XYChartComponent extends SeriesBasedChartComponent {
1707
1807
  createChart(el, options) {
1708
1808
  return new CategoryValueChart(el, options);
1709
1809
  }
1710
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: XYChartComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1711
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: XYChartComponent, selector: "vjs-xy-chart", inputs: { data: "data", url: "url", options: "options", useModel: "useModel" }, usesInheritance: true, ngImport: i0, template: `<div></div>`, isInline: true }); }
1810
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: XYChartComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1811
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: XYChartComponent, selector: "vjs-xy-chart", inputs: { data: "data", url: "url", options: "options", useModel: "useModel" }, usesInheritance: true, ngImport: i0, template: `<div></div>`, isInline: true }); }
1712
1812
  }
1713
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: XYChartComponent, decorators: [{
1813
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: XYChartComponent, decorators: [{
1714
1814
  type: Component,
1715
1815
  args: [{
1716
1816
  selector: "vjs-xy-chart",
@@ -1731,10 +1831,10 @@ class LineChartComponent extends SeriesBasedChartComponent {
1731
1831
  createChart(el, options) {
1732
1832
  return new LineChart(el, options);
1733
1833
  }
1734
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LineChartComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1735
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: LineChartComponent, selector: "vjs-line-chart", inputs: { data: "data", url: "url", options: "options", useModel: "useModel" }, usesInheritance: true, ngImport: i0, template: `<div></div>`, isInline: true }); }
1834
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LineChartComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1835
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: LineChartComponent, selector: "vjs-line-chart", inputs: { data: "data", url: "url", options: "options", useModel: "useModel" }, usesInheritance: true, ngImport: i0, template: `<div></div>`, isInline: true }); }
1736
1836
  }
1737
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LineChartComponent, decorators: [{
1837
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LineChartComponent, decorators: [{
1738
1838
  type: Component,
1739
1839
  args: [{
1740
1840
  selector: "vjs-line-chart",
@@ -1755,10 +1855,10 @@ class AreaChartComponent extends SeriesBasedChartComponent {
1755
1855
  createChart(el, options) {
1756
1856
  return new AreaChart(el, options);
1757
1857
  }
1758
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AreaChartComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1759
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AreaChartComponent, selector: "vjs-area-chart", inputs: { data: "data", url: "url", options: "options", useModel: "useModel" }, usesInheritance: true, ngImport: i0, template: `<div></div>`, isInline: true }); }
1858
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AreaChartComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1859
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: AreaChartComponent, selector: "vjs-area-chart", inputs: { data: "data", url: "url", options: "options", useModel: "useModel" }, usesInheritance: true, ngImport: i0, template: `<div></div>`, isInline: true }); }
1760
1860
  }
1761
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AreaChartComponent, decorators: [{
1861
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AreaChartComponent, decorators: [{
1762
1862
  type: Component,
1763
1863
  args: [{
1764
1864
  selector: "vjs-area-chart",
@@ -1779,10 +1879,10 @@ class PieChartComponent extends SeriesBasedChartComponent {
1779
1879
  createChart(el, options) {
1780
1880
  return new PieChart(el, options);
1781
1881
  }
1782
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PieChartComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1783
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PieChartComponent, selector: "vjs-pie-chart", inputs: { data: "data", url: "url", options: "options", useModel: "useModel" }, usesInheritance: true, ngImport: i0, template: `<div></div>`, isInline: true }); }
1882
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PieChartComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1883
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: PieChartComponent, selector: "vjs-pie-chart", inputs: { data: "data", url: "url", options: "options", useModel: "useModel" }, usesInheritance: true, ngImport: i0, template: `<div></div>`, isInline: true }); }
1784
1884
  }
1785
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PieChartComponent, decorators: [{
1885
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PieChartComponent, decorators: [{
1786
1886
  type: Component,
1787
1887
  args: [{
1788
1888
  selector: "vjs-pie-chart",
@@ -1803,10 +1903,10 @@ class ScatterChartComponent extends SeriesBasedChartComponent {
1803
1903
  createChart(el, options) {
1804
1904
  return new ScatterChart(el, options);
1805
1905
  }
1806
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ScatterChartComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1807
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ScatterChartComponent, selector: "vjs-scatter-chart", inputs: { data: "data", url: "url", options: "options", useModel: "useModel" }, usesInheritance: true, ngImport: i0, template: `<div></div>`, isInline: true }); }
1906
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ScatterChartComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1907
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ScatterChartComponent, selector: "vjs-scatter-chart", inputs: { data: "data", url: "url", options: "options", useModel: "useModel" }, usesInheritance: true, ngImport: i0, template: `<div></div>`, isInline: true }); }
1808
1908
  }
1809
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ScatterChartComponent, decorators: [{
1909
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ScatterChartComponent, decorators: [{
1810
1910
  type: Component,
1811
1911
  args: [{
1812
1912
  selector: "vjs-scatter-chart",
@@ -1827,10 +1927,10 @@ class BubbleChartComponent extends SeriesBasedChartComponent {
1827
1927
  createChart(el, options) {
1828
1928
  return new BubbleChart(el, options);
1829
1929
  }
1830
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BubbleChartComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1831
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: BubbleChartComponent, selector: "vjs-bubble-chart", inputs: { data: "data", url: "url", options: "options", useModel: "useModel" }, usesInheritance: true, ngImport: i0, template: `<div></div>`, isInline: true }); }
1930
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BubbleChartComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1931
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: BubbleChartComponent, selector: "vjs-bubble-chart", inputs: { data: "data", url: "url", options: "options", useModel: "useModel" }, usesInheritance: true, ngImport: i0, template: `<div></div>`, isInline: true }); }
1832
1932
  }
1833
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BubbleChartComponent, decorators: [{
1933
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BubbleChartComponent, decorators: [{
1834
1934
  type: Component,
1835
1935
  args: [{
1836
1936
  selector: "vjs-bubble-chart",
@@ -1896,16 +1996,16 @@ class SankeyChartComponent {
1896
1996
  ngOnDestroy() {
1897
1997
  this.chart?.destroy();
1898
1998
  }
1899
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SankeyChartComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1900
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SankeyChartComponent, selector: "vjs-sankey-chart", inputs: { csvData: "csvData", jsonData: "jsonData", url: "url", interactive: "interactive", pivot: "pivot", options: "options", useModel: "useModel" }, usesOnChanges: true, ngImport: i0, template: `<div></div>`, isInline: true }); }
1999
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SankeyChartComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2000
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: SankeyChartComponent, selector: "vjs-sankey-chart", inputs: { csvData: "csvData", jsonData: "jsonData", url: "url", interactive: "interactive", pivot: "pivot", options: "options", useModel: "useModel" }, usesOnChanges: true, ngImport: i0, template: `<div></div>`, isInline: true }); }
1901
2001
  }
1902
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SankeyChartComponent, decorators: [{
2002
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SankeyChartComponent, decorators: [{
1903
2003
  type: Component,
1904
2004
  args: [{
1905
2005
  selector: "vjs-sankey-chart",
1906
2006
  template: `<div></div>`
1907
2007
  }]
1908
- }], ctorParameters: function () { return []; }, propDecorators: { csvData: [{
2008
+ }], ctorParameters: () => [], propDecorators: { csvData: [{
1909
2009
  type: Input
1910
2010
  }], jsonData: [{
1911
2011
  type: Input
@@ -1946,14 +2046,14 @@ class DecoratorComponent {
1946
2046
  this.surface.unfixElement(this.el.nativeElement.firstElementChild);
1947
2047
  }
1948
2048
  }
1949
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DecoratorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1950
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DecoratorComponent, selector: "vjs-decorator", inputs: { placement: "placement", position: "position", constraints: "constraints" }, ngImport: i0, template: `
2049
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DecoratorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2050
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: DecoratorComponent, selector: "vjs-decorator", inputs: { placement: "placement", position: "position", constraints: "constraints" }, ngImport: i0, template: `
1951
2051
  <div style="display:inline-block;">
1952
2052
  <ng-content></ng-content>
1953
2053
  </div>
1954
2054
  `, isInline: true }); }
1955
2055
  }
1956
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DecoratorComponent, decorators: [{
2056
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DecoratorComponent, decorators: [{
1957
2057
  type: Component,
1958
2058
  args: [{
1959
2059
  selector: "vjs-decorator",
@@ -1972,13 +2072,409 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
1972
2072
  }] } });
1973
2073
 
1974
2074
 
2075
+ class SurfacePopupComponent {
2076
+ constructor() {
2077
+ this.cdr = inject(ChangeDetectorRef);
2078
+ this.vjs = inject(VisuallyJsService);
2079
+ this.initialized = false;
2080
+ this.current = signal(null);
2081
+ this.model = this.vjs.model;
2082
+ this.ui = this.vjs.ui;
2083
+ this.display = computed(() => (this.current() == null ? "none" : "block"));
2084
+ }
2085
+ $hide() {
2086
+ this.popupHandler?.$hide();
2087
+ }
2088
+ ngAfterViewInit() {
2089
+ this.vjs.getSurface((surface) => {
2090
+ if (!this.initialized) {
2091
+ this.initialized = true;
2092
+ this.popupHandler = new PopupHandler(this.selector, this.container.nativeElement, surface, (v) => {
2093
+ this.current.set(v);
2094
+ requestAnimationFrame(() => this.cdr.detectChanges());
2095
+ }, this.anchor);
2096
+ }
2097
+ });
2098
+ }
2099
+ ngOnDestroy() {
2100
+ if (this.popupHandler) {
2101
+ this.popupHandler.$destroy();
2102
+ }
2103
+ }
2104
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SurfacePopupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2105
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: SurfacePopupComponent, selector: "vjs-surface-popup", inputs: { selector: "selector", anchor: "anchor" }, queries: [{ propertyName: "template", first: true, predicate: TemplateRef, descendants: true }], viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }], ngImport: i0, template: "\n <div #container class=\"vjs-surface-popup\" [style.display]=\"display()\" style=\"position:absolute\">\n <ng-container *ngIf=\"current()\">\n <ng-container *ngTemplateOutlet=\"template; context: { vertex: current(), model: model(), ui: ui(), hide:$hide }\"></ng-container>\n </ng-container>\n </div>\n ", isInline: true, dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
2106
+ }
2107
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SurfacePopupComponent, decorators: [{
2108
+ type: Component,
2109
+ args: [{
2110
+ selector: "vjs-surface-popup",
2111
+ template: `
2112
+ <div #container class="${CLASS_SURFACE_POPUP}" [style.display]="display()" style="position:absolute">
2113
+ <ng-container *ngIf="current()">
2114
+ <ng-container *ngTemplateOutlet="template; context: { vertex: current(), model: model(), ui: ui(), hide:$hide }"></ng-container>
2115
+ </ng-container>
2116
+ </div>
2117
+ `
2118
+ }]
2119
+ }], propDecorators: { selector: [{
2120
+ type: Input,
2121
+ args: [{ required: true }]
2122
+ }], anchor: [{
2123
+ type: Input
2124
+ }], template: [{
2125
+ type: ContentChild,
2126
+ args: [TemplateRef]
2127
+ }], container: [{
2128
+ type: ViewChild,
2129
+ args: ["container"]
2130
+ }] } });
2131
+
2132
+
2133
+ class PaperComponent {
2134
+ constructor() {
2135
+
2136
+ this.data = input();
2137
+
2138
+ this.url = input();
2139
+
2140
+ this.vertexEvent = new EventEmitter();
2141
+ this.$el = inject(ElementRef);
2142
+ this.$viewContainerRef = inject(ViewContainerRef);
2143
+ this.$ngZone = inject(NgZone);
2144
+ this.$vjs = inject(VisuallyJsService);
2145
+ this._dataEffect = effect(() => {
2146
+ const currentData = this.data();
2147
+ if (currentData) {
2148
+ if (this.model) {
2149
+ this.model.clear();
2150
+ this.model.load({ data: currentData });
2151
+ }
2152
+ }
2153
+ });
2154
+ this._urlEffect = effect(() => {
2155
+ const currentUrl = this.url();
2156
+ if (currentUrl) {
2157
+ // Respond to changes in the url here.
2158
+ // For example, if you need to reload the model with new data:
2159
+ if (this.model) {
2160
+ this.model.clear();
2161
+ this.model.load({ url: currentUrl });
2162
+ }
2163
+ }
2164
+ });
2165
+ }
2166
+
2167
+ getNativeElement(component) {
2168
+ return component.location.nativeElement.childNodes[0];
2169
+ }
2170
+ _getComponent(el, tryParent) {
2171
+ if (el == null) {
2172
+ return null;
2173
+ }
2174
+ else {
2175
+ let vjc = el._visuallyJsNgComponent;
2176
+ if (vjc == null && tryParent && el.parentNode != null) {
2177
+ vjc = el.parentNode._visuallyJsNgComponent;
2178
+ }
2179
+ return vjc;
2180
+ }
2181
+ }
2182
+ _getComponentThen(el, then, tryParent) {
2183
+ const c = this._getComponent(el, tryParent);
2184
+ if (c != null) {
2185
+ then(c);
2186
+ }
2187
+ }
2188
+
2189
+ nodeOrGroupUpdated(params) {
2190
+ const info = this.paper.getObjectInfo(params.vertex, false);
2191
+ this._getComponentThen(info.el, (component) => {
2192
+ component.data = params.vertex.data;
2193
+ component.$data?.set(component.data);
2194
+ if (component.changeDetectorRef) {
2195
+ component.changeDetectorRef.detectChanges();
2196
+ }
2197
+ }, false);
2198
+ }
2199
+ portUpdated(params) {
2200
+ const info = this.paper.getObjectInfo(params.port, false);
2201
+ this._getComponentThen(info.el, (component) => {
2202
+ if (component instanceof BasePortComponent) {
2203
+ component.data = params.port.data;
2204
+ if (component.changeDetectorRef) {
2205
+ component.changeDetectorRef.detectChanges();
2206
+ }
2207
+ }
2208
+ }, true);
2209
+ }
2210
+
2211
+ edgeUpdated(params) {
2212
+ const connection = this.paper.getRenderedConnection(params.edge.id);
2213
+ if (connection) {
2214
+ for (let id in connection.overlays) {
2215
+ const canvas = connection.overlays[id].contentElement;
2216
+ this._getComponentThen(canvas, (component) => {
2217
+ if (component.changeDetectorRef != null) {
2218
+ component.changeDetectorRef.detectChanges();
2219
+ }
2220
+ }, false);
2221
+ }
2222
+ }
2223
+ }
2224
+ edgeAddedRemoved(params) {
2225
+ const info = this.paper.getObjectInfo(params.edge.source, false);
2226
+ if (info.el) {
2227
+ this._getComponentThen(info.el, (component) => {
2228
+ try {
2229
+ ;
2230
+ component.$updateEdges();
2231
+ if (component.changeDetectorRef) {
2232
+ component.changeDetectorRef.detectChanges();
2233
+ }
2234
+ }
2235
+ catch (e) { }
2236
+ }, false);
2237
+ }
2238
+ const info2 = this.paper.getObjectInfo(params.edge.target, false);
2239
+ if (info2.el && info.obj.getFullId() !== info2.obj.getFullId()) {
2240
+ this._getComponentThen(info2.el, (component) => {
2241
+ try {
2242
+ ;
2243
+ component.$updateEdges();
2244
+ // tslint:disable-next-line:align
2245
+ if (component.changeDetectorRef) {
2246
+ component.changeDetectorRef.detectChanges();
2247
+ }
2248
+ }
2249
+ catch (e) { }
2250
+ }, false);
2251
+ }
2252
+ }
2253
+
2254
+ _processAngularOverlays(view) {
2255
+ const self = this;
2256
+ const edgeTypes = view.edges || {};
2257
+ for (let edgeTypeId in edgeTypes) {
2258
+ const edgeType = edgeTypes[edgeTypeId];
2259
+ if (edgeType.overlays != null) {
2260
+ edgeType.overlays = edgeType.overlays.map((o) => {
2261
+ if (typeof o === "string") {
2262
+ return o;
2263
+ }
2264
+ else {
2265
+ const fo = o;
2266
+ if (fo.type === AngularComponentOverlayType) {
2267
+ const newSpec = Object.assign(fo, {
2268
+ type: OVERLAY_TYPE_CUSTOM,
2269
+ });
2270
+ newSpec.options = (newSpec.options || {});
2271
+ newSpec.options.create = (connection) => {
2272
+ const el = document.createElement(ELEMENT_DIV);
2273
+ let createdComponent = self.$viewContainerRef.createComponent(newSpec.options.component);
2274
+ let angularOverlayComponent = createdComponent.instance;
2275
+ let nativeEl = createdComponent.location.nativeElement.childNodes[0];
2276
+ el.appendChild(nativeEl);
2277
+ el._visuallyJsNgComponent = angularOverlayComponent;
2278
+
2279
+ if (connection != null) {
2280
+ const edge = connection.edge;
2281
+ angularOverlayComponent.edge = edge;
2282
+ angularOverlayComponent.data = edge.data;
2283
+ }
2284
+ angularOverlayComponent.model = self.model;
2285
+ angularOverlayComponent.ui = self.paper;
2286
+ createdComponent.changeDetectorRef.detectChanges();
2287
+ return el;
2288
+ };
2289
+ return newSpec;
2290
+ }
2291
+ else {
2292
+ return fo;
2293
+ }
2294
+ }
2295
+ });
2296
+ }
2297
+ }
2298
+ return view;
2299
+ }
2300
+
2301
+ save(options) {
2302
+ this.paper.save(options);
2303
+ }
2304
+
2305
+ exportData(options) {
2306
+ return this.paper.model.exportData(options);
2307
+ }
2308
+
2309
+ dataLoadEnd() {
2310
+ setTimeout(() => {
2311
+ if (this.paper != null) {
2312
+ this.paper.repaintEverything();
2313
+ }
2314
+ }, 0);
2315
+ }
2316
+ $removeNgElement(el) {
2317
+ if (el._ref != null) {
2318
+ el._ref.destroy();
2319
+ }
2320
+ if (el.parentNode != null) {
2321
+ el.parentNode.removeChild(el);
2322
+ }
2323
+ }
2324
+
2325
+ ngAfterViewInit() {
2326
+ this.$ngZone.runOutsideAngular(() => {
2327
+ const view = this._processAngularOverlays(this.viewOptions || {});
2328
+ const self = this;
2329
+ this.renderOptions = this.renderOptions || {};
2330
+ const render = (directiveId, data, instance, objectType, paper, def, modelObject, eventInfo) => {
2331
+ let component;
2332
+ if (def.component == null) {
2333
+ if (isGroup(modelObject)) {
2334
+ component = DefaultGroupComponent;
2335
+ }
2336
+ else {
2337
+ component = DefaultNodeComponent;
2338
+ }
2339
+ }
2340
+ else {
2341
+ component = def.component;
2342
+ }
2343
+ let createdComponent = self.$viewContainerRef.createComponent(component);
2344
+ let _componentRef = createdComponent.instance;
2345
+ _componentRef.data = data || {};
2346
+ _componentRef.model = model;
2347
+ _componentRef.paper = paper;
2348
+ _componentRef.ui = paper;
2349
+ _componentRef.modelObject = modelObject;
2350
+ // get the reflection data for the component
2351
+ const componentInfo = reflectComponentType(component);
2352
+ // ..and populate any declared inputs from data
2353
+ componentInfo.inputs.forEach((pt) => {
2354
+ const pv = _componentRef.data[pt.propName];
2355
+ if (pv != null) {
2356
+ _componentRef[pt.propName] = pv;
2357
+ }
2358
+ });
2359
+ // map to any outputs
2360
+ componentInfo.outputs.forEach((pt) => {
2361
+ _componentRef[pt.propName].subscribe((d) => self.vertexEvent.emit({
2362
+ vertex: modelObject,
2363
+ event: pt.propName,
2364
+ payload: d,
2365
+ component: createdComponent,
2366
+ }));
2367
+ });
2368
+ // if angular def has 'inputs' set, set them on the component. this is different to the mechanism above, in which values are extracted from
2369
+ // each node's backing data. here we inject values either as a string or from some arbitrary function.
2370
+ if (def.inputs != null) {
2371
+ for (let k in def.inputs) {
2372
+ const v = def.inputs[k];
2373
+ const value = typeof v === "string" ? v : v(modelObject);
2374
+ _componentRef[k] = value;
2375
+ }
2376
+ }
2377
+ createdComponent.changeDetectorRef.detectChanges();
2378
+ // TODO this should not be necessary
2379
+ const nativeElement = self.getNativeElement(createdComponent);
2380
+ _componentRef._el = nativeElement;
2381
+ _componentRef._el._visuallyJsNgComponent = _componentRef;
2382
+ _componentRef._el._ref = createdComponent; // we store _ref so we can call `destroy` on it later if the node is removed.
2383
+ paper.$vertexRendered(modelObject, nativeElement, def, eventInfo);
2384
+ };
2385
+ const templateRenderer = {
2386
+ asynchronous: false,
2387
+ reactive: true,
2388
+ usesWrapperElement: false,
2389
+ update: (el, data, v, renderer) => { },
2390
+ render,
2391
+ rerender: (directiveId, data, instance, objectType, paper, def, modelObject, eventInfo, originalElement) => {
2392
+ this.$removeNgElement(originalElement);
2393
+ render(directiveId, data, instance, objectType, paper, def, modelObject, eventInfo);
2394
+ },
2395
+ cleanupVertex: (objId, el) => {
2396
+ this.$removeNgElement(el);
2397
+ },
2398
+ cleanupPort: (objId, el) => {
2399
+ this.$removeNgElement(el);
2400
+ },
2401
+ };
2402
+ const renderParams = extend(this.renderOptions || {}, {
2403
+ view: view,
2404
+ });
2405
+ let model = this.inputModel || new BrowserUIAngularModel(this.modelOptions);
2406
+ this.model = model;
2407
+ this.paper = renderPaper(model, self.$el.nativeElement, templateRenderer, renderParams);
2408
+ this.$vjs.$setPaper(this.paper);
2409
+ // ----------------
2410
+ this.nodeUpdateFn = this.nodeOrGroupUpdated.bind(this);
2411
+ model.bind(EVENT_NODE_UPDATED, this.nodeUpdateFn);
2412
+ model.bind(EVENT_PORT_ADDED, this.nodeUpdateFn);
2413
+ model.bind(EVENT_GROUP_UPDATED, this.nodeUpdateFn);
2414
+ this.dataLoadEndFn = this.dataLoadEnd.bind(this);
2415
+ model.bind(EVENT_DATA_LOAD_END, this.dataLoadEndFn);
2416
+ this.portUpdateFn = this.portUpdated.bind(this);
2417
+ model.bind(EVENT_PORT_UPDATED, this.portUpdateFn);
2418
+ this.edgeUpdateFn = this.edgeUpdated.bind(this);
2419
+ model.bind(EVENT_EDGE_UPDATED, this.edgeUpdateFn);
2420
+ this.edgeAddFn = this.edgeAddedRemoved.bind(this);
2421
+ this.edgeRemoveFn = this.edgeAddedRemoved.bind(this);
2422
+ model.bind(EVENT_EDGE_ADDED, this.edgeAddFn);
2423
+ model.bind(EVENT_EDGE_REMOVED, this.edgeRemoveFn);
2424
+ const initialData = this.data();
2425
+ const initialUrl = this.url();
2426
+ if (initialData) {
2427
+ this.model.load({ data: initialData });
2428
+ }
2429
+ else if (initialUrl) {
2430
+ this.model.load({ url: initialUrl });
2431
+ }
2432
+ });
2433
+ }
2434
+
2435
+ ngOnDestroy() {
2436
+ this.paper.destroy();
2437
+ this.model.unbind(EVENT_NODE_UPDATED, this.nodeUpdateFn);
2438
+ this.model.unbind(EVENT_GROUP_UPDATED, this.nodeUpdateFn);
2439
+ this.model.unbind(EVENT_PORT_ADDED, this.nodeUpdateFn);
2440
+ this.model.unbind(EVENT_PORT_UPDATED, this.portUpdateFn);
2441
+ this.model.unbind(EVENT_EDGE_UPDATED, this.edgeUpdateFn);
2442
+ this.model.unbind(EVENT_EDGE_ADDED, this.edgeAddFn);
2443
+ this.model.unbind(EVENT_EDGE_REMOVED, this.edgeRemoveFn);
2444
+ this.model.unbind(EVENT_DATA_LOAD_END, this.dataLoadEndFn);
2445
+ this.paper.unbind(EVENT_INTERNAL_CONNECTION, this.edgeAddFn);
2446
+ }
2447
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PaperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2448
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.3.12", type: PaperComponent, selector: "vjs-paper", inputs: { inputModel: { classPropertyName: "inputModel", publicName: "model", isSignal: false, isRequired: false, transformFunction: null }, viewOptions: { classPropertyName: "viewOptions", publicName: "viewOptions", isSignal: false, isRequired: false, transformFunction: null }, renderOptions: { classPropertyName: "renderOptions", publicName: "renderOptions", isSignal: false, isRequired: false, transformFunction: null }, modelOptions: { classPropertyName: "modelOptions", publicName: "modelOptions", isSignal: false, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, url: { classPropertyName: "url", publicName: "url", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { vertexEvent: "vertexEvent" }, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true }); }
2449
+ }
2450
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PaperComponent, decorators: [{
2451
+ type: Component,
2452
+ args: [{
2453
+ selector: "vjs-paper",
2454
+ template: `<ng-content></ng-content>`
2455
+ }]
2456
+ }], propDecorators: { inputModel: [{
2457
+ type: Input,
2458
+ args: [{ alias: "model" }]
2459
+ }], viewOptions: [{
2460
+ type: Input
2461
+ }], renderOptions: [{
2462
+ type: Input
2463
+ }], modelOptions: [{
2464
+ type: Input
2465
+ }], vertexEvent: [{
2466
+ type: Output
2467
+ }] } });
2468
+
2469
+
1975
2470
  class VisuallyJsModule {
1976
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: VisuallyJsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
1977
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: VisuallyJsModule, declarations: [DefaultNodeComponent,
2471
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: VisuallyJsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
2472
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: VisuallyJsModule, declarations: [DefaultNodeComponent,
1978
2473
  DefaultGroupComponent,
1979
2474
  BasePortComponent,
1980
2475
  MiniviewComponent,
1981
2476
  SurfaceComponent,
2477
+ PaperComponent,
1982
2478
  PaletteComponent,
1983
2479
  ShapePaletteComponent,
1984
2480
  DiagramPaletteComponent,
@@ -1998,8 +2494,10 @@ class VisuallyJsModule {
1998
2494
  ScatterChartComponent,
1999
2495
  BubbleChartComponent,
2000
2496
  SankeyChartComponent,
2001
- DecoratorComponent], imports: [CommonModule], exports: [MiniviewComponent,
2497
+ DecoratorComponent,
2498
+ SurfacePopupComponent], imports: [CommonModule], exports: [MiniviewComponent,
2002
2499
  SurfaceComponent,
2500
+ PaperComponent,
2003
2501
  PaletteComponent,
2004
2502
  DiagramPaletteComponent,
2005
2503
  ShapeComponent,
@@ -2018,10 +2516,11 @@ class VisuallyJsModule {
2018
2516
  ScatterChartComponent,
2019
2517
  BubbleChartComponent,
2020
2518
  SankeyChartComponent,
2021
- DecoratorComponent] }); }
2022
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: VisuallyJsModule, imports: [CommonModule] }); }
2519
+ DecoratorComponent,
2520
+ SurfacePopupComponent] }); }
2521
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: VisuallyJsModule, imports: [CommonModule] }); }
2023
2522
  }
2024
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: VisuallyJsModule, decorators: [{
2523
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: VisuallyJsModule, decorators: [{
2025
2524
  type: NgModule,
2026
2525
  args: [{
2027
2526
  imports: [CommonModule],
@@ -2031,6 +2530,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
2031
2530
  BasePortComponent,
2032
2531
  MiniviewComponent,
2033
2532
  SurfaceComponent,
2533
+ PaperComponent,
2034
2534
  PaletteComponent,
2035
2535
  ShapePaletteComponent,
2036
2536
  DiagramPaletteComponent,
@@ -2050,11 +2550,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
2050
2550
  ScatterChartComponent,
2051
2551
  BubbleChartComponent,
2052
2552
  SankeyChartComponent,
2053
- DecoratorComponent
2553
+ DecoratorComponent,
2554
+ SurfacePopupComponent
2054
2555
  ],
2055
2556
  exports: [
2056
2557
  MiniviewComponent,
2057
2558
  SurfaceComponent,
2559
+ PaperComponent,
2058
2560
  PaletteComponent,
2059
2561
  DiagramPaletteComponent,
2060
2562
  ShapeComponent,
@@ -2073,7 +2575,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
2073
2575
  ScatterChartComponent,
2074
2576
  BubbleChartComponent,
2075
2577
  SankeyChartComponent,
2076
- DecoratorComponent
2578
+ DecoratorComponent,
2579
+ SurfacePopupComponent
2077
2580
  ]
2078
2581
  }]
2079
2582
  }] });
@@ -2143,12 +2646,12 @@ class InspectorComponent {
2143
2646
  }
2144
2647
 
2145
2648
  afterUpdate(ui) { }
2146
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: InspectorComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2147
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: InspectorComponent, inputs: { cssClass: "cssClass", showCloseButton: "showCloseButton", context: "context" }, ngImport: i0 }); }
2649
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: InspectorComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2650
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: InspectorComponent, inputs: { cssClass: "cssClass", showCloseButton: "showCloseButton", context: "context" }, ngImport: i0 }); }
2148
2651
  }
2149
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: InspectorComponent, decorators: [{
2652
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: InspectorComponent, decorators: [{
2150
2653
  type: Directive
2151
- }], ctorParameters: function () { return []; }, propDecorators: { cssClass: [{
2654
+ }], ctorParameters: () => [], propDecorators: { cssClass: [{
2152
2655
  type: Input
2153
2656
  }], showCloseButton: [{
2154
2657
  type: Input
@@ -2201,5 +2704,5 @@ function useVisuallyJsUpdate(callback) {
2201
2704
 
2202
2705
 
2203
2706
 
2204
- export { AngularComponentOverlayType, AreaChartComponent, BarChartComponent, BaseAngularOverlayComponent, BaseGroupComponent, BaseNodeComponent, BasePortComponent, BaseVertexComponent, BrowserUIAngularModel, BubbleChartComponent, ColorPickerComponent, ColumnChartComponent, ControlsComponent, DecoratorComponent, DefaultGroupComponent, DefaultNodeComponent, DiagramComponent, DiagramPaletteComponent, EdgeTypePickerComponent, ExportControlsComponent, InspectorComponent, LineChartComponent, MiniviewComponent, PaletteComponent, PieChartComponent, SankeyChartComponent, ScatterChartComponent, SeriesBasedChartComponent, ShapeComponent, ShapePaletteComponent, SurfaceComponent, VisuallyJsModule, VisuallyJsService, XYChartComponent, useVisuallyJsUpdate, useZoom };
2707
+ export { AngularComponentOverlayType, AreaChartComponent, BarChartComponent, BaseAngularOverlayComponent, BaseGroupComponent, BaseNodeComponent, BasePortComponent, BaseVertexComponent, BrowserUIAngularModel, BubbleChartComponent, ColorPickerComponent, ColumnChartComponent, ControlsComponent, DecoratorComponent, DefaultGroupComponent, DefaultNodeComponent, DiagramComponent, DiagramPaletteComponent, EdgeTypePickerComponent, ExportControlsComponent, InspectorComponent, LineChartComponent, MiniviewComponent, PaletteComponent, PaperComponent, PieChartComponent, SankeyChartComponent, ScatterChartComponent, SeriesBasedChartComponent, ShapeComponent, ShapePaletteComponent, SurfaceComponent, SurfacePopupComponent, VisuallyJsModule, VisuallyJsService, XYChartComponent, useVisuallyJsUpdate, useZoom };
2205
2708
  //# sourceMappingURL=visuallyjs-browser-ui-angular.mjs.map