@visuallyjs/browser-ui-angular 1.2.6 → 1.2.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/esm2022/index.mjs +2 -0
  2. package/esm2022/lib/browser-ui-angular.module.mjs +14 -4
  3. package/esm2022/lib/charts/area.chart.component.mjs +12 -9
  4. package/esm2022/lib/charts/bar.chart.component.mjs +12 -9
  5. package/esm2022/lib/charts/bubble.chart.component.mjs +12 -9
  6. package/esm2022/lib/charts/column.chart.component.mjs +12 -9
  7. package/esm2022/lib/charts/line.chart.component.mjs +12 -9
  8. package/esm2022/lib/charts/pie.chart.component.mjs +12 -9
  9. package/esm2022/lib/charts/sankey.chart.component.mjs +36 -10
  10. package/esm2022/lib/charts/scatter.chart.component.mjs +12 -9
  11. package/esm2022/lib/charts/series.based.chart.component.mjs +43 -10
  12. package/esm2022/lib/charts/xy.chart.component.mjs +12 -9
  13. package/esm2022/lib/controls-component.mjs +2 -2
  14. package/esm2022/lib/edge.property.mappings.inspector.component.mjs +69 -0
  15. package/esm2022/lib/edge.type.picker.component.mjs +1 -0
  16. package/esm2022/lib/shape-properties-inspector.component.mjs +255 -0
  17. package/fesm2022/visuallyjs-browser-ui-angular.mjs +499 -91
  18. package/fesm2022/visuallyjs-browser-ui-angular.mjs.map +1 -1
  19. package/index.d.ts +2 -0
  20. package/lib/browser-ui-angular.module.d.ts +4 -2
  21. package/lib/charts/area.chart.component.d.ts +7 -7
  22. package/lib/charts/bar.chart.component.d.ts +7 -7
  23. package/lib/charts/bubble.chart.component.d.ts +7 -7
  24. package/lib/charts/column.chart.component.d.ts +8 -7
  25. package/lib/charts/line.chart.component.d.ts +7 -7
  26. package/lib/charts/pie.chart.component.d.ts +7 -7
  27. package/lib/charts/sankey.chart.component.d.ts +12 -9
  28. package/lib/charts/scatter.chart.component.d.ts +7 -7
  29. package/lib/charts/series.based.chart.component.d.ts +9 -6
  30. package/lib/charts/xy.chart.component.d.ts +7 -7
  31. package/lib/controls-component.d.ts +1 -5
  32. package/lib/diagram-palette-component.d.ts +1 -1
  33. package/lib/edge.property.mappings.inspector.component.d.ts +38 -0
  34. package/lib/palette.component.d.ts +9 -9
  35. package/lib/shape-properties-inspector.component.d.ts +35 -0
  36. package/lib/shape.palette.component.d.ts +3 -3
  37. package/package.json +2 -2
  38. package/visuallyjs-browser-ui-angular.tgz +0 -0
package/esm2022/index.mjs CHANGED
@@ -41,3 +41,5 @@ export * from './lib/background.component';
41
41
  export * from './lib/image-background.component';
42
42
  export * from './lib/tiled-image-background.component';
43
43
  export * from './lib/grid-background.component';
44
+ export * from './lib/edge.property.mappings.inspector.component';
45
+ export * from './lib/shape-properties-inspector.component';
@@ -30,6 +30,8 @@ import { BackgroundComponent } from "./background.component";
30
30
  import { ImageBackgroundComponent } from "./image-background.component";
31
31
  import { TiledImageBackgroundComponent } from "./tiled-image-background.component";
32
32
  import { GridBackgroundComponent } from "./grid-background.component";
33
+ import { EdgePropertyMappingsInspectorComponent } from "./edge.property.mappings.inspector.component";
34
+ import { ShapePropertiesInspectorComponent } from "./shape-properties-inspector.component";
33
35
  import * as i0 from "@angular/core";
34
36
 
