OLD | NEW |
1 // | 1 // |
2 // Copyright 2014 Google Inc. All rights reserved. | 2 // Copyright 2014 Google Inc. All rights reserved. |
3 // | 3 // |
4 // Use of this source code is governed by a BSD-style | 4 // Use of this source code is governed by a BSD-style |
5 // license that can be found in the LICENSE file or at | 5 // license that can be found in the LICENSE file or at |
6 // https://developers.google.com/open-source/licenses/bsd | 6 // https://developers.google.com/open-source/licenses/bsd |
7 // | 7 // |
8 | 8 |
9 part of charted.core.utils; | 9 part of charted.core.utils; |
10 | 10 |
11 /// Charts are always drawn with LTR context. | 11 /// Charts are always drawn with LTR context. |
12 BidiFormatter _bidiFormatter = new BidiFormatter.LTR(); | 12 BidiFormatter _bidiFormatter = new BidiFormatter.LTR(); |
13 | 13 |
14 /// Fix direction of HTML using <span dir="..."> for RTL when required | 14 /// Fix direction of HTML using <span dir="..."> for RTL when required |
15 fixMarkupDirection(String markup) => | 15 fixMarkupDirection(String markup) => |
16 _bidiFormatter.wrapWithSpan(markup, isHtml:true); | 16 _bidiFormatter.wrapWithSpan(markup, isHtml: true); |
17 | 17 |
18 /// Fix direction of text using unicode markers for RTL when required | 18 /// Fix direction of text using unicode markers for RTL when required |
19 /// This is a simplified version of BidiFormatter.wrapWithUnicode that | 19 /// This is a simplified version of BidiFormatter.wrapWithUnicode that |
20 /// is meant to be used for small labels only (Eg: axis ticks). | 20 /// is meant to be used for small labels only (Eg: axis ticks). |
21 String fixSimpleTextDirection(String text) { | 21 String fixSimpleTextDirection(String text) { |
22 TextDirection direction = estimateDirectionOfSimpleText(text); | 22 TextDirection direction = estimateDirectionOfSimpleText(text); |
23 if (TextDirection.RTL == direction) { | 23 if (TextDirection.RTL == direction) { |
24 var marker = direction == TextDirection.RTL ? Bidi.RLE : Bidi.LRE; | 24 var marker = direction == TextDirection.RTL ? Bidi.RLE : Bidi.LRE; |
25 return "${marker}$text${Bidi.PDF}"; | 25 return "${marker}$text${Bidi.PDF}"; |
26 } | 26 } |
(...skipping 20 matching lines...) Expand all Loading... |
47 } else if (_digitsRegExp.hasMatch(token)) { | 47 } else if (_digitsRegExp.hasMatch(token)) { |
48 hasWeaklyLtr = true; | 48 hasWeaklyLtr = true; |
49 } | 49 } |
50 } | 50 } |
51 if (total == 0) { | 51 if (total == 0) { |
52 return hasWeaklyLtr ? TextDirection.LTR : TextDirection.UNKNOWN; | 52 return hasWeaklyLtr ? TextDirection.LTR : TextDirection.UNKNOWN; |
53 } else { | 53 } else { |
54 return rtlCount > 0.4 * total ? TextDirection.RTL : TextDirection.LTR; | 54 return rtlCount > 0.4 * total ? TextDirection.RTL : TextDirection.LTR; |
55 } | 55 } |
56 } | 56 } |
OLD | NEW |