@@ -18,6 +18,8 @@ var SamplePage = (function () {
18
18
}
19
19
SamplePage . prototype . insert = function ( input ) {
20
20
var chars = input ;
21
+ var parts = {
22
+ } ;
21
23
var sb = [ ] ;
22
24
var id = 0 ;
23
25
var nextMustJoined = false ;
@@ -34,26 +36,32 @@ var SamplePage = (function () {
34
36
sb . push ( char ) ;
35
37
} else {
36
38
var isb = [ ] ;
39
+ id ++ ;
40
+ isb . push ( '<span class="char" uid="' + id + '">' ) ;
37
41
isb . push ( char ) ;
42
+ parts [ id ] = char ;
38
43
while ( true ) {
39
44
if ( ( isHarekat ( nextChar ) ) || ( isJoinableToNext ( char ) && isAlefba ( nextChar ) ) ) {
40
45
if ( letterByLetter && ! isHarekat ( nextChar ) ) {
41
46
isb . push ( zwj ) ;
42
47
isb . push ( '</span>' ) ;
43
- isb . push ( '<span class="char">' ) ;
48
+ parts [ id ] = parts [ id ] + zwj ;
49
+ id ++ ;
50
+ isb . push ( '<span class="char" uid="' + id + '">' ) ;
44
51
isb . push ( zwj ) ;
52
+ parts [ id ] = zwj ;
45
53
}
46
54
isb . push ( nextChar ) ;
55
+ parts [ id ] = parts [ id ] + nextChar ;
47
56
i ++ ;
48
57
char = chars [ i ] ;
49
58
nextChar = chars [ i + 1 ] ;
50
59
} else {
51
60
break ;
52
61
}
53
62
}
54
- sb . push ( '<span class="char" >' ) ;
63
+ isb . push ( '</ span>' ) ;
55
64
sb . push ( isb . join ( '' ) ) ;
56
- sb . push ( '</span>' ) ;
57
65
sb . push ( extraSpace ) ;
58
66
}
59
67
}
@@ -65,6 +73,8 @@ var SamplePage = (function () {
65
73
$ ( '.char' ) . css ( 'margin-left' , $ ( '#letterSpacing' ) . val ( ) + 'px' ) ;
66
74
this . page . css ( 'line-height' , $ ( '#lineHeight' ) . val ( ) + 'px' ) ;
67
75
var direction = ( document . getElementById ( 'rtlMode' ) ) . checked ? 'rtl' : 'ltr' ;
76
+ $ ( 'body' ) . attr ( 'dir' , direction ) ;
77
+ $ ( '#wrapper' ) . css ( 'direction' , 'ltr' ) ;
68
78
this . page . css ( 'direction' , direction ) ;
69
79
$ ( '#canvasWrapper' ) . css ( 'direction' , direction ) ;
70
80
this . page [ 0 ] . style . fontSize = $ ( '#fontSize' ) . val ( ) + 'px' ;
@@ -97,7 +107,7 @@ var SamplePage = (function () {
97
107
var ivshift = parseInt ( $ ( '#ivshift' ) . val ( ) ) ;
98
108
for ( var i in elements ) {
99
109
var el = elements [ i ] ;
100
- var elcontent = el . innerHTML ;
110
+ var elcontent = parts [ el . getAttribute ( 'uid' ) ] ;
101
111
sb . push ( elcontent ) ;
102
112
sb . push ( ' ' ) ;
103
113
var left = el . offsetLeft - pleft ;
0 commit comments