@hprint/plugins 0.0.1-alpha.2 → 0.0.1-alpha.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.
- package/dist/index.js +20 -20
- package/dist/index.mjs +2258 -2239
- package/dist/src/plugins/AlignGuidLinePlugin.d.ts +7 -2
- package/dist/src/plugins/AlignGuidLinePlugin.d.ts.map +1 -1
- package/dist/src/plugins/CreateElementPlugin.d.ts +4 -0
- package/dist/src/plugins/CreateElementPlugin.d.ts.map +1 -1
- package/dist/src/plugins/GroupAlignPlugin.d.ts.map +1 -1
- package/dist/src/plugins/LockPlugin.d.ts.map +1 -1
- package/dist/src/plugins/QrCodePlugin.d.ts +5 -0
- package/dist/src/plugins/QrCodePlugin.d.ts.map +1 -1
- package/dist/src/utils/ruler/ruler.d.ts +1 -0
- package/dist/src/utils/ruler/ruler.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/plugins/AlignGuidLinePlugin.ts +195 -184
- package/src/plugins/BarCodePlugin.ts +2 -2
- package/src/plugins/CreateElementPlugin.ts +23 -2
- package/src/plugins/GroupAlignPlugin.ts +2 -2
- package/src/plugins/LockPlugin.ts +3 -1
- package/src/plugins/QrCodePlugin.ts +322 -329
- package/src/utils/ruler/ruler.ts +13 -1
|
@@ -13,18 +13,24 @@ declare interface HorizontalLine {
|
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
class AlignGuidLinePlugin implements IPluginTempl {
|
|
16
|
+
static pluginName = 'AlignGuidLinePlugin';
|
|
17
|
+
static apis = ['changeSwitch'];
|
|
16
18
|
defautOption = {
|
|
17
19
|
color: 'rgba(255,95,95,1)',
|
|
18
20
|
width: 1,
|
|
19
21
|
};
|
|
20
|
-
static pluginName = 'AlignGuidLinePlugin';
|
|
21
22
|
dragMode = false;
|
|
23
|
+
switch!: boolean;
|
|
22
24
|
constructor(
|
|
23
25
|
public canvas: fabric.Canvas,
|
|
24
|
-
public editor: IEditor
|
|
26
|
+
public editor: IEditor,
|
|
27
|
+
options?: {
|
|
28
|
+
switch?: boolean;
|
|
29
|
+
}
|
|
25
30
|
) {
|
|
26
31
|
this.dragMode = false;
|
|
27
32
|
this.init();
|
|
33
|
+
this.switch = options?.switch ?? true;
|
|
28
34
|
}
|
|
29
35
|
init() {
|
|
30
36
|
const { canvas } = this;
|
|
@@ -75,7 +81,7 @@ class AlignGuidLinePlugin implements IPluginTempl {
|
|
|
75
81
|
value2 = Math.round(value2);
|
|
76
82
|
for (
|
|
77
83
|
let i = value1 - aligningLineMargin,
|
|
78
|
-
|
|
84
|
+
len = value1 + aligningLineMargin;
|
|
79
85
|
i <= len;
|
|
80
86
|
i++
|
|
81
87
|
) {
|
|
@@ -99,10 +105,11 @@ class AlignGuidLinePlugin implements IPluginTempl {
|
|
|
99
105
|
activeWidth = e.target.getScaledWidth();
|
|
100
106
|
activeHeight = e.target.getScaledHeight();
|
|
101
107
|
}
|
|
102
|
-
} catch (e) {}
|
|
108
|
+
} catch (e) { }
|
|
103
109
|
});
|
|
104
110
|
|
|
105
111
|
canvas.on('object:moving', (e) => {
|
|
112
|
+
if (!this.switch) return;
|
|
106
113
|
if (viewportTransform === undefined || e.target === undefined)
|
|
107
114
|
return;
|
|
108
115
|
|
|
@@ -130,7 +137,7 @@ class AlignGuidLinePlugin implements IPluginTempl {
|
|
|
130
137
|
|
|
131
138
|
if (!transform) return;
|
|
132
139
|
|
|
133
|
-
for (let i = canvasObjects.length; i--;
|
|
140
|
+
for (let i = canvasObjects.length; i--;) {
|
|
134
141
|
// eslint-disable-next-line no-continue
|
|
135
142
|
if (canvasObjects[i] === activeObject) continue;
|
|
136
143
|
|
|
@@ -161,19 +168,19 @@ class AlignGuidLinePlugin implements IPluginTempl {
|
|
|
161
168
|
y1:
|
|
162
169
|
objectTop < activeObjectTop
|
|
163
170
|
? objectTop -
|
|
164
|
-
|
|
165
|
-
|
|
171
|
+
objectHeight / 2 -
|
|
172
|
+
aligningLineOffset
|
|
166
173
|
: objectTop +
|
|
167
|
-
|
|
168
|
-
|
|
174
|
+
objectHeight / 2 +
|
|
175
|
+
aligningLineOffset,
|
|
169
176
|
y2:
|
|
170
177
|
activeObjectTop > objectTop
|
|
171
178
|
? activeObjectTop +
|
|
172
|
-
|
|
173
|
-
|
|
179
|
+
activeObjectHeight / 2 +
|
|
180
|
+
aligningLineOffset
|
|
174
181
|
: activeObjectTop -
|
|
175
|
-
|
|
176
|
-
|
|
182
|
+
activeObjectHeight / 2 -
|
|
183
|
+
aligningLineOffset,
|
|
177
184
|
});
|
|
178
185
|
activeObject.setPositionByOrigin(
|
|
179
186
|
new fabric.Point(objectLeft, activeObjectTop),
|
|
@@ -192,19 +199,19 @@ class AlignGuidLinePlugin implements IPluginTempl {
|
|
|
192
199
|
x1:
|
|
193
200
|
objectLeft < activeObjectLeft
|
|
194
201
|
? objectLeft -
|
|
195
|
-
|
|
196
|
-
|
|
202
|
+
objectWidth / 2 -
|
|
203
|
+
aligningLineOffset
|
|
197
204
|
: objectLeft +
|
|
198
|
-
|
|
199
|
-
|
|
205
|
+
objectWidth / 2 +
|
|
206
|
+
aligningLineOffset,
|
|
200
207
|
x2:
|
|
201
208
|
activeObjectLeft > objectLeft
|
|
202
209
|
? activeObjectLeft +
|
|
203
|
-
|
|
204
|
-
|
|
210
|
+
activeObjectWidth / 2 +
|
|
211
|
+
aligningLineOffset
|
|
205
212
|
: activeObjectLeft -
|
|
206
|
-
|
|
207
|
-
|
|
213
|
+
activeObjectWidth / 2 -
|
|
214
|
+
aligningLineOffset,
|
|
208
215
|
});
|
|
209
216
|
activeObject.setPositionByOrigin(
|
|
210
217
|
new fabric.Point(activeObjectLeft, objectTop),
|
|
@@ -228,19 +235,19 @@ class AlignGuidLinePlugin implements IPluginTempl {
|
|
|
228
235
|
y1:
|
|
229
236
|
objectTop < activeObjectTop
|
|
230
237
|
? objectTop -
|
|
231
|
-
|
|
232
|
-
|
|
238
|
+
objectHeight / 2 -
|
|
239
|
+
aligningLineOffset
|
|
233
240
|
: objectTop +
|
|
234
|
-
|
|
235
|
-
|
|
241
|
+
objectHeight / 2 +
|
|
242
|
+
aligningLineOffset,
|
|
236
243
|
y2:
|
|
237
244
|
activeObjectTop > objectTop
|
|
238
245
|
? activeObjectTop +
|
|
239
|
-
|
|
240
|
-
|
|
246
|
+
activeObjectHeight / 2 +
|
|
247
|
+
aligningLineOffset
|
|
241
248
|
: activeObjectTop -
|
|
242
|
-
|
|
243
|
-
|
|
249
|
+
activeObjectHeight / 2 -
|
|
250
|
+
aligningLineOffset,
|
|
244
251
|
});
|
|
245
252
|
_elReachLeft =
|
|
246
253
|
objectLeft - objectWidth / 2 + activeObjectWidth / 2;
|
|
@@ -271,19 +278,19 @@ class AlignGuidLinePlugin implements IPluginTempl {
|
|
|
271
278
|
y1:
|
|
272
279
|
objectTop < activeObjectTop
|
|
273
280
|
? objectTop -
|
|
274
|
-
|
|
275
|
-
|
|
281
|
+
objectHeight / 2 -
|
|
282
|
+
aligningLineOffset
|
|
276
283
|
: objectTop +
|
|
277
|
-
|
|
278
|
-
|
|
284
|
+
objectHeight / 2 +
|
|
285
|
+
aligningLineOffset,
|
|
279
286
|
y2:
|
|
280
287
|
activeObjectTop > objectTop
|
|
281
288
|
? activeObjectTop +
|
|
282
|
-
|
|
283
|
-
|
|
289
|
+
activeObjectHeight / 2 +
|
|
290
|
+
aligningLineOffset
|
|
284
291
|
: activeObjectTop -
|
|
285
|
-
|
|
286
|
-
|
|
292
|
+
activeObjectHeight / 2 -
|
|
293
|
+
aligningLineOffset,
|
|
287
294
|
});
|
|
288
295
|
_elReachLeft =
|
|
289
296
|
objectLeft + objectWidth / 2 - activeObjectWidth / 2;
|
|
@@ -313,19 +320,19 @@ class AlignGuidLinePlugin implements IPluginTempl {
|
|
|
313
320
|
x1:
|
|
314
321
|
objectLeft < activeObjectLeft
|
|
315
322
|
? objectLeft -
|
|
316
|
-
|
|
317
|
-
|
|
323
|
+
objectWidth / 2 -
|
|
324
|
+
aligningLineOffset
|
|
318
325
|
: objectLeft +
|
|
319
|
-
|
|
320
|
-
|
|
326
|
+
objectWidth / 2 +
|
|
327
|
+
aligningLineOffset,
|
|
321
328
|
x2:
|
|
322
329
|
activeObjectLeft > objectLeft
|
|
323
330
|
? activeObjectLeft +
|
|
324
|
-
|
|
325
|
-
|
|
331
|
+
activeObjectWidth / 2 +
|
|
332
|
+
aligningLineOffset
|
|
326
333
|
: activeObjectLeft -
|
|
327
|
-
|
|
328
|
-
|
|
334
|
+
activeObjectWidth / 2 -
|
|
335
|
+
aligningLineOffset,
|
|
329
336
|
});
|
|
330
337
|
_elReachTop =
|
|
331
338
|
objectTop - objectHeight / 2 + activeObjectHeight / 2;
|
|
@@ -356,19 +363,19 @@ class AlignGuidLinePlugin implements IPluginTempl {
|
|
|
356
363
|
x1:
|
|
357
364
|
objectLeft < activeObjectLeft
|
|
358
365
|
? objectLeft -
|
|
359
|
-
|
|
360
|
-
|
|
366
|
+
objectWidth / 2 -
|
|
367
|
+
aligningLineOffset
|
|
361
368
|
: objectLeft +
|
|
362
|
-
|
|
363
|
-
|
|
369
|
+
objectWidth / 2 +
|
|
370
|
+
aligningLineOffset,
|
|
364
371
|
x2:
|
|
365
372
|
activeObjectLeft > objectLeft
|
|
366
373
|
? activeObjectLeft +
|
|
367
|
-
|
|
368
|
-
|
|
374
|
+
activeObjectWidth / 2 +
|
|
375
|
+
aligningLineOffset
|
|
369
376
|
: activeObjectLeft -
|
|
370
|
-
|
|
371
|
-
|
|
377
|
+
activeObjectWidth / 2 -
|
|
378
|
+
aligningLineOffset,
|
|
372
379
|
});
|
|
373
380
|
_elReachTop =
|
|
374
381
|
objectTop + objectHeight / 2 - activeObjectHeight / 2;
|
|
@@ -397,19 +404,19 @@ class AlignGuidLinePlugin implements IPluginTempl {
|
|
|
397
404
|
y1:
|
|
398
405
|
objectTop < activeObjectTop
|
|
399
406
|
? objectTop -
|
|
400
|
-
|
|
401
|
-
|
|
407
|
+
objectHeight / 2 -
|
|
408
|
+
aligningLineOffset
|
|
402
409
|
: objectTop +
|
|
403
|
-
|
|
404
|
-
|
|
410
|
+
objectHeight / 2 +
|
|
411
|
+
aligningLineOffset,
|
|
405
412
|
y2:
|
|
406
413
|
activeObjectTop > objectTop
|
|
407
414
|
? activeObjectTop +
|
|
408
|
-
|
|
409
|
-
|
|
415
|
+
activeObjectHeight / 2 +
|
|
416
|
+
aligningLineOffset
|
|
410
417
|
: activeObjectTop -
|
|
411
|
-
|
|
412
|
-
|
|
418
|
+
activeObjectHeight / 2 -
|
|
419
|
+
aligningLineOffset,
|
|
413
420
|
});
|
|
414
421
|
|
|
415
422
|
_elReachLeft =
|
|
@@ -439,19 +446,19 @@ class AlignGuidLinePlugin implements IPluginTempl {
|
|
|
439
446
|
y1:
|
|
440
447
|
objectTop < activeObjectTop
|
|
441
448
|
? objectTop -
|
|
442
|
-
|
|
443
|
-
|
|
449
|
+
objectHeight / 2 -
|
|
450
|
+
aligningLineOffset
|
|
444
451
|
: objectTop +
|
|
445
|
-
|
|
446
|
-
|
|
452
|
+
objectHeight / 2 +
|
|
453
|
+
aligningLineOffset,
|
|
447
454
|
y2:
|
|
448
455
|
activeObjectTop > objectTop
|
|
449
456
|
? activeObjectTop +
|
|
450
|
-
|
|
451
|
-
|
|
457
|
+
activeObjectHeight / 2 +
|
|
458
|
+
aligningLineOffset
|
|
452
459
|
: activeObjectTop -
|
|
453
|
-
|
|
454
|
-
|
|
460
|
+
activeObjectHeight / 2 -
|
|
461
|
+
aligningLineOffset,
|
|
455
462
|
});
|
|
456
463
|
_elReachLeft =
|
|
457
464
|
objectLeft + objectWidth / 2 + activeObjectWidth / 2;
|
|
@@ -481,19 +488,19 @@ class AlignGuidLinePlugin implements IPluginTempl {
|
|
|
481
488
|
x1:
|
|
482
489
|
objectLeft < activeObjectLeft
|
|
483
490
|
? objectLeft -
|
|
484
|
-
|
|
485
|
-
|
|
491
|
+
objectWidth / 2 -
|
|
492
|
+
aligningLineOffset
|
|
486
493
|
: objectLeft +
|
|
487
|
-
|
|
488
|
-
|
|
494
|
+
objectWidth / 2 +
|
|
495
|
+
aligningLineOffset,
|
|
489
496
|
x2:
|
|
490
497
|
activeObjectLeft > objectLeft
|
|
491
498
|
? activeObjectLeft +
|
|
492
|
-
|
|
493
|
-
|
|
499
|
+
activeObjectWidth / 2 +
|
|
500
|
+
aligningLineOffset
|
|
494
501
|
: activeObjectLeft -
|
|
495
|
-
|
|
496
|
-
|
|
502
|
+
activeObjectWidth / 2 -
|
|
503
|
+
aligningLineOffset,
|
|
497
504
|
});
|
|
498
505
|
_elReachTop =
|
|
499
506
|
objectTop - objectHeight / 2 - activeObjectHeight / 2;
|
|
@@ -522,19 +529,19 @@ class AlignGuidLinePlugin implements IPluginTempl {
|
|
|
522
529
|
x1:
|
|
523
530
|
objectLeft < activeObjectLeft
|
|
524
531
|
? objectLeft -
|
|
525
|
-
|
|
526
|
-
|
|
532
|
+
objectWidth / 2 -
|
|
533
|
+
aligningLineOffset
|
|
527
534
|
: objectLeft +
|
|
528
|
-
|
|
529
|
-
|
|
535
|
+
objectWidth / 2 +
|
|
536
|
+
aligningLineOffset,
|
|
530
537
|
x2:
|
|
531
538
|
activeObjectLeft > objectLeft
|
|
532
539
|
? activeObjectLeft +
|
|
533
|
-
|
|
534
|
-
|
|
540
|
+
activeObjectWidth / 2 +
|
|
541
|
+
aligningLineOffset
|
|
535
542
|
: activeObjectLeft -
|
|
536
|
-
|
|
537
|
-
|
|
543
|
+
activeObjectWidth / 2 -
|
|
544
|
+
aligningLineOffset,
|
|
538
545
|
});
|
|
539
546
|
_elReachTop =
|
|
540
547
|
objectTop + objectHeight / 2 + activeObjectHeight / 2;
|
|
@@ -589,7 +596,7 @@ class AlignGuidLinePlugin implements IPluginTempl {
|
|
|
589
596
|
activeObject.set('hasControls', false);
|
|
590
597
|
if (!transform) return;
|
|
591
598
|
|
|
592
|
-
for (let i = canvasObjects.length; i--;
|
|
599
|
+
for (let i = canvasObjects.length; i--;) {
|
|
593
600
|
// eslint-disable-next-line no-continue
|
|
594
601
|
if (canvasObjects[i] === activeObject) continue;
|
|
595
602
|
|
|
@@ -620,19 +627,19 @@ class AlignGuidLinePlugin implements IPluginTempl {
|
|
|
620
627
|
y1:
|
|
621
628
|
objectTop < activeObjectTop
|
|
622
629
|
? objectTop -
|
|
623
|
-
|
|
624
|
-
|
|
630
|
+
objectHeight / 2 -
|
|
631
|
+
aligningLineOffset
|
|
625
632
|
: objectTop +
|
|
626
|
-
|
|
627
|
-
|
|
633
|
+
objectHeight / 2 +
|
|
634
|
+
aligningLineOffset,
|
|
628
635
|
y2:
|
|
629
636
|
activeObjectTop > objectTop
|
|
630
637
|
? activeObjectTop +
|
|
631
|
-
|
|
632
|
-
|
|
638
|
+
activeObjectHeight / 2 +
|
|
639
|
+
aligningLineOffset
|
|
633
640
|
: activeObjectTop -
|
|
634
|
-
|
|
635
|
-
|
|
641
|
+
activeObjectHeight / 2 -
|
|
642
|
+
aligningLineOffset,
|
|
636
643
|
});
|
|
637
644
|
}
|
|
638
645
|
|
|
@@ -651,19 +658,19 @@ class AlignGuidLinePlugin implements IPluginTempl {
|
|
|
651
658
|
y1:
|
|
652
659
|
objectTop < activeObjectTop
|
|
653
660
|
? objectTop -
|
|
654
|
-
|
|
655
|
-
|
|
661
|
+
objectHeight / 2 -
|
|
662
|
+
aligningLineOffset
|
|
656
663
|
: objectTop +
|
|
657
|
-
|
|
658
|
-
|
|
664
|
+
objectHeight / 2 +
|
|
665
|
+
aligningLineOffset,
|
|
659
666
|
y2:
|
|
660
667
|
activeObjectTop > objectTop
|
|
661
668
|
? activeObjectTop +
|
|
662
|
-
|
|
663
|
-
|
|
669
|
+
activeObjectHeight / 2 +
|
|
670
|
+
aligningLineOffset
|
|
664
671
|
: activeObjectTop -
|
|
665
|
-
|
|
666
|
-
|
|
672
|
+
activeObjectHeight / 2 -
|
|
673
|
+
aligningLineOffset,
|
|
667
674
|
});
|
|
668
675
|
|
|
669
676
|
let leftRight = new Map([
|
|
@@ -675,8 +682,8 @@ class AlignGuidLinePlugin implements IPluginTempl {
|
|
|
675
682
|
activeObject.setPositionByOrigin(
|
|
676
683
|
new fabric.Point(
|
|
677
684
|
objectLeft -
|
|
678
|
-
|
|
679
|
-
|
|
685
|
+
objectWidth / 2 +
|
|
686
|
+
activeObjectWidth / 2,
|
|
680
687
|
activeObjectTop
|
|
681
688
|
),
|
|
682
689
|
'center',
|
|
@@ -689,7 +696,7 @@ class AlignGuidLinePlugin implements IPluginTempl {
|
|
|
689
696
|
(objectLeft - objectWidth / 2) +
|
|
690
697
|
activeWidth) *
|
|
691
698
|
activeObject.scaleX) /
|
|
692
|
-
|
|
699
|
+
activeObject.getScaledWidth()
|
|
693
700
|
);
|
|
694
701
|
break;
|
|
695
702
|
}
|
|
@@ -710,19 +717,19 @@ class AlignGuidLinePlugin implements IPluginTempl {
|
|
|
710
717
|
y1:
|
|
711
718
|
objectTop < activeObjectTop
|
|
712
719
|
? objectTop -
|
|
713
|
-
|
|
714
|
-
|
|
720
|
+
objectHeight / 2 -
|
|
721
|
+
aligningLineOffset
|
|
715
722
|
: objectTop +
|
|
716
|
-
|
|
717
|
-
|
|
723
|
+
objectHeight / 2 +
|
|
724
|
+
aligningLineOffset,
|
|
718
725
|
y2:
|
|
719
726
|
activeObjectTop > objectTop
|
|
720
727
|
? activeObjectTop +
|
|
721
|
-
|
|
722
|
-
|
|
728
|
+
activeObjectHeight / 2 +
|
|
729
|
+
aligningLineOffset
|
|
723
730
|
: activeObjectTop -
|
|
724
|
-
|
|
725
|
-
|
|
731
|
+
activeObjectHeight / 2 -
|
|
732
|
+
aligningLineOffset,
|
|
726
733
|
});
|
|
727
734
|
|
|
728
735
|
let Right = new Map([
|
|
@@ -739,7 +746,7 @@ class AlignGuidLinePlugin implements IPluginTempl {
|
|
|
739
746
|
(activeLeft + activeWidth) +
|
|
740
747
|
activeWidth) *
|
|
741
748
|
activeObject.scaleX) /
|
|
742
|
-
|
|
749
|
+
activeObject.getScaledWidth()
|
|
743
750
|
);
|
|
744
751
|
break;
|
|
745
752
|
}
|
|
@@ -755,19 +762,19 @@ class AlignGuidLinePlugin implements IPluginTempl {
|
|
|
755
762
|
x1:
|
|
756
763
|
objectLeft < activeObjectLeft
|
|
757
764
|
? objectLeft -
|
|
758
|
-
|
|
759
|
-
|
|
765
|
+
objectWidth / 2 -
|
|
766
|
+
aligningLineOffset
|
|
760
767
|
: objectLeft +
|
|
761
|
-
|
|
762
|
-
|
|
768
|
+
objectWidth / 2 +
|
|
769
|
+
aligningLineOffset,
|
|
763
770
|
x2:
|
|
764
771
|
activeObjectLeft > objectLeft
|
|
765
772
|
? activeObjectLeft +
|
|
766
|
-
|
|
767
|
-
|
|
773
|
+
activeObjectWidth / 2 +
|
|
774
|
+
aligningLineOffset
|
|
768
775
|
: activeObjectLeft -
|
|
769
|
-
|
|
770
|
-
|
|
776
|
+
activeObjectWidth / 2 -
|
|
777
|
+
aligningLineOffset,
|
|
771
778
|
});
|
|
772
779
|
}
|
|
773
780
|
|
|
@@ -785,19 +792,19 @@ class AlignGuidLinePlugin implements IPluginTempl {
|
|
|
785
792
|
x1:
|
|
786
793
|
objectLeft < activeObjectLeft
|
|
787
794
|
? objectLeft -
|
|
788
|
-
|
|
789
|
-
|
|
795
|
+
objectWidth / 2 -
|
|
796
|
+
aligningLineOffset
|
|
790
797
|
: objectLeft +
|
|
791
|
-
|
|
792
|
-
|
|
798
|
+
objectWidth / 2 +
|
|
799
|
+
aligningLineOffset,
|
|
793
800
|
x2:
|
|
794
801
|
activeObjectLeft > objectLeft
|
|
795
802
|
? activeObjectLeft +
|
|
796
|
-
|
|
797
|
-
|
|
803
|
+
activeObjectWidth / 2 +
|
|
804
|
+
aligningLineOffset
|
|
798
805
|
: activeObjectLeft -
|
|
799
|
-
|
|
800
|
-
|
|
806
|
+
activeObjectWidth / 2 -
|
|
807
|
+
aligningLineOffset,
|
|
801
808
|
});
|
|
802
809
|
|
|
803
810
|
let bottomRight = new Map([
|
|
@@ -811,8 +818,8 @@ class AlignGuidLinePlugin implements IPluginTempl {
|
|
|
811
818
|
new fabric.Point(
|
|
812
819
|
activeObjectLeft,
|
|
813
820
|
objectTop -
|
|
814
|
-
|
|
815
|
-
|
|
821
|
+
objectHeight / 2 +
|
|
822
|
+
activeObjectHeight / 2
|
|
816
823
|
),
|
|
817
824
|
'center',
|
|
818
825
|
'center'
|
|
@@ -824,7 +831,7 @@ class AlignGuidLinePlugin implements IPluginTempl {
|
|
|
824
831
|
activeHeight -
|
|
825
832
|
(objectTop - objectHeight / 2)) *
|
|
826
833
|
activeObject.scaleY) /
|
|
827
|
-
|
|
834
|
+
activeObject.getScaledHeight()
|
|
828
835
|
);
|
|
829
836
|
break;
|
|
830
837
|
}
|
|
@@ -844,19 +851,19 @@ class AlignGuidLinePlugin implements IPluginTempl {
|
|
|
844
851
|
x1:
|
|
845
852
|
objectLeft < activeObjectLeft
|
|
846
853
|
? objectLeft -
|
|
847
|
-
|
|
848
|
-
|
|
854
|
+
objectWidth / 2 -
|
|
855
|
+
aligningLineOffset
|
|
849
856
|
: objectLeft +
|
|
850
|
-
|
|
851
|
-
|
|
857
|
+
objectWidth / 2 +
|
|
858
|
+
aligningLineOffset,
|
|
852
859
|
x2:
|
|
853
860
|
activeObjectLeft > objectLeft
|
|
854
861
|
? activeObjectLeft +
|
|
855
|
-
|
|
856
|
-
|
|
862
|
+
activeObjectWidth / 2 +
|
|
863
|
+
aligningLineOffset
|
|
857
864
|
: activeObjectLeft -
|
|
858
|
-
|
|
859
|
-
|
|
865
|
+
activeObjectWidth / 2 -
|
|
866
|
+
aligningLineOffset,
|
|
860
867
|
});
|
|
861
868
|
|
|
862
869
|
let bottom = new Map([
|
|
@@ -872,7 +879,7 @@ class AlignGuidLinePlugin implements IPluginTempl {
|
|
|
872
879
|
(activeTop + activeHeight) +
|
|
873
880
|
activeHeight) *
|
|
874
881
|
activeObject.scaleY) /
|
|
875
|
-
|
|
882
|
+
activeObject.getScaledHeight()
|
|
876
883
|
);
|
|
877
884
|
break;
|
|
878
885
|
}
|
|
@@ -892,19 +899,19 @@ class AlignGuidLinePlugin implements IPluginTempl {
|
|
|
892
899
|
y1:
|
|
893
900
|
objectTop < activeObjectTop
|
|
894
901
|
? objectTop -
|
|
895
|
-
|
|
896
|
-
|
|
902
|
+
objectHeight / 2 -
|
|
903
|
+
aligningLineOffset
|
|
897
904
|
: objectTop +
|
|
898
|
-
|
|
899
|
-
|
|
905
|
+
objectHeight / 2 +
|
|
906
|
+
aligningLineOffset,
|
|
900
907
|
y2:
|
|
901
908
|
activeObjectTop > objectTop
|
|
902
909
|
? activeObjectTop +
|
|
903
|
-
|
|
904
|
-
|
|
910
|
+
activeObjectHeight / 2 +
|
|
911
|
+
aligningLineOffset
|
|
905
912
|
: activeObjectTop -
|
|
906
|
-
|
|
907
|
-
|
|
913
|
+
activeObjectHeight / 2 -
|
|
914
|
+
aligningLineOffset,
|
|
908
915
|
});
|
|
909
916
|
|
|
910
917
|
let right = new Map([
|
|
@@ -919,7 +926,7 @@ class AlignGuidLinePlugin implements IPluginTempl {
|
|
|
919
926
|
objectWidth / 2 -
|
|
920
927
|
activeObject.left) *
|
|
921
928
|
activeObject.scaleX) /
|
|
922
|
-
|
|
929
|
+
activeObject.getScaledWidth()
|
|
923
930
|
);
|
|
924
931
|
break;
|
|
925
932
|
}
|
|
@@ -938,19 +945,19 @@ class AlignGuidLinePlugin implements IPluginTempl {
|
|
|
938
945
|
y1:
|
|
939
946
|
objectTop < activeObjectTop
|
|
940
947
|
? objectTop -
|
|
941
|
-
|
|
942
|
-
|
|
948
|
+
objectHeight / 2 -
|
|
949
|
+
aligningLineOffset
|
|
943
950
|
: objectTop +
|
|
944
|
-
|
|
945
|
-
|
|
951
|
+
objectHeight / 2 +
|
|
952
|
+
aligningLineOffset,
|
|
946
953
|
y2:
|
|
947
954
|
activeObjectTop > objectTop
|
|
948
955
|
? activeObjectTop +
|
|
949
|
-
|
|
950
|
-
|
|
956
|
+
activeObjectHeight / 2 +
|
|
957
|
+
aligningLineOffset
|
|
951
958
|
: activeObjectTop -
|
|
952
|
-
|
|
953
|
-
|
|
959
|
+
activeObjectHeight / 2 -
|
|
960
|
+
aligningLineOffset,
|
|
954
961
|
});
|
|
955
962
|
|
|
956
963
|
let leftRight = new Map([
|
|
@@ -962,8 +969,8 @@ class AlignGuidLinePlugin implements IPluginTempl {
|
|
|
962
969
|
activeObject.setPositionByOrigin(
|
|
963
970
|
new fabric.Point(
|
|
964
971
|
objectLeft +
|
|
965
|
-
|
|
966
|
-
|
|
972
|
+
objectWidth / 2 +
|
|
973
|
+
activeObjectWidth / 2,
|
|
967
974
|
activeObjectTop
|
|
968
975
|
),
|
|
969
976
|
'center',
|
|
@@ -976,7 +983,7 @@ class AlignGuidLinePlugin implements IPluginTempl {
|
|
|
976
983
|
activeWidth -
|
|
977
984
|
(objectLeft + objectWidth / 2)) *
|
|
978
985
|
activeObject.scaleX) /
|
|
979
|
-
|
|
986
|
+
activeObject.getScaledWidth()
|
|
980
987
|
);
|
|
981
988
|
break;
|
|
982
989
|
}
|
|
@@ -995,19 +1002,19 @@ class AlignGuidLinePlugin implements IPluginTempl {
|
|
|
995
1002
|
x1:
|
|
996
1003
|
objectLeft < activeObjectLeft
|
|
997
1004
|
? objectLeft -
|
|
998
|
-
|
|
999
|
-
|
|
1005
|
+
objectWidth / 2 -
|
|
1006
|
+
aligningLineOffset
|
|
1000
1007
|
: objectLeft +
|
|
1001
|
-
|
|
1002
|
-
|
|
1008
|
+
objectWidth / 2 +
|
|
1009
|
+
aligningLineOffset,
|
|
1003
1010
|
x2:
|
|
1004
1011
|
activeObjectLeft > objectLeft
|
|
1005
1012
|
? activeObjectLeft +
|
|
1006
|
-
|
|
1007
|
-
|
|
1013
|
+
activeObjectWidth / 2 +
|
|
1014
|
+
aligningLineOffset
|
|
1008
1015
|
: activeObjectLeft -
|
|
1009
|
-
|
|
1010
|
-
|
|
1016
|
+
activeObjectWidth / 2 -
|
|
1017
|
+
aligningLineOffset,
|
|
1011
1018
|
});
|
|
1012
1019
|
|
|
1013
1020
|
let bottom = new Map([
|
|
@@ -1020,7 +1027,7 @@ class AlignGuidLinePlugin implements IPluginTempl {
|
|
|
1020
1027
|
'scaleY',
|
|
1021
1028
|
((objectTop - objectHeight / 2 - activeObject.top) *
|
|
1022
1029
|
activeObject.scaleY) /
|
|
1023
|
-
|
|
1030
|
+
activeObject.getScaledHeight()
|
|
1024
1031
|
);
|
|
1025
1032
|
break;
|
|
1026
1033
|
}
|
|
@@ -1039,19 +1046,19 @@ class AlignGuidLinePlugin implements IPluginTempl {
|
|
|
1039
1046
|
x1:
|
|
1040
1047
|
objectLeft < activeObjectLeft
|
|
1041
1048
|
? objectLeft -
|
|
1042
|
-
|
|
1043
|
-
|
|
1049
|
+
objectWidth / 2 -
|
|
1050
|
+
aligningLineOffset
|
|
1044
1051
|
: objectLeft +
|
|
1045
|
-
|
|
1046
|
-
|
|
1052
|
+
objectWidth / 2 +
|
|
1053
|
+
aligningLineOffset,
|
|
1047
1054
|
x2:
|
|
1048
1055
|
activeObjectLeft > objectLeft
|
|
1049
1056
|
? activeObjectLeft +
|
|
1050
|
-
|
|
1051
|
-
|
|
1057
|
+
activeObjectWidth / 2 +
|
|
1058
|
+
aligningLineOffset
|
|
1052
1059
|
: activeObjectLeft -
|
|
1053
|
-
|
|
1054
|
-
|
|
1060
|
+
activeObjectWidth / 2 -
|
|
1061
|
+
aligningLineOffset,
|
|
1055
1062
|
});
|
|
1056
1063
|
|
|
1057
1064
|
let bottomRight = new Map([
|
|
@@ -1065,8 +1072,8 @@ class AlignGuidLinePlugin implements IPluginTempl {
|
|
|
1065
1072
|
new fabric.Point(
|
|
1066
1073
|
activeObjectLeft,
|
|
1067
1074
|
objectTop +
|
|
1068
|
-
|
|
1069
|
-
|
|
1075
|
+
objectHeight / 2 +
|
|
1076
|
+
activeObjectHeight / 2
|
|
1070
1077
|
),
|
|
1071
1078
|
'center',
|
|
1072
1079
|
'center'
|
|
@@ -1078,7 +1085,7 @@ class AlignGuidLinePlugin implements IPluginTempl {
|
|
|
1078
1085
|
activeHeight -
|
|
1079
1086
|
(objectTop + objectHeight / 2)) *
|
|
1080
1087
|
activeObject.scaleY) /
|
|
1081
|
-
|
|
1088
|
+
activeObject.getScaledHeight()
|
|
1082
1089
|
);
|
|
1083
1090
|
|
|
1084
1091
|
break;
|
|
@@ -1100,12 +1107,12 @@ class AlignGuidLinePlugin implements IPluginTempl {
|
|
|
1100
1107
|
ctx.lineWidth = This.defautOption.width;
|
|
1101
1108
|
ctx.strokeStyle = This.defautOption.color;
|
|
1102
1109
|
|
|
1103
|
-
for (let i = verticalLines.length; i--;
|
|
1110
|
+
for (let i = verticalLines.length; i--;) {
|
|
1104
1111
|
if (verticalLines[i]) {
|
|
1105
1112
|
drawVerticalLine(verticalLines[i]);
|
|
1106
1113
|
}
|
|
1107
1114
|
}
|
|
1108
|
-
for (let j = horizontalLines.length; j--;
|
|
1115
|
+
for (let j = horizontalLines.length; j--;) {
|
|
1109
1116
|
if (horizontalLines[j]) {
|
|
1110
1117
|
drawHorizontalLine(horizontalLines[j]);
|
|
1111
1118
|
}
|
|
@@ -1133,6 +1140,10 @@ class AlignGuidLinePlugin implements IPluginTempl {
|
|
|
1133
1140
|
});
|
|
1134
1141
|
}
|
|
1135
1142
|
|
|
1143
|
+
changeSwitch(switchStatus: boolean) {
|
|
1144
|
+
this.switch = switchStatus ?? !this.switch;
|
|
1145
|
+
}
|
|
1146
|
+
|
|
1136
1147
|
destroy() {
|
|
1137
1148
|
console.log('pluginDestroy');
|
|
1138
1149
|
}
|