From f0cfe83e3725f9a3928da97a6e3085e79cb25309 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Mon, 18 Mar 2013 10:26:24 +0400 Subject: upgrade dojo to 1.8.3 (refs #570) --- lib/dijit/_BidiSupport.js.uncompressed.js | 113 ++++++++++++++++++++++++++++++ 1 file changed, 113 insertions(+) create mode 100644 lib/dijit/_BidiSupport.js.uncompressed.js (limited to 'lib/dijit/_BidiSupport.js.uncompressed.js') diff --git a/lib/dijit/_BidiSupport.js.uncompressed.js b/lib/dijit/_BidiSupport.js.uncompressed.js new file mode 100644 index 000000000..4a43c1f06 --- /dev/null +++ b/lib/dijit/_BidiSupport.js.uncompressed.js @@ -0,0 +1,113 @@ +define("dijit/_BidiSupport", ["./_WidgetBase"], function(_WidgetBase){ + + // module: + // dijit/_BidiSupport + + /*===== + return function(){ + // summary: + // Module that deals with BIDI, special with the auto + // direction if needed without changing the GUI direction. + // Including this module will extend _WidgetBase with BIDI related methods. + // description: + // There's a special need for displaying BIDI text in rtl direction + // in ltr GUI, sometimes needed auto support. + // In creation of widget, if it's want to activate this class, + // the widget should define the "textDir". + }; + =====*/ + + _WidgetBase.extend({ + + getTextDir: function(/*String*/ text){ + // summary: + // Gets the right direction of text. + // description: + // If textDir is ltr or rtl returns the value. + // If it's auto, calls to another function that responsible + // for checking the value, and defining the direction. + // tags: + // protected. + return this.textDir == "auto" ? this._checkContextual(text) : this.textDir; + }, + + _checkContextual: function(text){ + // summary: + // Finds the first strong (directional) character, return ltr if isLatin + // or rtl if isBidiChar. + // tags: + // private. + + // look for strong (directional) characters + var fdc = /[A-Za-z\u05d0-\u065f\u066a-\u06ef\u06fa-\u07ff\ufb1d-\ufdff\ufe70-\ufefc]/.exec(text); + // if found return the direction that defined by the character, else return widgets dir as defult. + return fdc ? ( fdc[0] <= 'z' ? "ltr" : "rtl" ) : this.dir ? this.dir : this.isLeftToRight() ? "ltr" : "rtl"; + }, + + applyTextDir: function(/*Object*/ element, /*String*/ text){ + // summary: + // Set element.dir according to this.textDir + // element: + // The text element to be set. Should have dir property. + // text: + // Used in case this.textDir is "auto", for calculating the right transformation + // description: + // If textDir is ltr or rtl returns the value. + // If it's auto, calls to another function that responsible + // for checking the value, and defining the direction. + // tags: + // protected. + + var textDir = this.textDir == "auto" ? this._checkContextual(text) : this.textDir; + // update only when there's a difference + if(element.dir != textDir){ + element.dir = textDir; + } + }, + enforceTextDirWithUcc: function(option, text){ + // summary: + // Wraps by UCC (Unicode control characters) option's text according to this.textDir + // option: + // The element (`