35
37
  export class VisuallyJsModule {
@@ -64,7 +66,9 @@ export class VisuallyJsModule {
64
66
  BackgroundComponent,
65
67
  ImageBackgroundComponent,
66
68
  GridBackgroundComponent,
67
- TiledImageBackgroundComponent], imports: [CommonModule], exports: [MiniviewComponent,
69
+ TiledImageBackgroundComponent,
70
+ EdgePropertyMappingsInspectorComponent,
71
+ ShapePropertiesInspectorComponent], imports: [CommonModule], exports: [MiniviewComponent,
68
72
  SurfaceComponent,
69
73
  PaperComponent,
70
74
  PaletteComponent,
@@ -90,7 +94,9 @@ export class VisuallyJsModule {
90
94
  BackgroundComponent,
91
95
  ImageBackgroundComponent,
92
96
  GridBackgroundComponent,
93
- TiledImageBackgroundComponent] }); }
97
+ TiledImageBackgroundComponent,
98
+ EdgePropertyMappingsInspectorComponent,
99
+ ShapePropertiesInspectorComponent] }); }
94
100
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: VisuallyJsModule, imports: [CommonModule] }); }
95
101
  }
96
102
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: VisuallyJsModule, decorators: [{
@@ -128,7 +134,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
128
134
  BackgroundComponent,
129
135
  ImageBackgroundComponent,
130
136
  GridBackgroundComponent,
131
- TiledImageBackgroundComponent
137
+ TiledImageBackgroundComponent,
138
+ EdgePropertyMappingsInspectorComponent,
139
+ ShapePropertiesInspectorComponent
132
140
  ],
133
141
  exports: [
134
142
  MiniviewComponent,
@@ -157,7 +165,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
157
165
  BackgroundComponent,
158
166
  ImageBackgroundComponent,
159
167
  GridBackgroundComponent,
160
- TiledImageBackgroundComponent
168
+ TiledImageBackgroundComponent,
169
+ EdgePropertyMappingsInspectorComponent,
170
+ ShapePropertiesInspectorComponent
161
171
  ]
162
172
  }]
163
173
  }] });
@@ -1,14 +1,23 @@
1
- import { Component, Input } from "@angular/core";
1
+ import { Component, input, Input } from "@angular/core";
2
2
  import { AreaChart } from "@visuallyjs/browser-ui";
3
3
  import { SeriesBasedChartComponent } from "./series.based.chart.component";
4
4
  import * as i0 from "@angular/core";
5
5
 
6
6
  export class AreaChartComponent extends SeriesBasedChartComponent {
7
+ constructor() {
8
+ super(...arguments);
9
+
10
+ this.data = input();
11
+
12
+ this.url = input();
13
+
14
+ this.options = input();
15
+ }
7
16
  createChart(el, options) {
8
17
  return new AreaChart(el, options);
9
18
  }
10
19
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AreaChartComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
11
- 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 }); }
20
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.3.12", type: AreaChartComponent, selector: "vjs-area-chart", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, url: { classPropertyName: "url", publicName: "url", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, useModel: { classPropertyName: "useModel", publicName: "useModel", isSignal: false, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: `<div></div>`, isInline: true }); }
12
21
  }
13
22
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AreaChartComponent, decorators: [{
14
23
  type: Component,
@@ -16,12 +25,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
16
25
  selector: "vjs-area-chart",
17
26
  template: `<div></div>`
18
27
  }]
19
- }], propDecorators: { data: [{
20
- type: Input
21
- }], url: [{
22
- type: Input
23
- }], options: [{
24
- type: Input
25
- }], useModel: [{
28
+ }], propDecorators: { useModel: [{
26
29
  type: Input
27
30
  }] } });
@@ -1,14 +1,23 @@
1
- import { Component, Input } from "@angular/core";
1
+ import { Component, input, Input } from "@angular/core";
2
2
  import { BarChart } from "@visuallyjs/browser-ui";
3
3
  import { SeriesBasedChartComponent } from "./series.based.chart.component";
4
4
  import * as i0 from "@angular/core";
5
5
 
