dojox
Version:
Dojo eXtensions, a rollup of many useful sub-projects and varying states of maturity – from very stable and robust, to alpha and experimental. See individual projects contain README files for details.
62 lines (55 loc) • 1.81 kB
JavaScript
define(["dojo/_base/array", "dijit/_BidiSupport"], function(array, _BidiSupport){
// module:
// bidi/common
// summary:
// Module contains functions to support text direction, that can be set independent to GUI direction.
// description:
// Unicode control characters (UCC) used to control text direction.
var common = {};
common.enforceTextDirWithUcc = function(text, textDir){
// summary:
// Wraps by UCC (Unicode control characters) displayed text according to textDir.
// text:
// The text to be wrapped.
// textDir:
// Text direction.
// description:
// There's a dir problem with some HTML elements. For some Android browsers Hebrew text is displayed right to left also
// when dir is set to LTR.
// Therefore the only solution is to use UCC to display the text in correct orientation.
if(textDir){
textDir = (textDir === "auto") ? _BidiSupport.prototype._checkContextual(text) : textDir;
return ((textDir === "rtl") ? common.MARK.RLE : common.MARK.LRE) + text + common.MARK.PDF;
}
return text;
};
common.removeUCCFromText = function(text){
// summary:
// Removes UCC from input string.
// text:
// The text to be stripped from UCC.
if (!text){
return text;
}
return text.replace(/\u202A|\u202B|\u202C/g,"");
};
common.setTextDirForButtons = function(widget){
// summary:
// Sets textDir property to children.
// widget:
// parent widget
var children = widget.getChildren();
if (children && widget.textDir){
array.forEach(children, function(ch){
ch.set("textDir", widget.textDir);
}, widget);
}
};
// UCC - constants that will be used by bidi support.
common.MARK = {
LRE : '\u202A',
RLE : '\u202B',
PDF : '\u202C'
};
return common;
});