@visuallyjs/browser-ui-angular 1.2.1 → 1.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/index.mjs +4 -0
- package/esm2022/lib/background.component.mjs +38 -0
- package/esm2022/lib/browser-ui-angular.module.mjs +24 -4
- package/esm2022/lib/grid-background.component.mjs +77 -0
- package/esm2022/lib/image-background.component.mjs +38 -0
- package/esm2022/lib/overlay-component.mjs +52 -1
- package/esm2022/lib/paper-component.mjs +11 -2
- package/esm2022/lib/surface-component.mjs +16 -2
- package/esm2022/lib/surface-popup-component.mjs +5 -5
- package/esm2022/lib/tiled-image-background.component.mjs +62 -0
- package/fesm2022/visuallyjs-browser-ui-angular.mjs +306 -15
- package/fesm2022/visuallyjs-browser-ui-angular.mjs.map +1 -1
- package/index.d.ts +4 -0
- package/lib/background.component.d.ts +13 -0
- package/lib/browser-ui-angular.module.d.ts +6 -2
- package/lib/grid-background.component.d.ts +81 -0
- package/lib/image-background.component.d.ts +18 -0
- package/lib/overlay-component.d.ts +29 -5
- package/lib/paper-component.d.ts +6 -0
- package/lib/surface-component.d.ts +6 -0
- package/lib/surface-popup-component.d.ts +1 -1
- package/lib/tiled-image-background.component.d.ts +72 -0
- package/package.json +2 -2
- package/visuallyjs-browser-ui-angular.tgz +0 -0
package/esm2022/index.mjs
CHANGED
|
@@ -37,3 +37,7 @@ export * from './lib/charts/bubble.chart.component';
|
|
|
37
37
|
export * from './lib/charts/sankey.chart.component';
|
|
38
38
|
export * from './lib/hooks/use-zoom';
|
|
39
39
|
export * from './lib/hooks/use-visuallyjs-update';
|
|
40
|
+
export * from './lib/background.component';
|
|
41
|
+
export * from './lib/image-background.component';
|
|
42
|
+
export * from './lib/tiled-image-background.component';
|
|
43
|
+
export * from './lib/grid-background.component';
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { inject, Component, effect, Input } from "@angular/core";
|
|
2
|
+
import { BackgroundPlugin, log } from "@visuallyjs/browser-ui";
|
|
3
|
+
import { VisuallyJsService } from "./vjs-service";
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class BackgroundComponent {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.$vjs = inject(VisuallyJsService);
|
|
8
|
+
this._bg = null;
|
|
9
|
+
this._optionsEffect = effect(() => {
|
|
10
|
+
if (this.options != null) {
|
|
11
|
+
}
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
ngAfterViewInit() {
|
|
15
|
+
this.$vjs.getSurface(s => {
|
|
16
|
+
try {
|
|
17
|
+
this._bg = s.addPlugin({
|
|
18
|
+
type: BackgroundPlugin.type,
|
|
19
|
+
options: this.options
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
catch (e) {
|
|
23
|
+
log(`WARN: BackgroundComponent could not mount background ${e}`);
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BackgroundComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
28
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: BackgroundComponent, selector: "vjs-background", inputs: { options: "options" }, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true }); }
|
|
29
|
+
}
|
|
30
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BackgroundComponent, decorators: [{
|
|
31
|
+
type: Component,
|
|
32
|
+
args: [{
|
|
33
|
+
selector: "vjs-background",
|
|
34
|
+
template: `<ng-content></ng-content>`
|
|
35
|
+
}]
|
|
36
|
+
}], propDecorators: { options: [{
|
|
37
|
+
type: Input
|
|
38
|
+
}] } });
|
|
@@ -26,6 +26,10 @@ import { SankeyChartComponent } from "./charts/sankey.chart.component";
|
|
|
26
26
|
import { DecoratorComponent } from "./decorator-component";
|
|
27
27
|
import { SurfacePopupComponent } from "./surface-popup-component";
|
|
28
28
|
import { PaperComponent } from "./paper-component";
|
|
29
|
+
import { BackgroundComponent } from "./background.component";
|
|
30
|
+
import { ImageBackgroundComponent } from "./image-background.component";
|
|
31
|
+
import { TiledImageBackgroundComponent } from "./tiled-image-background.component";
|
|
32
|
+
import { GridBackgroundComponent } from "./grid-background.component";
|
|
29
33
|
import * as i0 from "@angular/core";
|
|
30
34
|
|
|
31
35
|
export class VisuallyJsModule {
|
|
@@ -56,7 +60,11 @@ export class VisuallyJsModule {
|
|
|
56
60
|
BubbleChartComponent,
|
|
57
61
|
SankeyChartComponent,
|
|
58
62
|
DecoratorComponent,
|
|
59
|
-
SurfacePopupComponent
|
|
63
|
+
SurfacePopupComponent,
|
|
64
|
+
BackgroundComponent,
|
|
65
|
+
ImageBackgroundComponent,
|
|
66
|
+
GridBackgroundComponent,
|
|
67
|
+
TiledImageBackgroundComponent], imports: [CommonModule], exports: [MiniviewComponent,
|
|
60
68
|
SurfaceComponent,
|
|
61
69
|
PaperComponent,
|
|
62
70
|
PaletteComponent,
|
|
@@ -78,7 +86,11 @@ export class VisuallyJsModule {
|
|
|
78
86
|
BubbleChartComponent,
|
|
79
87
|
SankeyChartComponent,
|
|
80
88
|
DecoratorComponent,
|
|
81
|
-
SurfacePopupComponent
|
|
89
|
+
SurfacePopupComponent,
|
|
90
|
+
BackgroundComponent,
|
|
91
|
+
ImageBackgroundComponent,
|
|
92
|
+
GridBackgroundComponent,
|
|
93
|
+
TiledImageBackgroundComponent] }); }
|
|
82
94
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: VisuallyJsModule, imports: [CommonModule] }); }
|
|
83
95
|
}
|
|
84
96
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: VisuallyJsModule, decorators: [{
|
|
@@ -112,7 +124,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
112
124
|
BubbleChartComponent,
|
|
113
125
|
SankeyChartComponent,
|
|
114
126
|
DecoratorComponent,
|
|
115
|
-
SurfacePopupComponent
|
|
127
|
+
SurfacePopupComponent,
|
|
128
|
+
BackgroundComponent,
|
|
129
|
+
ImageBackgroundComponent,
|
|
130
|
+
GridBackgroundComponent,
|
|
131
|
+
TiledImageBackgroundComponent
|
|
116
132
|
],
|
|
117
133
|
exports: [
|
|
118
134
|
MiniviewComponent,
|
|
@@ -137,7 +153,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
137
153
|
BubbleChartComponent,
|
|
138
154
|
SankeyChartComponent,
|
|
139
155
|
DecoratorComponent,
|
|
140
|
-
SurfacePopupComponent
|
|
156
|
+
SurfacePopupComponent,
|
|
157
|
+
BackgroundComponent,
|
|
158
|
+
ImageBackgroundComponent,
|
|
159
|
+
GridBackgroundComponent,
|
|
160
|
+
TiledImageBackgroundComponent
|
|
141
161
|
]
|
|
142
162
|
}]
|
|
143
163
|
}] });
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { inject, Component, Input } from "@angular/core";
|
|
2
|
+
import { BackgroundPlugin, GeneratedGridBackground, log } from "@visuallyjs/browser-ui";
|
|
3
|
+
import { VisuallyJsService } from "./vjs-service";
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
|
|
6
|
+
export class GridBackgroundComponent {
|
|
7
|
+
constructor() {
|
|
8
|
+
this.$vjs = inject(VisuallyJsService);
|
|
9
|
+
this._bg = null;
|
|
10
|
+
}
|
|
11
|
+
_getOptions() {
|
|
12
|
+
return {
|
|
13
|
+
type: GeneratedGridBackground.type,
|
|
14
|
+
grid: this.grid,
|
|
15
|
+
showBorder: this.showBorder,
|
|
16
|
+
minWidth: this.minWidth,
|
|
17
|
+
minHeight: this.minHeight,
|
|
18
|
+
showTickMarks: this.showTickMarks,
|
|
19
|
+
tickMarksPerCell: this.tickMarksPerCell,
|
|
20
|
+
maxWidth: this.maxWidth,
|
|
21
|
+
maxHeight: this.maxHeight,
|
|
22
|
+
autoShrink: this.autoShrink,
|
|
23
|
+
gridType: this.gridType,
|
|
24
|
+
dotRadius: this.dotRadius,
|
|
25
|
+
tickDotRadius: this.tickDotRadius,
|
|
26
|
+
visible: this.visible
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
ngAfterViewInit() {
|
|
30
|
+
this.$vjs.getSurface(s => {
|
|
31
|
+
try {
|
|
32
|
+
this._bg = s.addPlugin({
|
|
33
|
+
type: BackgroundPlugin.type,
|
|
34
|
+
options: this._getOptions()
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
catch (e) {
|
|
38
|
+
log(`WARN: GridBackgroundComponent could not mount background ${e}`);
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: GridBackgroundComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
43
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: GridBackgroundComponent, selector: "vjs-grid-background", inputs: { grid: "grid", showBorder: "showBorder", minWidth: "minWidth", minHeight: "minHeight", showTickMarks: "showTickMarks", tickMarksPerCell: "tickMarksPerCell", maxWidth: "maxWidth", maxHeight: "maxHeight", autoShrink: "autoShrink", gridType: "gridType", dotRadius: "dotRadius", tickDotRadius: "tickDotRadius", visible: "visible" }, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true }); }
|
|
44
|
+
}
|
|
45
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: GridBackgroundComponent, decorators: [{
|
|
46
|
+
type: Component,
|
|
47
|
+
args: [{
|
|
48
|
+
selector: "vjs-grid-background",
|
|
49
|
+
template: `<ng-content></ng-content>`
|
|
50
|
+
}]
|
|
51
|
+
}], propDecorators: { grid: [{
|
|
52
|
+
type: Input
|
|
53
|
+
}], showBorder: [{
|
|
54
|
+
type: Input
|
|
55
|
+
}], minWidth: [{
|
|
56
|
+
type: Input
|
|
57
|
+
}], minHeight: [{
|
|
58
|
+
type: Input
|
|
59
|
+
}], showTickMarks: [{
|
|
60
|
+
type: Input
|
|
61
|
+
}], tickMarksPerCell: [{
|
|
62
|
+
type: Input
|
|
63
|
+
}], maxWidth: [{
|
|
64
|
+
type: Input
|
|
65
|
+
}], maxHeight: [{
|
|
66
|
+
type: Input
|
|
67
|
+
}], autoShrink: [{
|
|
68
|
+
type: Input
|
|
69
|
+
}], gridType: [{
|
|
70
|
+
type: Input
|
|
71
|
+
}], dotRadius: [{
|
|
72
|
+
type: Input
|
|
73
|
+
}], tickDotRadius: [{
|
|
74
|
+
type: Input
|
|
75
|
+
}], visible: [{
|
|
76
|
+
type: Input
|
|
77
|
+
}] } });
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { inject, Component, Input } from "@angular/core";
|
|
2
|
+
import { BackgroundPlugin, log, SimpleBackground } from "@visuallyjs/browser-ui";
|
|
3
|
+
import { VisuallyJsService } from "./vjs-service";
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
|
|
6
|
+
export class ImageBackgroundComponent {
|
|
7
|
+
constructor() {
|
|
8
|
+
this.$vjs = inject(VisuallyJsService);
|
|
9
|
+
}
|
|
10
|
+
ngAfterViewInit() {
|
|
11
|
+
this.$vjs.getSurface(s => {
|
|
12
|
+
try {
|
|
13
|
+
// tslint:disable-next-line:no-unused-expression
|
|
14
|
+
s.addPlugin({
|
|
15
|
+
type: BackgroundPlugin.type,
|
|
16
|
+
options: {
|
|
17
|
+
type: SimpleBackground.type,
|
|
18
|
+
url: this.url
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
catch (e) {
|
|
23
|
+
log(`WARN: ImageBackgroundComponent could not mount background ${e}`);
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ImageBackgroundComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
28
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ImageBackgroundComponent, selector: "vjs-image-background", inputs: { url: "url" }, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true }); }
|
|
29
|
+
}
|
|
30
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ImageBackgroundComponent, decorators: [{
|
|
31
|
+
type: Component,
|
|
32
|
+
args: [{
|
|
33
|
+
selector: "vjs-image-background",
|
|
34
|
+
template: `<ng-content></ng-content>`
|
|
35
|
+
}]
|
|
36
|
+
}], propDecorators: { url: [{
|
|
37
|
+
type: Input
|
|
38
|
+
}] } });
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { EVENT_EDGE_UPDATED, EVENT_GROUP_UPDATED, EVENT_NODE_UPDATED, EVENT_PORT_UPDATED } from "@visuallyjs/browser-ui";
|
|
2
|
+
import { ChangeDetectorRef, inject, Injectable, signal } from "@angular/core";
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
2
4
|
|
|
3
5
|
export const AngularComponentOverlayType = "AngularComponent";
|
|
4
6
|
|
|
@@ -6,6 +8,50 @@ export class BaseAngularOverlayComponent {
|
|
|
6
8
|
constructor() {
|
|
7
9
|
|
|
8
10
|
this.changeDetectorRef = inject(ChangeDetectorRef);
|
|
11
|
+
|
|
12
|
+
this.$edgeData = signal({});
|
|
13
|
+
|
|
14
|
+
this.$sourceData = signal({});
|
|
15
|
+
|
|
16
|
+
this.$targetData = signal({});
|
|
17
|
+
}
|
|
18
|
+
ngOnInit() {
|
|
19
|
+
this.$edgeData.set(this.edge.data);
|
|
20
|
+
this.$sourceData.set(this.edge.source.data);
|
|
21
|
+
this.$targetData.set(this.edge.target.data);
|
|
22
|
+
this._edgeUpdate = (p) => {
|
|
23
|
+
if (p.edge.id === this.edge.id) {
|
|
24
|
+
this.$edgeData.set({ ...p.edge.data });
|
|
25
|
+
this.$sourceData.set({ ...p.edge.source.data });
|
|
26
|
+
this.$targetData.set({ ...p.edge.target.data });
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
this._vertexUpdate = (p) => {
|
|
30
|
+
if (p.vertex === this.edge.source) {
|
|
31
|
+
this.$sourceData.set({ ...p.vertex.data });
|
|
32
|
+
}
|
|
33
|
+
if (p.vertex === this.edge.target) {
|
|
34
|
+
this.$targetData.set({ ...p.vertex.data });
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
this._portUpdate = (p) => {
|
|
38
|
+
if (p.port === this.edge.source) {
|
|
39
|
+
this.$sourceData.set({ ...p.port.data });
|
|
40
|
+
}
|
|
41
|
+
if (p.port === this.edge.target) {
|
|
42
|
+
this.$targetData.set({ ...p.port.data });
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
this.model.bind(EVENT_EDGE_UPDATED, this._edgeUpdate);
|
|
46
|
+
this.model.bind(EVENT_NODE_UPDATED, this._vertexUpdate);
|
|
47
|
+
this.model.bind(EVENT_GROUP_UPDATED, this._vertexUpdate);
|
|
48
|
+
this.model.bind(EVENT_PORT_UPDATED, this._portUpdate);
|
|
49
|
+
}
|
|
50
|
+
ngOnDestroy() {
|
|
51
|
+
this.model.unbind(EVENT_EDGE_UPDATED, this._edgeUpdate);
|
|
52
|
+
this.model.unbind(EVENT_NODE_UPDATED, this._vertexUpdate);
|
|
53
|
+
this.model.unbind(EVENT_GROUP_UPDATED, this._vertexUpdate);
|
|
54
|
+
this.model.unbind(EVENT_PORT_UPDATED, this._portUpdate);
|
|
9
55
|
}
|
|
10
56
|
|
|
11
57
|
updateEdge(updates) {
|
|
@@ -15,4 +61,9 @@ export class BaseAngularOverlayComponent {
|
|
|
15
61
|
removeEdge() {
|
|
16
62
|
this.model.removeEdge(this.edge);
|
|
17
63
|
}
|
|
64
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BaseAngularOverlayComponent, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
65
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BaseAngularOverlayComponent }); }
|
|
18
66
|
}
|
|
67
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BaseAngularOverlayComponent, decorators: [{
|
|
68
|
+
type: Injectable
|
|
69
|
+
}] });
|
|
@@ -73,6 +73,7 @@ export class PaperComponent {
|
|
|
73
73
|
component.changeDetectorRef.detectChanges();
|
|
74
74
|
}
|
|
75
75
|
}, false);
|
|
76
|
+
this._maybeUpdateEdgeOverlays(params.vertex);
|
|
76
77
|
}
|
|
77
78
|
portUpdated(params) {
|
|
78
79
|
const info = this.paper.getObjectInfo(params.port, false);
|
|
@@ -84,10 +85,14 @@ export class PaperComponent {
|
|
|
84
85
|
}
|
|
85
86
|
}
|
|
86
87
|
}, true);
|
|
88
|
+
this._maybeUpdateEdgeOverlays(params.port);
|
|
89
|
+
}
|
|
90
|
+
_maybeUpdateEdgeOverlays(vertex) {
|
|
91
|
+
vertex.getAllEdges().forEach(e => this._handleEdgeUpdate(e.id));
|
|
87
92
|
}
|
|
88
93
|
|
|
89
|
-
|
|
90
|
-
const connection = this.paper.getRenderedConnection(
|
|
94
|
+
_handleEdgeUpdate(edgeId) {
|
|
95
|
+
const connection = this.paper.getRenderedConnection(edgeId);
|
|
91
96
|
if (connection) {
|
|
92
97
|
for (let id in connection.overlays) {
|
|
93
98
|
const canvas = connection.overlays[id].contentElement;
|
|
@@ -99,6 +104,10 @@ export class PaperComponent {
|
|
|
99
104
|
}
|
|
100
105
|
}
|
|
101
106
|
}
|
|
107
|
+
|
|
108
|
+
edgeUpdated(params) {
|
|
109
|
+
this._handleEdgeUpdate(params.edge.id);
|
|
110
|
+
}
|
|
102
111
|
edgeAddedRemoved(params) {
|
|
103
112
|
const info = this.paper.getObjectInfo(params.edge.source, false);
|
|
104
113
|
if (info.el) {
|
|
@@ -69,10 +69,16 @@ export class SurfaceComponent {
|
|
|
69
69
|
this._getComponentThen(info.el, (component) => {
|
|
70
70
|
component.data = params.vertex.data;
|
|
71
71
|
component.$data?.set(component.data);
|
|
72
|
+
try {
|
|
73
|
+
;
|
|
74
|
+
component.$updateEdges();
|
|
75
|
+
}
|
|
76
|
+
catch (e) { }
|
|
72
77
|
if (component.changeDetectorRef) {
|
|
73
78
|
component.changeDetectorRef.detectChanges();
|
|
74
79
|
}
|
|
75
80
|
}, false);
|
|
81
|
+
this._maybeUpdateEdgeOverlays(params.vertex);
|
|
76
82
|
}
|
|
77
83
|
portUpdated(params) {
|
|
78
84
|
const info = this.surface.getObjectInfo(params.port, false);
|
|
@@ -84,10 +90,14 @@ export class SurfaceComponent {
|
|
|
84
90
|
}
|
|
85
91
|
}
|
|
86
92
|
}, true);
|
|
93
|
+
this._maybeUpdateEdgeOverlays(params.port);
|
|
94
|
+
}
|
|
95
|
+
_maybeUpdateEdgeOverlays(vertex) {
|
|
96
|
+
vertex.getAllEdges().forEach(e => this._handleEdgeUpdate(e.id));
|
|
87
97
|
}
|
|
88
98
|
|
|
89
|
-
|
|
90
|
-
const connection = this.surface.getRenderedConnection(
|
|
99
|
+
_handleEdgeUpdate(edgeId) {
|
|
100
|
+
const connection = this.surface.getRenderedConnection(edgeId);
|
|
91
101
|
if (connection) {
|
|
92
102
|
for (let id in connection.overlays) {
|
|
93
103
|
const canvas = connection.overlays[id].contentElement;
|
|
@@ -99,6 +109,10 @@ export class SurfaceComponent {
|
|
|
99
109
|
}
|
|
100
110
|
}
|
|
101
111
|
}
|
|
112
|
+
|
|
113
|
+
edgeUpdated(params) {
|
|
114
|
+
this._handleEdgeUpdate(params.edge.id);
|
|
115
|
+
}
|
|
102
116
|
edgeAddedRemoved(params) {
|
|
103
117
|
const info = this.surface.getObjectInfo(params.edge.source, false);
|
|
104
118
|
if (info.el) {
|
|
@@ -14,10 +14,10 @@ export class SurfacePopupComponent {
|
|
|
14
14
|
this.ui = this.vjs.ui;
|
|
15
15
|
this.display = computed(() => (this.current() == null ? "none" : "block"));
|
|
16
16
|
}
|
|
17
|
-
$hide() {
|
|
18
|
-
this.popupHandler?.$hide();
|
|
19
|
-
}
|
|
20
17
|
ngAfterViewInit() {
|
|
18
|
+
this._hideFunction = function () {
|
|
19
|
+
this.popupHandler?.$hide();
|
|
20
|
+
}.bind(this);
|
|
21
21
|
this.vjs.getSurface((surface) => {
|
|
22
22
|
if (!this.initialized) {
|
|
23
23
|
this.initialized = true;
|
|
@@ -34,7 +34,7 @@ export class SurfacePopupComponent {
|
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
36
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SurfacePopupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
37
|
-
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
|
|
37
|
+
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:_hideFunction }\"></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"] }] }); }
|
|
38
38
|
}
|
|
39
39
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SurfacePopupComponent, decorators: [{
|
|
40
40
|
type: Component,
|
|
@@ -43,7 +43,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
43
43
|
template: `
|
|
44
44
|
<div #container class="${CLASS_SURFACE_POPUP}" [style.display]="display()" style="position:absolute">
|
|
45
45
|
<ng-container *ngIf="current()">
|
|
46
|
-
<ng-container *ngTemplateOutlet="template; context: { vertex: current(), model: model(), ui: ui(), hide
|
|
46
|
+
<ng-container *ngTemplateOutlet="template; context: { vertex: current(), model: model(), ui: ui(), hide:_hideFunction }"></ng-container>
|
|
47
47
|
</ng-container>
|
|
48
48
|
</div>
|
|
49
49
|
`
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { inject, Component, Input } from "@angular/core";
|
|
2
|
+
import { BackgroundPlugin, log, TiledBackground } from "@visuallyjs/browser-ui";
|
|
3
|
+
import { VisuallyJsService } from "./vjs-service";
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
|
|
6
|
+
export class TiledImageBackgroundComponent {
|
|
7
|
+
constructor() {
|
|
8
|
+
this.$vjs = inject(VisuallyJsService);
|
|
9
|
+
this._bg = null;
|
|
10
|
+
}
|
|
11
|
+
ngAfterViewInit() {
|
|
12
|
+
this.$vjs.getSurface(s => {
|
|
13
|
+
try {
|
|
14
|
+
this._bg = s.addPlugin({
|
|
15
|
+
type: BackgroundPlugin.type,
|
|
16
|
+
options: {
|
|
17
|
+
type: TiledBackground.type,
|
|
18
|
+
url: this.url,
|
|
19
|
+
urlGenerator: this.urlGenerator,
|
|
20
|
+
tileSize: this.tileSize,
|
|
21
|
+
width: this.width,
|
|
22
|
+
height: this.height,
|
|
23
|
+
maxZoom: this.maxZoom,
|
|
24
|
+
tiling: this.tiling,
|
|
25
|
+
panDebounceTimeout: this.panDebounceTimeout,
|
|
26
|
+
zoomDebounceTimeout: this.zoomDebounceTimeout
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
catch (e) {
|
|
31
|
+
log(`WARN: TiledImageBackgroundComponent could not mount background ${e}`);
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TiledImageBackgroundComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
36
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TiledImageBackgroundComponent, selector: "vjs-tiled-image-background", inputs: { url: "url", urlGenerator: "urlGenerator", tileSize: "tileSize", width: "width", height: "height", maxZoom: "maxZoom", tiling: "tiling", panDebounceTimeout: "panDebounceTimeout", zoomDebounceTimeout: "zoomDebounceTimeout" }, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true }); }
|
|
37
|
+
}
|
|
38
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TiledImageBackgroundComponent, decorators: [{
|
|
39
|
+
type: Component,
|
|
40
|
+
args: [{
|
|
41
|
+
selector: "vjs-tiled-image-background",
|
|
42
|
+
template: `<ng-content></ng-content>`
|
|
43
|
+
}]
|
|
44
|
+
}], propDecorators: { url: [{
|
|
45
|
+
type: Input
|
|
46
|
+
}], urlGenerator: [{
|
|
47
|
+
type: Input
|
|
48
|
+
}], tileSize: [{
|
|
49
|
+
type: Input
|
|
50
|
+
}], width: [{
|
|
51
|
+
type: Input
|
|
52
|
+
}], height: [{
|
|
53
|
+
type: Input
|
|
54
|
+
}], maxZoom: [{
|
|
55
|
+
type: Input
|
|
56
|
+
}], tiling: [{
|
|
57
|
+
type: Input
|
|
58
|
+
}], panDebounceTimeout: [{
|
|
59
|
+
type: Input
|
|
60
|
+
}], zoomDebounceTimeout: [{
|
|
61
|
+
type: Input
|
|
62
|
+
}] } });
|