6
6
  export class BarChartComponent extends SeriesBasedChartComponent {
7
+ constructor() {
8
+ super(...arguments);
9
+
10
+ this.data = input();
11
+
12
+ this.url = input();
13
+
14
+ this.options = input();
15
+ }
7
16
  createChart(el, options) {
8
17
  return new BarChart(el, options);
9
18
  }
10
19
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BarChartComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
11
- 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 }); }
20
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.3.12", type: BarChartComponent, selector: "vjs-bar-chart", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, url: { classPropertyName: "url", publicName: "url", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, useModel: { classPropertyName: "useModel", publicName: "useModel", isSignal: false, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: `<div></div>`, isInline: true }); }
12
21
  }
13
22
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BarChartComponent, decorators: [{
14
23
  type: Component,
@@ -16,12 +25,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
16
25
  selector: "vjs-bar-chart",
17
26
  template: `<div></div>`
18
27
  }]
19
- }], propDecorators: { data: [{
20
- type: Input
21
- }], url: [{
22
- type: Input
23
- }], options: [{
24
- type: Input
25
- }], useModel: [{
28
+ }], propDecorators: { useModel: [{
26
29
  type: Input
27
30
  }] } });
@@ -1,14 +1,23 @@
1
- import { Component, Input } from "@angular/core";
1
+ import { Component, input, Input } from "@angular/core";
2
2
  import { BubbleChart } from "@visuallyjs/browser-ui";
3
3
  import { SeriesBasedChartComponent } from "./series.based.chart.component";
4
4
  import * as i0 from "@angular/core";
5
5
 
6
6
  export class BubbleChartComponent extends SeriesBasedChartComponent {
7
+ constructor() {
8
+ super(...arguments);
9
+
10
+ this.data = input();
11
+
12
+ this.url = input();
13
+
14
+ this.options = input();
15
+ }
7
16
  createChart(el, options) {
8
17
  return new BubbleChart(el, options);
9
18
  }
10
19
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BubbleChartComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
11
- 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 }); }
20
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.3.12", type: BubbleChartComponent, selector: "vjs-bubble-chart", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, url: { classPropertyName: "url", publicName: "url", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, useModel: { classPropertyName: "useModel", publicName: "useModel", isSignal: false, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: `<div></div>`, isInline: true }); }
12
21
  }
13
22
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BubbleChartComponent, decorators: [{
14
23
  type: Component,
@@ -16,12 +25,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
16
25
  selector: "vjs-bubble-chart",
17
26
  template: `<div></div>`
18
27
  }]
19
- }], propDecorators: { data: [{
20
- type: Input
21
- }], url: [{
22
- type: Input
23
- }], options: [{
24
- type: Input
25
- }], useModel: [{
28
+ }], propDecorators: { useModel: [{
26
29
  type: Input
27
30
  }] } });
@@ -1,14 +1,23 @@
1
- import { Component, Input } from "@angular/core";
1
+ import { Component, input, Input } from "@angular/core";
2
2
  import { ColumnChart } from "@visuallyjs/browser-ui";
3
3
  import { SeriesBasedChartComponent } from "./series.based.chart.component";
4
4
  import * as i0 from "@angular/core";
5
5
 
6
6
  export class ColumnChartComponent extends SeriesBasedChartComponent {
7
+ constructor() {
8
+ super(...arguments);
9
+
10
+ this.data = input();
11
+
12
+ this.url = input();
13
+
14
+ this.options = input();
15
+ }
7
16
  createChart(el, options) {
8
17
  return new ColumnChart(el, options);
9
18
  }
10
19
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ColumnChartComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
11
- 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 }); }
20
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.3.12", type: ColumnChartComponent, selector: "vjs-column-chart", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, url: { classPropertyName: "url", publicName: "url", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, useModel: { classPropertyName: "useModel", publicName: "useModel", isSignal: false, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: `<div></div>`, isInline: true }); }
12
21
  }
13
22
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ColumnChartComponent, decorators: [{
14
23
  type: Component,
@@ -16,12 +25,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
16
25
  selector: "vjs-column-chart",
17
26
  template: `<div></div>`
18
27
  }]
