@vanduo-oss/vd3-flowchart 1.3.0 → 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +93 -0
- package/README.md +75 -8
- package/SKILL.md +32 -3
- package/dist/core.d.ts +105 -2
- package/dist/index.cjs +1937 -265
- package/dist/index.cjs.map +4 -4
- package/dist/index.d.ts +5 -0
- package/dist/index.js +1937 -265
- package/dist/index.js.map +4 -4
- package/dist/meta.json +29 -12
- package/dist/vd3-flowchart.css +190 -12
- package/dist/vue.d.ts +18 -0
- package/package.json +5 -2
- package/recipes/editor.vue +4 -2
package/dist/meta.json
CHANGED
|
@@ -5,14 +5,24 @@
|
|
|
5
5
|
"imports": [],
|
|
6
6
|
"format": "esm"
|
|
7
7
|
},
|
|
8
|
+
"src/mindmap.js": {
|
|
9
|
+
"bytes": 6603,
|
|
10
|
+
"imports": [],
|
|
11
|
+
"format": "esm"
|
|
12
|
+
},
|
|
8
13
|
"src/core.js": {
|
|
9
|
-
"bytes":
|
|
14
|
+
"bytes": 207176,
|
|
10
15
|
"imports": [
|
|
11
16
|
{
|
|
12
17
|
"path": "src/layout.js",
|
|
13
18
|
"kind": "import-statement",
|
|
14
19
|
"original": "./layout.js"
|
|
15
20
|
},
|
|
21
|
+
{
|
|
22
|
+
"path": "src/mindmap.js",
|
|
23
|
+
"kind": "import-statement",
|
|
24
|
+
"original": "./mindmap.js"
|
|
25
|
+
},
|
|
16
26
|
{
|
|
17
27
|
"path": "src/layout.js",
|
|
18
28
|
"kind": "import-statement",
|
|
@@ -22,7 +32,7 @@
|
|
|
22
32
|
"format": "esm"
|
|
23
33
|
},
|
|
24
34
|
"src/vue.js": {
|
|
25
|
-
"bytes":
|
|
35
|
+
"bytes": 4995,
|
|
26
36
|
"imports": [
|
|
27
37
|
{
|
|
28
38
|
"path": "vue",
|
|
@@ -38,7 +48,7 @@
|
|
|
38
48
|
"format": "esm"
|
|
39
49
|
},
|
|
40
50
|
"src/index.js": {
|
|
41
|
-
"bytes":
|
|
51
|
+
"bytes": 541,
|
|
42
52
|
"imports": [
|
|
43
53
|
{
|
|
44
54
|
"path": "src/vue.js",
|
|
@@ -59,7 +69,7 @@
|
|
|
59
69
|
"imports": [],
|
|
60
70
|
"exports": [],
|
|
61
71
|
"inputs": {},
|
|
62
|
-
"bytes":
|
|
72
|
+
"bytes": 379973
|
|
63
73
|
},
|
|
64
74
|
"dist/index.js": {
|
|
65
75
|
"imports": [
|
|
@@ -73,6 +83,7 @@
|
|
|
73
83
|
"FLOWCHART_DOCUMENT_VERSION",
|
|
74
84
|
"FLOWCHART_EDGE_MARKERS",
|
|
75
85
|
"FLOWCHART_EDGE_ROUTES",
|
|
86
|
+
"FLOWCHART_KEYBOARD_SHORTCUTS",
|
|
76
87
|
"FLOWCHART_NODE_TYPES",
|
|
77
88
|
"FLOWCHART_PORTS",
|
|
78
89
|
"LAYOUT_MODES",
|
|
@@ -84,25 +95,28 @@
|
|
|
84
95
|
"entryPoint": "src/index.js",
|
|
85
96
|
"inputs": {
|
|
86
97
|
"src/vue.js": {
|
|
87
|
-
"bytesInOutput":
|
|
98
|
+
"bytesInOutput": 4145
|
|
88
99
|
},
|
|
89
100
|
"src/layout.js": {
|
|
90
101
|
"bytesInOutput": 6422
|
|
91
102
|
},
|
|
103
|
+
"src/mindmap.js": {
|
|
104
|
+
"bytesInOutput": 4886
|
|
105
|
+
},
|
|
92
106
|
"src/core.js": {
|
|
93
|
-
"bytesInOutput":
|
|
107
|
+
"bytesInOutput": 197291
|
|
94
108
|
},
|
|
95
109
|
"src/index.js": {
|
|
96
110
|
"bytesInOutput": 0
|
|
97
111
|
}
|
|
98
112
|
},
|
|
99
|
-
"bytes":
|
|
113
|
+
"bytes": 213149
|
|
100
114
|
},
|
|
101
115
|
"dist/index.cjs.map": {
|
|
102
116
|
"imports": [],
|
|
103
117
|
"exports": [],
|
|
104
118
|
"inputs": {},
|
|
105
|
-
"bytes":
|
|
119
|
+
"bytes": 380653
|
|
106
120
|
},
|
|
107
121
|
"dist/index.cjs": {
|
|
108
122
|
"imports": [
|
|
@@ -116,19 +130,22 @@
|
|
|
116
130
|
"entryPoint": "src/index.js",
|
|
117
131
|
"inputs": {
|
|
118
132
|
"src/index.js": {
|
|
119
|
-
"bytesInOutput":
|
|
133
|
+
"bytesInOutput": 634
|
|
120
134
|
},
|
|
121
135
|
"src/vue.js": {
|
|
122
|
-
"bytesInOutput":
|
|
136
|
+
"bytesInOutput": 4208
|
|
123
137
|
},
|
|
124
138
|
"src/layout.js": {
|
|
125
139
|
"bytesInOutput": 6422
|
|
126
140
|
},
|
|
141
|
+
"src/mindmap.js": {
|
|
142
|
+
"bytesInOutput": 4886
|
|
143
|
+
},
|
|
127
144
|
"src/core.js": {
|
|
128
|
-
"bytesInOutput":
|
|
145
|
+
"bytesInOutput": 197291
|
|
129
146
|
}
|
|
130
147
|
},
|
|
131
|
-
"bytes":
|
|
148
|
+
"bytes": 214375
|
|
132
149
|
}
|
|
133
150
|
}
|
|
134
151
|
}
|
package/dist/vd3-flowchart.css
CHANGED
|
@@ -114,6 +114,15 @@
|
|
|
114
114
|
color: var(--vd-flowchart-muted);
|
|
115
115
|
}
|
|
116
116
|
|
|
117
|
+
/* The palette column is 88px wide; keep its title on one line. */
|
|
118
|
+
.vd-flowchart-panel--palette .vd-flowchart-panel-title {
|
|
119
|
+
font-size: 0.72rem;
|
|
120
|
+
letter-spacing: 0.02em;
|
|
121
|
+
white-space: nowrap;
|
|
122
|
+
overflow-wrap: normal;
|
|
123
|
+
word-break: normal;
|
|
124
|
+
}
|
|
125
|
+
|
|
117
126
|
.vd-flowchart-palette {
|
|
118
127
|
display: grid;
|
|
119
128
|
grid-template-columns: 1fr;
|
|
@@ -371,6 +380,101 @@
|
|
|
371
380
|
background: var(--vd-flowchart-canvas-bg);
|
|
372
381
|
}
|
|
373
382
|
|
|
383
|
+
.vd-flowchart-minimap {
|
|
384
|
+
position: absolute;
|
|
385
|
+
right: 0.75rem;
|
|
386
|
+
bottom: 0.75rem;
|
|
387
|
+
z-index: 4;
|
|
388
|
+
width: 180px;
|
|
389
|
+
height: 120px;
|
|
390
|
+
border: 1px solid var(--vd-flowchart-border);
|
|
391
|
+
border-radius: 8px;
|
|
392
|
+
background: color-mix(in srgb, var(--vd-flowchart-panel) 92%, transparent);
|
|
393
|
+
box-shadow: 0 8px 20px color-mix(in srgb, var(--vd-flowchart-text) 10%, transparent);
|
|
394
|
+
overflow: hidden;
|
|
395
|
+
cursor: pointer;
|
|
396
|
+
touch-action: none;
|
|
397
|
+
}
|
|
398
|
+
|
|
399
|
+
.vd-flowchart-minimap[hidden] {
|
|
400
|
+
display: none;
|
|
401
|
+
}
|
|
402
|
+
|
|
403
|
+
.vd-flowchart-minimap-svg {
|
|
404
|
+
display: block;
|
|
405
|
+
}
|
|
406
|
+
|
|
407
|
+
.vd-flowchart-minimap-node {
|
|
408
|
+
fill: color-mix(in srgb, var(--vd-flowchart-muted) 45%, transparent);
|
|
409
|
+
}
|
|
410
|
+
|
|
411
|
+
.vd-flowchart-minimap-node.is-selected {
|
|
412
|
+
fill: var(--vd-flowchart-accent);
|
|
413
|
+
}
|
|
414
|
+
|
|
415
|
+
.vd-flowchart-minimap-viewport {
|
|
416
|
+
fill: color-mix(in srgb, var(--vd-flowchart-accent) 12%, transparent);
|
|
417
|
+
stroke: var(--vd-flowchart-accent);
|
|
418
|
+
stroke-width: 1.25;
|
|
419
|
+
}
|
|
420
|
+
|
|
421
|
+
.vd-flowchart-shortcuts-btn {
|
|
422
|
+
font-size: 0.95rem;
|
|
423
|
+
font-weight: 700;
|
|
424
|
+
}
|
|
425
|
+
|
|
426
|
+
.vd-flowchart-shortcuts {
|
|
427
|
+
position: absolute;
|
|
428
|
+
top: 0.75rem;
|
|
429
|
+
right: 0.75rem;
|
|
430
|
+
z-index: 6;
|
|
431
|
+
box-sizing: border-box;
|
|
432
|
+
width: min(24rem, calc(100% - 1.5rem));
|
|
433
|
+
max-height: calc(100% - 1.5rem);
|
|
434
|
+
overflow-y: auto;
|
|
435
|
+
padding: 0.75rem 0.9rem;
|
|
436
|
+
border: 1px solid var(--vd-flowchart-border);
|
|
437
|
+
border-radius: 8px;
|
|
438
|
+
background: color-mix(in srgb, var(--vd-flowchart-panel) 96%, transparent);
|
|
439
|
+
box-shadow: 0 12px 26px color-mix(in srgb, var(--vd-flowchart-text) 14%, transparent);
|
|
440
|
+
color: var(--vd-flowchart-text);
|
|
441
|
+
font-size: 0.8rem;
|
|
442
|
+
}
|
|
443
|
+
|
|
444
|
+
.vd-flowchart-shortcuts[hidden] {
|
|
445
|
+
display: none;
|
|
446
|
+
}
|
|
447
|
+
|
|
448
|
+
.vd-flowchart-shortcuts-header {
|
|
449
|
+
display: flex;
|
|
450
|
+
align-items: center;
|
|
451
|
+
justify-content: space-between;
|
|
452
|
+
gap: 0.5rem;
|
|
453
|
+
margin-bottom: 0.4rem;
|
|
454
|
+
}
|
|
455
|
+
|
|
456
|
+
.vd-flowchart-shortcuts-list {
|
|
457
|
+
display: grid;
|
|
458
|
+
grid-template-columns: minmax(0, 9rem) minmax(0, 1fr);
|
|
459
|
+
gap: 0.4rem 0.75rem;
|
|
460
|
+
margin: 0;
|
|
461
|
+
}
|
|
462
|
+
|
|
463
|
+
.vd-flowchart-shortcuts-list dt,
|
|
464
|
+
.vd-flowchart-shortcuts-list dd {
|
|
465
|
+
margin: 0;
|
|
466
|
+
padding: 0;
|
|
467
|
+
line-height: 1.35;
|
|
468
|
+
}
|
|
469
|
+
|
|
470
|
+
.vd-flowchart-shortcuts-list dt {
|
|
471
|
+
font-weight: 700;
|
|
472
|
+
}
|
|
473
|
+
|
|
474
|
+
.vd-flowchart-shortcuts-list dd {
|
|
475
|
+
color: var(--vd-flowchart-muted);
|
|
476
|
+
}
|
|
477
|
+
|
|
374
478
|
.vd-flowchart-svg {
|
|
375
479
|
display: block;
|
|
376
480
|
width: 100%;
|
|
@@ -507,21 +611,42 @@
|
|
|
507
611
|
stroke: var(--vd-flowchart-accent);
|
|
508
612
|
stroke-width: 2;
|
|
509
613
|
vector-effect: non-scaling-stroke;
|
|
510
|
-
|
|
614
|
+
pointer-events: none;
|
|
615
|
+
transition: opacity 120ms ease, fill 120ms ease;
|
|
511
616
|
}
|
|
512
617
|
|
|
513
|
-
.vd-flowchart-port-
|
|
618
|
+
.vd-flowchart-port-plus {
|
|
619
|
+
fill: none;
|
|
620
|
+
stroke: var(--vd-flowchart-accent);
|
|
621
|
+
stroke-width: 1.75;
|
|
622
|
+
stroke-linecap: round;
|
|
623
|
+
vector-effect: non-scaling-stroke;
|
|
624
|
+
pointer-events: none;
|
|
625
|
+
opacity: 0;
|
|
626
|
+
transition: opacity 120ms ease;
|
|
627
|
+
}
|
|
628
|
+
|
|
629
|
+
/* Handles appear on node hover as well as on selection. Hidden during a node
|
|
630
|
+
drag or resize so they do not flicker under the pointer. */
|
|
631
|
+
.vd-flowchart-port-group.is-visible,
|
|
632
|
+
.vd-flowchart-node:hover:not(.is-dragging, .is-resizing) .vd-flowchart-port-group {
|
|
514
633
|
pointer-events: auto;
|
|
515
634
|
cursor: crosshair;
|
|
516
635
|
}
|
|
517
636
|
|
|
518
|
-
.vd-flowchart-port-group.is-visible .vd-flowchart-port
|
|
637
|
+
.vd-flowchart-port-group.is-visible .vd-flowchart-port,
|
|
638
|
+
.vd-flowchart-node:hover:not(.is-dragging, .is-resizing) .vd-flowchart-port {
|
|
519
639
|
opacity: 1;
|
|
520
640
|
}
|
|
521
641
|
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
642
|
+
/* Color only: a transform here would scale around the node origin and shift
|
|
643
|
+
the handle away from the pointer. */
|
|
644
|
+
.vd-flowchart-port-group:hover .vd-flowchart-port {
|
|
645
|
+
fill: color-mix(in srgb, var(--vd-flowchart-accent) 22%, var(--vd-bg-primary, #fcfbf7));
|
|
646
|
+
}
|
|
647
|
+
|
|
648
|
+
.vd-flowchart-port-group:hover .vd-flowchart-port-plus {
|
|
649
|
+
opacity: 1;
|
|
525
650
|
}
|
|
526
651
|
|
|
527
652
|
.vd-flowchart-canvas.is-connecting .vd-flowchart-node:hover .vd-flowchart-node-shape {
|
|
@@ -529,14 +654,62 @@
|
|
|
529
654
|
filter: none;
|
|
530
655
|
}
|
|
531
656
|
|
|
532
|
-
.vd-flowchart-canvas.is-connecting .vd-flowchart-port-group
|
|
533
|
-
.vd-flowchart-canvas.is-arrow-tool .vd-flowchart-port-group
|
|
534
|
-
opacity:
|
|
657
|
+
.vd-flowchart-canvas.is-connecting .vd-flowchart-port-group:hover .vd-flowchart-port-plus,
|
|
658
|
+
.vd-flowchart-canvas.is-arrow-tool .vd-flowchart-port-group:hover .vd-flowchart-port-plus {
|
|
659
|
+
opacity: 0;
|
|
535
660
|
}
|
|
536
661
|
|
|
537
|
-
.vd-flowchart-
|
|
538
|
-
|
|
539
|
-
|
|
662
|
+
.vd-flowchart-collapse-toggle {
|
|
663
|
+
cursor: pointer;
|
|
664
|
+
}
|
|
665
|
+
|
|
666
|
+
.vd-flowchart-collapse-toggle circle {
|
|
667
|
+
fill: color-mix(in srgb, var(--vd-flowchart-panel) 92%, var(--vd-bg-primary, #fcfbf7));
|
|
668
|
+
stroke: var(--vd-flowchart-accent);
|
|
669
|
+
stroke-width: 1.5;
|
|
670
|
+
vector-effect: non-scaling-stroke;
|
|
671
|
+
}
|
|
672
|
+
|
|
673
|
+
.vd-flowchart-collapse-toggle.is-collapsed circle {
|
|
674
|
+
fill: var(--vd-flowchart-accent);
|
|
675
|
+
}
|
|
676
|
+
|
|
677
|
+
.vd-flowchart-collapse-toggle text {
|
|
678
|
+
fill: var(--vd-flowchart-accent);
|
|
679
|
+
font-family: var(--vd-flowchart-font);
|
|
680
|
+
font-weight: 700;
|
|
681
|
+
pointer-events: none;
|
|
682
|
+
}
|
|
683
|
+
|
|
684
|
+
.vd-flowchart-collapse-toggle.is-collapsed text {
|
|
685
|
+
fill: var(--vd-bg-primary, #fcfbf7);
|
|
686
|
+
}
|
|
687
|
+
|
|
688
|
+
.vd-flowchart-marquee {
|
|
689
|
+
fill: color-mix(in srgb, var(--vd-flowchart-accent) 10%, transparent);
|
|
690
|
+
stroke: var(--vd-flowchart-accent);
|
|
691
|
+
stroke-width: 1;
|
|
692
|
+
stroke-dasharray: 4 3;
|
|
693
|
+
vector-effect: non-scaling-stroke;
|
|
694
|
+
pointer-events: none;
|
|
695
|
+
}
|
|
696
|
+
|
|
697
|
+
.vd-flowchart-guide {
|
|
698
|
+
stroke: var(--vd-flowchart-accent);
|
|
699
|
+
stroke-width: 1;
|
|
700
|
+
stroke-dasharray: 3 3;
|
|
701
|
+
vector-effect: non-scaling-stroke;
|
|
702
|
+
pointer-events: none;
|
|
703
|
+
}
|
|
704
|
+
|
|
705
|
+
.vd-flowchart-selection-box {
|
|
706
|
+
fill: none;
|
|
707
|
+
stroke: var(--vd-flowchart-accent);
|
|
708
|
+
stroke-width: 1;
|
|
709
|
+
stroke-dasharray: 4 3;
|
|
710
|
+
vector-effect: non-scaling-stroke;
|
|
711
|
+
pointer-events: none;
|
|
712
|
+
opacity: 0.7;
|
|
540
713
|
}
|
|
541
714
|
|
|
542
715
|
.vd-flowchart-edge-endpoint-hit {
|
|
@@ -599,6 +772,11 @@
|
|
|
599
772
|
text-align: left;
|
|
600
773
|
}
|
|
601
774
|
|
|
775
|
+
.vd-flowchart-text-editor--edge {
|
|
776
|
+
font-weight: 500;
|
|
777
|
+
white-space: nowrap;
|
|
778
|
+
}
|
|
779
|
+
|
|
602
780
|
.vd-flowchart-text-editor--label {
|
|
603
781
|
border-color: transparent;
|
|
604
782
|
background: color-mix(in srgb, var(--vd-flowchart-panel) 82%, transparent);
|
package/dist/vue.d.ts
CHANGED
|
@@ -8,6 +8,7 @@ import type {
|
|
|
8
8
|
VdFlowchart as VdFlowchartCore,
|
|
9
9
|
LayoutMode,
|
|
10
10
|
LayoutOptions,
|
|
11
|
+
FlowchartKeyboardShortcuts,
|
|
11
12
|
} from './core';
|
|
12
13
|
|
|
13
14
|
/** Loosely-typed document accepted by the `data` prop. */
|
|
@@ -32,6 +33,22 @@ export interface VdFlowchartProps {
|
|
|
32
33
|
history?: boolean;
|
|
33
34
|
/** Maximum number of history entries to retain. */
|
|
34
35
|
historyLimit?: number;
|
|
36
|
+
/** Keyboard model on the focused canvas (default `'mindmap'`). */
|
|
37
|
+
keyboardShortcuts?: FlowchartKeyboardShortcuts;
|
|
38
|
+
/** Snap dragged nodes to alignment guides; Alt bypasses (default true). */
|
|
39
|
+
snapGuides?: boolean;
|
|
40
|
+
/** Show the overview minimap (default true). */
|
|
41
|
+
minimap?: boolean;
|
|
42
|
+
/** Re-run the current layout after keyboard or handle insertions (default false). */
|
|
43
|
+
autoLayout?: boolean;
|
|
44
|
+
/** Lowest camera scale. Defaults to 0.35. Set it together with `maxScale`. */
|
|
45
|
+
minScale?: number;
|
|
46
|
+
/** Highest camera scale. Defaults to 3. Set it together with `minScale`. */
|
|
47
|
+
maxScale?: number;
|
|
48
|
+
/** Smallest resizable-node side. Defaults to 56. Set it together with `maxNodeSize`. */
|
|
49
|
+
minNodeSize?: number;
|
|
50
|
+
/** Largest resizable-node side. Defaults to 420. Set it together with `minNodeSize`. */
|
|
51
|
+
maxNodeSize?: number;
|
|
35
52
|
}
|
|
36
53
|
|
|
37
54
|
export interface VdFlowchartEmits {
|
|
@@ -50,6 +67,7 @@ export interface VdFlowchartExposed {
|
|
|
50
67
|
canUndo(): boolean;
|
|
51
68
|
canRedo(): boolean;
|
|
52
69
|
layout(mode?: LayoutMode, options?: LayoutOptions): void;
|
|
70
|
+
fitNode(nodeId: string, padding?: number): void;
|
|
53
71
|
}
|
|
54
72
|
|
|
55
73
|
/* eslint-disable @typescript-eslint/no-empty-object-type -- DefineComponent filler params */
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vanduo-oss/vd3-flowchart",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.5.0",
|
|
4
4
|
"description": "Vanduo Vue 3 flowchart editor — nodes, edges, layout, undo/redo, and a framework-agnostic core",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -56,6 +56,7 @@
|
|
|
56
56
|
},
|
|
57
57
|
"devDependencies": {
|
|
58
58
|
"@eslint/js": "10.0.1",
|
|
59
|
+
"@fission-ai/openspec": "1.14.3",
|
|
59
60
|
"@playwright/test": "1.63.0",
|
|
60
61
|
"@typescript-eslint/parser": "8.69.0",
|
|
61
62
|
"@vue/test-utils": "2.5.0",
|
|
@@ -67,7 +68,8 @@
|
|
|
67
68
|
"stylelint-config-standard": "40.0.0",
|
|
68
69
|
"typescript": "6.0.3",
|
|
69
70
|
"typescript-eslint": "8.69.0",
|
|
70
|
-
"
|
|
71
|
+
"vite": "8.3.4",
|
|
72
|
+
"vitest": "4.1.12",
|
|
71
73
|
"vue": "3.5.42"
|
|
72
74
|
},
|
|
73
75
|
"engines": {
|
|
@@ -84,6 +86,7 @@
|
|
|
84
86
|
"test": "vitest run",
|
|
85
87
|
"test:types": "tsc --noEmit -p tests/types/tsconfig.json",
|
|
86
88
|
"test:e2e": "playwright test",
|
|
89
|
+
"release:check": "node scripts/release-check.mjs",
|
|
87
90
|
"release": "pnpm run build && pnpm publish",
|
|
88
91
|
"test:skills": "node scripts/check-skills.mjs"
|
|
89
92
|
}
|
package/recipes/editor.vue
CHANGED
|
@@ -12,6 +12,8 @@ const document = ref<VdFlowchartDocument>({
|
|
|
12
12
|
<template>
|
|
13
13
|
<button type="button" @click="readonly = !readonly">Toggle read-only</button>
|
|
14
14
|
<button type="button" :disabled="readonly" @click="editor?.undo()">Undo</button>
|
|
15
|
-
<
|
|
16
|
-
|
|
15
|
+
<button type="button" @click="editor?.fitNode('start')">Frame start</button>
|
|
16
|
+
<VdFlowchart ref="editor" :data="document" :readonly="readonly"
|
|
17
|
+
:min-scale="0.05" :max-scale="20" :min-node-size="6" :max-node-size="4800"
|
|
18
|
+
auto-fit style="height: 560px" @change="document = $event.document" />
|
|
17
19
|
</template>
|