@worm-vue3-print/canvas 1.3.2 → 1.3.4

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.
@@ -57,6 +57,28 @@ export declare function useDesignerState(options?: DesignerStateOptions): {
57
57
  borderWidth?: number | undefined;
58
58
  borderStyle?: string | undefined;
59
59
  borderColor?: string | undefined;
60
+ borders?: {
61
+ left?: {
62
+ width: number;
63
+ style?: string | undefined;
64
+ color?: string | undefined;
65
+ } | undefined;
66
+ top?: {
67
+ width: number;
68
+ style?: string | undefined;
69
+ color?: string | undefined;
70
+ } | undefined;
71
+ right?: {
72
+ width: number;
73
+ style?: string | undefined;
74
+ color?: string | undefined;
75
+ } | undefined;
76
+ bottom?: {
77
+ width: number;
78
+ style?: string | undefined;
79
+ color?: string | undefined;
80
+ } | undefined;
81
+ } | undefined;
60
82
  contentPaddingLeft?: number | undefined;
61
83
  contentPaddingTop?: number | undefined;
62
84
  contentPaddingRight?: number | undefined;
@@ -197,6 +219,28 @@ export declare function useDesignerState(options?: DesignerStateOptions): {
197
219
  borderWidth?: number | undefined;
198
220
  borderStyle?: string | undefined;
199
221
  borderColor?: string | undefined;
222
+ borders?: {
223
+ left?: {
224
+ width: number;
225
+ style?: string | undefined;
226
+ color?: string | undefined;
227
+ } | undefined;
228
+ top?: {
229
+ width: number;
230
+ style?: string | undefined;
231
+ color?: string | undefined;
232
+ } | undefined;
233
+ right?: {
234
+ width: number;
235
+ style?: string | undefined;
236
+ color?: string | undefined;
237
+ } | undefined;
238
+ bottom?: {
239
+ width: number;
240
+ style?: string | undefined;
241
+ color?: string | undefined;
242
+ } | undefined;
243
+ } | undefined;
200
244
  contentPaddingLeft?: number | undefined;
201
245
  contentPaddingTop?: number | undefined;
202
246
  contentPaddingRight?: number | undefined;
@@ -337,6 +381,28 @@ export declare function useDesignerState(options?: DesignerStateOptions): {
337
381
  borderWidth?: number | undefined;
338
382
  borderStyle?: string | undefined;
339
383
  borderColor?: string | undefined;
384
+ borders?: {
385
+ left?: {
386
+ width: number;
387
+ style?: string | undefined;
388
+ color?: string | undefined;
389
+ } | undefined;
390
+ top?: {
391
+ width: number;
392
+ style?: string | undefined;
393
+ color?: string | undefined;
394
+ } | undefined;
395
+ right?: {
396
+ width: number;
397
+ style?: string | undefined;
398
+ color?: string | undefined;
399
+ } | undefined;
400
+ bottom?: {
401
+ width: number;
402
+ style?: string | undefined;
403
+ color?: string | undefined;
404
+ } | undefined;
405
+ } | undefined;
340
406
  contentPaddingLeft?: number | undefined;
341
407
  contentPaddingTop?: number | undefined;
342
408
  contentPaddingRight?: number | undefined;
@@ -475,6 +541,28 @@ export declare function useDesignerState(options?: DesignerStateOptions): {
475
541
  borderWidth?: number | undefined;
476
542
  borderStyle?: string | undefined;
477
543
  borderColor?: string | undefined;
544
+ borders?: {
545
+ left?: {
546
+ width: number;
547
+ style?: string | undefined;
548
+ color?: string | undefined;
549
+ } | undefined;
550
+ top?: {
551
+ width: number;
552
+ style?: string | undefined;
553
+ color?: string | undefined;
554
+ } | undefined;
555
+ right?: {
556
+ width: number;
557
+ style?: string | undefined;
558
+ color?: string | undefined;
559
+ } | undefined;
560
+ bottom?: {
561
+ width: number;
562
+ style?: string | undefined;
563
+ color?: string | undefined;
564
+ } | undefined;
565
+ } | undefined;
478
566
  contentPaddingLeft?: number | undefined;
479
567
  contentPaddingTop?: number | undefined;
480
568
  contentPaddingRight?: number | undefined;
@@ -677,6 +765,28 @@ export declare function useDesignerState(options?: DesignerStateOptions): {
677
765
  borderWidth?: number | undefined;
678
766
  borderStyle?: string | undefined;
679
767
  borderColor?: string | undefined;
768
+ borders?: {
769
+ left?: {
770
+ width: number;
771
+ style?: string | undefined;
772
+ color?: string | undefined;
773
+ } | undefined;
774
+ top?: {
775
+ width: number;
776
+ style?: string | undefined;
777
+ color?: string | undefined;
778
+ } | undefined;
779
+ right?: {
780
+ width: number;
781
+ style?: string | undefined;
782
+ color?: string | undefined;
783
+ } | undefined;
784
+ bottom?: {
785
+ width: number;
786
+ style?: string | undefined;
787
+ color?: string | undefined;
788
+ } | undefined;
789
+ } | undefined;
680
790
  contentPaddingLeft?: number | undefined;
681
791
  contentPaddingTop?: number | undefined;
682
792
  contentPaddingRight?: number | undefined;
@@ -817,6 +927,28 @@ export declare function useDesignerState(options?: DesignerStateOptions): {
817
927
  borderWidth?: number | undefined;
818
928
  borderStyle?: string | undefined;
819
929
  borderColor?: string | undefined;
930
+ borders?: {
931
+ left?: {
932
+ width: number;
933
+ style?: string | undefined;
934
+ color?: string | undefined;
935
+ } | undefined;
936
+ top?: {
937
+ width: number;
938
+ style?: string | undefined;
939
+ color?: string | undefined;
940
+ } | undefined;
941
+ right?: {
942
+ width: number;
943
+ style?: string | undefined;
944
+ color?: string | undefined;
945
+ } | undefined;
946
+ bottom?: {
947
+ width: number;
948
+ style?: string | undefined;
949
+ color?: string | undefined;
950
+ } | undefined;
951
+ } | undefined;
820
952
  contentPaddingLeft?: number | undefined;
821
953
  contentPaddingTop?: number | undefined;
822
954
  contentPaddingRight?: number | undefined;
@@ -957,6 +1089,28 @@ export declare function useDesignerState(options?: DesignerStateOptions): {
957
1089
  borderWidth?: number | undefined;
958
1090
  borderStyle?: string | undefined;
959
1091
  borderColor?: string | undefined;
1092
+ borders?: {
1093
+ left?: {
1094
+ width: number;
1095
+ style?: string | undefined;
1096
+ color?: string | undefined;
1097
+ } | undefined;
1098
+ top?: {
1099
+ width: number;
1100
+ style?: string | undefined;
1101
+ color?: string | undefined;
1102
+ } | undefined;
1103
+ right?: {
1104
+ width: number;
1105
+ style?: string | undefined;
1106
+ color?: string | undefined;
1107
+ } | undefined;
1108
+ bottom?: {
1109
+ width: number;
1110
+ style?: string | undefined;
1111
+ color?: string | undefined;
1112
+ } | undefined;
1113
+ } | undefined;
960
1114
  contentPaddingLeft?: number | undefined;
961
1115
  contentPaddingTop?: number | undefined;
962
1116
  contentPaddingRight?: number | undefined;
@@ -1095,6 +1249,28 @@ export declare function useDesignerState(options?: DesignerStateOptions): {
1095
1249
  borderWidth?: number | undefined;
1096
1250
  borderStyle?: string | undefined;
1097
1251
  borderColor?: string | undefined;
1252
+ borders?: {
1253
+ left?: {
1254
+ width: number;
1255
+ style?: string | undefined;
1256
+ color?: string | undefined;
1257
+ } | undefined;
1258
+ top?: {
1259
+ width: number;
1260
+ style?: string | undefined;
1261
+ color?: string | undefined;
1262
+ } | undefined;
1263
+ right?: {
1264
+ width: number;
1265
+ style?: string | undefined;
1266
+ color?: string | undefined;
1267
+ } | undefined;
1268
+ bottom?: {
1269
+ width: number;
1270
+ style?: string | undefined;
1271
+ color?: string | undefined;
1272
+ } | undefined;
1273
+ } | undefined;
1098
1274
  contentPaddingLeft?: number | undefined;
1099
1275
  contentPaddingTop?: number | undefined;
1100
1276
  contentPaddingRight?: number | undefined;
@@ -1313,6 +1489,28 @@ export declare function useDesignerState(options?: DesignerStateOptions): {
1313
1489
  borderWidth?: number | undefined;
1314
1490
  borderStyle?: string | undefined;
1315
1491
  borderColor?: string | undefined;
1492
+ borders?: {
1493
+ left?: {
1494
+ width: number;
1495
+ style?: string | undefined;
1496
+ color?: string | undefined;
1497
+ } | undefined;
1498
+ top?: {
1499
+ width: number;
1500
+ style?: string | undefined;
1501
+ color?: string | undefined;
1502
+ } | undefined;
1503
+ right?: {
1504
+ width: number;
1505
+ style?: string | undefined;
1506
+ color?: string | undefined;
1507
+ } | undefined;
1508
+ bottom?: {
1509
+ width: number;
1510
+ style?: string | undefined;
1511
+ color?: string | undefined;
1512
+ } | undefined;
1513
+ } | undefined;
1316
1514
  contentPaddingLeft?: number | undefined;
1317
1515
  contentPaddingTop?: number | undefined;
1318
1516
  contentPaddingRight?: number | undefined;
@@ -1453,6 +1651,28 @@ export declare function useDesignerState(options?: DesignerStateOptions): {
1453
1651
  borderWidth?: number | undefined;
1454
1652
  borderStyle?: string | undefined;
1455
1653
  borderColor?: string | undefined;
1654
+ borders?: {
1655
+ left?: {
1656
+ width: number;
1657
+ style?: string | undefined;
1658
+ color?: string | undefined;
1659
+ } | undefined;
1660
+ top?: {
1661
+ width: number;
1662
+ style?: string | undefined;
1663
+ color?: string | undefined;
1664
+ } | undefined;
1665
+ right?: {
1666
+ width: number;
1667
+ style?: string | undefined;
1668
+ color?: string | undefined;
1669
+ } | undefined;
1670
+ bottom?: {
1671
+ width: number;
1672
+ style?: string | undefined;
1673
+ color?: string | undefined;
1674
+ } | undefined;
1675
+ } | undefined;
1456
1676
  contentPaddingLeft?: number | undefined;
1457
1677
  contentPaddingTop?: number | undefined;
1458
1678
  contentPaddingRight?: number | undefined;
@@ -1593,6 +1813,28 @@ export declare function useDesignerState(options?: DesignerStateOptions): {
1593
1813
  borderWidth?: number | undefined;
1594
1814
  borderStyle?: string | undefined;
1595
1815
  borderColor?: string | undefined;
1816
+ borders?: {
1817
+ left?: {
1818
+ width: number;
1819
+ style?: string | undefined;
1820
+ color?: string | undefined;
1821
+ } | undefined;
1822
+ top?: {
1823
+ width: number;
1824
+ style?: string | undefined;
1825
+ color?: string | undefined;
1826
+ } | undefined;
1827
+ right?: {
1828
+ width: number;
1829
+ style?: string | undefined;
1830
+ color?: string | undefined;
1831
+ } | undefined;
1832
+ bottom?: {
1833
+ width: number;
1834
+ style?: string | undefined;
1835
+ color?: string | undefined;
1836
+ } | undefined;
1837
+ } | undefined;
1596
1838
  contentPaddingLeft?: number | undefined;
1597
1839
  contentPaddingTop?: number | undefined;
1598
1840
  contentPaddingRight?: number | undefined;
@@ -1731,6 +1973,28 @@ export declare function useDesignerState(options?: DesignerStateOptions): {
1731
1973
  borderWidth?: number | undefined;
1732
1974
  borderStyle?: string | undefined;
1733
1975
  borderColor?: string | undefined;
1976
+ borders?: {
1977
+ left?: {
1978
+ width: number;
1979
+ style?: string | undefined;
1980
+ color?: string | undefined;
1981
+ } | undefined;
1982
+ top?: {
1983
+ width: number;
1984
+ style?: string | undefined;
1985
+ color?: string | undefined;
1986
+ } | undefined;
1987
+ right?: {
1988
+ width: number;
1989
+ style?: string | undefined;
1990
+ color?: string | undefined;
1991
+ } | undefined;
1992
+ bottom?: {
1993
+ width: number;
1994
+ style?: string | undefined;
1995
+ color?: string | undefined;
1996
+ } | undefined;
1997
+ } | undefined;
1734
1998
  contentPaddingLeft?: number | undefined;
1735
1999
  contentPaddingTop?: number | undefined;
1736
2000
  contentPaddingRight?: number | undefined;
@@ -1933,6 +2197,28 @@ export declare function useDesignerState(options?: DesignerStateOptions): {
1933
2197
  borderWidth?: number | undefined;
1934
2198
  borderStyle?: string | undefined;
1935
2199
  borderColor?: string | undefined;
2200
+ borders?: {
2201
+ left?: {
2202
+ width: number;
2203
+ style?: string | undefined;
2204
+ color?: string | undefined;
2205
+ } | undefined;
2206
+ top?: {
2207
+ width: number;
2208
+ style?: string | undefined;
2209
+ color?: string | undefined;
2210
+ } | undefined;
2211
+ right?: {
2212
+ width: number;
2213
+ style?: string | undefined;
2214
+ color?: string | undefined;
2215
+ } | undefined;
2216
+ bottom?: {
2217
+ width: number;
2218
+ style?: string | undefined;
2219
+ color?: string | undefined;
2220
+ } | undefined;
2221
+ } | undefined;
1936
2222
  contentPaddingLeft?: number | undefined;
1937
2223
  contentPaddingTop?: number | undefined;
1938
2224
  contentPaddingRight?: number | undefined;
@@ -2073,6 +2359,28 @@ export declare function useDesignerState(options?: DesignerStateOptions): {
2073
2359
  borderWidth?: number | undefined;
2074
2360
  borderStyle?: string | undefined;
2075
2361
  borderColor?: string | undefined;
2362
+ borders?: {
2363
+ left?: {
2364
+ width: number;
2365
+ style?: string | undefined;
2366
+ color?: string | undefined;
2367
+ } | undefined;
2368
+ top?: {
2369
+ width: number;
2370
+ style?: string | undefined;
2371
+ color?: string | undefined;
2372
+ } | undefined;
2373
+ right?: {
2374
+ width: number;
2375
+ style?: string | undefined;
2376
+ color?: string | undefined;
2377
+ } | undefined;
2378
+ bottom?: {
2379
+ width: number;
2380
+ style?: string | undefined;
2381
+ color?: string | undefined;
2382
+ } | undefined;
2383
+ } | undefined;
2076
2384
  contentPaddingLeft?: number | undefined;
2077
2385
  contentPaddingTop?: number | undefined;
2078
2386
  contentPaddingRight?: number | undefined;
@@ -2213,6 +2521,28 @@ export declare function useDesignerState(options?: DesignerStateOptions): {
2213
2521
  borderWidth?: number | undefined;
2214
2522
  borderStyle?: string | undefined;
2215
2523
  borderColor?: string | undefined;
2524
+ borders?: {
2525
+ left?: {
2526
+ width: number;
2527
+ style?: string | undefined;
2528
+ color?: string | undefined;
2529
+ } | undefined;
2530
+ top?: {
2531
+ width: number;
2532
+ style?: string | undefined;
2533
+ color?: string | undefined;
2534
+ } | undefined;
2535
+ right?: {
2536
+ width: number;
2537
+ style?: string | undefined;
2538
+ color?: string | undefined;
2539
+ } | undefined;
2540
+ bottom?: {
2541
+ width: number;
2542
+ style?: string | undefined;
2543
+ color?: string | undefined;
2544
+ } | undefined;
2545
+ } | undefined;
2216
2546
  contentPaddingLeft?: number | undefined;
2217
2547
  contentPaddingTop?: number | undefined;
2218
2548
  contentPaddingRight?: number | undefined;
@@ -2351,6 +2681,28 @@ export declare function useDesignerState(options?: DesignerStateOptions): {
2351
2681
  borderWidth?: number | undefined;
2352
2682
  borderStyle?: string | undefined;
2353
2683
  borderColor?: string | undefined;
2684
+ borders?: {
2685
+ left?: {
2686
+ width: number;
2687
+ style?: string | undefined;
2688
+ color?: string | undefined;
2689
+ } | undefined;
2690
+ top?: {
2691
+ width: number;
2692
+ style?: string | undefined;
2693
+ color?: string | undefined;
2694
+ } | undefined;
2695
+ right?: {
2696
+ width: number;
2697
+ style?: string | undefined;
2698
+ color?: string | undefined;
2699
+ } | undefined;
2700
+ bottom?: {
2701
+ width: number;
2702
+ style?: string | undefined;
2703
+ color?: string | undefined;
2704
+ } | undefined;
2705
+ } | undefined;
2354
2706
  contentPaddingLeft?: number | undefined;
2355
2707
  contentPaddingTop?: number | undefined;
2356
2708
  contentPaddingRight?: number | undefined;
@@ -0,0 +1,16 @@
1
+ import { type Ref } from 'vue';
2
+ import type { RuntimeElement } from '@worm-vue3-print/core/designer';
3
+ export interface FormatPainterDeps {
4
+ elements: Ref<RuntimeElement[]>;
5
+ selectedIds: Ref<Set<string>>;
6
+ recordHistory: () => void;
7
+ }
8
+ export declare function useFormatPainter(deps: FormatPainterDeps): {
9
+ active: Ref<boolean, boolean>;
10
+ locked: Ref<boolean, boolean>;
11
+ sourceId: Ref<string | null, string | null>;
12
+ capturable: import("vue").ComputedRef<boolean>;
13
+ capture: (nextLocked?: boolean) => boolean;
14
+ cancel: () => void;
15
+ };
16
+ export type FormatPainter = ReturnType<typeof useFormatPainter>;
@@ -0,0 +1,54 @@
1
+ import { type Ref } from 'vue';
2
+ import type { RuntimeElement, TableSelection, TextAlign, VerticalAlign, TableCellBorder, ElementBorderSide } from '@worm-vue3-print/core/designer';
3
+ import { type BorderPreset } from '@worm-vue3-print/core/designer';
4
+ /** 多选目标间字段值不一致的哨兵 */
5
+ export declare const MIXED: unique symbol;
6
+ export type MixedOr<T> = T | typeof MIXED;
7
+ /** 支持字体/对齐等文本样式的元素类型(与 AppearanceGroup 的 isTextType 口径一致) */
8
+ export declare const TEXT_TYPES: Set<string>;
9
+ export interface FormatStylePatch {
10
+ fontFamily?: string;
11
+ fontSize?: number;
12
+ color?: string;
13
+ backgroundColor?: string;
14
+ textAlign?: TextAlign;
15
+ verticalAlign?: VerticalAlign;
16
+ }
17
+ export interface ElementBorderSpec {
18
+ width: number;
19
+ style: string;
20
+ color: string;
21
+ }
22
+ export interface FormatToolbarDeps {
23
+ elements: Ref<RuntimeElement[]>;
24
+ selectedIds: Ref<Set<string>>;
25
+ tableSelection: Ref<TableSelection | null>;
26
+ recordHistory: () => void;
27
+ }
28
+ export declare function useFormatToolbar(deps: FormatToolbarDeps): {
29
+ context: import("vue").ComputedRef<"cells" | "none" | "elements">;
30
+ fontEditable: import("vue").ComputedRef<boolean>;
31
+ values: import("vue").ComputedRef<{
32
+ fontFamily: any;
33
+ fontSize: any;
34
+ color: any;
35
+ backgroundColor: any;
36
+ textAlign: any;
37
+ verticalAlign: any;
38
+ bold: boolean | symbol;
39
+ underline: boolean | symbol;
40
+ strike: boolean | symbol;
41
+ }>;
42
+ applyStyle: (patch: FormatStylePatch) => void;
43
+ toggleBold: () => void;
44
+ toggleUnderline: () => void;
45
+ toggleStrike: () => void;
46
+ applyElementBorder: (mode: "all" | "none", border: ElementBorderSpec) => void;
47
+ applyCellBorderPreset: (preset: BorderPreset, border: TableCellBorder) => void;
48
+ applyCellBorderEdges: (sides: Array<"top" | "right" | "bottom" | "left">, border: TableCellBorder, on: boolean) => void;
49
+ cellEdges: import("vue").ComputedRef<Record<"left" | "top" | "right" | "bottom", boolean | typeof MIXED> | null>;
50
+ toggleCellEdge: (side: "left" | "top" | "right" | "bottom", border: TableCellBorder) => void;
51
+ elementEdges: import("vue").ComputedRef<Record<"left" | "top" | "right" | "bottom", boolean | typeof MIXED> | null>;
52
+ toggleElementEdge: (side: ElementBorderSide, border: ElementBorderSpec) => void;
53
+ };
54
+ export type FormatToolbar = ReturnType<typeof useFormatToolbar>;