19
- }], propDecorators: { data: [{
20
- type: Input
21
- }], url: [{
22
- type: Input
23
- }], options: [{
24
- type: Input
25
- }], useModel: [{
28
+ }], propDecorators: { useModel: [{
26
29
  type: Input
27
30
  }] } });
@@ -1,14 +1,23 @@
1
- import { Component, Input } from "@angular/core";
1
+ import { Component, input, Input } from "@angular/core";
2
2
  import { LineChart } from "@visuallyjs/browser-ui";
3
3
  import { SeriesBasedChartComponent } from "./series.based.chart.component";
4
4
  import * as i0 from "@angular/core";
5
5
 
6
6
  export class LineChartComponent extends SeriesBasedChartComponent {
7
+ constructor() {
8
+ super(...arguments);
9
+
10
+ this.data = input();
11
+
12
+ this.url = input();
13
+
14
+ this.options = input();
15
+ }
7
16
  createChart(el, options) {
8
17
  return new LineChart(el, options);
9
18
  }
10
19
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LineChartComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
11
- 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 }); }
20
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.3.12", type: LineChartComponent, selector: "vjs-line-chart", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, url: { classPropertyName: "url", publicName: "url", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, useModel: { classPropertyName: "useModel", publicName: "useModel", isSignal: false, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: `<div></div>`, isInline: true }); }
12
21
  }
13
22
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LineChartComponent, decorators: [{
14
23
  type: Component,
@@ -16,12 +25,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
16
25
  selector: "vjs-line-chart",
17
26
  template: `<div></div>`
18
27
  }]
19
- }], propDecorators: { data: [{
20
- type: Input
21
- }], url: [{
22
- type: Input
23
- }], options: [{
24
- type: Input
25
- }], useModel: [{
28
+ }], propDecorators: { useModel: [{
26
29
  type: Input
27
30
  }] } });
@@ -1,14 +1,23 @@
1
- import { Component, Input } from "@angular/core";
1
+ import { Component, input, Input } from "@angular/core";
2
2
  import { PieChart } from "@visuallyjs/browser-ui";
3
3
  import { SeriesBasedChartComponent } from "./series.based.chart.component";
4
4
  import * as i0 from "@angular/core";
5
5
 
6
6
  export class PieChartComponent extends SeriesBasedChartComponent {
7
+ constructor() {
8
+ super(...arguments);
9
+
10
+ this.data = input();
11
+
12
+ this.url = input();
13
+
14
+ this.options = input();
15
+ }
7
16
  createChart(el, options) {
8
17
  return new PieChart(el, options);
9
18
  }
10
19
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PieChartComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
11
- 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 }); }
20
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.3.12", type: PieChartComponent, selector: "vjs-pie-chart", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, url: { classPropertyName: "url", publicName: "url", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, useModel: { classPropertyName: "useModel", publicName: "useModel", isSignal: false, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: `<div></div>`, isInline: true }); }
12
21
  }
13
22
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PieChartComponent, decorators: [{
14
23
  type: Component,
@@ -16,12 +25,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
16
25
  selector: "vjs-pie-chart",
17
26
  template: `<div></div>`
18
27
  }]
19
- }], propDecorators: { data: [{
20
- type: Input
21
- }], url: [{
22
- type: Input
23
- }], options: [{
24
- type: Input
25
- }], useModel: [{
28
+ }], propDecorators: { useModel: [{
26
29
  type: Input
27
30
  }] } });
@@ -1,10 +1,42 @@
1
- import { Component, inject, ElementRef, Input, NgZone, effect } from "@angular/core";
1
+ import { Component, inject, ElementRef, Input, NgZone, effect, input } from "@angular/core";
2
2
  import { SankeyChart } from "@visuallyjs/browser-ui";
3
3
  import { VisuallyJsService } from "../vjs-service";
4
4
  import * as i0 from "@angular/core";
5
5
 
