/*! fineui */
function accAdd ( a , b ) { var c , d , e , f ; try { c = a . toString ( ) . split ( "." ) [ 1 ] . length } catch ( g ) { c = 0 } try { d = b . toString ( ) . split ( "." ) [ 1 ] . length } catch ( g ) { d = 0 } if ( f = Math . abs ( c - d ) , e = Math . pow ( 10 , Math . max ( c , d ) ) , f > 0 ) { var h = Math . pow ( 10 , f ) ; c > d ? ( a = Number ( a . toString ( ) . replace ( "." , "" ) ) , b = Number ( b . toString ( ) . replace ( "." , "" ) ) * h ) : ( a = Number ( a . toString ( ) . replace ( "." , "" ) ) * h , b = Number ( b . toString ( ) . replace ( "." , "" ) ) ) } else a = Number ( a . toString ( ) . replace ( "." , "" ) ) , b = Number ( b . toString ( ) . replace ( "." , "" ) ) ; return ( a + b ) / e } function accSub ( a , b ) { var c , d , e , f ; try { c = a . toString ( ) . split ( "." ) [ 1 ] . length } catch ( g ) { c = 0 } try { d = b . toString ( ) . split ( "." ) [ 1 ] . length } catch ( g ) { d = 0 } return e = Math . pow ( 10 , Math . max ( c , d ) ) , f = c >= d ? c : d , ( ( a * e - b * e ) / e ) . toFixed ( f ) } function accMul ( a , b ) { var c = 0 , d = a . toString ( ) , e = b . toString ( ) ; try { c += d . split ( "." ) [ 1 ] . length } catch ( f ) { } try { c += e . split ( "." ) [ 1 ] . length } catch ( f ) { } return Number ( d . replace ( "." , "" ) ) * Number ( e . replace ( "." , "" ) ) / Math . pow ( 10 , c ) } function accDiv ( arg1 , arg2 ) { var t1 = 0 , t2 = 0 , r1 , r2 ; try { t1 = arg1 . toString ( ) . split ( "." ) [ 1 ] . length } catch ( e ) { } try { t2 = arg2 . toString ( ) . split ( "." ) [ 1 ] . length } catch ( e ) { } with ( Math ) return r1 = Number ( arg1 . toString ( ) . replace ( "." , "" ) ) , r2 = Number ( arg2 . toString ( ) . replace ( "." , "" ) ) , t2 > t1 ? r1 / r2 * pow ( 10 , t2 - t1 ) : r1 / r2 / pow ( 10 , t1 - t2 ) } function _classCallCheck ( a , b ) { if ( ! ( a instanceof b ) ) throw new TypeError ( "Cannot call a class as a function" ) } Array . prototype . indexOf || ( Array . prototype . indexOf = function ( a , b ) { var c ; if ( null == this ) throw new TypeError ( '"this" is null or not defined' ) ; var d = Object ( this ) , e = d . length >>> 0 ; if ( 0 === e ) return - 1 ; var f = 0 | b ; if ( f >= e ) return - 1 ; for ( c = Math . max ( f >= 0 ? f : e - Math . abs ( f ) , 0 ) ; c < e ; ) { if ( c in d && d [ c ] === a ) return c ; c ++ } return - 1 } ) , Array . prototype . lastIndexOf || ( Array . prototype . lastIndexOf = function ( a ) { "use strict" ; if ( void 0 === this || null === this ) throw new TypeError ; var b , c , d = Object ( this ) , e = d . length >>> 0 ; if ( 0 === e ) return - 1 ; for ( b = e - 1 , arguments . length > 1 && ( b = Number ( arguments [ 1 ] ) , b != b ? b = 0 : 0 != b && b != 1 / 0 && b != - ( 1 / 0 ) && ( b = ( b > 0 || - 1 ) * Math . floor ( Math . abs ( b ) ) ) ) , c = b >= 0 ? Math . min ( b , e - 1 ) : e - Math . abs ( b ) ; c >= 0 ; c -- ) if ( c in d && d [ c ] === a ) return c ; return - 1 } ) , window . console = window . console || function ( ) { var a = { } ; return a . log = a . warn = a . debug = a . info = a . error = a . time = a . dir = a . profile = a . clear = a . exception = a . trace = a . assert = function ( ) { } , a } ( ) , window . localStorage || ( window . localStorage = { items : { } , setItem : function ( a , b ) { BI . Cache . addCookie ( a , b ) } , getItem : function ( a ) { return BI . Cache . getCookie ( a ) } , removeItem : function ( a ) { BI . Cache . deleteCookie ( a ) } , key : function ( ) { } , clear : function ( ) { this . items = { } } } ) , "undefined" != typeof Set && Set . toString ( ) . match ( /native code/ ) || ( Set = function ( ) { this . set = { } } , Set . prototype . has = function ( a ) { return void 0 !== this . set [ a ] } , Set . prototype . add = function ( a ) { this . set [ a ] = 1 } , Set . prototype . clear = function ( ) { this . set = { } } ) , ! function ( a ) { var b = a . navigator . userAgent . toLowerCase ( ) , c = /msie|applewebkit.+safari/ ; if ( c . test ( b ) ) { var d = Array . prototype . sort ; Array . prototype . sort = function ( a ) { if ( a && "function" == typeof a ) { if ( this . length < 2 ) return this ; for ( var b , c = 0 , e = c + 1 , f = this . length , g = ! 1 , h = 0 ; c < f ; c ++ ) for ( e = c + 1 ; e < f ; e ++ ) h = a . call ( this , this [ c ] , this [ e ] ) , g = ( "number" == typeof h ? h : h ? 1 : 0 ) > 0 , g === ! 0 && ( b = this [ c ] , this [ c ] = this [ e ] , this [ e ] = b ) ; return this } return d . call ( this ) } } } ( window ) , function ( a , b ) { function c ( a ) { var b = a . length , c = ia . type ( a ) ; return ! ia . isWindow ( a ) && ( ! ( 1 !== a . nodeType || ! b ) || ( "array" === c || "function" !== c && ( 0 === b || "number" == typeof b && b > 0 && b - 1 in a ) ) ) } function d ( a ) { var b = xa [ a ] = { } ; return ia . each ( a . match ( ka ) || [ ] , function ( a , c ) { b [ c ] = ! 0 } ) , b } function e ( a , c , d , e ) { if ( ia . acceptData ( a ) ) { var f , g , h = ia . expando , i = "string" == typeof c , j = a . nodeType , k = j ? ia . cache : a , l = j ? a [ h ] : a [ h ] && h ; if ( l && k [ l ] && ( e || k [ l ] . data ) || ! i || d !== b ) return l || ( j ? a [ h ] = l = _ . pop ( ) || ia . guid ++ : l = h ) , k [ l ] || ( k [ l ] = { } , j || ( k [ l ] . toJSON = ia . noop ) ) , "object" != typeof c && "function" != typeof c || ( e ? k [ l ] = ia . extend ( k [ l ] , c ) : k [ l ] . data = ia . extend ( k [ l ] . data , c ) ) , f = k [ l ] , e || ( f . data || ( f . data = { } ) , f = f . data ) , d !== b && ( f [ ia . camelCase ( c ) ] = d ) , i ? ( g = f [ c ] , null == g && ( g = f [ ia . camelCase ( c ) ] ) ) : g = f , g } } function f ( a , b , c ) { if ( ia . acceptData ( a ) ) { var d , e , f , g = a . nodeType , i = g ? ia . cache : a , j = g ? a [ ia . expando ] : ia . expando ; if ( i [ j ] ) { if ( b && ( f = c ? i [ j ] : i [ j ] . data ) ) { ia . isArray ( b ) ? b = b . concat ( ia . map ( b , ia . camelCase ) ) : b in f ? b = [ b ] : ( b = ia . camelCase ( b ) , b = b in f ? [ b ] : b
} ) } , hasClass : function ( a ) { for ( var b = " " + a + " " , c = 0 , d = this . length ; c < d ; c ++ ) if ( 1 === this [ c ] . nodeType && ( " " + this [ c ] . className + " " ) . replace ( Ca , " " ) . indexOf ( b ) >= 0 ) return ! 0 ; return ! 1 } , val : function ( a ) { var c , d , e , f = this [ 0 ] ; { if ( arguments . length ) return e = ia . isFunction ( a ) , this . each ( function ( c ) { var f , g = ia ( this ) ; 1 === this . nodeType && ( f = e ? a . call ( this , c , g . val ( ) ) : a , null == f ? f = "" : "number" == typeof f ? f += "" : ia . isArray ( f ) && ( f = ia . map ( f , function ( a ) { return null == a ? "" : a + "" } ) ) , d = ia . valHooks [ this . type ] || ia . valHooks [ this . nodeName . toLowerCase ( ) ] , d && "set" in d && d . set ( this , f , "value" ) !== b || ( this . value = f ) ) } ) ; if ( f ) return d = ia . valHooks [ f . type ] || ia . valHooks [ f . nodeName . toLowerCase ( ) ] , d && "get" in d && ( c = d . get ( f , "value" ) ) !== b ? c : ( c = f . value , "string" == typeof c ? c . replace ( Da , "" ) : null == c ? "" : c ) } } } ) , ia . extend ( { valHooks : { option : { get : function ( a ) { var b = a . attributes . value ; return ! b || b . specified ? a . value : a . text } } , select : { get : function ( a ) { for ( var b , c , d = a . options , e = a . selectedIndex , f = "select-one" === a . type || e < 0 , g = f ? null : [ ] , h = f ? e + 1 : d . length , i = e < 0 ? h : f ? e : 0 ; i < h ; i ++ ) if ( c = d [ i ] , ( c . selected || i === e ) && ( ia . support . optDisabled ? ! c . disabled : null === c . getAttribute ( "disabled" ) ) && ( ! c . parentNode . disabled || ! ia . nodeName ( c . parentNode , "optgroup" ) ) ) { if ( b = ia ( c ) . val ( ) , f ) return b ; g . push ( b ) } return g } , set : function ( a , b ) { var c = ia . makeArray ( b ) ; return ia ( a ) . find ( "option" ) . each ( function ( ) { this . selected = ia . inArray ( ia ( this ) . val ( ) , c ) >= 0 } ) , c . length || ( a . selectedIndex = - 1 ) , c } } } , attr : function ( a , c , d ) { var e , f , g , h = a . nodeType ; if ( a && 3 !== h && 8 !== h && 2 !== h ) return typeof a . getAttribute === V ? ia . prop ( a , c , d ) : ( f = 1 !== h || ! ia . isXMLDoc ( a ) , f && ( c = c . toLowerCase ( ) , e = ia . attrHooks [ c ] || ( Ga . test ( c ) ? Ba : Aa ) ) , d === b ? e && f && "get" in e && null !== ( g = e . get ( a , c ) ) ? g : ( typeof a . getAttribute !== V && ( g = a . getAttribute ( c ) ) , null == g ? b : g ) : null !== d ? e && f && "set" in e && ( g = e . set ( a , d , c ) ) !== b ? g : ( a . setAttribute ( c , d + "" ) , d ) : void ia . removeAttr ( a , c ) ) } , removeAttr : function ( a , b ) { var c , d , e = 0 , f = b && b . match ( ka ) ; if ( f && 1 === a . nodeType ) for ( ; c = f [ e ++ ] ; ) d = ia . propFix [ c ] || c , Ga . test ( c ) ? ! Ia && Ha . test ( c ) ? a [ ia . camelCase ( "default-" + c ) ] = a [ d ] = ! 1 : a [ d ] = ! 1 : ia . attr ( a , c , "" ) , a . removeAttribute ( Ia ? c : d ) } , attrHooks : { type : { set : function ( a , b ) { if ( ! ia . support . radioValue && "radio" === b && ia . nodeName ( a , "input" ) ) { var c = a . value ; return a . setAttribute ( "type" , b ) , c && ( a . value = c ) , b } } } } , propFix : { tabindex : "tabIndex" , readonly : "readOnly" , "for" : "htmlFor" , "class" : "className" , maxlength : "maxLength" , cellspacing : "cellSpacing" , cellpadding : "cellPadding" , rowspan : "rowSpan" , colspan : "colSpan" , usemap : "useMap" , frameborder : "frameBorder" , contenteditable : "contentEditable" } , prop : function ( a , c , d ) { var e , f , g , h = a . nodeType ; if ( a && 3 !== h && 8 !== h && 2 !== h ) return g = 1 !== h || ! ia . isXMLDoc ( a ) , g && ( c = ia . propFix [ c ] || c , f = ia . propHooks [ c ] ) , d !== b ? f && "set" in f && ( e = f . set ( a , d , c ) ) !== b ? e : a [ c ] = d : f && "get" in f && null !== ( e = f . get ( a , c ) ) ? e : a [ c ] } , propHooks : { tabIndex : { get : function ( a ) { var c = a . getAttributeNode ( "tabindex" ) ; return c && c . specified ? parseInt ( c . value , 10 ) : Ea . test ( a . nodeName ) || Fa . test ( a . nodeName ) && a . href ? 0 : b } } } } ) , Ba = { get : function ( a , c ) { var d = ia . prop ( a , c ) , e = "boolean" == typeof d && a . getAttribute ( c ) , f = "boolean" == typeof d ? Ja && Ia ? null != e : Ha . test ( c ) ? a [ ia . camelCase ( "default-" + c ) ] : ! ! e : a . getAttributeNode ( c ) ; return f && f . value !== ! 1 ? c . toLowerCase ( ) : b } , set : function ( a , b , c ) { return b === ! 1 ? ia . removeAttr ( a , c ) : Ja && Ia || ! Ha . test ( c ) ? a . setAttribute ( ! Ia && ia . propFix [ c ] || c , c ) : a [ ia . camelCase ( "default-" + c ) ] = a [ c ] = ! 0 , c } } , Ja && Ia || ( ia . attrHooks . value = { get : function ( a , c ) { var d = a . getAttributeNode ( c ) ; return ia . nodeName ( a , "input" ) ? a . defaultValue : d && d . specified ? d . value : b } , set : function ( a , b , c ) { return ia . nodeName ( a , "input" ) ? void ( a . defaultValue = b ) : Aa && Aa . set ( a , b , c ) } } ) , Ia || ( Aa = ia . valHooks . button = { get : function ( a , c ) { var d = a . getAttributeNode ( c ) ; return d && ( "id" === c || "name" === c || "coords" === c ? "" !== d . value : d . specified ) ? d . value : b } , set : function ( a , c , d ) { var e = a . getAttributeNode ( d ) ; return e || a . setAttributeNode ( e = a . ownerDocument . createAttribute ( d ) ) , e . value = c += "" , "value" === d || c === a . getAttribute ( d ) ? c : b } } , ia . attrHooks . contenteditable = { get : Aa . get , set : function ( a , b , c ) { Aa . set ( a , "" !== b && b , c ) } } , ia . each ( [ "width" , "height" ] , function ( a , b ) { ia . attrHooks [ b ] = ia . extend ( ia . attrHooks [ b ] , { set : function ( a , c ) { if ( "" === c ) return a . setAttribute ( b , "auto" ) , c } } ) } ) ) , ia . support . hrefNormalize
} , header : function ( a ) { return ra . test ( a . nodeName ) } , input : function ( a ) { return qa . test ( a . nodeName ) } , button : function ( a ) { var b = a . nodeName . toLowerCase ( ) ; return "input" === b && "button" === a . type || "button" === b } , text : function ( a ) { var b ; return "input" === a . nodeName . toLowerCase ( ) && "text" === a . type && ( null == ( b = a . getAttribute ( "type" ) ) || b . toLowerCase ( ) === a . type ) } , first : k ( function ( ) { return [ 0 ] } ) , last : k ( function ( a , b ) { return [ b - 1 ] } ) , eq : k ( function ( a , b , c ) { return [ c < 0 ? c + b : c ] } ) , even : k ( function ( a , b ) { for ( var c = 0 ; c < b ; c += 2 ) a . push ( c ) ; return a } ) , odd : k ( function ( a , b ) { for ( var c = 1 ; c < b ; c += 2 ) a . push ( c ) ; return a } ) , lt : k ( function ( a , b , c ) { for ( var d = c < 0 ? c + b : c ; -- d >= 0 ; ) a . push ( d ) ; return a } ) , gt : k ( function ( a , b , c ) { for ( var d = c < 0 ? c + b : c ; ++ d < b ; ) a . push ( d ) ; return a } ) } } ; for ( w in { radio : ! 0 , checkbox : ! 0 , file : ! 0 , password : ! 0 , image : ! 0 } ) y . pseudos [ w ] = i ( w ) ; for ( w in { submit : ! 0 , reset : ! 0 } ) y . pseudos [ w ] = j ( w ) ; B = g . compile = function ( a , b ) { var c , d = [ ] , e = [ ] , f = U [ a + " " ] ; if ( ! f ) { for ( b || ( b = l ( a ) ) , c = b . length ; c -- ; ) f = r ( b [ c ] ) , f [ N ] ? d . push ( f ) : e . push ( f ) ; f = U ( a , s ( e , d ) ) } return f } , y . pseudos . nth = y . pseudos . eq , y . filters = v . prototype = y . pseudos , y . setFilters = new v , E ( ) , g . attr = ia . attr , ia . find = g , ia . expr = g . selectors , ia . expr [ ":" ] = ia . expr . pseudos , ia . unique = g . uniqueSort , ia . text = g . getText , ia . isXMLDoc = g . isXML , ia . contains = g . contains } ( a ) ; var Pa = /Until$/ , Qa = /^(?:parents|prev(?:Until|All))/ , Ra = /^.[^:#\[\.,]*$/ , Sa = ia . expr . match . needsContext , Ta = { children : ! 0 , contents : ! 0 , next : ! 0 , prev : ! 0 } ; ia . fn . extend ( { find : function ( a ) { var b , c , d , e = this . length ; if ( "string" != typeof a ) return d = this , this . pushStack ( ia ( a ) . filter ( function ( ) { for ( b = 0 ; b < e ; b ++ ) if ( ia . contains ( d [ b ] , this ) ) return ! 0 } ) ) ; for ( c = [ ] , b = 0 ; b < e ; b ++ ) ia . find ( a , this [ b ] , c ) ; return c = this . pushStack ( e > 1 ? ia . unique ( c ) : c ) , c . selector = ( this . selector ? this . selector + " " : "" ) + a , c } , has : function ( a ) { var b , c = ia ( a , this ) , d = c . length ; return this . filter ( function ( ) { for ( b = 0 ; b < d ; b ++ ) if ( ia . contains ( this , c [ b ] ) ) return ! 0 } ) } , not : function ( a ) { return this . pushStack ( l ( this , a , ! 1 ) ) } , filter : function ( a ) { return this . pushStack ( l ( this , a , ! 0 ) ) } , is : function ( a ) { return ! ! a && ( "string" == typeof a ? Sa . test ( a ) ? ia ( a , this . context ) . index ( this [ 0 ] ) >= 0 : ia . filter ( a , this ) . length > 0 : this . filter ( a ) . length > 0 ) } , closest : function ( a , b ) { for ( var c , d = 0 , e = this . length , f = [ ] , g = Sa . test ( a ) || "string" != typeof a ? ia ( a , b || this . context ) : 0 ; d < e ; d ++ ) for ( c = this [ d ] ; c && c . ownerDocument && c !== b && 11 !== c . nodeType ; ) { if ( g ? g . index ( c ) > - 1 : ia . find . matchesSelector ( c , a ) ) { f . push ( c ) ; break } c = c . parentNode } return this . pushStack ( f . length > 1 ? ia . unique ( f ) : f ) } , index : function ( a ) { return a ? "string" == typeof a ? ia . inArray ( this [ 0 ] , ia ( a ) ) : ia . inArray ( a . jquery ? a [ 0 ] : a , this ) : this [ 0 ] && this [ 0 ] . parentNode ? this . first ( ) . prevAll ( ) . length : - 1 } , add : function ( a , b ) { var c = "string" == typeof a ? ia ( a , b ) : ia . makeArray ( a && a . nodeType ? [ a ] : a ) , d = ia . merge ( this . get ( ) , c ) ; return this . pushStack ( ia . unique ( d ) ) } , addBack : function ( a ) { return this . add ( null == a ? this . prevObject : this . prevObject . filter ( a ) ) } } ) , ia . fn . andSelf = ia . fn . addBack , ia . each ( { parent : function ( a ) { var b = a . parentNode ; return b && 11 !== b . nodeType ? b : null } , parents : function ( a ) { return ia . dir ( a , "parentNode" ) } , parentsUntil : function ( a , b , c ) { return ia . dir ( a , "parentNode" , c ) } , next : function ( a ) { return k ( a , "nextSibling" ) } , prev : function ( a ) { return k ( a , "previousSibling" ) } , nextAll : function ( a ) { return ia . dir ( a , "nextSibling" ) } , prevAll : function ( a ) { return ia . dir ( a , "previousSibling" ) } , nextUntil : function ( a , b , c ) { return ia . dir ( a , "nextSibling" , c ) } , prevUntil : function ( a , b , c ) { return ia . dir ( a , "previousSibling" , c ) } , siblings : function ( a ) { return ia . sibling ( ( a . parentNode || { } ) . firstChild , a ) } , children : function ( a ) { return ia . sibling ( a . firstChild ) } , contents : function ( a ) { return ia . nodeName ( a , "iframe" ) ? a . contentDocument || a . contentWindow . document : ia . merge ( [ ] , a . childNodes ) } } , function ( a , b ) { ia . fn [ a ] = function ( c , d ) { var e = ia . map ( this , b , c ) ; return Pa . test ( a ) || ( d = c ) , d && "string" == typeof d && ( e = ia . filter ( d , e ) ) , e = this . length > 1 && ! Ta [ a ] ? ia . unique ( e ) : e , this . length > 1 && Qa . test ( a ) && ( e = e . reverse ( ) ) , this . pushStack ( e ) } } ) , ia . extend ( { filter : function ( a , b , c ) { return c && ( a = ":not(" + a + ")" ) , 1 === b . length ? ia . find . matchesSelector ( b [ 0 ] , a ) ? [ b [ 0 ] ] : [ ] : ia . find . matches ( a , b ) } , dir : function ( a , c , d ) { for ( var e = [ ] , f = a [ c ] ; f && 9 !== f . nodeType && ( d === b || 1 !== f . nodeType || ! ia ( f ) . is ( d ) ) ; ) 1 === f . nodeType && e . push ( f ) , f =
Math . max ( c . body [ "scroll" + a ] , f [ "scroll" + a ] , c . body [ "offset" + a ] , f [ "offset" + a ] , f [ "client" + a ] ) ) : e === b ? ia . css ( c , d , h ) : ia . style ( c , d , e , h ) } , c , g ? e : b , g , null ) } } ) } ) , a . jQuery = a . $ = ia , "function" == typeof define && define . amd && define . amd . jQuery && define ( "jquery" , [ ] , function ( ) { return ia } ) } ( window ) , function ( ) { function a ( a ) { function b ( b , c , d , e , f , g ) { for ( ; f >= 0 && f < g ; f += a ) { var h = e ? e [ f ] : f ; d = c ( d , b [ h ] , h , b ) } return d } return function ( c , d , e , f ) { d = s ( d , f , 4 ) ; var g = ! x ( c ) && r . keys ( c ) , h = ( g || c ) . length , i = a > 0 ? 0 : h - 1 ; return arguments . length < 3 && ( e = c [ g ? g [ i ] : i ] , i += a ) , b ( c , d , e , g , i , h ) } } function b ( a ) { return function ( b , c , d ) { c = t ( c , d ) ; for ( var e = null != b && b . length , f = a > 0 ? 0 : e - 1 ; f >= 0 && f < e ; f += a ) if ( c ( b [ f ] , f , b ) ) return f ; return - 1 } } function c ( a , b ) { var c = C . length , d = a . constructor , e = r . isFunction ( d ) && d . prototype || g , f = "constructor" ; for ( r . has ( a , f ) && ! r . contains ( b , f ) && b . push ( f ) ; c -- ; ) f = C [ c ] , f in a && a [ f ] !== e [ f ] && ! r . contains ( b , f ) && b . push ( f ) } var d = this , e = d . _ , f = Array . prototype , g = Object . prototype , h = Function . prototype , i = f . push , j = f . slice , k = g . toString , l = g . hasOwnProperty , m = Array . isArray , n = Object . keys , o = h . bind , p = Object . create , q = function ( ) { } , r = function ( a ) { return a instanceof r ? a : this instanceof r ? void ( this . _wrapped = a ) : new r ( a ) } ; "undefined" != typeof exports ? ( "undefined" != typeof module && module . exports && ( exports = module . exports = r ) , exports . _ = r ) : d . _ = r , r . VERSION = "1.8.2" ; var s = function ( a , b , c ) { if ( void 0 === b ) return a ; switch ( null == c ? 3 : c ) { case 1 : return function ( c ) { return a . call ( b , c ) } ; case 2 : return function ( c , d ) { return a . call ( b , c , d ) } ; case 3 : return function ( c , d , e ) { return a . call ( b , c , d , e ) } ; case 4 : return function ( c , d , e , f ) { return a . call ( b , c , d , e , f ) } } return function ( ) { return a . apply ( b , arguments ) } } , t = function ( a , b , c ) { return null == a ? r . identity : r . isFunction ( a ) ? s ( a , b , c ) : r . isObject ( a ) ? r . matcher ( a ) : r . property ( a ) } ; r . iteratee = function ( a , b ) { return t ( a , b , 1 / 0 ) } ; var u = function ( a , b ) { return function ( c ) { var d = arguments . length ; if ( d < 2 || null == c ) return c ; for ( var e = 1 ; e < d ; e ++ ) for ( var f = arguments [ e ] , g = a ( f ) , h = g . length , i = 0 ; i < h ; i ++ ) { var j = g [ i ] ; b && void 0 !== c [ j ] || ( c [ j ] = f [ j ] ) } return c } } , v = function ( a ) { if ( ! r . isObject ( a ) ) return { } ; if ( p ) return p ( a ) ; q . prototype = a ; var b = new q ; return q . prototype = null , b } , w = Math . pow ( 2 , 53 ) - 1 , x = function ( a ) { var b = null != a && a . length ; return "number" == typeof b && b >= 0 && b <= w } ; r . each = r . forEach = function ( a , b , c ) { b = s ( b , c ) ; var d , e ; if ( x ( a ) ) for ( d = 0 , e = a . length ; d < e ; d ++ ) b ( a [ d ] , d , a ) ; else { var f = r . keys ( a ) ; for ( d = 0 , e = f . length ; d < e ; d ++ ) b ( a [ f [ d ] ] , f [ d ] , a ) } return a } , r . map = r . collect = function ( a , b , c ) { b = t ( b , c ) ; for ( var d = ! x ( a ) && r . keys ( a ) , e = ( d || a ) . length , f = Array ( e ) , g = 0 ; g < e ; g ++ ) { var h = d ? d [ g ] : g ; f [ g ] = b ( a [ h ] , h , a ) } return f } , r . reduce = r . foldl = r . inject = a ( 1 ) , r . reduceRight = r . foldr = a ( - 1 ) , r . find = r . detect = function ( a , b , c ) { var d ; if ( d = x ( a ) ? r . findIndex ( a , b , c ) : r . findKey ( a , b , c ) , void 0 !== d && d !== - 1 ) return a [ d ] } , r . filter = r . select = function ( a , b , c ) { var d = [ ] ; return b = t ( b , c ) , r . each ( a , function ( a , c , e ) { b ( a , c , e ) && d . push ( a ) } ) , d } , r . reject = function ( a , b , c ) { return r . filter ( a , r . negate ( t ( b ) ) , c ) } , r . every = r . all = function ( a , b , c ) { b = t ( b , c ) ; for ( var d = ! x ( a ) && r . keys ( a ) , e = ( d || a ) . length , f = 0 ; f < e ; f ++ ) { var g = d ? d [ f ] : f ; if ( ! b ( a [ g ] , g , a ) ) return ! 1 } return ! 0 } , r . some = r . any = function ( a , b , c ) { b = t ( b , c ) ; for ( var d = ! x ( a ) && r . keys ( a ) , e = ( d || a ) . length , f = 0 ; f < e ; f ++ ) { var g = d ? d [ f ] : f ; if ( b ( a [ g ] , g , a ) ) return ! 0 } return ! 1 } , r . contains = r . includes = r . include = function ( a , b , c ) { return x ( a ) || ( a = r . values ( a ) ) , r . indexOf ( a , b , "number" == typeof c && c ) >= 0 } , r . invoke = function ( a , b ) { var c = j . call ( arguments , 2 ) , d = r . isFunction ( b ) ; return r . map ( a , function ( a ) { var e = d ? b : a [ b ] ; return null == e ? e : e . apply ( a , c ) } ) } , r . pluck = function ( a , b ) { return r . map ( a , r . property ( b ) ) } , r . where = function ( a , b ) { return r . filter ( a , r . matcher ( b ) ) } , r . findWhere = function ( a , b ) { return r . find ( a , r . matcher ( b ) ) } , r . max = function ( a , b , c ) { var d , e , f = - ( 1 / 0 ) , g = - ( 1 / 0 ) ; if ( null == b && null != a ) { a = x ( a ) ? a : r . values ( a ) ; for ( var h = 0 , i = a . length ; h < i ; h ++ ) d = a [ h ] , d > f && ( f = d ) } else b = t ( b , c ) , r . each ( a , function ( a , c , d ) { e = b ( a , c , d ) , ( e > g || e === - ( 1 / 0 ) && f === - ( 1 / 0 ) ) && ( f = a , g = e ) } ) ; return f } , r . min = function ( a , b , c ) { var d , e , f = 1 / 0 , g = 1 / 0 ; if ( null == b && null != a ) { a = x ( a ) ? a : r . values ( a ) ; for ( var h = 0 , i = a . length ; h < i ; h ++ ) d = a [ h ] , d < f && ( f = d ) } else b = t ( b , c ) , r . each ( a , function ( a , c , d ) { e = b ( a , c , d ) , ( e < g || e === 1 / 0 && f === 1 / 0 ) && ( f = a , g = e ) } ) ; return f } , r . shuffle = function ( a ) { for ( var b , c = x ( a ) ? a : r . values ( a
this . events } , on : function ( a , b ) { a = a . toLowerCase ( ) ; var c = this . _getEvents ( ) [ a ] ; $ . isArray ( c ) || ( c = [ ] , this . _getEvents ( ) [ a ] = c ) , c . push ( b ) } , once : function ( a , b ) { var c = function ( ) { b . apply ( this , arguments ) , this . un ( a , c ) } ; this . on ( a , c ) } , un : function ( a , b ) { if ( a = a . toLowerCase ( ) , null == b ) delete this . _getEvents ( ) [ a ] ; else { var c = this . _getEvents ( ) [ a ] ; if ( $ . isArray ( c ) ) { var d = [ ] ; $ . each ( c , function ( a , c ) { c != b && d . push ( c ) } ) , this . _getEvents ( ) [ a ] = d } } } , purgeListeners : function ( ) { this . events = [ ] } , fireEvent : function ( ) { var a = arguments [ 0 ] . toLowerCase ( ) , b = this . _getEvents ( ) [ a ] ; if ( BI . isArray ( b ) ) if ( BI . isArguments ( arguments [ 1 ] ) ) { for ( var c = 0 ; c < b . length ; c ++ ) if ( b [ c ] . apply ( this , arguments [ 1 ] ) === ! 1 ) return ! 1 } else for ( var d = Array . prototype . slice . call ( arguments , 1 ) , c = 0 ; c < b . length ; c ++ ) if ( b [ c ] . apply ( this , d ) === ! 1 ) return ! 1 ; return ! 0 } , destroy : function ( ) { this . destroyed && this . destroyed ( ) , this . purgeListeners ( ) } } ) , BI . Widget = BI . inherit ( BI . OB , { _defaultConfig : function ( ) { return BI . extend ( BI . Widget . superclass . _defaultConfig . apply ( this ) , { root : ! 1 , tagName : "div" , attributes : null , data : null , tag : null , disabled : ! 1 , invisible : ! 1 , invalid : ! 1 , baseCls : "" , extraCls : "" , cls : "" } ) } , beforeCreate : null , created : null , render : null , beforeMount : null , mounted : null , shouldUpdate : null , update : function ( ) { } , beforeDestroy : null , destroyed : null , _init : function ( ) { BI . Widget . superclass . _init . apply ( this , arguments ) , this . beforeCreate && this . beforeCreate ( ) , this . _initRoot ( ) , this . _initElementWidth ( ) , this . _initElementHeight ( ) , this . _initVisual ( ) , this . _initState ( ) , this . _initElement ( ) , this . _initEffects ( ) , this . created && this . created ( ) } , _initRoot : function ( ) { var a = this . options ; this . widgetName = a . widgetName || BI . uniqueId ( "widget" ) , this . _isRoot = a . root , BI . isWidget ( a . element ) ? ( a . element instanceof BI . Widget ? ( this . _parent = a . element , this . _parent . addWidget ( this . widgetName , this ) ) : this . _isRoot = ! 0 , this . element = this . options . element . element ) : a . element ? ( this . element = $ ( a . element ) , this . _isRoot = ! 0 ) : this . element = $ ( document . createElement ( a . tagName ) ) , this . element . _isWidget = ! 0 , ( a . baseCls || a . extraCls || a . cls ) && this . element . addClass ( ( a . baseCls || "" ) + " " + ( a . extraCls || "" ) + " " + ( a . cls || "" ) ) , a . attributes && this . element . attr ( a . attributes ) , a . data && this . element . data ( a . data ) , this . _children = { } } , _initElementWidth : function ( ) { var a = this . options ; BI . isWidthOrHeight ( a . width ) && this . element . css ( "width" , a . width ) } , _initElementHeight : function ( ) { var a = this . options ; BI . isWidthOrHeight ( a . height ) && this . element . css ( "height" , a . height ) } , _initVisual : function ( ) { var a = this . options ; a . invisible && this . element . css ( "display" , "none" ) } , _initEffects : function ( ) { var a = this . options ; ( a . disabled || a . invalid ) && ( this . options . disabled && this . setEnable ( ! 1 ) , this . options . invalid && this . setValid ( ! 1 ) ) } , _initState : function ( ) { this . _isMounted = ! 1 } , _initElement : function ( ) { var a = this , b = this . render && this . render ( ) ; BI . isPlainObject ( b ) && ( b = [ b ] ) , BI . isArray ( b ) && BI . each ( b , function ( b , c ) { BI . createWidget ( c , { element : a } ) } ) , this . _mount ( ) } , _setParent : function ( a ) { this . _parent = a } , _mount : function ( ) { var a = this , b = this . _isMounted ; ! b && this . isVisible ( ) && ( this . _isRoot === ! 0 ? b = ! 0 : this . _parent && this . _parent . _isMounted === ! 0 && ( b = ! 0 ) , b && ( this . beforeMount && this . beforeMount ( ) , this . _isMounted = ! 0 , this . _mountChildren && this . _mountChildren ( ) , BI . each ( this . _children , function ( b , c ) { ! a . isEnabled ( ) && c . _setEnable ( ! 1 ) , ! a . isValid ( ) && c . _setValid ( ! 1 ) , c . _mount && c . _mount ( ) } ) , this . mounted && this . mounted ( ) ) ) } , _mountChildren : null , isMounted : function ( ) { return this . _isMounted } , setWidth : function ( a ) { this . options . width = a , this . _initElementWidth ( ) } , setHeight : function ( a ) { this . options . height = a , this . _initElementHeight ( ) } , _setEnable : function ( a ) { a === ! 0 ? this . options . disabled = ! 1 : a === ! 1 && ( this . options . disabled = ! 0 ) , BI . each ( this . _children , function ( b , c ) { ! c . _manualSetEnable && c . _setEnable && c . _setEnable ( a ) } ) } , _setValid : function ( a ) { a === ! 0 ? this . options . invalid = ! 1 : a === ! 1 && ( this . options . invalid = ! 0 ) , BI . each ( this . _children , function ( b , c ) { ! c . _manualSetValid && c . _setValid && c . _setValid ( a ) } ) } , _setVisible : function ( a ) { a === ! 0 ? this . options . invisible = ! 1 : a === ! 1 && ( this . options . invisible = ! 0 ) } , setEnable : function ( a ) { this . _manualSetEnable = ! 0 , this . _setEnable ( a ) , a === ! 0 ? this . element . removeClass ( "base-disabled disabled" ) : a === ! 1 && this . element .
19969 : "DZ" , 19975 : "WM" , 19988 : "QJ" , 20048 : "YL" , 20056 : "SC" , 20060 : "NM" , 20094 : "QG" , 20127 : "QJ" , 20167 : "QC" , 20193 : "YG" , 20250 : "KH" , 20256 : "ZC" , 20282 : "SC" , 20285 : "QJG" , 20291 : "TD" , 20314 : "YD" , 20315 : "BF" , 20340 : "NE" , 20375 : "TD" , 20389 : "YJ" , 20391 : "CZ" , 20415 : "PB" , 20446 : "YS" , 20447 : "SQ" , 20504 : "TC" , 20608 : "KG" , 20854 : "QJ" , 20857 : "ZC" , 20911 : "PF" , 20985 : "AW" , 21032 : "PB" , 21048 : "XQ" , 21049 : "SC" , 21089 : "YS" , 21119 : "JC" , 21242 : "SB" , 21273 : "SC" , 21305 : "YP" , 21306 : "QO" , 21330 : "ZC" , 21333 : "SDC" , 21345 : "QK" , 21378 : "CA" , 21397 : "SC" , 21414 : "XS" , 21442 : "SC" , 21477 : "JG" , 21480 : "TD" , 21484 : "ZS" , 21494 : "YX" , 21505 : "YX" , 21512 : "HG" , 21523 : "XH" , 21537 : "PB" , 21542 : "PF" , 21549 : "KH" , 21571 : "E" , 21574 : "DA" , 21588 : "TD" , 21589 : "O" , 21618 : "ZC" , 21621 : "KHA" , 21632 : "ZJ" , 21654 : "KG" , 21679 : "LKG" , 21683 : "KH" , 21710 : "A" , 21719 : "YH" , 21734 : "WOE" , 21769 : "A" , 21780 : "WN" , 21804 : "XH" , 21834 : "A" , 21899 : "ZD" , 21903 : "RN" , 21908 : "WO" , 21939 : "ZC" , 21956 : "SA" , 21964 : "YA" , 21970 : "TD" , 22003 : "A" , 22031 : "JG" , 22040 : "XS" , 22060 : "ZC" , 22066 : "ZC" , 22079 : "MH" , 22129 : "XJ" , 22179 : "XA" , 22237 : "NJ" , 22244 : "TD" , 22280 : "JQ" , 22300 : "YH" , 22313 : "XW" , 22331 : "YQ" , 22343 : "YJ" , 22351 : "PH" , 22395 : "DC" , 22412 : "TD" , 22484 : "PB" , 22500 : "PB" , 22534 : "ZD" , 22549 : "DH" , 22561 : "PB" , 22612 : "TD" , 22771 : "KQ" , 22831 : "HB" , 22841 : "JG" , 22855 : "QJ" , 22865 : "XQ" , 23013 : "ML" , 23081 : "WM" , 23487 : "SX" , 23558 : "QJ" , 23561 : "YW" , 23586 : "YW" , 23614 : "YW" , 23615 : "SN" , 23631 : "PB" , 23646 : "ZS" , 23663 : "ZT" , 23673 : "YG" , 23762 : "TD" , 23769 : "ZS" , 23780 : "QJ" , 23884 : "QK" , 24055 : "XH" , 24113 : "DC" , 24162 : "ZC" , 24191 : "GA" , 24273 : "QJ" , 24324 : "NL" , 24377 : "TD" , 24378 : "QJ" , 24439 : "PF" , 24554 : "ZS" , 24683 : "TD" , 24694 : "WE" , 24733 : "LK" , 24925 : "TN" , 25094 : "ZG" , 25100 : "XQ" , 25103 : "XH" , 25153 : "PB" , 25170 : "PB" , 25179 : "KG" , 25203 : "PB" , 25240 : "ZS" , 25282 : "FB" , 25303 : "NA" , 25324 : "KG" , 25341 : "ZY" , 25373 : "WZ" , 25375 : "XJ" , 25384 : "A" , 25457 : "A" , 25528 : "SD" , 25530 : "SC" , 25552 : "TD" , 25774 : "ZC" , 25874 : "ZC" , 26044 : "YW" , 26080 : "WM" , 26292 : "PB" , 26333 : "PB" , 26355 : "ZY" , 26366 : "CZ" , 26397 : "ZC" , 26399 : "QJ" , 26415 : "ZS" , 26451 : "SB" , 26526 : "ZC" , 26552 : "JG" , 26561 : "TD" , 26588 : "JG" , 26597 : "CZ" , 26629 : "ZS" , 26638 : "YL" , 26646 : "XQ" , 26653 : "KG" , 26657 : "XJ" , 26727 : "HG" , 26894 : "ZC" , 26937 : "ZS" , 26946 : "ZC" , 26999 : "KJ" , 27099 : "KJ" , 27449 : "YQ" , 27481 : "XS" , 27542 : "ZS" , 27663 : "ZS" , 27748 : "TS" , 27784 : "SC" , 27788 : "ZD" , 27795 : "TD" , 27812 : "O" , 27850 : "PB" , 27852 : "MB" , 27895 : "SL" , 27898 : "PL" , 27973 : "QJ" , 27981 : "KH" , 27986 : "HX" , 27994 : "XJ" , 28044 : "YC" , 28065 : "WG" , 28177 : "SM" , 28267 : "QJ" , 28291 : "KH" , 28337 : "ZQ" , 28463 : "TL" , 28548 : "DC" , 28601 : "TD" , 28689 : "PB" , 28805 : "JG" , 28820 : "QG" , 28846 : "PB" , 28952 : "TD" , 28975 : "ZC" , 29100 : "A" , 29325 : "QJ" , 29575 : "SL" , 29602 : "FB" , 30010 : "TD" , 30044 : "CX" , 30058 : "PF" , 30091 : "YSP" , 30111 : "YN" , 30229 : "XJ" , 30427 : "SC" , 30465 : "SX" , 30631 : "YQ" , 30655 : "QJ" , 30684 : "QJG" , 30707 : "SD" , 30729 : "XH" , 30796 : "LG" , 30917 : "PB" , 31074 : "NM" , 31085 : "JZ" , 31109 : "SC" , 31181 : "ZC" , 31192 : "MLB" , 31293 : "JQ" , 31400 : "YX" , 31584 : "YJ" , 31896 : "ZN" , 31909 : "ZY" , 31995 : "XJ" , 32321 : "PF" , 32327 : "ZY" , 32418 : "HG" , 32420 : "XQ" , 32421 : "HG" , 32438 : "LG" , 32473 : "GJ" , 32488 : "TD" , 32521 : "QJ" , 32527 : "PB" , 32562 : "ZSQ" , 32564 : "JZ" , 32735 : "ZD" , 32793 : "PB" , 33071 : "PF" , 33098 : "XL" , 33100 : "YA" , 33152 : "PB" , 33261 : "CX" , 33324 : "BP" , 33333 : "TD" , 33406 : "YA" , 33426 : "WM" , 33432 : "PB" , 33445 : "JG" , 33486 : "ZN" , 33493 : "TS" , 33507 : "QJ" , 33540 : "QJ" , 33544 : "ZC" , 33564 : "XQ" , 33617 : "YT" , 33632 : "QJ" , 33636 : "XH" , 33637 : "YX" , 33694 : "WG" , 33705 : "PF" , 33728 : "YW" , 33882 : "SR" , 34067 : "WM" , 34074 : "YW" , 34121 : "QJ" , 34255 : "ZC" , 34259 : "XL" , 34425 : "JH" , 34430 : "XH" , 34485 : "KH" , 34503 : "YS" , 34532 : "HG" , 34552 : "XS" , 34558 : "YE" , 34593 : "ZL" , 34660 : "YQ" , 34892 : "XH" , 34928 : "SC" , 34999 : "QJ" , 35048 : "PB" , 35059 : "SC" , 35098 : "ZC" , 35203 : "TQ" , 35265 : "JX" , 35299 : "JX" , 35782 : "SZ" , 35828 : "YS" , 35830 : "E" , 35843 : "TD" , 35895 : "YG" , 35977 : "MH" , 36158 : "JG" , 36228 : "QJ" , 36426 : "XQ" , 36466 : "DC" , 36710 : "JC" , 36711 : "ZYG" , 36767 : "PB" , 36866 : "SK" , 36951 : "YW" , 37034 : "YX" , 37063 : "XH" , 37218 : "ZC" , 37325 : "ZC" , 38063 : "PB" , 38079 : "TD" , 38085 : "QY" , 38107 : "DC" , 38116 : "TD" , 38123 : "YD" , 38224 : "HG" , 38241 : "XTC" , 38271 : "ZC" , 38415 : "YE" , 38426 : "KH" , 38461 : "YD" , 38463 : "AE" , 38466 : "PB" , 38477 : "XJ" , 38518 : "YT" , 38551 : "WK" , 38585 : "ZC" , 38704 : "XS" , 38739 : "LJ" , 38761 : "GJ" , 38808 : "SQ" , 39048 : "JG" , 39049 : "XJ" , 39052 : "HG" , 39076 : "CZ" , 39271 : "XT" , 39534 : "TD" , 39552 : "TD" , 39584 : "PB" , 39647 : "SB" , 39730 : "LG" , 39748 : "TPB" , 40109 : "ZQ" , 40479 : "ND" , 40516 : "HG" , 40536 : "HG" , 40583 : "QJ" , 40765 : "YQ" , 40784 : "QJ" , 40840 : "YK" , 40863 : "QJG" } , c = function (
this . children . splice ( a , 1 ) } , removeAllChilds : function ( ) { this . children = [ ] } , addChild : function ( a , b ) { var c = null ; c = BI . isUndefined ( b ) ? this . children . length - 1 : b - 1 , a . setParent ( this ) , c >= 0 && ( this . getChild ( c ) && this . getChild ( c ) . setRight ( a ) , a . setLeft ( this . getChild ( c ) ) ) , BI . isUndefined ( b ) ? this . children . push ( a ) : this . children . splice ( b , 0 , a ) } , equals : function ( a ) { return this === a || this . id === a . id } , clear : function ( ) { this . parent = null , this . left = null , this . right = null , this . children = [ ] } } , BI . extend ( BI . Tree , { transformToArrayFormat : function ( a , b ) { if ( ! a ) return [ ] ; var c = [ ] ; if ( BI . isArray ( a ) ) for ( var d = 0 , e = a . length ; d < e ; d ++ ) { var f = BI . clone ( a [ d ] ) ; f . pId = null == f . pId ? b : f . pId , delete f . children , c . push ( f ) , a [ d ] . children && ( c = c . concat ( BI . Tree . transformToArrayFormat ( a [ d ] . children , f . id ) ) ) } else { var g = BI . clone ( a ) ; g . pId = null == g . pId ? b : g . pId , delete g . children , c . push ( g ) , a . children && ( c = c . concat ( BI . Tree . transformToArrayFormat ( a . children , g . id ) ) ) } return c } , arrayFormat : function ( a , b ) { if ( ! a ) return [ ] ; var c = [ ] ; if ( BI . isArray ( a ) ) for ( var d = 0 , e = a . length ; d < e ; d ++ ) { var f = a [ d ] ; f . pId = null == f . pId ? b : f . pId , c . push ( f ) , a [ d ] . children && ( c = c . concat ( BI . Tree . arrayFormat ( a [ d ] . children , f . id ) ) ) } else { var g = a ; g . pId = null == g . pId ? b : g . pId , c . push ( g ) , a . children && ( c = c . concat ( BI . Tree . arrayFormat ( a . children , g . id ) ) ) } return c } , transformToTreeFormat : function ( a ) { var b , c ; if ( ! a ) return [ ] ; if ( BI . isArray ( a ) ) { var d = [ ] , e = [ ] ; for ( b = 0 , c = a . length ; b < c ; b ++ ) { if ( BI . isNull ( a [ b ] . id ) ) return a ; e [ a [ b ] . id ] = BI . clone ( a [ b ] ) } for ( b = 0 , c = a . length ; b < c ; b ++ ) e [ a [ b ] . pId ] && a [ b ] . id !== a [ b ] . pId ? ( e [ a [ b ] . pId ] . children || ( e [ a [ b ] . pId ] . children = [ ] ) , e [ a [ b ] . pId ] . children . push ( e [ a [ b ] . id ] ) ) : d . push ( e [ a [ b ] . id ] ) , delete e [ a [ b ] . id ] . pId ; return d } return [ a ] } , treeFormat : function ( a ) { var b , c ; if ( ! a ) return [ ] ; if ( BI . isArray ( a ) ) { var d = [ ] , e = [ ] ; for ( b = 0 , c = a . length ; b < c ; b ++ ) { if ( BI . isNull ( a [ b ] . id ) ) return a ; e [ a [ b ] . id ] = a [ b ] } for ( b = 0 , c = a . length ; b < c ; b ++ ) e [ a [ b ] . pId ] && a [ b ] . id !== a [ b ] . pId ? ( e [ a [ b ] . pId ] . children || ( e [ a [ b ] . pId ] . children = [ ] ) , e [ a [ b ] . pId ] . children . push ( e [ a [ b ] . id ] ) ) : d . push ( e [ a [ b ] . id ] ) ; return d } return [ a ] } , traversal : function ( a , b ) { if ( ! BI . isNull ( a ) ) { var c = this ; BI . any ( a , function ( a , d ) { return b ( a , d ) === ! 1 || void c . traversal ( d . children , b ) } ) } } } ) } ( ) , BI . Vector = function ( a , b ) { this . x = a , this . y = b } , BI . Vector . prototype = { constructor : BI . Vector , cross : function ( a ) { return this . x * a . y - this . y * a . x } , length : function ( a ) { return Math . sqrt ( this . x * a . x + this . y * a . y ) } } , BI . Region = function ( a , b , c , d ) { this . x = a , this . y = b , this . w = c , this . h = d } , BI . Region . prototype = { constructor : BI . Region , isIntersects : function ( a ) { if ( this . isPointInside ( a . x , a . y ) || this . isPointInside ( a . x + a . w , a . y ) || this . isPointInside ( a . x , a . y + a . h ) || this . isPointInside ( a . x + a . w , a . y + a . h ) ) return ! 0 ; if ( a . isPointInside ( this . x , this . y ) || a . isPointInside ( this . x + this . w , this . y ) || a . isPointInside ( this . x , this . y + this . h ) || a . isPointInside ( this . x + this . w , this . y + this . h ) ) return ! 0 ; if ( null != a . x && null != a . y ) { var b = new BI . Vector ( this . w , this . h ) , c = new BI . Vector ( a . x - this . x , a . y - this . y ) , d = new BI . Vector ( c . x + a . w , c . y + a . h ) ; if ( b . cross ( c ) * b . cross ( d ) < 0 ) return ! 0 } return ! 1 } , isPointInside : function ( a , b ) { return null != this . x && null != this . y && ( a >= this . x && a <= this . x + this . w && b >= this . y && b <= this . y + this . h ) } , getPosition : function ( ) { var a = [ ] ; return a . push ( this . x + this . w / 2 ) , a . push ( this . y + this . h / 2 ) , a } } , BI . BehaviorFactory = { createBehavior : function ( a , b ) { var c ; switch ( a ) { case "highlight" : c = BI . HighlightBehavior ; break ; case "redmark" : c = BI . RedMarkBehavior } return new c ( b ) } } , BI . Behavior = BI . inherit ( BI . OB , { _defaultConfig : function ( ) { return BI . extend ( BI . Behavior . superclass . _defaultConfig . apply ( this , arguments ) , { rule : function ( ) { return ! 0 } } ) } , _init : function ( ) { BI . Behavior . superclass . _init . apply ( this , arguments ) } , doBehavior : function ( ) { } } ) , BI . Layout = BI . inherit ( BI . Widget , { props : function ( ) { return { scrollable : null , scrollx : ! 1 , scrolly : ! 1 , items : [ ] } } , render : function ( ) { this . _init4Margin ( ) , this . _init4Scroll ( ) } , _init4Margin : function ( ) { this . options . top && this . element . css ( "top" , this . options . top ) , this . options . left && this . element . css ( "left" , this . options . left ) , this . options . bottom && this . element . css ( "bottom" , this . options . bottom ) , this . options . right && this . element . css ( "right" , this . options . right ) } , _init4Scroll : function ( ) { switch ( this . options . scrollable ) { case ! 0 : this . element . css ( "overflow" , "auto" ) ; brea
if ( BI . each ( this . showingTips , function ( a , b ) { g . hide ( a ) } ) , this . showingTips = { } , this . has ( b ) || this . create ( b , c , d , f . container || e ) , ! f . belowMouse ) { var h = e . element . offset ( ) , i = e . element . bounds ( ) ; if ( 0 === i . height || 0 === i . width ) return ; var j = h . top + i . height + 5 } var k = this . get ( b ) ; k . setText ( c ) , k . element . css ( { left : "0px" , top : "0px" } ) , k . visible ( ) , k . element . height ( k . element [ 0 ] . scrollHeight ) , this . showingTips [ b ] = ! 0 ; var l = ( a . pageX || a . clientX ) + 15 , m = ( a . pageY || a . clientY ) + 15 ; return l + k . element . outerWidth ( ) > $ ( "body" ) . outerWidth ( ) && ( l -= k . element . outerWidth ( ) + 15 ) , m + k . element . outerHeight ( ) > $ ( "body" ) . outerHeight ( ) ? ( m -= k . element . outerHeight ( ) + 15 , ! f . belowMouse && ( m = Math . min ( m , h . top - k . element . outerHeight ( ) - 5 ) ) ) : ! f . belowMouse && ( m = Math . max ( m , j ) ) , k . element . css ( { left : l < 0 ? 0 : l + "px" , top : m < 0 ? 0 : m + "px" } ) , k . element . hover ( function ( ) { g . remove ( b ) , e . element . trigger ( "mouseleave.title" + e . getName ( ) ) } ) , this } , add : function ( a , b ) { return this . has ( a ) ? this : ( this . set ( a , b ) , this ) } , get : function ( a ) { return this . tooltipsManager [ a ] } , set : function ( a , b ) { this . tooltipsManager [ a ] = b } , has : function ( a ) { return null != this . tooltipsManager [ a ] } , remove : function ( a ) { return this . has ( a ) ? ( this . tooltipsManager [ a ] . destroy ( ) , delete this . tooltipsManager [ a ] , this ) : this } } ) , _ . extend ( BI , { Events : { KEYDOWN : "_KEYDOWN" , BACKSPACE : "_BACKSPACE" , SPACE : "_SPACE" , ENTER : "_ENTER" , CONFIRM : "_CONFIRM" , ERROR : "_ERROR" , PAUSE : "_PAUSE" , DESTROY : "_DESTROY" , UNMOUNT : "_UNMOUNT" , CLEAR : "_CLEAR" , ADD : "_ADD" , EDITING : "_EDITING" , EMPTY : "_EMPTY" , VIEW : "_VIEW" , RESIZE : "_RESIZE" , BEFOREEDIT : "_BEFOREEDIT" , AFTEREDIT : "_AFTEREDIT" , STARTEDIT : "_STARTEDIT" , STOPEDIT : "_STOPEDIT" , CHANGE : "_CHANGE" , EXPAND : "_EXPAND" , COLLAPSE : "_COLLAPSE" , CALLBACK : "_CALLBACK" , CLICK : "_CLICK" , STATECHANGE : "_STATECHANGE" , BEFORESTATECHANGE : "_BEFORESTATECHANGE" , INIT : "_INIT" , AFTERINIT : "_AFTERINIT" , SCROLL : "_SCROLL" , STARTLOAD : "_STARTLOAD" , AFTERLOAD : "_AFTERLOAD" , BS : "beforesubmit" , AS : "aftersubmit" , SC : "submitcomplete" , SF : "submitfailure" , SS : "submitsuccess" , BVW : "beforeverifywrite" , AVW : "afterverifywrite" , AV : "afterverify" , BW : "beforewrite" , AW : "afterwrite" , WS : "writesuccess" , WF : "writefailure" , BA : "beforeappend" , AA : "afterappend" , BD : "beforedelete" , AD : "beforedelete" , UC : "unloadcheck" , BTOPDF : "beforetopdf" , ATOPDF : "aftertopdf" , BTOEXCEL : "beforetoexcel" , ATOEXCEL : "aftertoexcel" , BTOWORD : "beforetoword" , ATOWORD : "aftertoword" , BTOIMAGE : "beforetoimage" , ATOIMAGE : "aftertoimage" , BTOHTML : "beforetohtml" , ATOHTML : "aftertohtml" , BIMEXCEL : "beforeimportexcel" , AIMEXCEL : "afterimportexcel" , BPDFPRINT : "beforepdfprint" , APDFPRINT : "afterpdfprint" , BFLASHPRINT : "beforeflashprint" , AFLASHPRINT : "afterflashprint" , BAPPLETPRINT : "beforeappletprint" , AAPPLETPRINT : "afterappletprint" , BSEVERPRINT : "beforeserverprint" , ASERVERPRINT : "afterserverprint" , BEMAIL : "beforeemail" , AEMAIL : "afteremail" } } ) , BI . extend ( jQuery . fn , { destroy : function ( ) { this . remove ( ) , BI . isIE ( ) === ! 0 && ( this [ 0 ] . outerHTML = "" ) } , _ _textKeywordMarked _ _ : function ( a , b , c ) { if ( ! BI . isKey ( b ) || ( a + "" ) . length > 100 ) return this . html ( BI . htmlEncode ( a ) ) ; b += "" , b = BI . toUpperCase ( b ) ; var d = ( a || "" ) + "" ; for ( c = ( c || BI . makeFirstPY ( a ) ) + "" , null != c && ( c = BI . toUpperCase ( c ) ) , this . empty ( ) ; ; ) { var e = BI . toUpperCase ( d ) . indexOf ( b ) , f = null ; if ( null != c && ( f = c . indexOf ( b ) , f >= 0 && ( f %= a . length ) ) , e >= 0 ) this . append ( d . substr ( 0 , e ) ) , this . append ( $ ( "<span>" ) . addClass ( "bi-keyword-red-mark" ) . html ( BI . htmlEncode ( d . substr ( e , b . length ) ) ) ) , d = d . substr ( e + b . length ) , null != c && ( c = c . substr ( e + b . length ) ) ; else { if ( ! ( null != f && f >= 0 && Math . floor ( f / a . length ) === Math . floor ( ( f + b . length - 1 ) / a . length ) ) ) { this . append ( d ) ; break } this . append ( d . substr ( 0 , f ) ) , this . append ( $ ( "<span>" ) . addClass ( "bi-keyword-red-mark" ) . html ( BI . htmlEncode ( d . substr ( f , b . length ) ) ) ) , null != c && ( c = c . substr ( f + b . length ) ) , d = d . substr ( f + b . length ) } } return this } , getDomHeight : function ( a ) { var b = $ ( this ) . clone ( ) ; b . appendTo ( $ ( a || "body" ) ) ; var c = b . height ( ) ; return b . remove ( ) , c } , hasVerticalScroll : function ( ) { return this . height ( ) > 0 && this [ 0 ] . clientWidth < this [ 0 ] . offsetWidth } , hasHorizonScroll : function ( ) { return this . width ( ) > 0 && this [ 0 ] . clientHeight < this [ 0 ] . offsetHeight } , getStyle : function ( a ) { var b = this [ 0 ] , c = void 0 ; if ( window . getComputedStyle && ( c = window . getComputedStyle ( b , null ) ) ) return c . getPropertyValue ( BI . hyphenate ( a ) ) ; if ( document . defaultView && document . defaultVie
function a ( a , b ) { for ( var c = - 1 ; ++ c < g ; ) b += a * h [ c ] , h [ c ] = b % f , b = Math . floor ( b / f ) } function b ( a ) { for ( var b = g , c = 0 ; -- b >= 0 ; ) c += h [ b ] , h [ b ] = Math . floor ( c / a ) , c = c % a * f } function c ( ) { for ( var a = g , b = "" ; -- a >= 0 ; ) if ( "" !== b || 0 === a || 0 !== h [ a ] ) { var c = String ( h [ a ] ) ; "" === b ? b = c : b += "0000000" . slice ( 0 , 7 - c . length ) + c } return b } function d ( a , b , c ) { return 0 === b ? c : b % 2 === 1 ? d ( a , b - 1 , c * a ) : d ( a * a , b / 2 , c ) } function e ( a ) { for ( var b = 0 ; a >= 4096 ; ) b += 12 , a /= 4096 ; for ( ; a >= 2 ; ) b += 1 , a /= 2 ; return b } var f , g , h ; f = 1e7 , g = 6 , h = [ 0 , 0 , 0 , 0 , 0 , 0 ] , Number . prototype . toFixed = function ( f ) { var g , h , i , j , k , l , m , n ; if ( g = Number ( f ) , g = g !== g ? 0 : Math . floor ( g ) , g < 0 || g > 20 ) throw new RangeError ( "Number.toFixed called with invalid number of decimals" ) ; if ( h = Number ( this ) , h !== h ) return "NaN" ; if ( h <= - 1e21 || h > 1e21 ) return String ( h ) ; if ( i = "" , h < 0 && ( i = "-" , h = - h ) , j = "0" , h > 1e-21 ) if ( k = e ( h * d ( 2 , 69 , 1 ) ) - 69 , l = k < 0 ? h * d ( 2 , - k , 1 ) : h / d ( 2 , k , 1 ) , l *= 4503599627370496 , k = 52 - k , k > 0 ) { for ( a ( 0 , l ) , m = g ; m >= 7 ; ) a ( 1e7 , 0 ) , m -= 7 ; for ( a ( d ( 10 , m , 1 ) , 0 ) , m = k - 1 ; m >= 23 ; ) b ( 1 << 23 ) , m -= 23 ; b ( 1 << m ) , a ( 1 , 1 ) , b ( 2 ) , j = c ( ) } else a ( 0 , l ) , a ( 1 << - k , 0 ) , j = c ( ) + "0.00000000000000000000" . slice ( 2 , 2 + g ) ; return g > 0 ? ( n = j . length , j = n <= g ? i + "0.0000000000000000000" . slice ( 0 , g - n + 2 ) + j : i + j . slice ( 0 , n - g ) + "." + j . slice ( n - g ) ) : j = i + j , j } } ( ) , Number . prototype . add = function ( a ) { return accAdd ( a , this ) } , Number . prototype . sub = function ( a ) { return accSub ( this , a ) } , Number . prototype . mul = function ( a ) { return accMul ( a , this ) } , Number . prototype . div = function ( a ) { return accDiv ( this , a ) } , _ . extend ( String . prototype , { startWith : function ( a ) { return ! ( null == a || "" == a || 0 === this . length || a . length > this . length ) && this . substr ( 0 , a . length ) == a } , endWith : function ( a ) { return ! ( null == a || "" == a || 0 === this . length || a . length > this . length ) && this . substring ( this . length - a . length ) == a } , getQuery : function ( a ) { var b = new RegExp ( "(^|&)" + a + "=([^&]*)(&|$)" ) , c = this . substr ( this . indexOf ( "?" ) + 1 ) . match ( b ) ; return c ? unescape ( c [ 2 ] ) : null } , appendQuery : function ( a ) { if ( ! a ) return this ; var b = this ; return b . indexOf ( "?" ) === - 1 && ( b += "?" ) , b . endWith ( "?" ) !== ! 1 || ( b += "&" ) , _ . each ( a , function ( a , c ) { "string" == typeof c && ( b += c + "=" + a + "&" ) } ) , b = b . substr ( 0 , b . length - 1 ) } , replaceAll : function ( a , b ) { return this . replace ( new RegExp ( a , "gm" ) , b ) } , perfectStart : function ( a ) { return this . startWith ( a ) ? this : a + this } , allIndexOf : function ( a ) { if ( "string" != typeof a ) return [ ] ; for ( var b = this , c = [ ] , d = 0 ; b . length > 0 ; ) { var e = b . indexOf ( a ) ; if ( e === - 1 ) break ; c . push ( d + e ) , b = b . substring ( e + a . length , b . length ) , d += e + a . length } return c } } ) , _ . extend ( String , { escape : function ( a ) { return a . replace ( /('|\\)/g , "\\$1" ) } , leftPad : function ( a , b , c ) { var d = String ( a ) ; for ( c || ( c = " " ) ; d . length < b ; ) d = c + d ; return d . toString ( ) } , format : function ( a ) { var b = Array . prototype . slice . call ( arguments , 1 ) ; return a . replace ( /\{(\d+)\}/g , function ( a , c ) { return b [ c ] } ) } } ) , BI . EventListener = { listen : function ( a , b , c ) { return a . addEventListener ? ( a . addEventListener ( b , c , ! 1 ) , { remove : function ( ) { a . removeEventListener ( b , c , ! 1 ) } } ) : a . attachEvent ? ( a . attachEvent ( "on" + b , c ) , { remove : function ( ) { a . detachEvent ( "on" + b , c ) } } ) : void 0 } , capture : function ( a , b , c ) { return a . addEventListener ? ( a . addEventListener ( b , c , ! 0 ) , { remove : function ( ) { a . removeEventListener ( b , c , ! 0 ) } } ) : { remove : BI . emptyFn } } , registerDefault : function ( ) { } } , ! function ( ) { var a = window . cancelAnimationFrame || window . webkitCancelAnimationFrame || window . mozCancelAnimationFrame || window . oCancelAnimationFrame || window . msCancelAnimationFrame || window . clearTimeout , b = window . requestAnimationFrame || window . webkitRequestAnimationFrame || window . mozRequestAnimationFrame || window . oRequestAnimationFrame || window . msRequestAnimationFrame || window . setTimeout ; BI . MouseMoveTracker = function ( a , b , c ) { this . _isDragging = ! 1 , this . _animationFrameID = null , this . _domNode = c , this . _onMove = a , this . _onMoveEnd = b , this . _onMouseMove = BI . bind ( this . _onMouseMove , this ) , this . _onMouseUp = BI . bind ( this . _onMouseUp , this ) , this . _didMouseMove = BI . bind ( this . _didMouseMove , this ) } , BI . MouseMoveTracker . prototype = { constructor : BI . MouseMoveTracker , captureMouseMoves : function ( a ) { this . _eventMoveToken || this . _eventUpToken || ( this . _eventMoveToken = BI . EventListener . listen ( this . _domNode , "mousemove" , this . _onMouseMove ) , this . _eventUpToken = BI . EventListener . listen ( this . _domNode , "mouseup" , this . _onMouseUp ) ) , this . _isDragging || ( this . _deltaX = 0 , this . _deltaY = 0 , this . _isDragging = ! 0 , this . _x = a . clientX , this . _y = a . cl
return BI . extend ( BI . AdaptiveLayout . superclass . props . apply ( this , arguments ) , { baseCls : "bi-adaptive-layout" , hgap : null , vgap : null , lgap : null , rgap : null , tgap : null , bgap : null } ) } , render : function ( ) { BI . AdaptiveLayout . superclass . render . apply ( this , arguments ) , this . populate ( this . options . items ) } , _addElement : function ( a , b ) { var c = this . options , d = BI . AdaptiveLayout . superclass . _addElement . apply ( this , arguments ) ; d . element . css ( { position : "relative" } ) ; var e = 0 , f = 0 , g = 0 , h = 0 ; return BI . isNotNull ( b . left ) && d . element . css ( { "margin-left" : b . left } ) , BI . isNotNull ( b . right ) && d . element . css ( { "margin-right" : b . right } ) , BI . isNotNull ( b . top ) && d . element . css ( { "margin-top" : b . top } ) , BI . isNotNull ( b . bottom ) && d . element . css ( { "margin-bottom" : b . bottom } ) , BI . isNotNull ( c . hgap ) && ( e += c . hgap , d . element . css ( { left : e } ) , f += c . hgap , d . element . css ( { right : f } ) ) , BI . isNotNull ( c . vgap ) && ( g += c . vgap , d . element . css ( { top : g } ) , h += c . vgap , d . element . css ( { bottom : h } ) ) , BI . isNotNull ( c . lgap ) && ( e += c . lgap , d . element . css ( { left : e } ) ) , BI . isNotNull ( c . rgap ) && ( f += c . rgap , d . element . css ( { right : f } ) ) , BI . isNotNull ( c . tgap ) && ( g += c . tgap , d . element . css ( { top : g } ) ) , BI . isNotNull ( c . bgap ) && ( h += c . bgap , d . element . css ( { bottom : h } ) ) , BI . isNotNull ( b . width ) && d . element . css ( { width : b . width } ) , BI . isNotNull ( b . height ) && d . element . css ( { height : b . height } ) , d } , resize : function ( ) { this . stroke ( this . options . items ) } , populate : function ( a ) { BI . AbsoluteLayout . superclass . populate . apply ( this , arguments ) , this . _mount ( ) } } ) , BI . shortcut ( "bi.adaptive" , BI . AdaptiveLayout ) , BI . BorderLayout = BI . inherit ( BI . Layout , { props : function ( ) { return BI . extend ( BI . BorderLayout . superclass . props . apply ( this , arguments ) , { baseCls : "bi-border-layout" , items : { } } ) } , render : function ( ) { BI . BorderLayout . superclass . render . apply ( this , arguments ) , this . populate ( this . options . items ) } , resize : function ( ) { this . stroke ( this . options . items ) } , addItem : function ( a ) { throw new Error ( "cannot be added" ) } , stroke : function ( a ) { var b , c = 0 , d = 0 , e = 0 , f = 0 ; if ( "north" in a && ( b = a . north , null != b ) ) { if ( b . el ) { if ( ! this . hasWidget ( this . getName ( ) + "north" ) ) { var g = BI . createWidget ( b ) ; this . addWidget ( this . getName ( ) + "north" , g ) } this . getWidgetByName ( this . getName ( ) + "north" ) . element . height ( b . height ) . css ( { position : "absolute" , top : b . top || 0 , left : b . left || 0 , right : b . right || 0 , bottom : "initial" } ) } c = ( b . height || 0 ) + ( b . top || 0 ) + ( b . bottom || 0 ) } if ( "south" in a && ( b = a . south , null != b ) ) { if ( b . el ) { if ( ! this . hasWidget ( this . getName ( ) + "south" ) ) { var g = BI . createWidget ( b ) ; this . addWidget ( this . getName ( ) + "south" , g ) } this . getWidgetByName ( this . getName ( ) + "south" ) . element . height ( b . height ) . css ( { position : "absolute" , bottom : b . bottom || 0 , left : b . left || 0 , right : b . right || 0 , top : "initial" } ) } d = ( b . height || 0 ) + ( b . top || 0 ) + ( b . bottom || 0 ) } if ( "west" in a && ( b = a . west , null != b ) ) { if ( b . el ) { if ( ! this . hasWidget ( this . getName ( ) + "west" ) ) { var g = BI . createWidget ( b ) ; this . addWidget ( this . getName ( ) + "west" , g ) } this . getWidgetByName ( this . getName ( ) + "west" ) . element . width ( b . width ) . css ( { position : "absolute" , left : b . left || 0 , top : c , bottom : d , right : "initial" } ) } e = ( b . width || 0 ) + ( b . left || 0 ) + ( b . right || 0 ) } if ( "east" in a && ( b = a . east , null != b ) ) { if ( b . el ) { if ( ! this . hasWidget ( this . getName ( ) + "east" ) ) { var g = BI . createWidget ( b ) ; this . addWidget ( this . getName ( ) + "east" , g ) } this . getWidgetByName ( this . getName ( ) + "east" ) . element . width ( b . width ) . css ( { position : "absolute" , right : b . right || 0 , top : c , bottom : d , left : "initial" } ) } f = ( b . width || 0 ) + ( b . left || 0 ) + ( b . right || 0 ) } if ( "center" in a && ( b = a . center , null != b ) ) { if ( ! this . hasWidget ( this . getName ( ) + "center" ) ) { var g = BI . createWidget ( b ) ; this . addWidget ( this . getName ( ) + "center" , g ) } this . getWidgetByName ( this . getName ( ) + "center" ) . element . css ( { position : "absolute" , top : c , bottom : d , left : e , right : f } ) } } , populate : function ( a ) { BI . BorderLayout . superclass . populate . apply ( this , arguments ) , this . _mount ( ) } } ) , BI . shortcut ( "bi.border" , BI . BorderLayout ) , BI . CardLayout = BI . inherit ( BI . Layout , { props : function ( ) { return BI . extend ( BI . CardLayout . superclass . props . apply ( this , arguments ) , { baseCls : "bi-card-layout" , items : [ ] } ) } , render : function ( ) { BI . CardLayout . superclass . render . apply ( this , arguments ) , this . populate ( this . options . items ) } , resize : function ( ) { } , stroke : function ( a ) { var b = this , c = this . options ; this . showIndex = void 0 , BI . each ( a , function ( a , d ) { if ( d ) { if ( b . hasWidget ( d . cardName ) ) var e = b . getWidgetByName ( d . cardName ) ; else { var e = BI . cr
this . _mount ( ) } } ) , BI . shortcut ( "bi.center" , BI . CenterLayout ) , BI . FloatCenterLayout = BI . inherit ( BI . Layout , { props : function ( ) { return BI . extend ( BI . FloatCenterLayout . superclass . props . apply ( this , arguments ) , { baseCls : "bi-float-center-layout" , hgap : 0 , vgap : 0 , lgap : 0 , rgap : 0 , tgap : 0 , bgap : 0 } ) } , render : function ( ) { BI . FloatCenterLayout . superclass . render . apply ( this , arguments ) , this . populate ( this . options . items ) } , resize : function ( ) { } , addItem : function ( a ) { throw new Error ( "cannot be added" ) } , stroke : function ( a ) { var b = this . options , c = [ ] , d = 100 / a . length ; BI . each ( a , function ( b ) { var e = BI . createWidget ( { type : "bi.default" } ) ; e . element . addClass ( "center-element " + ( 0 === b ? "first-element " : "" ) + ( b === a . length - 1 ? "last-element" : "" ) ) . css ( { width : d + "%" , height : "100%" } ) , c . push ( { el : e } ) } ) , BI . each ( a , function ( a , d ) { if ( d ) { var e = BI . createWidget ( d ) ; e . element . css ( { position : "absolute" , left : b . hgap + b . lgap , right : b . hgap + b . rgap , top : b . vgap + b . tgap , bottom : b . vgap + b . bgap , width : "auto" , height : "auto" } ) , c [ a ] . el . addItem ( e ) } } ) , BI . createWidget ( { type : "bi.left" , element : this , items : c } ) } , populate : function ( a ) { BI . FloatCenterLayout . superclass . populate . apply ( this , arguments ) , this . _mount ( ) } } ) , BI . shortcut ( "bi.float_center" , BI . FloatCenterLayout ) , BI . HorizontalCenterLayout = BI . inherit ( BI . Layout , { props : function ( ) { return BI . extend ( BI . HorizontalCenterLayout . superclass . props . apply ( this , arguments ) , { baseCls : "bi-horizontal-center-layout" , hgap : 0 , vgap : 0 , lgap : 0 , rgap : 0 , tgap : 0 , bgap : 0 } ) } , render : function ( ) { BI . HorizontalCenterLayout . superclass . render . apply ( this , arguments ) , this . populate ( this . options . items ) } , resize : function ( ) { } , addItem : function ( a ) { throw new Error ( "cannot be added" ) } , stroke : function ( a ) { var b = this . options , c = [ ] ; BI . each ( a , function ( b ) { c . push ( { column : b , row : 0 , el : BI . createWidget ( { type : "bi.default" , cls : "center-element " + ( 0 === b ? "first-element " : "" ) + ( b === a . length - 1 ? "last-element" : "" ) } ) } ) } ) , BI . each ( a , function ( a , d ) { if ( d ) { var e = BI . createWidget ( d ) ; e . element . css ( { position : "absolute" , left : b . hgap + b . lgap , right : b . hgap + b . rgap , top : b . vgap + b . tgap , bottom : b . vgap + b . bgap , width : "auto" } ) , c [ a ] . el . addItem ( e ) } } ) , BI . createWidget ( { type : "bi.grid" , element : this , columns : c . length , rows : 1 , items : c } ) } , populate : function ( a ) { BI . HorizontalCenterLayout . superclass . populate . apply ( this , arguments ) , this . _mount ( ) } } ) , BI . shortcut ( "bi.horizontal_center" , BI . HorizontalCenterLayout ) , BI . VerticalCenterLayout = BI . inherit ( BI . Layout , { props : function ( ) { return BI . extend ( BI . VerticalCenterLayout . superclass . props . apply ( this , arguments ) , { baseCls : "bi-vertical-center-layout" , hgap : 0 , vgap : 0 , lgap : 0 , rgap : 0 , tgap : 0 , bgap : 0 } ) } , render : function ( ) { BI . VerticalCenterLayout . superclass . render . apply ( this , arguments ) , this . populate ( this . options . items ) } , resize : function ( ) { } , addItem : function ( a ) { throw new Error ( "cannot be added" ) } , stroke : function ( a ) { var b = this . options , c = [ ] ; BI . each ( a , function ( b ) { c . push ( { column : 0 , row : b , el : BI . createWidget ( { type : "bi.default" , cls : "center-element " + ( 0 === b ? "first-element " : "" ) + ( b === a . length - 1 ? "last-element" : "" ) } ) } ) } ) , BI . each ( a , function ( a , d ) { if ( d ) { var e = BI . createWidget ( d ) ; e . element . css ( { position : "absolute" , left : b . hgap + b . lgap , right : b . hgap + b . rgap , top : b . vgap + b . tgap , bottom : b . vgap + b . bgap , height : "auto" } ) , c [ a ] . el . addItem ( e ) } } ) , BI . createWidget ( { type : "bi.grid" , element : this , columns : 1 , rows : c . length , items : c } ) } , populate : function ( a ) { BI . VerticalCenterLayout . superclass . populate . apply ( this , arguments ) , this . _mount ( ) } } ) , BI . shortcut ( "bi.vertical_center" , BI . VerticalCenterLayout ) , BI . Data = Data = { } , Data . Constant = BICst = { } , function ( ) { var a = { } ; Data . BufferPool = { put : function ( b , c ) { if ( BI . isNotNull ( a [ b ] ) ) throw new Error ( "Buffer Pool has the key already!" ) ; a [ b ] = c } , get : function ( b ) { return a [ b ] } } } ( ) , function ( ) { var a = { } ; Data . SharingPool = { _Shared : a , put : function ( b , c ) { a [ b ] = c } , cat : function ( ) { for ( var b = Array . prototype . slice . call ( arguments , 0 ) , c = a , d = 0 ; d < b . length ; d ++ ) c = c && c [ b [ d ] ] ; return c } , get : function ( ) { return BI . deepClone ( this . cat . apply ( this , arguments ) ) } , remove : function ( b ) { delete a [ b ] } } } ( ) , Data . Req = { } , Data . Source = BISource = { } , function ( a , b ) { "object" == typeof exports && "undefined" != typeof module ? b ( exports ) : "function" == typeof define && define . amd ? define ( [ "exports" ] , b ) : b ( a . Fix = a . Fix || { } ) } ( this , function ( a ) { "use strict" ; function b ( a , b , c ) { } function
var a = BI . BasicButton . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( a , { baseCls : ( a . baseCls || "" ) + " bi-basic-button" + ( a . invalid ? "" : " cursor-pointer" ) , value : "" , text : "" , stopEvent : ! 1 , stopPropagation : ! 1 , selected : ! 1 , once : ! 1 , forceSelected : ! 1 , forceNotSelected : ! 1 , disableSelected : ! 1 , level : "common" , shadow : ! 1 , isShadowShowingOnSelected : ! 1 , trigger : null , handler : BI . emptyFn } ) } , _init : function ( ) { BI . BasicButton . superclass . _init . apply ( this , arguments ) ; var a = this . options ; a . selected === ! 0 && BI . nextTick ( BI . bind ( function ( ) { this . setSelected ( a . selected ) } , this ) ) , BI . nextTick ( BI . bind ( this . bindEvent , this ) ) , a . shadow && this . _createShadow ( ) , this . element . addClass ( "button-" + a . level ) } , _createShadow : function ( ) { var a = this , b = this . options , c = function ( ) { a . $mask || ( a . $mask = BI . createWidget ( BI . isObject ( b . shadow ) ? b . shadow : { } , { type : "bi.layout" , cls : "bi-button-mask" } ) , a . $mask . invisible ( ) , BI . createWidget ( { type : "bi.absolute" , element : a , items : [ { el : a . $mask , left : 0 , right : 0 , top : 0 , bottom : 0 } ] } ) ) } ; this . element . mouseup ( function ( ) { a . _hover || b . isShadowShowingOnSelected || ( c ( ) , a . $mask . invisible ( ) ) } ) , this . element . on ( "mouseenter." + this . getName ( ) , function ( d ) { a . element . _ _isMouseInBounds _ _ ( d ) && ( ! a . isEnabled ( ) || a . _hover || ! b . isShadowShowingOnSelected && a . isSelected ( ) || ( c ( ) , a . $mask . visible ( ) ) ) } ) , this . element . on ( "mousemove." + this . getName ( ) , function ( b ) { a . element . _ _isMouseInBounds _ _ ( b ) || a . isEnabled ( ) && ! a . _hover && ( c ( ) , a . $mask . invisible ( ) ) } ) , this . element . on ( "mouseleave." + this . getName ( ) , function ( ) { a . isEnabled ( ) && ! a . _hover && ( c ( ) , a . $mask . invisible ( ) ) } ) } , bindEvent : function ( ) { function a ( a ) { d . stopEvent && a . stopEvent ( ) , d . stopPropagation && a . stopPropagation ( ) } function b ( b ) { a ( b ) , ! c . isEnabled ( ) || c . isOnce ( ) && c . isSelected ( ) || g . apply ( c , arguments ) } var c = this , d = this . options , e = this . handle ( ) ; if ( e ) { e = e . element ; var f = ( d . trigger || "" ) . split ( "," ) ; BI . each ( f , function ( f , g ) { switch ( g ) { case "mouseup" : var h = ! 1 ; e . mousedown ( function ( ) { h = ! 0 } ) , e . mouseup ( function ( c ) { h === ! 0 && b ( c ) , h = ! 1 , a ( c ) } ) ; break ; case "mousedown" : var h = ! 1 , i = ! 1 ; e . mousedown ( function ( d ) { $ ( document ) . bind ( "mouseup." + c . getName ( ) , function ( a ) { ! BI . DOM . isExist ( c ) || e . _ _isMouseInBounds _ _ ( a ) || h !== ! 0 || i || c . _trigger ( ) , h = ! 1 , $ ( document ) . unbind ( "mouseup." + c . getName ( ) ) } ) , h !== ! 0 && ( c . isSelected ( ) ? i = ! 0 : b ( d ) , h = ! 0 , a ( d ) ) } ) , e . mouseup ( function ( a ) { BI . DOM . isExist ( c ) && h === ! 0 && i === ! 0 && b ( a ) , h = ! 1 , i = ! 1 , $ ( document ) . unbind ( "mouseup." + c . getName ( ) ) } ) ; break ; case "dblclick" : e . dblclick ( b ) ; break ; case "lclick" : var j , h = ! 1 ; e . mousedown ( function ( b ) { $ ( document ) . bind ( "mouseup." + c . getName ( ) , function ( a ) { j && clearInterval ( j ) , j = null , h = ! 1 , $ ( document ) . unbind ( "mouseup." + c . getName ( ) ) } ) , h !== ! 0 && ( ! c . isEnabled ( ) || c . isOnce ( ) && c . isSelected ( ) || ( j = setInterval ( function ( ) { c . isEnabled ( ) && c . doClick ( ) } , 100 ) , h = ! 0 , a ( b ) ) ) } ) ; break ; default : ( d . stopEvent || d . stopPropagation ) && e . mousedown ( function ( b ) { a ( b ) } ) , e . click ( b ) } } ) ; var g = BI . debounce ( this . _doClick , BI . EVENT _RESPONSE _TIME , ! 0 ) } } , _trigger : function ( ) { var a = this . options ; if ( this . isEnabled ( ) && ( this . isDisableSelected ( ) || ( this . isForceSelected ( ) ? this . setSelected ( ! 0 ) : this . isForceNotSelected ( ) ? this . setSelected ( ! 1 ) : this . setSelected ( ! this . isSelected ( ) ) ) , this . isValid ( ) ) ) { a . handler . call ( this , this . getValue ( ) , this ) ; var b = this . getValue ( ) ; this . fireEvent ( BI . Controller . EVENT _CHANGE , BI . Events . CLICK , b , this ) , this . fireEvent ( BI . BasicButton . EVENT _CHANGE , b , this ) , a . action && BI . Actions . runAction ( a . action , a ) } } , _doClick : function ( a ) { this . isValid ( ) && this . beforeClick ( a ) , this . _trigger ( ) , this . isValid ( ) && this . doClick ( a ) } , beforeClick : function ( ) { } , doClick : function ( ) { } , handle : function ( ) { return this } , hover : function ( ) { this . _hover = ! 0 , this . handle ( ) . element . addClass ( "hover" ) , this . options . shadow && this . $mask && this . $mask . setVisible ( ! 0 ) } , dishover : function ( ) { this . _hover = ! 1 , this . handle ( ) . element . removeClass ( "hover" ) , this . options . shadow && this . $mask && this . $mask . setVisible ( ! 1 ) } , setSelected : function ( a ) { var b = this . options ; b . selected = a , a ? this . handle ( ) . element . addClass ( "active" ) : this . handle ( ) . element . removeClass ( "active" ) , b . shadow && ! b . isShadowShowingOnSelected && this . $mask && this . $mask . setVisible ( ! 1 ) } , isSelected : function ( ) { return this . options . selected } , isOnce : function ( ) { return this . options . once } , isForceSelected : function ( ) { return this . options . for
cls : ( b . items [ q . index ] . cls || "" ) + " container-cell" + ( 0 === q . y ? " first-row" : "" ) + ( 0 === q . x ? " first-col" : "" ) , _left : q . x , _top : q . y } ) ) , j . push ( { el : z , left : q . x , top : q . y , _left : q . x , _top : q . y , _width : q . width , _height : q . height } ) ) ; for ( var B = 0 | s [ q . y ] , C = 0 | s [ q . y + q . height ] , D = B ; D <= C ; D ++ ) { var E = n [ D ] ; x ( t , E ) , y ( u , E ) , t [ E ] = Math . min ( t [ E ] , q . x ) , u [ E ] = Math . max ( u [ E ] , q . x + q . width ) } for ( var F = 0 | r [ q . x ] , G = 0 | r [ q . x + q . width ] , D = F ; D <= G ; D ++ ) { var H = m [ D ] ; x ( v , H ) , y ( w , H ) , v [ H ] = Math . min ( v [ H ] , q . y ) , w [ H ] = Math . max ( w [ H ] , q . y + q . height ) } k [ q . index ] = [ q . index , o ] , l [ o ] = z } var I = { } , J = { } , K = [ ] ; BI . each ( k , function ( b , c ) { a . renderedKeys [ b ] ? I [ b ] = c : J [ b ] = c } ) , BI . each ( this . renderedKeys , function ( a , b ) { I [ a ] || J [ a ] || K . push ( b [ 1 ] ) } ) , BI . each ( K , function ( b , c ) { a . renderedCells [ c ] . el . _destroy ( ) } ) ; var L = [ ] ; BI . each ( J , function ( a , b ) { L . push ( j [ b [ 1 ] ] ) } ) , this . container . addItems ( L ) , this . container . _children = l , this . container . attr ( "items" , j ) , this . renderedCells = j , this . renderedKeys = k ; var M = BI . min ( t ) , N = BI . max ( u ) , O = BI . max ( v ) , P = BI . min ( w ) ; this . renderRange = { minX : M , minY : O , maxX : N , maxY : P } } } , _getMaxScrollLeft : function ( ) { return Math . max ( 0 , this . _width - this . options . width + ( this . options . overflowX ? BI . DOM . getScrollWidth ( ) : 0 ) ) } , _getMaxScrollTop : function ( ) { return Math . max ( 0 , this . _height - this . options . height + ( this . options . overflowY ? BI . DOM . getScrollWidth ( ) : 0 ) ) } , _populate : function ( a ) { var b = this . options ; if ( this . _reRange ( ) , a && a !== this . options . items && ( this . options . items = a , this . _calculateSizeAndPositionData ( ) ) , b . items . length > 0 ) { this . container . setWidth ( this . _width ) , this . container . setHeight ( this . _height ) , this . _calculateChildrenToRender ( ) ; try { this . element . scrollTop ( b . scrollTop ) , this . element . scrollLeft ( b . scrollLeft ) } catch ( c ) { } } } , setScrollLeft : function ( a ) { this . options . scrollLeft !== a && ( this . _scrollLock = ! 0 , this . options . scrollLeft = BI . clamp ( a || 0 , 0 , this . _getMaxScrollLeft ( ) ) , this . _debounceRelease ( ) , this . _calculateChildrenToRender ( ) , this . element . scrollLeft ( this . options . scrollLeft ) ) } , setScrollTop : function ( a ) { this . options . scrollTop !== a && ( this . _scrollLock = ! 0 , this . options . scrollTop = BI . clamp ( a || 0 , 0 , this . _getMaxScrollTop ( ) ) , this . _debounceRelease ( ) , this . _calculateChildrenToRender ( ) , this . element . scrollTop ( this . options . scrollTop ) ) } , setOverflowX : function ( a ) { var b = this ; this . options . overflowX !== ! ! a && ( this . options . overflowX = ! ! a , BI . nextTick ( function ( ) { b . element . css ( { overflowX : a ? "auto" : "hidden" } ) } ) ) } , setOverflowY : function ( a ) { var b = this ; this . options . overflowY !== ! ! a && ( this . options . overflowY = ! ! a , BI . nextTick ( function ( ) { b . element . css ( { overflowY : a ? "auto" : "hidden" } ) } ) ) } , getScrollLeft : function ( ) { return this . options . scrollLeft } , getScrollTop : function ( ) { return this . options . scrollTop } , getMaxScrollLeft : function ( ) { return this . _getMaxScrollLeft ( ) } , getMaxScrollTop : function ( ) { return this . _getMaxScrollTop ( ) } , _reRange : function ( ) { this . renderRange = { } } , _clearChildren : function ( ) { this . container . _children = { } , this . container . attr ( "items" , [ ] ) } , restore : function ( ) { BI . each ( this . renderedCells , function ( a , b ) { b . el . _destroy ( ) } ) , this . _clearChildren ( ) , this . renderedCells = [ ] , this . renderedKeys = [ ] , this . renderRange = { } , this . _scrollLock = ! 1 } , populate : function ( a ) { a && a !== this . options . items && this . restore ( ) , this . _populate ( a ) } } ) , BI . CollectionView . EVENT _SCROLL = "EVENT_SCROLL" , BI . shortcut ( "bi.collection_view" , BI . CollectionView ) , BI . Combo = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { var a = BI . Combo . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( a , { baseCls : ( a . baseCls || "" ) + " bi-combo" , trigger : "click" , toggle : ! 0 , direction : "bottom" , container : null , isDefaultInit : ! 1 , destroyWhenHide : ! 1 , isNeedAdjustHeight : ! 0 , isNeedAdjustWidth : ! 0 , stopEvent : ! 1 , stopPropagation : ! 1 , adjustLength : 0 , adjustXOffset : 0 , adjustYOffset : 0 , hideChecker : BI . emptyFn , offsetStyle : "left" , el : { } , popup : { } , comboClass : "bi-combo-popup" , hoverClass : "bi-combo-hover" } ) } , _init : function ( ) { BI . Combo . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . _initCombo ( ) , this . _initPullDownAction ( ) , this . combo . on ( BI . Controller . EVENT _CHANGE , function ( b , c , d ) { a . isEnabled ( ) && a . isValid ( ) && ( b === BI . Events . EXPAND && a . _popupView ( ) , b === BI . Events . COLLAPSE && a . _hideView ( ) , b === BI . Events . EXPAND && ( a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) , a . fireEvent ( BI . Combo . EVENT _EXPAND ) ) , b === BI . Eve
this . _isSearching === ! 0 && ( this . popupView && this . popupView . stopSearch && this . popupView . stopSearch ( ) , this . fireEvent ( BI . Searcher . EVENT _STOP ) ) , this . _isSearching = ! 1 } , _search : function ( ) { var a = this , b = this . options , c = this . editor . getValue ( ) ; if ( "" !== c && ! this . _stop ) { if ( b . isAutoSearch ) { var d = b . adapter && ( b . adapter . getItems && b . adapter . getItems ( ) || b . adapter . attr ( "items" ) ) || [ ] , e = BI . Func . getSearchResult ( d , c ) , f = e . matched , g = e . finded ; return this . popupView . populate ( g , f , c ) , b . isAutoSync && b . adapter && b . adapter . getValue && this . popupView . setValue ( b . adapter . getValue ( ) ) , void a . fireEvent ( BI . Searcher . EVENT _SEARCHING ) } this . popupView . loading && this . popupView . loading ( ) , b . onSearch ( { times : 1 , keyword : c , selectedValues : b . adapter && b . adapter . getValue ( ) } , function ( d , e ) { if ( ! a . _stop ) { var f = [ ] . slice . call ( arguments ) ; f . length > 0 && f . push ( c ) , BI . Maskers . show ( a . getName ( ) ) , a . popupView . populate . apply ( a . popupView , f ) , b . isAutoSync && b . adapter && b . adapter . getValue && a . popupView . setValue ( b . adapter . getValue ( ) ) , a . popupView . loaded && a . popupView . loaded ( ) , a . fireEvent ( BI . Searcher . EVENT _SEARCHING ) } } ) } } , setAdapter : function ( a ) { this . options . adapter = a , BI . Maskers . remove ( this . getName ( ) ) } , doSearch : function ( ) { this . isSearching ( ) && this . _search ( ) } , stopSearch : function ( ) { this . _stopSearch ( ) ; try { this . editor . blur ( ) } catch ( a ) { if ( ! this . editor . blur ) throw new Error ( "editor没有实现blur方法" ) } finally { this . editor . setValue ( "" ) } } , isSearching : function ( ) { return this . _isSearching } , isViewVisible : function ( ) { return this . editor . isEnabled ( ) && BI . Maskers . isVisible ( this . getName ( ) ) } , getView : function ( ) { return this . popupView } , hasMatched : function ( ) { return this . _assertPopupView ( ) , this . popupView . hasMatched ( ) } , adjustHeight : function ( ) { BI . Maskers . has ( this . getName ( ) ) && BI . Maskers . get ( this . getName ( ) ) . isVisible ( ) && BI . Maskers . show ( this . getName ( ) ) } , adjustView : function ( ) { this . isViewVisible ( ) && BI . Maskers . show ( this . getName ( ) ) } , setValue : function ( a ) { this . _assertPopupView ( ) , this . popupView && this . popupView . setValue ( a ) } , getKeyword : function ( ) { return this . editor . getValue ( ) } , getKeywords : function ( ) { return this . editor . getKeywords ( ) } , getValue : function ( ) { var a = this . options ; return a . isAutoSync && a . adapter && a . adapter . getValue ? a . adapter . getValue ( ) : this . isSearching ( ) ? this . popupView . getValue ( ) : a . adapter && a . adapter . getValue ? a . adapter . getValue ( ) : this . popupView . getValue ( ) } , populate : function ( a , b , c ) { var d = this . options ; this . _assertPopupView ( ) , this . popupView . populate . apply ( this . popupView , arguments ) , d . isAutoSync && d . adapter && d . adapter . getValue && this . popupView . setValue ( d . adapter . getValue ( ) ) } , empty : function ( ) { this . popupView && this . popupView . empty ( ) } , destroy : function ( ) { BI . Maskers . remove ( this . getName ( ) ) , BI . Searcher . superclass . destroy . apply ( this , arguments ) } } ) , BI . Searcher . EVENT _CHANGE = "EVENT_CHANGE" , BI . Searcher . EVENT _START = "EVENT_START" , BI . Searcher . EVENT _STOP = "EVENT_STOP" , BI . Searcher . EVENT _PAUSE = "EVENT_PAUSE" , BI . Searcher . EVENT _SEARCHING = "EVENT_SEARCHING" , BI . Searcher . EVENT _AFTER _INIT = "EVENT_AFTER_INIT" , BI . shortcut ( "bi.searcher" , BI . Searcher ) , BI . Switcher = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . Switcher . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-switcher" , direction : BI . Direction . Top , trigger : "click" , toggle : ! 0 , el : { } , popup : { } , adapter : null , masker : { } , switcherClass : "bi-switcher-popup" , hoverClass : "bi-switcher-hover" } ) } , _init : function ( ) { BI . Switcher . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . _initSwitcher ( ) , this . _initPullDownAction ( ) , this . switcher . on ( BI . Controller . EVENT _CHANGE , function ( b , c , d ) { a . isEnabled ( ) && a . isValid ( ) && ( b === BI . Events . EXPAND && a . _popupView ( ) , b === BI . Events . COLLAPSE && a . _hideView ( ) , b === BI . Events . EXPAND && ( a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) , a . fireEvent ( BI . Switcher . EVENT _EXPAND ) ) , b === BI . Events . COLLAPSE && ( a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) , a . isViewVisible ( ) && a . fireEvent ( BI . Switcher . EVENT _COLLAPSE ) ) , b === BI . Events . CLICK && a . fireEvent ( BI . Switcher . EVENT _TRIGGER _CHANGE , c , d ) ) } ) , this . element . hover ( function ( ) { a . isEnabled ( ) && a . switcher . isEnabled ( ) && a . element . addClass ( b . hoverClass ) } , function ( ) { a . isEnabled ( ) && a . switcher . isEnabled ( ) && a . element . removeClass ( b . hoverClass ) } ) , BI . createWidget ( { type : " b
for ( h || 1 != b . childNodes . length || 3 != b . firstChild . nodeType || ( h = b . firstChild , c && ( c = h . nodeValue . length ) ) ; i . parentNode != e ; ) i = i . parentNode ; var j = a . measure , k = j . maps , l = d ( h , i , c ) ; if ( l ) return ha ( l , f ) ; for ( var m = i . nextSibling , n = h ? h . nodeValue . length - c : 0 ; m ; m = m . nextSibling ) { if ( l = d ( m , m . firstChild , 0 ) ) return ha ( Ff ( l . line , l . ch - n ) , f ) ; n += m . textContent . length } for ( var o = i . previousSibling , n = c ; o ; o = o . previousSibling ) { if ( l = d ( o , o . firstChild , - 1 ) ) return ha ( Ff ( l . line , l . ch + n ) , f ) ; n += m . textContent . length } } function ka ( a , b , c , d , e ) { function f ( a ) { return function ( b ) { return b . id == a } } function g ( b ) { if ( 1 == b . nodeType ) { var c = b . getAttribute ( "cm-text" ) ; if ( null != c ) return "" == c && ( c = b . textContent . replace ( /\u200b/g , "" ) ) , void ( h += c ) ; var j , k = b . getAttribute ( "cm-marker" ) ; if ( k ) { var l = a . findMarks ( Ff ( d , 0 ) , Ff ( e + 1 , 0 ) , f ( + k ) ) ; return void ( l . length && ( j = l [ 0 ] . find ( ) ) && ( h += Wd ( a . doc , j . from , j . to ) . join ( "\n" ) ) ) } if ( "false" == b . getAttribute ( "contenteditable" ) ) return ; for ( var m = 0 ; m < b . childNodes . length ; m ++ ) g ( b . childNodes [ m ] ) ; /^(pre|div|p)$/i . test ( b . nodeName ) && ( i = ! 0 ) } else if ( 3 == b . nodeType ) { var n = b . nodeValue ; if ( ! n ) return ; i && ( h += "\n" , i = ! 1 ) , h += n } } for ( var h = "" , i = ! 1 ; g ( b ) , b != c ; ) b = b . nextSibling ; return h } function la ( a , b ) { this . ranges = a , this . primIndex = b } function ma ( a , b ) { this . anchor = a , this . head = b } function na ( a , b ) { var c = a [ b ] ; a . sort ( function ( a , b ) { return Gf ( a . from ( ) , b . from ( ) ) } ) , b = De ( a , c ) ; for ( var d = 1 ; d < a . length ; d ++ ) { var e = a [ d ] , f = a [ d - 1 ] ; if ( Gf ( f . to ( ) , e . from ( ) ) >= 0 ) { var g = X ( f . from ( ) , e . from ( ) ) , h = W ( f . to ( ) , e . to ( ) ) , i = f . empty ( ) ? e . from ( ) == e . head : f . from ( ) == f . head ; d <= b && -- b , a . splice ( -- d , 2 , new ma ( i ? h : g , i ? g : h ) ) } } return new la ( a , b ) } function oa ( a , b ) { return new la ( [ new ma ( a , b || a ) ] , 0 ) } function pa ( a , b ) { return Math . max ( a . first , Math . min ( b , a . first + a . size - 1 ) ) } function qa ( a , b ) { if ( b . line < a . first ) return Ff ( a . first , 0 ) ; var c = a . first + a . size - 1 ; return b . line > c ? Ff ( c , Vd ( a , c ) . text . length ) : ra ( b , Vd ( a , b . line ) . text . length ) } function ra ( a , b ) { var c = a . ch ; return null == c || c > b ? Ff ( a . line , b ) : c < 0 ? Ff ( a . line , 0 ) : a } function sa ( a , b ) { return b >= a . first && b < a . first + a . size } function ta ( a , b ) { for ( var c = [ ] , d = 0 ; d < b . length ; d ++ ) c [ d ] = qa ( a , b [ d ] ) ; return c } function ua ( a , b , c , d ) { if ( a . cm && a . cm . display . shift || a . extend ) { var e = b . anchor ; if ( d ) { var f = Gf ( c , e ) < 0 ; f != Gf ( d , e ) < 0 ? ( e = c , c = d ) : f != Gf ( c , d ) < 0 && ( c = d ) } return new ma ( e , c ) } return new ma ( d || c , c ) } function va ( a , b , c , d ) { Ba ( a , new la ( [ ua ( a , a . sel . primary ( ) , b , c ) ] , 0 ) , d ) } function wa ( a , b , c ) { for ( var d = [ ] , e = 0 ; e < a . sel . ranges . length ; e ++ ) d [ e ] = ua ( a , a . sel . ranges [ e ] , b [ e ] , null ) ; var f = na ( d , a . sel . primIndex ) ; Ba ( a , f , c ) } function xa ( a , b , c , d ) { var e = a . sel . ranges . slice ( 0 ) ; e [ b ] = c , Ba ( a , na ( e , a . sel . primIndex ) , d ) } function ya ( a , b , c , d ) { Ba ( a , oa ( b , c ) , d ) } function za ( a , b ) { var c = { ranges : b . ranges , update : function ( b ) { this . ranges = [ ] ; for ( var c = 0 ; c < b . length ; c ++ ) this . ranges [ c ] = new ma ( qa ( a , b [ c ] . anchor ) , qa ( a , b [ c ] . head ) ) } } ; return zg ( a , "beforeSelectionChange" , a , c ) , a . cm && zg ( a . cm , "beforeSelectionChange" , a . cm , c ) , c . ranges != b . ranges ? na ( c . ranges , c . ranges . length - 1 ) : b } function Aa ( a , b , c ) { var d = a . history . done , e = Ce ( d ) ; e && e . ranges ? ( d [ d . length - 1 ] = b , Ca ( a , b , c ) ) : Ba ( a , b , c ) } function Ba ( a , b , c ) { Ca ( a , b , c ) , he ( a , a . sel , a . cm ? a . cm . curOp . id : NaN , c ) } function Ca ( a , b , c ) { ( xe ( a , "beforeSelectionChange" ) || a . cm && xe ( a . cm , "beforeSelectionChange" ) ) && ( b = za ( a , b ) ) ; var d = c && c . bias || ( Gf ( b . primary ( ) . head , a . sel . primary ( ) . head ) < 0 ? - 1 : 1 ) ; Da ( a , Fa ( a , b , d , ! 0 ) ) , c && c . scroll === ! 1 || ! a . cm || Ic ( a . cm ) } function Da ( a , b ) { b . equals ( a . sel ) || ( a . sel = b , a . cm && ( a . cm . curOp . updateInput = a . cm . curOp . selectionChanged = ! 0 , we ( a . cm ) ) , te ( a , "cursorActivity" , a ) ) } function Ea ( a ) { Da ( a , Fa ( a , a . sel , null , ! 1 ) , Dg ) } function Fa ( a , b , c , d ) { for ( var e , f = 0 ; f < b . ranges . length ; f ++ ) { var g = b . ranges [ f ] , h = Ga ( a , g . anchor , c , d ) , i = Ga ( a , g . head , c , d ) ; ( e || h != g . anchor || i != g . head ) && ( e || ( e = b . ranges . slice ( 0 , f ) ) , e [ f ] = new ma ( h , i ) ) } return e ? na ( e , b . primIndex ) : b } function Ga ( a , b , c , d ) { var e = ! 1 , f = b , g = c || 1 ; a . cantEdit = ! 1 ; a : for ( ; ; ) { var h = Vd ( a , f . line ) ; if ( h . markedSpans ) for ( var i = 0 ; i < h . markedSpans . length ; ++ i ) { var j = h . markedSpans [ i ] , k = j . marker ; if ( ( null == j . from || ( k . inclusiveLeft ? j . from <= f . ch : j . from < f . ch ) ) && ( null == j . to || ( k . inclusiveRight ? j . to >= f . ch : j . to > f . ch ) ) ) { if ( d && ( zg ( k , "beforeCursorEnter" ) , k . explicitlyCleared ) ) { if ( h . markedSpans ) { -- i ; continue } break } if ( ! k . atomic ) continue ; var l = k . find ( g < 0 ? - 1 : 1 ) ; if ( 0 == Gf ( l , f ) && ( l . ch += g , l . ch < 0 ? l = l . li
D ( a , { top : l , bottom : m } ) } Pf < 20 && ( null == f . wheelStartX ? ( f . wheelStartX = g . scrollLeft , f . wheelStartY = g . scrollTop , f . wheelDX = d , f . wheelDY = e , setTimeout ( function ( ) { if ( null != f . wheelStartX ) { var a = g . scrollLeft - f . wheelStartX , b = g . scrollTop - f . wheelStartY , c = b && f . wheelDY && b / f . wheelDY || a && f . wheelDX && a / f . wheelDX ; f . wheelStartX = f . wheelStartY = null , c && ( Qf = ( Qf * Pf + c ) / ( Pf + 1 ) , ++ Pf ) } } , 200 ) ) : ( f . wheelDX += d , f . wheelDY += e ) ) } } function dc ( a , b , c ) { if ( "string" == typeof b && ( b = dg [ b ] , ! b ) ) return ! 1 ; a . display . input . ensurePolled ( ) ; var d = a . display . shift , e = ! 1 ; try { Z ( a ) && ( a . state . suppressEdits = ! 0 ) , c && ( a . display . shift = ! 1 ) , e = b ( a ) != Cg } finally { a . display . shift = d , a . state . suppressEdits = ! 1 } return e } function ec ( a , b , c ) { for ( var d = 0 ; d < a . state . keyMaps . length ; d ++ ) { var e = fg ( b , a . state . keyMaps [ d ] , c , a ) ; if ( e ) return e } return a . options . extraKeys && fg ( b , a . options . extraKeys , c , a ) || fg ( b , a . options . keyMap , c , a ) } function fc ( a , b , c , d ) { var e = a . state . keySeq ; if ( e ) { if ( gg ( b ) ) return "handled" ; Sf . set ( 50 , function ( ) { a . state . keySeq == e && ( a . state . keySeq = null , a . display . input . reset ( ) ) } ) , b = e + " " + b } var f = ec ( a , b , d ) ; return "multi" == f && ( a . state . keySeq = b ) , "handled" == f && te ( a , "keyHandled" , a , b , c ) , "handled" != f && "multi" != f || ( ug ( c ) , La ( a ) ) , e && ! f && /\'$/ . test ( b ) ? ( ug ( c ) , ! 0 ) : ! ! f } function gc ( a , b ) { var c = hg ( b , ! 0 ) ; return ! ! c && ( b . shiftKey && ! a . state . keySeq ? fc ( a , "Shift-" + c , b , function ( b ) { return dc ( a , b , ! 0 ) } ) || fc ( a , c , b , function ( b ) { if ( "string" == typeof b ? /^go[A-Z]/ . test ( b ) : b . motion ) return dc ( a , b ) } ) : fc ( a , c , b , function ( b ) { return dc ( a , b ) } ) ) } function hc ( a , b , c ) { return fc ( a , "'" + c + "'" , b , function ( b ) { return dc ( a , b , ! 0 ) } ) } function ic ( a ) { var b = this ; if ( b . curOp . focus = Pe ( ) , ! ve ( b , a ) ) { nf && of < 11 && 27 == a . keyCode && ( a . returnValue = ! 1 ) ; var c = a . keyCode ; b . display . shift = 16 == c || a . shiftKey ; var d = gc ( b , a ) ; sf && ( Tf = d ? c : null , ! d && 88 == c && ! Wg && ( yf ? a . metaKey : a . ctrlKey ) && b . replaceSelection ( "" , null , "cut" ) ) , 18 != c || /\bCodeMirror-crosshair\b/ . test ( b . display . lineDiv . className ) || jc ( b ) } } function jc ( a ) { function b ( a ) { 18 != a . keyCode && a . altKey || ( Qg ( c , "CodeMirror-crosshair" ) , yg ( document , "keyup" , b ) , yg ( document , "mouseover" , b ) ) } var c = a . display . lineDiv ; Rg ( c , "CodeMirror-crosshair" ) , xg ( document , "keyup" , b ) , xg ( document , "mouseover" , b ) } function kc ( a ) { 16 == a . keyCode && ( this . doc . sel . shift = ! 1 ) , ve ( this , a ) } function lc ( a ) { var b = this ; if ( ! ( Sb ( b . display , a ) || ve ( b , a ) || a . ctrlKey && ! a . altKey || yf && a . metaKey ) ) { var c = a . keyCode , d = a . charCode ; if ( sf && c == Tf ) return Tf = null , void ug ( a ) ; if ( ! sf || a . which && ! ( a . which < 10 ) || ! gc ( b , a ) ) { var e = String . fromCharCode ( null == d ? c : d ) ; hc ( b , a , e ) || b . display . input . onKeyPress ( a ) } } } function mc ( a ) { a . state . delayingBlurEvent = ! 0 , setTimeout ( function ( ) { a . state . delayingBlurEvent && ( a . state . delayingBlurEvent = ! 1 , oc ( a ) ) } , 100 ) } function nc ( a ) { a . state . delayingBlurEvent && ( a . state . delayingBlurEvent = ! 1 ) , "nocursor" != a . options . readOnly && ( a . state . focused || ( zg ( a , "focus" , a ) , a . state . focused = ! 0 , Rg ( a . display . wrapper , "CodeMirror-focused" ) , a . curOp || a . display . selForContextMenu == a . doc . sel || ( a . display . input . reset ( ) , pf && setTimeout ( function ( ) { a . display . input . reset ( ! 0 ) } , 20 ) ) , a . display . input . receivedFocus ( ) ) , La ( a ) ) } function oc ( a ) { a . state . delayingBlurEvent || ( a . state . focused && ( zg ( a , "blur" , a ) , a . state . focused = ! 1 , Qg ( a . display . wrapper , "CodeMirror-focused" ) ) , clearInterval ( a . display . blinker ) , setTimeout ( function ( ) { a . state . focused || ( a . display . shift = ! 1 ) } , 150 ) ) } function pc ( a , b ) { Sb ( a . display , b ) || qc ( a , b ) || a . display . input . onContextMenu ( b ) } function qc ( a , b ) { return ! ! xe ( a , "gutterContextMenu" ) && Yb ( a , b , "gutterContextMenu" , ! 1 , zg ) } function rc ( a , b ) { if ( Gf ( a , b . from ) < 0 ) return a ; if ( Gf ( a , b . to ) <= 0 ) return Uf ( b ) ; var c = a . line + b . text . length - ( b . to . line - b . from . line ) - 1 , d = a . ch ; return a . line == b . to . line && ( d += Uf ( b ) . ch - b . to . ch ) , Ff ( c , d ) } function sc ( a , b ) { for ( var c = [ ] , d = 0 ; d < a . sel . ranges . length ; d ++ ) { var e = a . sel . ranges [ d ] ; c . push ( new ma ( rc ( e . anchor , b ) , rc ( e . head , b ) ) ) } return na ( c , a . sel . primIndex ) } function tc ( a , b , c ) { return a . line == b . line ? Ff ( c . line , a . ch - b . ch + c . ch ) : Ff ( c . line + ( a . line - b . line ) , a . ch ) } function uc ( a , b , c ) { for ( var d = [ ] , e = Ff ( a . first , 0 ) , f = e , g = 0 ; g < b . length ; g ++ ) { var h = b [ g ] , i = tc ( h . from , e , f ) , j = tc ( Uf ( h ) , e , f ) ; if ( e = h . to , f = j , "around" == c ) { var k = a . sel . ranges [ g ] , l = Gf ( k . head , k . anchor ) < 0 ; d [ g ] = new ma ( l ? j : i , l ? i : j ) } else d [ g ] = new ma ( i , i ) } return new la ( d , a . sel . primIndex ) } function vc ( a , b , c ) { var d = { canceled : ! 1 ,
var e = b [ "spans_" + a . id ] , f = 0 ; a . iter ( Math . max ( a . first , c ) , Math . min ( a . first + a . size , d ) , function ( c ) { c . markedSpans && ( ( e || ( e = b [ "spans_" + a . id ] = { } ) ) [ f ] = c . markedSpans ) , ++ f } ) } function ke ( a ) { if ( ! a ) return null ; for ( var b , c = 0 ; c < a . length ; ++ c ) a [ c ] . marker . explicitlyCleared ? b || ( b = a . slice ( 0 , c ) ) : b && b . push ( a [ c ] ) ; return b ? b . length ? b : null : a } function le ( a , b ) { var c = b [ "spans_" + a . id ] ; if ( ! c ) return null ; for ( var d = 0 , e = [ ] ; d < b . text . length ; ++ d ) e . push ( ke ( c [ d ] ) ) ; return e } function me ( a , b , c ) { for ( var d = 0 , e = [ ] ; d < a . length ; ++ d ) { var f = a [ d ] ; if ( f . ranges ) e . push ( c ? la . prototype . deepCopy . call ( f ) : f ) ; else { var g = f . changes , h = [ ] ; e . push ( { changes : h } ) ; for ( var i = 0 ; i < g . length ; ++ i ) { var j , k = g [ i ] ; if ( h . push ( { from : k . from , to : k . to , text : k . text } ) , b ) for ( var l in k ) ( j = l . match ( /^spans_(\d+)$/ ) ) && De ( b , Number ( j [ 1 ] ) ) > - 1 && ( Ce ( h ) [ l ] = k [ l ] , delete k [ l ] ) } } } return e } function ne ( a , b , c , d ) { c < a . line ? a . line += d : b < a . line && ( a . line = b , a . ch = 0 ) } function oe ( a , b , c , d ) { for ( var e = 0 ; e < a . length ; ++ e ) { var f = a [ e ] , g = ! 0 ; if ( f . ranges ) { f . copied || ( f = a [ e ] = f . deepCopy ( ) , f . copied = ! 0 ) ; for ( var h = 0 ; h < f . ranges . length ; h ++ ) ne ( f . ranges [ h ] . anchor , b , c , d ) , ne ( f . ranges [ h ] . head , b , c , d ) } else { for ( var h = 0 ; h < f . changes . length ; ++ h ) { var i = f . changes [ h ] ; if ( c < i . from . line ) i . from = Ff ( i . from . line + d , i . from . ch ) , i . to = Ff ( i . to . line + d , i . to . ch ) ; else if ( b <= i . to . line ) { g = ! 1 ; break } } g || ( a . splice ( 0 , e + 1 ) , e = 0 ) } } } function pe ( a , b ) { var c = b . from . line , d = b . to . line , e = b . text . length - ( d - c ) - 1 ; oe ( a . done , c , d , e ) , oe ( a . undone , c , d , e ) } function qe ( a ) { return null != a . defaultPrevented ? a . defaultPrevented : 0 == a . returnValue } function re ( a ) { return a . target || a . srcElement } function se ( a ) { var b = a . which ; return null == b && ( 1 & a . button ? b = 1 : 2 & a . button ? b = 3 : 4 & a . button && ( b = 2 ) ) , yf && a . ctrlKey && 1 == b && ( b = 3 ) , b } function te ( a , b ) { function c ( a ) { return function ( ) { a . apply ( null , f ) } } var d = a . _handlers && a . _handlers [ b ] ; if ( d ) { var e , f = Array . prototype . slice . call ( arguments , 2 ) ; Mf ? e = Mf . delayedCallbacks : Ag ? e = Ag : ( e = Ag = [ ] , setTimeout ( ue , 0 ) ) ; for ( var g = 0 ; g < d . length ; ++ g ) e . push ( c ( d [ g ] ) ) } } function ue ( ) { var a = Ag ; Ag = null ; for ( var b = 0 ; b < a . length ; ++ b ) a [ b ] ( ) } function ve ( a , b , c ) { return "string" == typeof b && ( b = { type : b , preventDefault : function ( ) { this . defaultPrevented = ! 0 } } ) , zg ( a , c || b . type , a , b ) , qe ( b ) || b . codemirrorIgnore } function we ( a ) { var b = a . _handlers && a . _handlers . cursorActivity ; if ( b ) for ( var c = a . curOp . cursorActivityHandlers || ( a . curOp . cursorActivityHandlers = [ ] ) , d = 0 ; d < b . length ; ++ d ) De ( c , b [ d ] ) == - 1 && c . push ( b [ d ] ) } function xe ( a , b ) { var c = a . _handlers && a . _handlers [ b ] ; return c && c . length > 0 } function ye ( a ) { a . prototype . on = function ( a , b ) { xg ( this , a , b ) } , a . prototype . off = function ( a , b ) { yg ( this , a , b ) } } function ze ( ) { this . id = null } function Ae ( a , b , c ) { for ( var d = 0 , e = 0 ; ; ) { var f = a . indexOf ( "\t" , d ) ; f == - 1 && ( f = a . length ) ; var g = f - d ; if ( f == a . length || e + g >= b ) return d + Math . min ( g , b - e ) ; if ( e += f - d , e += c - e % c , d = f + 1 , e >= b ) return d } } function Be ( a ) { for ( ; Hg . length <= a ; ) Hg . push ( Ce ( Hg ) + " " ) ; return Hg [ a ] } function Ce ( a ) { return a [ a . length - 1 ] } function De ( a , b ) { for ( var c = 0 ; c < a . length ; ++ c ) if ( a [ c ] == b ) return c ; return - 1 } function Ee ( a , b ) { for ( var c = [ ] , d = 0 ; d < a . length ; d ++ ) c [ d ] = b ( a [ d ] , d ) ; return c } function Fe ( ) { } function Ge ( a , b ) { var c ; return Object . create ? c = Object . create ( a ) : ( Fe . prototype = a , c = new Fe ) , b && He ( b , c ) , c } function He ( a , b , c ) { b || ( b = { } ) ; for ( var d in a ) ! a . hasOwnProperty ( d ) || c === ! 1 && b . hasOwnProperty ( d ) || ( b [ d ] = a [ d ] ) ; return b } function Ie ( a ) { var b = Array . prototype . slice . call ( arguments , 1 ) ; return function ( ) { return a . apply ( null , b ) } } function Je ( a , b ) { return b ? ! ! ( b . source . indexOf ( "\\w" ) > - 1 && Lg ( a ) ) || b . test ( a ) : Lg ( a ) } function Ke ( a ) { for ( var b in a ) if ( a . hasOwnProperty ( b ) && a [ b ] ) return ! 1 ; return ! 0 } function Le ( a ) { return a . charCodeAt ( 0 ) >= 768 && Mg . test ( a ) } function Me ( a , b , c , d ) { var e = document . createElement ( a ) ; if ( c && ( e . className = c ) , d && ( e . style . cssText = d ) , "string" == typeof b ) e . appendChild ( document . createTextNode ( b ) ) ; else if ( b ) for ( var f = 0 ; f < b . length ; ++ f ) e . appendChild ( b [ f ] ) ; return e } function Ne ( a ) { for ( var b = a . childNodes . length ; b > 0 ; -- b ) a . removeChild ( a . firstChild ) ; return a } function Oe ( a , b ) { return Ne ( a ) . appendChild ( b ) } function Pe ( ) { return document . activeElement } function Qe ( a ) { return new RegExp ( "(^|\\s)" + a + "(?:$|\\s)\\s*" ) } function Re ( a , b ) { for ( var c = a . split ( " " ) , d = 0 ; d < c . length ; d ++ ) c [ d ] && ! Qe ( c [ d ] ) . test ( b ) && ( b += " " + c [ d ] ) ; return b } function Se ( a ) { if ( document . body . get
} , ! 0 ) , Pc ( "electricChars" , ! 0 ) , Pc ( "inputStyle" , xf ? "contenteditable" : "textarea" , function ( ) { throw new Error ( "inputStyle can not (yet) be changed in a running editor" ) } , ! 0 ) , Pc ( "rtlMoveVisually" , ! zf ) , Pc ( "wholeLineUpdateBefore" , ! 0 ) , Pc ( "theme" , "default" , function ( a ) { h ( a ) , i ( a ) } , ! 0 ) , Pc ( "keyMap" , "default" , function ( b , c , d ) { var e = Rc ( c ) , f = d != a . Init && Rc ( d ) ; f && f . detach && f . detach ( b , e ) , e . attach && e . attach ( b , f || null ) } ) , Pc ( "extraKeys" , null ) , Pc ( "lineWrapping" , ! 1 , e , ! 0 ) , Pc ( "gutters" , [ ] , function ( a ) { n ( a . options ) , i ( a ) } , ! 0 ) , Pc ( "fixedGutter" , ! 0 , function ( a , b ) { a . display . gutters . style . left = b ? y ( a . display ) + "px" : "0" , a . refresh ( ) } , ! 0 ) , Pc ( "coverGutterNextToScrollbar" , ! 1 , function ( a ) { s ( a ) } , ! 0 ) , Pc ( "scrollbarStyle" , "native" , function ( a ) { r ( a ) , s ( a ) , a . display . scrollbars . setScrollTop ( a . doc . scrollTop ) , a . display . scrollbars . setScrollLeft ( a . doc . scrollLeft ) } , ! 0 ) , Pc ( "lineNumbers" , ! 1 , function ( a ) { n ( a . options ) , i ( a ) } , ! 0 ) , Pc ( "firstLineNumber" , 1 , i , ! 0 ) , Pc ( "lineNumberFormatter" , function ( a ) { return a } , i , ! 0 ) , Pc ( "showCursorWhenSelecting" , ! 1 , Ha , ! 0 ) , Pc ( "resetSelectionOnContextMenu" , ! 0 ) , Pc ( "lineWiseCopyCut" , ! 0 ) , Pc ( "readOnly" , ! 1 , function ( a , b ) { "nocursor" == b ? ( oc ( a ) , a . display . input . blur ( ) , a . display . disabled = ! 0 ) : ( a . display . disabled = ! 1 , b || a . display . input . reset ( ) ) } ) , Pc ( "disableInput" , ! 1 , function ( a , b ) { b || a . display . input . reset ( ) } , ! 0 ) , Pc ( "dragDrop" , ! 0 , Qb ) , Pc ( "cursorBlinkRate" , 530 ) , Pc ( "cursorScrollMargin" , 0 ) , Pc ( "cursorHeight" , 1 , Ha , ! 0 ) , Pc ( "singleCursorHeightPerLine" , ! 0 , Ha , ! 0 ) , Pc ( "workTime" , 100 ) , Pc ( "workDelay" , 100 ) , Pc ( "flattenSpans" , ! 0 , d , ! 0 ) , Pc ( "addModeClass" , ! 1 , d , ! 0 ) , Pc ( "pollInterval" , 100 ) , Pc ( "undoDepth" , 200 , function ( a , b ) { a . doc . history . undoDepth = b } ) , Pc ( "historyEventDelay" , 1250 ) , Pc ( "viewportMargin" , 10 , function ( a ) { a . refresh ( ) } , ! 0 ) , Pc ( "maxHighlightLength" , 1e4 , d , ! 0 ) , Pc ( "moveInputWithCursor" , ! 0 , function ( a , b ) { b || a . display . input . resetPosition ( ) } ) , Pc ( "tabindex" , null , function ( a , b ) { a . display . input . getField ( ) . tabIndex = b || "" } ) , Pc ( "autofocus" , null ) ; var Yf = a . modes = { } , Zf = a . mimeModes = { } ; a . defineMode = function ( b , c ) { a . defaults . mode || "null" == b || ( a . defaults . mode = b ) , arguments . length > 2 && ( c . dependencies = Array . prototype . slice . call ( arguments , 2 ) ) , Yf [ b ] = c } , a . defineMIME = function ( a , b ) { Zf [ a ] = b } , a . resolveMode = function ( b ) { if ( "string" == typeof b && Zf . hasOwnProperty ( b ) ) b = Zf [ b ] ; else if ( b && "string" == typeof b . name && Zf . hasOwnProperty ( b . name ) ) { var c = Zf [ b . name ] ; "string" == typeof c && ( c = { name : c } ) , b = Ge ( c , b ) , b . name = c . name } else if ( "string" == typeof b && /^[\w\-]+\/[\w\-]+\+xml$/ . test ( b ) ) return a . resolveMode ( "application/xml" ) ; return "string" == typeof b ? { name : b } : b || { name : "null" } } , a . getMode = function ( b , c ) { var c = a . resolveMode ( c ) , d = Yf [ c . name ] ; if ( ! d ) return a . getMode ( b , "text/plain" ) ; var e = d ( b , c ) ; if ( $f . hasOwnProperty ( c . name ) ) { var f = $f [ c . name ] ; for ( var g in f ) f . hasOwnProperty ( g ) && ( e . hasOwnProperty ( g ) && ( e [ "_" + g ] = e [ g ] ) , e [ g ] = f [ g ] ) } if ( e . name = c . name , c . helperType && ( e . helperType = c . helperType ) , c . modeProps ) for ( var g in c . modeProps ) e [ g ] = c . modeProps [ g ] ; return e } , a . defineMode ( "null" , function ( ) { return { token : function ( a ) { a . skipToEnd ( ) } } } ) , a . defineMIME ( "text/plain" , "null" ) ; var $f = a . modeExtensions = { } ; a . extendMode = function ( a , b ) { var c = $f . hasOwnProperty ( a ) ? $f [ a ] : $f [ a ] = { } ; He ( b , c ) } , a . defineExtension = function ( b , c ) { a . prototype [ b ] = c } , a . defineDocExtension = function ( a , b ) { rg . prototype [ a ] = b } , a . defineOption = Pc ; var _f = [ ] ; a . defineInitHook = function ( a ) { _f . push ( a ) } ; var ag = a . helpers = { } ; a . registerHelper = function ( b , c , d ) { ag . hasOwnProperty ( b ) || ( ag [ b ] = a [ b ] = { _global : [ ] } ) , ag [ b ] [ c ] = d } , a . registerGlobalHelper = function ( b , c , d , e ) { a . registerHelper ( b , c , e ) , ag [ b ] . _global . push ( { pred : d , val : e } ) } ; var bg = a . copyState = function ( a , b ) { if ( b === ! 0 ) return b ; if ( a . copyState ) return a . copyState ( b ) ; var c = { } ; for ( var d in b ) { var e = b [ d ] ; e instanceof Array && ( e = e . concat ( [ ] ) ) , c [ d ] = e } return c } , cg = a . startState = function ( a , b , c ) { return ! a . startState || a . startState ( b , c ) } ; a . innerMode = function ( a , b ) { for ( ; a . innerMode ; ) { var c = a . innerMode ( b ) ; if ( ! c || c . mode == a ) break ; b = c . state , a = c . mode } return c || { mode : a , state : b } } ; var dg = a . commands = { selectAll : function ( a ) { a . setSelection ( Ff ( a . firstLine ( ) , 0 ) , Ff ( a . lastLine ( ) ) , Dg ) } , singleSelection : function ( a ) { a . setSelection ( a . getCursor ( "anchor" ) , a . getCursor ( "head" ) , Dg ) } , killLine : function ( a ) { Mc ( a , function ( b ) { if ( b . empty ( ) ) { var c = Vd
"function" == typeof a . oncopy ) } ( ) , Xg = null , Yg = { 3 : "Enter" , 8 : "Backspace" , 9 : "Tab" , 13 : "Enter" , 16 : "Shift" , 17 : "Ctrl" , 18 : "Alt" , 19 : "Pause" , 20 : "CapsLock" , 27 : "Esc" , 32 : "Space" , 33 : "PageUp" , 34 : "PageDown" , 35 : "End" , 36 : "Home" , 37 : "Left" , 38 : "Up" , 39 : "Right" , 40 : "Down" , 44 : "PrintScrn" , 45 : "Insert" , 46 : "Delete" , 59 : ";" , 61 : "=" , 91 : "Mod" , 92 : "Mod" , 93 : "Mod" , 107 : "=" , 109 : "-" , 127 : "Delete" , 173 : "-" , 186 : ";" , 187 : "=" , 188 : "," , 189 : "-" , 190 : "." , 191 : "/" , 192 : "`" , 219 : "[" , 220 : "\\" , 221 : "]" , 222 : "'" , 63232 : "Up" , 63233 : "Down" , 63234 : "Left" , 63235 : "Right" , 63272 : "Delete" , 63273 : "Home" , 63275 : "End" , 63276 : "PageUp" , 63277 : "PageDown" , 63302 : "Insert" } ; a . keyNames = Yg , function ( ) { for ( var a = 0 ; a < 10 ; a ++ ) Yg [ a + 48 ] = Yg [ a + 96 ] = String ( a ) ; for ( var a = 65 ; a <= 90 ; a ++ ) Yg [ a ] = String . fromCharCode ( a ) ; for ( var a = 1 ; a <= 12 ; a ++ ) Yg [ a + 111 ] = Yg [ a + 63235 ] = "F" + a } ( ) ; var Zg , $g = function ( ) { function a ( a ) { return a <= 247 ? c . charAt ( a ) : 1424 <= a && a <= 1524 ? "R" : 1536 <= a && a <= 1773 ? d . charAt ( a - 1536 ) : 1774 <= a && a <= 2220 ? "r" : 8192 <= a && a <= 8203 ? "w" : 8204 == a ? "b" : "L" } function b ( a , b , c ) { this . level = a , this . from = b , this . to = c } var c = "bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN" , d = "rrrrrrrrrrrr,rNNmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmrrrrrrrnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmNmmmm" , e = /[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/ , f = /[stwN]/ , g = /[LRr]/ , h = /[Lb1n]/ , i = /[1n]/ , j = "L" ; return function ( c ) { if ( ! e . test ( c ) ) return ! 1 ; for ( var d , k = c . length , l = [ ] , m = 0 ; m < k ; ++ m ) l . push ( d = a ( c . charCodeAt ( m ) ) ) ; for ( var m = 0 , n = j ; m < k ; ++ m ) { var d = l [ m ] ; "m" == d ? l [ m ] = n : n = d } for ( var m = 0 , o = j ; m < k ; ++ m ) { var d = l [ m ] ; "1" == d && "r" == o ? l [ m ] = "n" : g . test ( d ) && ( o = d , "r" == d && ( l [ m ] = "R" ) ) } for ( var m = 1 , n = l [ 0 ] ; m < k - 1 ; ++ m ) { var d = l [ m ] ; "+" == d && "1" == n && "1" == l [ m + 1 ] ? l [ m ] = "1" : "," != d || n != l [ m + 1 ] || "1" != n && "n" != n || ( l [ m ] = n ) , n = d } for ( var m = 0 ; m < k ; ++ m ) { var d = l [ m ] ; if ( "," == d ) l [ m ] = "N" ; else if ( "%" == d ) { for ( var p = m + 1 ; p < k && "%" == l [ p ] ; ++ p ) ; for ( var q = m && "!" == l [ m - 1 ] || p < k && "1" == l [ p ] ? "1" : "N" , r = m ; r < p ; ++ r ) l [ r ] = q ; m = p - 1 } } for ( var m = 0 , o = j ; m < k ; ++ m ) { var d = l [ m ] ; "L" == o && "1" == d ? l [ m ] = "L" : g . test ( d ) && ( o = d ) } for ( var m = 0 ; m < k ; ++ m ) if ( f . test ( l [ m ] ) ) { for ( var p = m + 1 ; p < k && f . test ( l [ p ] ) ; ++ p ) ; for ( var s = "L" == ( m ? l [ m - 1 ] : j ) , t = "L" == ( p < k ? l [ p ] : j ) , q = s || t ? "L" : "R" , r = m ; r < p ; ++ r ) l [ r ] = q ; m = p - 1 } for ( var u , v = [ ] , m = 0 ; m < k ; ) if ( h . test ( l [ m ] ) ) { var w = m ; for ( ++ m ; m < k && h . test ( l [ m ] ) ; ++ m ) ; v . push ( new b ( 0 , w , m ) ) } else { var x = m , y = v . length ; for ( ++ m ; m < k && "L" != l [ m ] ; ++ m ) ; for ( var r = x ; r < m ; ) if ( i . test ( l [ r ] ) ) { x < r && v . splice ( y , 0 , new b ( 1 , x , r ) ) ; var z = r ; for ( ++ r ; r < m && i . test ( l [ r ] ) ; ++ r ) ; v . splice ( y , 0 , new b ( 2 , z , r ) ) , x = r } else ++ r ; x < m && v . splice ( y , 0 , new b ( 1 , x , m ) ) } return 1 == v [ 0 ] . level && ( u = c . match ( /^\s+/ ) ) && ( v [ 0 ] . from = u [ 0 ] . length , v . unshift ( new b ( 0 , 0 , u [ 0 ] . length ) ) ) , 1 == Ce ( v ) . level && ( u = c . match ( /\s+$/ ) ) && ( Ce ( v ) . to -= u [ 0 ] . length , v . push ( new b ( 0 , k - u [ 0 ] . length , k ) ) ) , 2 == v [ 0 ] . level && v . unshift ( new b ( 1 , v [ 0 ] . to , v [ 0 ] . to ) ) , v [ 0 ] . level != Ce ( v ) . level && v . push ( new b ( v [ 0 ] . level , k , k ) ) , v } } ( ) ; return a . version = "5.4.1" , a } ) , function ( a ) { a ( CodeMirror ) } ( function ( a ) { function b ( a , b ) { for ( var c = 0 , d = a . length ; c < d ; ++ c ) b ( a [ c ] ) } function c ( a , b ) { if ( ! Array . prototype . indexOf ) { for ( var c = a . length ; c -- ; ) if ( a [ c ] === b ) return ! 0 ; return ! 1 } return a . indexOf ( b ) != - 1 } function d ( b , c , d , e ) { var f = b . getCursor ( ) , i = d ( b , f ) ; if ( ! /\b(?:string)\b/ . test ( i . type ) ) { i . state = a . innerMode ( b . getMode ( ) , i . state ) . state , /^[\w$_]*$/ . test ( i . string ) ? i . end > f . ch && ( i . end = f . ch , i . string = i . string . slice ( 0 , f . ch - i . start ) ) : i = { start : f . ch , end : f . ch , string : "" , state : i . state , type : "." == i . string ? "property" : null } ; for ( var j = i ; "property" == j . type ; ) { if ( j = d ( b , h ( f . line , j . start ) ) , "." != j . string ) return ; if ( j = d ( b , h ( f . line , j . start ) ) , ! k ) var k = [ ] ; k . push ( j ) } return { list : g ( i , k , c , e ) , from : h ( f . line , i . start ) , to : h ( f . line , i . end ) } } } function e ( ) { return BI . FormulaCollections } function f ( a , b ) { return d ( a , e ( ) , function ( a , b ) { return a . getTokenAt ( b ) } , b ) } function g ( a , d , e , f ) { function g ( a ) { 0 != a . lastIndexOf ( i , 0 ) || c ( h , a ) || h . push ( a ) } var h = [ ] , i = a . string ; return i ? ( d && d . length ? d . pop ( ) : b ( e , g ) , h ) : h } var h = a . Pos ; a . registerHelper ( "hint" , "formula" , f ) } ) , function ( a ) { a ( Co
BI . SearcherView = BI . inherit ( BI . Pane , { _defaultConfig : function ( ) { var a = BI . SearcherView . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( a , { baseCls : ( a . baseCls || "" ) + " bi-searcher-view bi-card" , tipText : BI . i18nText ( "BI-No_Select" ) , chooseType : BI . Selection . Single , matcher : { type : "bi.button_group" , behaviors : { redmark : function ( ) { return ! 0 } } , items : [ ] , layouts : [ { type : "bi.vertical" } ] } , searcher : { type : "bi.button_group" , behaviors : { redmark : function ( ) { return ! 0 } } , items : [ ] , layouts : [ { type : "bi.vertical" } ] } } ) } , _init : function ( ) { BI . SearcherView . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . matcher = BI . createWidget ( b . matcher , { type : "bi.button_group" , chooseType : b . chooseType , behaviors : { redmark : function ( ) { return ! 0 } } , layouts : [ { type : "bi.vertical" } ] } ) , this . matcher . on ( BI . Controller . EVENT _CHANGE , function ( b , c , d ) { a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) , b === BI . Events . CLICK && a . fireEvent ( BI . SearcherView . EVENT _CHANGE , c , d ) } ) , this . spliter = BI . createWidget ( { type : "bi.vertical" , height : 1 , hgap : 10 , items : [ { type : "bi.layout" , height : 1 , cls : "searcher-view-spliter bi-background" } ] } ) , this . searcher = BI . createWidget ( b . searcher , { type : "bi.button_group" , chooseType : b . chooseType , behaviors : { redmark : function ( ) { return ! 0 } } , layouts : [ { type : "bi.vertical" } ] } ) , this . searcher . on ( BI . Controller . EVENT _CHANGE , function ( b , c , d ) { a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) , b === BI . Events . CLICK && a . fireEvent ( BI . SearcherView . EVENT _CHANGE , c , d ) } ) , BI . createWidget ( { type : "bi.vertical" , element : this , items : [ this . matcher , this . spliter , this . searcher ] } ) } , startSearch : function ( ) { } , stopSearch : function ( ) { } , setValue : function ( a ) { this . matcher . setValue ( a ) , this . searcher . setValue ( a ) } , getValue : function ( ) { return this . matcher . getValue ( ) . concat ( this . searcher . getValue ( ) ) } , populate : function ( a , b , c ) { a || ( a = [ ] ) , b || ( b = [ ] ) , this . setTipVisible ( a . length + b . length === 0 ) , this . spliter . setVisible ( BI . isNotEmptyArray ( b ) && BI . isNotEmptyArray ( a ) ) , this . matcher . populate ( b , c ) , this . searcher . populate ( a , c ) } , empty : function ( ) { this . searcher . empty ( ) , this . matcher . empty ( ) } , hasMatched : function ( ) { return this . matcher . getAllButtons ( ) . length > 0 } } ) , BI . SearcherView . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.searcher_view" , BI . SearcherView ) , BI . ListView = BI . inherit ( BI . Widget , { props : function ( ) { return { baseCls : "bi-list-view" , overscanHeight : 100 , blockSize : 10 , scrollTop : 0 , el : { } , items : [ ] } } , init : function ( ) { this . renderedIndex = - 1 , this . cache = { } } , render : function ( ) { var a = this , b = this . options ; return { type : "bi.vertical" , items : [ BI . extend ( { type : "bi.vertical" , scrolly : ! 1 , ref : function ( ) { a . container = this } } , b . el ) ] , element : this } } , mounted : function ( ) { var a = this , b = this . options ; this . _populate ( ) , this . element . scroll ( function ( c ) { b . scrollTop = a . element . scrollTop ( ) , a . _calculateBlocksToRender ( ) } ) , BI . ResizeDetector . addResizeListener ( this , function ( ) { a . _calculateBlocksToRender ( ) } ) } , _renderMoreIf : function ( ) { for ( var a , b = this , c = this . options , d = this . element . height ( ) , e = c . scrollTop + d + c . overscanHeight , f = this . cache [ this . renderedIndex ] && this . cache [ this . renderedIndex ] . index + c . blockSize || 0 , g = this . renderedIndex + 1 , h = function ( ) { return b . container . element . height ( ) } ; ( a = h ( ) ) < e && f < c . items . length ; ) { var i = c . items . slice ( f , f + c . blockSize ) ; this . container . addItems ( i ) ; var j = h ( ) - a ; this . cache [ g ] = { index : f , scrollTop : a , height : j } , this . renderedIndex = g , g ++ , f += c . blockSize } } , _calculateBlocksToRender : function ( ) { this . options ; this . _renderMoreIf ( ) } , _populate : function ( a ) { var b = this . options ; a && this . options . items !== a && ( this . options . items = a ) , this . _calculateBlocksToRender ( ) , this . element . scrollTop ( b . scrollTop ) } , restore : function ( ) { this . renderedIndex = - 1 , this . container . empty ( ) , this . cache = { } } , populate : function ( a ) { a && this . options . items !== a && this . restore ( ) , this . _populate ( a ) } , destroyed : function ( ) { this . restore ( ) } } ) , BI . shortcut ( "bi.list_view" , BI . ListView ) , BI . VirtualList = BI . inherit ( BI . Widget , { props : function ( ) { return { baseCls : "bi-virtual-list" , overscanHeight : 100 , blockSize : 10 , scrollTop : 0 , items : [ ] } } , init : function ( ) { this . renderedIndex = - 1 , this . cache = { } } , render : function ( ) { var a = this ; this . options ; return { type : "bi.vertical" , items : [ { type : "bi.layout" , ref : function ( ) { a . topBlank = this } } , { type : "bi.vertical" , scrolly : ! 1 , ref : function ( ) { a . contai
} , setValue : function ( ) { this . isReadOnly ( ) || this . text . setValue . apply ( this . text , arguments ) } , getValue : function ( ) { return this . text . getValue ( ) } , setText : function ( ) { this . text . setText . apply ( this . text , arguments ) } , getText : function ( ) { return this . text . getText ( ) } } ) , BI . TextItem . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.text_item" , BI . TextItem ) , BI . IconTextIconNode = BI . inherit ( BI . NodeButton , { _const : { commonWidth : 25 } , _defaultConfig : function ( ) { var a = BI . IconTextIconNode . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( a , { baseCls : ( a . baseCls || "" ) + " bi-icon-text-icon-node" , logic : { dynamic : ! 1 } , iconCls1 : "close-ha-font" , iconCls2 : "close-ha-font" , iconHeight : null , iconWidth : null , textHgap : 0 , textVgap : 0 , textLgap : 0 , textRgap : 0 } ) } , _init : function ( ) { BI . IconTextIconNode . superclass . _init . apply ( this , arguments ) ; var a = this . options , b = this . _const ; this . text = BI . createWidget ( { type : "bi.label" , textAlign : "left" , hgap : a . textHgap , vgap : a . textVgap , lgap : a . textLgap , rgap : a . textRgap , text : a . text , value : a . value , keyword : a . keyword , height : a . height } ) ; var c = BI . createWidget ( { type : "bi.center_adapt" , cls : a . iconCls1 , width : b . commonWidth , height : a . height , items : [ { el : { type : "bi.icon" , width : a . iconWidth , height : a . iconHeight } } ] } ) , d = BI . createWidget ( { type : "bi.layout" , width : b . commonWidth , height : a . height } ) ; BI . createWidget ( { type : "bi.absolute" , element : this , items : [ { el : { type : "bi.center_adapt" , cls : a . iconCls2 , width : b . commonWidth , items : [ { el : { type : "bi.icon" , width : a . iconWidth , height : a . iconHeight } } ] } , top : 0 , bottom : 0 , right : 0 } ] } ) , BI . createWidget ( BI . extend ( { element : this } , BI . LogicFactory . createLogic ( "horizontal" , BI . extend ( a . logic , { items : BI . LogicFactory . createLogicItemsByDirection ( "left" , c , this . text , d ) } ) ) ) ) } , doClick : function ( ) { BI . IconTextIconNode . superclass . doClick . apply ( this , arguments ) , this . isValid ( ) && this . fireEvent ( BI . IconTextIconNode . EVENT _CHANGE , this . getValue ( ) , this ) } , doRedMark : function ( ) { this . text . doRedMark . apply ( this . text , arguments ) } , unRedMark : function ( ) { this . text . unRedMark . apply ( this . text , arguments ) } , setValue : function ( ) { this . isReadOnly ( ) || this . text . setValue . apply ( this . text , arguments ) } , getValue : function ( ) { return this . text . getValue ( ) } , setText : function ( ) { this . text . setText . apply ( this . text , arguments ) } , getText : function ( ) { return this . text . getText ( ) } } ) , BI . IconTextIconNode . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.icon_text_icon_node" , BI . IconTextIconNode ) , BI . IconTextNode = BI . inherit ( BI . NodeButton , { _const : { commonWidth : 25 } , _defaultConfig : function ( ) { var a = BI . IconTextNode . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( a , { baseCls : ( a . baseCls || "" ) + " bi-icon-text-node" , logic : { dynamic : ! 1 } , cls : "close-ha-font" , iconHeight : null , iconWidth : null , textHgap : 0 , textVgap : 0 , textLgap : 0 , textRgap : 0 } ) } , _init : function ( ) { BI . IconTextNode . superclass . _init . apply ( this , arguments ) ; var a = this . options , b = this . _const ; this . text = BI . createWidget ( { type : "bi.label" , cls : "list-item-text" , textAlign : "left" , hgap : a . textHgap , vgap : a . textVgap , lgap : a . textLgap , rgap : a . textRgap , text : a . text , value : a . value , keyword : a . keyword , height : a . height } ) , this . icon = BI . createWidget ( { type : "bi.center_adapt" , width : b . commonWidth , height : a . height , items : [ { el : { type : "bi.icon" , width : a . iconWidth , height : a . iconHeight } } ] } ) , BI . createWidget ( BI . extend ( { element : this } , BI . LogicFactory . createLogic ( "horizontal" , BI . extend ( a . logic , { items : BI . LogicFactory . createLogicItemsByDirection ( "left" , this . icon , this . text ) } ) ) ) ) } , setValue : function ( ) { this . isReadOnly ( ) || this . text . setValue . apply ( this . text , arguments ) } , getValue : function ( ) { return this . text . getValue ( ) } , setText : function ( ) { this . text . setText . apply ( this . text , arguments ) } , getText : function ( ) { return this . text . getText ( ) } , doClick : function ( ) { BI . IconTextNode . superclass . doClick . apply ( this , arguments ) , this . isValid ( ) && this . fireEvent ( BI . IconTextNode . EVENT _CHANGE , this . getValue ( ) , this ) } , doRedMark : function ( ) { this . text . doRedMark . apply ( this . text , arguments ) } , unRedMark : function ( ) { this . text . unRedMark . apply ( this . text , arguments ) } } ) , BI . IconTextNode . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.icon_text_node" , BI . IconTextNode ) , BI . TextIconNode = BI . inherit ( BI . NodeButton , { _const : { commonWidth : 25 } , _defaultConfig : function ( ) { var a = BI . TextIconNode . superclass . _defaultConfig . apply ( this ,
return a . multiple === ! 0 && this . element . attr ( "multiple" , "multiple" ) , b . value = "" , this . _events ( { dom : { input : b , disabled : ! 1 } , name : b . name , maxSize : a . maxSize ? a . maxSize >> 0 : - 1 , files : [ ] , clean : function ( ) { this . files = [ ] } , upload : function ( a ) { if ( a ) for ( var b in a ) this [ b ] = a [ b ] ; return sendFiles ( this , this . maxSize ) , this } , hide : function ( ) { this . dom . disabled && ( this . dom . disabled = ! 1 , this . dom . input . removeAttribute ( "disabled" ) ) } , show : function ( a , b , c , d ) { this . dom . disabled || ( this . dom . disabled = ! 0 , this . dom . input . setAttribute ( "disabled" , "disabled" ) ) } } ) } , select : function ( ) { $ ( this . wrap . dom . input ) . click ( ) } , upload : function ( a ) { this . wrap . upload ( a ) } , getValue : function ( ) { return this . wrap . attach _array } , reset : function ( ) { this . wrap . attach _array = [ ] , this . wrap . attach _names = [ ] , this . wrap . attachNum = 0 } , _setEnable : function ( a ) { BI . File . superclass . _setEnable . apply ( this , arguments ) , a === ! 0 ? this . element . attr ( "disabled" , "disabled" ) : this . element . removeAttr ( "disabled" ) } } ) , BI . File . EVENT _CHANGE = "BI.File.EVENT_CHANGE" , BI . File . EVENT _UPLOADSTART = "EVENT_UPLOADSTART" , BI . File . EVENT _ERROR = "EVENT_ERROR" , BI . File . EVENT _PROGRESS = "EVENT_PROGRESS" , BI . File . EVENT _UPLOADED = "EVENT_UPLOADED" , BI . shortcut ( "bi.file" , BI . File ) } ( ) , BI . Input = BI . inherit ( BI . Single , { _defaultConfig : function ( ) { var a = BI . Input . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( a , { baseCls : ( a . baseCls || "" ) + " bi-input display-block" , element : "<input/>" , validationChecker : BI . emptyFn , quitChecker : BI . emptyFn , allowBlank : ! 1 } ) } , _init : function ( ) { BI . Input . superclass . _init . apply ( this , arguments ) ; var a = this , b = ! 1 , c = ! 1 , d = BI . debounce ( function ( c ) { a . onKeyDown ( c , b ) , a . _keydown _ = ! 1 } , 300 ) , e = BI . debounce ( BI . bind ( this . _click , this ) , BI . EVENT _RESPONSE _TIME , ! 0 ) ; this . _blurDebounce = BI . debounce ( BI . bind ( this . _blur , this ) , BI . EVENT _RESPONSE _TIME , ! 0 ) , this . element . keydown ( function ( d ) { c = ! 1 , b = d . ctrlKey , a . fireEvent ( BI . Input . EVENT _QUICK _DOWN ) } ) . keyup ( function ( b ) { c && b . keyCode === BI . KeyCode . ENTER || ( a . _keydown _ = ! 0 , d ( b . keyCode ) ) } ) . on ( "input propertychange" , function ( b ) { BI . isNotNull ( b . keyCode ) && ( c = ! 0 , a . _keydown _ = ! 0 , d ( b . keyCode ) ) } ) . click ( function ( a ) { a . stopPropagation ( ) , e ( ) } ) . mousedown ( function ( b ) { a . element . val ( a . element . val ( ) ) } ) . focusout ( function ( b ) { a . _blurDebounce ( ) } ) } , _focus : function ( ) { this . element . addClass ( "bi-input-focus" ) , this . _checkValidationOnValueChange ( ) , this . _isEditing = ! 0 , "" == this . getValue ( ) && ( this . fireEvent ( BI . Controller . EVENT _CHANGE , BI . Events . EMPTY , this . getValue ( ) , this ) , this . fireEvent ( BI . Input . EVENT _EMPTY ) ) , this . fireEvent ( BI . Input . EVENT _FOCUS ) } , _blur : function ( ) { function a ( ) { b . isValid ( ) || b . options . quitChecker . apply ( b , [ BI . trim ( b . getValue ( ) ) ] ) === ! 1 || ( b . element . val ( b . _lastValidValue ? b . _lastValidValue : "" ) , b . _checkValidationOnValueChange ( ) , b . _defaultState ( ) ) , b . element . removeClass ( "bi-input-focus" ) , b . _isEditing = ! 1 , b . _start = ! 1 , b . isValid ( ) && ( b . fireEvent ( BI . Controller . EVENT _CHANGE , BI . Events . CONFIRM , b . getValue ( ) , b ) , b . fireEvent ( BI . Input . EVENT _CONFIRM ) ) , b . fireEvent ( BI . Input . EVENT _BLUR ) } var b = this ; b . _keydown _ === ! 0 ? BI . delay ( a , 300 ) : a ( ) } , _click : function ( ) { this . _isEditing !== ! 0 && ( this . _focus ( ) , this . selectAll ( ) , this . fireEvent ( BI . Input . EVENT _CLICK ) ) } , onClick : function ( ) { this . _click ( ) } , onKeyDown : function ( a , b ) { this . isValid ( ) && BI . trim ( this . _lastValidValue ) === BI . trim ( this . getValue ( ) ) || this . _checkValidationOnValueChange ( ) , this . isValid ( ) && "" !== BI . trim ( this . getValue ( ) ) && ( ( BI . trim ( this . getValue ( ) ) === this . _lastValue || this . _start && null != this . _lastValue && "" !== this . _lastValue ) && ( this . _pause !== ! 0 || /(\s|\u00A0)$/ . test ( this . getValue ( ) ) ) || ( this . _start = ! 0 , this . _pause = ! 1 , this . fireEvent ( BI . Controller . EVENT _CHANGE , BI . Events . STARTEDIT , this . getValue ( ) , this ) , this . fireEvent ( BI . Input . EVENT _START ) ) ) , b === ! 0 && 86 === a ? this . _valueChange ( ) : ( a == BI . KeyCode . ENTER && ( this . isValid ( ) || this . options . quitChecker . apply ( this , [ BI . trim ( this . getValue ( ) ) ] ) !== ! 1 ? ( this . blur ( ) , this . fireEvent ( BI . Input . EVENT _ENTER ) ) : this . fireEvent ( BI . Input . EVENT _RESTRICT ) ) , a == BI . KeyCode . SPACE && this . fireEvent ( BI . Input . EVENT _SPACE ) , a == BI . KeyCode . BACKSPACE && "" == this . _lastValue && this . fireEvent ( BI . Input . EVENT _REMOVE ) , a != BI . KeyCode . BACKSPACE && a != BI . KeyCode . DELETE || this . fireEvent ( BI . Input . EVENT _BACKSPACE ) ) , this . fireEvent ( BI . Input . EVENT _KEY _DOWN ) , BI . isEndWithBlank ( this
return b ( a ) } ) : "object" == typeof exports ? module . exports = b ( require ( "eve" ) ) : a . Raphael = b ( a . eve ) } ( this , function ( a ) { function b ( c ) { if ( b . is ( c , "function" ) ) return t ? c ( ) : a . on ( "raphael.DOMload" , c ) ; if ( b . is ( c , U ) ) return b . _engine . create [ C ] ( b , c . splice ( 0 , 3 + b . is ( c [ 0 ] , S ) ) ) . add ( c ) ; var d = Array . prototype . slice . call ( arguments , 0 ) ; if ( b . is ( d [ d . length - 1 ] , "function" ) ) { var e = d . pop ( ) ; return t ? e . call ( b . _engine . create [ C ] ( b , d ) ) : a . on ( "raphael.DOMload" , function ( ) { e . call ( b . _engine . create [ C ] ( b , d ) ) } ) } return b . _engine . create [ C ] ( b , arguments ) } function c ( a ) { if ( "function" == typeof a || Object ( a ) !== a ) return a ; var b = new a . constructor ; for ( var d in a ) a [ y ] ( d ) && ( b [ d ] = c ( a [ d ] ) ) ; return b } function d ( a , b ) { for ( var c = 0 , d = a . length ; c < d ; c ++ ) if ( a [ c ] === b ) return a . push ( a . splice ( c , 1 ) [ 0 ] ) } function e ( a , b , c ) { function e ( ) { var f = Array . prototype . slice . call ( arguments , 0 ) , g = f . join ( "␀" ) , h = e . cache = e . cache || { } , i = e . count = e . count || [ ] ; return h [ y ] ( g ) ? ( d ( i , g ) , c ? c ( h [ g ] ) : h [ g ] ) : ( i . length >= 1e3 && delete h [ i . shift ( ) ] , i . push ( g ) , h [ g ] = a [ C ] ( b , f ) , c ? c ( h [ g ] ) : h [ g ] ) } return e } function f ( ) { return this . hex } function g ( a , b ) { for ( var c = [ ] , d = 0 , e = a . length ; e - 2 * ! b > d ; d += 2 ) { var f = [ { x : + a [ d - 2 ] , y : + a [ d - 1 ] } , { x : + a [ d ] , y : + a [ d + 1 ] } , { x : + a [ d + 2 ] , y : + a [ d + 3 ] } , { x : + a [ d + 4 ] , y : + a [ d + 5 ] } ] ; b ? d ? e - 4 == d ? f [ 3 ] = { x : + a [ 0 ] , y : + a [ 1 ] } : e - 2 == d && ( f [ 2 ] = { x : + a [ 0 ] , y : + a [ 1 ] } , f [ 3 ] = { x : + a [ 2 ] , y : + a [ 3 ] } ) : f [ 0 ] = { x : + a [ e - 2 ] , y : + a [ e - 1 ] } : e - 4 == d ? f [ 3 ] = f [ 2 ] : d || ( f [ 0 ] = { x : + a [ d ] , y : + a [ d + 1 ] } ) , c . push ( [ "C" , ( - f [ 0 ] . x + 6 * f [ 1 ] . x + f [ 2 ] . x ) / 6 , ( - f [ 0 ] . y + 6 * f [ 1 ] . y + f [ 2 ] . y ) / 6 , ( f [ 1 ] . x + 6 * f [ 2 ] . x - f [ 3 ] . x ) / 6 , ( f [ 1 ] . y + 6 * f [ 2 ] . y - f [ 3 ] . y ) / 6 , f [ 2 ] . x , f [ 2 ] . y ] ) } return c } function h ( a , b , c , d , e ) { var f = - 3 * b + 9 * c - 9 * d + 3 * e , g = a * f + 6 * b - 12 * c + 6 * d ; return a * g - 3 * b + 3 * c } function i ( a , b , c , d , e , f , g , i , j ) { null == j && ( j = 1 ) , j = j > 1 ? 1 : j < 0 ? 0 : j ; for ( var k = j / 2 , l = 12 , m = [ - . 1252 , . 1252 , - . 3678 , . 3678 , - . 5873 , . 5873 , - . 7699 , . 7699 , - . 9041 , . 9041 , - . 9816 , . 9816 ] , n = [ . 2491 , . 2491 , . 2335 , . 2335 , . 2032 , . 2032 , . 1601 , . 1601 , . 1069 , . 1069 , . 0472 , . 0472 ] , o = 0 , p = 0 ; p < l ; p ++ ) { var q = k * m [ p ] + k , r = h ( q , a , c , e , g ) , s = h ( q , b , d , f , i ) , t = r * r + s * s ; o += n [ p ] * M . sqrt ( t ) } return k * o } function j ( a , b , c , d , e , f , g , h , j ) { if ( ! ( j < 0 || i ( a , b , c , d , e , f , g , h ) < j ) ) { var k , l = 1 , m = l / 2 , n = l - m , o = . 01 ; for ( k = i ( a , b , c , d , e , f , g , h , n ) ; P ( k - j ) > o ; ) m /= 2 , n += ( k < j ? 1 : - 1 ) * m , k = i ( a , b , c , d , e , f , g , h , n ) ; return n } } function k ( a , b , c , d , e , f , g , h ) { if ( ! ( N ( a , c ) < O ( e , g ) || O ( a , c ) > N ( e , g ) || N ( b , d ) < O ( f , h ) || O ( b , d ) > N ( f , h ) ) ) { var i = ( a * d - b * c ) * ( e - g ) - ( a - c ) * ( e * h - f * g ) , j = ( a * d - b * c ) * ( f - h ) - ( b - d ) * ( e * h - f * g ) , k = ( a - c ) * ( f - h ) - ( b - d ) * ( e - g ) ; if ( k ) { var l = i / k , m = j / k , n = + l . toFixed ( 2 ) , o = + m . toFixed ( 2 ) ; if ( ! ( n < + O ( a , c ) . toFixed ( 2 ) || n > + N ( a , c ) . toFixed ( 2 ) || n < + O ( e , g ) . toFixed ( 2 ) || n > + N ( e , g ) . toFixed ( 2 ) || o < + O ( b , d ) . toFixed ( 2 ) || o > + N ( b , d ) . toFixed ( 2 ) || o < + O ( f , h ) . toFixed ( 2 ) || o > + N ( f , h ) . toFixed ( 2 ) ) ) return { x : l , y : m } } } } function l ( a , c , d ) { var e = b . bezierBBox ( a ) , f = b . bezierBBox ( c ) ; if ( ! b . isBBoxIntersect ( e , f ) ) return d ? 0 : [ ] ; for ( var g = i . apply ( 0 , a ) , h = i . apply ( 0 , c ) , j = N ( ~ ~ ( g / 5 ) , 1 ) , l = N ( ~ ~ ( h / 5 ) , 1 ) , m = [ ] , n = [ ] , o = { } , p = d ? 0 : [ ] , q = 0 ; q < j + 1 ; q ++ ) { var r = b . findDotsAtSegment . apply ( b , a . concat ( q / j ) ) ; m . push ( { x : r . x , y : r . y , t : q / j } ) } for ( q = 0 ; q < l + 1 ; q ++ ) r = b . findDotsAtSegment . apply ( b , c . concat ( q / l ) ) , n . push ( { x : r . x , y : r . y , t : q / l } ) ; for ( q = 0 ; q < j ; q ++ ) for ( var s = 0 ; s < l ; s ++ ) { var t = m [ q ] , u = m [ q + 1 ] , v = n [ s ] , w = n [ s + 1 ] , x = P ( u . x - t . x ) < . 001 ? "y" : "x" , y = P ( w . x - v . x ) < . 001 ? "y" : "x" , z = k ( t . x , t . y , u . x , u . y , v . x , v . y , w . x , w . y ) ; if ( z ) { if ( o [ z . x . toFixed ( 4 ) ] == z . y . toFixed ( 4 ) ) continue ; o [ z . x . toFixed ( 4 ) ] = z . y . toFixed ( 4 ) ; var A = t . t + P ( ( z [ x ] - t [ x ] ) / ( u [ x ] - t [ x ] ) ) * ( u . t - t . t ) , B = v . t + P ( ( z [ y ] - v [ y ] ) / ( w [ y ] - v [ y ] ) ) * ( w . t - v . t ) ; A >= 0 && A <= 1.001 && B >= 0 && B <= 1.001 && ( d ? p ++ : p . push ( { x : z . x , y : z . y , t1 : O ( A , 1 ) , t2 : O ( B , 1 ) } ) ) } } return p } function m ( a , c , d ) { a = b . _path2curve ( a ) , c = b . _path2curve ( c ) ; for ( var e , f , g , h , i , j , k , m , n , o , p = d ? 0 : [ ] , q = 0 , r = a . length ; q < r ; q ++ ) { var s = a [ q ] ; if ( "M" == s [ 0 ] ) e = i = s [ 1 ] , f = j = s [ 2 ] ; else { "C" == s [ 0 ] ? ( n = [ e , f ] . concat ( s . slice ( 1 ) ) , e = n [ 6 ] , f = n [ 7 ] ) : ( n = [ e , f , e , f , i , j , i , j ] , e = i , f = j ) ; for ( var t = 0 , u = c . length ; t < u ; t ++ ) { var v = c [ t ] ; if ( "M" == v [ 0 ] ) g = k = v [ 1 ] , h = m = v [ 2 ] ; else { "C" == v [ 0 ] ? ( o = [ g , h ] . concat ( v . slice ( 1 ) ) , g = o [ 6 ] , h = o [ 7 ] ) : ( o = [ g , h , g , h , k , m , k , m ] , g = k , h = m ) ; var w = l ( n , o , d ) ; if ( d ) p += w ; else { for ( var x = 0 , y = w . length ; x < y ; x ++ ) w [ x ] . segment1 = q , w [ x ] . segment2 = t , w [ x ] . bez1 = n , w [ x ] . bez2 = o ; p = p . concat ( w ) } } } } } return p } function n ( a , b , c , d , e , f ) { null != a ? ( this . a = + a , this . b = + b , this . c = + c , this . d = + d , this . e = + e , this . f = + f ) : ( this . a = 1 , this . b = 0 , this . c = 0 , this . d = 1 , this . e = 0 , this . f = 0 ) } function o ( ) { return this . x + G + this . y + G + this . width + " ×
var a = { } ; a . dx = this . e , a . dy = this . f ; var e = [ [ this . a , this . c ] , [ this . b , this . d ] ] ; a . scalex = M . sqrt ( c ( e [ 0 ] ) ) , d ( e [ 0 ] ) , a . shear = e [ 0 ] [ 0 ] * e [ 1 ] [ 0 ] + e [ 0 ] [ 1 ] * e [ 1 ] [ 1 ] , e [ 1 ] = [ e [ 1 ] [ 0 ] - e [ 0 ] [ 0 ] * a . shear , e [ 1 ] [ 1 ] - e [ 0 ] [ 1 ] * a . shear ] , a . scaley = M . sqrt ( c ( e [ 1 ] ) ) , d ( e [ 1 ] ) , a . shear /= a . scaley ; var f = - e [ 0 ] [ 1 ] , g = e [ 1 ] [ 1 ] ; return g < 0 ? ( a . rotate = b . deg ( M . acos ( g ) ) , f < 0 && ( a . rotate = 360 - a . rotate ) ) : a . rotate = b . deg ( M . asin ( f ) ) , a . isSimple = ! ( + a . shear . toFixed ( 9 ) || a . scalex . toFixed ( 9 ) != a . scaley . toFixed ( 9 ) && a . rotate ) , a . isSuperSimple = ! + a . shear . toFixed ( 9 ) && a . scalex . toFixed ( 9 ) == a . scaley . toFixed ( 9 ) && ! a . rotate , a . noRotation = ! + a . shear . toFixed ( 9 ) && ! a . rotate , a } , a . toTransformString = function ( a ) { var b = a || this [ I ] ( ) ; return b . isSimple ? ( b . scalex = + b . scalex . toFixed ( 4 ) , b . scaley = + b . scaley . toFixed ( 4 ) , b . rotate = + b . rotate . toFixed ( 4 ) , ( b . dx || b . dy ? "t" + [ b . dx , b . dy ] : F ) + ( 1 != b . scalex || 1 != b . scaley ? "s" + [ b . scalex , b . scaley , 0 , 0 ] : F ) + ( b . rotate ? "r" + [ b . rotate , 0 , 0 ] : F ) ) : "m" + [ this . get ( 0 ) , this . get ( 1 ) , this . get ( 2 ) , this . get ( 3 ) , this . get ( 4 ) , this . get ( 5 ) ] } } ( n . prototype ) ; for ( var Oa = function ( ) { this . returnValue = ! 1 } , Pa = function ( ) { return this . originalEvent . preventDefault ( ) } , Qa = function ( ) { this . cancelBubble = ! 0 } , Ra = function ( ) { return this . originalEvent . stopPropagation ( ) } , Sa = function ( a ) { var b = z . doc . documentElement . scrollTop || z . doc . body . scrollTop , c = z . doc . documentElement . scrollLeft || z . doc . body . scrollLeft ; return { x : a . clientX + c , y : a . clientY + b } } , Ta = function ( ) { return z . doc . addEventListener ? function ( a , b , c , d ) { var e = function ( a ) { var b = Sa ( a ) ; return c . call ( d , a , b . x , b . y ) } ; if ( a . addEventListener ( b , e , ! 1 ) , E && K [ b ] ) { var f = function ( b ) { for ( var e = Sa ( b ) , f = b , g = 0 , h = b . targetTouches && b . targetTouches . length ; g < h ; g ++ ) if ( b . targetTouches [ g ] . target == a ) { b = b . targetTouches [ g ] , b . originalEvent = f , b . preventDefault = Pa , b . stopPropagation = Ra ; break } return c . call ( d , b , e . x , e . y ) } ; a . addEventListener ( K [ b ] , f , ! 1 ) } return function ( ) { return a . removeEventListener ( b , e , ! 1 ) , E && K [ b ] && a . removeEventListener ( K [ b ] , f , ! 1 ) , ! 0 } } : z . doc . attachEvent ? function ( a , b , c , d ) { var e = function ( a ) { a = a || z . win . event ; var b = z . doc . documentElement . scrollTop || z . doc . body . scrollTop , e = z . doc . documentElement . scrollLeft || z . doc . body . scrollLeft , f = a . clientX + e , g = a . clientY + b ; return a . preventDefault = a . preventDefault || Oa , a . stopPropagation = a . stopPropagation || Qa , c . call ( d , a , f , g ) } ; a . attachEvent ( "on" + b , e ) ; var f = function ( ) { return a . detachEvent ( "on" + b , e ) , ! 0 } ; return f } : void 0 } ( ) , Ua = [ ] , Va = function ( b ) { for ( var c , d = b . clientX , e = b . clientY , f = z . doc . documentElement . scrollTop || z . doc . body . scrollTop , g = z . doc . documentElement . scrollLeft || z . doc . body . scrollLeft , h = Ua . length ; h -- ; ) { if ( c = Ua [ h ] , E && b . touches ) { for ( var i , j = b . touches . length ; j -- ; ) if ( i = b . touches [ j ] , i . identifier == c . el . _drag . id ) { d = i . clientX , e = i . clientY , ( b . originalEvent ? b . originalEvent : b ) . preventDefault ( ) ; break } } else b . preventDefault ( ) ; var k , l = c . el . node , m = l . nextSibling , n = l . parentNode , o = l . style . display ; z . win . opera && n . removeChild ( l ) , l . style . display = "none" , k = c . el . paper . getElementByPoint ( d , e ) , l . style . display = o , z . win . opera && ( m ? n . insertBefore ( l , m ) : n . appendChild ( l ) ) , k && a ( "raphael.drag.over." + c . el . id , c . el , k ) , d += g , e += f , a ( "raphael.drag.move." + c . el . id , c . move _scope || c . el , d - c . el . _drag . x , e - c . el . _drag . y , d , e , b ) } } , Wa = function ( c ) { b . unmousemove ( Va ) . unmouseup ( Wa ) ; for ( var d , e = Ua . length ; e -- ; ) d = Ua [ e ] , d . el . _drag = { } , a ( "raphael.drag.end." + d . el . id , d . end _scope || d . start _scope || d . move _scope || d . el , c ) ; Ua = [ ] } , Xa = b . el = { } , Ya = J . length ; Ya -- ; ) ! function ( a ) { b [ a ] = Xa [ a ] = function ( c , d ) { return b . is ( c , "function" ) && ( this . events = this . events || [ ] , this . events . push ( { name : a , f : c , unbind : Ta ( this . shape || this . node || z . doc , a , c , d || this ) } ) ) , this } , b [ "un" + a ] = Xa [ "un" + a ] = function ( c ) { for ( var d = this . events || [ ] , e = d . length ; e -- ; ) d [ e ] . name != a || ! b . is ( c , "undefined" ) && d [ e ] . f != c || ( d [ e ] . unbind ( ) , d . splice ( e , 1 ) , ! d . length && delete this . events ) ; return this } } ( J [ Ya ] ) ; Xa . data = function ( c , d ) { var e = ja [ this . id ] = ja [ this . id ] || { } ; if ( 0 == arguments . length ) return e ; if ( 1 == arguments . length ) { if ( b . is ( c , "object" ) ) { for ( var f in c ) c [ y ] ( f ) && this . data ( f , c [ f ] ) ; return this } return a ( "raphael.data.get." + this . id , this , e [ c ] , c ) , e [ c ] } return e [ c ] = d , a ( "raphael.data.set." + this . id , this , d , c ) , this } , Xa . datum = function ( ) { return 0 == arguments . length ? this . _bindData : ( this . _bindData = arguments [ 0 ] , this ) } , Xa . removeData = function ( a ) { return null == a ? ja [ th
a . length - 1 && ( b = d ( a [ 1 ] ) ) , a = d ( a [ 0 ] ) || 0 , b = + b || 0 , this . transform ( this . _ . transform . concat ( [ [ "t" , a , b ] ] ) ) , this ) } , B . transform = function ( c ) { var d = this . _ ; if ( null == c ) return d . transform ; if ( a . _extractTransform ( this , c ) , this . clip && q ( this . clip , { transform : this . matrix . invert ( ) } ) , this . pattern && s ( this ) , this . node && q ( this . node , { transform : this . matrix } ) , 1 != d . sx || 1 != d . sy ) { var e = this . attrs [ b ] ( "stroke-width" ) ? this . attrs [ "stroke-width" ] : 1 ; this . attr ( { "stroke-width" : e } ) } return this } , B . hide = function ( ) { return this . removed || ( this . node . style . display = "none" ) , this } , B . show = function ( ) { return this . removed || ( this . node . style . display = "" ) , this } , B . remove = function ( ) { var b = z ( this . node ) ; if ( ! this . removed && b . parentNode ) { var c = this . paper ; c . _ _set _ _ && c . _ _set _ _ . exclude ( this ) , k . unbind ( "raphael.*.*." + this . id ) , this . gradient && c . defs . removeChild ( this . gradient ) , a . _tear ( this , c ) , b . parentNode . removeChild ( b ) , this . removeData ( ) ; for ( var d in this ) this [ d ] = "function" == typeof this [ d ] ? a . _removedFactory ( d ) : null ; this . removed = ! 0 } } , B . _getBBox = function ( ) { if ( "none" == this . node . style . display ) { this . show ( ) ; var a = ! 0 } var b , c = ! 1 ; this . paper . canvas . parentElement ? b = this . paper . canvas . parentElement . style : this . paper . canvas . parentNode && ( b = this . paper . canvas . parentNode . style ) , b && "none" == b . display && ( c = ! 0 , b . display = "" ) ; var d = { } ; try { d = this . node . getBBox ( ) } catch ( e ) { d = { x : this . node . clientLeft , y : this . node . clientTop , width : this . node . clientWidth , height : this . node . clientHeight } } finally { d = d || { } , c && ( b . display = "none" ) } return a && this . hide ( ) , d } , B . attr = function ( c , d ) { if ( this . removed ) return this ; if ( null == c ) { var e = { } ; for ( var f in this . attrs ) this . attrs [ b ] ( f ) && ( e [ f ] = this . attrs [ f ] ) ; return e . gradient && "none" == e . fill && ( e . fill = e . gradient ) && delete e . gradient , e . transform = this . _ . transform , e } if ( null == d && a . is ( c , "string" ) ) { if ( "fill" == c && "none" == this . attrs . fill && this . attrs . gradient ) return this . attrs . gradient ; if ( "transform" == c ) return this . _ . transform ; for ( var g = c . split ( j ) , h = { } , i = 0 , l = g . length ; i < l ; i ++ ) c = g [ i ] , c in this . attrs ? h [ c ] = this . attrs [ c ] : a . is ( this . paper . customAttributes [ c ] , "function" ) ? h [ c ] = this . paper . customAttributes [ c ] . def : h [ c ] = a . _availableAttrs [ c ] ; return l - 1 ? h : h [ g [ 0 ] ] } if ( null == d && a . is ( c , "array" ) ) { for ( h = { } , i = 0 , l = c . length ; i < l ; i ++ ) h [ c [ i ] ] = this . attr ( c [ i ] ) ; return h } if ( null != d ) { var m = { } ; m [ c ] = d } else null != c && a . is ( c , "object" ) && ( m = c ) ; for ( var n in m ) k ( "raphael.attr." + n + "." + this . id , this , m [ n ] ) ; for ( n in this . paper . customAttributes ) if ( this . paper . customAttributes [ b ] ( n ) && m [ b ] ( n ) && a . is ( this . paper . customAttributes [ n ] , "function" ) ) { var o = this . paper . customAttributes [ n ] . apply ( this , [ ] . concat ( m [ n ] ) ) ; this . attrs [ n ] = m [ n ] ; for ( var p in o ) o [ b ] ( p ) && ( m [ p ] = o [ p ] ) } return w ( this , m ) , this } , B . toFront = function ( ) { if ( this . removed ) return this ; var b = z ( this . node ) ; b . parentNode . appendChild ( b ) ; var c = this . paper ; return c . top != this && a . _tofront ( this , c ) , this } , B . toBack = function ( ) { if ( this . removed ) return this ; var b = z ( this . node ) , c = b . parentNode ; c . insertBefore ( b , c . firstChild ) , a . _toback ( this , this . paper ) ; this . paper ; return this } , B . insertAfter = function ( b ) { if ( this . removed || ! b ) return this ; var c = z ( this . node ) , d = z ( b . node || b [ b . length - 1 ] . node ) ; return d . nextSibling ? d . parentNode . insertBefore ( c , d . nextSibling ) : d . parentNode . appendChild ( c ) , a . _insertafter ( this , b , this . paper ) , this } , B . insertBefore = function ( b ) { if ( this . removed || ! b ) return this ; var c = z ( this . node ) , d = z ( b . node || b [ 0 ] . node ) ; return d . parentNode . insertBefore ( c , d ) , a . _insertbefore ( this , b , this . paper ) , this } , B . blur = function ( b ) { var c = this ; if ( 0 !== + b ) { var d = q ( "filter" ) , e = q ( "feGaussianBlur" ) ; c . attrs . blur = b , d . id = a . createUUID ( ) , q ( e , { stdDeviation : + b || 1.5 } ) , d . appendChild ( e ) , c . paper . defs . appendChild ( d ) , c . _blur = d , q ( c . node , { filter : "url(#" + d . id + ")" } ) } else c . _blur && ( c . _blur . parentNode . removeChild ( c . _blur ) , delete c . _blur , delete c . attrs . blur ) , c . node . removeAttribute ( "filter" ) ; return c } , a . _engine . circle = function ( a , b , c , d ) { var e = q ( "circle" ) ; a . canvas && a . canvas . appendChild ( e ) ; var f = new A ( e , a ) ; return f . attrs = { cx : b , cy : c , r : d , fill : "none" , stroke : "#000" } , f . type = "circle" , q ( e , f . attrs ) , f } , a . _engine . rect = function ( a , b , c , d , e , f ) { var g = q ( "rect" ) ; a . canvas && a . canvas . appendChild ( g ) ; var h = new A ( g , a ) ; return h . attrs = { x : b , y : c , width : d , height : e , rx : f || 0 , ry : f || 0 , fill : "none" , stroke : "#000" } , h . type = "rect" , q ( g , h . attrs ) ,
} } ) , this . topRightCollection . on ( BI . CollectionView . EVENT _SCROLL , function ( b ) { a . bottomRightCollection . setScrollLeft ( b . scrollLeft ) , a . _populateScrollbar ( ) , a . fireEvent ( BI . Table . EVENT _TABLE _SCROLL , arguments ) } ) , this . bottomLeftCollection = BI . createWidget ( { type : "bi.collection_view" , cellSizeAndPositionGetter : function ( b ) { return a . bottomLeftItems [ b ] } } ) , this . bottomLeftCollection . on ( BI . CollectionView . EVENT _SCROLL , function ( b ) { a . bottomRightCollection . setScrollTop ( b . scrollTop ) , a . topLeftCollection . setScrollLeft ( b . scrollLeft ) , a . _populateScrollbar ( ) , a . fireEvent ( BI . Table . EVENT _TABLE _SCROLL , arguments ) } ) , this . bottomRightCollection = BI . createWidget ( { type : "bi.collection_view" , cellSizeAndPositionGetter : function ( b ) { return a . bottomRightItems [ b ] } } ) , this . bottomRightCollection . on ( BI . CollectionView . EVENT _SCROLL , function ( b ) { a . bottomLeftCollection . setScrollTop ( b . scrollTop ) , a . topRightCollection . setScrollLeft ( b . scrollLeft ) , a . _populateScrollbar ( ) , a . fireEvent ( BI . Table . EVENT _TABLE _SCROLL , arguments ) } ) , this . topLeft = BI . createWidget ( { type : "bi.vertical" , scrollable : ! 1 , scrolly : ! 1 , items : [ this . topLeftCollection ] } ) , this . topRight = BI . createWidget ( { type : "bi.vertical" , scrollable : ! 1 , scrolly : ! 1 , items : [ this . topRightCollection ] } ) , this . bottomLeft = BI . createWidget ( { type : "bi.vertical" , scrollable : ! 1 , scrolly : ! 1 , items : [ this . bottomLeftCollection ] } ) , this . bottomRight = BI . createWidget ( { type : "bi.vertical" , scrollable : ! 1 , scrolly : ! 1 , items : [ this . bottomRightCollection ] } ) , this . contextLayout = BI . createWidget ( { type : "bi.absolute" , element : this , items : [ { el : this . topLeft , top : 0 , left : 0 } , { el : this . topRight , top : 0 } , { el : this . bottomLeft , left : 0 } , { el : this . bottomRight } ] } ) , this . topScrollbar = BI . createWidget ( { type : "bi.grid_table_scrollbar" , width : BI . GridTableScrollbar . SIZE } ) , this . topScrollbar . on ( BI . GridTableScrollbar . EVENT _SCROLL , function ( b ) { a . bottomLeftCollection . setScrollTop ( b ) , a . bottomRightCollection . setScrollTop ( b ) , a . fireEvent ( BI . Table . EVENT _TABLE _SCROLL , arguments ) } ) , this . leftScrollbar = BI . createWidget ( { type : "bi.grid_table_horizontal_scrollbar" , height : BI . GridTableScrollbar . SIZE } ) , this . leftScrollbar . on ( BI . GridTableScrollbar . EVENT _SCROLL , function ( b ) { a . topLeftCollection . setScrollLeft ( b ) , a . bottomLeftCollection . setScrollLeft ( b ) , a . fireEvent ( BI . Table . EVENT _TABLE _SCROLL , arguments ) } ) , this . rightScrollbar = BI . createWidget ( { type : "bi.grid_table_horizontal_scrollbar" , height : BI . GridTableScrollbar . SIZE } ) , this . rightScrollbar . on ( BI . GridTableScrollbar . EVENT _SCROLL , function ( b ) { a . topRightCollection . setScrollLeft ( b ) , a . bottomRightCollection . setScrollLeft ( b ) , a . fireEvent ( BI . Table . EVENT _TABLE _SCROLL , arguments ) } ) , this . scrollBarLayout = BI . createWidget ( { type : "bi.absolute" , element : this , items : [ { el : this . topScrollbar , right : 0 , top : 0 } , { el : this . leftScrollbar , left : 0 } , { el : this . rightScrollbar } ] } ) , this . _width = b . width - BI . GridTableScrollbar . SIZE , this . _height = b . height - BI . GridTableScrollbar . SIZE } , mounted : function ( ) { var a = this . options ; ( a . items . length > 0 || a . header . length > 0 ) && ( this . _digest ( ) , this . _populate ( ) ) } , _getFreezeColLength : function ( ) { var a = this . options ; return a . isNeedFreeze === ! 0 ? BI . clamp ( a . freezeCols . length , 0 , a . columnSize . length ) : 0 } , _getFreezeHeaderHeight : function ( ) { var a = this . options ; return a . header . length * a . headerRowSize >= this . _height ? 0 : a . header . length * a . headerRowSize } , _getActualItems : function ( ) { var a = this . options ; return a . header . length * a . headerRowSize >= this . _height ? a . header . concat ( a . items ) : a . items } , _populateScrollbar : function ( ) { var a = this . options , b = this . getRegionSize ( ) , c = 0 , d = 0 , e = 0 , f = [ ] ; BI . each ( a . columnSize , function ( b , g ) { a . isNeedFreeze === ! 0 && a . freezeCols . contains ( b ) ? c += g : d += g , e += g , 0 === b ? f [ b ] = g : f [ b ] = f [ b - 1 ] + g } ) , this . topScrollbar . setContentSize ( this . _getActualItems ( ) . length * a . rowSize ) , this . topScrollbar . setSize ( this . _height - this . _getFreezeHeaderHeight ( ) ) , this . topScrollbar . setPosition ( this . bottomRightCollection . getScrollTop ( ) ) , this . topScrollbar . populate ( ) , this . leftScrollbar . setContentSize ( c ) , this . leftScrollbar . setSize ( b ) , this . leftScrollbar . setPosition ( this . bottomLeftCollection . getScrollLeft ( ) ) , this . leftScrollbar . populate ( ) , this . rightScrollbar . setContentSize ( d ) , this . rightScrollbar . setSize ( this . _width - b ) , this . rightScrollbar . setPosition ( this . bottomRightCollection . getS
} ) , this . element . on ( "keydown" , BI . bind ( this . _onKeyDown , this ) ) , this . element . on ( "focus" , function ( ) { a . focused = ! 0 , a . _populate ( ) } ) , this . element . on ( "blur" , function ( ) { a . focused = ! 1 , a . _populate ( ) } ) , this . _isHorizontal ( ) ? this . element . addClass ( "scrollbar-layout-main-horizontal" ) : this . element . addClass ( "scrollbar-layout-main-vertical" ) , this . _populate ( ) } , _isHorizontal : function ( ) { return "horizontal" === this . options . orientation } , _getScale : function ( ) { var a = this . options , b = a . size / a . contentSize , c = a . size * b ; return c < this . _const . FACE _SIZE _MIN && ( b = ( a . size - this . _const . FACE _SIZE _MIN ) / ( a . contentSize - a . size ) ) , b } , _getFaceSize : function ( ) { var a = this . options , b = a . size / a . contentSize , c = a . size * b ; return c < this . _const . FACE _SIZE _MIN && ( c = this . _const . FACE _SIZE _MIN ) , c } , _shouldHandleX : function ( a ) { return "horizontal" === this . options . orientation && this . _shouldHandleChange ( a ) } , _shouldHandleY : function ( a ) { return "horizontal" !== this . options . orientation && this . _shouldHandleChange ( a ) } , _shouldHandleChange : function ( a ) { return this . options . position + a !== this . options . position } , _onWheelY : function ( a , b ) { this . _onWheel ( b ) } , _onWheelX : function ( a , b ) { this . _onWheel ( a ) } , _onWheel : function ( a ) { var b = this . options . contentSize - this . options . size ; this . options . position += a , this . options . position < 0 ? this . options . position = 0 : this . options . position > b && ( this . options . position = b ) , this . _populate ( ) , this . fireEvent ( BI . GridTableScrollbar . EVENT _SCROLL , this . options . position ) } , _onMouseDown : function ( a ) { if ( a . target !== this . face . element [ 0 ] ) { var b = this . _isHorizontal ( ) ? a . offsetX : a . offsetY ; b /= this . _getScale ( ) , this . options . position = BI . clamp ( b - . 5 * this . _getFaceSize ( ) / this . _getScale ( ) , 0 , this . options . contentSize - this . options . size ) , this . _populate ( ) , this . fireEvent ( BI . GridTableScrollbar . EVENT _SCROLL , this . options . position ) } else this . _mouseMoveTracker . captureMouseMoves ( a ) ; try { this . element [ 0 ] . focus ( ) } catch ( a ) { } } , _onMouseMove : function ( a , b ) { var c = this . _isHorizontal ( ) ? a : b ; c /= this . _getScale ( ) , this . options . position = BI . clamp ( this . options . position + c , 0 , this . options . contentSize - this . options . size ) , this . isDragging = this . _mouseMoveTracker . isDragging ( ) , this . _populate ( ) , this . fireEvent ( BI . GridTableScrollbar . EVENT _SCROLL , this . options . position ) } , _onMouseMoveEnd : function ( a ) { this . _mouseMoveTracker . releaseMouseMoves ( ) , this . isDragging === ! 0 && ( this . isDragging = ! 1 , this . _populate ( ) ) } , _onKeyDown : function ( a ) { var b = { BACKSPACE : 8 , TAB : 9 , RETURN : 13 , ALT : 18 , ESC : 27 , SPACE : 32 , PAGE _UP : 33 , PAGE _DOWN : 34 , END : 35 , HOME : 36 , LEFT : 37 , UP : 38 , RIGHT : 39 , DOWN : 40 , DELETE : 46 , COMMA : 188 , PERIOD : 190 , A : 65 , Z : 90 , ZERO : 48 , NUMPAD _0 : 96 , NUMPAD _9 : 105 } , c = a . keyCode ; if ( c !== b . TAB ) { var d = 40 , e = 0 ; if ( this . _isHorizontal ( ) ) switch ( c ) { case b . HOME : e = - 1 , d = this . options . contentSize ; break ; case b . LEFT : e = - 1 ; break ; case b . RIGHT : e = 1 ; break ; default : return } if ( ! this . _isHorizontal ( ) ) switch ( c ) { case b . SPACE : e = a . shiftKey ? - 1 : 1 ; break ; case b . HOME : e = - 1 , d = this . options . contentSize ; break ; case b . UP : e = - 1 ; break ; case b . DOWN : e = 1 ; break ; case b . PAGE _UP : e = - 1 , d = this . options . size ; break ; case b . PAGE _DOWN : e = 1 , d = this . options . size ; break ; default : return } this . options . position = BI . clamp ( this . options . position + d * e , 0 , this . options . contentSize - this . options . size ) , a . preventDefault ( ) , this . _populate ( ) , this . fireEvent ( BI . GridTableScrollbar . EVENT _SCROLL , this . options . position ) } } , _populate : function ( ) { var a = this . options ; if ( a . size < 1 || a . contentSize <= a . size ) return void this . setVisible ( ! 1 ) ; this . setVisible ( ! 0 ) ; var b = a . size , c = this . _isHorizontal ( ) , d = this . focused || this . isDragging , e = this . _getFaceSize ( ) , f = a . isOpaque ; this . element [ f === ! 0 ? "addClass" : "removeClass" ] ( "public-scrollbar-main-opaque" ) , this . element [ d === ! 0 ? "addClass" : "removeClass" ] ( "public-scrollbar-main-active" ) , this . face . element [ d === ! 0 ? "addClass" : "removeClass" ] ( "public-scrollbar-face-active" ) ; var g = a . position * this . _getScale ( ) + this . _const . FACE _MARGIN , h = this . contextLayout . attr ( "items" ) ; c ? ( this . setWidth ( b ) , this . face . setWidth ( e - this . _const . FACE _MARGIN _2 ) , h [ 0 ] . left = g , h [ 0 ] . top = 0 ) : ( this . setHeight ( b ) , this . face . setHeight ( e - this . _const . FACE _MARGIN _2 ) , h [ 0 ] . left = 0 , h [ 0 ] . top = g ) , this . contextLayout . attr ( "items" , h ) , this . contextLayout . resize ( ) } , setContentSize : function ( a ) { this . options . contentSize = a } , setPosition : function ( a ) { this . options . position = a } , setSize :
} , getScrollRegionColumnSize : function ( ) { var a = this . options ; return a . isNeedFreeze ? [ this . scrollBottomLeft . element [ 0 ] . scrollWidth , this . scrollBottomRight . element [ 0 ] . scrollWidth ] : [ this . scrollBottomRight . element [ 0 ] . scrollWidth ] } , getScrollRegionRowSize : function ( ) { var a = this . options ; return a . isNeedFreeze ? a . freezeCols . length < a . columnSize . length ? [ this . scrollTopRight . element [ 0 ] . scrollHeight , this . scrollBottomRight . element [ 0 ] . scrollHeight ] : [ this . scrollTopLeft . element [ 0 ] . scrollHeight , this . scrollBottomLeft . element [ 0 ] . scrollHeight ] : [ this . scrollBottomRight . element [ 0 ] . scrollHeight ] } , hasVerticalScroll : function ( ) { var a = this . options ; return a . isNeedFreeze ? this . scrollBottomRight . element . hasVerticalScroll ( ) || this . scrollBottomLeft . element . hasVerticalScroll ( ) : this . scrollBottomRight . element . hasVerticalScroll ( ) } , setVerticalScroll : function ( a ) { var b = this . options ; b . isNeedFreeze ? ( this . scrollBottomRight . element [ 0 ] . scrollTop !== a && ( this . scrollBottomRight . element [ 0 ] . scrollTop = a ) , this . scrollBottomLeft . element [ 0 ] . scrollTop !== a && ( this . scrollBottomLeft . element [ 0 ] . scrollTop = a ) ) : this . scrollBottomRight . element [ 0 ] . scrollTop !== a && ( this . scrollBottomRight . element [ 0 ] . scrollTop = a ) } , setLeftHorizontalScroll : function ( a ) { var b = this . options ; b . isNeedFreeze ? ( this . scrollBottomLeft . element [ 0 ] . scrollLeft !== a && ( this . scrollBottomLeft . element [ 0 ] . scrollLeft = a ) , this . scrollTopLeft . element [ 0 ] . scrollLeft !== a && ( this . scrollTopLeft . element [ 0 ] . scrollLeft = a ) ) : this . scrollBottomRight . element [ 0 ] . scrollLeft !== a && ( this . scrollBottomRight . element [ 0 ] . scrollLeft = a ) } , setRightHorizontalScroll : function ( a ) { var b = this . options ; b . isNeedFreeze ? ( this . scrollBottomRight . element [ 0 ] . scrollLeft !== a && ( this . scrollBottomRight . element [ 0 ] . scrollLeft = a ) , this . scrollTopRight . element [ 0 ] . scrollLeft !== a && ( this . scrollTopRight . element [ 0 ] . scrollLeft = a ) ) : this . scrollBottomRight . element [ 0 ] . scrollLeft !== a && ( this . scrollBottomRight . element [ 0 ] . scrollLeft = a ) } , getVerticalScroll : function ( ) { var a = this . options ; return a . isNeedFreeze ? this . scrollBottomRight . element [ 0 ] . scrollTop || this . scrollBottomLeft . element [ 0 ] . scrollTop : this . scrollBottomRight . element [ 0 ] . scrollTop } , getLeftHorizontalScroll : function ( ) { var a = this . options ; return a . isNeedFreeze ? this . scrollBottomLeft . element [ 0 ] . scrollLeft : this . scrollBottomRight . element [ 0 ] . scrollLeft } , getRightHorizontalScroll : function ( ) { var a = this . options ; return a . isNeedFreeze ? this . scrollBottomRight . element [ 0 ] . scrollLeft : this . scrollBottomRight . element [ 0 ] . scrollLeft } , getColumns : function ( ) { var a = this . options ; return a . isNeedFreeze ? { topLeft : this . topLeftBodyItems , topRight : this . topRightBodyItems , bottomLeft : this . bottomLeftBodyItems , bottomRight : this . bottomRightBodyItems } : { header : this . headerItems , body : this . bodyItems , footer : this . footerItems } } , populate : function ( a , b ) { this . options . items = a || [ ] , b && ( this . options . header = b ) , this . empty ( ) , this . options . isNeedFreeze ? this . _createFreezeTable ( ) : this . _createNormalTable ( ) } } ) , BI . Table . EVENT _TABLE _AFTER _INIT = "EVENT_TABLE_AFTER_INIT" , BI . Table . EVENT _TABLE _RESIZE = "EVENT_TABLE_RESIZE" , BI . Table . EVENT _TABLE _SCROLL = "EVENT_TABLE_SCROLL" , BI . Table . EVENT _TABLE _BEFORE _COLUMN _RESIZE = "EVENT_TABLE_BEFORE_COLUMN_RESIZE" , BI . Table . EVENT _TABLE _COLUMN _RESIZE = "EVENT_TABLE_COLUMN_RESIZE" , BI . Table . EVENT _TABLE _AFTER _COLUMN _RESIZE = "EVENT_TABLE_AFTER_COLUMN_RESIZE" , BI . Table . EVENT _TABLE _BEFORE _REGION _RESIZE = "EVENT_TABLE_BEFORE_REGION_RESIZE" , BI . Table . EVENT _TABLE _REGION _RESIZE = "EVENT_TABLE_REGION_RESIZE" , BI . Table . EVENT _TABLE _AFTER _REGION _RESIZE = "EVENT_TABLE_AFTER_REGION_RESIZE" , BI . shortcut ( "bi.table_view" , BI . Table ) , BI . ResizableTableCell = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . ResizableTableCell . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-resizable-table-cell" , cell : { } , minSize : 15 , maxSize : Number . MAX _VALUE , start : BI . emptyFn , resize : BI . emptyFn , stop : BI . emptyFn } ) } , _init : function ( ) { function a ( a ) { var b = BI . clamp ( a , c . minSize , c . maxSize || Number . MAX _VALUE ) ; return b } BI . ResizableTableCell . superclass . _init . apply ( this , arguments ) ; var b = this , c = this . options ; this . cell = BI . createWidget ( BI . extend ( { type : "bi.label" } , c . cell , { width : c . width , height : c . height } ) ) ; var d = ! 1 , e = 0 , f = 0 , g = c . width , h = new BI . MouseMoveTrack
if ( $$ ( e , consts . id . A , a ) . removeClass ( consts . node . CURSELECTED ) , b ) { data . removeSelectedNode ( a , b ) , a . treeObj . trigger ( consts . event . UNSELECTED , [ event , a . treeId , e ] ) ; break } f . splice ( d , 1 ) , a . treeObj . trigger ( consts . event . UNSELECTED , [ event , a . treeId , e ] ) } } , createNodeCallback : function ( a ) { if ( a . callback . onNodeCreated || a . view . addDiyDom ) for ( var b = data . getRoot ( a ) ; b . createdNodes . length > 0 ; ) { var c = b . createdNodes . shift ( ) ; tools . apply ( a . view . addDiyDom , [ a . treeId , c ] ) , a . callback . onNodeCreated && a . treeObj . trigger ( consts . event . NODECREATED , [ a . treeId , c ] ) } } , createNodes : function ( a , b , c , d ) { if ( c && 0 != c . length ) { var e = data . getRoot ( a ) , f = a . data . key . children , g = ! d || d . open || ! ! $$ ( d [ f ] [ 0 ] , a ) . get ( 0 ) ; e . createdNodes = [ ] ; var h = view . appendNodes ( a , b , c , d , ! 0 , g ) ; if ( d ) { var i = $$ ( d , consts . id . UL , a ) ; i . get ( 0 ) && i . append ( h . join ( "" ) ) } else a . treeObj . append ( h . join ( "" ) ) ; view . createNodeCallback ( a ) } } , destroy : function ( a ) { a && ( data . initCache ( a ) , data . initRoot ( a ) , event . unbindTree ( a ) , event . unbindEvent ( a ) , a . treeObj . empty ( ) , delete settings [ a . treeId ] ) } , expandCollapseNode : function ( a , b , c , d , e ) { var f = data . getRoot ( a ) , g = a . data . key . children ; if ( ! b ) return void tools . apply ( e , [ ] ) ; if ( f . expandTriggerFlag ) { var h = e ; e = function ( ) { h && h ( ) , b . open ? a . treeObj . trigger ( consts . event . EXPAND , [ a . treeId , b ] ) : a . treeObj . trigger ( consts . event . COLLAPSE , [ a . treeId , b ] ) } , f . expandTriggerFlag = ! 1 } if ( ! b . open && b . isParent && ( ! $$ ( b , consts . id . UL , a ) . get ( 0 ) || b [ g ] && b [ g ] . length > 0 && ! $$ ( b [ g ] [ 0 ] , a ) . get ( 0 ) ) && ( view . appendParentULDom ( a , b ) , view . createNodeCallback ( a ) ) , b . open == c ) return void tools . apply ( e , [ ] ) ; var i = $$ ( b , consts . id . UL , a ) , j = $$ ( b , consts . id . SWITCH , a ) , k = $$ ( b , consts . id . ICON , a ) ; b . isParent ? ( b . open = ! b . open , b . iconOpen && b . iconClose && k . attr ( "style" , view . makeNodeIcoStyle ( a , b ) ) , b . open ? ( view . replaceSwitchClass ( b , j , consts . folder . OPEN ) , view . replaceIcoClass ( b , k , consts . folder . OPEN ) , 0 == d || "" == a . view . expandSpeed ? ( i . show ( ) , tools . apply ( e , [ ] ) ) : b [ g ] && b [ g ] . length > 0 ? i . slideDown ( a . view . expandSpeed , e ) : ( i . show ( ) , tools . apply ( e , [ ] ) ) ) : ( view . replaceSwitchClass ( b , j , consts . folder . CLOSE ) , view . replaceIcoClass ( b , k , consts . folder . CLOSE ) , 0 != d && "" != a . view . expandSpeed && b [ g ] && b [ g ] . length > 0 ? i . slideUp ( a . view . expandSpeed , e ) : ( i . hide ( ) , tools . apply ( e , [ ] ) ) ) ) : tools . apply ( e , [ ] ) } , expandCollapseParentNode : function ( a , b , c , d , e ) { if ( b ) { if ( ! b . parentTId ) return void view . expandCollapseNode ( a , b , c , d , e ) ; view . expandCollapseNode ( a , b , c , d ) , b . parentTId && view . expandCollapseParentNode ( a , b . getParentNode ( ) , c , d , e ) } } , expandCollapseSonNode : function ( a , b , c , d , e ) { var f = data . getRoot ( a ) , g = a . data . key . children , h = b ? b [ g ] : f [ g ] , i = ! b && d , j = data . getRoot ( a ) . expandTriggerFlag ; if ( data . getRoot ( a ) . expandTriggerFlag = ! 1 , h ) for ( var k = 0 , l = h . length ; k < l ; k ++ ) h [ k ] && view . expandCollapseSonNode ( a , h [ k ] , c , i ) ; data . getRoot ( a ) . expandTriggerFlag = j , view . expandCollapseNode ( a , b , c , d , e ) } , isSelectedNode : function ( a , b ) { if ( ! b ) return ! 1 ; var c , d = data . getRoot ( a ) . curSelectedList ; for ( c = d . length - 1 ; c >= 0 ; c -- ) if ( b === d [ c ] ) return ! 0 ; return ! 1 } , makeDOMNodeIcon : function ( a , b , c ) { var d = data . getNodeName ( b , c ) , e = b . view . nameIsHTML ? d : d . replace ( /&/g , "&" ) . replace ( /</g , "<" ) . replace ( />/g , ">" ) ; a . push ( "<span id='" , c . tId , consts . id . ICON , "' title='' treeNode" , consts . id . ICON , " class='" , view . makeNodeIcoClass ( b , c ) , "' style='" , view . makeNodeIcoStyle ( b , c ) , "'></span><span id='" , c . tId , consts . id . SPAN , "'>" , e , "</span>" ) } , makeDOMNodeLine : function ( a , b , c ) { a . push ( "<span id='" , c . tId , consts . id . SWITCH , "' title='' class='" , view . makeNodeLineClass ( b , c ) , "' treeNode" , consts . id . SWITCH , "></span>" ) } , makeDOMNodeMainAfter : function ( a , b , c ) { a . push ( "</li>" ) } , makeDOMNodeMainBefore : function ( a , b , c ) { a . push ( "<li id='" , c . tId , "' class='" , consts . className . LEVEL , c . level , "' tabindex='0' hidefocus='true' treenode>" ) } , makeDOMNodeNameAfter : function ( a , b , c ) { a . push ( "</a>" ) } , makeDOMNodeNameBefore : function ( a , b , c ) { var d = data . getNodeTitle ( b , c ) , e = view . makeNodeUrl ( b , c ) , f = view . makeNodeFontCss ( b , c ) , g = [ ] ; for ( var h in f ) g . push ( h , ":" , f [ h ] , ";" ) ; a . push ( "<a id='" , c . tId , consts . id . A , "' class='" , consts . className . LEVEL , c . level , "' treeNode" , consts . id . A , ' onclick="' , c . click || "" , '" ' , null != e && e . length > 0 ? "href='" + e + "'" : "" , " target='" , view . makeNodeTarget ( c ) , "' style='" , g . join ( "" ) , "'" ) , tools . apply ( b . view . showTitle , [ b . treeId , c ] , b . view . showTitle ) && d && a . push ( "title='" , d .
} ) , this . text = BI . createWidget ( { type : "bi.label" , cls : "list-item-text" , textAlign : "left" , whiteSpace : "nowrap" , textHeight : b . height , height : b . height , hgap : b . hgap , text : b . text , keyword : b . keyword , value : b . value , py : b . py } ) , BI . createWidget ( BI . extend ( { element : this } , BI . LogicFactory . createLogic ( "horizontal" , BI . extend ( b . logic , { items : BI . LogicFactory . createLogicItemsByDirection ( "left" , { type : "bi.center_adapt" , items : [ this . radio ] , width : 36 } , this . text ) } ) ) ) ) } , doRedMark : function ( ) { this . text . doRedMark . apply ( this . text , arguments ) } , unRedMark : function ( ) { this . text . unRedMark . apply ( this . text , arguments ) } , doClick : function ( ) { BI . SingleSelectRadioItem . superclass . doClick . apply ( this , arguments ) , this . radio . setSelected ( this . isSelected ( ) ) } , setSelected : function ( a ) { BI . SingleSelectRadioItem . superclass . setSelected . apply ( this , arguments ) , this . radio . setSelected ( a ) } } ) , BI . shortcut ( "bi.single_select_radio_item" , BI . SingleSelectRadioItem ) , BI . ArrowNode = BI . inherit ( BI . NodeButton , { _defaultConfig : function ( ) { var a = BI . ArrowNode . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( a , { baseCls : ( a . baseCls || "" ) + " bi-arrow-group-node bi-list-item" , logic : { dynamic : ! 1 } , id : "" , pId : "" , open : ! 1 , height : 25 } ) } , _init : function ( ) { var a = this , b = this . options ; BI . ArrowNode . superclass . _init . apply ( this , arguments ) , this . checkbox = BI . createWidget ( { type : "bi.arrow_tree_group_node_checkbox" , iconWidth : 13 , iconHeight : 13 } ) , this . text = BI . createWidget ( { type : "bi.label" , textAlign : "left" , whiteSpace : "nowrap" , textHeight : b . height , height : b . height , hgap : b . hgap , text : b . text , value : b . value , py : b . py } ) , this . checkbox . on ( BI . Controller . EVENT _CHANGE , function ( b ) { b === BI . Events . CLICK && a . setSelected ( a . isSelected ( ) ) , a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) } ) ; var c = BI . LogicFactory . createLogicTypeByDirection ( BI . Direction . Left ) , d = BI . LogicFactory . createLogicItemsByDirection ( BI . Direction . Left , { width : 25 , el : this . checkbox } , this . text ) ; BI . createWidget ( BI . extend ( { element : this } , BI . LogicFactory . createLogic ( c , BI . extend ( b . logic , { items : d } ) ) ) ) } , doRedMark : function ( ) { this . text . doRedMark . apply ( this . text , arguments ) } , unRedMark : function ( ) { this . text . unRedMark . apply ( this . text , arguments ) } , doClick : function ( ) { BI . ArrowNode . superclass . doClick . apply ( this , arguments ) , this . checkbox . setSelected ( this . isOpened ( ) ) } , setValue : function ( a ) { this . text . setValue ( a ) } , setOpened : function ( a ) { BI . ArrowNode . superclass . setOpened . apply ( this , arguments ) , this . checkbox . setSelected ( a ) } } ) , BI . shortcut ( "bi.arrow_group_node" , BI . ArrowNode ) , BI . FirstPlusGroupNode = BI . inherit ( BI . NodeButton , { _defaultConfig : function ( ) { var a = BI . FirstPlusGroupNode . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( a , { baseCls : ( a . baseCls || "" ) + " bi-first-plus-group-node bi-list-item" , logic : { dynamic : ! 1 } , id : "" , pId : "" , open : ! 1 , height : 25 } ) } , _init : function ( ) { BI . FirstPlusGroupNode . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . checkbox = BI . createWidget ( { type : "bi.first_tree_node_checkbox" , stopPropagation : ! 0 } ) , this . text = BI . createWidget ( { type : "bi.label" , textAlign : "left" , whiteSpace : "nowrap" , textHeight : b . height , height : b . height , hgap : b . hgap , text : b . text , value : b . value , py : b . py } ) , this . checkbox . on ( BI . Controller . EVENT _CHANGE , function ( b ) { b === BI . Events . CLICK && ( this . isSelected ( ) ? a . triggerExpand ( ) : a . triggerCollapse ( ) ) } ) ; var c = BI . LogicFactory . createLogicTypeByDirection ( BI . Direction . Left ) , d = BI . LogicFactory . createLogicItemsByDirection ( BI . Direction . Left , { width : 25 , el : this . checkbox } , this . text ) ; BI . createWidget ( BI . extend ( { element : this } , BI . LogicFactory . createLogic ( c , BI . extend ( b . logic , { items : d } ) ) ) ) } , doRedMark : function ( ) { this . text . doRedMark . apply ( this . text , arguments ) } , unRedMark : function ( ) { this . text . unRedMark . apply ( this . text , arguments ) } , doClick : function ( ) { BI . FirstPlusGroupNode . superclass . doClick . apply ( this , arguments ) , this . checkbox . setSelected ( this . isSelected ( ) ) } , setOpened : function ( a ) { BI . FirstPlusGroupNode . superclass . setOpened . apply ( this , arguments ) , BI . isNotNull ( this . checkbox ) && this . checkbox . setSelected ( a ) } } ) , BI . shortcut ( "bi.first_plus_group_node" , BI . FirstPlusGroupNode ) , BI . IconArrowNode = BI . inherit ( BI . NodeButton , { _defaultConfig : function ( ) { var a = BI . IconArrowNode . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend (
} , setSelected : function ( a ) { BI . FirstTreeNodeCheckbox . superclass . setSelected . apply ( this , arguments ) , a === ! 0 ? this . element . addClass ( "tree-expand-icon-type2" ) : this . element . removeClass ( "tree-expand-icon-type2" ) } } ) , BI . shortcut ( "bi.first_tree_node_checkbox" , BI . FirstTreeNodeCheckbox ) , BI . LastTreeNodeCheckbox = BI . inherit ( BI . IconButton , { _defaultConfig : function ( ) { return BI . extend ( BI . LastTreeNodeCheckbox . superclass . _defaultConfig . apply ( this , arguments ) , { extraCls : "tree-collapse-icon-type4" , iconWidth : 25 , iconHeight : 25 } ) } , _init : function ( ) { BI . LastTreeNodeCheckbox . superclass . _init . apply ( this , arguments ) } , setSelected : function ( a ) { BI . LastTreeNodeCheckbox . superclass . setSelected . apply ( this , arguments ) , a === ! 0 ? this . element . addClass ( "tree-expand-icon-type3" ) : this . element . removeClass ( "tree-expand-icon-type3" ) } } ) , BI . shortcut ( "bi.last_tree_node_checkbox" , BI . LastTreeNodeCheckbox ) , BI . MidTreeNodeCheckbox = BI . inherit ( BI . IconButton , { _defaultConfig : function ( ) { return BI . extend ( BI . MidTreeNodeCheckbox . superclass . _defaultConfig . apply ( this , arguments ) , { extraCls : "tree-collapse-icon-type3" , iconWidth : 25 , iconHeight : 25 } ) } , _init : function ( ) { BI . MidTreeNodeCheckbox . superclass . _init . apply ( this , arguments ) } , setSelected : function ( a ) { BI . MidTreeNodeCheckbox . superclass . setSelected . apply ( this , arguments ) , a === ! 0 ? this . element . addClass ( "tree-expand-icon-type3" ) : this . element . removeClass ( "tree-expand-icon-type3" ) } } ) , BI . shortcut ( "bi.mid_tree_node_checkbox" , BI . MidTreeNodeCheckbox ) , BI . TreeGroupNodeCheckbox = BI . inherit ( BI . IconButton , { _defaultConfig : function ( ) { return BI . extend ( BI . TreeGroupNodeCheckbox . superclass . _defaultConfig . apply ( this , arguments ) , { extraCls : "tree-node-triangle-collapse-font" , iconWidth : 13 , iconHeight : 13 } ) } , _init : function ( ) { BI . TreeGroupNodeCheckbox . superclass . _init . apply ( this , arguments ) } , setSelected : function ( a ) { BI . TreeGroupNodeCheckbox . superclass . setSelected . apply ( this , arguments ) , a ? this . element . removeClass ( "tree-node-triangle-collapse-font" ) . addClass ( "tree-node-triangle-expand-font" ) : this . element . removeClass ( "tree-node-triangle-expand-font" ) . addClass ( "tree-node-triangle-collapse-font" ) } } ) , BI . shortcut ( "bi.tree_group_node_checkbox" , BI . TreeGroupNodeCheckbox ) , BI . TreeNodeCheckbox = BI . inherit ( BI . IconButton , { _defaultConfig : function ( ) { return BI . extend ( BI . TreeNodeCheckbox . superclass . _defaultConfig . apply ( this , arguments ) , { extraCls : "tree-collapse-icon-type1" , iconWidth : 25 , iconHeight : 25 } ) } , _init : function ( ) { BI . TreeNodeCheckbox . superclass . _init . apply ( this , arguments ) } , setSelected : function ( a ) { BI . TreeNodeCheckbox . superclass . setSelected . apply ( this , arguments ) , a ? this . element . addClass ( "tree-expand-icon-type1" ) : this . element . removeClass ( "tree-expand-icon-type1" ) } } ) , BI . shortcut ( "bi.tree_node_checkbox" , BI . TreeNodeCheckbox ) ; try { ! function ( a ) { if ( "object" == typeof exports && "undefined" != typeof module ) module . exports = a ( ) ; else if ( "function" == typeof define && define . amd ) define ( [ ] , a ) ; else { var b ; b = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof self ? self : this , b . Clipboard = a ( ) } } ( function ( ) { var a ; return function b ( a , c , d ) { function e ( g , h ) { if ( ! c [ g ] ) { if ( ! a [ g ] ) { var i = "function" == typeof require && require ; if ( ! h && i ) return i ( g , ! 0 ) ; if ( f ) return f ( g , ! 0 ) ; var j = new Error ( "Cannot find module '" + g + "'" ) ; throw j . code = "MODULE_NOT_FOUND" , j } var k = c [ g ] = { exports : { } } ; a [ g ] [ 0 ] . call ( k . exports , function ( b ) { var c = a [ g ] [ 1 ] [ b ] ; return e ( c ? c : b ) } , k , k . exports , b , a , c , d ) } return c [ g ] . exports } for ( var f = "function" == typeof require && require , g = 0 ; g < d . length ; g ++ ) e ( d [ g ] ) ; return e } ( { 1 : [ function ( a , b , c ) { function d ( a , b ) { for ( ; a && a . nodeType !== e ; ) { if ( a . matches ( b ) ) return a ; a = a . parentNode } } var e = 9 ; if ( "undefined" != typeof Element && ! Element . prototype . matches ) { var f = Element . prototype ; f . matches = f . matchesSelector || f . mozMatchesSelector || f . msMatchesSelector || f . oMatchesSelector || f . webkitMatchesSelector } b . exports = d } , { } ] , 2 : [ function ( a , b , c ) { function d ( a , b , c , d , f ) { var g = e . apply ( this , arguments ) ; return a . addEventListener ( c , g , f ) , { destroy : function ( ) { a . removeEventListener ( c , g , f ) } } } function e ( a , b , c , d ) { return function ( c ) { c . delegateTarget = f ( c . target , b ) , c . delegateTarget && d . call ( a , c ) } } var f = a ( "./closest" ) ; b . exports = d } , { "./closest" : 1 } ] , 3 : [ function ( a , b , c ) { c . node = function ( a
a . R . isValid ( ) && a . G . isValid ( ) && a . B . isValid ( ) && ( a . colorShow . element . css ( "background-color" , a . getValue ( ) ) , a . fireEvent ( BI . ColorPickerEditor . EVENT _CHANGE ) ) } ) } ) , this . R = d [ 0 ] , this . G = d [ 1 ] , this . B = d [ 2 ] , this . none = BI . createWidget ( { type : "bi.checkbox" , title : BI . i18nText ( "BI-Basic_Auto" ) } ) , this . none . on ( BI . Checkbox . EVENT _CHANGE , function ( ) { this . isSelected ( ) ? ( a . lastColor = a . getValue ( ) , a . setValue ( "" ) ) : a . setValue ( a . lastColor || "#000000" ) , a . R . isValid ( ) && a . G . isValid ( ) && a . B . isValid ( ) && ( a . colorShow . element . css ( "background-color" , a . getValue ( ) ) , a . fireEvent ( BI . ColorPickerEditor . EVENT _CHANGE ) ) } ) , this . transparent = BI . createWidget ( { type : "bi.checkbox" , title : BI . i18nText ( "BI-Transparent_Color" ) } ) , this . transparent . on ( BI . Checkbox . EVENT _CHANGE , function ( ) { this . isSelected ( ) ? ( a . lastColor = a . getValue ( ) , a . setValue ( "transparent" ) ) : a . setValue ( a . lastColor || "#000000" ) , a . R . isValid ( ) && a . G . isValid ( ) && a . B . isValid ( ) && ( a . colorShow . element . css ( "background-color" , a . getValue ( ) ) , a . fireEvent ( BI . ColorPickerEditor . EVENT _CHANGE ) ) } ) , BI . createWidget ( { type : "bi.htape" , element : this , items : [ { el : this . colorShow , width : "fill" } , { el : b [ 0 ] , lgap : 10 , width : 16 } , { el : this . R , width : 32 } , { el : b [ 1 ] , lgap : 10 , width : 16 } , { el : this . G , width : 32 } , { el : b [ 2 ] , lgap : 10 , width : 16 } , { el : this . B , width : 32 } , { el : { type : "bi.center_adapt" , items : [ this . none ] } , width : 18 } , { el : { type : "bi.center_adapt" , items : [ this . transparent ] } , width : 18 } ] } ) } , setValue : function ( a ) { if ( "transparent" === a ) return this . transparent . setSelected ( ! 0 ) , this . none . setSelected ( ! 1 ) , this . R . setValue ( "" ) , this . G . setValue ( "" ) , void this . B . setValue ( "" ) ; a ? this . none . setSelected ( ! 1 ) : ( a = "" , this . none . setSelected ( ! 0 ) ) , this . transparent . setSelected ( ! 1 ) , this . colorShow . element . css ( "background-color" , a ) ; var b = BI . DOM . rgb2json ( BI . DOM . hex2rgb ( a ) ) ; this . R . setValue ( BI . isNull ( b . r ) ? "" : b . r ) , this . G . setValue ( BI . isNull ( b . g ) ? "" : b . g ) , this . B . setValue ( BI . isNull ( b . b ) ? "" : b . b ) } , getValue : function ( ) { return this . transparent . isSelected ( ) ? "transparent" : BI . DOM . rgb2hex ( BI . DOM . json2rgb ( { r : this . R . getValue ( ) , g : this . G . getValue ( ) , b : this . B . getValue ( ) } ) ) } } ) , BI . ColorPickerEditor . EVENT _CHANGE = "ColorPickerEditor.EVENT_CHANGE" , BI . shortcut ( "bi.color_picker_editor" , BI . ColorPickerEditor ) , BI . Farbtastic = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . Farbtastic . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-farbtastic" , width : 195 , height : 195 } ) } , _init : function ( ) { BI . Farbtastic . superclass . _init . apply ( this , arguments ) } , mounted : function ( ) { var a = this ; this . farbtastic = $ . farbtastic ( this . element , function ( b ) { a . fireEvent ( BI . Farbtastic . EVENT _CHANGE , a . getValue ( ) , a ) } ) } , setValue : function ( a ) { this . farbtastic . setColor ( a ) } , getValue : function ( ) { return this . farbtastic . color } } ) , BI . Farbtastic . EVENT _CHANGE = "Farbtastic.EVENT_CHANGE" , BI . shortcut ( "bi.farbtastic" , BI . Farbtastic ) , jQuery . fn . farbtastic = function ( a ) { return $ . farbtastic ( this , a ) , this } , jQuery . farbtastic = function ( a , b ) { var a = $ ( a ) . get ( 0 ) ; return a . farbtastic || ( a . farbtastic = new jQuery . _farbtastic ( a , b ) ) } , jQuery . _farbtastic = function ( a , b ) { var c = this ; $ ( a ) . html ( '<div class="farbtastic"><div class="color"></div><div class="wheel"></div><div class="overlay"></div><div class="h-marker marker"></div><div class="sl-marker marker"></div></div>' ) ; var d = $ ( ".farbtastic" , a ) ; c . wheel = $ ( ".wheel" , a ) . get ( 0 ) , c . radius = 84 , c . square = 100 , c . width = 194 , navigator . appVersion . match ( /MSIE [0-6]\./ ) && $ ( "*" , d ) . each ( function ( ) { if ( "none" != this . currentStyle . backgroundImage ) { var a = this . currentStyle . backgroundImage ; a = this . currentStyle . backgroundImage . substring ( 5 , a . length - 2 ) , $ ( this ) . css ( { backgroundImage : "none" , filter : "progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, sizingMethod=crop, src='" + a + "')" } ) } } ) , c . linkTo = function ( a ) { return "object" == typeof c . callback && $ ( c . callback ) . unbind ( "keyup" , c . updateValue ) , c . color = null , "function" == typeof a ? c . callback = a : "object" != typeof a && "string" != typeof a || ( c . callback = $ ( a ) , c . callback . bind ( "keyup" , c . updateValue ) , c . callback . get ( 0 ) . value && c . setColor ( c . callback . get ( 0 ) . value ) ) , this } , c . updateValue = function ( a ) { this . value && this . value != c . color && c . setColor ( this . value ) } , c . setColor = function ( a ) { var b = c . unpack ( a ) ; return c . color != a && b && ( c . color = a , c . rgb = b , c . hsl = c . RGBToHSL ( c . rgb ) , c . updateDisplay
a . setValue ( a . combo . getValue ( ) [ 0 ] . childValue ) , a . fireEvent ( BI . TextValueDownListCombo . EVENT _CHANGE ) } ) } , _createValueMap : function ( ) { var a = this ; this . valueMap = { } , BI . each ( BI . flatten ( this . options . items ) , function ( b , c ) { BI . has ( c , "el" ) ? BI . each ( c . children , function ( b , d ) { a . valueMap [ d . value ] = { value : c . el . value , childValue : d . value } } ) : a . valueMap [ c . value ] = { value : c . value } } ) } , setValue : function ( a ) { a = this . valueMap [ a ] , this . combo . setValue ( [ a ] ) , this . trigger . setValue ( a . childValue || a . value ) } , getValue : function ( ) { var a = this . combo . getValue ( ) [ 0 ] ; return [ a . childValue || a . value ] } , populate : function ( a ) { this . options . items = BI . flatten ( a ) , this . combo . populate ( a ) , this . _createValueMap ( ) } } ) , BI . TextValueDownListCombo . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.text_value_down_list_combo" , BI . TextValueDownListCombo ) , BI . DownListSelectTextTrigger = BI . inherit ( BI . Trigger , { _defaultConfig : function ( ) { return BI . extend ( BI . DownListSelectTextTrigger . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-down-list-select-text-trigger" , height : 24 , text : "" } ) } , _init : function ( ) { BI . DownListSelectTextTrigger . superclass . _init . apply ( this , arguments ) ; var a = this . options ; this . trigger = BI . createWidget ( { type : "bi.select_text_trigger" , element : this , height : a . height , items : this . _formatItemArray ( a . items ) , text : a . text } ) } , _formatItemArray : function ( ) { var a = BI . flatten ( BI . deepClone ( this . options . items ) ) , b = [ ] ; return BI . each ( a , function ( a , c ) { BI . has ( c , "el" ) ? ( BI . each ( c . children , function ( a , b ) { b . text = c . el . text + "(" + b . text + ")" } ) , b = BI . concat ( b , c . children ) ) : b . push ( c ) } ) , b } , setValue : function ( a ) { this . trigger . setValue ( a ) } , populate : function ( a ) { this . trigger . populate ( this . _formatItemArray ( a ) ) } } ) , BI . shortcut ( "bi.down_list_select_text_trigger" , BI . DownListSelectTextTrigger ) , BI . ClearEditor = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { var a = BI . ClearEditor . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( a , { baseCls : "bi-clear-editor" , height : 24 , errorText : "" , watermark : "" , validationChecker : BI . emptyFn , quitChecker : BI . emptyFn } ) } , _init : function ( ) { BI . ClearEditor . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . editor = BI . createWidget ( { type : "bi.editor" , height : b . height , watermark : b . watermark , allowBlank : ! 0 , errorText : b . errorText , validationChecker : b . validationChecker , quitChecker : b . quitChecker } ) , this . clear = BI . createWidget ( { type : "bi.icon_button" , stopEvent : ! 0 , cls : "search-close-h-font" } ) , this . clear . on ( BI . IconButton . EVENT _CHANGE , function ( ) { a . setValue ( "" ) , a . fireEvent ( BI . Controller . EVENT _CHANGE , BI . Events . STOPEDIT ) , a . fireEvent ( BI . ClearEditor . EVENT _CLEAR ) } ) , BI . createWidget ( { element : this , type : "bi.htape" , items : [ { el : this . editor } , { el : this . clear , width : 25 } ] } ) , this . editor . on ( BI . Controller . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) } ) , this . editor . on ( BI . Editor . EVENT _FOCUS , function ( ) { a . fireEvent ( BI . ClearEditor . EVENT _FOCUS ) } ) , this . editor . on ( BI . Editor . EVENT _BLUR , function ( ) { a . fireEvent ( BI . ClearEditor . EVENT _BLUR ) } ) , this . editor . on ( BI . Editor . EVENT _CLICK , function ( ) { a . fireEvent ( BI . ClearEditor . EVENT _CLICK ) } ) , this . editor . on ( BI . Editor . EVENT _CHANGE , function ( ) { a . _checkClear ( ) , a . fireEvent ( BI . ClearEditor . EVENT _CHANGE ) } ) , this . editor . on ( BI . Editor . EVENT _KEY _DOWN , function ( b ) { a . fireEvent ( BI . ClearEditor . EVENT _KEY _DOWN , b ) } ) , this . editor . on ( BI . Editor . EVENT _SPACE , function ( ) { a . fireEvent ( BI . ClearEditor . EVENT _SPACE ) } ) , this . editor . on ( BI . Editor . EVENT _BACKSPACE , function ( ) { a . fireEvent ( BI . ClearEditor . EVENT _BACKSPACE ) } ) , this . editor . on ( BI . Editor . EVENT _VALID , function ( ) { a . fireEvent ( BI . ClearEditor . EVENT _VALID ) } ) , this . editor . on ( BI . Editor . EVENT _ERROR , function ( ) { a . fireEvent ( BI . ClearEditor . EVENT _ERROR ) } ) , this . editor . on ( BI . Editor . EVENT _ENTER , function ( ) { a . fireEvent ( BI . ClearEditor . EVENT _ENTER ) } ) , this . editor . on ( BI . Editor . EVENT _RESTRICT , function ( ) { a . fireEvent ( BI . ClearEditor . EVENT _RESTRICT ) } ) , this . editor . on ( BI . Editor . EVENT _EMPTY , function ( ) { a . _checkClear ( ) , a . fireEvent ( BI . ClearEditor . EVENT _EMPTY ) } ) , this . editor . on ( BI . Editor . EVENT _REMOVE , function ( ) { a . fireEvent ( BI . ClearEditor . EVENT _REMOVE ) } ) , this . editor . on ( BI . Editor . EVENT _CONFIRM , function ( ) { a . fireEvent ( BI . ClearEditor . EVENT _CONFIRM ) } ) , this . editor . on ( BI . Editor . EVENT _START , function ( ) { a . fireEvent ( BI . Cle
BI . isNumber ( a ) ? void ( a === BI . Selection . All ? ( this . text . setText ( BI . i18nText ( "BI-Already_Selected" ) ) , this . text . element . removeClass ( "state-editor-infinite-text" ) ) : a === BI . Selection . Multi ? ( this . text . setText ( BI . i18nText ( "BI-Already_Selected" ) ) , this . text . element . removeClass ( "state-editor-infinite-text" ) ) : ( this . text . setText ( BI . i18nText ( "BI-Basic_Unrestricted" ) ) , this . text . element . addClass ( "state-editor-infinite-text" ) ) ) : void ( BI . isArray ( a ) && 1 !== a . length ? BI . isEmpty ( a ) ? ( this . text . setText ( BI . i18nText ( "BI-Basic_Unrestricted" ) ) , this . text . element . addClass ( "state-editor-infinite-text" ) ) : ( this . text . setText ( BI . i18nText ( "BI-Already_Selected" ) ) , this . text . element . removeClass ( "state-editor-infinite-text" ) ) : ( this . text . setText ( a ) , this . text . setTitle ( a ) , this . text . element . removeClass ( "state-editor-infinite-text" ) ) ) } } ) , BI . SimpleStateEditor . EVENT _CHANGE = "EVENT_CHANGE" , BI . SimpleStateEditor . EVENT _FOCUS = "EVENT_FOCUS" , BI . SimpleStateEditor . EVENT _BLUR = "EVENT_BLUR" , BI . SimpleStateEditor . EVENT _CLICK = "EVENT_CLICK" , BI . SimpleStateEditor . EVENT _KEY _DOWN = "EVENT_KEY_DOWN" , BI . SimpleStateEditor . EVENT _CLICK _LABEL = "EVENT_CLICK_LABEL" , BI . SimpleStateEditor . EVENT _START = "EVENT_START" , BI . SimpleStateEditor . EVENT _PAUSE = "EVENT_PAUSE" , BI . SimpleStateEditor . EVENT _STOP = "EVENT_STOP" , BI . SimpleStateEditor . EVENT _CONFIRM = "EVENT_CONFIRM" , BI . SimpleStateEditor . EVENT _VALID = "EVENT_VALID" , BI . SimpleStateEditor . EVENT _ERROR = "EVENT_ERROR" , BI . SimpleStateEditor . EVENT _ENTER = "EVENT_ENTER" , BI . SimpleStateEditor . EVENT _RESTRICT = "EVENT_RESTRICT" , BI . SimpleStateEditor . EVENT _SPACE = "EVENT_SPACE" , BI . SimpleStateEditor . EVENT _EMPTY = "EVENT_EMPTY" , BI . shortcut ( "bi.simple_state_editor" , BI . SimpleStateEditor ) , BI . BarPopoverSection = BI . inherit ( BI . PopoverSection , { _defaultConfig : function ( ) { return BI . extend ( BI . BarPopoverSection . superclass . _defaultConfig . apply ( this , arguments ) , { btns : [ BI . i18nText ( BI . i18nText ( "BI-Basic_Sure" ) ) , BI . i18nText ( BI . i18nText ( "BI-Basic_Cancel" ) ) ] } ) } , _init : function ( ) { BI . BarPopoverSection . superclass . _init . apply ( this , arguments ) } , rebuildSouth : function ( a ) { var b = this , c = this . options ; this . sure = BI . createWidget ( { type : "bi.button" , text : this . options . btns [ 0 ] , warningTitle : c . warningTitle , height : 30 , value : 0 , handler : function ( a ) { b . end ( ) , b . close ( a ) } } ) , this . cancel = BI . createWidget ( { type : "bi.button" , text : this . options . btns [ 1 ] , height : 30 , value : 1 , level : "ignore" , handler : function ( a ) { b . close ( a ) } } ) , BI . createWidget ( { type : "bi.right_vertical_adapt" , element : a , lgap : 10 , items : [ this . cancel , this . sure ] } ) } , setConfirmButtonEnable : function ( a ) { this . sure . setEnable ( ! ! a ) } } ) , BI . MultiPopupView = BI . inherit ( BI . PopupView , { _defaultConfig : function ( ) { var a = BI . MultiPopupView . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( a , { baseCls : ( a . baseCls || "" ) + " bi-multi-list-view" , buttons : [ BI . i18nText ( "BI-Basic_Sure" ) ] } ) } , _init : function ( ) { BI . MultiPopupView . superclass . _init . apply ( this , arguments ) } , _createToolBar : function ( ) { var a = this . options , b = this ; if ( 0 !== a . buttons . length ) { var c = [ ] ; return BI . each ( a . buttons , function ( a , b ) { c . push ( { text : b , value : a } ) } ) , this . buttongroup = BI . createWidget ( { type : "bi.button_group" , cls : "list-view-toolbar bi-high-light bi-border-top" , height : 30 , items : BI . createItems ( c , { type : "bi.text_button" , once : ! 1 , shadow : ! 0 , isShadowShowingOnSelected : ! 0 } ) , layouts : [ { type : "bi.center" , hgap : 0 , vgap : 0 } ] } ) , this . buttongroup . on ( BI . ButtonGroup . EVENT _CHANGE , function ( a , c ) { b . fireEvent ( BI . MultiPopupView . EVENT _CLICK _TOOLBAR _BUTTON , a , c ) } ) , this . buttongroup } } } ) , BI . MultiPopupView . EVENT _CHANGE = "EVENT_CHANGE" , BI . MultiPopupView . EVENT _CLICK _TOOLBAR _BUTTON = "EVENT_CLICK_TOOLBAR_BUTTON" , BI . shortcut ( "bi.multi_popup_view" , BI . MultiPopupView ) , BI . PopupPanel = BI . inherit ( BI . MultiPopupView , { _defaultConfig : function ( ) { var a = BI . PopupPanel . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( a , { baseCls : ( a . baseCls || "" ) + " bi-popup-panel" , title : "" } ) } , _init : function ( ) { BI . PopupPanel . superclass . _init . apply ( this , arguments ) } , _createTool : function ( ) { var a = this , b = this . options , c = BI . createWidget ( { type : "bi.icon_button" , cls : "close-h-font" , width : 25 , height : 25 } ) ; return c . on ( BI . IconButton . EVENT _CHANGE , function ( ) { a . setVisible ( ! 1 ) , a . fireEvent ( BI . PopupPanel . EVENT _CLOSE ) } ) , BI . createWidget ( { type : "bi.htape" , cl
case "last" : return BI . MAX ; default : return a } } , attr : function ( a , b ) { BI . DetailPager . superclass . attr . apply ( this , arguments ) , "curr" === a && ( this . currPage = BI . result ( this . options , "curr" ) ) } , populate : function ( ) { this . _populate ( ) } } ) , BI . DetailPager . EVENT _CHANGE = "EVENT_CHANGE" , BI . DetailPager . EVENT _AFTER _POPULATE = "EVENT_AFTER_POPULATE" , BI . shortcut ( "bi.detail_pager" , BI . DetailPager ) , BI . RichEditorAction = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . RichEditorAction . superclass . _defaultConfig . apply ( this , arguments ) , { width : 20 , height : 20 , command : "" } ) } , _init : function ( ) { BI . RichEditorAction . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; b . editor . on ( BI . NicEditor . EVENT _SELECTED , function ( b ) { a . setEnable ( ! 0 ) , a . checkNodes ( b . target ) , a . key ( b ) } ) , b . editor . on ( BI . NicEditor . EVENT _BLUR , function ( ) { a . setEnable ( ! 1 ) } ) , b . editor . on ( BI . NicEditor . EVENT _KEYDOWN , BI . bind ( this . keydown , this ) ) } , checkNodes : function ( a ) { if ( ! a ) return ! 1 ; var b = a ; do if ( this . options . tags && this . options . tags . contains ( b . nodeName ) ) return this . activate ( ) , ! 0 ; while ( b = b . parentNode && b . className && b . className . indexOf ( "bi-nic-editor" ) >= - 1 ) ; for ( b = a ; 3 == b . nodeType ; ) b = b . parentNode ; if ( this . options . css ) for ( var c in this . options . css ) if ( $ ( b ) . css ( c ) == this . options . css [ c ] ) return this . activate ( ) , ! 0 ; return this . deactivate ( ) , ! 1 } , start : function ( ) { } , key : function ( ) { } , keydown : function ( ) { } , hideIf : function ( a ) { } , activate : function ( ) { } , deactivate : function ( ) { } , doCommand : function ( a ) { this . options . command && this . options . editor . nicCommand ( this . options . command , a ) } } ) , BI . RichEditorParamAction = BI . inherit ( BI . RichEditorAction , { _defaultConfig : function ( ) { return BI . extend ( BI . RichEditorParamAction . superclass . _defaultConfig . apply ( this , arguments ) , { } ) } , _init : function ( ) { BI . RichEditorParamAction . superclass . _init . apply ( this , arguments ) } , _createBlankNode : function ( ) { return $ ( "<span>" ) . html ( " " ) } , _addBlank : function ( a ) { var b = this . options , c = b . editor . selectedInstance , d = a . next ( ) ; if ( 0 === d . length ) { var e = this . _createBlankNode ( ) ; a . after ( e ) , c . setFocus ( e [ 0 ] ) } else c . setFocus ( d [ 0 ] ) } , addParam : function ( a ) { var b = this . options , c = b . editor . instance , d = new Image , e = document . createElement ( "canvas" ) ; $ ( "body" ) . append ( e ) , e . width = BI . DOM . getTextSizeWidth ( a , 14 ) + 6 , e . height = 16 ; var f = e . getContext ( "2d" ) ; f . font = "14px Georgia" , f . fillStyle = "#ffffff" , f . fillText ( a , 3 , 14 ) , d . src = e . toDataURL ( "image/png" ) , d . alt = a , $ ( d ) . css ( { "background-color" : "#3f8ce8" , "vertical-align" : "sub" , margin : "0 3px;" } ) , c . getElm ( ) . element . append ( d ) , this . _addBlank ( $ ( d ) ) , $ ( e ) . destroy ( ) } } ) , BI . RichEditorTextToolbar = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . RichEditorTextToolbar . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-rich-editor-text-toolbar bi-background" , buttons : [ { type : "bi.rich_editor_size_chooser" } , { type : "bi.rich_editor_bold_button" } , { type : "bi.rich_editor_italic_button" } , { type : "bi.rich_editor_underline_button" } , { type : "bi.rich_editor_color_chooser" } , { type : "bi.rich_editor_background_color_chooser" } , { type : "bi.rich_editor_align_left_button" } , { type : "bi.rich_editor_align_center_button" } , { type : "bi.rich_editor_align_right_button" } , { type : "bi.rich_editor_param_button" } ] , height : 28 } ) } , _init : function ( ) { BI . RichEditorTextToolbar . superclass . _init . apply ( this , arguments ) ; var a = this . options , b = BI . createWidgets ( BI . map ( a . buttons , function ( b , c ) { return BI . extend ( c , { editor : a . editor } ) } ) ) ; this . element . mousedown ( function ( a ) { BI . each ( b , function ( b , c ) { c . hideIf ( a ) } ) } ) , BI . createWidget ( { type : "bi.left" , element : this , items : b , hgap : 3 , vgap : 3 } ) } , mounted : function ( ) { var a = this ; BI . isIE9Below ( ) && ( this . element . mousedown ( function ( ) { a . _noSelect ( a . element [ 0 ] ) } ) , this . _noSelect ( this . element [ 0 ] ) ) } , _noSelect : function ( a ) { a . setAttribute && "input" != a . nodeName . toLowerCase ( ) && "textarea" != a . nodeName . toLowerCase ( ) && a . setAttribute ( "unselectable" , "on" ) ; for ( var b = 0 ; b < a . childNodes . length ; b ++ ) this . _noSelect ( a . childNodes [ b ] ) } } ) , BI . shortcut ( "bi.rich_editor_text_toolbar" , BI . RichEditorTextToolbar ) , ! function ( ) { BI . NicEditor = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . NicEditor . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-nic-editor" } ) } , _init : function ( ) { BI . NicEditor . superclass . _i
var a = this , b = this . options , c = this . _digest ( ) ; this . table = BI . createWidget ( b . el , { type : "bi.resizable_table" , element : this , width : b . width , height : b . height , isNeedResize : b . isNeedResize , isResizeAdapt : b . isResizeAdapt , isNeedFreeze : b . isNeedFreeze , freezeCols : b . freezeCols , isNeedMerge : b . isNeedMerge , mergeCols : b . mergeCols , mergeRule : b . mergeRule , columnSize : b . columnSize , minColumnSize : b . minColumnSize , maxColumnSize : b . maxColumnSize , headerRowSize : b . headerRowSize , rowSize : b . rowSize , regionColumnSize : b . regionColumnSize , header : c . header , items : c . items } ) , this . table . on ( BI . Table . EVENT _TABLE _SCROLL , function ( ) { a . fireEvent ( BI . Table . EVENT _TABLE _SCROLL , arguments ) } ) , this . table . on ( BI . Table . EVENT _TABLE _AFTER _REGION _RESIZE , function ( ) { b . regionColumnSize = this . getRegionColumnSize ( ) ; var c = this . getColumnSize ( ) , d = b . columnSize . length - c . length ; b . columnSize = c . slice ( ) , b . columnSize = b . columnSize . concat ( BI . makeArray ( d , 0 ) ) , a . fireEvent ( BI . Table . EVENT _TABLE _AFTER _REGION _RESIZE , arguments ) } ) , this . table . on ( BI . Table . EVENT _TABLE _AFTER _COLUMN _RESIZE , function ( ) { b . regionColumnSize = this . getRegionColumnSize ( ) ; var c = this . getColumnSize ( ) , d = b . columnSize . length - c . length ; b . columnSize = c . slice ( ) , b . columnSize = b . columnSize . concat ( BI . makeArray ( d , 0 ) ) , a . fireEvent ( BI . Table . EVENT _TABLE _AFTER _COLUMN _RESIZE , arguments ) } ) } , _digest : function ( ) { var a = this . options , b = this . _getHDeep ( ) , c = this . _getVDeep ( ) , d = BI . TableTree . formatHeader ( a . header , a . crossHeader , a . crossItems , b , c , a . headerCellStyleGetter ) , e = BI . DynamicSummaryTreeTable . formatHorizontalItems ( a . items , b , ! 1 , a . summaryCellStyleGetter ) , f = BI . DynamicSummaryTreeTable . formatSummaryItems ( e , d , a . crossItems , b ) , g = a . columnSize . slice ( ) , h = a . minColumnSize . slice ( ) , i = a . maxColumnSize . slice ( ) ; return BI . removeAt ( g , f . deletedCols ) , BI . removeAt ( h , f . deletedCols ) , BI . removeAt ( i , f . deletedCols ) , { header : f . header , items : f . items , columnSize : g , minColumnSize : h , maxColumnSize : i } } , setWidth : function ( a ) { BI . DynamicSummaryTreeTable . superclass . setWidth . apply ( this , arguments ) , this . table . setWidth ( a ) } , setHeight : function ( a ) { BI . DynamicSummaryTreeTable . superclass . setHeight . apply ( this , arguments ) , this . table . setHeight ( a ) } , setColumnSize : function ( a ) { this . options . columnSize = a } , getColumnSize : function ( ) { return this . options . columnSize } , setRegionColumnSize : function ( a ) { this . options . regionColumnSize = a , this . table . setRegionColumnSize ( a ) } , getRegionColumnSize : function ( ) { return this . table . getRegionColumnSize ( ) } , setVerticalScroll : function ( a ) { this . table . setVerticalScroll ( a ) } , setLeftHorizontalScroll : function ( a ) { this . table . setLeftHorizontalScroll ( a ) } , setRightHorizontalScroll : function ( a ) { this . table . setRightHorizontalScroll ( a ) } , getVerticalScroll : function ( ) { return this . table . getVerticalScroll ( ) } , getLeftHorizontalScroll : function ( ) { return this . table . getLeftHorizontalScroll ( ) } , getRightHorizontalScroll : function ( ) { return this . table . getRightHorizontalScroll ( ) } , attr : function ( a ) { switch ( BI . DynamicSummaryTreeTable . superclass . attr . apply ( this , arguments ) , a ) { case "minColumnSize" : case "maxColumnSize" : return } this . table . attr . apply ( this . table , arguments ) } , restore : function ( ) { this . table . restore ( ) } , populate : function ( a , b , c , d ) { var e = this . options ; a && ( e . items = a ) , b && ( e . header = b ) , c && ( e . crossItems = c ) , d && ( e . crossHeader = d ) ; var f = this . _digest ( ) ; this . table . setColumnSize ( f . columnSize ) , this . table . attr ( "minColumnSize" , f . minColumnSize ) , this . table . attr ( "maxColumnSize" , f . maxColumnSize ) , this . table . populate ( f . items , f . header ) } , destroy : function ( ) { this . table . destroy ( ) , BI . DynamicSummaryTreeTable . superclass . destroy . apply ( this , arguments ) } } ) , BI . extend ( BI . DynamicSummaryTreeTable , { formatHorizontalItems : function ( a , b , c , d ) { function e ( a , g ) { var h ; if ( BI . isArray ( g . children ) ) { if ( BI . each ( g . children , function ( b , c ) { var d ; a != - 1 ? ( d = a . slice ( ) , d . push ( g ) ) : d = [ ] , e ( d , c ) } ) , a != - 1 ? ( h = a . slice ( ) , h . push ( g ) ) : h = [ ] , ( a == - 1 || g . children . length > 1 ) && BI . isNotEmptyArray ( g . values ) ) { for ( var i = { text : BI . i18nText ( "BI-Summary_Values" ) , type : "bi.table_style_cell" , styleGetter : function ( ) { return d ( a === - 1 ) } } , j = h . length ; j < b ; j ++ ) h . push ( i ) ; if ( c || ( h = h . concat ( g . values ) ) , h . length > 0 ) if ( c ) for ( var k = 0 , l = g . values . length ; k < l ; k ++ ) f . push ( h ) ; else f . push ( h ) } } else { if ( a != - 1 ) { h = a . slice ( ) ; for ( var j = h . length ; j < b ; j ++ ) h . push ( g ) } else h = [ ] ; if ( ! c && BI . isArray ( g . v
baseCls : "bi-level-tree" , el : { chooseType : 0 } , expander : { } , items : [ ] } ) } , _init : function ( ) { BI . LevelTree . superclass . _init . apply ( this , arguments ) , this . initTree ( this . options . items ) } , _formatItems : function ( a , b ) { var c = this ; return BI . each ( a , function ( d , e ) { var f = { layer : b } ; if ( BI . isKey ( e . id ) || ( e . id = BI . UUID ( ) ) , e . isParent === ! 0 || BI . isNotEmptyArray ( e . children ) ) { switch ( d ) { case 0 : f . type = "bi.first_plus_group_node" ; break ; case a . length - 1 : f . type = "bi.last_plus_group_node" ; break ; default : f . type = "bi.mid_plus_group_node" } BI . defaults ( e , f ) , c . _formatItems ( e . children , b + 1 ) } else { switch ( d ) { case a . length - 1 : f . type = "bi.last_tree_leaf_item" ; break ; default : f . type = "bi.mid_tree_leaf_item" } BI . defaults ( e , f ) } } ) , a } , _assertId : function ( a ) { BI . each ( a , function ( a , b ) { BI . isKey ( b . id ) || ( b . id = BI . UUID ( ) ) } ) } , initTree : function ( a ) { var b = this , c = this . options ; this . empty ( ) , this . _assertId ( a ) , this . tree = BI . createWidget ( { type : "bi.custom_tree" , element : this , expander : BI . extend ( { el : { } , popup : { type : "bi.custom_tree" } } , c . expander ) , items : this . _formatItems ( BI . Tree . transformToTreeFormat ( a ) , 0 ) , el : BI . extend ( { type : "bi.button_tree" , chooseType : 0 , layouts : [ { type : "bi.vertical" } ] } , c . el ) } ) , this . tree . on ( BI . Controller . EVENT _CHANGE , function ( a , c , d ) { b . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) , a === BI . Events . CLICK && b . fireEvent ( BI . LevelTree . EVENT _CHANGE , c , d ) } ) } , stroke : function ( a ) { this . tree . stroke . apply ( this . tree , arguments ) } , populate : function ( a ) { a = this . _formatItems ( BI . Tree . transformToTreeFormat ( a ) , 0 ) , this . tree . populate ( a ) } , setValue : function ( a ) { this . tree . setValue ( a ) } , getValue : function ( ) { return this . tree . getValue ( ) } , getAllLeaves : function ( ) { return this . tree . getAllLeaves ( ) } , getNodeById : function ( a ) { return this . tree . getNodeById ( a ) } , getNodeByValue : function ( a ) { return this . tree . getNodeByValue ( a ) } } ) , BI . LevelTree . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.level_tree" , BI . LevelTree ) , BI . SimpleTreeView = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . SimpleTreeView . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-simple-tree" , itemsCreator : BI . emptyFn , items : null } ) } , _init : function ( ) { BI . SimpleTreeView . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . structure = new BI . Tree , this . tree = BI . createWidget ( { type : "bi.tree_view" , element : this , itemsCreator : function ( c , d ) { var e = function ( b ) { d ( { items : b } ) , a . structure . initTree ( BI . Tree . transformToTreeFormat ( b ) ) } ; BI . isNotNull ( b . items ) ? e ( b . items ) : b . itemsCreator ( c , e ) } } ) , this . tree . on ( BI . TreeView . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . SimpleTreeView . EVENT _CHANGE , arguments ) } ) , BI . isNotEmptyArray ( b . items ) && this . populate ( ) } , populate : function ( a , b ) { a && ( this . options . items = a ) , this . tree . stroke ( { keyword : b } ) } , setValue : function ( a ) { a || ( a = [ ] ) ; var b = this , c = { } , d = [ ] ; BI . each ( a , function ( a , e ) { var f = b . structure . search ( e , "value" ) ; if ( f ) { var g = f ; for ( g = g . getParent ( ) , g && ( c [ g . value ] || ( c [ g . value ] = 0 ) , c [ g . value ] ++ ) ; g && g . getChildrenLength ( ) <= c [ g . value ] ; ) d . push ( g . value ) , g = g . getParent ( ) , g && ( c [ g . value ] || ( c [ g . value ] = 0 ) , c [ g . value ] ++ ) } } ) , this . tree . setValue ( BI . makeObject ( a . concat ( d ) ) ) } , _getValue : function ( ) { var a = [ ] , b = this . tree . getValue ( ) , c = function ( b ) { BI . each ( b , function ( b , d ) { BI . isEmpty ( d ) ? a . push ( b ) : c ( d ) } ) } ; return c ( b ) , a } , empty : function ( ) { this . tree . empty ( ) } , getValue : function ( ) { var a = this , b = [ ] , c = this . _getValue ( ) ; return BI . each ( c , function ( c , d ) { var e = a . structure . search ( d , "value" ) ; e && a . structure . _traverse ( e , function ( a ) { a . isLeaf ( ) && b . push ( a . value ) } ) } ) , b } } ) , BI . SimpleTreeView . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.simple_tree" , BI . SimpleTreeView ) , BI . EditorTrigger = BI . inherit ( BI . Trigger , { _const : { hgap : 4 } , _defaultConfig : function ( ) { var a = BI . EditorTrigger . superclass . _defaultConfig . apply ( this , arguments ) ; return BI . extend ( a , { baseCls : ( a . baseCls || "" ) + " bi-editor-trigger bi-border" , height : 24 , validationChecker : BI . emptyFn , quitChecker : BI . emptyFn , allowBlank : ! 1 , watermark : "" , errorText : "" } ) } , _init : function ( ) { this . options . height -= 2 , BI . EditorTrigger . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . _const ; this . editor = BI . createWidget ( { type : "bi.sign_editor" , height : b . height , value : b . value , validationChecker : b . validationChecker , quitChecker : b . quitChecker , allowBlank : b . allowBlank , watermark : b . watermark , errorText :
width : b . width , height : b . height } ) , this . _test ( e ) ) { var f = this . _getLayoutsByRegions ( e ) ; f = this . compact ( f , ! 0 ) ; var g = this . _getRegionsByLayout ( f ) ; this . _modifyRegion ( g ) , d = ! 0 } } return this . _applyRegion ( ) , d } , setPosition : function ( a , b ) { var c , d , e = this . options , f = [ ] ; if ( a . left < 0 || a . top < 0 ) { switch ( e . layoutType ) { case BI . Arrangement . LAYOUT _TYPE . FREE : break ; case BI . Arrangement . LAYOUT _TYPE . GRID : this . resize ( ) } return this . _stop ( ) , this . position = null , null } var g = this . _getScrollOffset ( ) ; switch ( a = { left : a . left + g . left , top : a . top + g . top } , e . layoutType ) { case BI . Arrangement . LAYOUT _TYPE . FREE : var c = { top : a . top < 0 ? 0 : a . top , left : a . left < 0 ? 0 : a . left , width : b . width , height : b . height } ; this . position = { insert : c } , this . _setArrangeSize ( c ) , this . _start ( ) ; break ; case BI . Arrangement . LAYOUT _TYPE . GRID : var h = { top : a . top < 0 ? 0 : a . top , left : a . left < 0 ? 0 : a . left , width : b . width , height : b . height } ; this . _setArrangeSize ( h ) ; var d = this . _getGridPositionAndSize ( h ) , i = [ { x : 0 , y : BI . MAX , w : d . w , h : d . h , i : d . i } ] . concat ( this . _getLayoutsByRegions ( ) ) ; i = this . _moveElement ( i , i [ 0 ] , d . x , d . y , ! 0 ) , i = this . compact ( i , ! 0 ) ; var f = this . _setRegionsByLayout ( this . _cloneRegion ( ) , i ) , c = this . _getBlockPositionAndSize ( i [ 0 ] ) ; this . position = { insert : c , regions : f } , this . _applyRegion ( f ) , this . _setBlockPositionAndSize ( c ) , this . _start ( ) } return this . position } , setRegionPosition : function ( a , b ) { var c = this . options , d = this . _getScrollOffset ( ) ; switch ( b = BI . extend ( b , { left : b . left + d . left , top : b . top + d . top } ) , c . layoutType ) { case BI . Arrangement . LAYOUT _TYPE . FREE : BI . extend ( this . regions [ a ] , { left : b . left < 0 ? 0 : b . left , top : b . top < 0 ? 0 : b . top } ) , this . _applyRegion ( ) ; break ; case BI . Arrangement . LAYOUT _TYPE . GRID : if ( b . stop ) { BI . extend ( this . regions [ a ] , { left : b . left < 0 ? 0 : b . left , top : b . top < 0 ? 0 : b . top } ) ; var e = this . _cloneRegion ( ) , f = this . _getLayoutsByRegions ( e ) ; f = this . compact ( f , ! 0 ) ; var g = this . _getRegionsByLayout ( f ) ; this . _modifyRegion ( g ) , this . _applyRegion ( ) , this . block . setVisible ( ! 1 ) } else { BI . extend ( this . regions [ a ] , { left : b . left < 0 ? 0 : b . left , top : b . top < 0 ? 0 : b . top } ) ; var e = this . _cloneRegion ( ) , h = this . _getGridPositionAndSize ( BI . extend ( e [ a ] , { left : b . left < 0 ? 0 : b . left , top : b . top < 0 ? 0 : b . top } ) ) , i = h . x , j = h . y ; h = BI . extend ( h , { x : 0 , y : BI . MAX , i : - 1 } ) , delete e [ a ] ; var f = this . _getLayoutsByRegions ( e ) ; f = this . _moveElement ( [ h ] . concat ( f ) , h , i , j , ! 0 ) , f = this . compact ( f , ! 0 ) ; var g = this . _getRegionsByLayout ( f ) ; this . _modifyRegion ( g ) , this . _applyRegion ( ) , this . _setBlockPositionAndSize ( this . _getBlockPositionAndSize ( h ) ) , this . block . setVisible ( ! 0 ) } } } , setDropPosition : function ( a , b ) { var c = this ; this . arrangement . setVisible ( ! 0 ) ; var d = this . _getScrollOffset ( ) ; return this . _setArrangeSize ( BI . extend ( { } , b , { left : a . left + d . left , top : a . top + d . top } ) ) , function ( ) { c . arrangement . setVisible ( ! 1 ) } } , scrollTo : function ( a ) { this . container . element . scrollTop ( a . top ) , this . container . element . scrollLeft ( a . left ) } , zoom : function ( a ) { var b = this ; this . options ; if ( a ) { var c = this . _applyContainer ( ) ; switch ( this . getLayoutType ( ) ) { case BI . Arrangement . LAYOUT _TYPE . FREE : if ( this . _isArrangeFine ( ) ) { var d = this . getClientWidth ( ) , e = ( a . x || 1 ) * d / ( c . left + c . width ) , f = this . _cloneRegion ( ) ; BI . each ( f , function ( a , b ) { b . left = b . left * e , b . width = b . width * e } ) , this . _test ( f ) && ( this . _modifyRegion ( f ) , this . _applyRegion ( ) ) , this . resize ( ) , this . relayout ( ) } break ; case BI . Arrangement . LAYOUT _TYPE . GRID : if ( this . _isArrangeFine ( ) ) { var d = this . getClientWidth ( ) , g = this . getClientHeight ( ) , e = ( a . x || 1 ) * d / ( c . left + c . width ) , h = ( a . y || 1 ) * g / ( c . top + c . height ) , f = this . _cloneRegion ( ) ; if ( BI . each ( f , function ( a , c ) { c . left = c . left * e , c . width = c . width * e , c . top = c . top * h , c . height = c . height * h ; var d = b . _getOneWidthPortion ( ) , f = Math . round ( c . width / d ) , g = Math . round ( c . left / d ) , i = Math . round ( ( c . width + c . left ) / d ) ; g + f !== i && ( c . left = g * d , c . width = i * d - c . left ) } ) , this . _test ( f ) ) { var i = this . _getLayoutsByRegions ( f ) ; i = this . compact ( i , ! 0 ) , f = this . _getRegionsByLayout ( i ) , this . _modifyRegion ( f ) , this . _applyRegion ( ) } } else this . relayout ( ) } } } , resize : function ( ) { var a = this . options ; switch ( a . layoutType ) { case BI . Arrangement . LAYOUT _TYPE . FREE : break ; case BI . Arrangement . LAYOUT _TYPE . GRID : this . zoom ( this . ratio ) ; var b = this . _cloneRegion ( ) , c = this . _getLayoutsByRegions ( b ) ; c = this . compact ( c , ! 0 ) , b = this . _getRegionsByLayout ( c ) , this . _modifyRegion ( b ) , this . _applyRegion ( ) } } , relayout : function ( ) { var a = this , b = this . options ; switch ( b . layoutType ) { case BI . Arrangement . LA
} ) , this . bottomBtn = BI . createWidget ( { type : "bi.icon_button" , cls : "column-next-page-h-font bottom-button bi-border-left" } ) , this . bottomBtn . on ( BI . IconButton . EVENT _CHANGE , function ( ) { a . _finetuning ( - 1 ) , a . fireEvent ( BI . DateTimeSelect . EVENT _CONFIRM ) } ) , this . _finetuning ( 0 ) , BI . createWidget ( { type : "bi.htape" , element : this , items : [ this . editor , { el : { type : "bi.grid" , columns : 1 , rows : 2 , items : [ { column : 0 , row : 0 , el : this . topBtn } , { column : 0 , row : 1 , el : this . bottomBtn } ] } , width : 30 } ] } ) } , _alertOutEditorValue : function ( a ) { return a > this . options . max && ( a = this . options . min ) , a < this . options . min && ( a = this . options . max ) , BI . parseInt ( a ) } , _alertInEditorValue : function ( a ) { return a > this . options . max && ( a = this . options . min ) , a < this . options . min && ( a = this . options . max ) , a = a < 10 ? "0" + a : a } , _finetuning : function ( a ) { var b = BI . parseInt ( this . _alertOutEditorValue ( this . editor . getValue ( ) ) ) ; this . editor . setValue ( this . _alertInEditorValue ( b + a ) ) } , getValue : function ( ) { var a = this . editor . getValue ( ) ; return this . _alertOutEditorValue ( a ) } , setValue : function ( a ) { this . editor . setValue ( this . _alertInEditorValue ( a ) ) , this . _finetuning ( 0 ) } } ) , BI . DateTimeSelect . EVENT _CONFIRM = "EVENT_CONFIRM" , BI . shortcut ( "bi.date_time_select" , BI . DateTimeSelect ) , BI . DateTimeTrigger = BI . inherit ( BI . Trigger , { _const : { hgap : 4 } , _defaultConfig : function ( ) { return BI . extend ( BI . DateTimeTrigger . superclass . _defaultConfig . apply ( this , arguments ) , { extraCls : "bi-date-time-trigger" , min : "1900-01-01" , max : "2099-12-31" , height : 24 , width : 200 } ) } , _init : function ( ) { BI . DateTimeTrigger . superclass . _init . apply ( this , arguments ) ; var a = this . options , b = this . _const ; this . text = BI . createWidget ( { type : "bi.label" , textAlign : "left" , height : a . height , width : a . width , hgap : b . hgap } ) , BI . createWidget ( { type : "bi.htape" , element : this , items : [ { el : BI . createWidget ( ) , width : a . height } , { el : this . text } ] } ) } , _printTime : function ( a ) { return a < 10 ? "0" + a : a } , setValue : function ( a ) { var b , c = a ; if ( BI . isNull ( c ) ) c = Date . getDate ( ) , b = c . print ( "%Y-%X-%d %H:%M:%S" ) ; else { var d = Date . getDate ( c . year , c . month , c . day , c . hour , c . minute , c . second ) ; b = d . print ( "%Y-%X-%d %H:%M:%S" ) } this . text . setText ( b ) , this . text . setTitle ( b ) } } ) , BI . shortcut ( "bi.date_time_trigger" , BI . DateTimeTrigger ) , BI . DirectionPathChooser = BI . inherit ( BI . Widget , { _const : { lineColor : "#808080" , selectLineColor : "#009de3" } , _defaultConfig : function ( ) { return BI . extend ( BI . DirectionPathChooser . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-excel-table" , items : [ ] } ) } , _init : function ( ) { BI . DirectionPathChooser . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . pathChooser = BI . createWidget ( { type : "bi.path_chooser" , element : this , items : b . items } ) , this . pathChooser . on ( BI . PathChooser . EVENT _CHANGE , function ( b , c ) { a . _setValue ( b , c ) , a . fireEvent ( BI . DirectionPathChooser . EVENT _CHANGE ) } ) , this . _drawArrows ( ) } , _unselectAllArrows : function ( ) { var a = this . _const . lineColor ; BI . each ( this . arrows , function ( b , c ) { BI . each ( c , function ( b , c ) { BI . each ( c , function ( b , c ) { c . attr ( { fill : a , stroke : a } ) } ) } ) } ) } , _drawOneArrow : function ( a , b ) { var c = this . _const . lineColor , d = ( this . _const . selectLineColor , this . pathChooser . svg ) , e = "" ; switch ( b ) { case 0 : e = "M" + a . x + "," + a . y + "L" + ( a . x - 3 ) + "," + ( a . y + 5 ) + "L" + ( a . x + 3 ) + "," + ( a . y + 5 ) + "L" + a . x + "," + a . y ; break ; case 1 : e = "M" + a . x + "," + a . y + "L" + ( a . x - 5 ) + "," + ( a . y - 3 ) + "L" + ( a . x - 5 ) + "," + ( a . y + 3 ) + "L" + a . x + "," + a . y ; break ; case 2 : e = "M" + a . x + "," + a . y + "L" + ( a . x - 3 ) + "," + ( a . y - 5 ) + "L" + ( a . x + 3 ) + "," + ( a . y - 5 ) + "L" + a . x + "," + a . y ; break ; case 3 : e = "M" + a . x + "," + a . y + "L" + ( a . x + 5 ) + "," + ( a . y - 3 ) + "L" + ( a . x + 5 ) + "," + ( a . y + 3 ) + "L" + a . x + "," + a . y } return d . path ( e ) . attr ( { fill : c , stroke : c } ) } , _drawArrows : function ( ) { function a ( a , b ) { return b === - 1 ? 100 * ( a + 1 ) - 20 : 100 * a + 20 } function b ( a , b ) { var c = BI . find ( a , function ( c , d ) { if ( c > 0 && a [ c - 1 ] . x < b && a [ c ] . x > b ) return ! 0 } ) ; return c . y } var c = this , d = ( this . options , this . pathChooser . routes ) , e = this . pathChooser . pathes , f = this . pathChooser . cache ; this . arrows = { } , BI . each ( d , function ( d , g ) { c . arrows [ d ] = [ ] , BI . each ( g , function ( g , h ) { c . arrows [ d ] [ g ] = [ ] ; var i = e [ d ] [ g ] ; BI . each ( i , function ( a , b ) { if ( a > 0 && a < i . length - 1 ) { var e ; b . y === i [ a - 1 ] . y ? i [ a + 1 ] . y != b . y && ( f [ h [ h . length - 2 ] ] . direction === - 1 ? a - 1 > 0 && ( e = c . _drawOneArrow ( i [ a - 1 ] , 3 ) ) : e = c . _drawOneArrow ( i [ a ] , 1 ) ) : b . x === i [ a - 1 ] . x && ( e = b . y > i [ a - 1 ] . y ? f [ BI . first ( h ) ] . direction === - 1 ? c . _drawOneArrow ( i [ a - 1 ] , 0 ) : c . _drawOneArrow ( b , 2 ) : f [ h [ h . length - 2 ] ] . direction === - 1 ? c . _dr
BI . FileManagerNavButton . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options , c = this . _const ; this . button = BI . createWidget ( { type : "bi.text_button" , cls : "file-manager-nav-button-text bi-card" , once : ! 0 , selected : b . selected , text : b . text , title : b . text , value : b . value , height : b . height , lgap : 20 , rgap : 10 } ) , this . button . on ( BI . Controller . EVENT _CHANGE , function ( ) { arguments [ 2 ] = a , a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) } ) ; var d = BI . createWidget ( { type : "bi.svg" , cls : "file-manager-nav-button-triangle" , width : 15 , height : b . height } ) , e = d . path ( "M0,0L15,20L0,40" ) . attr ( { stroke : c . select _color , fill : b . selected ? c . select _color : c . normal _color } ) ; this . button . on ( BI . TextButton . EVENT _CHANGE , function ( ) { this . isSelected ( ) ? e . attr ( "fill" , c . select _color ) : e . attr ( "fill" , c . normal _color ) } ) , BI . createWidget ( { type : "bi.default" , element : this , items : [ this . button ] } ) , BI . createWidget ( { type : "bi.absolute" , element : this , items : [ { el : d , right : - 15 , top : 0 , bottom : 0 } ] } ) } , isSelected : function ( ) { return this . button . isSelected ( ) } , setValue : function ( a ) { this . button . setValue ( a ) } , getValue : function ( ) { return this . button . getValue ( ) } , populate : function ( a ) { } } ) , BI . FileManagerNavButton . EVENT _CHANGE = "FileManagerNavButton.EVENT_CHANGE" , BI . shortcut ( "bi.file_manager_nav_button" , BI . FileManagerNavButton ) , BI . FileManagerNav = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . FileManagerNav . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-file-manager-nav bi-border-left" , height : 40 , items : [ ] } ) } , _init : function ( ) { BI . FileManagerNav . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . tree = new BI . Tree , this . refreshTreeData ( b . items ) , this . tree . getRoot ( ) . set ( "data" , { text : BI . i18nText ( "BI-Created_By_Me" ) , value : BI . FileManagerNav . ROOT _CREATE _BY _ME , id : BI . FileManagerNav . ROOT _CREATE _BY _ME } ) , this . button _group = BI . createWidget ( { type : "bi.button_group" , element : this , items : [ { type : "bi.file_manager_nav_button" , text : BI . i18nText ( "BI-Created_By_Me" ) , selected : ! 0 , id : BI . FileManagerNav . ROOT _CREATE _BY _ME , value : BI . FileManagerNav . ROOT _CREATE _BY _ME } ] , layouts : [ { type : "bi.horizontal" } ] } ) , this . button _group . on ( BI . Controller . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) } ) , this . button _group . on ( BI . ButtonGroup . EVENT _CHANGE , function ( b , c ) { a . fireEvent ( BI . FileManagerNav . EVENT _CHANGE , arguments ) } ) } , _getAllParents : function ( a ) { var b , c = [ ] ; for ( b = a ? this . tree . search ( a ) : this . tree . getRoot ( ) ; b . parent ; ) c . push ( b ) , b = b . parent ; return c . push ( b ) , c . reverse ( ) } , _formatNodes : function ( a ) { var b = [ ] ; return BI . each ( a , function ( a , c ) { b . push ( BI . extend ( { type : "bi.file_manager_nav_button" , id : c . id } , c . get ( "data" ) ) ) } ) , BI . last ( b ) . selected = ! 0 , b } , getValue : function ( ) { return this . button _group . getValue ( ) } , getId : function ( ) { var a = [ ] ; return BI . each ( this . button _group . getSelectedButtons ( ) , function ( b , c ) { a . push ( c . attr ( "id" ) ) } ) , a } , refreshTreeData : function ( a ) { this . tree . initTree ( BI . Tree . transformToTreeFormat ( a ) ) , this . tree . getRoot ( ) . set ( "data" , { text : BI . i18nText ( "BI-Created_By_Me" ) , value : BI . FileManagerNav . ROOT _CREATE _BY _ME , id : BI . FileManagerNav . ROOT _CREATE _BY _ME } ) } , populate : function ( a ) { var b = BI . isNull ( a ) ? [ this . tree . getRoot ( ) ] : this . _getAllParents ( a . id ) ; this . button _group . populate ( this . _formatNodes ( b ) ) } } ) , BI . extend ( BI . FileManagerNav , { ROOT _CREATE _BY _ME : "-1" } ) , BI . FileManagerNav . EVENT _CHANGE = "FileManagerNav.EVENT_CHANGE" , BI . shortcut ( "bi.file_manager_nav" , BI . FileManagerNav ) , BI . InteractiveArrangement = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . InteractiveArrangement . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-interactive-arrangement" , resizable : ! 0 , layoutType : BI . Arrangement . LAYOUT _TYPE . GRID , items : [ ] } ) } , _init : function ( ) { BI . InteractiveArrangement . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . arrangement = BI . createWidget ( { type : "bi.adaptive_arrangement" , element : this , resizable : b . resizable , layoutType : b . layoutType , items : b . items } ) , this . arrangement . on ( BI . AdaptiveArrangement . EVENT _SCROLL , function ( ) { a . fireEvent ( BI . InteractiveArrangement . EVENT _SCROLL , arguments ) } ) , this . arrangement . on ( BI . AdaptiveArrangement . EVENT _RESIZE , function ( ) { a . fireEvent ( BI . InteractiveArrangement . EVENT _RESIZE , arguments ) } ) , this . arran
return Date . getDate ( ) ; case BI . MultiDateCombo . DATE _TYPE . MULTI _DATE _MONTH _PREV : return Date . getDate ( ) . getBeforeMultiMonth ( c ) ; case BI . MultiDateCombo . DATE _TYPE . MULTI _DATE _MONTH _AFTER : return Date . getDate ( ) . getAfterMultiMonth ( c ) ; case BI . MultiDateCombo . DATE _TYPE . MULTI _DATE _MONTH _BEGIN : return Date . getDate ( Date . getDate ( ) . getFullYear ( ) , Date . getDate ( ) . getMonth ( ) , 1 ) ; case BI . MultiDateCombo . DATE _TYPE . MULTI _DATE _MONTH _END : return Date . getDate ( Date . getDate ( ) . getFullYear ( ) , Date . getDate ( ) . getMonth ( ) , Date . getDate ( ) . getLastDateOfMonth ( ) . getDate ( ) ) ; case BI . MultiDateCombo . DATE _TYPE . MULTI _DATE _QUARTER _PREV : return Date . getDate ( ) . getBeforeMulQuarter ( c ) ; case BI . MultiDateCombo . DATE _TYPE . MULTI _DATE _QUARTER _AFTER : return Date . getDate ( ) . getAfterMulQuarter ( c ) ; case BI . MultiDateCombo . DATE _TYPE . MULTI _DATE _QUARTER _BEGIN : return Date . getDate ( ) . getQuarterStartDate ( ) ; case BI . MultiDateCombo . DATE _TYPE . MULTI _DATE _QUARTER _END : return Date . getDate ( ) . getQuarterEndDate ( ) ; case BI . MultiDateCombo . DATE _TYPE . MULTI _DATE _WEEK _PREV : return Date . getDate ( ) . getOffsetDate ( - 7 * c ) ; case BI . MultiDateCombo . DATE _TYPE . MULTI _DATE _WEEK _AFTER : return Date . getDate ( ) . getOffsetDate ( 7 * c ) ; case BI . MultiDateCombo . DATE _TYPE . MULTI _DATE _YEAR _PREV : return Date . getDate ( Date . getDate ( ) . getFullYear ( ) - 1 * c , Date . getDate ( ) . getMonth ( ) , Date . getDate ( ) . getDate ( ) ) ; case BI . MultiDateCombo . DATE _TYPE . MULTI _DATE _YEAR _AFTER : return Date . getDate ( Date . getDate ( ) . getFullYear ( ) + 1 * c , Date . getDate ( ) . getMonth ( ) , Date . getDate ( ) . getDate ( ) ) ; case BI . MultiDateCombo . DATE _TYPE . MULTI _DATE _YEAR _BEGIN : return Date . getDate ( Date . getDate ( ) . getFullYear ( ) , 0 , 1 ) ; case BI . MultiDateCombo . DATE _TYPE . MULTI _DATE _YEAR _END : return Date . getDate ( Date . getDate ( ) . getFullYear ( ) , 11 , 31 ) } } } ) , BI . MultiDateCard . EVENT _CHANGE = "EVENT_CHANGE" , BI . MultiDateCombo = BI . inherit ( BI . Single , { constants : { popupHeight : 259 , popupWidth : 270 , comboAdjustHeight : 1 , border : 1 , DATE _MIN _VALUE : "1900-01-01" , DATE _MAX _VALUE : "2099-12-31" } , _defaultConfig : function ( ) { return BI . extend ( BI . MultiDateCombo . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-multidate-combo bi-border" , height : 24 } ) } , _init : function ( ) { BI . MultiDateCombo . superclass . _init . apply ( this , arguments ) ; var a = this ; this . options ; this . storeTriggerValue = "" ; var b = Date . getDate ( ) ; this . storeValue = null , this . trigger = BI . createWidget ( { type : "bi.date_trigger" , min : this . constants . DATE _MIN _VALUE , max : this . constants . DATE _MAX _VALUE } ) , this . trigger . on ( BI . DateTrigger . EVENT _KEY _DOWN , function ( ) { a . combo . isViewVisible ( ) && a . combo . hideView ( ) } ) , this . trigger . on ( BI . DateTrigger . EVENT _STOP , function ( ) { a . combo . isViewVisible ( ) || a . combo . showView ( ) } ) , this . trigger . on ( BI . DateTrigger . EVENT _TRIGGER _CLICK , function ( ) { a . combo . toggle ( ) } ) , this . trigger . on ( BI . DateTrigger . EVENT _FOCUS , function ( ) { a . storeTriggerValue = a . trigger . getKey ( ) , a . combo . isViewVisible ( ) || a . combo . showView ( ) , a . fireEvent ( BI . MultiDateCombo . EVENT _FOCUS ) } ) , this . trigger . on ( BI . DateTrigger . EVENT _ERROR , function ( ) { a . storeValue = { year : b . getFullYear ( ) , month : b . getMonth ( ) } , a . popup . setValue ( ) , a . fireEvent ( BI . MultiDateCombo . EVENT _ERROR ) } ) , this . trigger . on ( BI . DateTrigger . EVENT _VALID , function ( ) { a . fireEvent ( BI . MultiDateCombo . EVENT _VALID ) } ) , this . trigger . on ( BI . DateTrigger . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . MultiDateCombo . EVENT _CHANGE ) } ) , this . trigger . on ( BI . DateTrigger . EVENT _CONFIRM , function ( ) { if ( ! a . combo . isViewVisible ( ) ) { var b = a . storeTriggerValue , c = a . trigger . getKey ( ) ; BI . isNotEmptyString ( c ) && ! BI . isEqual ( c , b ) ? ( a . storeValue = a . trigger . getValue ( ) , a . setValue ( a . trigger . getValue ( ) ) ) : BI . isEmptyString ( c ) && ( a . storeValue = null , a . trigger . setValue ( ) ) , a . fireEvent ( BI . MultiDateCombo . EVENT _CONFIRM ) } } ) , this . popup = BI . createWidget ( { type : "bi.multidate_popup" , min : this . constants . DATE _MIN _VALUE , max : this . constants . DATE _MAX _VALUE } ) , this . popup . on ( BI . MultiDatePopup . BUTTON _CLEAR _EVENT _CHANGE , function ( ) { a . setValue ( ) , a . combo . hideView ( ) , a . fireEvent ( BI . MultiDateCombo . EVENT _CONFIRM ) } ) , this . popup . on ( BI . MultiDatePopup . BUTTON _lABEL _EVENT _CHANGE , function ( ) { var b = Date . getDate ( ) ; a . setValue ( { year : b . getFullYear ( ) , month : b . getMonth ( ) , day : b . getDate ( ) } ) , a . combo . hideView ( ) , a . fireEvent ( BI . MultiDateCombo . EVENT _CONFIRM ) } ) , this . popup . on ( BI . MultiDatePopup . BUTTON _OK _EVENT _CHANGE , function ( ) { a . setVal
c . push ( { type : "bi.layout" , cls : "base-line-conn-background" , width : 13 , height : b . height } ) } ) , c . push ( this . node ) , BI . createWidget ( { type : "bi.td" , element : this , columnSize : BI . makeArray ( b . layer , 13 ) , items : [ c ] } ) } , doRedMark : function ( ) { this . node . doRedMark . apply ( this . node , arguments ) } , unRedMark : function ( ) { this . node . unRedMark . apply ( this . node , arguments ) } , isSelected : function ( ) { return this . node . isSelected ( ) } , setSelected : function ( a ) { BI . MultiLayerSelectTreeMidPlusGroupNode . superclass . setSelected . apply ( this , arguments ) , this . node . setSelected ( a ) } , doClick : function ( ) { BI . MultiLayerSelectTreeMidPlusGroupNode . superclass . doClick . apply ( this , arguments ) , this . node . setSelected ( this . isSelected ( ) ) } , setOpened : function ( a ) { BI . MultiLayerSelectTreeMidPlusGroupNode . superclass . setOpened . apply ( this , arguments ) , this . node . setOpened ( a ) } } ) , BI . shortcut ( "bi.multilayer_select_tree_mid_plus_group_node" , BI . MultiLayerSelectTreeMidPlusGroupNode ) , BI . MultiLayerSingleTreeCombo = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . MultiLayerSingleTreeCombo . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-multilayer-singletree-combo" , isDefaultInit : ! 1 , height : 30 , text : "" , itemsCreator : BI . emptyFn , items : [ ] } ) } , _init : function ( ) { BI . MultiLayerSingleTreeCombo . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . trigger = BI . createWidget ( { type : "bi.single_tree_trigger" , text : b . text , height : b . height , items : b . items } ) , this . popup = BI . createWidget ( { type : "bi.multilayer_single_tree_popup" , isDefaultInit : b . isDefaultInit , items : b . items } ) , this . combo = BI . createWidget ( { type : "bi.combo" , element : this , adjustLength : 2 , el : this . trigger , popup : { el : this . popup } } ) , this . combo . on ( BI . Controller . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) } ) , this . popup . on ( BI . MultiLayerSingleTreePopup . EVENT _CHANGE , function ( ) { a . setValue ( a . popup . getValue ( ) ) , a . combo . hideView ( ) , a . fireEvent ( BI . MultiLayerSingleTreeCombo . EVENT _CHANGE ) } ) } , setValue : function ( a ) { a = BI . isArray ( a ) ? a : [ a ] , this . trigger . setValue ( a ) , this . popup . setValue ( a ) } , getValue : function ( ) { return this . popup . getValue ( ) } , populate : function ( a ) { this . combo . populate ( a ) } } ) , BI . MultiLayerSingleTreeCombo . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.multilayer_single_tree_combo" , BI . MultiLayerSingleTreeCombo ) , BI . MultiLayerSingleLevelTree = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . MultiLayerSingleLevelTree . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-multilayer-single-level-tree" , isDefaultInit : ! 1 , items : [ ] , itemsCreator : BI . emptyFn } ) } , _init : function ( ) { BI . MultiLayerSingleLevelTree . superclass . _init . apply ( this , arguments ) , this . initTree ( this . options . items ) } , _formatItems : function ( a , b ) { var c = this ; return BI . each ( a , function ( d , e ) { var f = { } ; if ( e . layer = b , BI . isKey ( e . id ) || ( e . id = BI . UUID ( ) ) , e . isParent === ! 0 || BI . isNotEmptyArray ( e . children ) ) { switch ( d ) { case 0 : f . type = "bi.multilayer_single_tree_first_plus_group_node" ; break ; case a . length - 1 : f . type = "bi.multilayer_single_tree_last_plus_group_node" ; break ; default : f . type = "bi.multilayer_single_tree_mid_plus_group_node" } BI . defaults ( e , f ) , c . _formatItems ( e . children , b + 1 ) } else { switch ( d ) { case a . length - 1 : f . type = "bi.multilayer_single_tree_last_tree_leaf_item" ; break ; default : f . type = "bi.multilayer_single_tree_mid_tree_leaf_item" } BI . defaults ( e , f ) } } ) , a } , _assertId : function ( a ) { BI . each ( a , function ( a , b ) { b . id = b . id || BI . UUID ( ) } ) } , initTree : function ( a ) { var b = this , c = this . options ; this . empty ( ) , this . _assertId ( a ) , this . tree = BI . createWidget ( { type : "bi.custom_tree" , element : this , expander : { isDefaultInit : c . isDefaultInit , el : { } , popup : { type : "bi.custom_tree" } } , items : this . _formatItems ( BI . Tree . transformToTreeFormat ( a ) , 0 ) , itemsCreator : function ( a , b ) { c . itemsCreator ( a , function ( a ) { b ( BI . Tree . transformToTreeFormat ( a ) , 0 ) } ) } , el : { type : "bi.button_tree" , chooseType : BI . Selection . Single , layouts : [ { type : "bi.vertical" } ] } } ) , this . tree . on ( BI . Controller . EVENT _CHANGE , function ( a , c ) { b . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) , a === BI . Events . CLICK && b . fireEvent ( BI . MultiLayerSingleLevelTree . EVENT _CHANGE , c ) } ) } , populate : function ( a ) { this . tree . populate ( this . _formatItems ( BI . Tree . transformToTreeFormat ( a ) , 0 ) ) } , setValue : function ( a ) { this . tree . setValue ( a ) } , getValue
var e = b . valueFormatter ( d ) || d ; return { text : e , value : d , title : e , selected : a . storeValue . type === BI . Selection . Multi } } ) ; if ( BI . isKey ( a . _startValue ) && ! a . storeValue . value . contains ( a . _startValue ) ) { var j = b . valueFormatter ( f ) || f ; i . unshift ( { text : j , value : f , title : j , selected : ! 0 } ) } h = a . _createItems ( i ) } e ( h . concat ( a . _createItems ( g . items ) ) , g . keyword || "" ) , 1 === d . times && a . storeValue && ( BI . isKey ( f ) && a . storeValue . value [ a . storeValue . type === BI . Selection . All ? "remove" : "pushDistinct" ] ( f ) , a . setValue ( a . storeValue ) ) , 1 === d . times && a . _scrollToTop ( ) } ) } , hasNext : function ( ) { return c } } ) , this . button _group . on ( BI . Controller . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) } ) , this . button _group . on ( BI . SelectList . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . MultiSelectLoader . EVENT _CHANGE , arguments ) } ) } , _createItems : function ( a ) { return BI . createItems ( a , { type : "bi.multi_select_item" , logic : this . options . logic , height : 25 , selected : this . isAllSelected ( ) } ) } , _scrollToTop : function ( ) { var a = this ; BI . delay ( function ( ) { a . button _group . element . scrollTop ( 0 ) } , 30 ) } , isAllSelected : function ( ) { return this . button _group . isAllSelected ( ) } , _assertValue : function ( a ) { a || ( a = { } ) , a . type || ( a . type = BI . Selection . Multi ) , a . value || ( a . value = [ ] ) } , setStartValue : function ( a ) { this . _startValue = a } , setValue : function ( a ) { this . storeValue = a || { } , this . _assertValue ( this . storeValue ) , this . button _group . setValue ( this . storeValue ) } , getValue : function ( ) { return this . button _group . getValue ( ) } , getAllButtons : function ( ) { return this . button _group . getAllButtons ( ) } , empty : function ( ) { this . button _group . empty ( ) } , populate : function ( a ) { this . button _group . populate . apply ( this . button _group , arguments ) } , resetHeight : function ( a ) { this . button _group . resetHeight ( a ) } , resetWidth : function ( a ) { this . button _group . resetWidth ( a ) } } ) , BI . MultiSelectLoader . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.multi_select_loader" , BI . MultiSelectLoader ) , BI . MultiSelectPopupView = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . MultiSelectPopupView . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-multi-select-popup-view" , maxWidth : "auto" , minWidth : 135 , maxHeight : 400 , valueFormatter : BI . emptyFn , itemsCreator : BI . emptyFn , onLoaded : BI . emptyFn } ) } , _init : function ( ) { BI . MultiSelectPopupView . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . loader = BI . createWidget ( { type : "bi.multi_select_loader" , itemsCreator : b . itemsCreator , valueFormatter : b . valueFormatter , onLoaded : b . onLoaded } ) , this . popupView = BI . createWidget ( { type : "bi.multi_popup_view" , stopPropagation : ! 1 , maxWidth : b . maxWidth , minWidth : b . minWidth , maxHeight : b . maxHeight , element : this , buttons : [ BI . i18nText ( "BI-Basic_Clears" ) , BI . i18nText ( "BI-Basic_Sure" ) ] , el : this . loader } ) , this . popupView . on ( BI . MultiPopupView . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . MultiSelectPopupView . EVENT _CHANGE ) } ) , this . popupView . on ( BI . MultiPopupView . EVENT _CLICK _TOOLBAR _BUTTON , function ( b ) { switch ( b ) { case 0 : a . fireEvent ( BI . MultiSelectPopupView . EVENT _CLICK _CLEAR ) ; break ; case 1 : a . fireEvent ( BI . MultiSelectPopupView . EVENT _CLICK _CONFIRM ) } } ) } , isAllSelected : function ( ) { return this . loader . isAllSelected ( ) } , setStartValue : function ( a ) { this . loader . setStartValue ( a ) } , setValue : function ( a ) { this . popupView . setValue ( a ) } , getValue : function ( ) { return this . popupView . getValue ( ) } , populate : function ( a ) { this . popupView . populate . apply ( this . popupView , arguments ) } , resetHeight : function ( a ) { this . popupView . resetHeight ( a ) } , resetWidth : function ( a ) { this . popupView . resetWidth ( a ) } } ) , BI . MultiSelectPopupView . EVENT _CHANGE = "EVENT_CHANGE" , BI . MultiSelectPopupView . EVENT _CLICK _CONFIRM = "EVENT_CLICK_CONFIRM" , BI . MultiSelectPopupView . EVENT _CLICK _CLEAR = "EVENT_CLICK_CLEAR" , BI . shortcut ( "bi.multi_select_popup_view" , BI . MultiSelectPopupView ) , BI . MultiSelectTrigger = BI . inherit ( BI . Trigger , { constants : { height : 14 , rgap : 4 , lgap : 4 } , _defaultConfig : function ( ) { return BI . extend ( BI . MultiSelectTrigger . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-multi-select-trigger bi-border" , itemsCreator : BI . emptyFn , valueFormatter : BI . emptyFn , searcher : { } , switcher : { } , adapter : null , masker : { } } ) } , _init : function ( ) { BI . MultiSelectTrigger . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; b . height && this . setHeight ( b . height - 2 ) , t
onSearch : function ( b , c ) { c ( { keyword : a . searcher . getKeyword ( ) } ) } , adapter : this . adapter , popup : this . searcherPane , masker : ! 1 , listeners : [ { eventName : BI . Searcher . EVENT _START , action : function ( ) { a . _showSearcherPane ( ) } } , { eventName : BI . Searcher . EVENT _STOP , action : function ( ) { a . _showAdapter ( ) , BI . nextTick ( function ( ) { a . adapter . populate ( ) } ) } } , { eventName : BI . Searcher . EVENT _CHANGE , action : function ( ) { a . searcher . isSearching ( ) ? a . storeValue = { value : a . searcherPane . getValue ( ) } : a . storeValue = { value : a . adapter . getValue ( ) } , a . setSelectedValue ( a . storeValue . value ) , a . fireEvent ( BI . MultiSelectTree . EVENT _CHANGE ) } } , { eventName : BI . Searcher . EVENT _PAUSE , action : function ( ) { a . _showAdapter ( ) } } ] } ) , BI . createWidget ( { type : "bi.vtape" , element : this , items : [ { el : this . searcher , height : 24 } , { el : this . adapter , height : "fill" } ] } ) , BI . createWidget ( { type : "bi.absolute" , element : this , items : [ { el : this . searcherPane , top : 30 , bottom : 0 , left : 0 , right : 0 } ] } ) } , _showAdapter : function ( ) { this . adapter . setVisible ( ! 0 ) , this . searcherPane . setVisible ( ! 1 ) } , _showSearcherPane : function ( ) { this . searcherPane . setVisible ( ! 0 ) , this . adapter . setVisible ( ! 1 ) } , resize : function ( ) { } , setSelectedValue : function ( a ) { this . storeValue . value = a || { } , this . adapter . setSelectedValue ( a ) , this . searcherPane . setSelectedValue ( a ) , this . searcher . setValue ( { value : a || { } } ) } , setValue : function ( a ) { this . adapter . setValue ( a ) } , stopSearch : function ( ) { this . searcher . stopSearch ( ) } , updateValue : function ( a ) { this . adapter . updateValue ( a ) } , getValue : function ( ) { return this . storeValue . value } , populate : function ( ) { this . searcher . populate . apply ( this . searcher , arguments ) , this . adapter . populate . apply ( this . adapter , arguments ) } } ) , BI . MultiSelectTree . EVENT _CHANGE = "BI.MultiSelectTree.EVENT_CHANGE" , BI . shortcut ( "bi.multi_select_tree" , BI . MultiSelectTree ) , BI . MultiSelectTreePopup = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . MultiSelectTreePopup . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-multi-select-tree-popup bi-border-left bi-border-right bi-border-bottom" , itemsCreator : BI . emptyFn } ) } , _init : function ( ) { BI . MultiSelectTreePopup . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . popup = BI . createWidget ( { type : "bi.async_tree" , element : this , itemsCreator : b . itemsCreator } ) , this . popup . on ( BI . TreeView . EVENT _AFTERINIT , function ( ) { a . fireEvent ( BI . MultiSelectTreePopup . EVENT _AFTER _INIT ) } ) , this . popup . on ( BI . TreeView . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . MultiSelectTreePopup . EVENT _CHANGE ) } ) } , hasChecked : function ( ) { return this . popup . hasChecked ( ) } , getValue : function ( ) { return this . popup . getValue ( ) } , setValue : function ( a ) { a || ( a = { } ) , this . popup . setValue ( a ) } , setSelectedValue : function ( a ) { a || ( a = { } ) , this . popup . setSelectedValue ( a ) } , updateValue : function ( a ) { this . popup . updateValue ( a ) , this . popup . refresh ( ) } , populate : function ( a ) { this . popup . stroke ( a ) } } ) , BI . MultiSelectTreePopup . EVENT _AFTER _INIT = "BI.MultiSelectTreePopup.EVENT_AFTER_INIT" , BI . MultiSelectTreePopup . EVENT _CHANGE = "BI.MultiSelectTreePopup.EVENT_CHANGE" , BI . shortcut ( "bi.multi_select_tree_popup" , BI . MultiSelectTreePopup ) , BI . MultiTreeCheckPane = BI . inherit ( BI . Pane , { constants : { height : 25 , lgap : 10 , tgap : 5 } , _defaultConfig : function ( ) { return BI . extend ( BI . MultiTreeCheckPane . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-multi-tree-check-pane bi-background" , onClickContinueSelect : BI . emptyFn } ) } , _init : function ( ) { BI . MultiTreeCheckPane . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . selectedValues = { } ; var c = BI . createWidget ( { type : "bi.text_button" , text : BI . i18nText ( "BI-Continue_Select" ) , cls : "multi-tree-check-selected" } ) ; c . on ( BI . TextButton . EVENT _CHANGE , function ( ) { b . onClickContinueSelect ( ) , BI . nextTick ( function ( ) { a . empty ( ) } ) } ) ; var d = BI . createWidget ( { type : "bi.left" , cls : "multi-tree-continue-select" , items : [ { el : { type : "bi.label" , text : BI . i18nText ( "BI-Selected_Data" ) } , lgap : this . constants . lgap , tgap : this . constants . tgap } , { el : c , lgap : this . constants . lgap , tgap : this . constants . tgap } ] } ) ; this . display = BI . createWidget ( { type : "bi.display_tree" , cls : "bi-multi-tree-display" , itemsCreator : function ( a , c ) { a . type = BI . TreeView . REQ _TYPE _GET _SELECTED _DATA , b . itemsCreator ( a , c ) } } ) , this . display . on ( BI . Events . AFTERINIT , function ( ) { a . fireEvent ( BI . Events . AFTERINIT ) } ) , this . di
this . table . setLeftHorizontalScroll ( a ) } , setRightHorizontalScroll : function ( a ) { this . table . setRightHorizontalScroll ( a ) } , setVerticalScroll : function ( a ) { this . table . setVerticalScroll ( a ) } , restore : function ( ) { this . table . restore ( ) } , attr : function ( ) { BI . PageTable . superclass . attr . apply ( this , arguments ) , this . table . attr . apply ( this . table , arguments ) } , populate : function ( ) { this . pager . populate ( ) , this . table . populate . apply ( this . table , arguments ) } , destroy : function ( ) { this . table . destroy ( ) , this . pager && this . pager . destroy ( ) , BI . PageTable . superclass . destroy . apply ( this , arguments ) } } ) , BI . shortcut ( "bi.page_table" , BI . PageTable ) , BI . PathChooser = BI . inherit ( BI . Widget , { _const : { lineColor : "#d4dadd" , selectLineColor : "#3f8ce8" } , _defaultConfig : function ( ) { return BI . extend ( BI . PathChooser . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-path-chooser" , items : [ ] } ) } , _init : function ( ) { BI . PathChooser . superclass . _init . apply ( this , arguments ) , this . populate ( this . options . items ) } , _createRegions : function ( a ) { var b = this ; this . regions = BI . createWidgets ( BI . map ( a , function ( a , c ) { return { type : "bi.path_region" , title : b . texts [ c ] || c } } ) ) , this . regionMap = { } , BI . each ( a , function ( a , c ) { b . regionMap [ c ] = a } ) , this . container = BI . createWidget ( { type : "bi.horizontal" , verticalAlign : "top" , scrollx : ! 1 , scrolly : ! 1 , hgap : 10 , items : this . regions } ) , BI . createWidget ( { type : "bi.vertical_adapt" , element : this , scrollable : ! 0 , hgap : 10 , items : [ this . container ] } ) } , getRegionIndexById : function ( a ) { var b = this . cache [ a ] , c = b . get ( "region" ) ; return this . regionMap [ c ] } , _drawPath : function ( a , b , c ) { var d = this , e = [ ] ; e = BI . contains ( this . start , a ) ? this . start : [ a ] , BI . each ( e , function ( a , b ) { BI . each ( d . radios [ b ] , function ( a , b ) { b . setSelected ( ! 1 ) } ) , BI . each ( d . lines [ b ] , function ( a , b ) { b . attr ( "stroke" , d . _const . lineColor ) } ) , BI . each ( d . regionIndexes [ b ] , function ( a , b ) { d . regions [ b ] . reset ( ) } ) } ) , BI . each ( this . routes [ a ] [ c ] , function ( a , e ) { var f = d . getRegionIndexById ( e ) ; d . regions [ f ] . setSelect ( b + c , e ) } ) ; for ( var f = BI . last ( this . routes [ a ] [ c ] ) ; f && this . routes [ f ] && 1 === this . routes [ f ] . length ; ) BI . each ( this . routes [ f ] [ 0 ] , function ( a , b ) { var c = d . getRegionIndexById ( b ) ; d . regions [ c ] . setSelect ( 0 , b ) } ) , this . lines [ f ] [ 0 ] . attr ( "stroke" , d . _const . selectLineColor ) . toFront ( ) , f = BI . last ( this . routes [ f ] [ 0 ] ) ; this . lines [ a ] [ c ] . attr ( "stroke" , d . _const . selectLineColor ) . toFront ( ) , this . radios [ a ] && this . radios [ a ] [ c ] && this . radios [ a ] [ c ] . setSelected ( ! 0 ) } , _drawRadio : function ( a , b , c , d , e ) { var f = this , g = BI . createWidget ( { type : "bi.radio" , cls : "path-chooser-radio" , selected : b + c === 0 , start : a , index : c } ) ; g . on ( BI . Radio . EVENT _CHANGE , function ( ) { f . _drawPath ( a , b , c ) , f . fireEvent ( BI . PathChooser . EVENT _CHANGE , a , c ) } ) , this . radios [ a ] || ( this . radios [ a ] = [ ] ) , this . radios [ a ] . push ( g ) , BI . createWidget ( { type : "bi.absolute" , element : this . container , items : [ { el : g , left : d - 6.5 , top : e - 6.5 } ] } ) } , _drawLine : function ( a , b ) { var c = this ; this . lines [ a ] || ( this . lines [ a ] = [ ] ) , this . pathes [ a ] || ( this . pathes [ a ] = [ ] ) ; var d = this . getRegionIndexById ( a ) , e = this . regions [ d ] . getIndexByValue ( a ) ; BI . each ( b , function ( f , g ) { c . pathes [ a ] [ f ] = [ ] ; var h = f + e , i = "" , j = 47.5 + 29 * h , k = 50 + 100 * d , l = k , m = j , n = j , o = c . getRegionIndexById ( BI . last ( g ) ) , p = c . regions [ o ] . getIndexByValue ( BI . last ( g ) ) , q = 50 + 100 * o ; if ( BI . contains ( c . start , a ) ? ( l = k - 50 , i += "M" + ( k - 50 ) + "," + j , c . pathes [ a ] [ f ] . push ( { x : k - 50 , y : j } ) ) : 0 === h ? ( l = k + 50 , i += "M" + k + "," + j , c . pathes [ a ] [ f ] . push ( { x : k , y : j } ) ) : ( l = k + 50 , i += "M" + k + ",47.5L" + ( k + 50 ) + ",47.5L" + ( k + 50 ) + "," + j , c . pathes [ a ] [ f ] . push ( { x : k , y : 47.5 } ) , c . pathes [ a ] [ f ] . push ( { x : k + 50 , y : 47.5 } ) , c . pathes [ a ] [ f ] . push ( { x : k + 50 , y : j } ) ) , h > 0 ) { var r = 29 * p + 47.5 ; i += "L" + ( q - 50 ) + "," + n + "L" + ( q - 50 ) + "," + r + "L" + q + "," + r , c . pathes [ a ] [ f ] . push ( { x : q - 50 , y : n } ) , c . pathes [ a ] [ f ] . push ( { x : q - 50 , y : r } ) , c . pathes [ a ] [ f ] . push ( { x : q , y : r } ) } else i += "L" + q + "," + n , c . pathes [ a ] [ f ] . push ( { x : q , y : n } ) ; var s = c . svg . path ( i ) . attr ( { stroke : 0 === h ? c . _const . selectLineColor : c . _const . lineColor , "stroke-dasharray" : "-" } ) ; c . lines [ a ] . push ( s ) , b . length > 1 && c . lines [ a ] [ 0 ] . toFront ( ) , BI . contains ( c . start , a ) && c . lines [ c . regions [ 0 ] . getValueByIndex ( 0 ) ] [ 0 ] . toFront ( ) , ( b . length > 1 || BI . contains ( c . start , a ) ) && c . _drawRadio ( a , e , f , l , m ) } ) } , _drawLines : function ( a ) { var b = this ; this . lines = { } , this . pathes = { } , this . radios = { } , this . regionIndexes = { } , BI . each ( a , function ( a , c ) { b . regionIndexes [ a ] || ( b . regionIndexes [ a ] = [ ] ) , BI . each ( c , function ( c , d ) { BI . each ( d , function ( c , d ) { var e
var d = a . freezeCols ; if ( 0 === d . length ) this . table . setRegionColumnSize ( [ 0 , "fill" ] ) ; else if ( d . length > 0 && d . length < a . columnSize . length ) { var e = c / 3 ; d . length > a . columnSize . length / 2 && ( e = 2 * c / 3 ) , this . table . setRegionColumnSize ( [ e , "fill" ] ) } else this . table . setRegionColumnSize ( [ "fill" , 0 ] ) } } } , _getBlockSize : function ( ) { var a = this . options , b = this . table . getCalculateColumnSize ( ) ; if ( a . isNeedFreeze === ! 0 ) { var c = [ ] , d = [ ] ; BI . each ( b , function ( b , e ) { a . freezeCols . contains ( b ) ? c . push ( e ) : d . push ( e ) } ) ; var e = BI . sum ( c ) + c . length , f = BI . sum ( d ) + d . length ; return { sumLeft : e , sumRight : f , left : c , right : d } } return { size : b , sum : BI . sum ( b ) + b . length } } , _isAdaptiveColumn : function ( a ) { return ! ( BI . last ( a || this . table . getColumnSize ( ) ) > 1.05 ) } , _resizeHeader : function ( ) { var a = this , b = this . options ; if ( b . isNeedFreeze === ! 0 ) if ( this . _isAdaptiveColumn ( ) ) { var c = this . table . getCalculateColumnSize ( ) ; this . table . setHeaderColumnSize ( c ) } else { var d = this . table . getClientRegionColumnSize ( ) , e = this . _getBlockSize ( ) , f = e . sumLeft , g = e . sumRight , h = e . left , i = e . right ; h [ h . length - 1 ] += d [ 0 ] - f , i [ i . length - 1 ] += d [ 1 ] - g ; var j = BI . clone ( h ) , k = BI . clone ( i ) ; j [ j . length - 1 ] = "" , k [ k . length - 1 ] = "" , this . table . setColumnSize ( j . concat ( k ) ) , e = a . _getBlockSize ( ) , h [ h . length - 1 ] < e . left [ e . left . length - 1 ] && ( h [ h . length - 1 ] = e . left [ e . left . length - 1 ] ) , i [ i . length - 1 ] < e . right [ e . right . length - 1 ] && ( i [ i . length - 1 ] = e . right [ e . right . length - 1 ] ) , a . table . setColumnSize ( h . concat ( i ) ) } else if ( ! this . _isAdaptiveColumn ( ) ) { var d = this . table . getClientRegionColumnSize ( ) , e = this . _getBlockSize ( ) , l = e . sum , m = e . size ; m [ m . length - 1 ] += d [ 0 ] - l ; var n = BI . clone ( m ) ; n [ n . length - 1 ] = "" , this . table . setColumnSize ( n ) , e = this . _getBlockSize ( ) , m [ m . length - 1 ] < e . size [ e . size . length - 1 ] && ( m [ m . length - 1 ] = e . size [ e . size . length - 1 ] ) , this . table . setColumnSize ( m ) } } , _resizeBody : function ( ) { if ( this . _isAdaptiveColumn ( ) ) { var a = this . table . getCalculateColumnSize ( ) ; this . setColumnSize ( a ) } } , _adjustRegion : function ( ) { var a = this . options , b = this . table . getCalculateRegionColumnSize ( ) ; if ( a . isNeedFreeze === ! 0 && a . freezeCols . length > 0 && a . freezeCols . length < a . columnSize . length ) { var c = this . _getBlockSize ( ) , d = c . sumLeft , e = c . sumRight ; ( d < b [ 0 ] || b [ 0 ] >= d + e ) && this . table . setRegionColumnSize ( [ d , "fill" ] ) , this . _resizeRegion ( ) } } , _resizeRegion : function ( ) { var a = this . options , b = this . table . getCalculateRegionColumnSize ( ) ; if ( a . isNeedFreeze === ! 0 && a . freezeCols . length > 0 && a . freezeCols . length < a . columnSize . length ) { var c = this . table . element . width ( ) ; if ( b [ 0 ] < 15 || b [ 1 ] < 15 ) { var d = a . freezeCols , e = c / 3 ; d . length > a . columnSize . length / 2 && ( e = 2 * c / 3 ) , this . table . setRegionColumnSize ( [ e , "fill" ] ) } } } , resize : function ( ) { this . table . resize ( ) , this . _resizeRegion ( ) , this . _resizeHeader ( ) } , setColumnSize : function ( a ) { this . table . setColumnSize ( a ) , this . _adjustRegion ( ) , this . _resizeHeader ( ) } , getColumnSize : function ( ) { return this . table . getColumnSize ( ) } , getCalculateColumnSize : function ( ) { return this . table . getCalculateColumnSize ( ) } , setHeaderColumnSize : function ( a ) { this . table . setHeaderColumnSize ( a ) , this . _adjustRegion ( ) , this . _resizeHeader ( ) } , setRegionColumnSize : function ( a ) { this . table . setRegionColumnSize ( a ) , this . _resizeHeader ( ) } , getRegionColumnSize : function ( ) { return this . table . getRegionColumnSize ( ) } , getCalculateRegionColumnSize : function ( ) { return this . table . getCalculateRegionColumnSize ( ) } , getCalculateRegionRowSize : function ( ) { return this . table . getCalculateRegionRowSize ( ) } , getClientRegionColumnSize : function ( ) { return this . table . getClientRegionColumnSize ( ) } , getScrollRegionColumnSize : function ( ) { return this . table . getScrollRegionColumnSize ( ) } , getScrollRegionRowSize : function ( ) { return this . table . getScrollRegionRowSize ( ) } , hasVerticalScroll : function ( ) { return this . table . hasVerticalScroll ( ) } , setVerticalScroll : function ( a ) { this . table . setVerticalScroll ( a ) } , setLeftHorizontalScroll : function ( a ) { this . table . setLeftHorizontalScroll ( a ) } , setRightHorizontalScroll : function ( a ) { this . table . setRightHorizontalScroll ( a ) } , getVerticalScroll : function ( ) { return this . table . getVerticalScroll ( ) } , getLeftHorizontalScroll : function ( ) { return this . table . getLeftHorizontalScroll ( ) } , getRightHorizontalScroll : function ( ) { return this . table . getRightHorizontalScroll ( ) } , getColumns : function ( ) { return this . table . getColumns ( ) } , attr : function ( ) { BI . ResponisveTable . superclass . attr . apply ( this , arguments
this . _count ? ( b ( ) , a ( ) ) : d . itemsCreator ( { type : BI . SingleSelectCombo . REQ _GET _DATA _LENGTH } , function ( d ) { c . _count = d . count , b ( ) , a ( ) } ) } , _join : function ( a , b ) { var c = this ; this . options ; if ( this . _assertValue ( a ) , this . _assertValue ( this . storeValue ) , this . storeValue . type === a . type ) { var d = this . _makeMap ( this . storeValue . value ) ; BI . each ( a . value , function ( a , b ) { d [ b ] || ( c . storeValue . value . push ( b ) , d [ b ] = b ) } ) ; var e = ! 1 ; return BI . each ( a . assist , function ( a , b ) { BI . isNotNull ( d [ b ] ) && ( e = ! 0 , delete d [ b ] ) } ) , e && ( this . storeValue . value = BI . values ( d ) ) , void c . _adjust ( b ) } this . _joinAll ( a , b ) } , _setStartValue : function ( a ) { this . _startValue = a , this . popup . setStartValue ( a ) } , setValue : function ( a ) { this . storeValue = a || "" , this . _assertValue ( this . storeValue ) , this . combo . setValue ( this . storeValue ) } , getValue : function ( ) { return this . storeValue } , populate : function ( ) { this . _count = null , this . combo . populate . apply ( this . combo , arguments ) } } ) , BI . extend ( BI . SingleSelectCombo , { REQ _GET _DATA _LENGTH : 0 , REQ _GET _ALL _DATA : - 1 } ) , BI . SingleSelectCombo . EVENT _CONFIRM = "EVENT_CONFIRM" , BI . shortcut ( "bi.single_select_combo" , BI . SingleSelectCombo ) , BI . SingleSelectList = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . SingleSelectList . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-select-list" , direction : BI . Direction . Top , logic : { dynamic : ! 0 } , items : [ ] , itemsCreator : BI . emptyFn , hasNext : BI . emptyFn , onLoaded : BI . emptyFn , el : { type : "bi.list_pane" } } ) } , _init : function ( ) { BI . SingleSelectList . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; this . list = BI . createWidget ( b . el , { type : "bi.list_pane" , items : b . items , itemsCreator : function ( c , d ) { b . itemsCreator ( c , function ( b ) { d . apply ( a , arguments ) } ) } , onLoaded : b . onLoaded , hasNext : b . hasNext } ) , this . list . on ( BI . Controller . EVENT _CHANGE , function ( b , c , d ) { b === BI . Events . CLICK && a . fireEvent ( BI . SingleSelectList . EVENT _CHANGE , c , d ) , a . fireEvent ( BI . Controller . EVENT _CHANGE , arguments ) } ) , BI . createWidget ( BI . extend ( { element : this } , BI . LogicFactory . createLogic ( BI . LogicFactory . createLogicTypeByDirection ( b . direction ) , BI . extend ( { scrolly : ! 0 } , b . logic , { items : BI . LogicFactory . createLogicItemsByDirection ( b . direction , this . list ) } ) ) ) ) } , hasPrev : function ( ) { return this . list . hasPrev ( ) } , hasNext : function ( ) { return this . list . hasNext ( ) } , prependItems : function ( a ) { this . list . prependItems . apply ( this . list , arguments ) } , addItems : function ( a ) { this . list . addItems . apply ( this . list , arguments ) } , setValue : function ( a ) { this . list . setValue ( [ a ] ) } , getValue : function ( ) { return this . list . getValue ( ) [ 0 ] } , empty : function ( ) { this . list . empty ( ) } , populate : function ( a ) { this . list . populate . apply ( this . list , arguments ) } , resetHeight : function ( a ) { this . list . resetHeight ? this . list . resetHeight ( a ) : this . list . element . css ( { "max-height" : a + "px" } ) } , setNotSelectedValue : function ( ) { this . list . setNotSelectedValue . apply ( this . list , arguments ) } , getNotSelectedValue : function ( ) { return this . list . getNotSelectedValue ( ) } , getAllButtons : function ( ) { return this . list . getAllButtons ( ) } , getAllLeaves : function ( ) { return this . list . getAllLeaves ( ) } , getSelectedButtons : function ( ) { return this . list . getSelectedButtons ( ) } , getNotSelectedButtons : function ( ) { return this . list . getNotSelectedButtons ( ) } , getIndexByValue : function ( a ) { return this . list . getIndexByValue ( a ) } , getNodeById : function ( a ) { return this . list . getNodeById ( a ) } , getNodeByValue : function ( a ) { return this . list . getNodeByValue ( a ) } } ) , BI . SingleSelectList . EVENT _CHANGE = "EVENT_CHANGE" , BI . shortcut ( "bi.single_select_list" , BI . SingleSelectList ) , BI . SingleSelectLoader = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . SingleSelectLoader . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-single-select-loader" , logic : { dynamic : ! 0 } , el : { height : 400 } , valueFormatter : BI . emptyFn , itemsCreator : BI . emptyFn , onLoaded : BI . emptyFn } ) } , _init : function ( ) { BI . SingleSelectLoader . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options , c = ! 1 ; this . button _group = BI . createWidget ( { type : "bi.single_select_list" , element : this , logic : b . logic , el : BI . extend ( { onLoaded : b . onLoaded , el : { type : "bi.loader" , isDefaultInit : ! 1 , logic : { dynamic : ! 0 , scrolly : ! 0 } , el : { chooseType : BI . ButtonGroup . CHOOSE _TYPE _SINGLE , behaviors : { redmark : function ( ) { return ! 0 } } , layouts : [ { type : "bi.vertical" } ] } } } , b . el ) , itemsCreator : fu
var b = this . options ; this . _showHint ( ) , a = BI . isEmpty ( a ) || a == b . text ? b . text : a + b . text , this . text . setValue ( a ) } } ) , BI . SignTextEditor . EVENT _CONFIRM = "EVENT_CONFIRM" , BI . SignTextEditor . EVENT _CLICK _LABEL = "EVENT_CLICK_LABEL" , BI . shortcut ( "bi.sign_text_editor" , BI . SignTextEditor ) , BI . SliderIconButton = BI . inherit ( BI . Widget , { _defaultConfig : function ( ) { return BI . extend ( BI . SliderIconButton . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-single-slider-button" } ) } , _init : function ( ) { BI . extend ( BI . SliderIconButton . superclass . _init . apply ( this , arguments ) ) , this . slider = BI . createWidget ( { type : "bi.icon_button" , cls : "slider-icon slider-button" , iconWidth : 14 , iconHeight : 14 , height : 14 , width : 14 } ) , BI . createWidget ( { type : "bi.absolute" , element : this , items : [ { el : this . slider , top : 7 , left : - 7 } ] , width : 0 , height : 14 } ) } } ) , BI . shortcut ( "bi.single_slider_button" , BI . SliderIconButton ) , BI . SingleSlider = BI . inherit ( BI . Widget , { _constant : { EDITOR _WIDTH : 90 , EDITOR _HEIGHT : 30 , SLIDER _WIDTH _HALF : 15 , SLIDER _WIDTH : 30 , SLIDER _HEIGHT : 30 , TRACK _HEIGHT : 24 } , _defaultConfig : function ( ) { return BI . extend ( BI . SingleSlider . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-single-slider bi-slider-track" , digit : ! 1 , unit : "" } ) } , _init : function ( ) { BI . SingleSlider . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options , c = this . _constant ; this . enable = ! 1 , this . value = "" , this . grayTrack = BI . createWidget ( { type : "bi.layout" , cls : "gray-track" , height : 6 } ) , this . blueTrack = BI . createWidget ( { type : "bi.layout" , cls : "blue-track bi-high-light-background" , height : 6 } ) , this . track = this . _createTrackWrapper ( ) , this . slider = BI . createWidget ( { type : "bi.single_slider_button" } ) , this . _draggable ( this . slider ) ; var d = BI . createWidget ( { type : "bi.vertical" , items : [ { type : "bi.absolute" , items : [ this . slider ] } ] , hgap : c . SLIDER _WIDTH _HALF , height : c . SLIDER _HEIGHT } ) ; d . element . click ( function ( d ) { if ( a . enable ) { var e = d . clientX - a . element . offset ( ) . left - c . SLIDER _WIDTH _HALF , f = a . track . element [ 0 ] . scrollWidth , g = 0 ; e < 0 && ( g = 0 ) , e > 0 && e < f - c . SLIDER _WIDTH && ( g = 100 * e / a . _getGrayTrackLength ( ) ) , e > f - c . SLIDER _WIDTH && ( g = 100 ) ; var h = BI . parseFloat ( g . toFixed ( 1 ) ) ; a . _setAllPosition ( h ) ; var i = a . _getValueByPercent ( h ) ; i = b . digit === ! 1 ? i : i . toFixed ( b . digit ) , a . label . setValue ( i ) , a . value = i , a . fireEvent ( BI . SingleSlider . EVENT _CHANGE ) } } ) , this . label = BI . createWidget ( { type : "bi.sign_text_editor" , cls : "slider-editor-button" , errorText : "" , text : b . unit , width : c . EDITOR _WIDTH - 2 , allowBlank : ! 1 , validationChecker : function ( b ) { return a . _checkValidation ( b ) } } ) , this . label . element . hover ( function ( ) { a . label . element . removeClass ( "bi-border" ) . addClass ( "bi-border" ) } , function ( ) { a . label . element . removeClass ( "bi-border" ) } ) , this . label . on ( BI . SignEditor . EVENT _CONFIRM , function ( ) { var b = BI . parseFloat ( this . getValue ( ) ) , c = a . _getPercentByValue ( b ) , d = BI . parseFloat ( c . toFixed ( 1 ) ) ; a . _setAllPosition ( d ) , this . setValue ( b ) , a . value = b , a . fireEvent ( BI . SingleSlider . EVENT _CHANGE ) } ) , this . _setVisible ( ! 1 ) , BI . createWidget ( { type : "bi.absolute" , element : this , items : [ { el : { type : "bi.vertical" , items : [ { type : "bi.absolute" , items : [ { el : this . track , width : "100%" , height : c . TRACK _HEIGHT } ] } ] , hgap : 7 , height : c . TRACK _HEIGHT } , top : 23 , left : 0 , width : "100%" } , { el : d , top : 20 , left : 0 , width : "100%" } , { el : { type : "bi.vertical" , items : [ { type : "bi.absolute" , items : [ this . label ] } ] , rgap : c . EDITOR _WIDTH , height : c . EDITOR _HEIGHT } , top : 0 , left : 0 , width : "100%" } ] } ) } , _draggable : function ( a ) { function b ( a ) { return BI . clamp ( a , 0 , c . _getGrayTrackLength ( ) ) } var c = this , d = this . options , e = ! 1 , f = 0 , g = 0 , h = 0 , i = new BI . MouseMoveTracker ( function ( j ) { if ( i . isDragging ( ) ) { e = ! 0 , g += j , f = b ( h + g ) , a . element . addClass ( "dragging" ) ; var k = 100 * f / c . _getGrayTrackLength ( ) , l = BI . parseFloat ( k . toFixed ( 1 ) ) ; c . _setBlueTrack ( l ) , c . _setLabelPosition ( l ) , c . _setSliderPosition ( l ) ; var m = c . _getValueByPercent ( l ) ; m = d . digit === ! 1 ? m : m . toFixed ( d . digit ) , c . label . setValue ( m ) , c . value = m , c . fireEvent ( BI . SingleSlider . EVENT _CHANGE ) } } , function ( ) { if ( e === ! 0 ) { f = b ( f ) ; var d = 100 * f / c . _getGrayTrackLength ( ) , j = BI . parseFloat ( d . toFixed ( 1 ) ) ; c . _setSliderPosition ( j ) , f = 0 , g = 0 , h = f , e = ! 1 } a . element . removeClass ( "dragging" ) , i . releaseMouseMoves ( ) , c . fireEvent ( BI . SingleSlider . EVENT _CHANGE ) } , document ) ; a . element . on ( "mousedown" , function ( c ) { a . isEnabled ( ) && ( h = this . offsetLeft , b ( h ) , i . captureMouseMoves ( c ) ) } ) } , _createTrackWrapper : function
} ) , this . year . on ( BI . YearCombo . EVENT _BEFORE _POPUPVIEW , function ( ) { a . fireEvent ( BI . YearQuarterCombo . EVENT _BEFORE _POPUPVIEW ) } ) , this . quarter . on ( BI . QuarterCombo . EVENT _CONFIRM , function ( ) { a . fireEvent ( BI . YearQuarterCombo . EVENT _CONFIRM ) } ) , this . quarter . on ( BI . QuarterCombo . EVENT _BEFORE _POPUPVIEW , function ( ) { a . fireEvent ( BI . YearQuarterCombo . EVENT _BEFORE _POPUPVIEW ) } ) , BI . createWidget ( { type : "bi.center" , element : this , hgap : 5 , items : [ this . year , this . quarter ] } ) } , setValue : function ( a ) { a = a || { } , this . quarter . setValue ( a . quarter ) , this . year . setValue ( a . year ) } , getValue : function ( ) { return { year : this . year . getValue ( ) , quarter : this . quarter . getValue ( ) } } } ) , BI . YearQuarterCombo . EVENT _CONFIRM = "EVENT_CONFIRM" , BI . YearQuarterCombo . EVENT _BEFORE _POPUPVIEW = "EVENT_BEFORE_POPUPVIEW" , BI . shortcut ( "bi.year_quarter_combo" , BI . YearQuarterCombo ) , BI . AbstractAllValueChooser = BI . inherit ( BI . Widget , { _const : { perPage : 100 } , _defaultConfig : function ( ) { return BI . extend ( BI . AbstractAllValueChooser . superclass . _defaultConfig . apply ( this , arguments ) , { width : 200 , height : 30 , items : null , itemsCreator : BI . emptyFn , cache : ! 0 } ) } , _valueFormatter : function ( a ) { var b = a ; return BI . isNotNull ( this . items ) && BI . some ( this . items , function ( c , d ) { if ( d . value === a ) return b = d . text , ! 0 } ) , b } , _itemsCreator : function ( a , b ) { function c ( c ) { var d = ( a . keywords || [ ] ) . slice ( ) ; if ( a . keyword && d . push ( a . keyword ) , BI . each ( d , function ( a , b ) { var d = BI . Func . getSearchResult ( c , b ) ; c = d . matched . concat ( d . finded ) } ) , a . selectedValues ) { var e = BI . makeObject ( a . selectedValues , ! 0 ) ; c = BI . filter ( c , function ( a , b ) { return ! e [ b . value ] } ) } return a . type === BI . MultiSelectCombo . REQ _GET _ALL _DATA ? void b ( { items : c } ) : a . type === BI . MultiSelectCombo . REQ _GET _DATA _LENGTH ? void b ( { count : c . length } ) : void b ( { items : c , hasNext : ! 1 } ) } var d = this , e = this . options ; e . cache && this . items ? c ( this . items ) : e . itemsCreator ( { } , function ( a ) { d . items = a , c ( a ) } ) } } ) , BI . AllValueChooserCombo = BI . inherit ( BI . AbstractAllValueChooser , { _defaultConfig : function ( ) { return BI . extend ( BI . AllValueChooserCombo . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-all-value-chooser-combo" , width : 200 , height : 30 , items : null , itemsCreator : BI . emptyFn , cache : ! 0 } ) } , _init : function ( ) { BI . AllValueChooserCombo . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; BI . isNotNull ( b . items ) && ( this . items = b . items ) , this . combo = BI . createWidget ( { type : "bi.multi_select_combo" , element : this , itemsCreator : BI . bind ( this . _itemsCreator , this ) , valueFormatter : BI . bind ( this . _valueFormatter , this ) , width : b . width , height : b . height } ) , this . combo . on ( BI . MultiSelectCombo . EVENT _CONFIRM , function ( ) { a . fireEvent ( BI . AllValueChooserCombo . EVENT _CONFIRM ) } ) } , setValue : function ( a ) { this . combo . setValue ( { type : BI . Selection . Multi , value : a || [ ] } ) } , getValue : function ( ) { var a = this . combo . getValue ( ) || { } ; return a . type === BI . Selection . All ? a . assist : a . value || [ ] } , populate : function ( ) { this . combo . populate . apply ( this , arguments ) } } ) , BI . AllValueChooserCombo . EVENT _CONFIRM = "AllValueChooserCombo.EVENT_CONFIRM" , BI . shortcut ( "bi.all_value_chooser_combo" , BI . AllValueChooserCombo ) , BI . AllValueChooserPane = BI . inherit ( BI . AbstractAllValueChooser , { _defaultConfig : function ( ) { return BI . extend ( BI . AllValueChooserPane . superclass . _defaultConfig . apply ( this , arguments ) , { baseCls : "bi-all-value-chooser-pane" , width : 200 , height : 30 , items : null , itemsCreator : BI . emptyFn , cache : ! 0 } ) } , _init : function ( ) { BI . AllValueChooserPane . superclass . _init . apply ( this , arguments ) ; var a = this , b = this . options ; BI . isNotNull ( b . items ) && ( this . items = b . items ) , this . list = BI . createWidget ( { type : "bi.multi_select_list" , element : this , itemsCreator : BI . bind ( this . _itemsCreator , this ) , valueFormatter : BI . bind ( this . _valueFormatter , this ) , width : b . width , height : b . height } ) , this . list . on ( BI . MultiSelectList . EVENT _CHANGE , function ( ) { a . fireEvent ( BI . AllValueChooserPane . EVENT _CHANGE ) } ) } , setValue : function ( a ) { this . list . setValue ( { type : BI . Selection . Multi , value : a || [ ] } ) } , getValue : function ( ) { var a = this . list . getValue ( ) || { } ; return a . type === BI . Selection . All ? a . assist : a . value || [ ] } , populate : function ( ) { this . list . populate . apply ( this . list , arguments ) } } ) , BI . AllValueChooserPane . EVENT _CHANGE = "AllValueChooserPane.EVENT_CHANGE" , BI . shortcut ( "bi.all_value_chooser_pane" , BI . AllValueChooserPane ) , BI . AbstractTreeValueChooser = BI . inherit ( BI . Widget , { _const : {