1
1
const $ = ( id ) => document . getElementById ( id ) ;
2
2
3
+ const getRange = ( ) => {
4
+ var active = canvas . getActiveObject ( ) ;
5
+ if ( ! active ) return [ ] ;
6
+ if ( active . selectionStart === active . selectionEnd ) {
7
+ return [ active . selectionStart , active . selectionEnd + 1 ] ;
8
+ }
9
+ return [ active . selectionStart , active . selectionEnd ] ;
10
+ }
11
+
3
12
$ ( 'super' ) . onclick = ( ) => {
4
13
var active = canvas . getActiveObject ( ) ;
5
14
if ( ! active ) return ;
6
- active . setSuperscript ( ) ;
15
+ active . setSuperscript ( ... getRange ( ) ) ;
7
16
canvas . requestRenderAll ( ) ;
8
17
}
9
18
10
19
$ ( 'sub' ) . onclick = ( ) => {
11
20
var active = canvas . getActiveObject ( ) ;
12
21
if ( ! active ) return ;
13
- active . setSubscript ( ) ;
22
+ active . setSubscript ( ... getRange ( ) ) ;
14
23
canvas . requestRenderAll ( ) ;
15
24
}
16
25
17
26
$ ( 'remove' ) . onclick = ( ) => {
18
27
var active = canvas . getActiveObject ( ) ;
19
28
if ( ! active ) return ;
20
- active . setSelectionStyles ( {
29
+ active . setSelectionStyles && active . setSelectionStyles ( {
21
30
fontSize : undefined ,
22
31
deltaY : undefined ,
23
- } ) ;
32
+ } , ... getRanges ( ) ) ;
24
33
canvas . requestRenderAll ( ) ;
25
34
}
26
35
@@ -42,4 +51,4 @@ var textbox = new fabric.Textbox('This is a Textbox object', {
42
51
stroke : "#D81B60" ,
43
52
} ) ;
44
53
45
- canvas . add ( itext , textbox ) ;
54
+ canvas . add ( itext , textbox ) ;
0 commit comments