6
6
  export class SankeyChartComponent {
7
7
  constructor() {
8
+
9
+ this.csvData = input();
10
+
11
+ this.jsonData = input();
12
+
13
+ this.url = input();
14
+ this._dataEffect = effect(() => {
15
+ const currentData = this.jsonData();
16
+ if (currentData) {
17
+ if (this.chart) {
18
+ this.chart.load({ jsonData: currentData });
19
+ }
20
+ }
21
+ });
22
+ this._urlEffect = effect(() => {
23
+ const currentUrl = this.url();
24
+ if (currentUrl) {
25
+ // Respond to changes in the url here.
26
+ // For example, if you need to reload the model with new data:
27
+ if (this.chart) {
28
+ this.chart.load({ url: currentUrl });
29
+ }
30
+ }
31
+ });
32
+ this._csvDataEffect = effect(() => {
33
+ const currentData = this.csvData();
34
+ if (currentData) {
35
+ if (this.chart) {
36
+ this.chart.load({ csvData: currentData });
37
+ }
38
+ }
39
+ });
8
40
  this.$el = inject(ElementRef);
9
41
  this.$ngZone = inject(NgZone);
10
42
  this.$vjs = inject(VisuallyJsService);
@@ -39,7 +71,7 @@ export class SankeyChartComponent {
39
71
 
40
72
  ngAfterViewInit() {
41
73
  if (!this.useModel) {
42
- this._init(null, this.csvData, this.jsonData, this.url);
74
+ this._init(null, this.csvData(), this.jsonData(), this.url());
43
75
  }
44
76
  }
45
77
  ngOnChanges(changes) {
@@ -53,7 +85,7 @@ export class SankeyChartComponent {
53
85
  this.chart?.destroy();
54
86
  }
55
87
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SankeyChartComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
56
- 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 }); }
88
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.3.12", type: SankeyChartComponent, selector: "vjs-sankey-chart", inputs: { csvData: { classPropertyName: "csvData", publicName: "csvData", isSignal: true, isRequired: false, transformFunction: null }, jsonData: { classPropertyName: "jsonData", publicName: "jsonData", isSignal: true, isRequired: false, transformFunction: null }, url: { classPropertyName: "url", publicName: "url", isSignal: true, isRequired: false, transformFunction: null }, interactive: { classPropertyName: "interactive", publicName: "interactive", isSignal: false, isRequired: false, transformFunction: null }, pivot: { classPropertyName: "pivot", publicName: "pivot", isSignal: false, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: false, isRequired: false, transformFunction: null }, useModel: { classPropertyName: "useModel", publicName: "useModel", isSignal: false, isRequired: false, transformFunction: null } }, usesOnChanges: true, ngImport: i0, template: `<div></div>`, isInline: true }); }
57
89
  }
58
90
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SankeyChartComponent, decorators: [{
59
91
  type: Component,
@@ -61,13 +93,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
61
93
  selector: "vjs-sankey-chart",
62
94
  template: `<div></div>`
63
95
  }]
64
- }], ctorParameters: () => [], propDecorators: { csvData: [{
65
- type: Input
66
- }], jsonData: [{
67
- type: Input
68
- }], url: [{
69
- type: Input
70
- }], interactive: [{
96
+ }], ctorParameters: () => [], propDecorators: { interactive: [{
71
97
  type: Input
72
98
  }], pivot: [{
73
99
  type: Input
@@ -1,14 +1,23 @@
1
- import { Component, Input } from "@angular/core";
1
+ import { Component, input, Input } from "@angular/core";
2
2
  import { ScatterChart } from "@visuallyjs/browser-ui";
3
3
  import { SeriesBasedChartComponent } from "./series.based.chart.component";
4
4
  import * as i0 from "@angular/core";
5
5
 
6
6
  export class ScatterChartComponent extends SeriesBasedChartComponent {
7
+ constructor() {
8
+ super(...arguments);
9
+
10
+ this.data = input();
11
+
12
+ this.url = input();
13
+
14
+ this.options = input();
15
+ }
7
16
  createChart(el, options) {
8
17
  return new ScatterChart(el, options);
9
18
  }
10
19
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ScatterChartComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
11
- 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 }); }
20
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.3.12", type: ScatterChartComponent, selector: "vjs-scatter-chart", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, url: { classPropertyName: "url", publicName: "url", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, useModel: { classPropertyName: "useModel", publicName: "useModel", isSignal: false, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: `<div></div>`, isInline: true }); }
12
21
  }
13
22
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ScatterChartComponent, decorators: [{
14
23
  type: Component,
@@ -16,12 +25,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
16
25
  selector: "vjs-scatter-chart",
17
26
  template: `<div></div>`
18
27
  }]
19
- }], propDecorators: { data: [{
20
- type: Input
21
- }], url: [{
22
- type: Input
23
- }], options: [{
24
- type: Input
25
- }], useModel: [{
28
+ }], propDecorators: { useModel: [{
26
29
  type: Input
27
30
  }] } });
