Skip to content

Commit bdfc559

Browse files
committed
+
1 parent d7359e1 commit bdfc559

File tree

2 files changed

+34
-8
lines changed

2 files changed

+34
-8
lines changed

BoxMaker/BoxMaker/app.js

+14-4
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ var SamplePage = (function () {
1818
}
1919
SamplePage.prototype.insert = function (input) {
2020
var chars = input;
21+
var parts = {
22+
};
2123
var sb = [];
2224
var id = 0;
2325
var nextMustJoined = false;
@@ -34,26 +36,32 @@ var SamplePage = (function () {
3436
sb.push(char);
3537
} else {
3638
var isb = [];
39+
id++;
40+
isb.push('<span class="char" uid="' + id + '">');
3741
isb.push(char);
42+
parts[id] = char;
3843
while(true) {
3944
if((isHarekat(nextChar)) || (isJoinableToNext(char) && isAlefba(nextChar))) {
4045
if(letterByLetter && !isHarekat(nextChar)) {
4146
isb.push(zwj);
4247
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 + '">');
4451
isb.push(zwj);
52+
parts[id] = zwj;
4553
}
4654
isb.push(nextChar);
55+
parts[id] = parts[id] + nextChar;
4756
i++;
4857
char = chars[i];
4958
nextChar = chars[i + 1];
5059
} else {
5160
break;
5261
}
5362
}
54-
sb.push('<span class="char">');
63+
isb.push('</span>');
5564
sb.push(isb.join(''));
56-
sb.push('</span>');
5765
sb.push(extraSpace);
5866
}
5967
}
@@ -65,6 +73,8 @@ var SamplePage = (function () {
6573
$('.char').css('margin-left', $('#letterSpacing').val() + 'px');
6674
this.page.css('line-height', $('#lineHeight').val() + 'px');
6775
var direction = (document.getElementById('rtlMode')).checked ? 'rtl' : 'ltr';
76+
$('body').attr('dir', direction);
77+
$('#wrapper').css('direction', 'ltr');
6878
this.page.css('direction', direction);
6979
$('#canvasWrapper').css('direction', direction);
7080
this.page[0].style.fontSize = $('#fontSize').val() + 'px';
@@ -97,7 +107,7 @@ var SamplePage = (function () {
97107
var ivshift = parseInt($('#ivshift').val());
98108
for(var i in elements) {
99109
var el = elements[i];
100-
var elcontent = el.innerHTML;
110+
var elcontent = parts[el.getAttribute('uid')];
101111
sb.push(elcontent);
102112
sb.push(' ');
103113
var left = el.offsetLeft - pleft;

BoxMaker/BoxMaker/app.ts

+20-4
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ class SamplePage {
2525

2626
insert(input: string) {
2727
var chars = input;
28+
var parts = {};
2829
var sb = [];
2930
var id = 0;
3031
var nextMustJoined = false;
@@ -41,26 +42,34 @@ class SamplePage {
4142
sb.push(char);
4243
} else {
4344
var isb = [];
45+
id++;
46+
isb.push('<span class="char" uid="' + id + '">');
4447
isb.push(char);
48+
parts[id] = char;
4549
while (true) {
4650
if ((isHarekat(nextChar)) || (isJoinableToNext(char) && isAlefba(nextChar))) {
4751
if (letterByLetter && !isHarekat(nextChar)) {
4852
isb.push(zwj);
4953
isb.push('</span>');
50-
isb.push('<span class="char">');
54+
parts[id] = parts[id] + zwj;
55+
56+
id++;
57+
isb.push('<span class="char" uid="' + id + '">');
5158
isb.push(zwj);
59+
parts[id] = zwj;
5260
}
5361
isb.push(nextChar);
62+
parts[id] = parts[id] + nextChar;
5463
i++;
5564
char = chars[i];
5665
nextChar = chars[i + 1];
5766
} else {
5867
break;
5968
}
6069
}
61-
sb.push('<span class="char">');
70+
isb.push('</span>');
71+
6272
sb.push(isb.join(''));
63-
sb.push('</span>');
6473
sb.push(extraSpace);
6574
}
6675
}
@@ -74,6 +83,12 @@ class SamplePage {
7483
this.page.css('line-height', $('#lineHeight').val() + 'px');
7584

7685
var direction = (<HTMLInputElement>document.getElementById('rtlMode')).checked ? 'rtl' : 'ltr';
86+
87+
// CRAZY HACK
88+
$('body').attr('dir', direction);
89+
$('#wrapper').css('direction', 'ltr');
90+
//
91+
7792
this.page.css('direction', direction);
7893
$('#canvasWrapper').css('direction', direction);
7994

@@ -116,7 +131,8 @@ class SamplePage {
116131

117132
for (var i in elements) {
118133
var el = <HTMLElement>elements[i];
119-
var elcontent = el.innerHTML;
134+
var elcontent = parts[el.getAttribute('uid')];
135+
120136
sb.push(elcontent);
121137
sb.push(' ');
122138

0 commit comments

Comments
 (0)