1 | define(["dojo/_base/array", "dijit/_BidiSupport"], function(array, _BidiSupport){ |
---|
2 | |
---|
3 | // module: |
---|
4 | // bidi/common |
---|
5 | // summary: |
---|
6 | // Module contains functions to support text direction, that can be set independent to GUI direction. |
---|
7 | // description: |
---|
8 | // Unicode control characters (UCC) used to control text direction. |
---|
9 | |
---|
10 | common = {}; |
---|
11 | common.enforceTextDirWithUcc = function(text, textDir){ |
---|
12 | // summary: |
---|
13 | // Wraps by UCC (Unicode control characters) displayed text according to textDir. |
---|
14 | // text: |
---|
15 | // The text to be wrapped. |
---|
16 | // textDir: |
---|
17 | // Text direction. |
---|
18 | // description: |
---|
19 | // There's a dir problem with some HTML elements. For some Android browsers Hebrew text is displayed right to left also |
---|
20 | // when dir is set to LTR. |
---|
21 | // Therefore the only solution is to use UCC to display the text in correct orientation. |
---|
22 | if(textDir){ |
---|
23 | textDir = (textDir === "auto") ? _BidiSupport.prototype._checkContextual(text) : textDir; |
---|
24 | return ((textDir === "rtl") ? common.MARK.RLE : common.MARK.LRE) + text + common.MARK.PDF; |
---|
25 | } |
---|
26 | return text; |
---|
27 | }; |
---|
28 | |
---|
29 | common.removeUCCFromText = function(text){ |
---|
30 | // summary: |
---|
31 | // Removes UCC from input string. |
---|
32 | // text: |
---|
33 | // The text to be stripped from UCC. |
---|
34 | if (!text){ |
---|
35 | return text; |
---|
36 | } |
---|
37 | return text.replace(/\u202A|\u202B|\u202C/g,""); |
---|
38 | }; |
---|
39 | |
---|
40 | common.setTextDirForButtons = function(widget){ |
---|
41 | // summary: |
---|
42 | // Sets textDir property to children. |
---|
43 | // widget: |
---|
44 | // parent widget |
---|
45 | var children = widget.getChildren(); |
---|
46 | if (children && widget.textDir){ |
---|
47 | array.forEach(children, function(ch){ |
---|
48 | ch.set("textDir", widget.textDir); |
---|
49 | }, widget); |
---|
50 | } |
---|
51 | }; |
---|
52 | |
---|
53 | // UCC - constants that will be used by bidi support. |
---|
54 | common.MARK = { |
---|
55 | LRE : '\u202A', |
---|
56 | RLE : '\u202B', |
---|
57 | PDF : '\u202C' |
---|
58 | }; |
---|
59 | |
---|
60 | return common; |
---|
61 | }); |
---|