@@ -1,11 +1,11 @@
1
- import { effect, ElementRef, inject, Injectable, Input, NgZone } from "@angular/core";
1
+ import { effect, ElementRef, inject, Injectable, input, Input, NgZone, untracked } from "@angular/core";
2
2
  import { VisuallyJsService } from "../vjs-service";
3
3
  import * as i0 from "@angular/core";
4
4
 
5
5
  export class SeriesBasedChartComponent {
6
6
  _init(dataSource, data, url) {
7
7
  this.$ngZone.runOutsideAngular(() => {
8
- const o = Object.assign({}, this.options);
8
+ const o = Object.assign({}, this.options());
9
9
  Object.assign(o, { dataSource });
10
10
  this.chart = this.createChart(this.$el.nativeElement, o);
11
11
  if (data) {
@@ -17,6 +17,45 @@ export class SeriesBasedChartComponent {
17
17
  });
18
18
  }
19
19
  constructor() {
20
+
21
+ this.data = input();
22
+
23
+ this.url = input();
24
+
25
+ this.options = input();
26
+ this._dataEffect = effect(() => {
27
+ const currentData = this.data();
28
+ if (currentData) {
29
+ if (this.chart) {
30
+ this.chart.load({ data: currentData });
31
+ }
32
+ }
33
+ });
34
+ this._urlEffect = effect(() => {
35
+ const currentUrl = this.url();
36
+ if (currentUrl) {
37
+ // Respond to changes in the url here.
38
+ // For example, if you need to reload the model with new data:
39
+ if (this.chart) {
40
+ this.chart.load({ url: currentUrl });
41
+ }
42
+ }
43
+ });
44
+ this._optionsEffect = effect(() => {
45
+ this.options(); // track options
46
+ if (this.chart) {
47
+ // options have changed, recreate the chart
48
+ untracked(() => {
49
+ this.chart.destroy();
50
+ if (this.useModel) {
51
+ this._init(this.$vjs.model(), null, null);
52
+ }
53
+ else {
54
+ this._init(null, this.data(), this.url());
55
+ }
56
+ });
57
+ }
58
+ });
20
59
  this.$el = inject(ElementRef);
21
60
  this.$ngZone = inject(NgZone);
22
61
  this.$vjs = inject(VisuallyJsService);
@@ -32,7 +71,7 @@ export class SeriesBasedChartComponent {
32
71
 
33
72
  ngAfterViewInit() {
34
73
  if (!this.useModel) {
35
- this._init(null, this.data, this.url);
74
+ this._init(null, this.data(), this.url());
36
75
  }
37
76
  }
38
77
  ngOnDestroy() {
@@ -43,12 +82,6 @@ export class SeriesBasedChartComponent {
43
82
  }
44
83
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SeriesBasedChartComponent, decorators: [{
45
84
  type: Injectable
46
- }], ctorParameters: () => [], propDecorators: { data: [{
47
- type: Input
48
- }], url: [{
49
- type: Input
50
- }], options: [{
51
- type: Input
52
- }], useModel: [{
85
+ }], ctorParameters: () => [], propDecorators: { useModel: [{
53
86
  type: Input
54
87
  }] } });
@@ -1,14 +1,23 @@
1
- import { Component, Input } from "@angular/core";
1
+ import { Component, input, Input } from "@angular/core";
2
2
  import { CategoryValueChart } from "@visuallyjs/browser-ui";
3
3
  import { SeriesBasedChartComponent } from "./series.based.chart.component";
4
4
  import * as i0 from "@angular/core";
5
5
 
6
6
  export class XYChartComponent extends SeriesBasedChartComponent {
7
+ constructor() {
8
+ super(...arguments);
9
+
10
+ this.data = input();
11
+
12
+ this.url = input();
13
+
14
+ this.options = input();
15
+ }
7
16
  createChart(el, options) {
8
17
  return new CategoryValueChart(el, options);
9
18
  }
10
19
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: XYChartComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
11
- 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 }); }
20
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.3.12", type: XYChartComponent, selector: "vjs-xy-chart", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, url: { classPropertyName: "url", publicName: "url", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, useModel: { classPropertyName: "useModel", publicName: "useModel", isSignal: false, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: `<div></div>`, isInline: true }); }
12
21
  }
13
22
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: XYChartComponent, decorators: [{
14
23
  type: Component,
@@ -16,12 +25,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
16
25
  selector: "vjs-xy-chart",
17
26
  template: `<div></div>`
18
27
  }]
19
- }], propDecorators: { data: [{
20
- type: Input
21
- }], url: [{
22
- type: Input
23
- }], options: [{
24
- type: Input
25
- }], useModel: [{
28
+ }], propDecorators: { useModel: [{
26
29
  type: Input
27
30
  }] } });
@@ -108,13 +108,13 @@ export class ControlsComponent {
108
108
  }
109
109
  }
110
110
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ControlsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
111
- 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()\">\n <svg viewBox=\"0 0 24 24\" stroke=\"currentColor\" fill=\"none\"><path d=\"M3 7v6h6 M21 17a9 9 0 0 0-9-9 9 9 0 0 0-6 2.3L3 13\" stroke-width=\"2\"></path></svg>\n </i>\n <i *ngIf=\"undoRedo\" class=\"vjs-redo\" data-redo=\"true\" title=\"Redo last action\" (click)=\"redo()\">\n <svg viewBox=\"0 0 24 24\" stroke=\"currentColor\" fill=\"none\"><path d=\"M21 7v6h-6 M3 17a9 9 0 0 1 9-9 9 9 0 0 1 6 2.3L21 13\" stroke-width=\"2\"></path></svg>\n </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"] }] }); }
111
+ 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\" can-undo=\"false\" can-redo=\"false\">\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()\">\n <svg viewBox=\"0 0 24 24\" stroke=\"currentColor\" fill=\"none\"><path d=\"M3 7v6h6 M21 17a9 9 0 0 0-9-9 9 9 0 0 0-6 2.3L3 13\" stroke-width=\"2\"></path></svg>\n </i>\n <i *ngIf=\"undoRedo\" class=\"vjs-redo\" data-redo=\"true\" title=\"Redo last action\" (click)=\"redo()\">\n <svg viewBox=\"0 0 24 24\" stroke=\"currentColor\" fill=\"none\"><path d=\"M21 7v6h-6 M3 17a9 9 0 0 1 9-9 9 9 0 0 1 6 2.3L21 13\" stroke-width=\"2\"></path></svg>\n </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"] }] }); }
112
112
  }
113
113
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ControlsComponent, decorators: [{
114
114
  type: Component,
115
115
  args: [{
116
116
  selector: "vjs-controls",
117
- template: `<div class="vjs-controls" [attr.data-vjs-orientation]="orientation">
117
+ template: `<div class="vjs-controls" [attr.data-vjs-orientation]="orientation" ${ATTRIBUTE_CAN_UNDO}="false" ${ATTRIBUTE_CAN_REDO}="false">
118
118
  <i *ngIf="showPanButton" class="vjs-pan-mode ${CLASS_SELECTED_MODE}" data-mode="${SURFACE_MODE_PAN}" title="Pan Mode" (click)="panMode()">
119
119
  <svg viewBox="${PAN_VIEW_BOX}" stroke="currentColor" fill="none">
120
120
  <path d="${PAN_PATH}"></path>